@mbeato/contextscope 0.1.6 → 0.2.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.
Files changed (39) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +3 -3
  3. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  4. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  5. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  6. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  7. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  11. package/.next/standalone/.next/server/app/_not-found.rsc +1 -1
  12. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  14. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  15. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  16. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  17. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  18. package/.next/standalone/.next/server/app/items/page.js.nft.json +1 -1
  19. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0j40w4k._.js +1 -1
  21. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0p2sxww._.js +1 -1
  22. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  23. package/.next/standalone/.next/server/pages/404.html +1 -1
  24. package/.next/standalone/.next/server/pages/500.html +1 -1
  25. package/.next/standalone/README.md +16 -6
  26. package/.next/standalone/bin/cli.js +23 -8
  27. package/.next/standalone/bin/summary.js +558 -0
  28. package/.next/standalone/lib/model-prices.json +8 -1
  29. package/.next/standalone/package.json +2 -1
  30. package/.next/standalone/plugin/commands/usage.md +1 -1
  31. package/README.md +16 -6
  32. package/bin/cli.js +23 -8
  33. package/bin/summary.js +558 -0
  34. package/lib/model-prices.json +154 -0
  35. package/package.json +2 -1
  36. package/plugin/commands/usage.md +1 -1
  37. /package/.next/static/{uI28k7hBjH7vKGE3jdIaM → hTCV3lK0B2IRaMNjyuu-5}/_buildManifest.js +0 -0
  38. /package/.next/static/{uI28k7hBjH7vKGE3jdIaM → hTCV3lK0B2IRaMNjyuu-5}/_clientMiddlewareManifest.js +0 -0
  39. /package/.next/static/{uI28k7hBjH7vKGE3jdIaM → hTCV3lK0B2IRaMNjyuu-5}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- {"version":1,"files":["../../../.claude/design.config.json","../../../AGENTS.md","../../../CLAUDE.md","../../../DESIGN-EVAL-page-20260525-1015.md","../../../DESIGN.md","../../../LICENSE","../../../PLAN.md","../../../README.md","../../../app/actions.ts","../../../app/components/Nav.tsx","../../../app/components/Receipt.tsx","../../../app/context/loading.tsx","../../../app/context/page.tsx","../../../app/favicon.ico","../../../app/globals.css","../../../app/items/loading.tsx","../../../app/items/page.tsx","../../../app/layout.tsx","../../../app/loading.tsx","../../../app/page.tsx","../../../app/sessions/loading.tsx","../../../app/sessions/page.tsx","../../../bin/cli.js","../../../eslint.config.mjs","../../../lib/files.ts","../../../lib/hooks.ts","../../../lib/inventory.ts","../../../lib/mcp.ts","../../../lib/model-prices.json","../../../lib/pricing.ts","../../../lib/recent.ts","../../../lib/sessions.ts","../../../lib/transcripts.ts","../../../lib/usage.ts","../../../next.config.ts","../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../node_modules/@swc/helpers/package.json","../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../node_modules/next/dist/client/components/app-router-headers.js","../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../node_modules/next/dist/client/lib/console.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-turbo.runtime.prod.js","../../../node_modules/next/dist/compiled/source-map/package.json","../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../node_modules/next/dist/compiled/ws/index.js","../../../node_modules/next/dist/compiled/ws/package.json","../../../node_modules/next/dist/lib/client-and-server-references.js","../../../node_modules/next/dist/lib/constants.js","../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../node_modules/next/dist/lib/interop-default.js","../../../node_modules/next/dist/lib/is-error.js","../../../node_modules/next/dist/lib/picocolors.js","../../../node_modules/next/dist/lib/scheduler.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/console-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/console-async-storage.external.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/dynamic-rendering.js","../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.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/staged-rendering.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/dev/browser-logs/file-logger.js","../../../node_modules/next/dist/server/dynamic-rendering-utils.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/parse-stack.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/source-maps.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/node-environment-baseline.js","../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../node_modules/next/dist/server/node-environment.js","../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../node_modules/next/dist/server/patch-error-inspect.js","../../../node_modules/next/dist/server/require-hook.js","../../../node_modules/next/dist/server/response-cache/types.js","../../../node_modules/next/dist/server/runtime-reacts.external.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/lazy-dynamic/bailout-to-csr.js","../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../node_modules/next/package.json","../../../node_modules/react/cjs/react.development.js","../../../node_modules/react/cjs/react.production.js","../../../node_modules/react/index.js","../../../node_modules/react/package.json","../../../package-lock.json","../../../package.json","../../../plugin/commands/usage.md","../../../postcss.config.mjs","../../../public/file.svg","../../../public/globe.svg","../../../public/next.svg","../../../public/vercel.svg","../../../public/window.svg","../../../scripts/refresh-prices.mjs","../../../tsconfig.json","../../../tsconfig.tsbuildinfo","../chunks/ssr/[root-of-the-server]__093.c8l._.js","../chunks/ssr/[root-of-the-server]__09hgk-7._.js","../chunks/ssr/[root-of-the-server]__0j40w4k._.js","../chunks/ssr/[root-of-the-server]__0q3rzj9._.js","../chunks/ssr/[root-of-the-server]__0ta~v~j._.js","../chunks/ssr/[root-of-the-server]__0ttyunn._.js","../chunks/ssr/[root-of-the-server]__0ul2mma._.js","../chunks/ssr/[root-of-the-server]__0x3h1uu._.js","../chunks/ssr/[turbopack]_runtime.js","../chunks/ssr/_0yajrcg._.js","../chunks/ssr/app_0f5cqsd._.js","../chunks/ssr/app_loading_tsx_05semg5._.js","../chunks/ssr/app_page_tsx_0fwe3kl._.js","../chunks/ssr/node_modules_09w7yel._.js","../chunks/ssr/node_modules_0i2xw~e._.js","../chunks/ssr/node_modules_next_dist_00~g681._.js","../chunks/ssr/node_modules_next_dist_0e1izl_._.js","../chunks/ssr/node_modules_next_dist_0jfwfbm._.js","../chunks/ssr/node_modules_next_dist_0pypjfq._.js","../chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js","../chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js","../chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js","../chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js","../chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0p0jepi.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]}
1
+ {"version":1,"files":["../../../.claude/design.config.json","../../../AGENTS.md","../../../CLAUDE.md","../../../DESIGN-EVAL-page-20260525-1015.md","../../../DESIGN.md","../../../LICENSE","../../../PLAN.md","../../../README.md","../../../app/actions.ts","../../../app/components/Nav.tsx","../../../app/components/Receipt.tsx","../../../app/context/loading.tsx","../../../app/context/page.tsx","../../../app/favicon.ico","../../../app/globals.css","../../../app/items/loading.tsx","../../../app/items/page.tsx","../../../app/layout.tsx","../../../app/loading.tsx","../../../app/page.tsx","../../../app/sessions/loading.tsx","../../../app/sessions/page.tsx","../../../bin/cli.js","../../../bin/summary.js","../../../eslint.config.mjs","../../../lib/files.ts","../../../lib/hooks.ts","../../../lib/inventory.ts","../../../lib/mcp.ts","../../../lib/model-prices.json","../../../lib/pricing.ts","../../../lib/recent.ts","../../../lib/sessions.ts","../../../lib/transcripts.ts","../../../lib/usage.ts","../../../next.config.ts","../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../node_modules/@swc/helpers/package.json","../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../node_modules/next/dist/client/components/app-router-headers.js","../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../node_modules/next/dist/client/lib/console.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-turbo.runtime.prod.js","../../../node_modules/next/dist/compiled/source-map/package.json","../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../node_modules/next/dist/compiled/ws/index.js","../../../node_modules/next/dist/compiled/ws/package.json","../../../node_modules/next/dist/lib/client-and-server-references.js","../../../node_modules/next/dist/lib/constants.js","../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../node_modules/next/dist/lib/interop-default.js","../../../node_modules/next/dist/lib/is-error.js","../../../node_modules/next/dist/lib/picocolors.js","../../../node_modules/next/dist/lib/scheduler.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/console-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/console-async-storage.external.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/dynamic-rendering.js","../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.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/staged-rendering.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/dev/browser-logs/file-logger.js","../../../node_modules/next/dist/server/dynamic-rendering-utils.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/parse-stack.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/source-maps.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/node-environment-baseline.js","../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../node_modules/next/dist/server/node-environment.js","../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../node_modules/next/dist/server/patch-error-inspect.js","../../../node_modules/next/dist/server/require-hook.js","../../../node_modules/next/dist/server/response-cache/types.js","../../../node_modules/next/dist/server/runtime-reacts.external.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/lazy-dynamic/bailout-to-csr.js","../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../node_modules/next/package.json","../../../node_modules/react/cjs/react.development.js","../../../node_modules/react/cjs/react.production.js","../../../node_modules/react/index.js","../../../node_modules/react/package.json","../../../package-lock.json","../../../package.json","../../../plugin/commands/usage.md","../../../postcss.config.mjs","../../../public/file.svg","../../../public/globe.svg","../../../public/next.svg","../../../public/vercel.svg","../../../public/window.svg","../../../scripts/refresh-prices.mjs","../../../tsconfig.json","../../../tsconfig.tsbuildinfo","../chunks/ssr/[root-of-the-server]__093.c8l._.js","../chunks/ssr/[root-of-the-server]__09hgk-7._.js","../chunks/ssr/[root-of-the-server]__0j40w4k._.js","../chunks/ssr/[root-of-the-server]__0q3rzj9._.js","../chunks/ssr/[root-of-the-server]__0ta~v~j._.js","../chunks/ssr/[root-of-the-server]__0ttyunn._.js","../chunks/ssr/[root-of-the-server]__0ul2mma._.js","../chunks/ssr/[root-of-the-server]__0x3h1uu._.js","../chunks/ssr/[turbopack]_runtime.js","../chunks/ssr/_0yajrcg._.js","../chunks/ssr/app_0f5cqsd._.js","../chunks/ssr/app_loading_tsx_05semg5._.js","../chunks/ssr/app_page_tsx_0fwe3kl._.js","../chunks/ssr/node_modules_09w7yel._.js","../chunks/ssr/node_modules_0i2xw~e._.js","../chunks/ssr/node_modules_next_dist_00~g681._.js","../chunks/ssr/node_modules_next_dist_0e1izl_._.js","../chunks/ssr/node_modules_next_dist_0jfwfbm._.js","../chunks/ssr/node_modules_next_dist_0pypjfq._.js","../chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js","../chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js","../chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js","../chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js","../chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0p0jepi.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]}
@@ -1,3 +1,3 @@
1
- module.exports=[64240,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},12714,(a,b,c)=>{b.exports=a.x("node:fs/promises",()=>require("node:fs/promises"))},790,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/client/app-dir/link.js <module evaluation>"))},84707,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/client/app-dir/link.js"))},97647,a=>{"use strict";a.i(790);var b=a.i(84707);a.n(b)},95936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return i},useLinkStatus:function(){return h.useLinkStatus}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(64240),g=a.r(7997),h=f._(a.r(97647));function i(a){let b=a.legacyBehavior,c="string"==typeof a.children||"number"==typeof a.children||"string"==typeof a.children?.type,d=a.children?.type?.$$typeof===Symbol.for("react.client.reference");return!b||c||d||(a.children?.type?.$$typeof===Symbol.for("react.lazy")?console.error("Using a Lazy Component as a direct child of `<Link legacyBehavior>` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's `<a>` tag."):console.error("Using a Server Component as a direct child of `<Link legacyBehavior>` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's `<a>` tag.")),(0,g.jsx)(h.default,{...a})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},60526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},84434,a=>{"use strict";var b=a.i(7997),c=a.i(95936);a.s(["MiniStat",0,function({label:a,value:c}){return(0,b.jsxs)("div",{className:"px-2 py-3 text-center",children:[(0,b.jsx)("div",{className:"text-sm font-semibold tabular-nums tracking-tight text-zinc-900 dark:text-zinc-50",children:c}),(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-widest text-zinc-500 mt-0.5",children:a})]})},"Receipt",0,function({label:a,action:d,pad:e="default",className:f="",children:g}){let h=!!(a||d);return(0,b.jsxs)("div",{className:`rounded-lg border border-zinc-200 dark:border-zinc-800 bg-white dark:bg-zinc-900 ${f}`,children:[h&&(0,b.jsxs)("div",{className:"flex items-baseline justify-between gap-3 px-4 pt-3 pb-2 border-b border-zinc-200 dark:border-zinc-800",children:[(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-widest text-zinc-500",children:a}),d&&(0,b.jsxs)(c.default,{href:d.href,className:"text-[10px] uppercase tracking-widest text-zinc-500 hover:text-zinc-900 dark:hover:text-zinc-100 transition-colors",children:[d.label," →"]})]}),(0,b.jsx)("div",{className:`${"none"===e?"":"tight"===e?"px-4 py-3":"loose"===e?"px-6 py-6 md:px-8 md:py-7":"px-4 py-4 md:px-6 md:py-5"} ${"none"===e?"overflow-x-auto":""}`,children:g})]})},"Stat",0,function({label:a,value:c,hint:d,align:e="left",size:f="lg"}){return(0,b.jsxs)("div",{className:"center"===e?"text-center":"right"===e?"text-right":"text-left",children:[(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-widest text-zinc-500",children:a}),(0,b.jsx)("div",{className:`${"xl"===f?"text-3xl":"lg"===f?"text-2xl":"text-xl"} font-semibold tabular-nums tracking-tight text-zinc-900 dark:text-zinc-50 mt-1`,children:c}),d&&(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-widest text-zinc-500 mt-0.5",children:d})]})}])},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},1457,(a,b,c)=>{b.exports=a.x("node:readline",()=>require("node:readline"))},28886,(a,b,c)=>{b.exports={_source:"https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json",_refreshedAt:"2026-05-27T17:24:45.345Z",_description:"Anthropic model prices in USD per token (input, output, cache_read, cache_creation 5min default). Refresh with `npm run refresh-prices`.",models:{"claude-3-7-sonnet-20250219":{input:3e-6,output:15e-6,cache_read:3e-7,cache_creation_5m:375e-8,cache_creation_1h:6e-6},"claude-3-haiku-20240307":{input:25e-8,output:125e-8,cache_read:3e-8,cache_creation_5m:3e-7,cache_creation_1h:6e-6},"claude-3-opus-20240229":{input:15e-6,output:75e-6,cache_read:15e-7,cache_creation_5m:1875e-8,cache_creation_1h:6e-6},"claude-4-opus-20250514":{input:15e-6,output:75e-6,cache_read:15e-7,cache_creation_5m:1875e-8,cache_creation_1h:375e-7},"claude-4-sonnet-20250514":{input:3e-6,output:15e-6,cache_read:3e-7,cache_creation_5m:375e-8,cache_creation_1h:75e-7},"claude-haiku-4-5":{input:1e-6,output:5e-6,cache_read:1e-7,cache_creation_5m:125e-8,cache_creation_1h:2e-6},"claude-haiku-4-5-20251001":{input:1e-6,output:5e-6,cache_read:1e-7,cache_creation_5m:125e-8,cache_creation_1h:2e-6},"claude-opus-4-1":{input:15e-6,output:75e-6,cache_read:15e-7,cache_creation_5m:1875e-8,cache_creation_1h:3e-5},"claude-opus-4-1-20250805":{input:15e-6,output:75e-6,cache_read:15e-7,cache_creation_5m:1875e-8,cache_creation_1h:3e-5},"claude-opus-4-20250514":{input:15e-6,output:75e-6,cache_read:15e-7,cache_creation_5m:1875e-8,cache_creation_1h:3e-5},"claude-opus-4-5":{input:5e-6,output:25e-6,cache_read:5e-7,cache_creation_5m:625e-8,cache_creation_1h:1e-5},"claude-opus-4-5-20251101":{input:5e-6,output:25e-6,cache_read:5e-7,cache_creation_5m:625e-8,cache_creation_1h:1e-5},"claude-opus-4-6":{input:5e-6,output:25e-6,cache_read:5e-7,cache_creation_5m:625e-8,cache_creation_1h:1e-5},"claude-opus-4-6-20260205":{input:5e-6,output:25e-6,cache_read:5e-7,cache_creation_5m:625e-8,cache_creation_1h:1e-5},"claude-opus-4-7":{input:5e-6,output:25e-6,cache_read:5e-7,cache_creation_5m:625e-8,cache_creation_1h:1e-5},"claude-opus-4-7-20260416":{input:5e-6,output:25e-6,cache_read:5e-7,cache_creation_5m:625e-8,cache_creation_1h:1e-5},"claude-sonnet-4-20250514":{input:3e-6,output:15e-6,cache_read:3e-7,cache_creation_5m:375e-8,cache_creation_1h:6e-6},"claude-sonnet-4-5":{input:3e-6,output:15e-6,cache_read:3e-7,cache_creation_5m:375e-8,cache_creation_1h:75e-7},"claude-sonnet-4-5-20250929":{input:3e-6,output:15e-6,cache_read:3e-7,cache_creation_5m:375e-8,cache_creation_1h:75e-7},"claude-sonnet-4-6":{input:3e-6,output:15e-6,cache_read:3e-7,cache_creation_5m:375e-8,cache_creation_1h:75e-7}}}},21249,32110,78110,a=>{"use strict";var b=a.i(12714),c=a.i(2157),d=a.i(1457),e=a.i(60526),f=a.i(50227);let g=(0,f.join)((0,e.homedir)(),".claude","projects"),h=new Map;async function i(a,b){let e=a.split("/"),f="subagents"===e[e.length-2],g=f?e[e.length-3]??"":e[e.length-1].replace(/\.jsonl$/,""),h=f?e[e.length-4]??"":e[e.length-2]??"",i={filePath:a,mtimeMs:b,sessionId:g,project:h,projectPath:h.replace(/^-/,"/").replaceAll("-","/"),startTime:0,endTime:0,turnCount:0,models:[],inputTokens:0,cacheReadTokens:0,cacheCreationTokens:0,outputTokens:0,byModel:{},usageRecords:[],invocations:[],toolCalls:{},toolErrors:0,sidechainTurns:0};return new Promise(b=>{let e=(0,d.createInterface)({input:(0,c.createReadStream)(a,{encoding:"utf8"}),crlfDelay:1/0});e.on("line",a=>{let b;if(!a||"{"!==a[0])return;let c=a.includes('"usage"'),d=a.includes('"tool_use"'),e=a.includes('"tool_result"');if(!c&&!d&&!e)return;try{b=JSON.parse(a)}catch{return}let f=b.message,g=b.timestamp,h="string"==typeof g?Date.parse(g):NaN,j=!0===b.isSidechain,k=f?.usage;if(k){let a="string"==typeof f?.id?f.id:"",c="string"==typeof b.requestId?b.requestId:"",d=a?`${a}:${c}`:"",e=Number(k.cache_creation_input_tokens)||0,g=k.cache_creation??null,l=0,m=0;if(g&&"object"==typeof g){let a=e-((l=Number(g.ephemeral_5m_input_tokens)||0)+(m=Number(g.ephemeral_1h_input_tokens)||0));a>0&&(l+=a)}else l=e;i.usageRecords.push({dedupKey:d,model:f?.model||"<synthetic>",ts:Number.isFinite(h)?h:0,input:Number(k.input_tokens)||0,cacheRead:Number(k.cache_read_input_tokens)||0,cacheCreation5m:l,cacheCreation1h:m,output:Number(k.output_tokens)||0,isSidechain:j})}if(Array.isArray(f?.content)){for(let a of f.content)if(a&&"object"==typeof a)if("tool_use"===a.type){let b="string"==typeof a.name?a.name:"(unknown)";i.toolCalls[b]=(i.toolCalls[b]??0)+1;let c=a.input;c&&("Skill"===b&&"string"==typeof c.skill?i.invocations.push({kind:"skill",name:c.skill,ts:Number.isFinite(h)?h:0}):"Agent"===b&&"string"==typeof c.subagent_type&&i.invocations.push({kind:"agent",name:c.subagent_type,ts:Number.isFinite(h)?h:0}))}else"tool_result"===a.type&&!0===a.is_error&&(i.toolErrors+=1)}}),e.on("close",()=>b(i)),e.on("error",()=>b(i))})}async function j(a,b){let c=h.get(a);if(c&&c.mtimeMs===b)return c;let d=await i(a,b);for(c&&h.delete(a),h.set(a,d);h.size>5e3;){let a=h.keys().next().value;if(void 0===a)break;h.delete(a)}return d}async function k(a,b,c){let d=Array(a.length),e=0,f=Array.from({length:Math.min(b,a.length)},async()=>{for(;;){let b=e++;if(b>=a.length)return;d[b]=await c(a[b])}});return await Promise.all(f),d}async function l(a,c,d,e=0){let g;if(!(e>3)){try{g=await (0,b.readdir)(a,{withFileTypes:!0})}catch{return}for(let h of g){let g=(0,f.join)(a,h.name);if(h.isDirectory()){await l(g,c,d,e+1);continue}if(h.isFile()&&h.name.endsWith(".jsonl"))try{let a=await (0,b.stat)(g);a.mtimeMs>=c&&d.push({filePath:g,mtimeMs:a.mtimeMs})}catch{}}}}async function m(a=30){let c,d=Date.now()-24*a*36e5;try{c=await (0,b.readdir)(g,{withFileTypes:!0})}catch{return[]}let e=[];return await Promise.all(c.map(async a=>{a.isDirectory()&&await l((0,f.join)(g,String(a.name)),d,e)})),function(a){let b=[...a].sort((a,b)=>a.mtimeMs-b.mtimeMs),c=new Set,d=new Map;for(let a of b){let b=`${a.project}\0${a.sessionId}`,e=d.get(b);for(let c of(e?a.filePath.includes("/subagents/")||(e.filePath=a.filePath,e.mtimeMs=Math.max(e.mtimeMs,a.mtimeMs)):(e={filePath:a.filePath,mtimeMs:a.mtimeMs,sessionId:a.sessionId,project:a.project,projectPath:a.projectPath,startTime:0,endTime:0,turnCount:0,models:[],inputTokens:0,cacheReadTokens:0,cacheCreationTokens:0,outputTokens:0,byModel:{},usageRecords:[],invocations:[],toolCalls:{},toolErrors:0,sidechainTurns:0},d.set(b,e)),a.invocations))e.invocations.push(c);for(let[b,c]of Object.entries(a.toolCalls))e.toolCalls[b]=(e.toolCalls[b]??0)+c;e.toolErrors+=a.toolErrors;let f=new Set(e.models);for(let b of a.usageRecords){if(b.dedupKey){if(c.has(b.dedupKey))continue;c.add(b.dedupKey)}e.inputTokens+=b.input,e.cacheReadTokens+=b.cacheRead,e.cacheCreationTokens+=b.cacheCreation5m+b.cacheCreation1h,e.outputTokens+=b.output,e.turnCount+=1,b.isSidechain&&(e.sidechainTurns+=1),f.add(b.model);let a=e.byModel[b.model]??{inputTokens:0,cacheReadTokens:0,cacheCreation5mTokens:0,cacheCreation1hTokens:0,outputTokens:0};a.inputTokens+=b.input,a.cacheReadTokens+=b.cacheRead,a.cacheCreation5mTokens+=b.cacheCreation5m,a.cacheCreation1hTokens+=b.cacheCreation1h,a.outputTokens+=b.output,e.byModel[b.model]=a,b.ts>0&&((!e.startTime||b.ts<e.startTime)&&(e.startTime=b.ts),b.ts>e.endTime&&(e.endTime=b.ts))}e.models=[...f]}return[...d.values()]}(await k(e,16,a=>j(a.filePath,a.mtimeMs)))}a.s(["getAllTranscripts",0,m],32110);let n=a.i(28886).default.models,o={opus:"claude-opus-4-7",sonnet:"claude-sonnet-4-6",haiku:"claude-haiku-4-5"},p=new Set;function q(a,b){let c=function(a){if(!a||"<synthetic>"===a)return null;if(n[a])return n[a];if(o[a]&&n[o[a]])return n[o[a]];let b=a.replace(/\[[^\]]+\]$/,"");if(b!==a&&n[b])return n[b];let c=b.replace(/-\d{8}$/,"");return n[c]?n[c]:(p.has(a)||(p.add(a),console.warn(`[contextscope] no price found for model "${a}" — treating as $0. Add to lib/model-prices.json or alias.`)),null)}(a);return c?b.input*c.input+b.output*c.output+b.cacheRead*c.cache_read+b.cacheCreation5m*c.cache_creation_5m+b.cacheCreation1h*c.cache_creation_1h:0}function r(a){let b=a.inputTokens+a.cacheReadTokens+a.cacheCreationTokens+a.outputTokens;return{sessionId:a.sessionId,project:a.project,projectPath:a.projectPath,filePath:a.filePath,startTime:a.startTime,endTime:a.endTime,turnCount:a.turnCount,models:a.models,inputTokens:a.inputTokens,cacheReadTokens:a.cacheReadTokens,cacheCreationTokens:a.cacheCreationTokens,outputTokens:a.outputTokens,totalTokens:b,costUsd:function(a){let b=0;for(let[c,d]of Object.entries(a.byModel))b+=q(c,{input:d.inputTokens,output:d.outputTokens,cacheRead:d.cacheReadTokens,cacheCreation5m:d.cacheCreation5mTokens,cacheCreation1h:d.cacheCreation1hTokens});return b}(a),toolCalls:a.toolCalls,toolErrors:a.toolErrors,sidechainTurns:a.sidechainTurns}}async function s(a=30){return(await m(a)).filter(a=>a.turnCount>0).map(r).sort((a,b)=>b.totalTokens-a.totalTokens)}a.s(["costForUsage",0,q,"formatUsd",0,function(a){return a>=100?`$${a.toFixed(0)}`:a>=10?`$${a.toFixed(1)}`:a>=1||a>=.01?`$${a.toFixed(2)}`:a>0?"<$0.01":"$0"}],78110),a.s(["getSessions",0,s,"summarizeSessions",0,function(a){if(0===a.length)return{count:0,totalTokens:0,totalOutputTokens:0,totalInputPlusCache:0,totalCostUsd:0,cacheHitRatio:0,outputInputRatio:0,averageSessionTokens:0,medianSessionTokens:0,p95SessionTokens:0,longSessions:[],dailyBurn:[],byProject:[],totalToolCalls:{},totalToolErrors:0,totalSidechainTurns:0,totalTurns:0};let b=[...a].map(a=>a.totalTokens).sort((a,b)=>a-b),c=b.reduce((a,b)=>a+b,0),d=b[Math.floor(b.length/2)],e=b[Math.min(b.length-1,Math.floor(.95*b.length))],f=0,g=0,h=0,i=0;for(let b of a)f+=b.inputTokens,g+=b.cacheReadTokens,h+=b.cacheCreationTokens,i+=b.outputTokens;let j=f+g+h,k=j>0?g/j:0,l=j>0?i/j:0,m=a.filter(a=>a.totalTokens>=5e5),n=new Map;for(let b of a){let a=b.endTime||b.startTime;if(!a)continue;let c=new Date(a),d=`${c.getUTCFullYear()}-${String(c.getUTCMonth()+1).padStart(2,"0")}-${String(c.getUTCDate()).padStart(2,"0")}`,e=n.get(d)??{tokens:0,cost:0};e.tokens+=b.totalTokens,e.cost+=b.costUsd,n.set(d,e)}let o=[...n.entries()].map(([a,b])=>({date:a,tokens:b.tokens,cost:b.cost})).sort((a,b)=>a.date.localeCompare(b.date)),p=new Map,q=0;for(let b of a){q+=b.costUsd;let a=p.get(b.project)??{project:b.project,projectPath:b.projectPath,count:0,tokens:0,cost:0,turns:0};a.count+=1,a.tokens+=b.totalTokens,a.cost+=b.costUsd,a.turns+=b.turnCount,p.set(b.project,a)}let r=[...p.values()].sort((a,b)=>b.tokens-a.tokens),s={},t=0,u=0,v=0;for(let b of a){for(let[a,c]of Object.entries(b.toolCalls))s[a]=(s[a]??0)+c;t+=b.toolErrors,u+=b.sidechainTurns,v+=b.turnCount}return{count:a.length,totalTokens:c,totalOutputTokens:i,totalInputPlusCache:j,totalCostUsd:q,cacheHitRatio:k,outputInputRatio:l,averageSessionTokens:Math.round(c/a.length),medianSessionTokens:d,p95SessionTokens:e,longSessions:m,dailyBurn:o,byProject:r,totalToolCalls:s,totalToolErrors:t,totalSidechainTurns:u,totalTurns:v}}],21249)}];
1
+ module.exports=[64240,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},12714,(a,b,c)=>{b.exports=a.x("node:fs/promises",()=>require("node:fs/promises"))},790,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/client/app-dir/link.js <module evaluation>"))},84707,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/client/app-dir/link.js"))},97647,a=>{"use strict";a.i(790);var b=a.i(84707);a.n(b)},95936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return i},useLinkStatus:function(){return h.useLinkStatus}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(64240),g=a.r(7997),h=f._(a.r(97647));function i(a){let b=a.legacyBehavior,c="string"==typeof a.children||"number"==typeof a.children||"string"==typeof a.children?.type,d=a.children?.type?.$$typeof===Symbol.for("react.client.reference");return!b||c||d||(a.children?.type?.$$typeof===Symbol.for("react.lazy")?console.error("Using a Lazy Component as a direct child of `<Link legacyBehavior>` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's `<a>` tag."):console.error("Using a Server Component as a direct child of `<Link legacyBehavior>` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's `<a>` tag.")),(0,g.jsx)(h.default,{...a})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},60526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},84434,a=>{"use strict";var b=a.i(7997),c=a.i(95936);a.s(["MiniStat",0,function({label:a,value:c}){return(0,b.jsxs)("div",{className:"px-2 py-3 text-center",children:[(0,b.jsx)("div",{className:"text-sm font-semibold tabular-nums tracking-tight text-zinc-900 dark:text-zinc-50",children:c}),(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-widest text-zinc-500 mt-0.5",children:a})]})},"Receipt",0,function({label:a,action:d,pad:e="default",className:f="",children:g}){let h=!!(a||d);return(0,b.jsxs)("div",{className:`rounded-lg border border-zinc-200 dark:border-zinc-800 bg-white dark:bg-zinc-900 ${f}`,children:[h&&(0,b.jsxs)("div",{className:"flex items-baseline justify-between gap-3 px-4 pt-3 pb-2 border-b border-zinc-200 dark:border-zinc-800",children:[(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-widest text-zinc-500",children:a}),d&&(0,b.jsxs)(c.default,{href:d.href,className:"text-[10px] uppercase tracking-widest text-zinc-500 hover:text-zinc-900 dark:hover:text-zinc-100 transition-colors",children:[d.label," →"]})]}),(0,b.jsx)("div",{className:`${"none"===e?"":"tight"===e?"px-4 py-3":"loose"===e?"px-6 py-6 md:px-8 md:py-7":"px-4 py-4 md:px-6 md:py-5"} ${"none"===e?"overflow-x-auto":""}`,children:g})]})},"Stat",0,function({label:a,value:c,hint:d,align:e="left",size:f="lg"}){return(0,b.jsxs)("div",{className:"center"===e?"text-center":"right"===e?"text-right":"text-left",children:[(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-widest text-zinc-500",children:a}),(0,b.jsx)("div",{className:`${"xl"===f?"text-3xl":"lg"===f?"text-2xl":"text-xl"} font-semibold tabular-nums tracking-tight text-zinc-900 dark:text-zinc-50 mt-1`,children:c}),d&&(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-widest text-zinc-500 mt-0.5",children:d})]})}])},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},1457,(a,b,c)=>{b.exports=a.x("node:readline",()=>require("node:readline"))},28886,(a,b,c)=>{b.exports={_source:"https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json",_refreshedAt:"2026-05-30T19:17:56.836Z",_description:"Anthropic model prices in USD per token (input, output, cache_read, cache_creation 5min default). Refresh with `npm run refresh-prices`.",models:{"claude-3-7-sonnet-20250219":{input:3e-6,output:15e-6,cache_read:3e-7,cache_creation_5m:375e-8,cache_creation_1h:6e-6},"claude-3-haiku-20240307":{input:25e-8,output:125e-8,cache_read:3e-8,cache_creation_5m:3e-7,cache_creation_1h:6e-6},"claude-3-opus-20240229":{input:15e-6,output:75e-6,cache_read:15e-7,cache_creation_5m:1875e-8,cache_creation_1h:6e-6},"claude-4-opus-20250514":{input:15e-6,output:75e-6,cache_read:15e-7,cache_creation_5m:1875e-8,cache_creation_1h:375e-7},"claude-4-sonnet-20250514":{input:3e-6,output:15e-6,cache_read:3e-7,cache_creation_5m:375e-8,cache_creation_1h:75e-7},"claude-haiku-4-5":{input:1e-6,output:5e-6,cache_read:1e-7,cache_creation_5m:125e-8,cache_creation_1h:2e-6},"claude-haiku-4-5-20251001":{input:1e-6,output:5e-6,cache_read:1e-7,cache_creation_5m:125e-8,cache_creation_1h:2e-6},"claude-opus-4-1":{input:15e-6,output:75e-6,cache_read:15e-7,cache_creation_5m:1875e-8,cache_creation_1h:3e-5},"claude-opus-4-1-20250805":{input:15e-6,output:75e-6,cache_read:15e-7,cache_creation_5m:1875e-8,cache_creation_1h:3e-5},"claude-opus-4-20250514":{input:15e-6,output:75e-6,cache_read:15e-7,cache_creation_5m:1875e-8,cache_creation_1h:3e-5},"claude-opus-4-5":{input:5e-6,output:25e-6,cache_read:5e-7,cache_creation_5m:625e-8,cache_creation_1h:1e-5},"claude-opus-4-5-20251101":{input:5e-6,output:25e-6,cache_read:5e-7,cache_creation_5m:625e-8,cache_creation_1h:1e-5},"claude-opus-4-6":{input:5e-6,output:25e-6,cache_read:5e-7,cache_creation_5m:625e-8,cache_creation_1h:1e-5},"claude-opus-4-6-20260205":{input:5e-6,output:25e-6,cache_read:5e-7,cache_creation_5m:625e-8,cache_creation_1h:1e-5},"claude-opus-4-7":{input:5e-6,output:25e-6,cache_read:5e-7,cache_creation_5m:625e-8,cache_creation_1h:1e-5},"claude-opus-4-7-20260416":{input:5e-6,output:25e-6,cache_read:5e-7,cache_creation_5m:625e-8,cache_creation_1h:1e-5},"claude-opus-4-8":{input:5e-6,output:25e-6,cache_read:5e-7,cache_creation_5m:625e-8,cache_creation_1h:1e-5},"claude-sonnet-4-20250514":{input:3e-6,output:15e-6,cache_read:3e-7,cache_creation_5m:375e-8,cache_creation_1h:6e-6},"claude-sonnet-4-5":{input:3e-6,output:15e-6,cache_read:3e-7,cache_creation_5m:375e-8,cache_creation_1h:75e-7},"claude-sonnet-4-5-20250929":{input:3e-6,output:15e-6,cache_read:3e-7,cache_creation_5m:375e-8,cache_creation_1h:75e-7},"claude-sonnet-4-6":{input:3e-6,output:15e-6,cache_read:3e-7,cache_creation_5m:375e-8,cache_creation_1h:75e-7}}}},21249,32110,78110,a=>{"use strict";var b=a.i(12714),c=a.i(2157),d=a.i(1457),e=a.i(60526),f=a.i(50227);let g=(0,f.join)((0,e.homedir)(),".claude","projects"),h=new Map;async function i(a,b){let e=a.split("/"),f="subagents"===e[e.length-2],g=f?e[e.length-3]??"":e[e.length-1].replace(/\.jsonl$/,""),h=f?e[e.length-4]??"":e[e.length-2]??"",i={filePath:a,mtimeMs:b,sessionId:g,project:h,projectPath:h.replace(/^-/,"/").replaceAll("-","/"),startTime:0,endTime:0,turnCount:0,models:[],inputTokens:0,cacheReadTokens:0,cacheCreationTokens:0,outputTokens:0,byModel:{},usageRecords:[],invocations:[],toolCalls:{},toolErrors:0,sidechainTurns:0};return new Promise(b=>{let e=(0,d.createInterface)({input:(0,c.createReadStream)(a,{encoding:"utf8"}),crlfDelay:1/0});e.on("line",a=>{let b;if(!a||"{"!==a[0])return;let c=a.includes('"usage"'),d=a.includes('"tool_use"'),e=a.includes('"tool_result"');if(!c&&!d&&!e)return;try{b=JSON.parse(a)}catch{return}let f=b.message,g=b.timestamp,h="string"==typeof g?Date.parse(g):NaN,j=!0===b.isSidechain,k=f?.usage;if(k){let a="string"==typeof f?.id?f.id:"",c="string"==typeof b.requestId?b.requestId:"",d=a?`${a}:${c}`:"",e=Number(k.cache_creation_input_tokens)||0,g=k.cache_creation??null,l=0,m=0;if(g&&"object"==typeof g){let a=e-((l=Number(g.ephemeral_5m_input_tokens)||0)+(m=Number(g.ephemeral_1h_input_tokens)||0));a>0&&(l+=a)}else l=e;i.usageRecords.push({dedupKey:d,model:f?.model||"<synthetic>",ts:Number.isFinite(h)?h:0,input:Number(k.input_tokens)||0,cacheRead:Number(k.cache_read_input_tokens)||0,cacheCreation5m:l,cacheCreation1h:m,output:Number(k.output_tokens)||0,isSidechain:j})}if(Array.isArray(f?.content)){for(let a of f.content)if(a&&"object"==typeof a)if("tool_use"===a.type){let b="string"==typeof a.name?a.name:"(unknown)";i.toolCalls[b]=(i.toolCalls[b]??0)+1;let c=a.input;c&&("Skill"===b&&"string"==typeof c.skill?i.invocations.push({kind:"skill",name:c.skill,ts:Number.isFinite(h)?h:0}):"Agent"===b&&"string"==typeof c.subagent_type&&i.invocations.push({kind:"agent",name:c.subagent_type,ts:Number.isFinite(h)?h:0}))}else"tool_result"===a.type&&!0===a.is_error&&(i.toolErrors+=1)}}),e.on("close",()=>b(i)),e.on("error",()=>b(i))})}async function j(a,b){let c=h.get(a);if(c&&c.mtimeMs===b)return c;let d=await i(a,b);for(c&&h.delete(a),h.set(a,d);h.size>5e3;){let a=h.keys().next().value;if(void 0===a)break;h.delete(a)}return d}async function k(a,b,c){let d=Array(a.length),e=0,f=Array.from({length:Math.min(b,a.length)},async()=>{for(;;){let b=e++;if(b>=a.length)return;d[b]=await c(a[b])}});return await Promise.all(f),d}async function l(a,c,d,e=0){let g;if(!(e>3)){try{g=await (0,b.readdir)(a,{withFileTypes:!0})}catch{return}for(let h of g){let g=(0,f.join)(a,h.name);if(h.isDirectory()){await l(g,c,d,e+1);continue}if(h.isFile()&&h.name.endsWith(".jsonl"))try{let a=await (0,b.stat)(g);a.mtimeMs>=c&&d.push({filePath:g,mtimeMs:a.mtimeMs})}catch{}}}}async function m(a=30){let c,d=Date.now()-24*a*36e5;try{c=await (0,b.readdir)(g,{withFileTypes:!0})}catch{return[]}let e=[];return await Promise.all(c.map(async a=>{a.isDirectory()&&await l((0,f.join)(g,String(a.name)),d,e)})),function(a){let b=[...a].sort((a,b)=>a.mtimeMs-b.mtimeMs),c=new Set,d=new Map;for(let a of b){let b=`${a.project}\0${a.sessionId}`,e=d.get(b);for(let c of(e?a.filePath.includes("/subagents/")||(e.filePath=a.filePath,e.mtimeMs=Math.max(e.mtimeMs,a.mtimeMs)):(e={filePath:a.filePath,mtimeMs:a.mtimeMs,sessionId:a.sessionId,project:a.project,projectPath:a.projectPath,startTime:0,endTime:0,turnCount:0,models:[],inputTokens:0,cacheReadTokens:0,cacheCreationTokens:0,outputTokens:0,byModel:{},usageRecords:[],invocations:[],toolCalls:{},toolErrors:0,sidechainTurns:0},d.set(b,e)),a.invocations))e.invocations.push(c);for(let[b,c]of Object.entries(a.toolCalls))e.toolCalls[b]=(e.toolCalls[b]??0)+c;e.toolErrors+=a.toolErrors;let f=new Set(e.models);for(let b of a.usageRecords){if(b.dedupKey){if(c.has(b.dedupKey))continue;c.add(b.dedupKey)}e.inputTokens+=b.input,e.cacheReadTokens+=b.cacheRead,e.cacheCreationTokens+=b.cacheCreation5m+b.cacheCreation1h,e.outputTokens+=b.output,e.turnCount+=1,b.isSidechain&&(e.sidechainTurns+=1),f.add(b.model);let a=e.byModel[b.model]??{inputTokens:0,cacheReadTokens:0,cacheCreation5mTokens:0,cacheCreation1hTokens:0,outputTokens:0};a.inputTokens+=b.input,a.cacheReadTokens+=b.cacheRead,a.cacheCreation5mTokens+=b.cacheCreation5m,a.cacheCreation1hTokens+=b.cacheCreation1h,a.outputTokens+=b.output,e.byModel[b.model]=a,b.ts>0&&((!e.startTime||b.ts<e.startTime)&&(e.startTime=b.ts),b.ts>e.endTime&&(e.endTime=b.ts))}e.models=[...f]}return[...d.values()]}(await k(e,16,a=>j(a.filePath,a.mtimeMs)))}a.s(["getAllTranscripts",0,m],32110);let n=a.i(28886).default.models,o={opus:"claude-opus-4-7",sonnet:"claude-sonnet-4-6",haiku:"claude-haiku-4-5"},p=new Set;function q(a,b){let c=function(a){if(!a||"<synthetic>"===a)return null;if(n[a])return n[a];if(o[a]&&n[o[a]])return n[o[a]];let b=a.replace(/\[[^\]]+\]$/,"");if(b!==a&&n[b])return n[b];let c=b.replace(/-\d{8}$/,"");return n[c]?n[c]:(p.has(a)||(p.add(a),console.warn(`[contextscope] no price found for model "${a}" — treating as $0. Add to lib/model-prices.json or alias.`)),null)}(a);return c?b.input*c.input+b.output*c.output+b.cacheRead*c.cache_read+b.cacheCreation5m*c.cache_creation_5m+b.cacheCreation1h*c.cache_creation_1h:0}function r(a){let b=a.inputTokens+a.cacheReadTokens+a.cacheCreationTokens+a.outputTokens;return{sessionId:a.sessionId,project:a.project,projectPath:a.projectPath,filePath:a.filePath,startTime:a.startTime,endTime:a.endTime,turnCount:a.turnCount,models:a.models,inputTokens:a.inputTokens,cacheReadTokens:a.cacheReadTokens,cacheCreationTokens:a.cacheCreationTokens,outputTokens:a.outputTokens,totalTokens:b,costUsd:function(a){let b=0;for(let[c,d]of Object.entries(a.byModel))b+=q(c,{input:d.inputTokens,output:d.outputTokens,cacheRead:d.cacheReadTokens,cacheCreation5m:d.cacheCreation5mTokens,cacheCreation1h:d.cacheCreation1hTokens});return b}(a),toolCalls:a.toolCalls,toolErrors:a.toolErrors,sidechainTurns:a.sidechainTurns}}async function s(a=30){return(await m(a)).filter(a=>a.turnCount>0).map(r).sort((a,b)=>b.totalTokens-a.totalTokens)}a.s(["costForUsage",0,q,"formatUsd",0,function(a){return a>=100?`$${a.toFixed(0)}`:a>=10?`$${a.toFixed(1)}`:a>=1||a>=.01?`$${a.toFixed(2)}`:a>0?"<$0.01":"$0"}],78110),a.s(["getSessions",0,s,"summarizeSessions",0,function(a){if(0===a.length)return{count:0,totalTokens:0,totalOutputTokens:0,totalInputPlusCache:0,totalCostUsd:0,cacheHitRatio:0,outputInputRatio:0,averageSessionTokens:0,medianSessionTokens:0,p95SessionTokens:0,longSessions:[],dailyBurn:[],byProject:[],totalToolCalls:{},totalToolErrors:0,totalSidechainTurns:0,totalTurns:0};let b=[...a].map(a=>a.totalTokens).sort((a,b)=>a-b),c=b.reduce((a,b)=>a+b,0),d=b[Math.floor(b.length/2)],e=b[Math.min(b.length-1,Math.floor(.95*b.length))],f=0,g=0,h=0,i=0;for(let b of a)f+=b.inputTokens,g+=b.cacheReadTokens,h+=b.cacheCreationTokens,i+=b.outputTokens;let j=f+g+h,k=j>0?g/j:0,l=j>0?i/j:0,m=a.filter(a=>a.totalTokens>=5e5),n=new Map;for(let b of a){let a=b.endTime||b.startTime;if(!a)continue;let c=new Date(a),d=`${c.getUTCFullYear()}-${String(c.getUTCMonth()+1).padStart(2,"0")}-${String(c.getUTCDate()).padStart(2,"0")}`,e=n.get(d)??{tokens:0,cost:0};e.tokens+=b.totalTokens,e.cost+=b.costUsd,n.set(d,e)}let o=[...n.entries()].map(([a,b])=>({date:a,tokens:b.tokens,cost:b.cost})).sort((a,b)=>a.date.localeCompare(b.date)),p=new Map,q=0;for(let b of a){q+=b.costUsd;let a=p.get(b.project)??{project:b.project,projectPath:b.projectPath,count:0,tokens:0,cost:0,turns:0};a.count+=1,a.tokens+=b.totalTokens,a.cost+=b.costUsd,a.turns+=b.turnCount,p.set(b.project,a)}let r=[...p.values()].sort((a,b)=>b.tokens-a.tokens),s={},t=0,u=0,v=0;for(let b of a){for(let[a,c]of Object.entries(b.toolCalls))s[a]=(s[a]??0)+c;t+=b.toolErrors,u+=b.sidechainTurns,v+=b.turnCount}return{count:a.length,totalTokens:c,totalOutputTokens:i,totalInputPlusCache:j,totalCostUsd:q,cacheHitRatio:k,outputInputRatio:l,averageSessionTokens:Math.round(c/a.length),medianSessionTokens:d,p95SessionTokens:e,longSessions:m,dailyBurn:o,byProject:r,totalToolCalls:s,totalToolErrors:t,totalSidechainTurns:u,totalTurns:v}}],21249)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__0j40w4k._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[64240,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},12714,(a,b,c)=>{b.exports=a.x("node:fs/promises",()=>require("node:fs/promises"))},60526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},790,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/client/app-dir/link.js <module evaluation>"))},84707,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/client/app-dir/link.js"))},97647,a=>{"use strict";a.i(790);var b=a.i(84707);a.n(b)},95936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return i},useLinkStatus:function(){return h.useLinkStatus}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(64240),g=a.r(7997),h=f._(a.r(97647));function i(a){let b=a.legacyBehavior,c="string"==typeof a.children||"number"==typeof a.children||"string"==typeof a.children?.type,d=a.children?.type?.$$typeof===Symbol.for("react.client.reference");return!b||c||d||(a.children?.type?.$$typeof===Symbol.for("react.lazy")?console.error("Using a Lazy Component as a direct child of `<Link legacyBehavior>` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's `<a>` tag."):console.error("Using a Server Component as a direct child of `<Link legacyBehavior>` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's `<a>` tag.")),(0,g.jsx)(h.default,{...a})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},84434,a=>{"use strict";var b=a.i(7997),c=a.i(95936);a.s(["MiniStat",0,function({label:a,value:c}){return(0,b.jsxs)("div",{className:"px-2 py-3 text-center",children:[(0,b.jsx)("div",{className:"text-sm font-semibold tabular-nums tracking-tight text-zinc-900 dark:text-zinc-50",children:c}),(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-widest text-zinc-500 mt-0.5",children:a})]})},"Receipt",0,function({label:a,action:d,pad:e="default",className:f="",children:g}){let h=!!(a||d);return(0,b.jsxs)("div",{className:`rounded-lg border border-zinc-200 dark:border-zinc-800 bg-white dark:bg-zinc-900 ${f}`,children:[h&&(0,b.jsxs)("div",{className:"flex items-baseline justify-between gap-3 px-4 pt-3 pb-2 border-b border-zinc-200 dark:border-zinc-800",children:[(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-widest text-zinc-500",children:a}),d&&(0,b.jsxs)(c.default,{href:d.href,className:"text-[10px] uppercase tracking-widest text-zinc-500 hover:text-zinc-900 dark:hover:text-zinc-100 transition-colors",children:[d.label," →"]})]}),(0,b.jsx)("div",{className:`${"none"===e?"":"tight"===e?"px-4 py-3":"loose"===e?"px-6 py-6 md:px-8 md:py-7":"px-4 py-4 md:px-6 md:py-5"} ${"none"===e?"overflow-x-auto":""}`,children:g})]})},"Stat",0,function({label:a,value:c,hint:d,align:e="left",size:f="lg"}){return(0,b.jsxs)("div",{className:"center"===e?"text-center":"right"===e?"text-right":"text-left",children:[(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-widest text-zinc-500",children:a}),(0,b.jsx)("div",{className:`${"xl"===f?"text-3xl":"lg"===f?"text-2xl":"text-xl"} font-semibold tabular-nums tracking-tight text-zinc-900 dark:text-zinc-50 mt-1`,children:c}),d&&(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-widest text-zinc-500 mt-0.5",children:d})]})}])},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},1457,(a,b,c)=>{b.exports=a.x("node:readline",()=>require("node:readline"))},28886,(a,b,c)=>{b.exports={_source:"https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json",_refreshedAt:"2026-05-27T17:24:45.345Z",_description:"Anthropic model prices in USD per token (input, output, cache_read, cache_creation 5min default). Refresh with `npm run refresh-prices`.",models:{"claude-3-7-sonnet-20250219":{input:3e-6,output:15e-6,cache_read:3e-7,cache_creation_5m:375e-8,cache_creation_1h:6e-6},"claude-3-haiku-20240307":{input:25e-8,output:125e-8,cache_read:3e-8,cache_creation_5m:3e-7,cache_creation_1h:6e-6},"claude-3-opus-20240229":{input:15e-6,output:75e-6,cache_read:15e-7,cache_creation_5m:1875e-8,cache_creation_1h:6e-6},"claude-4-opus-20250514":{input:15e-6,output:75e-6,cache_read:15e-7,cache_creation_5m:1875e-8,cache_creation_1h:375e-7},"claude-4-sonnet-20250514":{input:3e-6,output:15e-6,cache_read:3e-7,cache_creation_5m:375e-8,cache_creation_1h:75e-7},"claude-haiku-4-5":{input:1e-6,output:5e-6,cache_read:1e-7,cache_creation_5m:125e-8,cache_creation_1h:2e-6},"claude-haiku-4-5-20251001":{input:1e-6,output:5e-6,cache_read:1e-7,cache_creation_5m:125e-8,cache_creation_1h:2e-6},"claude-opus-4-1":{input:15e-6,output:75e-6,cache_read:15e-7,cache_creation_5m:1875e-8,cache_creation_1h:3e-5},"claude-opus-4-1-20250805":{input:15e-6,output:75e-6,cache_read:15e-7,cache_creation_5m:1875e-8,cache_creation_1h:3e-5},"claude-opus-4-20250514":{input:15e-6,output:75e-6,cache_read:15e-7,cache_creation_5m:1875e-8,cache_creation_1h:3e-5},"claude-opus-4-5":{input:5e-6,output:25e-6,cache_read:5e-7,cache_creation_5m:625e-8,cache_creation_1h:1e-5},"claude-opus-4-5-20251101":{input:5e-6,output:25e-6,cache_read:5e-7,cache_creation_5m:625e-8,cache_creation_1h:1e-5},"claude-opus-4-6":{input:5e-6,output:25e-6,cache_read:5e-7,cache_creation_5m:625e-8,cache_creation_1h:1e-5},"claude-opus-4-6-20260205":{input:5e-6,output:25e-6,cache_read:5e-7,cache_creation_5m:625e-8,cache_creation_1h:1e-5},"claude-opus-4-7":{input:5e-6,output:25e-6,cache_read:5e-7,cache_creation_5m:625e-8,cache_creation_1h:1e-5},"claude-opus-4-7-20260416":{input:5e-6,output:25e-6,cache_read:5e-7,cache_creation_5m:625e-8,cache_creation_1h:1e-5},"claude-sonnet-4-20250514":{input:3e-6,output:15e-6,cache_read:3e-7,cache_creation_5m:375e-8,cache_creation_1h:6e-6},"claude-sonnet-4-5":{input:3e-6,output:15e-6,cache_read:3e-7,cache_creation_5m:375e-8,cache_creation_1h:75e-7},"claude-sonnet-4-5-20250929":{input:3e-6,output:15e-6,cache_read:3e-7,cache_creation_5m:375e-8,cache_creation_1h:75e-7},"claude-sonnet-4-6":{input:3e-6,output:15e-6,cache_read:3e-7,cache_creation_5m:375e-8,cache_creation_1h:75e-7}}}},21249,32110,78110,a=>{"use strict";var b=a.i(12714),c=a.i(2157),d=a.i(1457),e=a.i(60526),f=a.i(50227);let g=(0,f.join)((0,e.homedir)(),".claude","projects"),h=new Map;async function i(a,b){let e=a.split("/"),f="subagents"===e[e.length-2],g=f?e[e.length-3]??"":e[e.length-1].replace(/\.jsonl$/,""),h=f?e[e.length-4]??"":e[e.length-2]??"",i={filePath:a,mtimeMs:b,sessionId:g,project:h,projectPath:h.replace(/^-/,"/").replaceAll("-","/"),startTime:0,endTime:0,turnCount:0,models:[],inputTokens:0,cacheReadTokens:0,cacheCreationTokens:0,outputTokens:0,byModel:{},usageRecords:[],invocations:[],toolCalls:{},toolErrors:0,sidechainTurns:0};return new Promise(b=>{let e=(0,d.createInterface)({input:(0,c.createReadStream)(a,{encoding:"utf8"}),crlfDelay:1/0});e.on("line",a=>{let b;if(!a||"{"!==a[0])return;let c=a.includes('"usage"'),d=a.includes('"tool_use"'),e=a.includes('"tool_result"');if(!c&&!d&&!e)return;try{b=JSON.parse(a)}catch{return}let f=b.message,g=b.timestamp,h="string"==typeof g?Date.parse(g):NaN,j=!0===b.isSidechain,k=f?.usage;if(k){let a="string"==typeof f?.id?f.id:"",c="string"==typeof b.requestId?b.requestId:"",d=a?`${a}:${c}`:"",e=Number(k.cache_creation_input_tokens)||0,g=k.cache_creation??null,l=0,m=0;if(g&&"object"==typeof g){let a=e-((l=Number(g.ephemeral_5m_input_tokens)||0)+(m=Number(g.ephemeral_1h_input_tokens)||0));a>0&&(l+=a)}else l=e;i.usageRecords.push({dedupKey:d,model:f?.model||"<synthetic>",ts:Number.isFinite(h)?h:0,input:Number(k.input_tokens)||0,cacheRead:Number(k.cache_read_input_tokens)||0,cacheCreation5m:l,cacheCreation1h:m,output:Number(k.output_tokens)||0,isSidechain:j})}if(Array.isArray(f?.content)){for(let a of f.content)if(a&&"object"==typeof a)if("tool_use"===a.type){let b="string"==typeof a.name?a.name:"(unknown)";i.toolCalls[b]=(i.toolCalls[b]??0)+1;let c=a.input;c&&("Skill"===b&&"string"==typeof c.skill?i.invocations.push({kind:"skill",name:c.skill,ts:Number.isFinite(h)?h:0}):"Agent"===b&&"string"==typeof c.subagent_type&&i.invocations.push({kind:"agent",name:c.subagent_type,ts:Number.isFinite(h)?h:0}))}else"tool_result"===a.type&&!0===a.is_error&&(i.toolErrors+=1)}}),e.on("close",()=>b(i)),e.on("error",()=>b(i))})}async function j(a,b){let c=h.get(a);if(c&&c.mtimeMs===b)return c;let d=await i(a,b);for(c&&h.delete(a),h.set(a,d);h.size>5e3;){let a=h.keys().next().value;if(void 0===a)break;h.delete(a)}return d}async function k(a,b,c){let d=Array(a.length),e=0,f=Array.from({length:Math.min(b,a.length)},async()=>{for(;;){let b=e++;if(b>=a.length)return;d[b]=await c(a[b])}});return await Promise.all(f),d}async function l(a,c,d,e=0){let g;if(!(e>3)){try{g=await (0,b.readdir)(a,{withFileTypes:!0})}catch{return}for(let h of g){let g=(0,f.join)(a,h.name);if(h.isDirectory()){await l(g,c,d,e+1);continue}if(h.isFile()&&h.name.endsWith(".jsonl"))try{let a=await (0,b.stat)(g);a.mtimeMs>=c&&d.push({filePath:g,mtimeMs:a.mtimeMs})}catch{}}}}async function m(a=30){let c,d=Date.now()-24*a*36e5;try{c=await (0,b.readdir)(g,{withFileTypes:!0})}catch{return[]}let e=[];return await Promise.all(c.map(async a=>{a.isDirectory()&&await l((0,f.join)(g,String(a.name)),d,e)})),function(a){let b=[...a].sort((a,b)=>a.mtimeMs-b.mtimeMs),c=new Set,d=new Map;for(let a of b){let b=`${a.project}\0${a.sessionId}`,e=d.get(b);for(let c of(e?a.filePath.includes("/subagents/")||(e.filePath=a.filePath,e.mtimeMs=Math.max(e.mtimeMs,a.mtimeMs)):(e={filePath:a.filePath,mtimeMs:a.mtimeMs,sessionId:a.sessionId,project:a.project,projectPath:a.projectPath,startTime:0,endTime:0,turnCount:0,models:[],inputTokens:0,cacheReadTokens:0,cacheCreationTokens:0,outputTokens:0,byModel:{},usageRecords:[],invocations:[],toolCalls:{},toolErrors:0,sidechainTurns:0},d.set(b,e)),a.invocations))e.invocations.push(c);for(let[b,c]of Object.entries(a.toolCalls))e.toolCalls[b]=(e.toolCalls[b]??0)+c;e.toolErrors+=a.toolErrors;let f=new Set(e.models);for(let b of a.usageRecords){if(b.dedupKey){if(c.has(b.dedupKey))continue;c.add(b.dedupKey)}e.inputTokens+=b.input,e.cacheReadTokens+=b.cacheRead,e.cacheCreationTokens+=b.cacheCreation5m+b.cacheCreation1h,e.outputTokens+=b.output,e.turnCount+=1,b.isSidechain&&(e.sidechainTurns+=1),f.add(b.model);let a=e.byModel[b.model]??{inputTokens:0,cacheReadTokens:0,cacheCreation5mTokens:0,cacheCreation1hTokens:0,outputTokens:0};a.inputTokens+=b.input,a.cacheReadTokens+=b.cacheRead,a.cacheCreation5mTokens+=b.cacheCreation5m,a.cacheCreation1hTokens+=b.cacheCreation1h,a.outputTokens+=b.output,e.byModel[b.model]=a,b.ts>0&&((!e.startTime||b.ts<e.startTime)&&(e.startTime=b.ts),b.ts>e.endTime&&(e.endTime=b.ts))}e.models=[...f]}return[...d.values()]}(await k(e,16,a=>j(a.filePath,a.mtimeMs)))}a.s(["getAllTranscripts",0,m],32110);let n=a.i(28886).default.models,o={opus:"claude-opus-4-7",sonnet:"claude-sonnet-4-6",haiku:"claude-haiku-4-5"},p=new Set;function q(a,b){let c=function(a){if(!a||"<synthetic>"===a)return null;if(n[a])return n[a];if(o[a]&&n[o[a]])return n[o[a]];let b=a.replace(/\[[^\]]+\]$/,"");if(b!==a&&n[b])return n[b];let c=b.replace(/-\d{8}$/,"");return n[c]?n[c]:(p.has(a)||(p.add(a),console.warn(`[contextscope] no price found for model "${a}" — treating as $0. Add to lib/model-prices.json or alias.`)),null)}(a);return c?b.input*c.input+b.output*c.output+b.cacheRead*c.cache_read+b.cacheCreation5m*c.cache_creation_5m+b.cacheCreation1h*c.cache_creation_1h:0}function r(a){let b=a.inputTokens+a.cacheReadTokens+a.cacheCreationTokens+a.outputTokens;return{sessionId:a.sessionId,project:a.project,projectPath:a.projectPath,filePath:a.filePath,startTime:a.startTime,endTime:a.endTime,turnCount:a.turnCount,models:a.models,inputTokens:a.inputTokens,cacheReadTokens:a.cacheReadTokens,cacheCreationTokens:a.cacheCreationTokens,outputTokens:a.outputTokens,totalTokens:b,costUsd:function(a){let b=0;for(let[c,d]of Object.entries(a.byModel))b+=q(c,{input:d.inputTokens,output:d.outputTokens,cacheRead:d.cacheReadTokens,cacheCreation5m:d.cacheCreation5mTokens,cacheCreation1h:d.cacheCreation1hTokens});return b}(a),toolCalls:a.toolCalls,toolErrors:a.toolErrors,sidechainTurns:a.sidechainTurns}}async function s(a=30){return(await m(a)).filter(a=>a.turnCount>0).map(r).sort((a,b)=>b.totalTokens-a.totalTokens)}a.s(["costForUsage",0,q,"formatUsd",0,function(a){return a>=100?`$${a.toFixed(0)}`:a>=10?`$${a.toFixed(1)}`:a>=1||a>=.01?`$${a.toFixed(2)}`:a>0?"<$0.01":"$0"}],78110),a.s(["getSessions",0,s,"summarizeSessions",0,function(a){if(0===a.length)return{count:0,totalTokens:0,totalOutputTokens:0,totalInputPlusCache:0,totalCostUsd:0,cacheHitRatio:0,outputInputRatio:0,averageSessionTokens:0,medianSessionTokens:0,p95SessionTokens:0,longSessions:[],dailyBurn:[],byProject:[],totalToolCalls:{},totalToolErrors:0,totalSidechainTurns:0,totalTurns:0};let b=[...a].map(a=>a.totalTokens).sort((a,b)=>a-b),c=b.reduce((a,b)=>a+b,0),d=b[Math.floor(b.length/2)],e=b[Math.min(b.length-1,Math.floor(.95*b.length))],f=0,g=0,h=0,i=0;for(let b of a)f+=b.inputTokens,g+=b.cacheReadTokens,h+=b.cacheCreationTokens,i+=b.outputTokens;let j=f+g+h,k=j>0?g/j:0,l=j>0?i/j:0,m=a.filter(a=>a.totalTokens>=5e5),n=new Map;for(let b of a){let a=b.endTime||b.startTime;if(!a)continue;let c=new Date(a),d=`${c.getUTCFullYear()}-${String(c.getUTCMonth()+1).padStart(2,"0")}-${String(c.getUTCDate()).padStart(2,"0")}`,e=n.get(d)??{tokens:0,cost:0};e.tokens+=b.totalTokens,e.cost+=b.costUsd,n.set(d,e)}let o=[...n.entries()].map(([a,b])=>({date:a,tokens:b.tokens,cost:b.cost})).sort((a,b)=>a.date.localeCompare(b.date)),p=new Map,q=0;for(let b of a){q+=b.costUsd;let a=p.get(b.project)??{project:b.project,projectPath:b.projectPath,count:0,tokens:0,cost:0,turns:0};a.count+=1,a.tokens+=b.totalTokens,a.cost+=b.costUsd,a.turns+=b.turnCount,p.set(b.project,a)}let r=[...p.values()].sort((a,b)=>b.tokens-a.tokens),s={},t=0,u=0,v=0;for(let b of a){for(let[a,c]of Object.entries(b.toolCalls))s[a]=(s[a]??0)+c;t+=b.toolErrors,u+=b.sidechainTurns,v+=b.turnCount}return{count:a.length,totalTokens:c,totalOutputTokens:i,totalInputPlusCache:j,totalCostUsd:q,cacheHitRatio:k,outputInputRatio:l,averageSessionTokens:Math.round(c/a.length),medianSessionTokens:d,p95SessionTokens:e,longSessions:m,dailyBurn:o,byProject:r,totalToolCalls:s,totalToolErrors:t,totalSidechainTurns:u,totalTurns:v}}],21249)}];
1
+ module.exports=[64240,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},12714,(a,b,c)=>{b.exports=a.x("node:fs/promises",()=>require("node:fs/promises"))},60526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},790,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/client/app-dir/link.js <module evaluation>"))},84707,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/client/app-dir/link.js"))},97647,a=>{"use strict";a.i(790);var b=a.i(84707);a.n(b)},95936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return i},useLinkStatus:function(){return h.useLinkStatus}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(64240),g=a.r(7997),h=f._(a.r(97647));function i(a){let b=a.legacyBehavior,c="string"==typeof a.children||"number"==typeof a.children||"string"==typeof a.children?.type,d=a.children?.type?.$$typeof===Symbol.for("react.client.reference");return!b||c||d||(a.children?.type?.$$typeof===Symbol.for("react.lazy")?console.error("Using a Lazy Component as a direct child of `<Link legacyBehavior>` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's `<a>` tag."):console.error("Using a Server Component as a direct child of `<Link legacyBehavior>` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's `<a>` tag.")),(0,g.jsx)(h.default,{...a})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},84434,a=>{"use strict";var b=a.i(7997),c=a.i(95936);a.s(["MiniStat",0,function({label:a,value:c}){return(0,b.jsxs)("div",{className:"px-2 py-3 text-center",children:[(0,b.jsx)("div",{className:"text-sm font-semibold tabular-nums tracking-tight text-zinc-900 dark:text-zinc-50",children:c}),(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-widest text-zinc-500 mt-0.5",children:a})]})},"Receipt",0,function({label:a,action:d,pad:e="default",className:f="",children:g}){let h=!!(a||d);return(0,b.jsxs)("div",{className:`rounded-lg border border-zinc-200 dark:border-zinc-800 bg-white dark:bg-zinc-900 ${f}`,children:[h&&(0,b.jsxs)("div",{className:"flex items-baseline justify-between gap-3 px-4 pt-3 pb-2 border-b border-zinc-200 dark:border-zinc-800",children:[(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-widest text-zinc-500",children:a}),d&&(0,b.jsxs)(c.default,{href:d.href,className:"text-[10px] uppercase tracking-widest text-zinc-500 hover:text-zinc-900 dark:hover:text-zinc-100 transition-colors",children:[d.label," →"]})]}),(0,b.jsx)("div",{className:`${"none"===e?"":"tight"===e?"px-4 py-3":"loose"===e?"px-6 py-6 md:px-8 md:py-7":"px-4 py-4 md:px-6 md:py-5"} ${"none"===e?"overflow-x-auto":""}`,children:g})]})},"Stat",0,function({label:a,value:c,hint:d,align:e="left",size:f="lg"}){return(0,b.jsxs)("div",{className:"center"===e?"text-center":"right"===e?"text-right":"text-left",children:[(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-widest text-zinc-500",children:a}),(0,b.jsx)("div",{className:`${"xl"===f?"text-3xl":"lg"===f?"text-2xl":"text-xl"} font-semibold tabular-nums tracking-tight text-zinc-900 dark:text-zinc-50 mt-1`,children:c}),d&&(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-widest text-zinc-500 mt-0.5",children:d})]})}])},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},1457,(a,b,c)=>{b.exports=a.x("node:readline",()=>require("node:readline"))},28886,(a,b,c)=>{b.exports={_source:"https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json",_refreshedAt:"2026-05-30T19:17:56.836Z",_description:"Anthropic model prices in USD per token (input, output, cache_read, cache_creation 5min default). Refresh with `npm run refresh-prices`.",models:{"claude-3-7-sonnet-20250219":{input:3e-6,output:15e-6,cache_read:3e-7,cache_creation_5m:375e-8,cache_creation_1h:6e-6},"claude-3-haiku-20240307":{input:25e-8,output:125e-8,cache_read:3e-8,cache_creation_5m:3e-7,cache_creation_1h:6e-6},"claude-3-opus-20240229":{input:15e-6,output:75e-6,cache_read:15e-7,cache_creation_5m:1875e-8,cache_creation_1h:6e-6},"claude-4-opus-20250514":{input:15e-6,output:75e-6,cache_read:15e-7,cache_creation_5m:1875e-8,cache_creation_1h:375e-7},"claude-4-sonnet-20250514":{input:3e-6,output:15e-6,cache_read:3e-7,cache_creation_5m:375e-8,cache_creation_1h:75e-7},"claude-haiku-4-5":{input:1e-6,output:5e-6,cache_read:1e-7,cache_creation_5m:125e-8,cache_creation_1h:2e-6},"claude-haiku-4-5-20251001":{input:1e-6,output:5e-6,cache_read:1e-7,cache_creation_5m:125e-8,cache_creation_1h:2e-6},"claude-opus-4-1":{input:15e-6,output:75e-6,cache_read:15e-7,cache_creation_5m:1875e-8,cache_creation_1h:3e-5},"claude-opus-4-1-20250805":{input:15e-6,output:75e-6,cache_read:15e-7,cache_creation_5m:1875e-8,cache_creation_1h:3e-5},"claude-opus-4-20250514":{input:15e-6,output:75e-6,cache_read:15e-7,cache_creation_5m:1875e-8,cache_creation_1h:3e-5},"claude-opus-4-5":{input:5e-6,output:25e-6,cache_read:5e-7,cache_creation_5m:625e-8,cache_creation_1h:1e-5},"claude-opus-4-5-20251101":{input:5e-6,output:25e-6,cache_read:5e-7,cache_creation_5m:625e-8,cache_creation_1h:1e-5},"claude-opus-4-6":{input:5e-6,output:25e-6,cache_read:5e-7,cache_creation_5m:625e-8,cache_creation_1h:1e-5},"claude-opus-4-6-20260205":{input:5e-6,output:25e-6,cache_read:5e-7,cache_creation_5m:625e-8,cache_creation_1h:1e-5},"claude-opus-4-7":{input:5e-6,output:25e-6,cache_read:5e-7,cache_creation_5m:625e-8,cache_creation_1h:1e-5},"claude-opus-4-7-20260416":{input:5e-6,output:25e-6,cache_read:5e-7,cache_creation_5m:625e-8,cache_creation_1h:1e-5},"claude-opus-4-8":{input:5e-6,output:25e-6,cache_read:5e-7,cache_creation_5m:625e-8,cache_creation_1h:1e-5},"claude-sonnet-4-20250514":{input:3e-6,output:15e-6,cache_read:3e-7,cache_creation_5m:375e-8,cache_creation_1h:6e-6},"claude-sonnet-4-5":{input:3e-6,output:15e-6,cache_read:3e-7,cache_creation_5m:375e-8,cache_creation_1h:75e-7},"claude-sonnet-4-5-20250929":{input:3e-6,output:15e-6,cache_read:3e-7,cache_creation_5m:375e-8,cache_creation_1h:75e-7},"claude-sonnet-4-6":{input:3e-6,output:15e-6,cache_read:3e-7,cache_creation_5m:375e-8,cache_creation_1h:75e-7}}}},21249,32110,78110,a=>{"use strict";var b=a.i(12714),c=a.i(2157),d=a.i(1457),e=a.i(60526),f=a.i(50227);let g=(0,f.join)((0,e.homedir)(),".claude","projects"),h=new Map;async function i(a,b){let e=a.split("/"),f="subagents"===e[e.length-2],g=f?e[e.length-3]??"":e[e.length-1].replace(/\.jsonl$/,""),h=f?e[e.length-4]??"":e[e.length-2]??"",i={filePath:a,mtimeMs:b,sessionId:g,project:h,projectPath:h.replace(/^-/,"/").replaceAll("-","/"),startTime:0,endTime:0,turnCount:0,models:[],inputTokens:0,cacheReadTokens:0,cacheCreationTokens:0,outputTokens:0,byModel:{},usageRecords:[],invocations:[],toolCalls:{},toolErrors:0,sidechainTurns:0};return new Promise(b=>{let e=(0,d.createInterface)({input:(0,c.createReadStream)(a,{encoding:"utf8"}),crlfDelay:1/0});e.on("line",a=>{let b;if(!a||"{"!==a[0])return;let c=a.includes('"usage"'),d=a.includes('"tool_use"'),e=a.includes('"tool_result"');if(!c&&!d&&!e)return;try{b=JSON.parse(a)}catch{return}let f=b.message,g=b.timestamp,h="string"==typeof g?Date.parse(g):NaN,j=!0===b.isSidechain,k=f?.usage;if(k){let a="string"==typeof f?.id?f.id:"",c="string"==typeof b.requestId?b.requestId:"",d=a?`${a}:${c}`:"",e=Number(k.cache_creation_input_tokens)||0,g=k.cache_creation??null,l=0,m=0;if(g&&"object"==typeof g){let a=e-((l=Number(g.ephemeral_5m_input_tokens)||0)+(m=Number(g.ephemeral_1h_input_tokens)||0));a>0&&(l+=a)}else l=e;i.usageRecords.push({dedupKey:d,model:f?.model||"<synthetic>",ts:Number.isFinite(h)?h:0,input:Number(k.input_tokens)||0,cacheRead:Number(k.cache_read_input_tokens)||0,cacheCreation5m:l,cacheCreation1h:m,output:Number(k.output_tokens)||0,isSidechain:j})}if(Array.isArray(f?.content)){for(let a of f.content)if(a&&"object"==typeof a)if("tool_use"===a.type){let b="string"==typeof a.name?a.name:"(unknown)";i.toolCalls[b]=(i.toolCalls[b]??0)+1;let c=a.input;c&&("Skill"===b&&"string"==typeof c.skill?i.invocations.push({kind:"skill",name:c.skill,ts:Number.isFinite(h)?h:0}):"Agent"===b&&"string"==typeof c.subagent_type&&i.invocations.push({kind:"agent",name:c.subagent_type,ts:Number.isFinite(h)?h:0}))}else"tool_result"===a.type&&!0===a.is_error&&(i.toolErrors+=1)}}),e.on("close",()=>b(i)),e.on("error",()=>b(i))})}async function j(a,b){let c=h.get(a);if(c&&c.mtimeMs===b)return c;let d=await i(a,b);for(c&&h.delete(a),h.set(a,d);h.size>5e3;){let a=h.keys().next().value;if(void 0===a)break;h.delete(a)}return d}async function k(a,b,c){let d=Array(a.length),e=0,f=Array.from({length:Math.min(b,a.length)},async()=>{for(;;){let b=e++;if(b>=a.length)return;d[b]=await c(a[b])}});return await Promise.all(f),d}async function l(a,c,d,e=0){let g;if(!(e>3)){try{g=await (0,b.readdir)(a,{withFileTypes:!0})}catch{return}for(let h of g){let g=(0,f.join)(a,h.name);if(h.isDirectory()){await l(g,c,d,e+1);continue}if(h.isFile()&&h.name.endsWith(".jsonl"))try{let a=await (0,b.stat)(g);a.mtimeMs>=c&&d.push({filePath:g,mtimeMs:a.mtimeMs})}catch{}}}}async function m(a=30){let c,d=Date.now()-24*a*36e5;try{c=await (0,b.readdir)(g,{withFileTypes:!0})}catch{return[]}let e=[];return await Promise.all(c.map(async a=>{a.isDirectory()&&await l((0,f.join)(g,String(a.name)),d,e)})),function(a){let b=[...a].sort((a,b)=>a.mtimeMs-b.mtimeMs),c=new Set,d=new Map;for(let a of b){let b=`${a.project}\0${a.sessionId}`,e=d.get(b);for(let c of(e?a.filePath.includes("/subagents/")||(e.filePath=a.filePath,e.mtimeMs=Math.max(e.mtimeMs,a.mtimeMs)):(e={filePath:a.filePath,mtimeMs:a.mtimeMs,sessionId:a.sessionId,project:a.project,projectPath:a.projectPath,startTime:0,endTime:0,turnCount:0,models:[],inputTokens:0,cacheReadTokens:0,cacheCreationTokens:0,outputTokens:0,byModel:{},usageRecords:[],invocations:[],toolCalls:{},toolErrors:0,sidechainTurns:0},d.set(b,e)),a.invocations))e.invocations.push(c);for(let[b,c]of Object.entries(a.toolCalls))e.toolCalls[b]=(e.toolCalls[b]??0)+c;e.toolErrors+=a.toolErrors;let f=new Set(e.models);for(let b of a.usageRecords){if(b.dedupKey){if(c.has(b.dedupKey))continue;c.add(b.dedupKey)}e.inputTokens+=b.input,e.cacheReadTokens+=b.cacheRead,e.cacheCreationTokens+=b.cacheCreation5m+b.cacheCreation1h,e.outputTokens+=b.output,e.turnCount+=1,b.isSidechain&&(e.sidechainTurns+=1),f.add(b.model);let a=e.byModel[b.model]??{inputTokens:0,cacheReadTokens:0,cacheCreation5mTokens:0,cacheCreation1hTokens:0,outputTokens:0};a.inputTokens+=b.input,a.cacheReadTokens+=b.cacheRead,a.cacheCreation5mTokens+=b.cacheCreation5m,a.cacheCreation1hTokens+=b.cacheCreation1h,a.outputTokens+=b.output,e.byModel[b.model]=a,b.ts>0&&((!e.startTime||b.ts<e.startTime)&&(e.startTime=b.ts),b.ts>e.endTime&&(e.endTime=b.ts))}e.models=[...f]}return[...d.values()]}(await k(e,16,a=>j(a.filePath,a.mtimeMs)))}a.s(["getAllTranscripts",0,m],32110);let n=a.i(28886).default.models,o={opus:"claude-opus-4-7",sonnet:"claude-sonnet-4-6",haiku:"claude-haiku-4-5"},p=new Set;function q(a,b){let c=function(a){if(!a||"<synthetic>"===a)return null;if(n[a])return n[a];if(o[a]&&n[o[a]])return n[o[a]];let b=a.replace(/\[[^\]]+\]$/,"");if(b!==a&&n[b])return n[b];let c=b.replace(/-\d{8}$/,"");return n[c]?n[c]:(p.has(a)||(p.add(a),console.warn(`[contextscope] no price found for model "${a}" — treating as $0. Add to lib/model-prices.json or alias.`)),null)}(a);return c?b.input*c.input+b.output*c.output+b.cacheRead*c.cache_read+b.cacheCreation5m*c.cache_creation_5m+b.cacheCreation1h*c.cache_creation_1h:0}function r(a){let b=a.inputTokens+a.cacheReadTokens+a.cacheCreationTokens+a.outputTokens;return{sessionId:a.sessionId,project:a.project,projectPath:a.projectPath,filePath:a.filePath,startTime:a.startTime,endTime:a.endTime,turnCount:a.turnCount,models:a.models,inputTokens:a.inputTokens,cacheReadTokens:a.cacheReadTokens,cacheCreationTokens:a.cacheCreationTokens,outputTokens:a.outputTokens,totalTokens:b,costUsd:function(a){let b=0;for(let[c,d]of Object.entries(a.byModel))b+=q(c,{input:d.inputTokens,output:d.outputTokens,cacheRead:d.cacheReadTokens,cacheCreation5m:d.cacheCreation5mTokens,cacheCreation1h:d.cacheCreation1hTokens});return b}(a),toolCalls:a.toolCalls,toolErrors:a.toolErrors,sidechainTurns:a.sidechainTurns}}async function s(a=30){return(await m(a)).filter(a=>a.turnCount>0).map(r).sort((a,b)=>b.totalTokens-a.totalTokens)}a.s(["costForUsage",0,q,"formatUsd",0,function(a){return a>=100?`$${a.toFixed(0)}`:a>=10?`$${a.toFixed(1)}`:a>=1||a>=.01?`$${a.toFixed(2)}`:a>0?"<$0.01":"$0"}],78110),a.s(["getSessions",0,s,"summarizeSessions",0,function(a){if(0===a.length)return{count:0,totalTokens:0,totalOutputTokens:0,totalInputPlusCache:0,totalCostUsd:0,cacheHitRatio:0,outputInputRatio:0,averageSessionTokens:0,medianSessionTokens:0,p95SessionTokens:0,longSessions:[],dailyBurn:[],byProject:[],totalToolCalls:{},totalToolErrors:0,totalSidechainTurns:0,totalTurns:0};let b=[...a].map(a=>a.totalTokens).sort((a,b)=>a-b),c=b.reduce((a,b)=>a+b,0),d=b[Math.floor(b.length/2)],e=b[Math.min(b.length-1,Math.floor(.95*b.length))],f=0,g=0,h=0,i=0;for(let b of a)f+=b.inputTokens,g+=b.cacheReadTokens,h+=b.cacheCreationTokens,i+=b.outputTokens;let j=f+g+h,k=j>0?g/j:0,l=j>0?i/j:0,m=a.filter(a=>a.totalTokens>=5e5),n=new Map;for(let b of a){let a=b.endTime||b.startTime;if(!a)continue;let c=new Date(a),d=`${c.getUTCFullYear()}-${String(c.getUTCMonth()+1).padStart(2,"0")}-${String(c.getUTCDate()).padStart(2,"0")}`,e=n.get(d)??{tokens:0,cost:0};e.tokens+=b.totalTokens,e.cost+=b.costUsd,n.set(d,e)}let o=[...n.entries()].map(([a,b])=>({date:a,tokens:b.tokens,cost:b.cost})).sort((a,b)=>a.date.localeCompare(b.date)),p=new Map,q=0;for(let b of a){q+=b.costUsd;let a=p.get(b.project)??{project:b.project,projectPath:b.projectPath,count:0,tokens:0,cost:0,turns:0};a.count+=1,a.tokens+=b.totalTokens,a.cost+=b.costUsd,a.turns+=b.turnCount,p.set(b.project,a)}let r=[...p.values()].sort((a,b)=>b.tokens-a.tokens),s={},t=0,u=0,v=0;for(let b of a){for(let[a,c]of Object.entries(b.toolCalls))s[a]=(s[a]??0)+c;t+=b.toolErrors,u+=b.sidechainTurns,v+=b.turnCount}return{count:a.length,totalTokens:c,totalOutputTokens:i,totalInputPlusCache:j,totalCostUsd:q,cacheHitRatio:k,outputInputRatio:l,averageSessionTokens:Math.round(c/a.length),medianSessionTokens:d,p95SessionTokens:e,longSessions:m,dailyBurn:o,byProject:r,totalToolCalls:s,totalToolErrors:t,totalSidechainTurns:u,totalTurns:v}}],21249)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__0p2sxww._.js.map
@@ -7,9 +7,9 @@ globalThis.__BUILD_MANIFEST = {
7
7
  "static/chunks/03~yq9q893hmn.js"
8
8
  ],
9
9
  "lowPriorityFiles": [
10
- "static/uI28k7hBjH7vKGE3jdIaM/_buildManifest.js",
11
- "static/uI28k7hBjH7vKGE3jdIaM/_ssgManifest.js",
12
- "static/uI28k7hBjH7vKGE3jdIaM/_clientMiddlewareManifest.js"
10
+ "static/hTCV3lK0B2IRaMNjyuu-5/_buildManifest.js",
11
+ "static/hTCV3lK0B2IRaMNjyuu-5/_ssgManifest.js",
12
+ "static/hTCV3lK0B2IRaMNjyuu-5/_clientMiddlewareManifest.js"
13
13
  ],
14
14
  "rootMainFiles": [
15
15
  "static/chunks/00gq-v0e07i1q.js",
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en" class="h-full antialiased"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/0pb14~6.l8.f9.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/00gq-v0e07i1q.js"/><script src="/_next/static/chunks/14hcmzto5g-b7.js" async=""></script><script src="/_next/static/chunks/0nxgnfb4qc8my.js" async=""></script><script src="/_next/static/chunks/07lhk_q6pmm3r.js" async=""></script><script src="/_next/static/chunks/turbopack-0wzfw6l~krt~8.js" async=""></script><script src="/_next/static/chunks/17hugzvnj-r7p.js" async=""></script><script src="/_next/static/chunks/0d3shmwh5_nmn.js" async=""></script><title>404: This page could not be found.</title><meta name="robots" content="noindex"/><title>contextscope</title><meta name="description" content="Local dashboard auditing Claude Code&#x27;s per-turn token context — skills, agents, commands, CLAUDE.md, MEMORY.md, hooks, MCP, and session analytics."/><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body class="min-h-full flex flex-col font-mono bg-zinc-50 dark:bg-zinc-950 text-zinc-900 dark:text-zinc-100"><div hidden=""><!--$--><!--/$--></div><nav class="border-b border-zinc-200 dark:border-zinc-800 bg-zinc-50 dark:bg-zinc-950 sticky top-0 z-10"><div class="max-w-6xl mx-auto px-6 h-12 flex items-center gap-8 text-sm"><a class="font-semibold tracking-tight text-zinc-500 hover:text-zinc-900 dark:hover:text-zinc-100 transition-colors" href="/">contextscope</a><div class="flex items-center gap-5"><a class="text-zinc-500 hover:text-zinc-900 dark:hover:text-zinc-100 transition-colors" href="/items">items</a><a class="text-zinc-500 hover:text-zinc-900 dark:hover:text-zinc-100 transition-colors" href="/sessions">sessions</a><a class="text-zinc-500 hover:text-zinc-900 dark:hover:text-zinc-100 transition-colors" href="/context">context</a></div></div></nav><!--$--><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><!--/$--><script src="/_next/static/chunks/00gq-v0e07i1q.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:I[39756,[\"/_next/static/chunks/17hugzvnj-r7p.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"LoadingBoundaryProvider\"]\n2:\"$Sreact.fragment\"\n3:I[54858,[\"/_next/static/chunks/17hugzvnj-r7p.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"Nav\"]\n4:I[39756,[\"/_next/static/chunks/17hugzvnj-r7p.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n5:I[37457,[\"/_next/static/chunks/17hugzvnj-r7p.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\na:I[68027,[\"/_next/static/chunks/17hugzvnj-r7p.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0pb14~6.l8.f9.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",20],[[\"$\",\"$L1\",null,{\"loading\":[[\"$\",\"main\",\"l\",{\"className\":\"flex-1 font-mono bg-zinc-50 dark:bg-zinc-950\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-6xl mx-auto px-6 py-10\",\"children\":[[\"$\",\"header\",null,{\"className\":\"mb-8 flex items-baseline justify-between\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"div\",null,{\"className\":\"h-6 w-40 bg-zinc-200 dark:bg-zinc-800 rounded animate-pulse\"}],[\"$\",\"div\",null,{\"className\":\"h-3 w-36 bg-zinc-200/60 dark:bg-zinc-800/60 rounded animate-pulse mt-2\"}]]}],[\"$\",\"div\",null,{\"className\":\"h-3 w-48 bg-zinc-200/60 dark:bg-zinc-800/60 rounded animate-pulse\"}]]}],[\"$\",\"section\",null,{\"className\":\"flex justify-center mb-6\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full max-w-md h-64 rounded-lg border border-zinc-200 dark:border-zinc-800 bg-white dark:bg-zinc-900 animate-pulse\"}]}],[\"$\",\"section\",null,{\"className\":\"grid grid-cols-1 md:grid-cols-3 gap-3\",\"children\":[[\"$\",\"div\",\"0\",{\"className\":\"h-72 rounded-lg border border-zinc-200 dark:border-zinc-800 bg-white dark:bg-zinc-900 animate-pulse\"}],[\"$\",\"div\",\"1\",{\"className\":\"h-72 rounded-lg border border-zinc-200 dark:border-zinc-800 bg-white dark:bg-zinc-900 animate-pulse\"}],[\"$\",\"div\",\"2\",{\"className\":\"h-72 rounded-lg border border-zinc-200 dark:border-zinc-800 bg-white dark:bg-zinc-900 animate-pulse\"}]]}],[\"$\",\"p\",null,{\"className\":\"text-[10px] uppercase tracking-widest text-zinc-500 mt-6\",\"children\":\"scanning ~/.claude · first load cold; subsequent cached by file mtime\"}]]}]}],[],[]],\"children\":[\"$\",\"$2\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0pb14~6.l8.f9.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/17hugzvnj-r7p.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"h-full antialiased\",\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-full flex flex-col font-mono bg-zinc-50 dark:bg-zinc-950 text-zinc-900 dark:text-zinc-100\",\"children\":[[\"$\",\"$L3\",null,{}],[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]]}]}],{\"children\":[[\"$\",\"$2\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$2\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:props:children:1:props:children:props:children:1:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:props:children:1:props:children:props:children:1:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],\"$L6\"]}]}]],null,\"$L7\"]}],{},null,false,null]},null,false,\"$@8\"]},null,false,null],\"$L9\",false]],\"m\":\"$undefined\",\"G\":[\"$a\",[\"$Lb\"]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"uI28k7hBjH7vKGE3jdIaM\"}\n"])</script><script>self.__next_f.push([1,"c:I[97367,[\"/_next/static/chunks/17hugzvnj-r7p.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"OutletBoundary\"]\nd:\"$Sreact.suspense\"\n10:I[97367,[\"/_next/static/chunks/17hugzvnj-r7p.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ViewportBoundary\"]\n12:I[97367,[\"/_next/static/chunks/17hugzvnj-r7p.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"MetadataBoundary\"]\n6:[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:props:children:1:props:children:props:children:1:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:props:children:1:props:children:props:children:1:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]\n7:[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$d\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@e\"}]}]\nf:[]\n8:\"$Wf\"\n9:[\"$\",\"$2\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L10\",null,{\"children\":\"$L11\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L12\",null,{\"children\":[\"$\",\"$d\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L13\"}]}]}],null]}]\nb:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0pb14~6.l8.f9.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n"])</script><script>self.__next_f.push([1,"11:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"14:I[27201,[\"/_next/static/chunks/17hugzvnj-r7p.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"IconMark\"]\ne:null\n13:[[\"$\",\"title\",\"0\",{\"children\":\"contextscope\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Local dashboard auditing Claude Code's per-turn token context — skills, agents, commands, CLAUDE.md, MEMORY.md, hooks, MCP, and session analytics.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$L14\",\"3\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><html lang="en" class="h-full antialiased"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/0pb14~6.l8.f9.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/00gq-v0e07i1q.js"/><script src="/_next/static/chunks/14hcmzto5g-b7.js" async=""></script><script src="/_next/static/chunks/0nxgnfb4qc8my.js" async=""></script><script src="/_next/static/chunks/07lhk_q6pmm3r.js" async=""></script><script src="/_next/static/chunks/turbopack-0wzfw6l~krt~8.js" async=""></script><script src="/_next/static/chunks/17hugzvnj-r7p.js" async=""></script><script src="/_next/static/chunks/0d3shmwh5_nmn.js" async=""></script><title>404: This page could not be found.</title><meta name="robots" content="noindex"/><title>contextscope</title><meta name="description" content="Local dashboard auditing Claude Code&#x27;s per-turn token context — skills, agents, commands, CLAUDE.md, MEMORY.md, hooks, MCP, and session analytics."/><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body class="min-h-full flex flex-col font-mono bg-zinc-50 dark:bg-zinc-950 text-zinc-900 dark:text-zinc-100"><div hidden=""><!--$--><!--/$--></div><nav class="border-b border-zinc-200 dark:border-zinc-800 bg-zinc-50 dark:bg-zinc-950 sticky top-0 z-10"><div class="max-w-6xl mx-auto px-6 h-12 flex items-center gap-8 text-sm"><a class="font-semibold tracking-tight text-zinc-500 hover:text-zinc-900 dark:hover:text-zinc-100 transition-colors" href="/">contextscope</a><div class="flex items-center gap-5"><a class="text-zinc-500 hover:text-zinc-900 dark:hover:text-zinc-100 transition-colors" href="/items">items</a><a class="text-zinc-500 hover:text-zinc-900 dark:hover:text-zinc-100 transition-colors" href="/sessions">sessions</a><a class="text-zinc-500 hover:text-zinc-900 dark:hover:text-zinc-100 transition-colors" href="/context">context</a></div></div></nav><!--$--><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><!--/$--><script src="/_next/static/chunks/00gq-v0e07i1q.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:I[39756,[\"/_next/static/chunks/17hugzvnj-r7p.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"LoadingBoundaryProvider\"]\n2:\"$Sreact.fragment\"\n3:I[54858,[\"/_next/static/chunks/17hugzvnj-r7p.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"Nav\"]\n4:I[39756,[\"/_next/static/chunks/17hugzvnj-r7p.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n5:I[37457,[\"/_next/static/chunks/17hugzvnj-r7p.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\na:I[68027,[\"/_next/static/chunks/17hugzvnj-r7p.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0pb14~6.l8.f9.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",20],[[\"$\",\"$L1\",null,{\"loading\":[[\"$\",\"main\",\"l\",{\"className\":\"flex-1 font-mono bg-zinc-50 dark:bg-zinc-950\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-6xl mx-auto px-6 py-10\",\"children\":[[\"$\",\"header\",null,{\"className\":\"mb-8 flex items-baseline justify-between\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"div\",null,{\"className\":\"h-6 w-40 bg-zinc-200 dark:bg-zinc-800 rounded animate-pulse\"}],[\"$\",\"div\",null,{\"className\":\"h-3 w-36 bg-zinc-200/60 dark:bg-zinc-800/60 rounded animate-pulse mt-2\"}]]}],[\"$\",\"div\",null,{\"className\":\"h-3 w-48 bg-zinc-200/60 dark:bg-zinc-800/60 rounded animate-pulse\"}]]}],[\"$\",\"section\",null,{\"className\":\"flex justify-center mb-6\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full max-w-md h-64 rounded-lg border border-zinc-200 dark:border-zinc-800 bg-white dark:bg-zinc-900 animate-pulse\"}]}],[\"$\",\"section\",null,{\"className\":\"grid grid-cols-1 md:grid-cols-3 gap-3\",\"children\":[[\"$\",\"div\",\"0\",{\"className\":\"h-72 rounded-lg border border-zinc-200 dark:border-zinc-800 bg-white dark:bg-zinc-900 animate-pulse\"}],[\"$\",\"div\",\"1\",{\"className\":\"h-72 rounded-lg border border-zinc-200 dark:border-zinc-800 bg-white dark:bg-zinc-900 animate-pulse\"}],[\"$\",\"div\",\"2\",{\"className\":\"h-72 rounded-lg border border-zinc-200 dark:border-zinc-800 bg-white dark:bg-zinc-900 animate-pulse\"}]]}],[\"$\",\"p\",null,{\"className\":\"text-[10px] uppercase tracking-widest text-zinc-500 mt-6\",\"children\":\"scanning ~/.claude · first load cold; subsequent cached by file mtime\"}]]}]}],[],[]],\"children\":[\"$\",\"$2\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0pb14~6.l8.f9.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/17hugzvnj-r7p.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"h-full antialiased\",\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-full flex flex-col font-mono bg-zinc-50 dark:bg-zinc-950 text-zinc-900 dark:text-zinc-100\",\"children\":[[\"$\",\"$L3\",null,{}],[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]]}]}],{\"children\":[[\"$\",\"$2\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$2\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:props:children:1:props:children:props:children:1:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:props:children:1:props:children:props:children:1:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],\"$L6\"]}]}]],null,\"$L7\"]}],{},null,false,null]},null,false,\"$@8\"]},null,false,null],\"$L9\",false]],\"m\":\"$undefined\",\"G\":[\"$a\",[\"$Lb\"]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"hTCV3lK0B2IRaMNjyuu-5\"}\n"])</script><script>self.__next_f.push([1,"c:I[97367,[\"/_next/static/chunks/17hugzvnj-r7p.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"OutletBoundary\"]\nd:\"$Sreact.suspense\"\n10:I[97367,[\"/_next/static/chunks/17hugzvnj-r7p.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ViewportBoundary\"]\n12:I[97367,[\"/_next/static/chunks/17hugzvnj-r7p.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"MetadataBoundary\"]\n6:[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:props:children:1:props:children:props:children:1:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:props:children:1:props:children:props:children:1:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]\n7:[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$d\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@e\"}]}]\nf:[]\n8:\"$Wf\"\n9:[\"$\",\"$2\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L10\",null,{\"children\":\"$L11\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L12\",null,{\"children\":[\"$\",\"$d\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L13\"}]}]}],null]}]\nb:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0pb14~6.l8.f9.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n"])</script><script>self.__next_f.push([1,"11:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"14:I[27201,[\"/_next/static/chunks/17hugzvnj-r7p.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"IconMark\"]\ne:null\n13:[[\"$\",\"title\",\"0\",{\"children\":\"contextscope\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Local dashboard auditing Claude Code's per-turn token context — skills, agents, commands, CLAUDE.md, MEMORY.md, hooks, MCP, and session analytics.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$L14\",\"3\",{}]]\n"])</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/00gq-v0e07i1q.js"/><script src="/_next/static/chunks/14hcmzto5g-b7.js" async=""></script><script src="/_next/static/chunks/0nxgnfb4qc8my.js" async=""></script><script src="/_next/static/chunks/07lhk_q6pmm3r.js" async=""></script><script src="/_next/static/chunks/turbopack-0wzfw6l~krt~8.js" async=""></script><script src="/_next/static/chunks/01xlw8hd842-c.js" async=""></script><script src="/_next/static/chunks/0d3shmwh5_nmn.js" async=""></script><title>500: This page couldn’t load</title><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/00gq-v0e07i1q.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n4:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ViewportBoundary\"]\na:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"MetadataBoundary\"]\nc:I[68027,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"uI28k7hBjH7vKGE3jdIaM\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"e:I[27201,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"IconMark\"]\n6:null\nb:[[\"$\",\"link\",\"0\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Le\",\"1\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/00gq-v0e07i1q.js"/><script src="/_next/static/chunks/14hcmzto5g-b7.js" async=""></script><script src="/_next/static/chunks/0nxgnfb4qc8my.js" async=""></script><script src="/_next/static/chunks/07lhk_q6pmm3r.js" async=""></script><script src="/_next/static/chunks/turbopack-0wzfw6l~krt~8.js" async=""></script><script src="/_next/static/chunks/01xlw8hd842-c.js" async=""></script><script src="/_next/static/chunks/0d3shmwh5_nmn.js" async=""></script><title>500: This page couldn’t load</title><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/00gq-v0e07i1q.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n4:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ViewportBoundary\"]\na:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"MetadataBoundary\"]\nc:I[68027,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"hTCV3lK0B2IRaMNjyuu-5\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"e:I[27201,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"IconMark\"]\n6:null\nb:[[\"$\",\"link\",\"0\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Le\",\"1\",{}]]\n"])</script></body></html>
@@ -1,25 +1,34 @@
1
1
  # contextscope
2
2
 
3
- A local dashboard that audits the **per-turn token context** Claude Code loads on every conversation turn — and gives you toggle-based control to disable what you don't use.
3
+ A CLI + local dashboard that audits the **per-turn token context** Claude Code loads on every conversation turn — and gives you toggle-based control to disable what you don't use.
4
4
 
5
5
  `/stats`, `/cost`, and `ccusage` show **aggregate** spend. None of them break down what's *inside* the per-turn baseline or let you act on the audit. At 1M-context Opus, every unused skill, agent, command, or hook output that lives in the available-list block is paying full cache-read cost on every turn — for a heavy user, that's hundreds of millions of tokens per month.
6
6
 
7
- ## Install + run
7
+ ## Quick look (CLI)
8
8
 
9
9
  ```bash
10
10
  npx @mbeato/contextscope
11
11
  ```
12
12
 
13
- Picks a free port starting at 3939, opens your browser, audits in real time.
13
+ Prints a 30-day audit to stdout in ~3s. Per-turn baseline, 30-day burn + API-equivalent cost, top disable candidates, context overhead. No browser, no server.
14
+
15
+ ## Full dashboard (browser)
16
+
17
+ ```bash
18
+ npx @mbeato/contextscope ui
19
+ ```
20
+
21
+ Picks a free port starting at 3939, opens your browser. Adds: toggle-to-disable buttons, per-session drilldown, daily burn graph, by-project breakdown, hook + MCP detail.
14
22
 
15
23
  Or install globally so the `contextscope` command stays around:
16
24
 
17
25
  ```bash
18
26
  npm install -g @mbeato/contextscope
19
- contextscope
27
+ contextscope # quick CLI summary
28
+ contextscope ui # dashboard
20
29
  ```
21
30
 
22
- Flags:
31
+ Flags (ui only):
23
32
  - `--port <n>` — pin a port
24
33
  - `--no-open` — don't auto-open the browser
25
34
  - `--help` — full usage
@@ -90,7 +99,8 @@ Requires Node 18+. macOS/Linux paths; Windows untested but uses `os.homedir()` t
90
99
  - **`lib/mcp.ts`** — reads `.claude.json` mcpServers, parses PTC's downstream config.yaml
91
100
  - **`app/actions.ts`** — server actions for toggles + bulk disable; backs up settings before write
92
101
  - **`app/page.tsx`** — single server-rendered page; filesystem re-read on every load (cached internally)
93
- - **`bin/cli.js`** — CLI entry: spawns Next.js standalone server, opens browser, ships subcommands
102
+ - **`bin/cli.js`** — CLI entry: routes to `summary.js` (default) or launches the Next.js dashboard (`ui` subcommand)
103
+ - **`bin/summary.js`** — pure-JS CLI summary; mirrors the lib/* logic without Next.js for the fast first-impression printout
94
104
 
95
105
  ## License
96
106
 
@@ -3,11 +3,12 @@
3
3
  * contextscope CLI
4
4
  *
5
5
  * Subcommands:
6
- * (default) spawn the dashboard server + open browser
6
+ * (default) print 30-day summary to stdout (fast, no browser)
7
+ * ui spawn the dashboard server + open browser
7
8
  * install-plugin install the /usage slash command for Claude Code
8
9
  * uninstall-plugin remove the slash command
9
10
  *
10
- * Flags (default cmd):
11
+ * Flags (ui cmd):
11
12
  * --port <n> pin a port (errors if taken)
12
13
  * --no-open skip auto-opening the browser
13
14
  * --help show this
@@ -35,14 +36,15 @@ const subcommand = args[0] && !args[0].startsWith("-") ? args[0] : null;
35
36
  if (args.includes("--help") || args.includes("-h")) {
36
37
  process.stdout.write(
37
38
  [
38
- "contextscope — local dashboard for Claude Code per-turn context audit",
39
+ "contextscope — Claude Code per-turn context audit",
39
40
  "",
40
41
  "Usage:",
41
- " contextscope start the dashboard (default)",
42
+ " contextscope print 30-day summary (fast, no browser)",
43
+ " contextscope ui launch the dashboard (toggles + sessions + by-project)",
42
44
  " contextscope install-plugin install the /usage slash command",
43
45
  " contextscope uninstall-plugin remove the /usage slash command",
44
46
  "",
45
- "Flags (default cmd):",
47
+ "Flags (ui cmd):",
46
48
  " --port <n> pin a port (default: find first free starting at 3939)",
47
49
  " --no-open do not open the browser automatically",
48
50
  " --help show this message",
@@ -75,6 +77,20 @@ if (subcommand === "uninstall-plugin") {
75
77
  process.exit(0);
76
78
  }
77
79
 
80
+ // Default: print summary. `ui` subcommand: launch dashboard.
81
+ if (subcommand !== "ui") {
82
+ const { printSummary } = await import("./summary.js");
83
+ try {
84
+ await printSummary({ days: 30 });
85
+ process.exit(0);
86
+ } catch (err) {
87
+ process.stderr.write(`fatal: ${err?.message ?? err}\n`);
88
+ process.exit(1);
89
+ }
90
+ }
91
+
92
+ // ── UI mode below ──────────────────────────────────────────────────────────
93
+
78
94
  const pinnedPortIdx = args.indexOf("--port");
79
95
  const pinnedPort = pinnedPortIdx >= 0 ? Number(args[pinnedPortIdx + 1]) : null;
80
96
  const noOpen = args.includes("--no-open");
@@ -134,7 +150,7 @@ async function findPort() {
134
150
  process.exit(1);
135
151
  }
136
152
 
137
- async function main() {
153
+ async function launchUi() {
138
154
  await ensureStaticAssets();
139
155
  const port = await findPort();
140
156
  const url = `http://localhost:${port}`;
@@ -157,7 +173,6 @@ async function main() {
157
173
  if (!noOpen) {
158
174
  const { default: open } = await import("open");
159
175
  (async () => {
160
- // Probe readiness with a path that doesn't trigger the scans.
161
176
  let ready = false;
162
177
  for (let i = 0; i < 50; i++) {
163
178
  try {
@@ -195,7 +210,7 @@ async function main() {
195
210
  child.on("exit", (code) => process.exit(code ?? 0));
196
211
  }
197
212
 
198
- main().catch((err) => {
213
+ launchUi().catch((err) => {
199
214
  process.stderr.write(`fatal: ${err?.message ?? err}\n`);
200
215
  process.exit(1);
201
216
  });