ccgauge 1.2.3 → 1.3.1
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 +65 -49
- package/.next/standalone/.next/app-path-routes-manifest.json +11 -9
- package/.next/standalone/.next/build-manifest.json +2 -2
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/routes-manifest.json +6 -0
- package/.next/standalone/.next/server/app/_not-found/page.js +2 -2
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/blocks/route.js +1 -1
- package/.next/standalone/.next/server/app/api/blocks/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/blocks/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/export/usage/route.js +1 -1
- package/.next/standalone/.next/server/app/api/export/usage/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/export/usage/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/pricing/refresh/route.js +1 -0
- package/.next/standalone/.next/server/app/api/pricing/refresh/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/pricing/refresh/route_client-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/app/api/pricing/route.js +1 -1
- package/.next/standalone/.next/server/app/api/pricing/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/scan/route.js +1 -1
- package/.next/standalone/.next/server/app/api/scan/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/scan/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/sessions/route.js +1 -1
- package/.next/standalone/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/turns/route.js +1 -1
- package/.next/standalone/.next/server/app/api/turns/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/turns/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/usage/route.js +1 -1
- package/.next/standalone/.next/server/app/api/usage/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/usage/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/models/page.js +2 -2
- package/.next/standalone/.next/server/app/models/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/models/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/page.js +2 -2
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/[id]/page.js +2 -2
- package/.next/standalone/.next/server/app/projects/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/projects/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/page.js +2 -2
- package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/sessions/[id]/page.js +2 -2
- package/.next/standalone/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/sessions/page.js +2 -2
- package/.next/standalone/.next/server/app/sessions/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/page.js +2 -2
- package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/tools/page.js +2 -0
- package/.next/standalone/.next/server/app/tools/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/tools/page_client-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/app/usage/page.js +3 -3
- package/.next/standalone/.next/server/app/usage/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/usage/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app-paths-manifest.json +11 -9
- package/.next/standalone/.next/server/chunks/177.js +28 -0
- package/.next/standalone/.next/server/chunks/195.js +1 -0
- package/.next/standalone/.next/server/chunks/68.js +1 -0
- package/.next/standalone/.next/server/chunks/704.js +1 -0
- package/.next/standalone/.next/server/chunks/860.js +1 -0
- package/.next/standalone/.next/server/chunks/98.js +1 -1
- package/.next/standalone/.next/server/functions-config-manifest.json +5 -4
- package/.next/standalone/.next/server/middleware-manifest.json +5 -5
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/chunks/148-086250dab6a8a8d0.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/blocks/route-bcee47c5d093728c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/export/usage/route-bcee47c5d093728c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/pricing/refresh/route-bcee47c5d093728c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/pricing/route-bcee47c5d093728c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/route-bcee47c5d093728c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/scan/route-bcee47c5d093728c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/sessions/route-bcee47c5d093728c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/turns/route-bcee47c5d093728c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/usage/route-bcee47c5d093728c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/layout-e349a18fcb94a7c0.js +1 -0
- package/.next/standalone/.next/static/chunks/app/loading-bcee47c5d093728c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/settings/page-799eab6a6fb5294f.js +1 -0
- package/.next/standalone/.next/static/chunks/app/tools/page-f853bb04cc730994.js +1 -0
- package/.next/standalone/.next/static/chunks/app/usage/loading-bcee47c5d093728c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/usage/page-64b22de6021c8bfb.js +1 -0
- package/.next/standalone/.next/static/css/cc3c7c3125ee7611.css +5 -0
- package/.next/standalone/.next/static/hS4wi80csLD_DGXR-H_Fl/_buildManifest.js +1 -0
- package/.next/standalone/node_modules/next/node_modules/postcss/package.json +0 -0
- package/.next/standalone/package.json +2 -2
- package/CHANGELOG.md +92 -0
- package/README.md +1 -1
- package/README.zh-CN.md +2 -2
- package/dist/mcp/server.mjs +16 -16
- package/dist/report/index.mjs +29 -29
- package/package.json +23 -25
- package/.next/standalone/.next/server/chunks/567.js +0 -28
- package/.next/standalone/.next/server/chunks/697.js +0 -1
- package/.next/standalone/.next/server/chunks/716.js +0 -1
- package/.next/standalone/.next/server/chunks/730.js +0 -1
- package/.next/standalone/.next/static/Lq6oOv9BIs0oxAoucpUNd/_buildManifest.js +0 -1
- package/.next/standalone/.next/static/chunks/148-1212b038580a0433.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/blocks/route-c50a1245d93c020a.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/export/usage/route-c50a1245d93c020a.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/pricing/route-c50a1245d93c020a.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/route-c50a1245d93c020a.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/scan/route-c50a1245d93c020a.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/sessions/route-c50a1245d93c020a.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/turns/route-c50a1245d93c020a.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/usage/route-c50a1245d93c020a.js +0 -1
- package/.next/standalone/.next/static/chunks/app/layout-6eefa1ce02863d7b.js +0 -1
- package/.next/standalone/.next/static/chunks/app/loading-c50a1245d93c020a.js +0 -1
- package/.next/standalone/.next/static/chunks/app/settings/page-1ba7c4a4c0fae2f8.js +0 -1
- package/.next/standalone/.next/static/chunks/app/usage/loading-c50a1245d93c020a.js +0 -1
- package/.next/standalone/.next/static/chunks/app/usage/page-02dd25ce6058f096.js +0 -1
- package/.next/standalone/.next/static/css/169dd00e280f7237.css +0 -5
- /package/.next/standalone/.next/static/{Lq6oOv9BIs0oxAoucpUNd → hS4wi80csLD_DGXR-H_Fl}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/next/dist/lib/constants.js","../../../../node_modules/next/dist/lib/interop-default.js","../../../../node_modules/next/dist/lib/is-error.js","../../../../node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../node_modules/next/dist/shared/lib/segment.js","../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/next/package.json","../../../../package.json","../../../package.json","../../chunks/153.js","../../chunks/331.js","../../chunks/517.js","../../chunks/
|
|
1
|
+
{"version":1,"files":["../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/next/dist/lib/constants.js","../../../../node_modules/next/dist/lib/interop-default.js","../../../../node_modules/next/dist/lib/is-error.js","../../../../node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../node_modules/next/dist/shared/lib/segment.js","../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/next/package.json","../../../../package.json","../../../package.json","../../chunks/153.js","../../chunks/177.js","../../chunks/331.js","../../chunks/517.js","../../chunks/68.js","../../chunks/704.js","../../chunks/802.js","../../chunks/860.js","../../chunks/98.js","../../chunks/993.js","../../webpack-runtime.js","page_client-reference-manifest.js"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/usage/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"1467":{"*":{"id":"81965","name":"*","chunks":[],"async":false}},"8336":{"*":{"id":"39472","name":"*","chunks":[],"async":false}},"8608":{"*":{"id":"82140","name":"*","chunks":[],"async":false}},"8783":{"*":{"id":"60505","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"12112":{"*":{"id":"17290","name":"*","chunks":[],"async":false}},"12623":{"*":{"id":"25515","name":"*","chunks":[],"async":false}},"14920":{"*":{"id":"32560","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"21264":{"*":{"id":"95546","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25763":{"*":{"id":"72267","name":"*","chunks":[],"async":false}},"30633":{"*":{"id":"55423","name":"*","chunks":[],"async":false}},"38059":{"*":{"id":"24919","name":"*","chunks":[],"async":false}},"44512":{"*":{"id":"88843","name":"*","chunks":[],"async":false}},"44703":{"*":{"id":"28607","name":"*","chunks":[],"async":false}},"49567":{"*":{"id":"77731","name":"*","chunks":[],"async":false}},"52619":{"*":{"id":"3991","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"57581":{"*":{"id":"88267","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"73896":{"*":{"id":"72179","name":"*","chunks":[],"async":false}},"74387":{"*":{"id":"33280","name":"*","chunks":[],"async":false}},"77549":{"*":{"id":"24961","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"91107":{"*":{"id":"48507","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/globals.css":{"id":41290,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","619","static/chunks/619-f072ac750404f9da.js","148","static/chunks/148-1212b038580a0433.js","177","static/chunks/app/layout-6eefa1ce02863d7b.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/nav.tsx":{"id":57581,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","619","static/chunks/619-f072ac750404f9da.js","148","static/chunks/148-1212b038580a0433.js","177","static/chunks/app/layout-6eefa1ce02863d7b.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/providers.tsx":{"id":12112,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","619","static/chunks/619-f072ac750404f9da.js","148","static/chunks/148-1212b038580a0433.js","177","static/chunks/app/layout-6eefa1ce02863d7b.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/error.tsx":{"id":49567,"name":"*","chunks":["148","static/chunks/148-1212b038580a0433.js","39","static/chunks/app/error-3e48784f89c5ae8d.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/charts/token-stack-chart.tsx":{"id":38059,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/app-dir/link.js":{"id":52619,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/app-dir/link.js":{"id":52619,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/activity-stats.tsx":{"id":12623,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","930","static/chunks/930-ca5c6f8b5cb6ac3d.js","148","static/chunks/148-1212b038580a0433.js","567","static/chunks/567-72a086fabc9bacfe.js","974","static/chunks/app/page-0816ef0cd3e872d8.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/auto-refresh.tsx":{"id":77549,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","930","static/chunks/930-ca5c6f8b5cb6ac3d.js","253","static/chunks/253-dae1b01a941e7c13.js","148","static/chunks/148-1212b038580a0433.js","567","static/chunks/567-72a086fabc9bacfe.js","430","static/chunks/app/usage/page-02dd25ce6058f096.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/block-progress-switcher.tsx":{"id":30633,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","930","static/chunks/930-ca5c6f8b5cb6ac3d.js","148","static/chunks/148-1212b038580a0433.js","567","static/chunks/567-72a086fabc9bacfe.js","974","static/chunks/app/page-0816ef0cd3e872d8.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/block-progress.tsx":{"id":25763,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","930","static/chunks/930-ca5c6f8b5cb6ac3d.js","148","static/chunks/148-1212b038580a0433.js","567","static/chunks/567-72a086fabc9bacfe.js","974","static/chunks/app/page-0816ef0cd3e872d8.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/charts/model-bar-chart.tsx":{"id":8608,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","930","static/chunks/930-ca5c6f8b5cb6ac3d.js","148","static/chunks/148-1212b038580a0433.js","567","static/chunks/567-72a086fabc9bacfe.js","974","static/chunks/app/page-0816ef0cd3e872d8.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/overview-trend-card.tsx":{"id":74387,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","930","static/chunks/930-ca5c6f8b5cb6ac3d.js","148","static/chunks/148-1212b038580a0433.js","567","static/chunks/567-72a086fabc9bacfe.js","974","static/chunks/app/page-0816ef0cd3e872d8.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/model-filter.tsx":{"id":8336,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","930","static/chunks/930-ca5c6f8b5cb6ac3d.js","253","static/chunks/253-dae1b01a941e7c13.js","148","static/chunks/148-1212b038580a0433.js","567","static/chunks/567-72a086fabc9bacfe.js","430","static/chunks/app/usage/page-02dd25ce6058f096.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/overview-toggle.tsx":{"id":44512,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","930","static/chunks/930-ca5c6f8b5cb6ac3d.js","253","static/chunks/253-dae1b01a941e7c13.js","148","static/chunks/148-1212b038580a0433.js","567","static/chunks/567-72a086fabc9bacfe.js","430","static/chunks/app/usage/page-02dd25ce6058f096.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/project-filter.tsx":{"id":14920,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","930","static/chunks/930-ca5c6f8b5cb6ac3d.js","253","static/chunks/253-dae1b01a941e7c13.js","148","static/chunks/148-1212b038580a0433.js","567","static/chunks/567-72a086fabc9bacfe.js","430","static/chunks/app/usage/page-02dd25ce6058f096.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/range-picker.tsx":{"id":73896,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","930","static/chunks/930-ca5c6f8b5cb6ac3d.js","253","static/chunks/253-dae1b01a941e7c13.js","148","static/chunks/148-1212b038580a0433.js","567","static/chunks/567-72a086fabc9bacfe.js","430","static/chunks/app/usage/page-02dd25ce6058f096.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/usage-data-island.tsx":{"id":1467,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","930","static/chunks/930-ca5c6f8b5cb6ac3d.js","253","static/chunks/253-dae1b01a941e7c13.js","148","static/chunks/148-1212b038580a0433.js","567","static/chunks/567-72a086fabc9bacfe.js","430","static/chunks/app/usage/page-02dd25ce6058f096.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/language-switcher.tsx":{"id":21264,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/pricing-table.tsx":{"id":8783,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/scan-refresh.tsx":{"id":91107,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/theme-switcher.tsx":{"id":44703,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/zuopeng.cheng/personal/workspace/ccgauge/":[],"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/layout":[{"inlined":false,"path":"static/css/169dd00e280f7237.css"}],"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/error":[],"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/loading":[],"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/page":[],"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/usage/loading":[],"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/usage/page":[]},"rscModuleMapping":{"1467":{"*":{"id":"41174","name":"*","chunks":[],"async":false}},"8336":{"*":{"id":"36666","name":"*","chunks":[],"async":false}},"8608":{"*":{"id":"60798","name":"*","chunks":[],"async":false}},"8783":{"*":{"id":"87639","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"12112":{"*":{"id":"66664","name":"*","chunks":[],"async":false}},"12623":{"*":{"id":"4001","name":"*","chunks":[],"async":false}},"14920":{"*":{"id":"21966","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"21264":{"*":{"id":"98392","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25763":{"*":{"id":"88622","name":"*","chunks":[],"async":false}},"30633":{"*":{"id":"53633","name":"*","chunks":[],"async":false}},"38059":{"*":{"id":"89605","name":"*","chunks":[],"async":false}},"41290":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"44512":{"*":{"id":"68264","name":"*","chunks":[],"async":false}},"44703":{"*":{"id":"29509","name":"*","chunks":[],"async":false}},"49567":{"*":{"id":"41697","name":"*","chunks":[],"async":false}},"52619":{"*":{"id":"65169","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"57581":{"*":{"id":"64285","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"73896":{"*":{"id":"58258","name":"*","chunks":[],"async":false}},"74387":{"*":{"id":"73668","name":"*","chunks":[],"async":false}},"77549":{"*":{"id":"62035","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"91107":{"*":{"id":"84701","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/usage/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"1189":{"*":{"id":"91377","name":"*","chunks":[],"async":false}},"5955":{"*":{"id":"9699","name":"*","chunks":[],"async":false}},"8336":{"*":{"id":"39472","name":"*","chunks":[],"async":false}},"8608":{"*":{"id":"82140","name":"*","chunks":[],"async":false}},"8783":{"*":{"id":"60505","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"12112":{"*":{"id":"17290","name":"*","chunks":[],"async":false}},"12623":{"*":{"id":"25515","name":"*","chunks":[],"async":false}},"14920":{"*":{"id":"32560","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"21264":{"*":{"id":"95546","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25763":{"*":{"id":"72267","name":"*","chunks":[],"async":false}},"30633":{"*":{"id":"55423","name":"*","chunks":[],"async":false}},"35610":{"*":{"id":"98572","name":"*","chunks":[],"async":false}},"38059":{"*":{"id":"24919","name":"*","chunks":[],"async":false}},"44512":{"*":{"id":"88843","name":"*","chunks":[],"async":false}},"44703":{"*":{"id":"28607","name":"*","chunks":[],"async":false}},"49567":{"*":{"id":"77731","name":"*","chunks":[],"async":false}},"52619":{"*":{"id":"3991","name":"*","chunks":[],"async":false}},"55294":{"*":{"id":"50214","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"57581":{"*":{"id":"88267","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"73896":{"*":{"id":"72179","name":"*","chunks":[],"async":false}},"74387":{"*":{"id":"33280","name":"*","chunks":[],"async":false}},"77549":{"*":{"id":"24961","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"91107":{"*":{"id":"48507","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/globals.css":{"id":41290,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","619","static/chunks/619-f072ac750404f9da.js","148","static/chunks/148-086250dab6a8a8d0.js","177","static/chunks/app/layout-e349a18fcb94a7c0.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/nav.tsx":{"id":57581,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","619","static/chunks/619-f072ac750404f9da.js","148","static/chunks/148-086250dab6a8a8d0.js","177","static/chunks/app/layout-e349a18fcb94a7c0.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/providers.tsx":{"id":12112,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","619","static/chunks/619-f072ac750404f9da.js","148","static/chunks/148-086250dab6a8a8d0.js","177","static/chunks/app/layout-e349a18fcb94a7c0.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/error.tsx":{"id":49567,"name":"*","chunks":["148","static/chunks/148-086250dab6a8a8d0.js","39","static/chunks/app/error-3e48784f89c5ae8d.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/charts/token-stack-chart.tsx":{"id":38059,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/activity-stats.tsx":{"id":12623,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","930","static/chunks/930-ca5c6f8b5cb6ac3d.js","148","static/chunks/148-086250dab6a8a8d0.js","567","static/chunks/567-72a086fabc9bacfe.js","974","static/chunks/app/page-0816ef0cd3e872d8.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/auto-refresh.tsx":{"id":77549,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","930","static/chunks/930-ca5c6f8b5cb6ac3d.js","253","static/chunks/253-dae1b01a941e7c13.js","148","static/chunks/148-086250dab6a8a8d0.js","567","static/chunks/567-72a086fabc9bacfe.js","430","static/chunks/app/usage/page-64b22de6021c8bfb.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/block-progress-switcher.tsx":{"id":30633,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","930","static/chunks/930-ca5c6f8b5cb6ac3d.js","148","static/chunks/148-086250dab6a8a8d0.js","567","static/chunks/567-72a086fabc9bacfe.js","974","static/chunks/app/page-0816ef0cd3e872d8.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/block-progress.tsx":{"id":25763,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","930","static/chunks/930-ca5c6f8b5cb6ac3d.js","148","static/chunks/148-086250dab6a8a8d0.js","567","static/chunks/567-72a086fabc9bacfe.js","974","static/chunks/app/page-0816ef0cd3e872d8.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/charts/model-bar-chart.tsx":{"id":8608,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","930","static/chunks/930-ca5c6f8b5cb6ac3d.js","148","static/chunks/148-086250dab6a8a8d0.js","567","static/chunks/567-72a086fabc9bacfe.js","974","static/chunks/app/page-0816ef0cd3e872d8.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/overview-trend-card.tsx":{"id":74387,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","930","static/chunks/930-ca5c6f8b5cb6ac3d.js","148","static/chunks/148-086250dab6a8a8d0.js","567","static/chunks/567-72a086fabc9bacfe.js","974","static/chunks/app/page-0816ef0cd3e872d8.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/segmented-picker.tsx":{"id":1189,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/tool-leaderboard.tsx":{"id":55294,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/client/app-dir/link.js":{"id":52619,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/node_modules/next/dist/esm/client/app-dir/link.js":{"id":52619,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/language-switcher.tsx":{"id":21264,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/pricing-refresh.tsx":{"id":35610,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/pricing-table.tsx":{"id":8783,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/scan-refresh.tsx":{"id":91107,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/theme-switcher.tsx":{"id":44703,"name":"*","chunks":[],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/model-filter.tsx":{"id":8336,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","930","static/chunks/930-ca5c6f8b5cb6ac3d.js","253","static/chunks/253-dae1b01a941e7c13.js","148","static/chunks/148-086250dab6a8a8d0.js","567","static/chunks/567-72a086fabc9bacfe.js","430","static/chunks/app/usage/page-64b22de6021c8bfb.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/overview-toggle.tsx":{"id":44512,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","930","static/chunks/930-ca5c6f8b5cb6ac3d.js","253","static/chunks/253-dae1b01a941e7c13.js","148","static/chunks/148-086250dab6a8a8d0.js","567","static/chunks/567-72a086fabc9bacfe.js","430","static/chunks/app/usage/page-64b22de6021c8bfb.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/project-filter.tsx":{"id":14920,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","930","static/chunks/930-ca5c6f8b5cb6ac3d.js","253","static/chunks/253-dae1b01a941e7c13.js","148","static/chunks/148-086250dab6a8a8d0.js","567","static/chunks/567-72a086fabc9bacfe.js","430","static/chunks/app/usage/page-64b22de6021c8bfb.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/range-picker.tsx":{"id":73896,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","930","static/chunks/930-ca5c6f8b5cb6ac3d.js","253","static/chunks/253-dae1b01a941e7c13.js","148","static/chunks/148-086250dab6a8a8d0.js","567","static/chunks/567-72a086fabc9bacfe.js","430","static/chunks/app/usage/page-64b22de6021c8bfb.js"],"async":false},"/Users/zuopeng.cheng/personal/workspace/ccgauge/components/usage-data-island.tsx":{"id":5955,"name":"*","chunks":["760","static/chunks/760-24bf5ac5820b9230.js","930","static/chunks/930-ca5c6f8b5cb6ac3d.js","253","static/chunks/253-dae1b01a941e7c13.js","148","static/chunks/148-086250dab6a8a8d0.js","567","static/chunks/567-72a086fabc9bacfe.js","430","static/chunks/app/usage/page-64b22de6021c8bfb.js"],"async":false}},"entryCSSFiles":{"/Users/zuopeng.cheng/personal/workspace/ccgauge/":[],"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/layout":[{"inlined":false,"path":"static/css/cc3c7c3125ee7611.css"}],"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/error":[],"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/loading":[],"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/page":[],"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/usage/loading":[],"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/usage/page":[]},"rscModuleMapping":{"1189":{"*":{"id":"87903","name":"*","chunks":[],"async":false}},"5955":{"*":{"id":"41174","name":"*","chunks":[],"async":false}},"8336":{"*":{"id":"36666","name":"*","chunks":[],"async":false}},"8608":{"*":{"id":"60798","name":"*","chunks":[],"async":false}},"8783":{"*":{"id":"87639","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"12112":{"*":{"id":"66664","name":"*","chunks":[],"async":false}},"12623":{"*":{"id":"4001","name":"*","chunks":[],"async":false}},"14920":{"*":{"id":"21966","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"21264":{"*":{"id":"98392","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25763":{"*":{"id":"88622","name":"*","chunks":[],"async":false}},"30633":{"*":{"id":"53633","name":"*","chunks":[],"async":false}},"35610":{"*":{"id":"14662","name":"*","chunks":[],"async":false}},"38059":{"*":{"id":"89605","name":"*","chunks":[],"async":false}},"41290":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"44512":{"*":{"id":"68264","name":"*","chunks":[],"async":false}},"44703":{"*":{"id":"29509","name":"*","chunks":[],"async":false}},"49567":{"*":{"id":"41697","name":"*","chunks":[],"async":false}},"52619":{"*":{"id":"65169","name":"*","chunks":[],"async":false}},"55294":{"*":{"id":"60644","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"57581":{"*":{"id":"64285","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"73896":{"*":{"id":"58258","name":"*","chunks":[],"async":false}},"74387":{"*":{"id":"73668","name":"*","chunks":[],"async":false}},"77549":{"*":{"id":"62035","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"91107":{"*":{"id":"84701","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"/_not-found/page": "app/_not-found/page.js",
|
|
3
|
-
"/api/pricing/route": "app/api/pricing/route.js",
|
|
3
|
+
"/api/pricing/refresh/route": "app/api/pricing/refresh/route.js",
|
|
4
4
|
"/api/blocks/route": "app/api/blocks/route.js",
|
|
5
|
+
"/api/pricing/route": "app/api/pricing/route.js",
|
|
6
|
+
"/api/projects/route": "app/api/projects/route.js",
|
|
5
7
|
"/api/scan/route": "app/api/scan/route.js",
|
|
6
|
-
"/api/turns/route": "app/api/turns/route.js",
|
|
7
8
|
"/api/sessions/route": "app/api/sessions/route.js",
|
|
8
|
-
"/api/
|
|
9
|
-
"/api/usage/route": "app/api/usage/route.js",
|
|
9
|
+
"/api/turns/route": "app/api/turns/route.js",
|
|
10
10
|
"/api/export/usage/route": "app/api/export/usage/route.js",
|
|
11
|
-
"/
|
|
11
|
+
"/api/usage/route": "app/api/usage/route.js",
|
|
12
12
|
"/models/page": "app/models/page.js",
|
|
13
|
-
"/projects/page": "app/projects/page.js",
|
|
14
13
|
"/page": "app/page.js",
|
|
15
|
-
"/
|
|
16
|
-
"/
|
|
14
|
+
"/tools/page": "app/tools/page.js",
|
|
15
|
+
"/projects/[id]/page": "app/projects/[id]/page.js",
|
|
17
16
|
"/sessions/page": "app/sessions/page.js",
|
|
18
|
-
"/sessions/[id]/page": "app/sessions/[id]/page.js"
|
|
17
|
+
"/sessions/[id]/page": "app/sessions/[id]/page.js",
|
|
18
|
+
"/projects/page": "app/projects/page.js",
|
|
19
|
+
"/settings/page": "app/settings/page.js",
|
|
20
|
+
"/usage/page": "app/usage/page.js"
|
|
19
21
|
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
exports.id=177,exports.ids=[177],exports.modules={11734:(a,b,c)=>{"use strict";c.d(b,{N:()=>h,D:()=>i});var d=c(21124),e=c(38301);let f=(0,e.createContext)({theme:"dark",resolved:"dark",setTheme:()=>{}});function g(a){return"light"===a?"light":"dark"}function h({initialTheme:a,children:b}){let[c,h]=(0,e.useState)(a),[i,j]=(0,e.useState)(()=>"system"===a?"dark":a),k=(0,e.useCallback)(a=>{try{localStorage.setItem("ccgauge.theme",a)}catch{}document.cookie=`ccgauge_theme=${a}; path=/; max-age=31536000; SameSite=Lax`,h(a),j(g(a)),function(a){if("undefined"==typeof document)return;let b=document.documentElement,c=g(a);b.classList.remove("theme-light","theme-dark"),b.classList.add("light"===c?"theme-light":"theme-dark"),b.setAttribute("data-theme",c)}(a)},[]);return(0,d.jsx)(f.Provider,{value:{theme:c,resolved:i,setTheme:k},children:b})}function i(){return(0,e.useContext)(f)}},13132:(a,b,c)=>{Promise.resolve().then(c.bind(c,88267)),Promise.resolve().then(c.bind(c,17290))},15514:(a,b,c)=>{"use strict";c.d(b,{BC:()=>o,P6:()=>q,PJ:()=>n,R8:()=>k,a3:()=>l,az:()=>i,cn:()=>f,jh:()=>h,l7:()=>j,r6:()=>m});var d=c(43249),e=c(58829);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){return 0===a?"$0":a<.01?new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:4,maximumFractionDigits:6}).format(a):i(a)}function k(a,b=1){return Number.isFinite(a)?`${(100*a).toFixed(b)}%`:"0%"}function l(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 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):""}let p={mini:"Mini",nano:"Nano",pro:"Pro",turbo:"Turbo",preview:"Preview"};function q(a){if(!a)return"(unknown)";let b=a.replace(/^(vertex_ai|bedrock|anthropic|openai)\//,""),c=b.toLowerCase();if(c.startsWith("gpt-")||/^o\d/.test(c))return c.startsWith("gpt-")?"GPT-"+b.slice(4).split("-").map(a=>p[a.toLowerCase()]??a).join(" "):b.toUpperCase();let d=b.replace(/-(\d{8})$/,""),e=(d=d.replace(/^claude-/,"")).split("-");if(e.length>=2){let a=e[0],b=e.slice(1).join(".");return r(a)+" "+b}return r(d.replace(/-/g," "))}function r(a){return a.replace(/\b\w/g,a=>a.toUpperCase())}},15519:(a,b,c)=>{"use strict";c.d(b,{CY:()=>i,s9:()=>j,kj:()=>k});var d=c(21124),e=c(38301),f=c(42378),g=c(78642);let h=(0,e.createContext)({locale:g.Xn,setLocale:()=>{},t:a=>a});function i({initialLocale:a,children:b}){let c=(0,f.useRouter)(),i=(0,e.useCallback)(a=>{try{localStorage.setItem("ccgauge.locale",a)}catch{}document.cookie=`ccgauge_locale=${a}; path=/; max-age=31536000; SameSite=Lax`,c.refresh()},[c]),j=(0,e.useCallback)((b,c)=>(0,g.nA)(a,b,c),[a]),k=(0,e.useMemo)(()=>({locale:a,setLocale:i,t:j}),[a,i,j]);return(0,d.jsx)(h.Provider,{value:k,children:b})}function j(){return(0,e.useContext)(h)}function k(){return(0,e.useContext)(h).t}},16124:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81170,23)),Promise.resolve().then(c.t.bind(c,23597,23)),Promise.resolve().then(c.t.bind(c,36893,23)),Promise.resolve().then(c.t.bind(c,89748,23)),Promise.resolve().then(c.t.bind(c,6060,23)),Promise.resolve().then(c.t.bind(c,7184,23)),Promise.resolve().then(c.t.bind(c,69576,23)),Promise.resolve().then(c.t.bind(c,73041,23)),Promise.resolve().then(c.t.bind(c,51384,23))},17290:(a,b,c)=>{"use strict";c.d(b,{Providers:()=>g});var d=c(21124),e=c(15519),f=c(11734);function g({locale:a,theme:b,children:c}){return(0,d.jsx)(e.CY,{initialLocale:a,children:(0,d.jsx)(f.N,{initialTheme:b,children:c})})}},26284:(a,b,c)=>{Promise.resolve().then(c.bind(c,64285)),Promise.resolve().then(c.bind(c,66664))},28607:(a,b,c)=>{"use strict";c.d(b,{ThemeSwitcher:()=>h});var d=c(21124),e=c(11734),f=c(15519);let g={light:"dark",dark:"system",system:"light"};function h(){let{theme:a,resolved:b,setTheme:c}=(0,e.D)(),{t:h}=(0,f.s9)(),j=g[a];return(0,d.jsx)("button",{onClick:()=>c(j),className:"h-7 w-9 inline-flex items-center justify-center rounded-md border border-border bg-bg-surface text-text-secondary hover:text-text-primary hover:bg-bg-surface-hi hover:border-border-hi transition-colors",title:`${h("theme.label")}: ${h(`settings.theme.${a}`)} (${b}) → ${h(`settings.theme.${j}`)}`,"aria-label":h("theme.label"),children:(0,d.jsx)(i,{theme:a})})}function i({theme:a}){return"light"===a?(0,d.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"4"}),(0,d.jsx)("path",{d:"M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41"})]}):"dark"===a?(0,d.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:(0,d.jsx)("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"})}):(0,d.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,d.jsx)("path",{d:"M12 3v18"}),(0,d.jsx)("path",{d:"M12 3a9 9 0 0 1 0 18z",fill:"currentColor",stroke:"none"})]})}},38009:(a,b,c)=>{"use strict";c.d(b,{S:()=>f});var d=c(38301);let e=d.useEffect;function f(a){let b=(0,d.useRef)(null),[c,f]=(0,d.useState)(null),g=(0,d.useCallback)(()=>{let c=b.current;if(!c)return;let d=c.querySelector(`[data-tab="${a}"]`);if(!d)return void f(null);f(a=>{let b={left:d.offsetLeft,width:d.offsetWidth};return a&&a.left===b.left&&a.width===b.width?a:b})},[a]);return e(()=>{g()},[g]),{containerRef:b,rect:c}}},41697:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/zuopeng.cheng/personal/workspace/ccgauge/app/error.tsx\" from the server, but it's 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/app/error.tsx","default")},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]}},55340:(a,b,c)=>{"use strict";c.d(b,{Xn:()=>d,nA:()=>f});let d="en",e={en:{"brand.tagline":"usage dashboard for AI coding CLIs","nav.overview":"Overview","nav.usage":"Usage","nav.sessions":"Sessions","nav.projects":"Projects","nav.models":"Models","nav.tools":"Tools","nav.analytics":"Analytics","nav.settings":"Settings","nav.docs":"Docs","nav.localBadge":"local","nav.source":"Data source","source.claude":"Claude","source.codex":"Codex","source.all":"All","cost.footnote.codex":"Cost shown is the OpenAI API equivalent (subscription plans pay differently).","common.requests":"requests","common.tokens":"tokens","common.cost":"Cost","common.savedViaCache":"Saved {amount} via cache","common.savedTodayViaCache":"Saved {amount} today","common.live":"live","common.allModels":"All","common.allProjects":"All","common.unknown":"(unknown)","common.session":"Session","common.sessions":"sessions","common.projects":"projects","common.req":"req","common.day":"day","common.days":"days","common.activity":"activity","common.fallbackPrice":"fallback price","common.thinking":"thinking","common.lastActivity":"last activity","common.empty.title":"No usage data yet","common.empty.desc":"Open Claude Code, send a message, then refresh.","common.refresh":"Refresh","common.search":"Search…","common.searchPlaceholder":"Search model, project, session, tool…","common.exportCsv":"Export CSV","common.rows":"{count} rows","common.prev":"‹ Prev","common.next":"Next ›","common.first":"\xab","common.last":"\xbb","common.pageOf":"Page {page} of {total}","common.allSessions":"← All sessions","common.allProjectsLink":"← All projects","common.noMatchingRows":"No matching rows","range.label":"Date range","range.today":"Today","range.7d":"7d","range.30d":"30d","range.90d":"90d","range.all":"All","range.custom":"Custom","range.customApply":"Apply","range.from":"From","range.to":"To","range.cancel":"Cancel","gran.label":"Granularity","gran.hour":"Hour","gran.day":"Day","gran.week":"Week","gran.month":"Month","overview.title":"Overview","overview.subtitle":"{count} requests across {files} files \xb7 scan in {ms}ms","overview.subtitle.empty":"Scanned {dirs} directory(ies). Open Claude Code, send a message, then refresh.","overview.empty.title":"No usage data yet","overview.kpi.tokensToday":"Tokens today","overview.kpi.costToday":"Cost today","overview.kpi.thisMonth":"This month","overview.kpi.cacheHit":"Cache hit rate","overview.kpi.topModel":"Top model","overview.kpi.activeSessions":"Sessions today","overview.kpi.activeSessions.hint":"{count} project(s)","overview.kpi.thisMonth.hint":"{tokens} tokens \xb7 {req} req","overview.kpi.tokensToday.hint":"{count} requests","overview.kpi.topModel.hint":"{pct} of cost this month","overview.kpi.cacheHit.hint":"Saved {amount} today","overview.delta.title":"vs yesterday","overview.delta.firstTime":"NEW","common.loading":"Loading…","common.error.title":"Something went wrong","common.error.desc":"Failed to load this page. Try again.","common.error.retry":"Retry","overview.trend.title":"Usage trend","overview.trend.desc":"Last 30 days \xb7 {metric}","overview.trend.desc.tokens":"stacked by token type","overview.trend.desc.conversations":"conversations per day","overview.trend.metric.tokens":"Tokens","overview.trend.metric.conversations":"Conversations","overview.trend.activeDays":"{n} day with activity","overview.trend.activeDays.plural":"{n} days with activity","overview.costByModel.title":"Cost by model","overview.costByModel.desc":"This month, sorted by spend","activity.title":"Activity","activity.subtitle":"Lifetime stats and when you usually code","activity.sessions":"Sessions","activity.messages":"Messages","activity.totalTokens":"Total tokens","activity.activeDays":"Active days","activity.currentStreak":"Current streak","activity.longestStreak":"Longest streak","activity.streakCombinedLabel":"Streak (cur / max)","activity.streakCombinedValue":"{current} / {longest} d","activity.peakHour":"Peak hour","activity.favoriteModel":"Favorite model","activity.streakValue":"{n}d","activity.dow.0":"Sun","activity.dow.1":"Mon","activity.dow.2":"Tue","activity.dow.3":"Wed","activity.dow.4":"Thu","activity.dow.5":"Fri","activity.dow.6":"Sat","activity.heatmap.tooltip":"{dow} \xb7 {hour} \xb7 {count} messages","activity.heatmap.messages":"Messages","activity.heatmap.tokens":"Tokens","activity.heatmap.shareLabel":"Share","activity.heatmap.intensityLabel":"Of peak","activity.heatmap.empty":"No activity","activity.comparison":"You've used ~{multiplier}\xd7 more tokens than {ref}.","activity.ref.haiku":"a haiku","activity.ref.tweet":"a tweet","activity.ref.littlePrince":"The Little Prince","activity.ref.gatsby":"The Great Gatsby","activity.ref.hobbit":"The Hobbit","activity.ref.lotrTrilogy":"the Lord of the Rings trilogy","activity.ref.warAndPeace":"War and Peace","activity.ref.harryPotterAll":"all 7 Harry Potter books","activity.ref.encyclopediaBritannica":"the Encyclopedia Britannica","activity.ref.wikipediaEn":"all of English Wikipedia","block.title":"Active 5h block","block.remaining":"remaining","block.elapsed":"Time elapsed {pct}%","block.tokensSuffix":"tokens","block.spentSoFar":"Spent so far","block.burnPerMin":"Burn / min","block.projectedTotal":"Projected total","block.requests":"Requests","block.empty":"No active block","block.emptyDesc":"Send a message in {cli} to start one.","block.disclaimer":"Wall-clock progress of the 5h window — not your plan quota.","chart.legend.input":"Input","chart.legend.output":"Output","chart.legend.cacheRead":"Cache read","chart.legend.cacheWrite":"Cache write","chart.tooltip.total":"Total","chart.tooltip.cost":"Cost","chart.tooltip.requests":"Requests","chart.tooltip.conversations":"Conversations","chart.empty":"No data in this range","chart.empty.short":"No data","usage.title":"Usage","usage.subtitle":"{count} turns in selected range","usage.col.calls":"Calls","usage.col.userMessage":"Prompt","usage.overview.label":"Overview","usage.overview.show":"Show overview (KPIs + trend)","usage.overview.hide":"Hide overview (KPIs + trend)","usage.turn.expand":"Expand","usage.turn.collapse":"Collapse","usage.turn.callsCount":"{count} calls","usage.turn.noPrompt":"(no user text)","usage.requests.desc":"One row per turn (user message + tool calls); click ▸ to expand","usage.kpi.totalTokens":"Total tokens","usage.kpi.totalCost":"Total cost","usage.kpi.cacheSaved":"Cache saved","usage.kpi.cacheHit":"Cache hit","usage.trend":"Trend","usage.trend.gran":"Granularity: {gran}","usage.requests.title":"Requests","usage.col.time":"Time","usage.col.duration":"Duration","usage.col.model":"Model","usage.col.project":"Project","usage.col.session":"Session","usage.col.input":"Input","usage.col.output":"Output","usage.col.cacheRead":"Cache R","usage.col.cacheWrite":"Cache W","usage.col.cost":"Cost","usage.col.tools":"Tools","usage.col.total":"Total","usage.badge.workflow":"Workflow","usage.badge.workflowHint":"Fanned out {count} parallel sub-agent(s) (Workflow / ultracode)","usage.badge.fast":"fast","usage.badge.fastHint":"Codex priority/fast service tier is active — these requests are billed at a higher rate (2x+).","usage.columns.button":"Columns","usage.columns.title":"Visible columns","usage.columns.reset":"Reset","usage.breakdown.title":"Token breakdown","usage.breakdown.headerTokens":"Tokens","usage.breakdown.headerCost":"Cost","usage.breakdown.total":"Total","usage.breakdown.reasoning":"reasoning","usage.breakdown.reasoningNote":"incl. above","filter.modelLabel":"Model","filter.projectLabel":"Project","filter.modelAll":"Model: All","filter.projectAll":"Project: All","filter.modelSingle":"Model: {value}","filter.projectSingle":"Project: {value}","filter.modelMulti":"Model: {count}","filter.projectMulti":"Project: {count}","filter.clearAll":"Clear all","filter.noOptions":"No options","sessions.title":"Sessions","sessions.subtitle":"{count} sessions \xb7 sorted by most recent activity","sessions.col.session":"Session","sessions.col.project":"Project","sessions.col.models":"Model(s)","sessions.col.requests":"Requests","sessions.col.tokens":"Tokens","sessions.col.cost":"Cost","sessions.col.duration":"Duration","sessions.col.lastActivity":"Last activity","sessions.untitled":"Session {hash}","sessions.empty":"No sessions yet","session.kpi.requests":"Requests","session.kpi.totalTokens":"Total tokens","session.kpi.cost":"Cost","session.kpi.duration":"Duration","session.timeline.title":"Message timeline","session.timeline.desc":"In order; newest at the bottom","session.perMessage.title":"Per-message tokens","session.modelsInSession":"Models in this session","session.modelLine":"{requests} req \xb7 {tokens} tokens","session.token.in":"in","session.token.out":"out","session.token.cacheR":"cache r","session.token.cacheW":"cache w","projects.title":"Projects","projects.subtitle":"{count} projects \xb7 sorted by spend","projects.empty":"No projects yet","projects.stat.sessions":"Sessions","projects.stat.requests":"Requests","projects.stat.tokens":"Tokens","project.activity":"Activity (last 30 days)","project.sessions.title":"Sessions ({count})","models.title":"Models","models.subtitle":"{count} model(s) used in total","models.empty":"No model usage yet","models.share.cost":"Cost share","models.share.tokens":"Tokens share","models.share.cacheHit":"Cache hit","models.field.requests":"Requests","models.field.savedByCache":"Saved by cache","models.field.input1M":"Input / 1M","models.field.output1M":"Output / 1M","models.field.cacheRead1M":"Cache read / 1M","models.field.pctOfTotal":"{pct} of total spend \xb7 {tokens} tokens","models.eachTrend":"Combined trend (last 30 days)","tools.title":"Tools & skills","tools.subtitle":"Estimated context footprint \xb7 {count} entries","tools.empty":"No tool or skill usage yet","tools.emptyDesc":"Once Claude Code invokes tools or skills, their estimated context footprint shows up here.","tools.dimension":"Breakdown dimension","tools.by.skill":"By skill","tools.by.tool":"By tool","tools.by.mcp":"By MCP server","tools.estimate":"Estimated from payload size (~4 chars/token), not Anthropic per-tool billing. Trust the ranking, not the absolute numbers.","tools.kind.skill":"SKILL","tools.kind.tool":"TOOL","tools.kind.mcp":"MCP","tools.topConsumer":"top consumer","tools.field.estTokens":"Est. context tokens","tools.field.invocations":"Invocations","tools.field.sessionsN":"{n} sessions","tools.field.avgPerCall":"Avg / call","tools.field.largest":"Largest single","tools.formula":"≈ {avg} tokens/call \xd7 {calls} calls (estimated)","settings.title":"Settings","settings.subtitle":"Data sources, pricing, and behavior","settings.dataSources.title":"Data sources","settings.dataSources.desc":"ccgauge scans these locations for JSONL files","settings.dataSources.active":"active","settings.dataSources.notPresent":"not present","settings.dataSources.envHint":"Override with {env1} or {env2} environment variables (the dashboard appends {appendix}).","settings.rescan":"Rescan now","settings.rescanning":"Rescanning…","settings.scanStats.title":"Scan stats","settings.scanStats.files":"Files scanned","settings.scanStats.records":"Records parsed","settings.scanStats.assistant":"Assistant records (deduped)","settings.scanStats.duration":"Scan duration","settings.pricing.title":"Pricing table","settings.pricing.desc":"USD per 1M tokens \xb7 fuzzy match for date-suffixed model names","settings.pricing.col.model":"Model","settings.pricing.col.input":"Input","settings.pricing.col.output":"Output","settings.pricing.col.write5m":"Cache write 5m","settings.pricing.col.write1h":"Cache write 1h","settings.pricing.col.read":"Cache read","settings.pricing.refresh":"Refresh prices","settings.pricing.refreshing":"Refreshing…","settings.pricing.sourceBuiltin":"Built-in snapshot","settings.pricing.sourceCache":"Updated from LiteLLM \xb7 {time}","settings.pricing.refreshOk":"Prices updated","settings.pricing.refreshFail":"Refresh failed — keeping current prices","settings.pricing.offline":"Offline — price refresh disabled","settings.preferences.title":"Preferences","settings.preferences.language":"Language","settings.preferences.theme":"Theme","settings.theme.light":"Light","settings.theme.dark":"Dark","settings.theme.system":"System","settings.about.title":"About","settings.about.subtitle":"Version {version} \xb7 MIT licensed","settings.about.line1":"Local-first: your data never leaves your machine and there's no telemetry. The only optional network call refreshes the pricing table from LiteLLM — disable it with CCGAUGE_OFFLINE=1.","settings.about.line2":"Read-only: ccgauge only reads JSONL files, never writes back to ~/.claude.","settings.about.line3":'Cache: scan results are memoized for 5s; click "Rescan" to force a fresh read.',"settings.about.line4":"Stop with Ctrl+C in the terminal that started ccgauge.","settings.indexer.desc":"Background indexer keeps the cache fresh via file watchers.","settings.indexer.lastIndexedAt":"Last indexed","settings.indexer.indexDuration":"Last index time","settings.indexer.watchers":"Active watchers","settings.indexer.loadedFromDisk":"Loaded from disk","settings.indexer.status":"Status","settings.indexer.indexing":"indexing…","settings.indexer.idle":"idle","settings.indexer.recentErrors":"Recent indexer errors","common.yes":"yes","common.no":"no","lang.label":"Language","lang.en":"English","lang.zh":"中文","theme.label":"Theme"},zh:{"brand.tagline":"AI 编程 CLI 的本地用量看板","nav.overview":"概览","nav.usage":"用量","nav.sessions":"会话","nav.projects":"项目","nav.models":"模型","nav.tools":"工具","nav.analytics":"分析","nav.settings":"设置","nav.docs":"文档","nav.localBadge":"本地","nav.source":"数据源","source.claude":"Claude","source.codex":"Codex","source.all":"全部","cost.footnote.codex":"按 OpenAI API 单价折算估值(订阅计划实际计费不同)","common.requests":"次请求","common.tokens":"tokens","common.cost":"花费","common.savedViaCache":"通过缓存节省 {amount}","common.savedTodayViaCache":"今日缓存节省 {amount}","common.live":"进行中","common.allModels":"全部","common.allProjects":"全部","common.unknown":"(未知)","common.session":"会话","common.sessions":"个会话","common.projects":"个项目","common.req":"请求","common.day":"天","common.days":"天","common.activity":"活跃","common.fallbackPrice":"使用兜底单价","common.thinking":"思考","common.lastActivity":"最近活跃","common.empty.title":"暂无用量数据","common.empty.desc":"打开 Claude Code 发送一条消息后刷新本页。","common.refresh":"刷新","common.search":"搜索…","common.searchPlaceholder":"搜索模型 / 项目 / 会话 / 工具…","common.exportCsv":"导出 CSV","common.rows":"{count} 行","common.prev":"‹ 上一页","common.next":"下一页 ›","common.first":"\xab","common.last":"\xbb","common.pageOf":"第 {page} / {total} 页","common.allSessions":"← 返回会话列表","common.allProjectsLink":"← 返回项目列表","common.noMatchingRows":"没有匹配的记录","range.label":"时间范围","range.today":"今天","range.7d":"7 天","range.30d":"30 天","range.90d":"90 天","range.all":"全部","range.custom":"自定义","range.customApply":"应用","range.from":"开始","range.to":"结束","range.cancel":"取消","gran.label":"粒度","gran.hour":"小时","gran.day":"天","gran.week":"周","gran.month":"月","overview.title":"概览","overview.subtitle":"{count} 次请求,覆盖 {files} 个文件 \xb7 扫描耗时 {ms}ms","overview.subtitle.empty":"已扫描 {dirs} 个目录。打开 Claude Code 发一条消息后刷新本页。","overview.empty.title":"暂无用量数据","overview.kpi.tokensToday":"今日 tokens","overview.kpi.costToday":"今日花费","overview.kpi.thisMonth":"本月累计","overview.kpi.cacheHit":"缓存命中率","overview.kpi.topModel":"主力模型","overview.kpi.activeSessions":"今日会话","overview.kpi.activeSessions.hint":"涉及 {count} 个项目","overview.kpi.thisMonth.hint":"{tokens} tokens \xb7 {req} 次请求","overview.kpi.tokensToday.hint":"{count} 次请求","overview.kpi.topModel.hint":"本月成本占比 {pct}","overview.kpi.cacheHit.hint":"今日缓存节省 {amount}","overview.delta.title":"相比昨日","overview.delta.firstTime":"首次","common.loading":"加载中…","common.error.title":"出错了","common.error.desc":"加载失败,请重试。","common.error.retry":"重试","overview.trend.title":"用量趋势","overview.trend.desc":"近 30 天 \xb7 {metric}","overview.trend.desc.tokens":"按 token 类型堆叠","overview.trend.desc.conversations":"每日对话次数","overview.trend.metric.tokens":"Token","overview.trend.metric.conversations":"对话次数","overview.trend.activeDays":"{n} 天有数据","overview.trend.activeDays.plural":"{n} 天有数据","overview.costByModel.title":"按模型成本分布","overview.costByModel.desc":"本月,按花费排序","activity.title":"活动统计","activity.subtitle":"总览数据 + 每天什么时段最忙","activity.sessions":"会话","activity.messages":"消息","activity.totalTokens":"总 tokens","activity.activeDays":"活跃天数","activity.currentStreak":"当前连续","activity.longestStreak":"最长连续","activity.streakCombinedLabel":"当前 / 最长连续","activity.streakCombinedValue":"{current} / {longest} 天","activity.peakHour":"高峰小时","activity.favoriteModel":"最常用模型","activity.streakValue":"{n} 天","activity.dow.0":"周日","activity.dow.1":"周一","activity.dow.2":"周二","activity.dow.3":"周三","activity.dow.4":"周四","activity.dow.5":"周五","activity.dow.6":"周六","activity.heatmap.tooltip":"周{dow} \xb7 {hour} \xb7 {count} 条消息","activity.heatmap.messages":"消息数","activity.heatmap.tokens":"Tokens","activity.heatmap.shareLabel":"占总数","activity.heatmap.intensityLabel":"占峰值","activity.heatmap.empty":"无活动","activity.comparison":"你用掉的 token 大约是 {ref} 的 {multiplier}\xd7。","activity.ref.haiku":"一首俳句","activity.ref.tweet":"一条推文","activity.ref.littlePrince":"《小王子》","activity.ref.gatsby":"《了不起的盖茨比》","activity.ref.hobbit":"《霍比特人》","activity.ref.lotrTrilogy":"《魔戒》三部曲","activity.ref.warAndPeace":"《战争与和平》","activity.ref.harryPotterAll":"《哈利\xb7波特》全 7 册","activity.ref.encyclopediaBritannica":"《大英百科全书》","activity.ref.wikipediaEn":"英文维基百科全部","block.title":"当前 5h block","block.remaining":"剩余","block.elapsed":"时间进度 {pct}%","block.tokensSuffix":"tokens","block.spentSoFar":"已花费","block.burnPerMin":"每分钟消耗","block.projectedTotal":"预计总花费","block.requests":"请求数","block.empty":"当前无活跃 block","block.emptyDesc":"在 {cli} 中发送消息会启动一个新 block。","block.disclaimer":"仅是 5h 窗口的钟表进度,不是你的套餐配额。","chart.legend.input":"输入","chart.legend.output":"输出","chart.legend.cacheRead":"缓存读取","chart.legend.cacheWrite":"缓存写入","chart.tooltip.total":"合计","chart.tooltip.cost":"花费","chart.tooltip.requests":"请求数","chart.tooltip.conversations":"对话次数","chart.empty":"区间内无数据","chart.empty.short":"暂无数据","usage.title":"用量明细","usage.subtitle":"当前筛选范围内 {count} 轮对话","usage.kpi.totalTokens":"总 tokens","usage.kpi.totalCost":"总花费","usage.kpi.cacheSaved":"缓存节省","usage.kpi.cacheHit":"缓存命中","usage.trend":"趋势","usage.trend.gran":"粒度:{gran}","usage.requests.title":"对话轮次","usage.requests.desc":"每轮对话一行(用户消息 + 工具调用),点击 ▸ 展开明细","usage.col.calls":"调用","usage.col.userMessage":"提示","usage.overview.label":"概览","usage.overview.show":"显示概览(KPI + 趋势)","usage.overview.hide":"隐藏概览(KPI + 趋势)","usage.turn.expand":"展开","usage.turn.collapse":"收起","usage.turn.callsCount":"{count} 次调用","usage.turn.noPrompt":"(无用户文本)","usage.col.time":"时间","usage.col.duration":"耗时","usage.col.model":"模型","usage.col.project":"项目","usage.col.session":"会话","usage.col.input":"输入","usage.col.output":"输出","usage.col.cacheRead":"缓存读","usage.col.cacheWrite":"缓存写","usage.col.cost":"花费","usage.col.tools":"工具","usage.col.total":"总量","usage.badge.workflow":"工作流","usage.badge.workflowHint":"扇出了 {count} 个并行子代理(Workflow / ultracode)","usage.badge.fast":"fast","usage.badge.fastHint":"Codex 优先 / fast 服务档已开启 —— 这些请求按更高费率计费(2 倍起)。","usage.columns.button":"列","usage.columns.title":"显示列","usage.columns.reset":"重置","usage.breakdown.title":"总量明细","usage.breakdown.headerTokens":"Token","usage.breakdown.headerCost":"花费","usage.breakdown.total":"合计","usage.breakdown.reasoning":"其中推理","usage.breakdown.reasoningNote":"已含在 output","filter.modelLabel":"模型","filter.projectLabel":"项目","filter.modelAll":"模型:全部","filter.projectAll":"项目:全部","filter.modelSingle":"模型:{value}","filter.projectSingle":"项目:{value}","filter.modelMulti":"模型:{count} 个","filter.projectMulti":"项目:{count} 个","filter.clearAll":"清除筛选","filter.noOptions":"没有可选项","sessions.title":"会话","sessions.subtitle":"共 {count} 个会话 \xb7 按最近活跃排序","sessions.col.session":"会话","sessions.col.project":"项目","sessions.col.models":"模型","sessions.col.requests":"请求数","sessions.col.tokens":"Tokens","sessions.col.cost":"花费","sessions.col.duration":"时长","sessions.col.lastActivity":"最近活跃","sessions.untitled":"会话 {hash}","sessions.empty":"暂无会话","session.kpi.requests":"请求数","session.kpi.totalTokens":"总 tokens","session.kpi.cost":"花费","session.kpi.duration":"时长","session.timeline.title":"消息时间线","session.timeline.desc":"按时间正序,最新的在最下方","session.perMessage.title":"逐条消息 tokens","session.modelsInSession":"本会话使用的模型","session.modelLine":"{requests} 次 \xb7 {tokens} tokens","session.token.in":"输入","session.token.out":"输出","session.token.cacheR":"缓存读","session.token.cacheW":"缓存写","projects.title":"项目","projects.subtitle":"共 {count} 个项目 \xb7 按花费排序","projects.empty":"暂无项目","projects.stat.sessions":"会话","projects.stat.requests":"请求","projects.stat.tokens":"Tokens","project.activity":"活跃情况(近 30 天)","project.sessions.title":"会话({count})","models.title":"模型","models.subtitle":"共使用过 {count} 个模型","models.empty":"暂无模型用量","models.share.cost":"成本占比","models.share.tokens":"Tokens 占比","models.share.cacheHit":"缓存命中","models.field.requests":"请求数","models.field.savedByCache":"缓存节省","models.field.input1M":"输入 / 1M","models.field.output1M":"输出 / 1M","models.field.cacheRead1M":"缓存读 / 1M","models.field.pctOfTotal":"占总花费 {pct} \xb7 {tokens} tokens","models.eachTrend":"整体趋势(近 30 天)","tools.title":"工具与技能","tools.subtitle":"预估上下文占用 \xb7 共 {count} 项","tools.empty":"暂无工具或技能用量","tools.emptyDesc":"Claude Code 调用工具或技能后,这里会显示它们预估的上下文占用。","tools.dimension":"拆分维度","tools.by.skill":"按技能","tools.by.tool":"按工具","tools.by.mcp":"按 MCP 服务","tools.estimate":"按体积估算(约 4 字符/token),非 Anthropic 按工具真实计费。看排名,别看绝对值。","tools.kind.skill":"技能","tools.kind.tool":"工具","tools.kind.mcp":"MCP","tools.topConsumer":"占用最高","tools.field.estTokens":"预估上下文 tokens","tools.field.invocations":"调用次数","tools.field.sessionsN":"{n} 个会话","tools.field.avgPerCall":"平均每次","tools.field.largest":"单次最大","tools.formula":"≈ 每次 {avg} tokens \xd7 {calls} 次调用(估算)","settings.title":"设置","settings.subtitle":"数据源、价格表与行为偏好","settings.dataSources.title":"数据源","settings.dataSources.desc":"ccgauge 会扫描以下路径的 JSONL 文件","settings.dataSources.active":"已启用","settings.dataSources.notPresent":"不存在","settings.dataSources.envHint":"可以通过环境变量 {env1} 或 {env2} 自定义路径(看板会自动追加 {appendix})。","settings.rescan":"立即重新扫描","settings.rescanning":"扫描中…","settings.scanStats.title":"扫描统计","settings.scanStats.files":"扫描文件数","settings.scanStats.records":"解析记录数","settings.scanStats.assistant":"去重后 assistant 记录","settings.scanStats.duration":"扫描耗时","settings.pricing.title":"价格表","settings.pricing.desc":"美元 / 1M tokens \xb7 对带日期后缀的模型名做 fuzzy 匹配","settings.pricing.col.model":"模型","settings.pricing.col.input":"输入","settings.pricing.col.output":"输出","settings.pricing.col.write5m":"缓存写入 5 分钟","settings.pricing.col.write1h":"缓存写入 1 小时","settings.pricing.col.read":"缓存读取","settings.pricing.refresh":"刷新价格","settings.pricing.refreshing":"刷新中…","settings.pricing.sourceBuiltin":"内置快照","settings.pricing.sourceCache":"已从 LiteLLM 更新 \xb7 {time}","settings.pricing.refreshOk":"价格已更新","settings.pricing.refreshFail":"刷新失败 — 保留当前价格","settings.pricing.offline":"离线 — 已禁用价格刷新","settings.preferences.title":"偏好设置","settings.preferences.language":"语言","settings.preferences.theme":"主题","settings.theme.light":"亮色","settings.theme.dark":"暗色","settings.theme.system":"跟随系统","settings.about.title":"关于","settings.about.subtitle":"版本 {version} \xb7 MIT 协议","settings.about.line1":"本地优先:你的数据从不离开本机,也没有任何遥测。唯一可选的网络请求是从 LiteLLM 刷新价格表 —— 设 CCGAUGE_OFFLINE=1 可关闭。","settings.about.line2":"只读:ccgauge 只读取 JSONL,绝不会写回 ~/.claude。","settings.about.line3":'缓存:扫描结果会缓存 5 秒;点击"重新扫描"可强制刷新。',"settings.about.line4":"在启动 ccgauge 的终端按 Ctrl+C 即可停止。","settings.indexer.desc":"后台 indexer 通过文件监听增量维护缓存。","settings.indexer.lastIndexedAt":"最近索引时间","settings.indexer.indexDuration":"最近索引耗时","settings.indexer.watchers":"活跃 watcher 数","settings.indexer.loadedFromDisk":"从磁盘恢复","settings.indexer.status":"状态","settings.indexer.indexing":"索引中…","settings.indexer.idle":"空闲","settings.indexer.recentErrors":"最近的索引错误","common.yes":"是","common.no":"否","lang.label":"语言","lang.en":"English","lang.zh":"中文","theme.label":"主题"}};function f(a,b,c){let d=e[a]?.[b];if(void 0===d&&(d=e.en[b]),void 0===d&&(d=b),c)for(let[a,b]of Object.entries(c))d=d.replace(RegExp(`\\{${a}\\}`,"g"),String(b));return d}},61855:(a,b,c)=>{"use strict";c.d(b,{j:()=>h});var d=c(21124),e=c(38301),f=c(23312),g=c(15514);function h({children:a,content:b,className:c,panelClassName:h,align:i="left",delay:j=100,maxWidth:k=360}){let l=(0,e.useRef)(null),m=(0,e.useRef)(null),n=(0,e.useRef)(null),[o,p]=(0,e.useState)(null),[q,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(!1);function u(){n.current&&(window.clearTimeout(n.current),n.current=null),s||(m.current=window.setTimeout(()=>{let a=function(){let a,b=l.current;if(!b)return null;let c=b.getBoundingClientRect(),d=Math.min(k,window.innerWidth-16),e=window.innerHeight-c.bottom<200?"top":"bottom";return"right"===i?(a=Math.min(c.right,window.innerWidth-8))-d<8&&(a=d+8):(a=Math.max(c.left,8))+d>window.innerWidth-8&&(a=window.innerWidth-d-8),{x:a,y:"bottom"===e?c.bottom+8:c.top-8,placement:e,align:i}}();a&&(p(a),t(!0))},j))}function v(){m.current&&(window.clearTimeout(m.current),m.current=null),n.current=window.setTimeout(()=>t(!1),80)}return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{ref:l,onMouseEnter:u,onMouseLeave:v,onFocus:u,onBlur:v,className:(0,g.cn)("inline-block",c),children:a}),q&&o&&(0,f.createPortal)((0,d.jsx)("div",{onMouseEnter:()=>{n.current&&(window.clearTimeout(n.current),n.current=null)},onMouseLeave:v,style:{position:"fixed",left:"right"===o.align?void 0:o.x,right:"right"===o.align?window.innerWidth-o.x:void 0,top:"bottom"===o.placement?o.y:void 0,bottom:"top"===o.placement?window.innerHeight-o.y:void 0,maxWidth:k,transform:s?"translateY(0) scale(1)":"bottom"===o.placement?"translateY(-4px) scale(0.98)":"translateY(4px) scale(0.98)",opacity:+!!s,transitionProperty:"opacity, transform",transitionDuration:"120ms",transitionTimingFunction:"cubic-bezier(0.16, 1, 0.3, 1)",transformOrigin:"bottom"===o.placement?"top":"bottom",pointerEvents:s?"auto":"none"},className:(0,g.cn)("z-50 card border-border-hi shadow-xl rounded-button",h),children:b}),document.body)]})}},64285:(a,b,c)=>{"use strict";c.d(b,{Nav:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call Nav() from the server but Nav 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/nav.tsx","Nav")},66664:(a,b,c)=>{"use strict";c.d(b,{Providers:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call Providers() from the server but Providers 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/providers.tsx","Providers")},73165:(a,b,c)=>{"use strict";c.d(b,{j:()=>f});var d=c(21124),e=c(15514);function f({rect:a,variant:b="pill",className:c}){if(!a)return null;let f=8*("underline"===b);return(0,d.jsx)("span",{"aria-hidden":!0,className:(0,e.cn)("pointer-events-none absolute transition-[transform,width] duration-200 ease-out-soft","pill"===b?"inset-y-0 rounded bg-brand-strong shadow-sm":"-bottom-[12px] h-[2px] rounded-full bg-brand",c),style:{transform:`translateX(${a.left+f}px)`,width:Math.max(0,a.width-2*f)}})}},74268:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,54160,23)),Promise.resolve().then(c.t.bind(c,31603,23)),Promise.resolve().then(c.t.bind(c,68495,23)),Promise.resolve().then(c.t.bind(c,75170,23)),Promise.resolve().then(c.t.bind(c,77526,23)),Promise.resolve().then(c.t.bind(c,78922,23)),Promise.resolve().then(c.t.bind(c,29234,23)),Promise.resolve().then(c.t.bind(c,12263,23)),Promise.resolve().then(c.bind(c,82146))},77731:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(21124);c(38301);var e=c(15519);function f({error:a,reset:b}){let c=(0,e.kj)();return(0,d.jsx)("div",{className:"max-w-2xl mx-auto px-6 py-12",children:(0,d.jsxs)("div",{className:"card card-pad text-center",children:[(0,d.jsx)("div",{className:"text-base font-semibold text-text-primary",children:c("common.error.title")}),(0,d.jsx)("p",{className:"text-sm text-text-secondary mt-2",children:c("common.error.desc")}),a.message&&(0,d.jsxs)("pre",{className:"mt-4 text-xs text-text-tertiary text-left bg-bg-surface-hi rounded p-3 overflow-auto max-h-48 whitespace-pre-wrap",children:[a.message,a.digest?`
|
|
2
|
+
|
|
3
|
+
#${a.digest}`:""]}),(0,d.jsx)("button",{onClick:()=>b(),className:"btn mt-4",children:c("common.error.retry")})]})})}},78288:(a,b,c)=>{Promise.resolve().then(c.bind(c,41697))},78642:(a,b,c)=>{"use strict";c.d(b,{Xn:()=>e,YZ:()=>d,nA:()=>g});let d=["en","zh"],e="en",f={en:{"brand.tagline":"usage dashboard for AI coding CLIs","nav.overview":"Overview","nav.usage":"Usage","nav.sessions":"Sessions","nav.projects":"Projects","nav.models":"Models","nav.tools":"Tools","nav.analytics":"Analytics","nav.settings":"Settings","nav.docs":"Docs","nav.localBadge":"local","nav.source":"Data source","source.claude":"Claude","source.codex":"Codex","source.all":"All","cost.footnote.codex":"Cost shown is the OpenAI API equivalent (subscription plans pay differently).","common.requests":"requests","common.tokens":"tokens","common.cost":"Cost","common.savedViaCache":"Saved {amount} via cache","common.savedTodayViaCache":"Saved {amount} today","common.live":"live","common.allModels":"All","common.allProjects":"All","common.unknown":"(unknown)","common.session":"Session","common.sessions":"sessions","common.projects":"projects","common.req":"req","common.day":"day","common.days":"days","common.activity":"activity","common.fallbackPrice":"fallback price","common.thinking":"thinking","common.lastActivity":"last activity","common.empty.title":"No usage data yet","common.empty.desc":"Open Claude Code, send a message, then refresh.","common.refresh":"Refresh","common.search":"Search…","common.searchPlaceholder":"Search model, project, session, tool…","common.exportCsv":"Export CSV","common.rows":"{count} rows","common.prev":"‹ Prev","common.next":"Next ›","common.first":"\xab","common.last":"\xbb","common.pageOf":"Page {page} of {total}","common.allSessions":"← All sessions","common.allProjectsLink":"← All projects","common.noMatchingRows":"No matching rows","range.label":"Date range","range.today":"Today","range.7d":"7d","range.30d":"30d","range.90d":"90d","range.all":"All","range.custom":"Custom","range.customApply":"Apply","range.from":"From","range.to":"To","range.cancel":"Cancel","gran.label":"Granularity","gran.hour":"Hour","gran.day":"Day","gran.week":"Week","gran.month":"Month","overview.title":"Overview","overview.subtitle":"{count} requests across {files} files \xb7 scan in {ms}ms","overview.subtitle.empty":"Scanned {dirs} directory(ies). Open Claude Code, send a message, then refresh.","overview.empty.title":"No usage data yet","overview.kpi.tokensToday":"Tokens today","overview.kpi.costToday":"Cost today","overview.kpi.thisMonth":"This month","overview.kpi.cacheHit":"Cache hit rate","overview.kpi.topModel":"Top model","overview.kpi.activeSessions":"Sessions today","overview.kpi.activeSessions.hint":"{count} project(s)","overview.kpi.thisMonth.hint":"{tokens} tokens \xb7 {req} req","overview.kpi.tokensToday.hint":"{count} requests","overview.kpi.topModel.hint":"{pct} of cost this month","overview.kpi.cacheHit.hint":"Saved {amount} today","overview.delta.title":"vs yesterday","overview.delta.firstTime":"NEW","common.loading":"Loading…","common.error.title":"Something went wrong","common.error.desc":"Failed to load this page. Try again.","common.error.retry":"Retry","overview.trend.title":"Usage trend","overview.trend.desc":"Last 30 days \xb7 {metric}","overview.trend.desc.tokens":"stacked by token type","overview.trend.desc.conversations":"conversations per day","overview.trend.metric.tokens":"Tokens","overview.trend.metric.conversations":"Conversations","overview.trend.activeDays":"{n} day with activity","overview.trend.activeDays.plural":"{n} days with activity","overview.costByModel.title":"Cost by model","overview.costByModel.desc":"This month, sorted by spend","activity.title":"Activity","activity.subtitle":"Lifetime stats and when you usually code","activity.sessions":"Sessions","activity.messages":"Messages","activity.totalTokens":"Total tokens","activity.activeDays":"Active days","activity.currentStreak":"Current streak","activity.longestStreak":"Longest streak","activity.streakCombinedLabel":"Streak (cur / max)","activity.streakCombinedValue":"{current} / {longest} d","activity.peakHour":"Peak hour","activity.favoriteModel":"Favorite model","activity.streakValue":"{n}d","activity.dow.0":"Sun","activity.dow.1":"Mon","activity.dow.2":"Tue","activity.dow.3":"Wed","activity.dow.4":"Thu","activity.dow.5":"Fri","activity.dow.6":"Sat","activity.heatmap.tooltip":"{dow} \xb7 {hour} \xb7 {count} messages","activity.heatmap.messages":"Messages","activity.heatmap.tokens":"Tokens","activity.heatmap.shareLabel":"Share","activity.heatmap.intensityLabel":"Of peak","activity.heatmap.empty":"No activity","activity.comparison":"You've used ~{multiplier}\xd7 more tokens than {ref}.","activity.ref.haiku":"a haiku","activity.ref.tweet":"a tweet","activity.ref.littlePrince":"The Little Prince","activity.ref.gatsby":"The Great Gatsby","activity.ref.hobbit":"The Hobbit","activity.ref.lotrTrilogy":"the Lord of the Rings trilogy","activity.ref.warAndPeace":"War and Peace","activity.ref.harryPotterAll":"all 7 Harry Potter books","activity.ref.encyclopediaBritannica":"the Encyclopedia Britannica","activity.ref.wikipediaEn":"all of English Wikipedia","block.title":"Active 5h block","block.remaining":"remaining","block.elapsed":"Time elapsed {pct}%","block.tokensSuffix":"tokens","block.spentSoFar":"Spent so far","block.burnPerMin":"Burn / min","block.projectedTotal":"Projected total","block.requests":"Requests","block.empty":"No active block","block.emptyDesc":"Send a message in {cli} to start one.","block.disclaimer":"Wall-clock progress of the 5h window — not your plan quota.","chart.legend.input":"Input","chart.legend.output":"Output","chart.legend.cacheRead":"Cache read","chart.legend.cacheWrite":"Cache write","chart.tooltip.total":"Total","chart.tooltip.cost":"Cost","chart.tooltip.requests":"Requests","chart.tooltip.conversations":"Conversations","chart.empty":"No data in this range","chart.empty.short":"No data","usage.title":"Usage","usage.subtitle":"{count} turns in selected range","usage.col.calls":"Calls","usage.col.userMessage":"Prompt","usage.overview.label":"Overview","usage.overview.show":"Show overview (KPIs + trend)","usage.overview.hide":"Hide overview (KPIs + trend)","usage.turn.expand":"Expand","usage.turn.collapse":"Collapse","usage.turn.callsCount":"{count} calls","usage.turn.noPrompt":"(no user text)","usage.requests.desc":"One row per turn (user message + tool calls); click ▸ to expand","usage.kpi.totalTokens":"Total tokens","usage.kpi.totalCost":"Total cost","usage.kpi.cacheSaved":"Cache saved","usage.kpi.cacheHit":"Cache hit","usage.trend":"Trend","usage.trend.gran":"Granularity: {gran}","usage.requests.title":"Requests","usage.col.time":"Time","usage.col.duration":"Duration","usage.col.model":"Model","usage.col.project":"Project","usage.col.session":"Session","usage.col.input":"Input","usage.col.output":"Output","usage.col.cacheRead":"Cache R","usage.col.cacheWrite":"Cache W","usage.col.cost":"Cost","usage.col.tools":"Tools","usage.col.total":"Total","usage.badge.workflow":"Workflow","usage.badge.workflowHint":"Fanned out {count} parallel sub-agent(s) (Workflow / ultracode)","usage.badge.fast":"fast","usage.badge.fastHint":"Codex priority/fast service tier is active — these requests are billed at a higher rate (2x+).","usage.columns.button":"Columns","usage.columns.title":"Visible columns","usage.columns.reset":"Reset","usage.breakdown.title":"Token breakdown","usage.breakdown.headerTokens":"Tokens","usage.breakdown.headerCost":"Cost","usage.breakdown.total":"Total","usage.breakdown.reasoning":"reasoning","usage.breakdown.reasoningNote":"incl. above","filter.modelLabel":"Model","filter.projectLabel":"Project","filter.modelAll":"Model: All","filter.projectAll":"Project: All","filter.modelSingle":"Model: {value}","filter.projectSingle":"Project: {value}","filter.modelMulti":"Model: {count}","filter.projectMulti":"Project: {count}","filter.clearAll":"Clear all","filter.noOptions":"No options","sessions.title":"Sessions","sessions.subtitle":"{count} sessions \xb7 sorted by most recent activity","sessions.col.session":"Session","sessions.col.project":"Project","sessions.col.models":"Model(s)","sessions.col.requests":"Requests","sessions.col.tokens":"Tokens","sessions.col.cost":"Cost","sessions.col.duration":"Duration","sessions.col.lastActivity":"Last activity","sessions.untitled":"Session {hash}","sessions.empty":"No sessions yet","session.kpi.requests":"Requests","session.kpi.totalTokens":"Total tokens","session.kpi.cost":"Cost","session.kpi.duration":"Duration","session.timeline.title":"Message timeline","session.timeline.desc":"In order; newest at the bottom","session.perMessage.title":"Per-message tokens","session.modelsInSession":"Models in this session","session.modelLine":"{requests} req \xb7 {tokens} tokens","session.token.in":"in","session.token.out":"out","session.token.cacheR":"cache r","session.token.cacheW":"cache w","projects.title":"Projects","projects.subtitle":"{count} projects \xb7 sorted by spend","projects.empty":"No projects yet","projects.stat.sessions":"Sessions","projects.stat.requests":"Requests","projects.stat.tokens":"Tokens","project.activity":"Activity (last 30 days)","project.sessions.title":"Sessions ({count})","models.title":"Models","models.subtitle":"{count} model(s) used in total","models.empty":"No model usage yet","models.share.cost":"Cost share","models.share.tokens":"Tokens share","models.share.cacheHit":"Cache hit","models.field.requests":"Requests","models.field.savedByCache":"Saved by cache","models.field.input1M":"Input / 1M","models.field.output1M":"Output / 1M","models.field.cacheRead1M":"Cache read / 1M","models.field.pctOfTotal":"{pct} of total spend \xb7 {tokens} tokens","models.eachTrend":"Combined trend (last 30 days)","tools.title":"Tools & skills","tools.subtitle":"Estimated context footprint \xb7 {count} entries","tools.empty":"No tool or skill usage yet","tools.emptyDesc":"Once Claude Code invokes tools or skills, their estimated context footprint shows up here.","tools.dimension":"Breakdown dimension","tools.by.skill":"By skill","tools.by.tool":"By tool","tools.by.mcp":"By MCP server","tools.estimate":"Estimated from payload size (~4 chars/token), not Anthropic per-tool billing. Trust the ranking, not the absolute numbers.","tools.kind.skill":"SKILL","tools.kind.tool":"TOOL","tools.kind.mcp":"MCP","tools.topConsumer":"top consumer","tools.field.estTokens":"Est. context tokens","tools.field.invocations":"Invocations","tools.field.sessionsN":"{n} sessions","tools.field.avgPerCall":"Avg / call","tools.field.largest":"Largest single","tools.formula":"≈ {avg} tokens/call \xd7 {calls} calls (estimated)","settings.title":"Settings","settings.subtitle":"Data sources, pricing, and behavior","settings.dataSources.title":"Data sources","settings.dataSources.desc":"ccgauge scans these locations for JSONL files","settings.dataSources.active":"active","settings.dataSources.notPresent":"not present","settings.dataSources.envHint":"Override with {env1} or {env2} environment variables (the dashboard appends {appendix}).","settings.rescan":"Rescan now","settings.rescanning":"Rescanning…","settings.scanStats.title":"Scan stats","settings.scanStats.files":"Files scanned","settings.scanStats.records":"Records parsed","settings.scanStats.assistant":"Assistant records (deduped)","settings.scanStats.duration":"Scan duration","settings.pricing.title":"Pricing table","settings.pricing.desc":"USD per 1M tokens \xb7 fuzzy match for date-suffixed model names","settings.pricing.col.model":"Model","settings.pricing.col.input":"Input","settings.pricing.col.output":"Output","settings.pricing.col.write5m":"Cache write 5m","settings.pricing.col.write1h":"Cache write 1h","settings.pricing.col.read":"Cache read","settings.pricing.refresh":"Refresh prices","settings.pricing.refreshing":"Refreshing…","settings.pricing.sourceBuiltin":"Built-in snapshot","settings.pricing.sourceCache":"Updated from LiteLLM \xb7 {time}","settings.pricing.refreshOk":"Prices updated","settings.pricing.refreshFail":"Refresh failed — keeping current prices","settings.pricing.offline":"Offline — price refresh disabled","settings.preferences.title":"Preferences","settings.preferences.language":"Language","settings.preferences.theme":"Theme","settings.theme.light":"Light","settings.theme.dark":"Dark","settings.theme.system":"System","settings.about.title":"About","settings.about.subtitle":"Version {version} \xb7 MIT licensed","settings.about.line1":"Local-first: your data never leaves your machine and there's no telemetry. The only optional network call refreshes the pricing table from LiteLLM — disable it with CCGAUGE_OFFLINE=1.","settings.about.line2":"Read-only: ccgauge only reads JSONL files, never writes back to ~/.claude.","settings.about.line3":'Cache: scan results are memoized for 5s; click "Rescan" to force a fresh read.',"settings.about.line4":"Stop with Ctrl+C in the terminal that started ccgauge.","settings.indexer.desc":"Background indexer keeps the cache fresh via file watchers.","settings.indexer.lastIndexedAt":"Last indexed","settings.indexer.indexDuration":"Last index time","settings.indexer.watchers":"Active watchers","settings.indexer.loadedFromDisk":"Loaded from disk","settings.indexer.status":"Status","settings.indexer.indexing":"indexing…","settings.indexer.idle":"idle","settings.indexer.recentErrors":"Recent indexer errors","common.yes":"yes","common.no":"no","lang.label":"Language","lang.en":"English","lang.zh":"中文","theme.label":"Theme"},zh:{"brand.tagline":"AI 编程 CLI 的本地用量看板","nav.overview":"概览","nav.usage":"用量","nav.sessions":"会话","nav.projects":"项目","nav.models":"模型","nav.tools":"工具","nav.analytics":"分析","nav.settings":"设置","nav.docs":"文档","nav.localBadge":"本地","nav.source":"数据源","source.claude":"Claude","source.codex":"Codex","source.all":"全部","cost.footnote.codex":"按 OpenAI API 单价折算估值(订阅计划实际计费不同)","common.requests":"次请求","common.tokens":"tokens","common.cost":"花费","common.savedViaCache":"通过缓存节省 {amount}","common.savedTodayViaCache":"今日缓存节省 {amount}","common.live":"进行中","common.allModels":"全部","common.allProjects":"全部","common.unknown":"(未知)","common.session":"会话","common.sessions":"个会话","common.projects":"个项目","common.req":"请求","common.day":"天","common.days":"天","common.activity":"活跃","common.fallbackPrice":"使用兜底单价","common.thinking":"思考","common.lastActivity":"最近活跃","common.empty.title":"暂无用量数据","common.empty.desc":"打开 Claude Code 发送一条消息后刷新本页。","common.refresh":"刷新","common.search":"搜索…","common.searchPlaceholder":"搜索模型 / 项目 / 会话 / 工具…","common.exportCsv":"导出 CSV","common.rows":"{count} 行","common.prev":"‹ 上一页","common.next":"下一页 ›","common.first":"\xab","common.last":"\xbb","common.pageOf":"第 {page} / {total} 页","common.allSessions":"← 返回会话列表","common.allProjectsLink":"← 返回项目列表","common.noMatchingRows":"没有匹配的记录","range.label":"时间范围","range.today":"今天","range.7d":"7 天","range.30d":"30 天","range.90d":"90 天","range.all":"全部","range.custom":"自定义","range.customApply":"应用","range.from":"开始","range.to":"结束","range.cancel":"取消","gran.label":"粒度","gran.hour":"小时","gran.day":"天","gran.week":"周","gran.month":"月","overview.title":"概览","overview.subtitle":"{count} 次请求,覆盖 {files} 个文件 \xb7 扫描耗时 {ms}ms","overview.subtitle.empty":"已扫描 {dirs} 个目录。打开 Claude Code 发一条消息后刷新本页。","overview.empty.title":"暂无用量数据","overview.kpi.tokensToday":"今日 tokens","overview.kpi.costToday":"今日花费","overview.kpi.thisMonth":"本月累计","overview.kpi.cacheHit":"缓存命中率","overview.kpi.topModel":"主力模型","overview.kpi.activeSessions":"今日会话","overview.kpi.activeSessions.hint":"涉及 {count} 个项目","overview.kpi.thisMonth.hint":"{tokens} tokens \xb7 {req} 次请求","overview.kpi.tokensToday.hint":"{count} 次请求","overview.kpi.topModel.hint":"本月成本占比 {pct}","overview.kpi.cacheHit.hint":"今日缓存节省 {amount}","overview.delta.title":"相比昨日","overview.delta.firstTime":"首次","common.loading":"加载中…","common.error.title":"出错了","common.error.desc":"加载失败,请重试。","common.error.retry":"重试","overview.trend.title":"用量趋势","overview.trend.desc":"近 30 天 \xb7 {metric}","overview.trend.desc.tokens":"按 token 类型堆叠","overview.trend.desc.conversations":"每日对话次数","overview.trend.metric.tokens":"Token","overview.trend.metric.conversations":"对话次数","overview.trend.activeDays":"{n} 天有数据","overview.trend.activeDays.plural":"{n} 天有数据","overview.costByModel.title":"按模型成本分布","overview.costByModel.desc":"本月,按花费排序","activity.title":"活动统计","activity.subtitle":"总览数据 + 每天什么时段最忙","activity.sessions":"会话","activity.messages":"消息","activity.totalTokens":"总 tokens","activity.activeDays":"活跃天数","activity.currentStreak":"当前连续","activity.longestStreak":"最长连续","activity.streakCombinedLabel":"当前 / 最长连续","activity.streakCombinedValue":"{current} / {longest} 天","activity.peakHour":"高峰小时","activity.favoriteModel":"最常用模型","activity.streakValue":"{n} 天","activity.dow.0":"周日","activity.dow.1":"周一","activity.dow.2":"周二","activity.dow.3":"周三","activity.dow.4":"周四","activity.dow.5":"周五","activity.dow.6":"周六","activity.heatmap.tooltip":"周{dow} \xb7 {hour} \xb7 {count} 条消息","activity.heatmap.messages":"消息数","activity.heatmap.tokens":"Tokens","activity.heatmap.shareLabel":"占总数","activity.heatmap.intensityLabel":"占峰值","activity.heatmap.empty":"无活动","activity.comparison":"你用掉的 token 大约是 {ref} 的 {multiplier}\xd7。","activity.ref.haiku":"一首俳句","activity.ref.tweet":"一条推文","activity.ref.littlePrince":"《小王子》","activity.ref.gatsby":"《了不起的盖茨比》","activity.ref.hobbit":"《霍比特人》","activity.ref.lotrTrilogy":"《魔戒》三部曲","activity.ref.warAndPeace":"《战争与和平》","activity.ref.harryPotterAll":"《哈利\xb7波特》全 7 册","activity.ref.encyclopediaBritannica":"《大英百科全书》","activity.ref.wikipediaEn":"英文维基百科全部","block.title":"当前 5h block","block.remaining":"剩余","block.elapsed":"时间进度 {pct}%","block.tokensSuffix":"tokens","block.spentSoFar":"已花费","block.burnPerMin":"每分钟消耗","block.projectedTotal":"预计总花费","block.requests":"请求数","block.empty":"当前无活跃 block","block.emptyDesc":"在 {cli} 中发送消息会启动一个新 block。","block.disclaimer":"仅是 5h 窗口的钟表进度,不是你的套餐配额。","chart.legend.input":"输入","chart.legend.output":"输出","chart.legend.cacheRead":"缓存读取","chart.legend.cacheWrite":"缓存写入","chart.tooltip.total":"合计","chart.tooltip.cost":"花费","chart.tooltip.requests":"请求数","chart.tooltip.conversations":"对话次数","chart.empty":"区间内无数据","chart.empty.short":"暂无数据","usage.title":"用量明细","usage.subtitle":"当前筛选范围内 {count} 轮对话","usage.kpi.totalTokens":"总 tokens","usage.kpi.totalCost":"总花费","usage.kpi.cacheSaved":"缓存节省","usage.kpi.cacheHit":"缓存命中","usage.trend":"趋势","usage.trend.gran":"粒度:{gran}","usage.requests.title":"对话轮次","usage.requests.desc":"每轮对话一行(用户消息 + 工具调用),点击 ▸ 展开明细","usage.col.calls":"调用","usage.col.userMessage":"提示","usage.overview.label":"概览","usage.overview.show":"显示概览(KPI + 趋势)","usage.overview.hide":"隐藏概览(KPI + 趋势)","usage.turn.expand":"展开","usage.turn.collapse":"收起","usage.turn.callsCount":"{count} 次调用","usage.turn.noPrompt":"(无用户文本)","usage.col.time":"时间","usage.col.duration":"耗时","usage.col.model":"模型","usage.col.project":"项目","usage.col.session":"会话","usage.col.input":"输入","usage.col.output":"输出","usage.col.cacheRead":"缓存读","usage.col.cacheWrite":"缓存写","usage.col.cost":"花费","usage.col.tools":"工具","usage.col.total":"总量","usage.badge.workflow":"工作流","usage.badge.workflowHint":"扇出了 {count} 个并行子代理(Workflow / ultracode)","usage.badge.fast":"fast","usage.badge.fastHint":"Codex 优先 / fast 服务档已开启 —— 这些请求按更高费率计费(2 倍起)。","usage.columns.button":"列","usage.columns.title":"显示列","usage.columns.reset":"重置","usage.breakdown.title":"总量明细","usage.breakdown.headerTokens":"Token","usage.breakdown.headerCost":"花费","usage.breakdown.total":"合计","usage.breakdown.reasoning":"其中推理","usage.breakdown.reasoningNote":"已含在 output","filter.modelLabel":"模型","filter.projectLabel":"项目","filter.modelAll":"模型:全部","filter.projectAll":"项目:全部","filter.modelSingle":"模型:{value}","filter.projectSingle":"项目:{value}","filter.modelMulti":"模型:{count} 个","filter.projectMulti":"项目:{count} 个","filter.clearAll":"清除筛选","filter.noOptions":"没有可选项","sessions.title":"会话","sessions.subtitle":"共 {count} 个会话 \xb7 按最近活跃排序","sessions.col.session":"会话","sessions.col.project":"项目","sessions.col.models":"模型","sessions.col.requests":"请求数","sessions.col.tokens":"Tokens","sessions.col.cost":"花费","sessions.col.duration":"时长","sessions.col.lastActivity":"最近活跃","sessions.untitled":"会话 {hash}","sessions.empty":"暂无会话","session.kpi.requests":"请求数","session.kpi.totalTokens":"总 tokens","session.kpi.cost":"花费","session.kpi.duration":"时长","session.timeline.title":"消息时间线","session.timeline.desc":"按时间正序,最新的在最下方","session.perMessage.title":"逐条消息 tokens","session.modelsInSession":"本会话使用的模型","session.modelLine":"{requests} 次 \xb7 {tokens} tokens","session.token.in":"输入","session.token.out":"输出","session.token.cacheR":"缓存读","session.token.cacheW":"缓存写","projects.title":"项目","projects.subtitle":"共 {count} 个项目 \xb7 按花费排序","projects.empty":"暂无项目","projects.stat.sessions":"会话","projects.stat.requests":"请求","projects.stat.tokens":"Tokens","project.activity":"活跃情况(近 30 天)","project.sessions.title":"会话({count})","models.title":"模型","models.subtitle":"共使用过 {count} 个模型","models.empty":"暂无模型用量","models.share.cost":"成本占比","models.share.tokens":"Tokens 占比","models.share.cacheHit":"缓存命中","models.field.requests":"请求数","models.field.savedByCache":"缓存节省","models.field.input1M":"输入 / 1M","models.field.output1M":"输出 / 1M","models.field.cacheRead1M":"缓存读 / 1M","models.field.pctOfTotal":"占总花费 {pct} \xb7 {tokens} tokens","models.eachTrend":"整体趋势(近 30 天)","tools.title":"工具与技能","tools.subtitle":"预估上下文占用 \xb7 共 {count} 项","tools.empty":"暂无工具或技能用量","tools.emptyDesc":"Claude Code 调用工具或技能后,这里会显示它们预估的上下文占用。","tools.dimension":"拆分维度","tools.by.skill":"按技能","tools.by.tool":"按工具","tools.by.mcp":"按 MCP 服务","tools.estimate":"按体积估算(约 4 字符/token),非 Anthropic 按工具真实计费。看排名,别看绝对值。","tools.kind.skill":"技能","tools.kind.tool":"工具","tools.kind.mcp":"MCP","tools.topConsumer":"占用最高","tools.field.estTokens":"预估上下文 tokens","tools.field.invocations":"调用次数","tools.field.sessionsN":"{n} 个会话","tools.field.avgPerCall":"平均每次","tools.field.largest":"单次最大","tools.formula":"≈ 每次 {avg} tokens \xd7 {calls} 次调用(估算)","settings.title":"设置","settings.subtitle":"数据源、价格表与行为偏好","settings.dataSources.title":"数据源","settings.dataSources.desc":"ccgauge 会扫描以下路径的 JSONL 文件","settings.dataSources.active":"已启用","settings.dataSources.notPresent":"不存在","settings.dataSources.envHint":"可以通过环境变量 {env1} 或 {env2} 自定义路径(看板会自动追加 {appendix})。","settings.rescan":"立即重新扫描","settings.rescanning":"扫描中…","settings.scanStats.title":"扫描统计","settings.scanStats.files":"扫描文件数","settings.scanStats.records":"解析记录数","settings.scanStats.assistant":"去重后 assistant 记录","settings.scanStats.duration":"扫描耗时","settings.pricing.title":"价格表","settings.pricing.desc":"美元 / 1M tokens \xb7 对带日期后缀的模型名做 fuzzy 匹配","settings.pricing.col.model":"模型","settings.pricing.col.input":"输入","settings.pricing.col.output":"输出","settings.pricing.col.write5m":"缓存写入 5 分钟","settings.pricing.col.write1h":"缓存写入 1 小时","settings.pricing.col.read":"缓存读取","settings.pricing.refresh":"刷新价格","settings.pricing.refreshing":"刷新中…","settings.pricing.sourceBuiltin":"内置快照","settings.pricing.sourceCache":"已从 LiteLLM 更新 \xb7 {time}","settings.pricing.refreshOk":"价格已更新","settings.pricing.refreshFail":"刷新失败 — 保留当前价格","settings.pricing.offline":"离线 — 已禁用价格刷新","settings.preferences.title":"偏好设置","settings.preferences.language":"语言","settings.preferences.theme":"主题","settings.theme.light":"亮色","settings.theme.dark":"暗色","settings.theme.system":"跟随系统","settings.about.title":"关于","settings.about.subtitle":"版本 {version} \xb7 MIT 协议","settings.about.line1":"本地优先:你的数据从不离开本机,也没有任何遥测。唯一可选的网络请求是从 LiteLLM 刷新价格表 —— 设 CCGAUGE_OFFLINE=1 可关闭。","settings.about.line2":"只读:ccgauge 只读取 JSONL,绝不会写回 ~/.claude。","settings.about.line3":'缓存:扫描结果会缓存 5 秒;点击"重新扫描"可强制刷新。',"settings.about.line4":"在启动 ccgauge 的终端按 Ctrl+C 即可停止。","settings.indexer.desc":"后台 indexer 通过文件监听增量维护缓存。","settings.indexer.lastIndexedAt":"最近索引时间","settings.indexer.indexDuration":"最近索引耗时","settings.indexer.watchers":"活跃 watcher 数","settings.indexer.loadedFromDisk":"从磁盘恢复","settings.indexer.status":"状态","settings.indexer.indexing":"索引中…","settings.indexer.idle":"空闲","settings.indexer.recentErrors":"最近的索引错误","common.yes":"是","common.no":"否","lang.label":"语言","lang.en":"English","lang.zh":"中文","theme.label":"主题"}};function g(a,b,c){let d=f[a]?.[b];if(void 0===d&&(d=f.en[b]),void 0===d&&(d=b),c)for(let[a,b]of Object.entries(c))d=d.replace(RegExp(`\\{${a}\\}`,"g"),String(b));return d}},80489:(a,b,c)=>{"use strict";c.d(b,{Q:()=>j,n:()=>f});var d=c(75338),e=c(95012);function f({label:a,value:b,hint:c,delta:f,deltaTitle:j,progress:k,accent:l="default",className:m}){return(0,d.jsxs)("div",{className:(0,e.cn)("card card-pad relative flex flex-col gap-2 min-h-[132px] overflow-hidden","default"!==l&&"pt-[18px] sm:pt-[22px]",m),children:["default"!==l&&(0,d.jsx)(g,{tone:l}),(0,d.jsx)("div",{className:"label truncate",children:a}),(0,d.jsxs)("div",{className:"flex items-baseline gap-2 flex-wrap min-w-0",children:[(0,d.jsx)("div",{className:"num-hero min-w-0 max-w-full",children:b}),f&&"firstTime"in f&&f.firstTime&&(0,d.jsx)("span",{className:"pill text-[11px] font-medium whitespace-nowrap text-brand bg-brand/10 border border-brand/20",title:j,children:f.label??"NEW"}),f&&"value"in f&&Number.isFinite(f.value)&&(0,d.jsx)(h,{value:f.value,positiveIsGood:f.positiveIsGood,title:j})]}),c&&(0,d.jsx)("div",{className:"text-xs text-text-secondary mt-auto leading-snug",children:c}),k&&(0,d.jsx)("div",{className:"mt-auto pt-2",children:(0,d.jsx)(i,{value:k.value,tone:k.tone})})]})}function g({tone:a}){return(0,d.jsx)("div",{"aria-hidden":!0,className:(0,e.cn)("absolute left-0 right-0 top-0 h-[3px] bg-gradient-to-r",{brand:"from-brand/0 via-brand/70 to-brand/0",success:"from-success/0 via-success/70 to-success/0",warning:"from-warning/0 via-warning/70 to-warning/0"}[a])})}function h({value:a,positiveIsGood:b=!0,title:c}){let f=a>=0;return(0,d.jsxs)("span",{className:(0,e.cn)("pill text-[11px] font-medium whitespace-nowrap border",f===b?"text-success bg-success/10 border-success/20":"text-danger bg-danger/10 border-danger/20"),title:c,children:[f?"↑":"↓"," ",Math.abs(a).toFixed(0),"%"]})}function i({value:a,tone:b="brand"}){let c=Math.max(0,Math.min(1,a));return(0,d.jsx)("div",{className:"h-1.5 w-full bg-bg-surface-hi rounded-full overflow-hidden",children:(0,d.jsx)("div",{className:(0,e.cn)("h-full rounded-full transition-all duration-500 ease-out-soft",{brand:"bg-brand",success:"bg-success",warning:"bg-warning",danger:"bg-danger"}[b]),style:{width:`${100*c}%`}})})}function j(){return(0,d.jsxs)("div",{className:"card card-pad min-h-[132px] flex flex-col",children:[(0,d.jsx)("div",{className:"skeleton-shimmer h-3 w-20 rounded mb-3"}),(0,d.jsx)("div",{className:"skeleton-shimmer h-8 w-32 rounded mb-2"}),(0,d.jsx)("div",{className:"skeleton-shimmer h-3 w-24 rounded mt-auto"})]})}},82704:()=>{},88016:(a,b,c)=>{Promise.resolve().then(c.bind(c,77731))},88267:(a,b,c)=>{"use strict";c.d(b,{Nav:()=>y});var d=c(21124),e=c(3991),f=c.n(e),g=c(42378),h=c(15514),i=c(15519),j=c(38009),k=c(73165),l=c(61855),m=c(95546),n=c(28607);function o({className:a,withBackground:b=!0}){let c=b?"#FFFFFF":"currentColor",e=b?"#FFFFFF":"currentColor",f=b?"#FFFFFF":"currentColor";return(0,d.jsxs)("svg",{viewBox:"0 0 64 64",fill:"none","aria-hidden":!0,className:(0,h.cn)("block",!b&&"text-brand",a),children:[b&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("rect",{x:"3",y:"3",width:"58",height:"58",rx:"16",fill:"rgb(var(--brand-strong))"}),(0,d.jsx)("rect",{x:"3.75",y:"3.75",width:"56.5",height:"56.5",rx:"15.25",stroke:"#FFFFFF",strokeOpacity:"0.18",strokeWidth:"1.5"})]}),(0,d.jsx)("path",{d:"M15 39.5 A17 17 0 0 1 49 39.5",stroke:c,strokeOpacity:b?.24:.22,strokeWidth:"5",strokeLinecap:"round"}),(0,d.jsx)("path",{d:"M20.8 39.5 A11.2 11.2 0 0 1 43.2 39.5",stroke:c,strokeOpacity:b?.2:.18,strokeWidth:"1.8",strokeLinecap:"round"}),(0,d.jsx)("path",{d:"M15 39.5 A17 17 0 0 1 42.8 26",stroke:e,strokeWidth:"5",strokeLinecap:"round"}),(0,d.jsxs)("g",{stroke:c,strokeLinecap:"round",strokeWidth:"2",strokeOpacity:b?.54:.34,children:[(0,d.jsx)("path",{d:"M18.1 34.2 L15 32.4"}),(0,d.jsx)("path",{d:"M24 28.5 L22.3 25.5"}),(0,d.jsx)("path",{d:"M32 26.2 L32 22.8"}),(0,d.jsx)("path",{d:"M40 28.5 L41.7 25.5"}),(0,d.jsx)("path",{d:"M45.9 34.2 L49 32.4"})]}),(0,d.jsx)("path",{d:"M32 39.5 L42.8 26",stroke:f,strokeWidth:"3.4",strokeLinecap:"round"}),(0,d.jsx)("circle",{cx:"32",cy:"39.5",r:"4.8",fill:b?"#FFFFFF":"currentColor"}),b&&(0,d.jsx)("circle",{cx:"32",cy:"39.5",r:"2",fill:"#4F46E5"}),(0,d.jsxs)("g",{opacity:b?1:.68,children:[(0,d.jsx)("rect",{x:"17",y:"46",width:"7",height:"5",rx:"2",fill:b?"#34D399":"currentColor"}),(0,d.jsx)("rect",{x:"28.5",y:"43",width:"7",height:"8",rx:"2",fill:b?"#FBBF24":"currentColor"}),(0,d.jsx)("rect",{x:"40",y:"45",width:"7",height:"6",rx:"2",fill:b?"#93C5FD":"currentColor"})]})]})}var p=c(38301);function q({available:a,initial:b,providers:c}){let e=(0,g.useRouter)(),f=(0,g.usePathname)(),h=(0,g.useSearchParams)(),j=(0,i.kj)(),{locale:k}=(0,i.s9)(),[l,m]=(0,p.useTransition)(),n=h.get("source"),o=n&&("all"===n?a.length>=2:a.includes(n))?n:null,[q,t]=(0,p.useState)(o??b);if(a.length<2)return null;let u=a=>{var b;if(a===q)return;t(a),b=a,"undefined"!=typeof document&&(document.cookie=`ccgauge_source=${encodeURIComponent(b)}; path=/; max-age=31536000; SameSite=Lax`);let c=new URLSearchParams(h.toString());c.set("source",a);let d=/^\/sessions\/[^/]+|^\/projects\/[^/]+/.test(f)?`/${f.split("/")[1]}?${c.toString()}`:`${f}?${c.toString()}`;m(()=>{e.push(d)})},v=c.filter(b=>a.includes(b.id));return(0,d.jsxs)("div",{role:"group","aria-label":j("nav.source"),className:`inline-flex items-center rounded-md border border-border bg-bg-surface p-0.5 gap-0.5 ${l?"opacity-60 cursor-progress":""}`,"aria-busy":l,title:j("nav.source"),children:[(0,d.jsx)(s,{active:"all"===q,label:j("source.all"),onSelect:()=>u("all"),disabled:l,providers:v}),v.map(a=>{let b=a.id===q,c="zh"===k?a.displayZh:a.displayEn;return(0,d.jsxs)("button",{type:"button",onClick:()=>u(a.id),"aria-pressed":b,disabled:l,className:`px-2.5 h-6 text-xs font-medium inline-flex items-center gap-1.5 rounded transition-colors ${b?"bg-brand-strong text-white shadow-sm":"text-text-tertiary hover:text-text-primary hover:bg-bg-surface-hi"}`,children:[(0,d.jsx)(r,{provider:a}),(0,d.jsx)("span",{children:c})]},a.id)})]})}function r({provider:a}){return a.logoSrc?(0,d.jsx)("img",{src:a.logoSrc,alt:"","aria-hidden":!0,className:"w-4 h-4 rounded-[3px] object-contain shrink-0"}):(0,d.jsx)("span",{className:"inline-flex items-center justify-center w-3.5 h-3.5 rounded-full text-[9px] font-bold leading-none",style:{background:a.bg,color:a.fg},children:a.shortLabel})}function s({active:a,label:b,onSelect:c,disabled:e,providers:f}){return(0,d.jsxs)("button",{type:"button",onClick:c,"aria-pressed":a,disabled:e,className:`px-2.5 h-6 text-xs font-medium inline-flex items-center gap-1.5 rounded transition-colors ${a?"bg-brand-strong text-white shadow-sm":"text-text-tertiary hover:text-text-primary hover:bg-bg-surface-hi"}`,children:[(0,d.jsx)("span",{className:"relative inline-flex items-center w-[26px] h-4 shrink-0","aria-hidden":!0,children:f.slice(0,2).map((a,b)=>{let c=10*(0!==b);return a.logoSrc?(0,d.jsx)("img",{src:a.logoSrc,alt:"",className:"absolute w-4 h-4 rounded-[3px] object-contain",style:{left:c,zIndex:f.length-b}},a.id):(0,d.jsx)("span",{className:"absolute inline-flex items-center justify-center w-3.5 h-3.5 rounded-full text-[9px] font-bold leading-none",style:{background:a.bg,color:a.fg,left:c,zIndex:f.length-b},children:a.shortLabel},a.id)})}),(0,d.jsx)("span",{children:b})]})}let t=[{href:"/",tk:"nav.overview",exact:!0},{href:"/usage",tk:"nav.usage"}],u=[{href:"/sessions",tk:"nav.sessions"},{href:"/projects",tk:"nav.projects"},{href:"/models",tk:"nav.models"},{href:"/tools",tk:"nav.tools"}],v=[{href:"/settings",tk:"nav.settings"}],w="/analysis";function x(a,b){return b.exact?a===b.href:a===b.href||a.startsWith(b.href+"/")}function y({availableProviders:a,initialSource:b,providerInfos:c}){let e=(0,g.usePathname)(),{t:p,locale:r}=(0,i.s9)(),s=u.some(a=>x(e,a)),y=t.find(a=>x(e,a)),z=v.find(a=>x(e,a)),A=s?w:y?.href??z?.href??"",{containerRef:B,rect:C}=(0,j.S)(A),D=a=>(0,h.cn)("relative px-2.5 sm:px-3 py-1.5 text-sm rounded-button font-medium whitespace-nowrap shrink-0","transition-colors duration-150",a?"text-text-primary":"text-text-secondary hover:text-text-primary hover:bg-bg-surface-hi/60"),E=a=>(0,d.jsx)(f(),{href:a.href,prefetch:!1,"data-tab":a.href,"aria-current":x(e,a)?"page":void 0,className:D(x(e,a)),children:p(a.tk)},a.href);return(0,d.jsx)("header",{className:"sticky top-0 z-30 border-b border-border bg-bg-base/85 backdrop-blur-md supports-[backdrop-filter]:bg-bg-base/70",children:(0,d.jsxs)("div",{className:"max-w-7xl mx-auto px-3 sm:px-6 h-14 flex items-center gap-2 sm:gap-4",children:[(0,d.jsxs)(f(),{href:"/",className:"flex items-center gap-2 font-semibold tracking-tight whitespace-nowrap shrink-0 text-text-primary hover:opacity-90 transition-opacity","aria-label":"ccgauge home",children:[(0,d.jsx)(o,{className:"w-7 h-7"}),(0,d.jsx)("span",{className:"hidden xs:inline sm:inline",children:"ccgauge"})]}),(0,d.jsxs)("nav",{ref:B,className:"relative flex-1 min-w-0 flex items-center gap-0.5 overflow-x-auto nav-scroller","aria-label":"Primary",children:[(0,d.jsx)(k.j,{rect:C,variant:"underline"}),t.map(E),(0,d.jsx)(l.j,{align:"left",maxWidth:220,className:"shrink-0",content:(0,d.jsx)("div",{className:"py-1.5 min-w-[168px]",role:"menu",children:u.map(a=>{let b=x(e,a);return(0,d.jsx)(f(),{href:a.href,prefetch:!1,role:"menuitem","aria-current":b?"page":void 0,className:(0,h.cn)("block mx-1.5 px-2.5 py-1.5 text-sm rounded-button transition-colors",b?"text-text-primary bg-bg-surface-hi font-medium":"text-text-secondary hover:text-text-primary hover:bg-bg-surface-hi/60"),children:p(a.tk)},a.href)})}),children:(0,d.jsxs)("button",{type:"button","data-tab":w,"aria-haspopup":"menu","aria-current":s?"page":void 0,className:(0,h.cn)(D(s),"inline-flex items-center gap-1"),children:[p("nav.analytics"),(0,d.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,className:"opacity-60",children:(0,d.jsx)("path",{d:"m6 9 6 6 6-6"})})]})}),v.map(E),(0,d.jsxs)("a",{href:"zh"===r?"https://chengzuopeng.github.io/ccgauge/zh/":"https://chengzuopeng.github.io/ccgauge/",target:"_blank",rel:"noopener noreferrer",className:(0,h.cn)("relative inline-flex items-center gap-1 px-2.5 sm:px-3 py-1.5 text-sm rounded-button font-medium whitespace-nowrap shrink-0","transition-colors duration-150","text-text-secondary hover:text-text-primary hover:bg-bg-surface-hi/60"),children:[p("nav.docs"),(0,d.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,className:"opacity-70",children:[(0,d.jsx)("path",{d:"M7 17 17 7"}),(0,d.jsx)("path",{d:"M8 7h9v9"})]})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[(0,d.jsx)(q,{available:a,initial:b,providers:c}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)(m.LanguageSwitcher,{}),(0,d.jsx)(n.ThemeSwitcher,{}),(0,d.jsx)("a",{href:"https://github.com/chengzuopeng/ccgauge",target:"_blank",rel:"noopener noreferrer",className:"h-7 w-9 inline-flex items-center justify-center rounded-md border border-border bg-bg-surface text-text-secondary hover:text-text-primary hover:bg-bg-surface-hi hover:border-border-hi transition-colors",title:"GitHub","aria-label":"GitHub",children:(0,d.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:(0,d.jsx)("path",{d:"M12 .5C5.65.5.5 5.65.5 12c0 5.09 3.29 9.4 7.86 10.93.58.1.79-.25.79-.55v-2.1c-3.2.7-3.87-1.36-3.87-1.36-.52-1.33-1.27-1.69-1.27-1.69-1.04-.71.08-.7.08-.7 1.15.08 1.76 1.18 1.76 1.18 1.02 1.75 2.68 1.25 3.34.96.1-.74.4-1.25.73-1.54-2.55-.29-5.23-1.28-5.23-5.69 0-1.26.45-2.29 1.18-3.1-.12-.29-.51-1.45.11-3.03 0 0 .96-.31 3.15 1.18a10.94 10.94 0 0 1 5.74 0c2.19-1.49 3.15-1.18 3.15-1.18.63 1.58.24 2.74.12 3.03.73.81 1.18 1.84 1.18 3.1 0 4.43-2.69 5.4-5.25 5.68.41.36.78 1.06.78 2.14v3.18c0 .31.21.66.8.55A11.5 11.5 0 0 0 23.5 12C23.5 5.65 18.35.5 12 .5Z"})})})]})]})]})})}},90391:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(75338),e=c(80489);function f(){return(0,d.jsxs)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 py-6 sm:py-8 space-y-6",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("div",{className:"skeleton-shimmer h-7 w-48 rounded"}),(0,d.jsx)("div",{className:"skeleton-shimmer h-4 w-72 rounded"})]}),(0,d.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4",children:Array.from({length:4}).map((a,b)=>(0,d.jsx)(e.Q,{},b))}),(0,d.jsx)("div",{className:"card card-pad min-h-[280px]",children:(0,d.jsx)("div",{className:"skeleton-shimmer h-full min-h-[232px] w-full rounded"})})]})}},91719:(a,b,c)=>{"use strict";c.d(b,{sG:()=>f,yO:()=>g});var d=c(86802),e=c(55340);async function f(){try{let a=await (0,d.UL)(),b=a.get("ccgauge_locale")?.value;if("zh"===b||"en"===b)return b}catch{}return e.Xn}async function g(){let a=await f();return(b,c)=>(0,e.nA)(a,b,c)}},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):""}},95546:(a,b,c)=>{"use strict";c.d(b,{LanguageSwitcher:()=>i});var d=c(21124),e=c(15519),f=c(78642);let g={en:"EN",zh:"中"},h={en:"English",zh:"中文"};function i(){let{locale:a,setLocale:b,t:c}=(0,e.s9)();return(0,d.jsx)("div",{role:"group",className:"inline-flex items-center rounded-md border border-border bg-bg-surface p-0.5 text-xs",title:c("lang.label"),"aria-label":c("lang.label"),children:f.YZ.map(c=>{let e=c===a;return(0,d.jsx)("button",{type:"button",onClick:()=>{e||b(c)},className:`px-2 py-1 rounded transition-colors ${e?"bg-brand-strong text-white font-semibold":"text-text-tertiary hover:text-text-primary hover:bg-bg-surface-hi"}`,title:h[c],"aria-pressed":e,children:g[c]},c)})})}},98741:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>q,generateMetadata:()=>o,viewport:()=>p});var d=c(75338);c(82704);var e=c(64285),f=c(66664);function g(){let a=JSON.stringify("ccgauge.usage.overview.hidden"),b=JSON.stringify("data-usage-overview"),c=JSON.stringify("hidden"),e=`
|
|
4
|
+
(function(){
|
|
5
|
+
try {
|
|
6
|
+
var t = null;
|
|
7
|
+
try { t = localStorage.getItem('ccgauge.theme'); } catch (_) {}
|
|
8
|
+
if (!t) {
|
|
9
|
+
var m = document.cookie.match(/(?:^|; )ccgauge_theme=([^;]+)/);
|
|
10
|
+
if (m) t = decodeURIComponent(m[1]);
|
|
11
|
+
}
|
|
12
|
+
if (t !== 'light' && t !== 'dark' && t !== 'system') t = 'dark';
|
|
13
|
+
var resolved = t;
|
|
14
|
+
if (t === 'system') {
|
|
15
|
+
resolved = window.matchMedia && window.matchMedia('(prefers-color-scheme: light)').matches ? 'light' : 'dark';
|
|
16
|
+
}
|
|
17
|
+
var root = document.documentElement;
|
|
18
|
+
root.classList.remove('theme-light','theme-dark');
|
|
19
|
+
root.classList.add(resolved === 'light' ? 'theme-light' : 'theme-dark');
|
|
20
|
+
root.setAttribute('data-theme', resolved);
|
|
21
|
+
} catch (e) {}
|
|
22
|
+
try {
|
|
23
|
+
var hidden = null;
|
|
24
|
+
try { hidden = localStorage.getItem(${a}); } catch (_) {}
|
|
25
|
+
if (hidden === '1') document.documentElement.setAttribute(${b}, ${c});
|
|
26
|
+
} catch (e) {}
|
|
27
|
+
})();
|
|
28
|
+
`;return(0,d.jsx)("script",{dangerouslySetInnerHTML:{__html:e}})}var h=c(91719),i=c(86802);async function j(){try{let a=await (0,i.UL)(),b=a.get("ccgauge_theme")?.value;if("light"===b||"dark"===b||"system"===b)return b}catch{}return"dark"}var k=c(55340),l=c(60704),m=c(46796);function n(){return(0,d.jsx)("script",{dangerouslySetInnerHTML:{__html:"(function(){try{if(sessionStorage.getItem('ccgauge.pw'))return;sessionStorage.setItem('ccgauge.pw','1');}catch(e){}fetch('/api/pricing/refresh?soft=1',{method:'POST',cache:'no-store'}).catch(function(){});})();"}})}async function o(){let a=await (0,h.sG)();return{title:"ccgauge — Claude Code & Codex Dashboard",description:(0,k.nA)(a,"brand.tagline"),icons:{icon:[{url:"/favicon.svg",type:"image/svg+xml"}],shortcut:"/favicon.svg",apple:"/favicon.svg"}}}let p={width:"device-width",initialScale:1};async function q({children:a}){let b=await (0,h.sG)(),c=await j(),i=await (0,l.Fw)(),k=await (0,m.ev)(null),o=(0,l.R0)().map(a=>({id:a.id,shortLabel:a.shortLabel,fg:a.color.fg,bg:a.color.bg,displayEn:a.displayName.en,displayZh:a.displayName.zh,logoSrc:a.logoSrc}));return(0,d.jsxs)("html",{lang:"zh"===b?"zh-CN":"en",className:"light"===c?"theme-light":"theme-dark",suppressHydrationWarning:!0,children:[(0,d.jsx)("head",{children:(0,d.jsx)(g,{})}),(0,d.jsx)("body",{className:"min-h-screen bg-bg text-text-primary",children:(0,d.jsxs)(f.Providers,{locale:b,theme:c,children:[(0,d.jsx)(e.Nav,{availableProviders:i,initialSource:k,providerInfos:o}),(0,d.jsx)("main",{children:a}),(0,d.jsx)(n,{})]})})]})}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=195,exports.ids=[195],exports.modules={11233:(a,b,c)=>{c.d(b,{C:()=>h,l:()=>i});var d=c(10641),e=c(48161);let f=c.n(e)().homedir();function g(a){if(!f)return a;let b=f.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return a.replace(RegExp(b,"g"),"~")}function h(a){return async(b,c)=>{try{return await a(b,c)}catch(b){console.error("[ccgauge:api] handler threw",b.stack||b.message||String(b));let a={error:"internal_error",message:g(b.message||"unexpected server error")};return d.NextResponse.json(a,{status:500})}}}function i(a,b="bad_request"){let c={error:"bad_request",code:b,message:g(a)};return d.NextResponse.json(c,{status:400})}},14843:(a,b,c)=>{c.d(b,{N0:()=>g,go:()=>h});var d=c(50160),e=c(30285),f=c(62955);function g(a){return a&&a.block?{hasBlock:!0,startTime:a.block.startTime,endTime:a.block.endTime,totalTokens:a.block.totalTokens,cost:a.block.cost,requests:a.block.requests,models:a.block.models,burnRatePerMin:a.burnRatePerMin,costPerMin:a.costPerMin,projectedTotal:a.projectedTotal,projectedCost:a.projectedCost}:{hasBlock:!1,totalTokens:0,cost:0,requests:0,models:[],burnRatePerMin:0,costPerMin:0,projectedTotal:0,projectedCost:0}}function h(a,b,c){let g=(0,e.o)(a,b,c),h=new Map;for(let a of b)h.set(a.uuid,a);let i=new Map,j=new Map,k=new Map,l=new Map;for(let b of a){let a=g.get(b.uuid)??b.uuid,e=(0,d.SI)(b),m=function(a){let b=i.get(a);if(void 0!==b)return b;let d=[],e=a,f="",g=new Set;for(;e&&!g.has(e);){g.add(e);let a=i.get(e);if(void 0!==a){f=a;break}d.push(e);let b=h.get(e);if(b&&b.textPreview&&b.textPreview.trim()){f=b.textPreview;break}e=c[e]??null}for(let a of d)i.set(a,f);return f}(b.uuid);if(b.isWorkflowSubagent){let c=l.get(a);c||(c=new Set,l.set(a,c)),c.add(b.filePath)}let n={uuid:b.uuid,timestamp:b.timestamp,source:b.source,model:b.model,cwd:b.cwd,projectLabel:(0,f.CL)(b.cwd),sessionId:b.sessionId,inputTokens:b.usage.input_tokens,outputTokens:b.usage.output_tokens,cacheReadTokens:b.usage.cache_read_input_tokens,cacheCreationTokens:b.usage.cache_creation_input_tokens,reasoningTokens:b.usage.reasoning_tokens??0,totalTokens:b.usage.input_tokens+b.usage.output_tokens+b.usage.cache_read_input_tokens+b.usage.cache_creation_input_tokens,cost:e.total,costInput:e.input,costOutput:e.output,costCacheRead:e.cacheRead,costCacheWrite:e.cacheCreation5m+e.cacheCreation1h,toolNames:b.toolNames,effort:b.effort,isWorkflowSubagent:b.isWorkflowSubagent||void 0,directPrompt:m||void 0},o=j.get(a);o?o.push(n):j.set(a,[n]),k.has(a)||k.set(a,b)}let m=[];for(let[a,b]of j){b.sort((a,b)=>a.timestamp<b.timestamp?-1:1);let c=b[0],d=b[b.length-1],e=new Set,g=new Set,i=new Set,j=0,k=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;for(let a of b){for(let b of(e.add(a.model),a.toolNames))g.add(b);a.effort&&i.add(a.effort),j+=a.inputTokens,k+=a.outputTokens,n+=a.cacheReadTokens,o+=a.cacheCreationTokens,p+=a.reasoningTokens,q+=a.cost,r+=a.costInput,s+=a.costOutput,t+=a.costCacheRead,u+=a.costCacheWrite}let v=h.get(a),w=new Date(c.timestamp).getTime(),x=new Date(d.timestamp).getTime(),y=Number.isFinite(w)&&Number.isFinite(x)?Math.max(0,x-w):0;m.push({turnId:a,source:c.source,timestamp:c.timestamp,endTimestamp:d.timestamp,durationMs:y,cwd:c.cwd,projectLabel:(0,f.CL)(c.cwd),sessionId:c.sessionId,models:Array.from(e),callCount:b.length,inputTokens:j,outputTokens:k,cacheReadTokens:n,cacheCreationTokens:o,reasoningTokens:p,totalTokens:j+k+n+o,cost:q,costInput:r,costOutput:s,costCacheRead:t,costCacheWrite:u,toolNames:Array.from(g),efforts:Array.from(i),hasWorkflowSubagents:(l.get(a)?.size??0)>0,workflowSubagentCount:l.get(a)?.size??0,userText:v?.textPreview??"",children:b})}return m.sort((a,b)=>a.timestamp<b.timestamp?1:-1),m}},30285:(a,b,c)=>{c.d(b,{o:()=>d});function d(a,b,c){let d=new Map;for(let a of b)!a.isSynthetic&&a.textPreview&&a.textPreview.trim()&&d.set(a.uuid,a.textPreview);let e=new Map,f=new Map;for(let b of a)e.set(b.uuid,function(a){let b=[],e=a,g=null,h=0,i=new Set;for(;e&&h++<5e3&&!i.has(e);){i.add(e);let a=f.get(e);if(a){g=a;break}if(b.push(e),d.has(e)){g=e;break}e=c[e]??null}for(let c of(g||(g=a),b))f.set(c,g);return g}(b.uuid));return e}},40236:(a,b,c)=>{c.d(b,{Cw:()=>g,UF:()=>f,Wo:()=>i,dg:()=>e});let d=["1d","7d","30d","90d","all","custom"];function e(a){return"string"==typeof a&&d.includes(a)}function f(a,b="7d"){return e(a)?a:b}function g(a){let b=new Date;if("all"===a||"custom"===a)return{};if("1d"===a)return{from:new Date(b.getFullYear(),b.getMonth(),b.getDate())};let c=a.match(/^(\d+)([dwm])$/);if(!c)return{};let d=parseInt(c[1],10),e=c[2],f=new Date(b);return"d"===e?f.setDate(f.getDate()-d):"w"===e?f.setDate(f.getDate()-7*d):"m"===e&&f.setMonth(f.getMonth()-d),{from:f}}function h(a){if(!a||"string"!=typeof a)return;let b=/^(\d{4})-(\d{2})-(\d{2})$/.exec(a);if(!b)return;let c=Number(b[1]),d=Number(b[2]),e=Number(b[3]),f=new Date(c,d-1,e);if(!Number.isNaN(f.getTime())&&f.getFullYear()===c&&f.getMonth()===d-1&&f.getDate()===e)return f}function i(a,b){let c=h(a),d=h(b);return d&&d.setHours(23,59,59,999),{from:c,to:d}}},46796:(a,b,c)=>{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]}},50160:(a,b,c)=>{c.d(b,{SI:()=>e});var d=c(60704);function e(a){let b=(0,d.sO)(a.source),{pricing:c}=b.resolvePricing(a.model);return b.costFromUsage(a.usage,c,a.model)}},62955:(a,b,c)=>{c.d(b,{CL:()=>k,tv:()=>l});var d=c(73024),e=c(76760),f=c(95012);let g=new Map,h=/^(.+?)[/\\]\.git[/\\]worktrees[/\\]([^/\\]+)[/\\]?$/,i=/^(.+?)[/\\](?:\.git|\.claude)[/\\]worktrees[/\\]([^/\\]+)(?:[/\\].*)?$/;function j(a){let b=(0,f.PJ)(a);if(!a)return{label:b,isWorktree:!1,mainName:b,worktreeName:"",canonicalCwd:a};let c=i.exec(a);if(c){let a=c[1],b=c[2],d=(0,e.basename)(a)||a;return{label:`${d} (${b})`,isWorktree:!0,mainName:d,worktreeName:b,canonicalCwd:a}}try{let c=`${a}/.git`;if(!(0,d.statSync)(c).isFile())return{label:b,isWorktree:!1,mainName:b,worktreeName:"",canonicalCwd:a};let f=(0,d.readFileSync)(c,"utf8").trim().split(/\r?\n/,1)[0]??"",g=/^gitdir:\s*(.+)$/.exec(f);if(!g)return{label:b,isWorktree:!1,mainName:b,worktreeName:"",canonicalCwd:a};let i=g[1].trim(),j=h.exec(i);if(!j)return{label:b,isWorktree:!1,mainName:b,worktreeName:"",canonicalCwd:a};let k=j[1],l=j[2],m=(0,e.basename)(k)||k;return{label:`${m} (${l})`,isWorktree:!0,mainName:m,worktreeName:l,canonicalCwd:k}}catch{return{label:b,isWorktree:!1,mainName:b,worktreeName:"",canonicalCwd:a}}}function k(a){let b=g.get(a);if(b)return b.label;let c=j(a);return g.set(a,c),c.label}function l(a){return function(a){let b=g.get(a);if(b)return b;let c=j(a);return g.set(a,c),c}(a).canonicalCwd}},76559:(a,b,c)=>{c.d(b,{PR:()=>g,QE:()=>d,Yb:()=>f});let d=25,e=["timestamp","cost","inputTokens","outputTokens","cacheReadTokens","cacheCreationTokens","totalTokens","callCount","durationMs"];function f(a){return"string"==typeof a&&e.includes(a)}function g(a){if(!a)return 0;let b=Number(a);return!Number.isFinite(b)||b<1?0:Math.floor(b)-1}},95012:(a,b,c)=>{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):""}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=68,exports.ids=[68],exports.modules={24919:(a,b,c)=>{c.d(b,{TokenStackChart:()=>o});var d=c(21124),e=c(6077),f=c(72400),g=c(57495),h=c(59296),i=c(16803),j=c(11767),k=c(18311),l=c(15514),m=c(15519);let n={input:"rgb(var(--chart-input))",output:"rgb(var(--chart-output))",cacheRead:"rgb(var(--chart-cache-read))",cacheCreation:"rgb(var(--chart-cache-create))"};function o({data:a,height:b="h-72"}){let c=(0,m.kj)(),{locale:o}=(0,m.s9)();return a.length?(0,d.jsxs)("div",{className:`${b} w-full`,children:[(0,d.jsx)(e.u,{width:"100%",height:"100%",children:(0,d.jsxs)(f.E,{data:a,margin:{top:12,right:8,bottom:4,left:8},barCategoryGap:"22%",children:[(0,d.jsx)(g.d,{stroke:"rgb(var(--chart-grid))",strokeOpacity:.6,strokeDasharray:"3 3",vertical:!1}),(0,d.jsx)(h.W,{dataKey:"label",tick:{fill:"rgb(var(--chart-axis))",fontSize:11},tickLine:!1,axisLine:!1,interval:"preserveStartEnd",minTickGap:32,tickMargin:8}),(0,d.jsx)(i.h,{tickFormatter:a=>(0,l.jh)(Number(a),o),tick:{fill:"rgb(var(--chart-axis))",fontSize:11},tickLine:!1,axisLine:!1,width:56,tickMargin:4}),(0,d.jsx)(j.m,{content:(0,d.jsx)(q,{}),cursor:{fill:"rgb(var(--text-primary) / 0.05)",radius:4}}),(0,d.jsx)(k.y,{dataKey:"input",stackId:"a",fill:n.input,isAnimationActive:!1}),(0,d.jsx)(k.y,{dataKey:"cacheCreation",stackId:"a",fill:n.cacheCreation,isAnimationActive:!1}),(0,d.jsx)(k.y,{dataKey:"cacheRead",stackId:"a",fill:n.cacheRead,isAnimationActive:!1}),(0,d.jsx)(k.y,{dataKey:"output",stackId:"a",fill:n.output,radius:[4,4,0,0],isAnimationActive:!1})]})}),(0,d.jsxs)("div",{className:"flex items-center flex-wrap justify-center gap-4 text-xs text-text-secondary mt-2",children:[(0,d.jsx)(p,{color:n.input,label:c("chart.legend.input")}),(0,d.jsx)(p,{color:n.cacheCreation,label:c("chart.legend.cacheWrite")}),(0,d.jsx)(p,{color:n.cacheRead,label:c("chart.legend.cacheRead")}),(0,d.jsx)(p,{color:n.output,label:c("chart.legend.output")})]})]}):(0,d.jsx)("div",{className:`${b} flex items-center justify-center text-text-tertiary text-sm`,children:c("chart.empty")})}function p({color:a,label:b}){return(0,d.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"w-2.5 h-2.5 rounded-sm",style:{background:a}}),(0,d.jsx)("span",{children:b})]})}function q(a){let b=(0,m.kj)(),{locale:c}=(0,m.s9)();if(!a.active||!a.payload||!a.payload.length)return null;let e=a.payload[0].payload,f=e.input+e.output+e.cacheRead+e.cacheCreation;return(0,d.jsxs)("div",{className:"card-elevated border border-border-hi rounded-card p-3 text-xs min-w-[200px]",children:[(0,d.jsx)("div",{className:"font-medium text-text-primary mb-2",children:a.label}),(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)(r,{color:n.input,label:b("chart.legend.input"),value:e.input,locale:c}),(0,d.jsx)(r,{color:n.cacheCreation,label:b("chart.legend.cacheWrite"),value:e.cacheCreation,locale:c}),(0,d.jsx)(r,{color:n.cacheRead,label:b("chart.legend.cacheRead"),value:e.cacheRead,locale:c}),(0,d.jsx)(r,{color:n.output,label:b("chart.legend.output"),value:e.output,locale:c})]}),(0,d.jsxs)("div",{className:"mt-2 pt-2 border-t border-border flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-text-secondary",children:b("chart.tooltip.total")}),(0,d.jsx)("span",{className:"num-mono text-text-primary",children:(0,l.jh)(f,c)})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between mt-1",children:[(0,d.jsx)("span",{className:"text-text-secondary",children:b("chart.tooltip.cost")}),(0,d.jsx)("span",{className:"num-mono text-brand",children:(0,l.az)(e.cost)})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between mt-1",children:[(0,d.jsx)("span",{className:"text-text-secondary",children:b("chart.tooltip.requests")}),(0,d.jsx)("span",{className:"num-mono text-text-primary",children:e.requests})]})]})}function r({color:a,label:b,value:c,locale:e}){return(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,d.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-text-secondary",children:[(0,d.jsx)("span",{className:"w-2 h-2 rounded-sm",style:{background:a}}),b]}),(0,d.jsx)("span",{className:"num-mono text-text-primary",children:(0,l.jh)(c,e)})]})}},25799:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return function a(b){if((0,g.isNextRouterError)(b)||(0,f.isBailoutToCSRError)(b)||(0,i.isDynamicServerError)(b)||(0,h.isDynamicPostpone)(b)||(0,e.isPostpone)(b)||(0,d.isHangingPromiseRejectionError)(b))throw b;b instanceof Error&&"cause"in b&&a(b.cause)}}});let d=c(82831),e=c(43740),f=c(29305),g=c(61981),h=c(26906),i=c(69168);("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},29088:(a,b,c)=>{function d(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unauthorized",{enumerable:!0,get:function(){return d}}),c(98541).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},37583:(a,b,c)=>{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:"relative z-20 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"})]})}},47614:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{getRedirectError:function(){return g},getRedirectStatusCodeFromError:function(){return l},getRedirectTypeFromError:function(){return k},getURLFromRedirectError:function(){return j},permanentRedirect:function(){return i},redirect:function(){return h}});let d=c(91203),e=c(92781),f=c(19121).actionAsyncStorage;function g(a,b,c){void 0===c&&(c=d.RedirectStatusCode.TemporaryRedirect);let f=Object.defineProperty(Error(e.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return f.digest=e.REDIRECT_ERROR_CODE+";"+b+";"+a+";"+c+";",f}function h(a,b){var c;throw null!=b||(b=(null==f||null==(c=f.getStore())?void 0:c.isAction)?e.RedirectType.push:e.RedirectType.replace),g(a,b,d.RedirectStatusCode.TemporaryRedirect)}function i(a,b){throw void 0===b&&(b=e.RedirectType.replace),g(a,b,d.RedirectStatusCode.PermanentRedirect)}function j(a){return(0,e.isRedirectError)(a)?a.digest.split(";").slice(2,-2).join(";"):null}function k(a){if(!(0,e.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return a.digest.split(";",2)[1]}function l(a){if(!(0,e.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(a.digest.split(";").at(-2))}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},50160:(a,b,c)=>{c.d(b,{SI:()=>e});var d=c(60704);function e(a){let b=(0,d.sO)(a.source),{pricing:c}=b.resolvePricing(a.model);return b.costFromUsage(a.usage,c,a.model)}},62955:(a,b,c)=>{c.d(b,{CL:()=>k,tv:()=>l});var d=c(73024),e=c(76760),f=c(95012);let g=new Map,h=/^(.+?)[/\\]\.git[/\\]worktrees[/\\]([^/\\]+)[/\\]?$/,i=/^(.+?)[/\\](?:\.git|\.claude)[/\\]worktrees[/\\]([^/\\]+)(?:[/\\].*)?$/;function j(a){let b=(0,f.PJ)(a);if(!a)return{label:b,isWorktree:!1,mainName:b,worktreeName:"",canonicalCwd:a};let c=i.exec(a);if(c){let a=c[1],b=c[2],d=(0,e.basename)(a)||a;return{label:`${d} (${b})`,isWorktree:!0,mainName:d,worktreeName:b,canonicalCwd:a}}try{let c=`${a}/.git`;if(!(0,d.statSync)(c).isFile())return{label:b,isWorktree:!1,mainName:b,worktreeName:"",canonicalCwd:a};let f=(0,d.readFileSync)(c,"utf8").trim().split(/\r?\n/,1)[0]??"",g=/^gitdir:\s*(.+)$/.exec(f);if(!g)return{label:b,isWorktree:!1,mainName:b,worktreeName:"",canonicalCwd:a};let i=g[1].trim(),j=h.exec(i);if(!j)return{label:b,isWorktree:!1,mainName:b,worktreeName:"",canonicalCwd:a};let k=j[1],l=j[2],m=(0,e.basename)(k)||k;return{label:`${m} (${l})`,isWorktree:!0,mainName:m,worktreeName:l,canonicalCwd:k}}catch{return{label:b,isWorktree:!1,mainName:b,worktreeName:"",canonicalCwd:a}}}function k(a){let b=g.get(a);if(b)return b.label;let c=j(a);return g.set(a,c),c.label}function l(a){return function(a){let b=g.get(a);if(b)return b;let c=j(a);return g.set(a,c),c}(a).canonicalCwd}},64404:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"notFound",{enumerable:!0,get:function(){return e}});let d=""+c(98541).HTTP_ERROR_FALLBACK_ERROR_CODE+";404";function e(){let a=Object.defineProperty(Error(d),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});throw a.digest=d,a}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},64712:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return d}});let d=c(25799).unstable_rethrow;("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},67837:(a,b,c)=>{function d(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"forbidden",{enumerable:!0,get:function(){return d}}),c(98541).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},82161:(a,b,c)=>{var d=c(93045);c.o(d,"notFound")&&c.d(b,{notFound:function(){return d.notFound}}),c.o(d,"redirect")&&c.d(b,{redirect:function(){return d.redirect}})},93045:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{ReadonlyURLSearchParams:function(){return k},RedirectType:function(){return e.RedirectType},forbidden:function(){return g.forbidden},notFound:function(){return f.notFound},permanentRedirect:function(){return d.permanentRedirect},redirect:function(){return d.redirect},unauthorized:function(){return h.unauthorized},unstable_isUnrecognizedActionError:function(){return l},unstable_rethrow:function(){return i.unstable_rethrow}});let d=c(47614),e=c(92781),f=c(64404),g=c(67837),h=c(29088),i=c(64712);class j extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class k extends URLSearchParams{append(){throw new j}delete(){throw new j}set(){throw new j}sort(){throw new j}}function l(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=704,exports.ids=[704],exports.modules={60704:(a,b,c)=>{c.d(b,{jt:()=>D,Gr:()=>E,Fw:()=>J,sO:()=>F,rl:()=>H,R0:()=>G});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);function k(a){if("string"==typeof a)return a.length;if(Array.isArray(a)){let b=0;for(let c of a)if(c&&"object"==typeof c){let a=c.text;b+="string"==typeof a?a.length:function(a){try{return JSON.stringify(a)?.length??0}catch{return 0}}(c)}else"string"==typeof c&&(b+=c.length);return b}return 0}let l=/^Base directory for this skill:\s*(\S+)/;async function m(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=[],k=!1,l="";for(let a of h)"tool_use"===a.type&&"string"==typeof a.name?(i.push(a.name),"string"==typeof a.id&&j.push({id:a.id,name:a.name})):"thinking"===a.type?k=!0:"text"!==a.type||"string"!=typeof a.text||l||(l=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,toolUses:j.length?j:void 0,hasThinking:k,textPreview:l,filePath:b,isSidechain:!0===a.isSidechain||void 0}}(c,a);b&&e.push(b)}else if("user"===c.type){let b=function(a,b){let c,d;if(!a.uuid)return null;let e=a.message,f=e?.content,g=function(a){if("string"==typeof a)return a;if(Array.isArray(a)){for(let b of a)if("text"===b.type&&"string"==typeof b.text)return b.text}return""}(f),h=g.slice(0,200);if(Array.isArray(f))for(let a of f)"tool_result"===a.type&&"string"==typeof a.tool_use_id&&(c||(c=[]),c.push({toolUseId:a.tool_use_id,chars:k(a.content)}));let i=function(a){let b=l.exec(a.trimStart());return b&&b[1].split(/[\\/]/).filter(Boolean).pop()||null}(g);i&&(d={skill:i,chars:k(f)});let j=!0===a.isSidechain,m=j||!!h&&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>"))}(h);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:h,toolResults:c,skillInject:d,isSynthetic:m,isSidechain:!!j||void 0,filePath:b}}(c,a);b&&f.push(b)}}}}return{assistant:e,user:f,parentLinks:g}}var n=c(31519);function o(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 p(a){return a.replace(/\b\w/g,a=>a.toUpperCase())}let q=/-\d{8}$/,r=/^(vertex_ai|bedrock|anthropic)\//;function s(){return globalThis.__ccgaugePricing?.state}async function t(a){try{let b=await d.promises.stat(a);return new Date(b.mtimeMs).toISOString()}catch{return new Date().toISOString()}}function u(a){return"string"==typeof a?a:""}function v(a){let b=Number(a);return Number.isFinite(b)?b:0}function w(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 x(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 t(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=u(d.timestamp),q=j||o;if(j&&(o=j),"session_meta"===d.type){i=u(e.id),k=u(e.cwd),b=u(e.cli_version)||void 0;let a=u(e.timestamp);a&&(o=a),p.cwd||(p.cwd=k);continue}if("turn_context"===d.type){p.turnId=u(e.turn_id)||p.turnId,p.cwd=u(e.cwd)||k;let a=u(e.model);a&&(p.model=a);let b=u(e.effort);b&&(p.effort=b),p.toolNames=[],p.hasThinking=!1,p.pendingTextPreview="";continue}if("event_msg"===d.type){let c=u(e.type);if("user_message"===c){let b=w(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=w(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,s=o?{input:v(o.input_tokens),cached:v(o.cached_input_tokens),output:v(o.output_tokens),reasoning:v(o.reasoning_output_tokens)}:null;if(s){if(null===n?(c=s.input,d=s.cached,g=s.output,j=s.reasoning):(c=Math.max(0,s.input-n.input),d=Math.max(0,s.cached-n.cached),g=Math.max(0,s.output-n.output),j=Math.max(0,s.reasoning-n.reasoning)),0===c&&0===d&&0===g&&0===j)continue;n=null===n?{...s}:{input:Math.max(n.input,s.input),cached:Math.max(n.cached,s.cached),output:Math.max(n.output,s.output),reasoning:Math.max(n.reasoning,s.reasoning)}}else{if(!r||(c=v(r.input_tokens),d=v(r.cached_input_tokens),g=v(r.output_tokens),j=v(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 t=`${i}::a${m++}`,u=p.turnId?`${p.turnId}::a${m}`:`${i}::a${m}`;f.push({type:"assistant",source:"codex",uuid:t,parentUuid:p.userUuid,timestamp:q,sessionId:i,requestId:u,cwd:p.cwd||k,version:b,model:p.model||"gpt-unknown",messageId:u,usage:{input_tokens:Math.max(0,c-d),output_tokens:g,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([t,p.userUuid]),p.toolNames=[],p.hasThinking=!1,p.pendingTextPreview=""}continue}if("response_item"===d.type){let a=u(e.type);if("function_call"===a||"custom_tool_call"===a){let a=u(e.name);a&&p.toolNames.push(a);continue}if("reasoning"===a){p.hasThinking=!0;continue}if("message"===a&&"assistant"===u(e.role)){let a=w(e);a&&!p.pendingTextPreview&&(p.pendingTextPreview=a.slice(0,200))}continue}}return{assistant:f,user:g,parentLinks:h}}var y=c(71310);let z={mini:"Mini",nano:"Nano",pro:"Pro",turbo:"Turbo",preview:"Preview"};var A=c(86895);let B={id:"codex",displayName:{en:"Codex",zh:"Codex"},shortLabel:"X",color:{fg:"#047857",bg:"#d1fae5"},logoSrc:"/codex-logo.webp",parserVersion:"codex-v6-output-excludes-readded-reasoning",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:x,resolvePricing:y.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=>z[a.toLowerCase()]??a).join(" "):b.toLowerCase().startsWith("o")?b.toUpperCase():b.replace(/-/g," ").replace(/\b\w/g,a=>a.toUpperCase())},costFromUsage:function(a,b,c){if(!b)return o(a,null);let d=(0,A.pO)(c??"");return o(a,1===d?b:(0,A.mb)(b,d))},costFootnoteKey:"cost.footnote.codex"},C={claude:{id:"claude",displayName:{en:"Claude",zh:"Claude"},shortLabel:"C",color:{fg:"#b45309",bg:"#fef3c7"},logoSrc:"/claude-logo.webp",parserVersion:"claude-v6-tool-result-sizes",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 m(a),resolvePricing:function(a){if(!a)return{pricing:null,matchType:"none",matchedKey:null};let b=s()?.claude??n.V;if(b[a])return{pricing:b[a],matchType:"exact",matchedKey:a};let c=a.replace(q,"");if(b[c])return{pricing:b[c],matchType:"date-stripped",matchedKey:c};let d=c.replace(r,"");if(b[d])return{pricing:b[d],matchType:"prefix-stripped",matchedKey:d};let e=s()?.claudeFallback??n.Q;for(let b of["fable","opus","sonnet","haiku"])if(a.toLowerCase().includes(b))return{pricing:e[b]??null,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 p(a)+" "+b}return p(b.replace(/-/g," "))},costFromUsage:o,costFootnoteKey:null},codex:B},D=["claude","codex"],E="claude";function F(a){return C[a]}function G(){return D.map(a=>C[a])}function H(a){return"string"==typeof a&&("claude"===a||"codex"===a)}async function I(a){try{return(await d.promises.stat(a)).isDirectory()}catch{return!1}}async function J(){let a=[];for(let b of G())for(let c of b.getDirs())if(await I(c)){a.push(b.id);break}return a}},86895:(a,b,c)=>{c.d(b,{bY:()=>j,mb:()=>l,pO:()=>k});var d=c(73024),e=c(48161),f=c.n(e),g=c(76760),h=c.n(g);let i={"gpt-5.5":2.5,"gpt-5.4":2,"gpt-5.3-codex":2};function j(){for(let a of function(){let a=[];return process.env.CODEX_HOME&&a.push(process.env.CODEX_HOME),a.push(h().join(f().homedir(),".codex")),Array.from(new Set(a))}())try{let b=(0,d.readFileSync)(h().join(a,"config.toml"),"utf8");if(function(a){for(let b of a.split(/\r?\n/)){let a=(b.split("#")[0]??"").trim(),c=a.indexOf("=");if(-1===c||"service_tier"!==a.slice(0,c).trim())continue;let d=a.slice(c+1).trim().replace(/^['"]+|['"]+$/g,"");if("fast"===d||"priority"===d)return!0}return!1}(b))return!0}catch{}return!1}function k(a){return j()?i[a.replace(/^openai\//,"").replace(/-\d{8}$/,"")]??2:1}function l(a,b){return 1===b?a:{input:a.input*b,output:a.output*b,cacheRead:a.cacheRead*b,cacheCreation5m:a.cacheCreation5m*b,cacheCreation1h:a.cacheCreation1h*b}}}};
|