ccgauge 1.1.4 → 1.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-build-manifest.json +20 -20
- package/.next/standalone/.next/app-path-routes-manifest.json +3 -3
- package/.next/standalone/.next/build-manifest.json +2 -2
- package/.next/standalone/.next/server/app/settings/page.js +1 -1
- package/.next/standalone/.next/server/app-paths-manifest.json +3 -3
- package/.next/standalone/.next/server/chunks/716.js +1 -1
- package/.next/standalone/.next/server/middleware-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/node_modules/next/node_modules/postcss/package.json +0 -0
- package/.next/standalone/package.json +1 -1
- package/CHANGELOG.md +26 -0
- package/bin/cli.mjs +0 -0
- package/dist/mcp/server.mjs +6 -6
- package/dist/report/index.mjs +4 -4
- package/package.json +22 -24
- /package/.next/standalone/.next/static/{pccRwHEkTSz4g-0VPmlVK → GtWVWyG8mgmjwPOWjfTMr}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{pccRwHEkTSz4g-0VPmlVK → GtWVWyG8mgmjwPOWjfTMr}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
GtWVWyG8mgmjwPOWjfTMr
|
|
@@ -33,26 +33,26 @@
|
|
|
33
33
|
"static/chunks/main-app-414f78df832b23a6.js",
|
|
34
34
|
"static/chunks/app/loading-33a382d58df5da76.js"
|
|
35
35
|
],
|
|
36
|
-
"/api/
|
|
36
|
+
"/api/blocks/route": [
|
|
37
37
|
"static/chunks/webpack-73dfee69c0ddc58e.js",
|
|
38
38
|
"static/chunks/4bd1b696-409494caf8c83275.js",
|
|
39
39
|
"static/chunks/255-249e483089def0f6.js",
|
|
40
40
|
"static/chunks/main-app-414f78df832b23a6.js",
|
|
41
|
-
"static/chunks/app/api/
|
|
41
|
+
"static/chunks/app/api/blocks/route-33a382d58df5da76.js"
|
|
42
42
|
],
|
|
43
|
-
"/api/
|
|
43
|
+
"/api/pricing/route": [
|
|
44
44
|
"static/chunks/webpack-73dfee69c0ddc58e.js",
|
|
45
45
|
"static/chunks/4bd1b696-409494caf8c83275.js",
|
|
46
46
|
"static/chunks/255-249e483089def0f6.js",
|
|
47
47
|
"static/chunks/main-app-414f78df832b23a6.js",
|
|
48
|
-
"static/chunks/app/api/
|
|
48
|
+
"static/chunks/app/api/pricing/route-33a382d58df5da76.js"
|
|
49
49
|
],
|
|
50
|
-
"/api/
|
|
50
|
+
"/api/scan/route": [
|
|
51
51
|
"static/chunks/webpack-73dfee69c0ddc58e.js",
|
|
52
52
|
"static/chunks/4bd1b696-409494caf8c83275.js",
|
|
53
53
|
"static/chunks/255-249e483089def0f6.js",
|
|
54
54
|
"static/chunks/main-app-414f78df832b23a6.js",
|
|
55
|
-
"static/chunks/app/api/
|
|
55
|
+
"static/chunks/app/api/scan/route-33a382d58df5da76.js"
|
|
56
56
|
],
|
|
57
57
|
"/api/projects/route": [
|
|
58
58
|
"static/chunks/webpack-73dfee69c0ddc58e.js",
|
|
@@ -92,6 +92,14 @@
|
|
|
92
92
|
"static/chunks/148-59989feca70944f2.js",
|
|
93
93
|
"static/chunks/app/models/page-dcd29049a7b0641c.js"
|
|
94
94
|
],
|
|
95
|
+
"/projects/page": [
|
|
96
|
+
"static/chunks/webpack-73dfee69c0ddc58e.js",
|
|
97
|
+
"static/chunks/4bd1b696-409494caf8c83275.js",
|
|
98
|
+
"static/chunks/255-249e483089def0f6.js",
|
|
99
|
+
"static/chunks/main-app-414f78df832b23a6.js",
|
|
100
|
+
"static/chunks/619-f072ac750404f9da.js",
|
|
101
|
+
"static/chunks/app/projects/page-32204fdab7bf3e79.js"
|
|
102
|
+
],
|
|
95
103
|
"/projects/[id]/page": [
|
|
96
104
|
"static/chunks/webpack-73dfee69c0ddc58e.js",
|
|
97
105
|
"static/chunks/4bd1b696-409494caf8c83275.js",
|
|
@@ -111,27 +119,27 @@
|
|
|
111
119
|
"static/chunks/619-f072ac750404f9da.js",
|
|
112
120
|
"static/chunks/app/sessions/page-32204fdab7bf3e79.js"
|
|
113
121
|
],
|
|
114
|
-
"/
|
|
122
|
+
"/usage/page": [
|
|
115
123
|
"static/chunks/webpack-73dfee69c0ddc58e.js",
|
|
116
124
|
"static/chunks/4bd1b696-409494caf8c83275.js",
|
|
117
125
|
"static/chunks/255-249e483089def0f6.js",
|
|
118
126
|
"static/chunks/main-app-414f78df832b23a6.js",
|
|
119
127
|
"static/chunks/760-24bf5ac5820b9230.js",
|
|
120
128
|
"static/chunks/930-ca5c6f8b5cb6ac3d.js",
|
|
121
|
-
"static/chunks/
|
|
129
|
+
"static/chunks/253-dae1b01a941e7c13.js",
|
|
122
130
|
"static/chunks/148-59989feca70944f2.js",
|
|
123
|
-
"static/chunks/app/
|
|
131
|
+
"static/chunks/app/usage/page-8af23d9f5420c824.js"
|
|
124
132
|
],
|
|
125
|
-
"/
|
|
133
|
+
"/sessions/[id]/page": [
|
|
126
134
|
"static/chunks/webpack-73dfee69c0ddc58e.js",
|
|
127
135
|
"static/chunks/4bd1b696-409494caf8c83275.js",
|
|
128
136
|
"static/chunks/255-249e483089def0f6.js",
|
|
129
137
|
"static/chunks/main-app-414f78df832b23a6.js",
|
|
130
138
|
"static/chunks/760-24bf5ac5820b9230.js",
|
|
131
139
|
"static/chunks/930-ca5c6f8b5cb6ac3d.js",
|
|
132
|
-
"static/chunks/
|
|
140
|
+
"static/chunks/619-f072ac750404f9da.js",
|
|
133
141
|
"static/chunks/148-59989feca70944f2.js",
|
|
134
|
-
"static/chunks/app/
|
|
142
|
+
"static/chunks/app/sessions/[id]/page-d6725ed17b04a743.js"
|
|
135
143
|
],
|
|
136
144
|
"/page": [
|
|
137
145
|
"static/chunks/webpack-73dfee69c0ddc58e.js",
|
|
@@ -143,14 +151,6 @@
|
|
|
143
151
|
"static/chunks/148-59989feca70944f2.js",
|
|
144
152
|
"static/chunks/app/page-1a147d12fca0b184.js"
|
|
145
153
|
],
|
|
146
|
-
"/projects/page": [
|
|
147
|
-
"static/chunks/webpack-73dfee69c0ddc58e.js",
|
|
148
|
-
"static/chunks/4bd1b696-409494caf8c83275.js",
|
|
149
|
-
"static/chunks/255-249e483089def0f6.js",
|
|
150
|
-
"static/chunks/main-app-414f78df832b23a6.js",
|
|
151
|
-
"static/chunks/619-f072ac750404f9da.js",
|
|
152
|
-
"static/chunks/app/projects/page-32204fdab7bf3e79.js"
|
|
153
|
-
],
|
|
154
154
|
"/settings/page": [
|
|
155
155
|
"static/chunks/webpack-73dfee69c0ddc58e.js",
|
|
156
156
|
"static/chunks/4bd1b696-409494caf8c83275.js",
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"/_not-found/page": "/_not-found",
|
|
3
|
+
"/api/blocks/route": "/api/blocks",
|
|
3
4
|
"/api/pricing/route": "/api/pricing",
|
|
4
5
|
"/api/scan/route": "/api/scan",
|
|
5
|
-
"/api/blocks/route": "/api/blocks",
|
|
6
6
|
"/api/projects/route": "/api/projects",
|
|
7
7
|
"/api/sessions/route": "/api/sessions",
|
|
8
8
|
"/api/usage/route": "/api/usage",
|
|
9
9
|
"/api/export/usage/route": "/api/export/usage",
|
|
10
10
|
"/models/page": "/models",
|
|
11
|
+
"/projects/page": "/projects",
|
|
11
12
|
"/projects/[id]/page": "/projects/[id]",
|
|
12
13
|
"/sessions/page": "/sessions",
|
|
13
|
-
"/sessions/[id]/page": "/sessions/[id]",
|
|
14
14
|
"/usage/page": "/usage",
|
|
15
|
+
"/sessions/[id]/page": "/sessions/[id]",
|
|
15
16
|
"/page": "/",
|
|
16
|
-
"/projects/page": "/projects",
|
|
17
17
|
"/settings/page": "/settings"
|
|
18
18
|
}
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
"devFiles": [],
|
|
6
6
|
"ampDevFiles": [],
|
|
7
7
|
"lowPriorityFiles": [
|
|
8
|
-
"static/
|
|
9
|
-
"static/
|
|
8
|
+
"static/GtWVWyG8mgmjwPOWjfTMr/_buildManifest.js",
|
|
9
|
+
"static/GtWVWyG8mgmjwPOWjfTMr/_ssgManifest.js"
|
|
10
10
|
],
|
|
11
11
|
"rootMainFiles": [
|
|
12
12
|
"static/chunks/webpack-73dfee69c0ddc58e.js",
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
(()=>{var a={};a.id=662,a.ids=[662],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29509:(a,b,c)=>{"use strict";c.d(b,{ThemeSwitcher:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call ThemeSwitcher() from the server but ThemeSwitcher is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/theme-switcher.tsx","ThemeSwitcher")},33873:a=>{"use strict";a.exports=require("path")},37583:(a,b,c)=>{"use strict";c.d(b,{pp:()=>h,qK:()=>g,wn:()=>f});var d=c(75338),e=c(95012);function f({title:a,desc:b,right:c,children:f,className:g,inlineDesc:h,fillBody:i}){return(0,d.jsxs)("section",{className:(0,e.cn)("card overflow-hidden",i&&"flex flex-col",g),children:[(a||c)&&(0,d.jsxs)("header",{className:(0,e.cn)("section-header","flex flex-col sm:flex-row sm:items-start sm:justify-between gap-3 sm:gap-4","px-5 sm:px-6 pt-4 sm:pt-5 pb-3 border-b border-border"),children:[(0,d.jsxs)("div",{className:(0,e.cn)("min-w-0",h&&"sm:flex sm:items-baseline sm:gap-2.5"),children:[a&&(0,d.jsx)("h2",{className:"text-[15px] font-semibold text-text-primary tracking-tight leading-tight",children:a}),b&&(0,d.jsx)("p",{className:(0,e.cn)("text-xs text-text-secondary leading-relaxed",h?"mt-1 sm:mt-0":"mt-1.5"),children:b})]}),c&&(0,d.jsx)("div",{className:"flex items-center gap-2 flex-wrap",children:c})]}),(0,d.jsx)("div",{className:(0,e.cn)("p-5 sm:p-6",i&&"flex-1 flex flex-col"),children:f})]})}function g({title:a,desc:b,right:c,children:e}){return(0,d.jsxs)("div",{className:"dash-stagger max-w-7xl mx-auto px-4 sm:px-6 py-6 sm:py-8 space-y-5 sm:space-y-6",children:[(0,d.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-end sm:justify-between gap-3 sm:gap-4",children:[(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("h1",{className:"text-2xl sm:text-[1.75rem] font-semibold tracking-tight leading-tight truncate",children:a}),b&&(0,d.jsx)("p",{className:"text-sm text-text-secondary mt-1.5 leading-relaxed",children:b})]}),c&&(0,d.jsx)("div",{className:"flex items-center gap-2 flex-wrap",children:c})]}),e]})}function h({title:a,desc:b,icon:c,action:e}){return(0,d.jsxs)("div",{className:"card text-center py-14 sm:py-16 px-6 flex flex-col items-center gap-3",children:[(0,d.jsx)("div",{className:"w-12 h-12 rounded-full bg-bg-surface-hi border border-border flex items-center justify-center text-text-tertiary",children:c??(0,d.jsx)(i,{})}),(0,d.jsx)("div",{className:"text-base font-medium text-text-primary",children:a}),b&&(0,d.jsx)("div",{className:"text-sm text-text-tertiary max-w-md leading-relaxed",children:b}),e&&(0,d.jsx)("div",{className:"mt-2",children:e})]})}function i(){return(0,d.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,d.jsx)("path",{d:"M9 9h.01M15 9h.01M9 15c1 1 2 1.5 3 1.5s2-.5 3-1.5"})]})}},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},41255:(a,b,c)=>{Promise.resolve().then(c.bind(c,98392)),Promise.resolve().then(c.bind(c,87639)),Promise.resolve().then(c.bind(c,84701)),Promise.resolve().then(c.bind(c,29509))},41573:(a,b,c)=>{"use strict";c.d(b,{H:()=>g});var d=c(21124),e=c(38301),f=c(15514);function g({children:a,className:b}){let c=(0,e.useRef)(null),[g,h]=(0,e.useState)(!1),[i,j]=(0,e.useState)(!1);return(0,d.jsxs)("div",{className:(0,f.cn)("relative",b),children:[(0,d.jsx)("div",{ref:c,className:"overflow-x-auto",children:a}),(0,d.jsx)("div",{"aria-hidden":!0,className:(0,f.cn)("pointer-events-none absolute left-0 top-0 bottom-0 w-8 bg-gradient-to-r from-bg-surface to-transparent transition-opacity duration-150",g?"opacity-100":"opacity-0")}),(0,d.jsx)("div",{"aria-hidden":!0,className:(0,f.cn)("pointer-events-none absolute right-0 top-0 bottom-0 w-8 bg-gradient-to-l from-bg-surface to-transparent transition-opacity duration-150",i?"opacity-100":"opacity-0")})]})}},45362:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>D.a,__next_app__:()=>J,handler:()=>L,pages:()=>I,routeModule:()=>K,tree:()=>H});var d=c(49754),e=c(9117),f=c(46595),g=c(32324),h=c(39326),i=c(38928),j=c(20175),k=c(12),l=c(54290),m=c(12696),n=c(82802),o=c(77533),p=c(45229),q=c(32822),r=c(261),s=c(26453),t=c(52474),u=c(26713),v=c(51356),w=c(62685),x=c(36225),y=c(63446),z=c(2762),A=c(45742),B=c(86439),C=c(81170),D=c.n(C),E=c(62506),F=c(91203),G={};for(let a in E)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(G[a]=()=>E[a]);c.d(b,G);let H={children:["",{children:["settings",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,80027)),"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/settings/page.tsx"]}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,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/settings/page.tsx"],J={require:c,loadChunk:()=>Promise.resolve()},K=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/settings/page",pathname:"/settings",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:H},distDir:".next",relativeProjectDir:""});async function L(a,b,d){var C;let G="/settings/page";"/index"===G&&(G="/");let M=(0,h.getRequestMeta)(a,"postponed"),N=(0,h.getRequestMeta)(a,"minimalMode"),O=await K.prepare(a,b,{srcPage:G,multiZoneDraftMode:!1});if(!O)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:P,query:Q,params:R,parsedUrl:S,pageIsDynamic:T,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,serverActionsManifest:X,clientReferenceManifest:Y,subresourceIntegrityManifest:Z,prerenderManifest:$,isDraftMode:_,resolvedPathname:aa,revalidateOnlyGenerated:ab,routerServerContext:ac,nextConfig:ad,interceptionRoutePatterns:ae}=O,af=S.pathname||"/",ag=(0,r.normalizeAppPath)(G),{isOnDemandRevalidate:ah}=O,ai=K.match(af,$),aj=!!$.routes[aa],ak=!!(ai||aj||$.routes[ag]),al=a.headers["user-agent"]||"",am=(0,u.getBotType)(al),an=(0,p.isHtmlBotRequest)(a),ao=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[t.NEXT_ROUTER_PREFETCH_HEADER],ap=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[t.RSC_HEADER],aq=(0,s.getIsPossibleServerAction)(a),ar=(0,m.checkIsAppPPREnabled)(ad.experimental.ppr)&&(null==(C=$.routes[ag]??$.dynamicRoutes[ag])?void 0:C.renderingMode)==="PARTIALLY_STATIC",as=!1,at=!1,au=ar?M:void 0,av=ar&&ap&&!ao,aw=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ax=!al||(0,p.shouldServeStreamingMetadata)(al,ad.htmlLimitedBots);an&&ar&&(ak=!1,ax=!1);let ay=!0===K.isDev||!ak||"string"==typeof M||av,az=an&&ar,aA=null;_||!ak||ay||aq||au||av||(aA=aa);let aB=aA;!aB&&K.isDev&&(aB=aa),K.isDev||_||!ak||!ap||av||(0,k.d)(a.headers);let aC={...E,tree:H,pages:I,GlobalError:D(),handler:L,routeModule:K,__next_app__:J};X&&Y&&(0,o.setReferenceManifestsSingleton)({page:G,clientReferenceManifest:Y,serverActionsManifest:X,serverModuleMap:(0,q.createServerModuleMap)({serverActionsManifest:X})});let aD=a.method||"GET",aE=(0,g.getTracer)(),aF=aE.getActiveScopeSpan();try{let f=K.getVaryHeader(aa,ae);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return K.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aE.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aD} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aD} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:Q,params:R,page:ag,sharedContext:{buildId:P},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aC,Component:(0,j.T)(aC),params:R,routeModule:K,page:G,postponed:f,shouldWaitOnAllReady:az,serveStreamingMetadata:ax,supportsDynamicResponse:"string"==typeof f||ay,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,subresourceIntegrityManifest:Z,serverActionsManifest:X,clientReferenceManifest:Y,setIsrStatus:null==ac?void 0:ac.setIsrStatus,dir:c(33873).join(process.cwd(),K.relativeProjectDir),isDraftMode:_,isRevalidate:ak&&!f&&!av,botType:am,isOnDemandRevalidate:ah,isPossibleServerAction:aq,assetPrefix:ad.assetPrefix,nextConfigOutput:ad.output,crossOrigin:ad.crossOrigin,trailingSlash:ad.trailingSlash,previewProps:$.preview,deploymentId:ad.deploymentId,enableTainting:ad.experimental.taint,htmlLimitedBots:ad.htmlLimitedBots,devtoolSegmentExplorer:ad.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ad.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ad.experimental.cacheLife,basePath:ad.basePath,serverActions:ad.experimental.serverActions,...as?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:as}:{},experimental:{isRoutePPREnabled:ar,expireTime:ad.expireTime,staleTimes:ad.experimental.staleTimes,cacheComponents:!!ad.experimental.cacheComponents,clientSegmentCache:!!ad.experimental.clientSegmentCache,clientParamParsing:!!ad.experimental.clientParamParsing,dynamicOnHover:!!ad.experimental.dynamicOnHover,inlineCss:!!ad.experimental.inlineCss,authInterrupts:!!ad.experimental.authInterrupts,clientTraceMetadata:ad.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>K.onRequestError(a,b,d,ac),err:(0,h.getRequestMeta)(a,"invokeError"),dev:K.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[y.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,ak&&(null==n?void 0:n.revalidate)===0&&!K.isDev&&!ar){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${aa}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
|
|
2
|
-
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:v.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},o=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===K.isDev,l=c||b.writableEnded;if(ah&&ab&&!f&&!N)return(null==ac?void 0:ac.render404)?await ac.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ai&&(j=(0,w.parseFallbackField)(ai.fallback)),j===w.FallbackMode.PRERENDER&&(0,u.isBot)(al)&&(!ar||an)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ah=!0),ah&&(j!==w.FallbackMode.NOT_FOUND||f)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),!N&&j!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aB&&!l&&!_&&T&&(k||!aj)){let b;if((k||ai)&&j===w.FallbackMode.NOT_FOUND)throw new B.NoFallbackError;if(ar&&!ap){let c="string"==typeof(null==ai?void 0:ai.fallback)?ai.fallback:k?ag:null;if(b=await K.handleResponse({cacheKey:c,req:a,nextConfig:ad,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:$,isRoutePPREnabled:ar,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||at?(0,n.u)(ag):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let o=ah||g||!au?void 0:au;if(as&&void 0!==o)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:v.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=T&&ar&&((0,h.getRequestMeta)(a,"renderFallbackShell")||at)?(0,n.u)(af):null;return m({span:i,postponed:o,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,n=await K.handleResponse({cacheKey:aA,responseGenerator:a=>o({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ah,isRoutePPREnabled:ar,req:a,nextConfig:ad,prerenderManifest:$,waitUntil:d.waitUntil});if(_&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),K.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!n){if(aA)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=n.value)?void 0:f.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=n.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof n.value.postponed;ak&&!av&&(!p||ao)&&(N||b.setHeader("x-nextjs-cache",ah?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b.setHeader(t.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=n;if(au)l={revalidate:0,expire:void 0};else if(N&&ap&&!ao&&ar)l={revalidate:0,expire:void 0};else if(!K.isDev)if(_)l={revalidate:0,expire:void 0};else if(ak){if(n.cacheControl)if("number"==typeof n.cacheControl.revalidate){if(n.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${n.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:n.cacheControl.revalidate,expire:(null==(j=n.cacheControl)?void 0:j.expire)??ad.expireTime}}else l={revalidate:y.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(n.cacheControl=l,"string"==typeof aw&&(null==q?void 0:q.kind)===v.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];N&&ak&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(aw);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(d,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...n,value:{...n.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&au)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(N&&ak||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(N&&ak&&s&&"string"==typeof s&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,s),!q.status||ap&&ar||(b.statusCode=q.status),!N&&q.status&&F.RedirectStatusCode[q.status]&&ap&&(b.statusCode=200),p&&b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"1"),ap&&!_){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:q.html,cacheControl:av?{revalidate:0,expire:void 0}:n.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(q.rscData,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl})}let u=q.html;if(!p||N||ap)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:n.cacheControl});if(as)return u.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}});let w=new TransformStream;return u.push(w.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(w.writable)}).catch(a=>{w.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}})};if(!aF)return await aE.withPropagatedContext(a.headers,()=>aE.trace(i.BaseServerSpan.handleRequest,{spanName:`${aD} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aD,"http.target":a.url}},p));await p(aF)}catch(b){throw b instanceof B.NoFallbackError||await K.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:ak,isOnDemandRevalidate:ah})},ac),b}}},46796:(a,b,c)=>{"use strict";c.d(b,{ev:()=>f,n$:()=>h,rY:()=>g});var d=c(86802),e=c(60704);async function f(a){let b=await (0,e.Fw)(),c=b.length>=2,f=a??void 0;if("all"===f&&c)return"all";if(f&&(0,e.rl)(f))return f;let g=await (0,d.UL)(),h=g.get("ccgauge_source")?.value;if("all"===h&&c)return"all";let i=h&&(0,e.rl)(h)?h:e.Gr;return b.length>0&&!b.includes(i)?b[0]:i}function g(a,b){return"all"===b?a:a.filter(a=>a.source===b)}function h(a){return"all"===a?e.jt.slice():[a]}},48161:a=>{"use strict";a.exports=require("node:os")},48507:(a,b,c)=>{"use strict";c.d(b,{ScanRefresh:()=>h});var d=c(21124),e=c(38301),f=c(42378),g=c(15519);function h(){let a=(0,g.kj)(),[b,c]=(0,e.useState)(!1),h=(0,f.useRouter)();async function i(){c(!0);try{await fetch("/api/scan",{method:"POST",cache:"no-store"}),h.refresh()}finally{c(!1)}}return(0,d.jsx)("button",{onClick:i,disabled:b,className:"btn",children:a(b?"settings.rescanning":"settings.rescan")})}},60505:(a,b,c)=>{"use strict";c.d(b,{PricingTable:()=>i});var d=c(21124),e=c(38301),f=c(15514),g=c(15519),h=c(41573);function i({rows:a}){let b=(0,g.kj)(),[c,i]=(0,e.useState)(""),[k,l]=(0,e.useState)("model"),[m,n]=(0,e.useState)("asc");function o(a){a===k?n("asc"===m?"desc":"asc"):(l(a),n("model"===a?"asc":"desc"))}let p=(0,e.useMemo)(()=>{let b=c.trim().toLowerCase();return b?a.filter(a=>a.model.toLowerCase().includes(b)||(0,f.P6)(a.model).toLowerCase().includes(b)):a},[a,c]),q=(0,e.useMemo)(()=>{let a=[...p];return a.sort((a,b)=>{if("model"===k){let c=a.model.localeCompare(b.model);return"asc"===m?c:-c}let c=a[k],d=b[k];return c===d?0:"asc"===m?c<d?-1:1:c<d?1:-1}),a},[p,k,m]);return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3 mb-3 flex-wrap",children:[(0,d.jsx)("input",{value:c,onChange:a=>i(a.target.value),placeholder:b("common.searchPlaceholder"),"aria-label":b("common.searchPlaceholder"),className:"px-3 py-1.5 text-sm rounded-button border border-border bg-bg-surface focus:outline-none focus:border-border-hi w-72 placeholder:text-text-tertiary text-text-primary"}),(0,d.jsx)("span",{className:"text-xs text-text-tertiary tabular-nums",children:b("common.rows",{count:q.length.toLocaleString()})})]}),(0,d.jsx)(h.H,{children:(0,d.jsxs)("table",{className:"w-full text-sm",children:[(0,d.jsx)("thead",{children:(0,d.jsxs)("tr",{className:"border-b border-border",children:[(0,d.jsx)(j,{sorted:"model"===k,dir:m,onClick:()=>o("model"),children:b("settings.pricing.col.model")}),(0,d.jsx)(j,{align:"right",sorted:"input"===k,dir:m,onClick:()=>o("input"),children:b("settings.pricing.col.input")}),(0,d.jsx)(j,{align:"right",sorted:"output"===k,dir:m,onClick:()=>o("output"),children:b("settings.pricing.col.output")}),(0,d.jsx)(j,{align:"right",sorted:"cacheCreation5m"===k,dir:m,onClick:()=>o("cacheCreation5m"),children:b("settings.pricing.col.write5m")}),(0,d.jsx)(j,{align:"right",sorted:"cacheCreation1h"===k,dir:m,onClick:()=>o("cacheCreation1h"),children:b("settings.pricing.col.write1h")}),(0,d.jsx)(j,{align:"right",sorted:"cacheRead"===k,dir:m,onClick:()=>o("cacheRead"),children:b("settings.pricing.col.read")})]})}),(0,d.jsxs)("tbody",{children:[q.map(a=>(0,d.jsxs)("tr",{className:"border-b border-border last:border-b-0 hover:bg-bg-surface-hi/30",children:[(0,d.jsx)("td",{className:"px-3 py-2 text-text-primary",title:a.model,children:(0,f.P6)(a.model)}),(0,d.jsx)("td",{className:"px-3 py-2 num-mono text-right",children:(0,f.az)(a.input)}),(0,d.jsx)("td",{className:"px-3 py-2 num-mono text-right",children:(0,f.az)(a.output)}),(0,d.jsx)("td",{className:"px-3 py-2 num-mono text-right text-text-secondary",children:(0,f.az)(a.cacheCreation5m)}),(0,d.jsx)("td",{className:"px-3 py-2 num-mono text-right text-text-secondary",children:(0,f.az)(a.cacheCreation1h)}),(0,d.jsx)("td",{className:"px-3 py-2 num-mono text-right text-success",children:(0,f.az)(a.cacheRead)})]},a.model)),0===q.length&&(0,d.jsx)("tr",{children:(0,d.jsx)("td",{colSpan:6,className:"px-3 py-8 text-center text-text-tertiary text-sm",children:b("common.noMatchingRows")})})]})]})})]})}function j({children:a,align:b="left",sorted:c,dir:e,onClick:g}){return(0,d.jsx)("th",{onClick:g,className:(0,f.cn)("px-3 py-2 text-xs font-medium text-text-tertiary uppercase tracking-wide whitespace-nowrap","right"===b?"text-right":"text-left",g&&"cursor-pointer hover:text-text-primary select-none"),children:(0,d.jsxs)("span",{className:"inline-flex items-center gap-1",children:[a,c&&(0,d.jsx)("span",{className:"text-[10px]",children:"asc"===e?"▲":"▼"})]})})}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{"use strict";a.exports=require("node:fs")},76760:a=>{"use strict";a.exports=require("node:path")},80027:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>q,dynamic:()=>o,revalidate:()=>p});var d=c(75338),e=c(49098),f=c(31519),g=c(71310),h=c(60704),i=c(37583),j=c(84701),k=c(87639),l=c(98392),m=c(29509),n=c(91719);let o="force-dynamic",p=0;async function q(){let a=await (0,n.yO)(),b=await (0,n.sG)(),c=await (0,e.So)(),o=(0,e.TF)(),p=await (0,h.Fw)(),q=(0,h.R0)(),s=(0,e.mo)(),t={claude:Object.entries(f.V).map(([a,b])=>({model:a,input:b.input,output:b.output,cacheCreation5m:b.cacheCreation5m,cacheCreation1h:b.cacheCreation1h,cacheRead:b.cacheRead})),codex:Object.entries(g._G).map(([a,b])=>({model:a,input:b.input,output:b.output,cacheCreation5m:b.cacheCreation5m,cacheCreation1h:b.cacheCreation1h,cacheRead:b.cacheRead}))};return(0,d.jsxs)(i.qK,{title:a("settings.title"),desc:a("settings.subtitle"),children:[(0,d.jsx)(i.wn,{title:a("settings.preferences.title"),children:(0,d.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-4 p-3 rounded-button border border-border",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"font-medium text-text-primary text-sm",children:a("settings.preferences.language")}),(0,d.jsx)("div",{className:"text-xs text-text-tertiary mt-0.5",children:"English / 中文"})]}),(0,d.jsx)(l.LanguageSwitcher,{})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between gap-4 p-3 rounded-button border border-border",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"font-medium text-text-primary text-sm",children:a("settings.preferences.theme")}),(0,d.jsxs)("div",{className:"text-xs text-text-tertiary mt-0.5",children:[a("settings.theme.light")," / ",a("settings.theme.dark")," / ",a("settings.theme.system")]})]}),(0,d.jsx)(m.ThemeSwitcher,{})]})]})}),(0,d.jsxs)(i.wn,{title:a("settings.dataSources.title"),desc:a("settings.dataSources.desc"),children:[(0,d.jsx)("div",{className:"space-y-5",children:o.map(({source:e,dirs:f})=>{let g=q.find(a=>a.id===e),h=p.includes(e),i=c.bySource.find(a=>a.source===e);return(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("img",{src:g.logoSrc,alt:"","aria-hidden":!0,className:"w-5 h-5 rounded-[4px] object-contain shrink-0"}),(0,d.jsx)("span",{className:"text-sm font-semibold text-text-primary",children:g.displayName[b]}),h?(0,d.jsx)("span",{className:"pill bg-success/10 text-success border border-success/20 text-xs",children:a("settings.dataSources.active")}):(0,d.jsx)("span",{className:"pill bg-bg-surface-hi text-text-tertiary text-xs",children:a("settings.dataSources.notPresent")})]}),i&&h&&(0,d.jsxs)("span",{className:"text-xs text-text-tertiary num-mono",children:[i.filesScanned," files \xb7 ",i.assistantRecords.toLocaleString()," records"]})]}),(0,d.jsx)("div",{className:"space-y-1.5",children:f.map(b=>{let e=c.stats.scannedDirs.includes(b);return(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3 px-3 py-2 rounded-button border border-border bg-bg-surface-hi/30",children:[(0,d.jsx)("span",{className:"num-mono text-sm text-text-primary truncate",children:b}),(0,d.jsx)("span",{className:`pill text-xs whitespace-nowrap ${e?"bg-success/10 text-success border border-success/20":"bg-bg-surface-hi text-text-tertiary"}`,children:e?a("settings.dataSources.active"):a("settings.dataSources.notPresent")})]},b)})})]},e)})}),(0,d.jsx)("div",{className:"mt-4 text-xs text-text-secondary",children:a("settings.dataSources.envHint",{env1:"CCGAUGE_CONFIG_DIR / CLAUDE_CONFIG_DIR",env2:"CCGAUGE_CODEX_DIR / CODEX_HOME",appendix:"/projects \xb7 /sessions"})}),(0,d.jsx)("div",{className:"mt-4",children:(0,d.jsx)(j.ScanRefresh,{})})]}),(0,d.jsxs)(i.wn,{title:a("settings.scanStats.title"),desc:a("settings.indexer.desc"),children:[(0,d.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-3 text-sm",children:[(0,d.jsx)(r,{label:a("settings.scanStats.files"),value:String(c.stats.filesScanned)}),(0,d.jsx)(r,{label:a("settings.scanStats.records"),value:c.stats.recordsParsed.toLocaleString()}),(0,d.jsx)(r,{label:a("settings.scanStats.assistant"),value:c.stats.assistantRecords.toLocaleString()}),(0,d.jsx)(r,{label:a("settings.indexer.lastIndexedAt"),value:s.lastIndexedAt?new Date(s.lastIndexedAt).toLocaleTimeString():"—"}),(0,d.jsx)(r,{label:a("settings.indexer.indexDuration"),value:null!=s.indexDurationMs?`${s.indexDurationMs} ms`:"—"}),(0,d.jsx)(r,{label:a("settings.indexer.watchers"),value:String(s.watchers)}),(0,d.jsx)(r,{label:a("settings.indexer.loadedFromDisk"),value:s.loadedFromDisk?a("common.yes"):a("common.no")}),(0,d.jsx)(r,{label:a("settings.indexer.status"),value:s.isIndexing?a("settings.indexer.indexing"):a("settings.indexer.idle")})]}),s.errors.length>0&&(0,d.jsxs)("div",{className:"mt-4 text-xs text-warning space-y-1",children:[(0,d.jsx)("div",{className:"font-medium",children:a("settings.indexer.recentErrors")}),(0,d.jsx)("ul",{className:"list-disc list-inside space-y-0.5 num-mono text-text-tertiary",children:s.errors.slice(-3).map((a,b)=>(0,d.jsx)("li",{className:"truncate",title:a,children:a},b))})]})]}),q.map(c=>{let e=t[c.id];return e&&0!==e.length?(0,d.jsx)(i.wn,{title:`${c.displayName[b]} \xb7 ${a("settings.pricing.title")}`,desc:c.costFootnoteKey?a(c.costFootnoteKey):a("settings.pricing.desc"),children:(0,d.jsx)(k.PricingTable,{rows:e})},c.id):null}),(0,d.jsx)(i.wn,{title:a("settings.about.title"),desc:a("settings.about.subtitle",{version:"1.1.4"}),children:(0,d.jsxs)("ul",{className:"text-sm text-text-secondary space-y-1.5",children:[(0,d.jsxs)("li",{children:["• ",a("settings.about.line1")]}),(0,d.jsxs)("li",{children:["• ",a("settings.about.line2")]}),(0,d.jsxs)("li",{children:["• ",a("settings.about.line3")]}),(0,d.jsxs)("li",{children:["• ",a("settings.about.line4")]})]})})]})}function r({label:a,value:b}){return(0,d.jsxs)("div",{className:"card card-pad py-4",children:[(0,d.jsx)("div",{className:"label",children:a}),(0,d.jsx)("div",{className:"num-mid mt-1",children:b})]})}},80481:a=>{"use strict";a.exports=require("node:readline")},80575:(a,b,c)=>{Promise.resolve().then(c.bind(c,95546)),Promise.resolve().then(c.bind(c,60505)),Promise.resolve().then(c.bind(c,48507)),Promise.resolve().then(c.bind(c,28607))},84701:(a,b,c)=>{"use strict";c.d(b,{ScanRefresh:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call ScanRefresh() from the server but ScanRefresh is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/scan-refresh.tsx","ScanRefresh")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87639:(a,b,c)=>{"use strict";c.d(b,{PricingTable:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call PricingTable() from the server but PricingTable is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/pricing-table.tsx","PricingTable")},95012:(a,b,c)=>{"use strict";c.d(b,{BC:()=>o,PJ:()=>n,R8:()=>j,a3:()=>k,az:()=>i,cn:()=>f,jh:()=>h,om:()=>l,r6:()=>m});var d=c(81171),e=c(11167);function f(...a){return(0,e.QP)((0,d.$)(a))}function g(a,b){return new Intl.NumberFormat("en-US",{maximumFractionDigits:b?.maxFrac??0}).format(a)}function h(a,b="en"){return Number.isFinite(a)?"zh"===b?a>=1e8?(a/1e8).toFixed(2)+"亿":a>=1e4?(a/1e4).toFixed(1)+"万":g(a):a>=1e9?(a/1e9).toFixed(2)+"B":a>=1e6?(a/1e6).toFixed(2)+"M":a>=1e3?(a/1e3).toFixed(1)+"K":g(a):"0"}function i(a,b){return new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:b?.minFrac??2,maximumFractionDigits:b?.maxFrac??2}).format(a)}function j(a,b=1){return Number.isFinite(a)?`${(100*a).toFixed(b)}%`:"0%"}function k(a){if(a<1e3)return`${a}ms`;let b=Math.floor(a/1e3);if(b<60)return`${b}s`;let c=Math.floor(b/60);if(c<60){let a=b%60;return a?`${c}m ${a}s`:`${c}m`}let d=Math.floor(c/60),e=c%60;return e?`${d}h ${e}m`:`${d}h`}function l(a,b="en"){let c="string"==typeof a||"number"==typeof a?new Date(a):a,d=Date.now()-c.getTime(),e="zh"===b;if(d<0)return e?"刚刚":"just now";let f=Math.floor(d/1e3);if(f<60)return e?"刚刚":`${f}s ago`;let g=Math.floor(f/60);if(g<60)return e?`${g} 分钟前`:`${g}m ago`;let h=Math.floor(g/60);if(h<24)return e?`${h} 小时前`:`${h}h ago`;let i=Math.floor(h/24);if(i<7)return e?`${i} 天前`:`${i}d ago`;let j=Math.floor(i/7);if(j<5)return e?`${j} 周前`:`${j}w ago`;let k=Math.floor(i/30);if(k<12)return e?`${k} 个月前`:`${k}mo ago`;let m=Math.floor(i/365);return e?`${m} 年前`:`${m}y ago`}function m(a){let b="string"==typeof a||"number"==typeof a?new Date(a):a;if(Number.isNaN(b.getTime()))return"";let c=b.getFullYear(),d=String(b.getMonth()+1).padStart(2,"0"),e=String(b.getDate()).padStart(2,"0"),f=String(b.getHours()).padStart(2,"0"),g=String(b.getMinutes()).padStart(2,"0"),h=String(b.getSeconds()).padStart(2,"0");return`${c}-${d}-${e} ${f}:${g}:${h}`}function n(a){if(!a)return"(unknown)";let b=a.replace(/[/\\]+$/,"").split(/[/\\]+/);return b[b.length-1]||a}function o(a,b=8){return a?a.replace(/-/g,"").slice(0,b):""}},98392:(a,b,c)=>{"use strict";c.d(b,{LanguageSwitcher:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call LanguageSwitcher() from the server but LanguageSwitcher is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/language-switcher.tsx","LanguageSwitcher")}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[331,802,153,993,716,98,567],()=>b(b.s=45362));module.exports=c})();
|
|
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}}},46796:(a,b,c)=>{"use strict";c.d(b,{ev:()=>f,n$:()=>h,rY:()=>g});var d=c(86802),e=c(60704);async function f(a){let b=await (0,e.Fw)(),c=b.length>=2,f=a??void 0;if("all"===f&&c)return"all";if(f&&(0,e.rl)(f))return f;let g=await (0,d.UL)(),h=g.get("ccgauge_source")?.value;if("all"===h&&c)return"all";let i=h&&(0,e.rl)(h)?h:e.Gr;return b.length>0&&!b.includes(i)?b[0]:i}function g(a,b){return"all"===b?a:a.filter(a=>a.source===b)}function h(a){return"all"===a?e.jt.slice():[a]}},48161:a=>{"use strict";a.exports=require("node:os")},48507:(a,b,c)=>{"use strict";c.d(b,{ScanRefresh:()=>h});var d=c(21124),e=c(38301),f=c(42378),g=c(15519);function h(){let a=(0,g.kj)(),[b,c]=(0,e.useState)(!1),h=(0,f.useRouter)();async function i(){c(!0);try{await fetch("/api/scan",{method:"POST",cache:"no-store"}),h.refresh()}finally{c(!1)}}return(0,d.jsx)("button",{onClick:i,disabled:b,className:"btn",children:a(b?"settings.rescanning":"settings.rescan")})}},60505:(a,b,c)=>{"use strict";c.d(b,{PricingTable:()=>i});var d=c(21124),e=c(38301),f=c(15514),g=c(15519),h=c(41573);function i({rows:a}){let b=(0,g.kj)(),[c,i]=(0,e.useState)(""),[k,l]=(0,e.useState)("model"),[m,n]=(0,e.useState)("asc");function o(a){a===k?n("asc"===m?"desc":"asc"):(l(a),n("model"===a?"asc":"desc"))}let p=(0,e.useMemo)(()=>{let b=c.trim().toLowerCase();return b?a.filter(a=>a.model.toLowerCase().includes(b)||(0,f.P6)(a.model).toLowerCase().includes(b)):a},[a,c]),q=(0,e.useMemo)(()=>{let a=[...p];return a.sort((a,b)=>{if("model"===k){let c=a.model.localeCompare(b.model);return"asc"===m?c:-c}let c=a[k],d=b[k];return c===d?0:"asc"===m?c<d?-1:1:c<d?1:-1}),a},[p,k,m]);return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3 mb-3 flex-wrap",children:[(0,d.jsx)("input",{value:c,onChange:a=>i(a.target.value),placeholder:b("common.searchPlaceholder"),"aria-label":b("common.searchPlaceholder"),className:"px-3 py-1.5 text-sm rounded-button border border-border bg-bg-surface focus:outline-none focus:border-border-hi w-72 placeholder:text-text-tertiary text-text-primary"}),(0,d.jsx)("span",{className:"text-xs text-text-tertiary tabular-nums",children:b("common.rows",{count:q.length.toLocaleString()})})]}),(0,d.jsx)(h.H,{children:(0,d.jsxs)("table",{className:"w-full text-sm",children:[(0,d.jsx)("thead",{children:(0,d.jsxs)("tr",{className:"border-b border-border",children:[(0,d.jsx)(j,{sorted:"model"===k,dir:m,onClick:()=>o("model"),children:b("settings.pricing.col.model")}),(0,d.jsx)(j,{align:"right",sorted:"input"===k,dir:m,onClick:()=>o("input"),children:b("settings.pricing.col.input")}),(0,d.jsx)(j,{align:"right",sorted:"output"===k,dir:m,onClick:()=>o("output"),children:b("settings.pricing.col.output")}),(0,d.jsx)(j,{align:"right",sorted:"cacheCreation5m"===k,dir:m,onClick:()=>o("cacheCreation5m"),children:b("settings.pricing.col.write5m")}),(0,d.jsx)(j,{align:"right",sorted:"cacheCreation1h"===k,dir:m,onClick:()=>o("cacheCreation1h"),children:b("settings.pricing.col.write1h")}),(0,d.jsx)(j,{align:"right",sorted:"cacheRead"===k,dir:m,onClick:()=>o("cacheRead"),children:b("settings.pricing.col.read")})]})}),(0,d.jsxs)("tbody",{children:[q.map(a=>(0,d.jsxs)("tr",{className:"border-b border-border last:border-b-0 hover:bg-bg-surface-hi/30",children:[(0,d.jsx)("td",{className:"px-3 py-2 text-text-primary",title:a.model,children:(0,f.P6)(a.model)}),(0,d.jsx)("td",{className:"px-3 py-2 num-mono text-right",children:(0,f.az)(a.input)}),(0,d.jsx)("td",{className:"px-3 py-2 num-mono text-right",children:(0,f.az)(a.output)}),(0,d.jsx)("td",{className:"px-3 py-2 num-mono text-right text-text-secondary",children:(0,f.az)(a.cacheCreation5m)}),(0,d.jsx)("td",{className:"px-3 py-2 num-mono text-right text-text-secondary",children:(0,f.az)(a.cacheCreation1h)}),(0,d.jsx)("td",{className:"px-3 py-2 num-mono text-right text-success",children:(0,f.az)(a.cacheRead)})]},a.model)),0===q.length&&(0,d.jsx)("tr",{children:(0,d.jsx)("td",{colSpan:6,className:"px-3 py-8 text-center text-text-tertiary text-sm",children:b("common.noMatchingRows")})})]})]})})]})}function j({children:a,align:b="left",sorted:c,dir:e,onClick:g}){return(0,d.jsx)("th",{onClick:g,className:(0,f.cn)("px-3 py-2 text-xs font-medium text-text-tertiary uppercase tracking-wide whitespace-nowrap","right"===b?"text-right":"text-left",g&&"cursor-pointer hover:text-text-primary select-none"),children:(0,d.jsxs)("span",{className:"inline-flex items-center gap-1",children:[a,c&&(0,d.jsx)("span",{className:"text-[10px]",children:"asc"===e?"▲":"▼"})]})})}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{"use strict";a.exports=require("node:fs")},76760:a=>{"use strict";a.exports=require("node:path")},80027:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>q,dynamic:()=>o,revalidate:()=>p});var d=c(75338),e=c(49098),f=c(31519),g=c(71310),h=c(60704),i=c(37583),j=c(84701),k=c(87639),l=c(98392),m=c(29509),n=c(91719);let o="force-dynamic",p=0;async function q(){let a=await (0,n.yO)(),b=await (0,n.sG)(),c=await (0,e.So)(),o=(0,e.TF)(),p=await (0,h.Fw)(),q=(0,h.R0)(),s=(0,e.mo)(),t={claude:Object.entries(f.V).map(([a,b])=>({model:a,input:b.input,output:b.output,cacheCreation5m:b.cacheCreation5m,cacheCreation1h:b.cacheCreation1h,cacheRead:b.cacheRead})),codex:Object.entries(g._G).map(([a,b])=>({model:a,input:b.input,output:b.output,cacheCreation5m:b.cacheCreation5m,cacheCreation1h:b.cacheCreation1h,cacheRead:b.cacheRead}))};return(0,d.jsxs)(i.qK,{title:a("settings.title"),desc:a("settings.subtitle"),children:[(0,d.jsx)(i.wn,{title:a("settings.preferences.title"),children:(0,d.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-4 p-3 rounded-button border border-border",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"font-medium text-text-primary text-sm",children:a("settings.preferences.language")}),(0,d.jsx)("div",{className:"text-xs text-text-tertiary mt-0.5",children:"English / 中文"})]}),(0,d.jsx)(l.LanguageSwitcher,{})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between gap-4 p-3 rounded-button border border-border",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"font-medium text-text-primary text-sm",children:a("settings.preferences.theme")}),(0,d.jsxs)("div",{className:"text-xs text-text-tertiary mt-0.5",children:[a("settings.theme.light")," / ",a("settings.theme.dark")," / ",a("settings.theme.system")]})]}),(0,d.jsx)(m.ThemeSwitcher,{})]})]})}),(0,d.jsxs)(i.wn,{title:a("settings.dataSources.title"),desc:a("settings.dataSources.desc"),children:[(0,d.jsx)("div",{className:"space-y-5",children:o.map(({source:e,dirs:f})=>{let g=q.find(a=>a.id===e),h=p.includes(e),i=c.bySource.find(a=>a.source===e);return(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("img",{src:g.logoSrc,alt:"","aria-hidden":!0,className:"w-5 h-5 rounded-[4px] object-contain shrink-0"}),(0,d.jsx)("span",{className:"text-sm font-semibold text-text-primary",children:g.displayName[b]}),h?(0,d.jsx)("span",{className:"pill bg-success/10 text-success border border-success/20 text-xs",children:a("settings.dataSources.active")}):(0,d.jsx)("span",{className:"pill bg-bg-surface-hi text-text-tertiary text-xs",children:a("settings.dataSources.notPresent")})]}),i&&h&&(0,d.jsxs)("span",{className:"text-xs text-text-tertiary num-mono",children:[i.filesScanned," files \xb7 ",i.assistantRecords.toLocaleString()," records"]})]}),(0,d.jsx)("div",{className:"space-y-1.5",children:f.map(b=>{let e=c.stats.scannedDirs.includes(b);return(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3 px-3 py-2 rounded-button border border-border bg-bg-surface-hi/30",children:[(0,d.jsx)("span",{className:"num-mono text-sm text-text-primary truncate",children:b}),(0,d.jsx)("span",{className:`pill text-xs whitespace-nowrap ${e?"bg-success/10 text-success border border-success/20":"bg-bg-surface-hi text-text-tertiary"}`,children:e?a("settings.dataSources.active"):a("settings.dataSources.notPresent")})]},b)})})]},e)})}),(0,d.jsx)("div",{className:"mt-4 text-xs text-text-secondary",children:a("settings.dataSources.envHint",{env1:"CCGAUGE_CONFIG_DIR / CLAUDE_CONFIG_DIR",env2:"CCGAUGE_CODEX_DIR / CODEX_HOME",appendix:"/projects \xb7 /sessions"})}),(0,d.jsx)("div",{className:"mt-4",children:(0,d.jsx)(j.ScanRefresh,{})})]}),(0,d.jsxs)(i.wn,{title:a("settings.scanStats.title"),desc:a("settings.indexer.desc"),children:[(0,d.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-3 text-sm",children:[(0,d.jsx)(r,{label:a("settings.scanStats.files"),value:String(c.stats.filesScanned)}),(0,d.jsx)(r,{label:a("settings.scanStats.records"),value:c.stats.recordsParsed.toLocaleString()}),(0,d.jsx)(r,{label:a("settings.scanStats.assistant"),value:c.stats.assistantRecords.toLocaleString()}),(0,d.jsx)(r,{label:a("settings.indexer.lastIndexedAt"),value:s.lastIndexedAt?new Date(s.lastIndexedAt).toLocaleTimeString():"—"}),(0,d.jsx)(r,{label:a("settings.indexer.indexDuration"),value:null!=s.indexDurationMs?`${s.indexDurationMs} ms`:"—"}),(0,d.jsx)(r,{label:a("settings.indexer.watchers"),value:String(s.watchers)}),(0,d.jsx)(r,{label:a("settings.indexer.loadedFromDisk"),value:s.loadedFromDisk?a("common.yes"):a("common.no")}),(0,d.jsx)(r,{label:a("settings.indexer.status"),value:s.isIndexing?a("settings.indexer.indexing"):a("settings.indexer.idle")})]}),s.errors.length>0&&(0,d.jsxs)("div",{className:"mt-4 text-xs text-warning space-y-1",children:[(0,d.jsx)("div",{className:"font-medium",children:a("settings.indexer.recentErrors")}),(0,d.jsx)("ul",{className:"list-disc list-inside space-y-0.5 num-mono text-text-tertiary",children:s.errors.slice(-3).map((a,b)=>(0,d.jsx)("li",{className:"truncate",title:a,children:a},b))})]})]}),q.map(c=>{let e=t[c.id];return e&&0!==e.length?(0,d.jsx)(i.wn,{title:`${c.displayName[b]} \xb7 ${a("settings.pricing.title")}`,desc:c.costFootnoteKey?a(c.costFootnoteKey):a("settings.pricing.desc"),children:(0,d.jsx)(k.PricingTable,{rows:e})},c.id):null}),(0,d.jsx)(i.wn,{title:a("settings.about.title"),desc:a("settings.about.subtitle",{version:"1.1.5"}),children:(0,d.jsxs)("ul",{className:"text-sm text-text-secondary space-y-1.5",children:[(0,d.jsxs)("li",{children:["• ",a("settings.about.line1")]}),(0,d.jsxs)("li",{children:["• ",a("settings.about.line2")]}),(0,d.jsxs)("li",{children:["• ",a("settings.about.line3")]}),(0,d.jsxs)("li",{children:["• ",a("settings.about.line4")]})]})})]})}function r({label:a,value:b}){return(0,d.jsxs)("div",{className:"card card-pad py-4",children:[(0,d.jsx)("div",{className:"label",children:a}),(0,d.jsx)("div",{className:"num-mid mt-1",children:b})]})}},80481:a=>{"use strict";a.exports=require("node:readline")},80575:(a,b,c)=>{Promise.resolve().then(c.bind(c,95546)),Promise.resolve().then(c.bind(c,60505)),Promise.resolve().then(c.bind(c,48507)),Promise.resolve().then(c.bind(c,28607))},84701:(a,b,c)=>{"use strict";c.d(b,{ScanRefresh:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call ScanRefresh() from the server but ScanRefresh is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/scan-refresh.tsx","ScanRefresh")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87639:(a,b,c)=>{"use strict";c.d(b,{PricingTable:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call PricingTable() from the server but PricingTable is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/pricing-table.tsx","PricingTable")},95012:(a,b,c)=>{"use strict";c.d(b,{BC:()=>o,PJ:()=>n,R8:()=>j,a3:()=>k,az:()=>i,cn:()=>f,jh:()=>h,om:()=>l,r6:()=>m});var d=c(81171),e=c(11167);function f(...a){return(0,e.QP)((0,d.$)(a))}function g(a,b){return new Intl.NumberFormat("en-US",{maximumFractionDigits:b?.maxFrac??0}).format(a)}function h(a,b="en"){return Number.isFinite(a)?"zh"===b?a>=1e8?(a/1e8).toFixed(2)+"亿":a>=1e4?(a/1e4).toFixed(1)+"万":g(a):a>=1e9?(a/1e9).toFixed(2)+"B":a>=1e6?(a/1e6).toFixed(2)+"M":a>=1e3?(a/1e3).toFixed(1)+"K":g(a):"0"}function i(a,b){return new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:b?.minFrac??2,maximumFractionDigits:b?.maxFrac??2}).format(a)}function j(a,b=1){return Number.isFinite(a)?`${(100*a).toFixed(b)}%`:"0%"}function k(a){if(a<1e3)return`${a}ms`;let b=Math.floor(a/1e3);if(b<60)return`${b}s`;let c=Math.floor(b/60);if(c<60){let a=b%60;return a?`${c}m ${a}s`:`${c}m`}let d=Math.floor(c/60),e=c%60;return e?`${d}h ${e}m`:`${d}h`}function l(a,b="en"){let c="string"==typeof a||"number"==typeof a?new Date(a):a,d=Date.now()-c.getTime(),e="zh"===b;if(d<0)return e?"刚刚":"just now";let f=Math.floor(d/1e3);if(f<60)return e?"刚刚":`${f}s ago`;let g=Math.floor(f/60);if(g<60)return e?`${g} 分钟前`:`${g}m ago`;let h=Math.floor(g/60);if(h<24)return e?`${h} 小时前`:`${h}h ago`;let i=Math.floor(h/24);if(i<7)return e?`${i} 天前`:`${i}d ago`;let j=Math.floor(i/7);if(j<5)return e?`${j} 周前`:`${j}w ago`;let k=Math.floor(i/30);if(k<12)return e?`${k} 个月前`:`${k}mo ago`;let m=Math.floor(i/365);return e?`${m} 年前`:`${m}y ago`}function m(a){let b="string"==typeof a||"number"==typeof a?new Date(a):a;if(Number.isNaN(b.getTime()))return"";let c=b.getFullYear(),d=String(b.getMonth()+1).padStart(2,"0"),e=String(b.getDate()).padStart(2,"0"),f=String(b.getHours()).padStart(2,"0"),g=String(b.getMinutes()).padStart(2,"0"),h=String(b.getSeconds()).padStart(2,"0");return`${c}-${d}-${e} ${f}:${g}:${h}`}function n(a){if(!a)return"(unknown)";let b=a.replace(/[/\\]+$/,"").split(/[/\\]+/);return b[b.length-1]||a}function o(a,b=8){return a?a.replace(/-/g,"").slice(0,b):""}},98392:(a,b,c)=>{"use strict";c.d(b,{LanguageSwitcher:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call LanguageSwitcher() from the server but LanguageSwitcher is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/language-switcher.tsx","LanguageSwitcher")}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[331,802,153,993,716,98,567],()=>b(b.s=45362));module.exports=c})();
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"/_not-found/page": "app/_not-found/page.js",
|
|
3
|
+
"/api/blocks/route": "app/api/blocks/route.js",
|
|
3
4
|
"/api/pricing/route": "app/api/pricing/route.js",
|
|
4
5
|
"/api/scan/route": "app/api/scan/route.js",
|
|
5
|
-
"/api/blocks/route": "app/api/blocks/route.js",
|
|
6
6
|
"/api/projects/route": "app/api/projects/route.js",
|
|
7
7
|
"/api/sessions/route": "app/api/sessions/route.js",
|
|
8
8
|
"/api/usage/route": "app/api/usage/route.js",
|
|
9
9
|
"/api/export/usage/route": "app/api/export/usage/route.js",
|
|
10
10
|
"/models/page": "app/models/page.js",
|
|
11
|
+
"/projects/page": "app/projects/page.js",
|
|
11
12
|
"/projects/[id]/page": "app/projects/[id]/page.js",
|
|
12
13
|
"/sessions/page": "app/sessions/page.js",
|
|
13
|
-
"/sessions/[id]/page": "app/sessions/[id]/page.js",
|
|
14
14
|
"/usage/page": "app/usage/page.js",
|
|
15
|
+
"/sessions/[id]/page": "app/sessions/[id]/page.js",
|
|
15
16
|
"/page": "app/page.js",
|
|
16
|
-
"/projects/page": "app/projects/page.js",
|
|
17
17
|
"/settings/page": "app/settings/page.js"
|
|
18
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
exports.id=716,exports.ids=[716],exports.modules={31519:(a,b,c)=>{"use strict";c.d(b,{Q:()=>e,V:()=>d});let d={"claude-opus-4-8":{input:5,output:25,cacheCreation5m:6.25,cacheCreation1h:10,cacheRead:.5},"claude-opus-4-7":{input:5,output:25,cacheCreation5m:6.25,cacheCreation1h:10,cacheRead:.5},"claude-opus-4-6":{input:5,output:25,cacheCreation5m:6.25,cacheCreation1h:10,cacheRead:.5},"claude-opus-4-5":{input:5,output:25,cacheCreation5m:6.25,cacheCreation1h:10,cacheRead:.5},"claude-sonnet-4-6":{input:3,output:15,cacheCreation5m:3.75,cacheCreation1h:6,cacheRead:.3},"claude-sonnet-4-5":{input:3,output:15,cacheCreation5m:3.75,cacheCreation1h:6,cacheRead:.3},"claude-haiku-4-5":{input:1,output:5,cacheCreation5m:1.25,cacheCreation1h:2,cacheRead:.1},"claude-haiku-3-5":{input:.8,output:4,cacheCreation5m:1,cacheCreation1h:1.6,cacheRead:.08},"claude-opus-4-1":{input:15,output:75,cacheCreation5m:18.75,cacheCreation1h:30,cacheRead:1.5},"claude-opus-4":{input:15,output:75,cacheCreation5m:18.75,cacheCreation1h:30,cacheRead:1.5},"claude-sonnet-4":{input:3,output:15,cacheCreation5m:3.75,cacheCreation1h:6,cacheRead:.3},"claude-sonnet-3-7":{input:3,output:15,cacheCreation5m:3.75,cacheCreation1h:6,cacheRead:.3},"claude-haiku-3":{input:.25,output:1.25,cacheCreation5m:.3,cacheCreation1h:.5,cacheRead:.03}},e={opus:d["claude-opus-4-8"],sonnet:d["claude-sonnet-4-6"],haiku:d["claude-haiku-4-5"]}},60704:(a,b,c)=>{"use strict";c.d(b,{jt:()=>z,Gr:()=>A,Fw:()=>F,sO:()=>B,rl:()=>D,R0:()=>C});var d=c(73024),e=c(76760),f=c.n(e),g=c(48161),h=c.n(g),i=c(80481),j=c.n(i);async function k(a){let b=(0,d.createReadStream)(a,{encoding:"utf8"}),c=j().createInterface({input:b,crlfDelay:1/0}),e=[],f=[],g=[];for await(let b of c){let c;if(b.trim()){try{c=JSON.parse(b)}catch{continue}if(c&&"object"==typeof c){if(c.uuid&&g.push([c.uuid,c.parentUuid??null]),"assistant"===c.type){let b=function(a,b){let c=a.message;if(!c)return null;let d=c.usage;if(!d)return null;let e=c.model??"";if(!e||"<synthetic>"===e)return null;let f=c.id??a.uuid??"";if(!f&&!a.requestId)return null;let g=d.cache_creation,h=Array.isArray(c.content)?c.content:[],i=[],j=!1,k="";for(let a of h)"tool_use"===a.type&&"string"==typeof a.name?i.push(a.name):"thinking"===a.type?j=!0:"text"!==a.type||"string"!=typeof a.text||k||(k=a.text.slice(0,200));return{type:"assistant",source:"claude",uuid:a.uuid??f,parentUuid:a.parentUuid??null,timestamp:a.timestamp??new Date().toISOString(),sessionId:a.sessionId??"",requestId:a.requestId??"",cwd:a.cwd??"",gitBranch:a.gitBranch,version:a.version,model:e,messageId:f,usage:{input_tokens:Number(d.input_tokens)||0,output_tokens:Number(d.output_tokens)||0,cache_creation_input_tokens:Number(d.cache_creation_input_tokens)||0,cache_read_input_tokens:Number(d.cache_read_input_tokens)||0,cache_creation_5m:Number(g?.ephemeral_5m_input_tokens)||0,cache_creation_1h:Number(g?.ephemeral_1h_input_tokens)||0},toolNames:i,hasThinking:j,textPreview:k,filePath:b,isSidechain:!0===a.isSidechain||void 0}}(c,a);b&&e.push(b)}else if("user"===c.type){let b=function(a,b){if(!a.uuid)return null;let c=a.message,d="";if(c){let a=c.content;if("string"==typeof a)d=a.slice(0,200);else if(Array.isArray(a)){for(let b of a)if("text"===b.type&&"string"==typeof b.text){d=b.text.slice(0,200);break}}}let e=!0===a.isSidechain,f=e||!!d&&function(a){let b=a.trimStart();return!!(b.startsWith("Base directory for this skill:")||b.startsWith("<system-reminder>")||b.startsWith("Caveat: The messages below were generated by"))}(d);return{type:"user",source:"claude",uuid:a.uuid,parentUuid:a.parentUuid??null,timestamp:a.timestamp??new Date().toISOString(),sessionId:a.sessionId??"",cwd:a.cwd??"",textPreview:d,isSynthetic:f,isSidechain:!!e||void 0,filePath:b}}(c,a);b&&f.push(b)}}}}return{assistant:e,user:f,parentLinks:g}}var l=c(31519);function m(a,b){if(!b)return{input:0,output:0,cacheCreation5m:0,cacheCreation1h:0,cacheRead:0,total:0,saved:0};let c=a.input_tokens/1e6*b.input,d=a.output_tokens/1e6*b.output,e=a.cache_creation_5m/1e6*b.cacheCreation5m,f=a.cache_creation_1h/1e6*b.cacheCreation1h;e+f===0&&a.cache_creation_input_tokens>0&&(e=a.cache_creation_input_tokens/1e6*b.cacheCreation5m);let g=a.cache_read_input_tokens/1e6*b.cacheRead,h=c+d+e+f+g;return{input:c,output:d,cacheCreation5m:e,cacheCreation1h:f,cacheRead:g,total:h,saved:a.cache_read_input_tokens/1e6*(b.input-b.cacheRead)}}function n(a){return a.replace(/\b\w/g,a=>a.toUpperCase())}let o=/-\d{8}$/,p=/^(vertex_ai|bedrock|anthropic)\//;async function q(a){try{let b=await d.promises.stat(a);return new Date(b.mtimeMs).toISOString()}catch{return new Date().toISOString()}}function r(a){return"string"==typeof a?a:""}function s(a){let b=Number(a);return Number.isFinite(b)?b:0}function t(a){let b=a.message;if("string"==typeof b)return b;let c=a.content;if("string"==typeof c)return c;if(Array.isArray(c))for(let a of c){let b=a?.type;if(("input_text"===b||"output_text"===b||"text"===b)&&"string"==typeof a.text)return a.text}return""}async function u(a){let b,c=(0,d.createReadStream)(a,{encoding:"utf8"}),e=j().createInterface({input:c,crlfDelay:1/0}),f=[],g=[],h=[],i="",k="",l=0,m=0,n=null,o=await q(a),p={turnId:null,cwd:"",model:"gpt-unknown",userUuid:null,toolNames:[],hasThinking:!1,pendingTextPreview:""};for await(let c of e){let d;if(!c.trim())continue;try{d=JSON.parse(c)}catch{continue}if(!d||"object"!=typeof d||!d.type)continue;let e=d.payload??{},j=r(d.timestamp),q=j||o;if(j&&(o=j),"session_meta"===d.type){i=r(e.id),k=r(e.cwd),b=r(e.cli_version)||void 0;let a=r(e.timestamp);a&&(o=a),p.cwd||(p.cwd=k);continue}if("turn_context"===d.type){p.turnId=r(e.turn_id)||p.turnId,p.cwd=r(e.cwd)||k;let a=r(e.model);a&&(p.model=a);let b=r(e.effort);b&&(p.effort=b),p.toolNames=[],p.hasThinking=!1,p.pendingTextPreview="";continue}if("event_msg"===d.type){let c=r(e.type);if("user_message"===c){let b=t(e);if(!b)continue;let c=`${i}::u${l++}`;g.push({type:"user",source:"codex",uuid:c,parentUuid:null,timestamp:q,sessionId:i,cwd:p.cwd||k,textPreview:b.slice(0,200),filePath:a}),h.push([c,null]),p.userUuid=c;continue}if("agent_message"===c){let a=t(e);a&&!p.pendingTextPreview&&(p.pendingTextPreview=a.slice(0,200));continue}if("agent_reasoning"===c){p.hasThinking=!0;continue}if("token_count"===c){let c,d,g,j,l=e.info;if(!l)continue;let o=l.total_token_usage,r=l.last_token_usage,t=o?{input:s(o.input_tokens),cached:s(o.cached_input_tokens),output:s(o.output_tokens),reasoning:s(o.reasoning_output_tokens)}:null;if(t){if(null===n?(c=t.input,d=t.cached,g=t.output,j=t.reasoning):(c=Math.max(0,t.input-n.input),d=Math.max(0,t.cached-n.cached),g=Math.max(0,t.output-n.output),j=Math.max(0,t.reasoning-n.reasoning)),0===c&&0===d&&0===g&&0===j)continue;n=null===n?{...t}:{input:Math.max(n.input,t.input),cached:Math.max(n.cached,t.cached),output:Math.max(n.output,t.output),reasoning:Math.max(n.reasoning,t.reasoning)}}else{if(!r||(c=s(r.input_tokens),d=s(r.cached_input_tokens),g=s(r.output_tokens),j=s(r.reasoning_output_tokens),0===c&&0===d&&0===g&&0===j))continue;n=null===n?{input:c,cached:d,output:g,reasoning:j}:{input:n.input+c,cached:n.cached+d,output:n.output+g,reasoning:n.reasoning+j}}let u=`${i}::a${m++}`,v=p.turnId?`${p.turnId}::a${m}`:`${i}::a${m}`;f.push({type:"assistant",source:"codex",uuid:u,parentUuid:p.userUuid,timestamp:q,sessionId:i,requestId:v,cwd:p.cwd||k,version:b,model:p.model||"gpt-unknown",messageId:v,usage:{input_tokens:Math.max(0,c-d),output_tokens:g+j,cache_creation_input_tokens:0,cache_read_input_tokens:d,cache_creation_5m:0,cache_creation_1h:0,reasoning_tokens:j},toolNames:[...p.toolNames],hasThinking:p.hasThinking,textPreview:p.pendingTextPreview,filePath:a,effort:p.effort}),h.push([u,p.userUuid]),p.toolNames=[],p.hasThinking=!1,p.pendingTextPreview=""}continue}if("response_item"===d.type){let a=r(e.type);if("function_call"===a||"custom_tool_call"===a){let a=r(e.name);a&&p.toolNames.push(a);continue}if("reasoning"===a){p.hasThinking=!0;continue}if("message"===a&&"assistant"===r(e.role)){let a=t(e);a&&!p.pendingTextPreview&&(p.pendingTextPreview=a.slice(0,200))}continue}}return{assistant:f,user:g,parentLinks:h}}var v=c(71310);let w={mini:"Mini",nano:"Nano",pro:"Pro",turbo:"Turbo",preview:"Preview"},x={id:"codex",displayName:{en:"Codex",zh:"Codex"},shortLabel:"X",color:{fg:"#047857",bg:"#d1fae5"},logoSrc:"/codex-logo.webp",parserVersion:"codex-v5-last-total-prev",capabilities:{hasCacheCreation:!1,hasReasoningTokens:!0,blockWindowMs:18e6},getDirs:function(){let a=h().homedir(),b=[f().join(a,".codex","sessions"),f().join(a,".codex","archived_sessions")];return process.env.CCGAUGE_CODEX_DIR&&b.push(process.env.CCGAUGE_CODEX_DIR),process.env.CODEX_HOME&&(b.push(f().join(process.env.CODEX_HOME,"sessions")),b.push(f().join(process.env.CODEX_HOME,"archived_sessions"))),Array.from(new Set(b))},shouldSkipDir:()=>!1,parseFile:u,resolvePricing:v.E7,shortenModel:function(a){if(!a)return"(unknown)";let b=a.replace(/^openai\//,"");return b.toLowerCase().startsWith("gpt-")?"GPT-"+b.slice(4).split("-").map(a=>w[a.toLowerCase()]??a).join(" "):b.toLowerCase().startsWith("o")?b.toUpperCase():b.replace(/-/g," ").replace(/\b\w/g,a=>a.toUpperCase())},costFromUsage:m,costFootnoteKey:"cost.footnote.codex"},y={claude:{id:"claude",displayName:{en:"Claude",zh:"Claude"},shortLabel:"C",color:{fg:"#b45309",bg:"#fef3c7"},logoSrc:"/claude-logo.webp",parserVersion:"claude-v4-sidechain-merge",capabilities:{hasCacheCreation:!0,hasReasoningTokens:!1,blockWindowMs:18e6},getDirs:function(){let a=h().homedir(),b=[f().join(a,".claude","projects"),f().join(a,".config","claude","projects")];return process.env.CCGAUGE_CONFIG_DIR&&b.push(f().join(process.env.CCGAUGE_CONFIG_DIR,"projects")),process.env.CLAUDE_CONFIG_DIR&&b.push(f().join(process.env.CLAUDE_CONFIG_DIR,"projects")),Array.from(new Set(b))},shouldSkipDir:a=>"tool-results"===a||"memory"===a,parseFile:async a=>await k(a),resolvePricing:function(a){if(!a)return{pricing:null,matchType:"none",matchedKey:null};if(l.V[a])return{pricing:l.V[a],matchType:"exact",matchedKey:a};let b=a.replace(o,"");if(l.V[b])return{pricing:l.V[b],matchType:"date-stripped",matchedKey:b};let c=b.replace(p,"");if(l.V[c])return{pricing:l.V[c],matchType:"prefix-stripped",matchedKey:c};for(let b of["opus","sonnet","haiku"])if(a.toLowerCase().includes(b))return{pricing:l.Q[b],matchType:"family-fallback",matchedKey:`claude-${b}-(latest)`};return{pricing:null,matchType:"none",matchedKey:null}},shortenModel:function(a){if(!a)return"(unknown)";let b=a.replace(/-(\d{8})$/,"").replace(/^(vertex_ai|bedrock|anthropic)\//,""),c=(b=b.replace(/^claude-/,"")).split("-");if(c.length>=2){let a=c[0],b=c.slice(1).join(".");return n(a)+" "+b}return n(b.replace(/-/g," "))},costFromUsage:m,costFootnoteKey:null},codex:x},z=["claude","codex"],A="claude";function B(a){return y[a]}function C(){return z.map(a=>y[a])}function D(a){return"string"==typeof a&&("claude"===a||"codex"===a)}async function E(a){try{return(await d.promises.stat(a)).isDirectory()}catch{return!1}}async function F(){let a=[];for(let b of C())for(let c of b.getDirs())if(await E(c)){a.push(b.id);break}return a}},71310:(a,b,c)=>{"use strict";c.d(b,{E7:()=>h,_G:()=>d});let d={"gpt-5":{input:1.25,output:10,cacheRead:.13,cacheCreation5m:0,cacheCreation1h:0},"gpt-5-mini":{input:.25,output:2,cacheRead:.025,cacheCreation5m:0,cacheCreation1h:0},"gpt-5-nano":{input:.05,output:.4,cacheRead:.005,cacheCreation5m:0,cacheCreation1h:0},"gpt-5.4":{input:1.25,output:10,cacheRead:.13,cacheCreation5m:0,cacheCreation1h:0},"gpt-5.5":{input:1.25,output:10,cacheRead:.13,cacheCreation5m:0,cacheCreation1h:0},"gpt-5.5-mini":{input:.25,output:2,cacheRead:.025,cacheCreation5m:0,cacheCreation1h:0},"gpt-5.5-nano":{input:.05,output:.4,cacheRead:.005,cacheCreation5m:0,cacheCreation1h:0},"gpt-4.1":{input:2,output:8,cacheRead:.5,cacheCreation5m:0,cacheCreation1h:0},"gpt-4.1-mini":{input:.4,output:1.6,cacheRead:.1,cacheCreation5m:0,cacheCreation1h:0},o3:{input:2,output:8,cacheRead:.5,cacheCreation5m:0,cacheCreation1h:0},"o4-mini":{input:1.1,output:4.4,cacheRead:.275,cacheCreation5m:0,cacheCreation1h:0}},e={gpt:d["gpt-5"],o:d.o3},f=/-\d{8}$/,g=/^(openai)\//;function h(a){if(!a)return{pricing:null,matchType:"none",matchedKey:null};if(d[a])return{pricing:d[a],matchType:"exact",matchedKey:a};let b=a.replace(f,"");if(d[b])return{pricing:d[b],matchType:"date-stripped",matchedKey:b};let c=b.replace(g,"");if(d[c])return{pricing:d[c],matchType:"prefix-stripped",matchedKey:c};let h=a.toLowerCase();return h.startsWith("gpt-")||"gpt"===h?{pricing:e.gpt,matchType:"family-fallback",matchedKey:"gpt-(latest)"}:/^o\d/.test(h)?{pricing:e.o,matchType:"family-fallback",matchedKey:"o-(latest)"}:{pricing:null,matchType:"none",matchedKey:null}}},78335:()=>{},96487:()=>{}};
|
|
1
|
+
exports.id=716,exports.ids=[716],exports.modules={31519:(a,b,c)=>{"use strict";c.d(b,{Q:()=>e,V:()=>d});let d={"claude-fable-5":{input:10,output:50,cacheCreation5m:12.5,cacheCreation1h:20,cacheRead:1},"claude-opus-4-8":{input:5,output:25,cacheCreation5m:6.25,cacheCreation1h:10,cacheRead:.5},"claude-opus-4-7":{input:5,output:25,cacheCreation5m:6.25,cacheCreation1h:10,cacheRead:.5},"claude-opus-4-6":{input:5,output:25,cacheCreation5m:6.25,cacheCreation1h:10,cacheRead:.5},"claude-opus-4-5":{input:5,output:25,cacheCreation5m:6.25,cacheCreation1h:10,cacheRead:.5},"claude-sonnet-4-6":{input:3,output:15,cacheCreation5m:3.75,cacheCreation1h:6,cacheRead:.3},"claude-sonnet-4-5":{input:3,output:15,cacheCreation5m:3.75,cacheCreation1h:6,cacheRead:.3},"claude-haiku-4-5":{input:1,output:5,cacheCreation5m:1.25,cacheCreation1h:2,cacheRead:.1},"claude-haiku-3-5":{input:.8,output:4,cacheCreation5m:1,cacheCreation1h:1.6,cacheRead:.08},"claude-opus-4-1":{input:15,output:75,cacheCreation5m:18.75,cacheCreation1h:30,cacheRead:1.5},"claude-opus-4":{input:15,output:75,cacheCreation5m:18.75,cacheCreation1h:30,cacheRead:1.5},"claude-sonnet-4":{input:3,output:15,cacheCreation5m:3.75,cacheCreation1h:6,cacheRead:.3},"claude-sonnet-3-7":{input:3,output:15,cacheCreation5m:3.75,cacheCreation1h:6,cacheRead:.3},"claude-haiku-3":{input:.25,output:1.25,cacheCreation5m:.3,cacheCreation1h:.5,cacheRead:.03}},e={fable:d["claude-fable-5"],opus:d["claude-opus-4-8"],sonnet:d["claude-sonnet-4-6"],haiku:d["claude-haiku-4-5"]}},60704:(a,b,c)=>{"use strict";c.d(b,{jt:()=>z,Gr:()=>A,Fw:()=>F,sO:()=>B,rl:()=>D,R0:()=>C});var d=c(73024),e=c(76760),f=c.n(e),g=c(48161),h=c.n(g),i=c(80481),j=c.n(i);async function k(a){let b=(0,d.createReadStream)(a,{encoding:"utf8"}),c=j().createInterface({input:b,crlfDelay:1/0}),e=[],f=[],g=[];for await(let b of c){let c;if(b.trim()){try{c=JSON.parse(b)}catch{continue}if(c&&"object"==typeof c){if(c.uuid&&g.push([c.uuid,c.parentUuid??null]),"assistant"===c.type){let b=function(a,b){let c=a.message;if(!c)return null;let d=c.usage;if(!d)return null;let e=c.model??"";if(!e||"<synthetic>"===e)return null;let f=c.id??a.uuid??"";if(!f&&!a.requestId)return null;let g=d.cache_creation,h=Array.isArray(c.content)?c.content:[],i=[],j=!1,k="";for(let a of h)"tool_use"===a.type&&"string"==typeof a.name?i.push(a.name):"thinking"===a.type?j=!0:"text"!==a.type||"string"!=typeof a.text||k||(k=a.text.slice(0,200));return{type:"assistant",source:"claude",uuid:a.uuid??f,parentUuid:a.parentUuid??null,timestamp:a.timestamp??new Date().toISOString(),sessionId:a.sessionId??"",requestId:a.requestId??"",cwd:a.cwd??"",gitBranch:a.gitBranch,version:a.version,model:e,messageId:f,usage:{input_tokens:Number(d.input_tokens)||0,output_tokens:Number(d.output_tokens)||0,cache_creation_input_tokens:Number(d.cache_creation_input_tokens)||0,cache_read_input_tokens:Number(d.cache_read_input_tokens)||0,cache_creation_5m:Number(g?.ephemeral_5m_input_tokens)||0,cache_creation_1h:Number(g?.ephemeral_1h_input_tokens)||0},toolNames:i,hasThinking:j,textPreview:k,filePath:b,isSidechain:!0===a.isSidechain||void 0}}(c,a);b&&e.push(b)}else if("user"===c.type){let b=function(a,b){if(!a.uuid)return null;let c=a.message,d="";if(c){let a=c.content;if("string"==typeof a)d=a.slice(0,200);else if(Array.isArray(a)){for(let b of a)if("text"===b.type&&"string"==typeof b.text){d=b.text.slice(0,200);break}}}let e=!0===a.isSidechain,f=e||!!d&&function(a){let b=a.trimStart();return!!(b.startsWith("Base directory for this skill:")||b.startsWith("<system-reminder>")||b.startsWith("Caveat: The messages below were generated by")||b.startsWith("<task-notification>"))}(d);return{type:"user",source:"claude",uuid:a.uuid,parentUuid:a.parentUuid??null,timestamp:a.timestamp??new Date().toISOString(),sessionId:a.sessionId??"",cwd:a.cwd??"",textPreview:d,isSynthetic:f,isSidechain:!!e||void 0,filePath:b}}(c,a);b&&f.push(b)}}}}return{assistant:e,user:f,parentLinks:g}}var l=c(31519);function m(a,b){if(!b)return{input:0,output:0,cacheCreation5m:0,cacheCreation1h:0,cacheRead:0,total:0,saved:0};let c=a.input_tokens/1e6*b.input,d=a.output_tokens/1e6*b.output,e=a.cache_creation_5m/1e6*b.cacheCreation5m,f=a.cache_creation_1h/1e6*b.cacheCreation1h;e+f===0&&a.cache_creation_input_tokens>0&&(e=a.cache_creation_input_tokens/1e6*b.cacheCreation5m);let g=a.cache_read_input_tokens/1e6*b.cacheRead,h=c+d+e+f+g;return{input:c,output:d,cacheCreation5m:e,cacheCreation1h:f,cacheRead:g,total:h,saved:a.cache_read_input_tokens/1e6*(b.input-b.cacheRead)}}function n(a){return a.replace(/\b\w/g,a=>a.toUpperCase())}let o=/-\d{8}$/,p=/^(vertex_ai|bedrock|anthropic)\//;async function q(a){try{let b=await d.promises.stat(a);return new Date(b.mtimeMs).toISOString()}catch{return new Date().toISOString()}}function r(a){return"string"==typeof a?a:""}function s(a){let b=Number(a);return Number.isFinite(b)?b:0}function t(a){let b=a.message;if("string"==typeof b)return b;let c=a.content;if("string"==typeof c)return c;if(Array.isArray(c))for(let a of c){let b=a?.type;if(("input_text"===b||"output_text"===b||"text"===b)&&"string"==typeof a.text)return a.text}return""}async function u(a){let b,c=(0,d.createReadStream)(a,{encoding:"utf8"}),e=j().createInterface({input:c,crlfDelay:1/0}),f=[],g=[],h=[],i="",k="",l=0,m=0,n=null,o=await q(a),p={turnId:null,cwd:"",model:"gpt-unknown",userUuid:null,toolNames:[],hasThinking:!1,pendingTextPreview:""};for await(let c of e){let d;if(!c.trim())continue;try{d=JSON.parse(c)}catch{continue}if(!d||"object"!=typeof d||!d.type)continue;let e=d.payload??{},j=r(d.timestamp),q=j||o;if(j&&(o=j),"session_meta"===d.type){i=r(e.id),k=r(e.cwd),b=r(e.cli_version)||void 0;let a=r(e.timestamp);a&&(o=a),p.cwd||(p.cwd=k);continue}if("turn_context"===d.type){p.turnId=r(e.turn_id)||p.turnId,p.cwd=r(e.cwd)||k;let a=r(e.model);a&&(p.model=a);let b=r(e.effort);b&&(p.effort=b),p.toolNames=[],p.hasThinking=!1,p.pendingTextPreview="";continue}if("event_msg"===d.type){let c=r(e.type);if("user_message"===c){let b=t(e);if(!b)continue;let c=`${i}::u${l++}`;g.push({type:"user",source:"codex",uuid:c,parentUuid:null,timestamp:q,sessionId:i,cwd:p.cwd||k,textPreview:b.slice(0,200),filePath:a}),h.push([c,null]),p.userUuid=c;continue}if("agent_message"===c){let a=t(e);a&&!p.pendingTextPreview&&(p.pendingTextPreview=a.slice(0,200));continue}if("agent_reasoning"===c){p.hasThinking=!0;continue}if("token_count"===c){let c,d,g,j,l=e.info;if(!l)continue;let o=l.total_token_usage,r=l.last_token_usage,t=o?{input:s(o.input_tokens),cached:s(o.cached_input_tokens),output:s(o.output_tokens),reasoning:s(o.reasoning_output_tokens)}:null;if(t){if(null===n?(c=t.input,d=t.cached,g=t.output,j=t.reasoning):(c=Math.max(0,t.input-n.input),d=Math.max(0,t.cached-n.cached),g=Math.max(0,t.output-n.output),j=Math.max(0,t.reasoning-n.reasoning)),0===c&&0===d&&0===g&&0===j)continue;n=null===n?{...t}:{input:Math.max(n.input,t.input),cached:Math.max(n.cached,t.cached),output:Math.max(n.output,t.output),reasoning:Math.max(n.reasoning,t.reasoning)}}else{if(!r||(c=s(r.input_tokens),d=s(r.cached_input_tokens),g=s(r.output_tokens),j=s(r.reasoning_output_tokens),0===c&&0===d&&0===g&&0===j))continue;n=null===n?{input:c,cached:d,output:g,reasoning:j}:{input:n.input+c,cached:n.cached+d,output:n.output+g,reasoning:n.reasoning+j}}let u=`${i}::a${m++}`,v=p.turnId?`${p.turnId}::a${m}`:`${i}::a${m}`;f.push({type:"assistant",source:"codex",uuid:u,parentUuid:p.userUuid,timestamp:q,sessionId:i,requestId:v,cwd:p.cwd||k,version:b,model:p.model||"gpt-unknown",messageId:v,usage:{input_tokens:Math.max(0,c-d),output_tokens:g+j,cache_creation_input_tokens:0,cache_read_input_tokens:d,cache_creation_5m:0,cache_creation_1h:0,reasoning_tokens:j},toolNames:[...p.toolNames],hasThinking:p.hasThinking,textPreview:p.pendingTextPreview,filePath:a,effort:p.effort}),h.push([u,p.userUuid]),p.toolNames=[],p.hasThinking=!1,p.pendingTextPreview=""}continue}if("response_item"===d.type){let a=r(e.type);if("function_call"===a||"custom_tool_call"===a){let a=r(e.name);a&&p.toolNames.push(a);continue}if("reasoning"===a){p.hasThinking=!0;continue}if("message"===a&&"assistant"===r(e.role)){let a=t(e);a&&!p.pendingTextPreview&&(p.pendingTextPreview=a.slice(0,200))}continue}}return{assistant:f,user:g,parentLinks:h}}var v=c(71310);let w={mini:"Mini",nano:"Nano",pro:"Pro",turbo:"Turbo",preview:"Preview"},x={id:"codex",displayName:{en:"Codex",zh:"Codex"},shortLabel:"X",color:{fg:"#047857",bg:"#d1fae5"},logoSrc:"/codex-logo.webp",parserVersion:"codex-v5-last-total-prev",capabilities:{hasCacheCreation:!1,hasReasoningTokens:!0,blockWindowMs:18e6},getDirs:function(){let a=h().homedir(),b=[f().join(a,".codex","sessions"),f().join(a,".codex","archived_sessions")];return process.env.CCGAUGE_CODEX_DIR&&b.push(process.env.CCGAUGE_CODEX_DIR),process.env.CODEX_HOME&&(b.push(f().join(process.env.CODEX_HOME,"sessions")),b.push(f().join(process.env.CODEX_HOME,"archived_sessions"))),Array.from(new Set(b))},shouldSkipDir:()=>!1,parseFile:u,resolvePricing:v.E7,shortenModel:function(a){if(!a)return"(unknown)";let b=a.replace(/^openai\//,"");return b.toLowerCase().startsWith("gpt-")?"GPT-"+b.slice(4).split("-").map(a=>w[a.toLowerCase()]??a).join(" "):b.toLowerCase().startsWith("o")?b.toUpperCase():b.replace(/-/g," ").replace(/\b\w/g,a=>a.toUpperCase())},costFromUsage:m,costFootnoteKey:"cost.footnote.codex"},y={claude:{id:"claude",displayName:{en:"Claude",zh:"Claude"},shortLabel:"C",color:{fg:"#b45309",bg:"#fef3c7"},logoSrc:"/claude-logo.webp",parserVersion:"claude-v5-task-notification-synthetic",capabilities:{hasCacheCreation:!0,hasReasoningTokens:!1,blockWindowMs:18e6},getDirs:function(){let a=h().homedir(),b=[f().join(a,".claude","projects"),f().join(a,".config","claude","projects")];return process.env.CCGAUGE_CONFIG_DIR&&b.push(f().join(process.env.CCGAUGE_CONFIG_DIR,"projects")),process.env.CLAUDE_CONFIG_DIR&&b.push(f().join(process.env.CLAUDE_CONFIG_DIR,"projects")),Array.from(new Set(b))},shouldSkipDir:a=>"tool-results"===a||"memory"===a,parseFile:async a=>await k(a),resolvePricing:function(a){if(!a)return{pricing:null,matchType:"none",matchedKey:null};if(l.V[a])return{pricing:l.V[a],matchType:"exact",matchedKey:a};let b=a.replace(o,"");if(l.V[b])return{pricing:l.V[b],matchType:"date-stripped",matchedKey:b};let c=b.replace(p,"");if(l.V[c])return{pricing:l.V[c],matchType:"prefix-stripped",matchedKey:c};for(let b of["fable","opus","sonnet","haiku"])if(a.toLowerCase().includes(b))return{pricing:l.Q[b],matchType:"family-fallback",matchedKey:`claude-${b}-(latest)`};return{pricing:null,matchType:"none",matchedKey:null}},shortenModel:function(a){if(!a)return"(unknown)";let b=a.replace(/-(\d{8})$/,"").replace(/^(vertex_ai|bedrock|anthropic)\//,""),c=(b=b.replace(/^claude-/,"")).split("-");if(c.length>=2){let a=c[0],b=c.slice(1).join(".");return n(a)+" "+b}return n(b.replace(/-/g," "))},costFromUsage:m,costFootnoteKey:null},codex:x},z=["claude","codex"],A="claude";function B(a){return y[a]}function C(){return z.map(a=>y[a])}function D(a){return"string"==typeof a&&("claude"===a||"codex"===a)}async function E(a){try{return(await d.promises.stat(a)).isDirectory()}catch{return!1}}async function F(){let a=[];for(let b of C())for(let c of b.getDirs())if(await E(c)){a.push(b.id);break}return a}},71310:(a,b,c)=>{"use strict";c.d(b,{E7:()=>h,_G:()=>d});let d={"gpt-5":{input:1.25,output:10,cacheRead:.13,cacheCreation5m:0,cacheCreation1h:0},"gpt-5-mini":{input:.25,output:2,cacheRead:.025,cacheCreation5m:0,cacheCreation1h:0},"gpt-5-nano":{input:.05,output:.4,cacheRead:.005,cacheCreation5m:0,cacheCreation1h:0},"gpt-5.4":{input:1.25,output:10,cacheRead:.13,cacheCreation5m:0,cacheCreation1h:0},"gpt-5.5":{input:1.25,output:10,cacheRead:.13,cacheCreation5m:0,cacheCreation1h:0},"gpt-5.5-mini":{input:.25,output:2,cacheRead:.025,cacheCreation5m:0,cacheCreation1h:0},"gpt-5.5-nano":{input:.05,output:.4,cacheRead:.005,cacheCreation5m:0,cacheCreation1h:0},"gpt-4.1":{input:2,output:8,cacheRead:.5,cacheCreation5m:0,cacheCreation1h:0},"gpt-4.1-mini":{input:.4,output:1.6,cacheRead:.1,cacheCreation5m:0,cacheCreation1h:0},o3:{input:2,output:8,cacheRead:.5,cacheCreation5m:0,cacheCreation1h:0},"o4-mini":{input:1.1,output:4.4,cacheRead:.275,cacheCreation5m:0,cacheCreation1h:0}},e={gpt:d["gpt-5"],o:d.o3},f=/-\d{8}$/,g=/^(openai)\//;function h(a){if(!a)return{pricing:null,matchType:"none",matchedKey:null};if(d[a])return{pricing:d[a],matchType:"exact",matchedKey:a};let b=a.replace(f,"");if(d[b])return{pricing:d[b],matchType:"date-stripped",matchedKey:b};let c=b.replace(g,"");if(d[c])return{pricing:d[c],matchType:"prefix-stripped",matchedKey:c};let h=a.toLowerCase();return h.startsWith("gpt-")||"gpt"===h?{pricing:e.gpt,matchType:"family-fallback",matchedKey:"gpt-(latest)"}:/^o\d/.test(h)?{pricing:e.o,matchType:"family-fallback",matchedKey:"o-(latest)"}:{pricing:null,matchType:"none",matchedKey:null}}},78335:()=>{},96487:()=>{}};
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"wasm": [],
|
|
18
18
|
"assets": [],
|
|
19
19
|
"env": {
|
|
20
|
-
"__NEXT_BUILD_ID": "
|
|
20
|
+
"__NEXT_BUILD_ID": "GtWVWyG8mgmjwPOWjfTMr",
|
|
21
21
|
"NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "fxBP6Etf8lFbgJKurwCAcN8sP/B1u3Fma5aWVU9LqBs=",
|
|
22
22
|
"__NEXT_PREVIEW_MODE_ID": "749380e988338c5f297fb78ad8cf3132",
|
|
23
23
|
"__NEXT_PREVIEW_MODE_SIGNING_KEY": "0c6dbd4c759f115f6f21acd74c748a8331ff88146c12414ced16a22258f93d7a",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-73dfee69c0ddc58e.js" defer=""></script><script src="/_next/static/chunks/framework-1a308e28e19f1a97.js" defer=""></script><script src="/_next/static/chunks/main-2cb79280eaf22774.js" defer=""></script><script src="/_next/static/chunks/pages/_app-5addca2b3b969fde.js" defer=""></script><script src="/_next/static/chunks/pages/_error-022e4ac7bbb9914f.js" defer=""></script><script src="/_next/static/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-73dfee69c0ddc58e.js" defer=""></script><script src="/_next/static/chunks/framework-1a308e28e19f1a97.js" defer=""></script><script src="/_next/static/chunks/main-2cb79280eaf22774.js" defer=""></script><script src="/_next/static/chunks/pages/_app-5addca2b3b969fde.js" defer=""></script><script src="/_next/static/chunks/pages/_error-022e4ac7bbb9914f.js" defer=""></script><script src="/_next/static/GtWVWyG8mgmjwPOWjfTMr/_buildManifest.js" defer=""></script><script src="/_next/static/GtWVWyG8mgmjwPOWjfTMr/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"GtWVWyG8mgmjwPOWjfTMr","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
|
File without changes
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,32 @@ All notable changes to **ccgauge** are documented here.
|
|
|
5
5
|
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and
|
|
6
6
|
this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.1.5] — 2026-06-11
|
|
9
|
+
|
|
10
|
+
Adds pricing support for Claude Fable 5 and fixes a turn-grouping regression
|
|
11
|
+
where background-task completions appeared as dozens of standalone rows on the
|
|
12
|
+
usage page instead of folding into the turn that spawned them.
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- **Claude Fable 5 pricing.** Input $10 / output $50 per 1 M tokens, with
|
|
17
|
+
cache-write multipliers (5 min: ×1.25 → $12.50, 1 h: ×2 → $20) and cache
|
|
18
|
+
read at $1 per 1 M tokens. `fable` is now a recognized family-fallback key,
|
|
19
|
+
so future `claude-fable-*` variants resolve automatically without a code
|
|
20
|
+
change.
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
|
|
24
|
+
- **`<task-notification>` completions split into dozens of standalone rows.**
|
|
25
|
+
When a turn used the Workflow / ultracode tool to fan out background tasks,
|
|
26
|
+
each completion notification arrived as a harness-injected `user` message
|
|
27
|
+
and was incorrectly treated as a new turn root — producing one row per
|
|
28
|
+
background-task result instead of folding all the work back into the
|
|
29
|
+
spawning turn. `isSyntheticUserText` now classifies `<task-notification>`
|
|
30
|
+
messages as synthetic; a `parserVersion` bump (`claude-v5-task-notification-synthetic`)
|
|
31
|
+
invalidates the persisted index cache so existing transcripts are re-parsed
|
|
32
|
+
on first load.
|
|
33
|
+
|
|
8
34
|
## [1.1.4] — 2026-06-07
|
|
9
35
|
|
|
10
36
|
A maintenance follow-up to 1.1.3 — hardens the build's smoke gate and adds
|
package/bin/cli.mjs
CHANGED
|
File without changes
|