tokentrace 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -0
- package/.next/app-build-manifest.json +167 -0
- package/.next/app-path-routes-manifest.json +22 -0
- package/.next/build-manifest.json +33 -0
- package/.next/export-marker.json +6 -0
- package/.next/images-manifest.json +58 -0
- package/.next/next-minimal-server.js.nft.json +1 -0
- package/.next/next-server.js.nft.json +1 -0
- package/.next/package.json +1 -0
- package/.next/prerender-manifest.json +37 -0
- package/.next/react-loadable-manifest.json +1 -0
- package/.next/required-server-files.json +323 -0
- package/.next/routes-manifest.json +119 -0
- package/.next/server/app/_not-found/page.js +2 -0
- package/.next/server/app/_not-found/page.js.nft.json +1 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
- package/.next/server/app/_not-found.html +1 -0
- package/.next/server/app/_not-found.meta +8 -0
- package/.next/server/app/_not-found.rsc +37 -0
- package/.next/server/app/api/analytics/route.js +1 -0
- package/.next/server/app/api/analytics/route.js.nft.json +1 -0
- package/.next/server/app/api/analytics/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/data/route.js +151 -0
- package/.next/server/app/api/data/route.js.nft.json +1 -0
- package/.next/server/app/api/data/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/export/route.js +1 -0
- package/.next/server/app/api/export/route.js.nft.json +1 -0
- package/.next/server/app/api/export/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/files/route.js +1 -0
- package/.next/server/app/api/files/route.js.nft.json +1 -0
- package/.next/server/app/api/files/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/prices/route.js +151 -0
- package/.next/server/app/api/prices/route.js.nft.json +1 -0
- package/.next/server/app/api/prices/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/scan/route.js +144 -0
- package/.next/server/app/api/scan/route.js.nft.json +1 -0
- package/.next/server/app/api/scan/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/settings/route.js +128 -0
- package/.next/server/app/api/settings/route.js.nft.json +1 -0
- package/.next/server/app/api/settings/route_client-reference-manifest.js +1 -0
- package/.next/server/app/debug/page.js +2 -0
- package/.next/server/app/debug/page.js.nft.json +1 -0
- package/.next/server/app/debug/page_client-reference-manifest.js +1 -0
- package/.next/server/app/diagnostics/page.js +2 -0
- package/.next/server/app/diagnostics/page.js.nft.json +1 -0
- package/.next/server/app/diagnostics/page_client-reference-manifest.js +1 -0
- package/.next/server/app/discovery/page.js +2 -0
- package/.next/server/app/discovery/page.js.nft.json +1 -0
- package/.next/server/app/discovery/page_client-reference-manifest.js +1 -0
- package/.next/server/app/models/page.js +2 -0
- package/.next/server/app/models/page.js.nft.json +1 -0
- package/.next/server/app/models/page_client-reference-manifest.js +1 -0
- package/.next/server/app/optimisation/page.js +2 -0
- package/.next/server/app/optimisation/page.js.nft.json +1 -0
- package/.next/server/app/optimisation/page_client-reference-manifest.js +1 -0
- package/.next/server/app/page.js +2 -0
- package/.next/server/app/page.js.nft.json +1 -0
- package/.next/server/app/page_client-reference-manifest.js +1 -0
- package/.next/server/app/parser-debug/page.js +2 -0
- package/.next/server/app/parser-debug/page.js.nft.json +1 -0
- package/.next/server/app/parser-debug/page_client-reference-manifest.js +1 -0
- package/.next/server/app/pricing/page.js +152 -0
- package/.next/server/app/pricing/page.js.nft.json +1 -0
- package/.next/server/app/pricing/page_client-reference-manifest.js +1 -0
- package/.next/server/app/projects/page.js +2 -0
- package/.next/server/app/projects/page.js.nft.json +1 -0
- package/.next/server/app/projects/page_client-reference-manifest.js +1 -0
- package/.next/server/app/sessions/page.js +2 -0
- package/.next/server/app/sessions/page.js.nft.json +1 -0
- package/.next/server/app/sessions/page_client-reference-manifest.js +1 -0
- package/.next/server/app/settings/page.js +129 -0
- package/.next/server/app/settings/page.js.nft.json +1 -0
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -0
- package/.next/server/app/tools/page.js +2 -0
- package/.next/server/app/tools/page.js.nft.json +1 -0
- package/.next/server/app/tools/page_client-reference-manifest.js +1 -0
- package/.next/server/app-paths-manifest.json +22 -0
- package/.next/server/chunks/123.js +9 -0
- package/.next/server/chunks/153.js +1 -0
- package/.next/server/chunks/237.js +13 -0
- package/.next/server/chunks/331.js +22 -0
- package/.next/server/chunks/366.js +1 -0
- package/.next/server/chunks/444.js +267 -0
- package/.next/server/chunks/611.js +6 -0
- package/.next/server/chunks/692.js +1 -0
- package/.next/server/chunks/779.js +1 -0
- package/.next/server/chunks/815.js +1 -0
- package/.next/server/chunks/868.js +1 -0
- package/.next/server/functions-config-manifest.json +4 -0
- package/.next/server/interception-route-rewrite-manifest.js +1 -0
- package/.next/server/middleware-build-manifest.js +1 -0
- package/.next/server/middleware-manifest.json +6 -0
- package/.next/server/middleware-react-loadable-manifest.js +1 -0
- package/.next/server/next-font-manifest.js +1 -0
- package/.next/server/next-font-manifest.json +1 -0
- package/.next/server/pages/404.html +1 -0
- package/.next/server/pages/500.html +1 -0
- package/.next/server/pages/_app.js +1 -0
- package/.next/server/pages/_app.js.nft.json +1 -0
- package/.next/server/pages/_document.js +1 -0
- package/.next/server/pages/_document.js.nft.json +1 -0
- package/.next/server/pages/_error.js +19 -0
- package/.next/server/pages/_error.js.nft.json +1 -0
- package/.next/server/pages-manifest.json +6 -0
- package/.next/server/server-reference-manifest.js +1 -0
- package/.next/server/server-reference-manifest.json +1 -0
- package/.next/server/webpack-runtime.js +1 -0
- package/.next/static/Fh8usqK3dgfncUx9s3VR1/_buildManifest.js +1 -0
- package/.next/static/Fh8usqK3dgfncUx9s3VR1/_ssgManifest.js +1 -0
- package/.next/static/chunks/125-ab0f8db8f84c1166.js +1 -0
- package/.next/static/chunks/255-e881f48ae1d2333a.js +1 -0
- package/.next/static/chunks/4bd1b696-409494caf8c83275.js +1 -0
- package/.next/static/chunks/619-f072ac750404f9da.js +1 -0
- package/.next/static/chunks/850-8bc31e41590b5831.js +1 -0
- package/.next/static/chunks/938-23236de1c47554ea.js +1 -0
- package/.next/static/chunks/app/_not-found/page-6d75243350d9e0b5.js +1 -0
- package/.next/static/chunks/app/api/analytics/route-33d3f29973de91a4.js +1 -0
- package/.next/static/chunks/app/api/data/route-33d3f29973de91a4.js +1 -0
- package/.next/static/chunks/app/api/export/route-33d3f29973de91a4.js +1 -0
- package/.next/static/chunks/app/api/files/route-33d3f29973de91a4.js +1 -0
- package/.next/static/chunks/app/api/prices/route-33d3f29973de91a4.js +1 -0
- package/.next/static/chunks/app/api/scan/route-33d3f29973de91a4.js +1 -0
- package/.next/static/chunks/app/api/settings/route-33d3f29973de91a4.js +1 -0
- package/.next/static/chunks/app/debug/page-33d3f29973de91a4.js +1 -0
- package/.next/static/chunks/app/diagnostics/page-053a5e810a59e548.js +1 -0
- package/.next/static/chunks/app/discovery/page-33d3f29973de91a4.js +1 -0
- package/.next/static/chunks/app/layout-8942804176ff26f3.js +1 -0
- package/.next/static/chunks/app/models/page-c0acf74dd8197e01.js +1 -0
- package/.next/static/chunks/app/optimisation/page-33d3f29973de91a4.js +1 -0
- package/.next/static/chunks/app/page-b6886ec802c03cbf.js +1 -0
- package/.next/static/chunks/app/parser-debug/page-33d3f29973de91a4.js +1 -0
- package/.next/static/chunks/app/pricing/page-5e27b1ae27314539.js +1 -0
- package/.next/static/chunks/app/projects/page-b6886ec802c03cbf.js +1 -0
- package/.next/static/chunks/app/sessions/page-0abcdc88aac9dcaf.js +1 -0
- package/.next/static/chunks/app/settings/page-59fc80673f0750cd.js +1 -0
- package/.next/static/chunks/app/tools/page-c0acf74dd8197e01.js +1 -0
- package/.next/static/chunks/framework-3457b9c2619cdd96.js +1 -0
- package/.next/static/chunks/main-8744520a8a31e6ae.js +1 -0
- package/.next/static/chunks/main-app-e9ccddef393e28c3.js +1 -0
- package/.next/static/chunks/pages/_app-5addca2b3b969fde.js +1 -0
- package/.next/static/chunks/pages/_error-022e4ac7bbb9914f.js +1 -0
- package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
- package/.next/static/chunks/webpack-3fcacae817f3ffab.js +1 -0
- package/.next/static/css/366bb38b386229a5.css +3 -0
- package/LICENSE +21 -0
- package/README.md +216 -0
- package/app/api/analytics/route.ts +8 -0
- package/app/api/data/route.ts +9 -0
- package/app/api/export/route.ts +26 -0
- package/app/api/files/route.ts +8 -0
- package/app/api/prices/route.ts +33 -0
- package/app/api/scan/route.ts +15 -0
- package/app/api/settings/route.ts +25 -0
- package/app/debug/page.tsx +101 -0
- package/app/diagnostics/page.tsx +113 -0
- package/app/discovery/page.tsx +61 -0
- package/app/globals.css +51 -0
- package/app/layout.tsx +30 -0
- package/app/models/page.tsx +97 -0
- package/app/optimisation/page.tsx +67 -0
- package/app/page.tsx +164 -0
- package/app/parser-debug/page.tsx +57 -0
- package/app/pricing/page.tsx +18 -0
- package/app/projects/page.tsx +111 -0
- package/app/sessions/page.tsx +24 -0
- package/app/settings/page.tsx +26 -0
- package/app/tools/page.tsx +92 -0
- package/bin/tokentrace.js +316 -0
- package/components/charts/rank-bar-chart.tsx +69 -0
- package/components/charts/trend-chart.tsx +123 -0
- package/components/empty-state.tsx +14 -0
- package/components/pricing-settings.tsx +171 -0
- package/components/session-explorer.tsx +210 -0
- package/components/settings-panel.tsx +203 -0
- package/components/sidebar.tsx +88 -0
- package/components/ui/badge.tsx +30 -0
- package/components/ui/button.tsx +47 -0
- package/components/ui/card.tsx +22 -0
- package/components/ui/input.tsx +19 -0
- package/components/ui/label.tsx +6 -0
- package/components/ui/table.tsx +31 -0
- package/components/ui/textarea.tsx +18 -0
- package/components.json +16 -0
- package/dist/runtime/db-migrate.mjs +410 -0
- package/dist/runtime/db-seed.mjs +506 -0
- package/dist/runtime/reset.mjs +519 -0
- package/dist/runtime/scan.mjs +1817 -0
- package/fixtures/generic-jsonl/sample.jsonl +2 -0
- package/next.config.mjs +7 -0
- package/package.json +96 -0
- package/postcss.config.mjs +8 -0
- package/scripts/build-cli-runtime.mjs +40 -0
- package/scripts/db-migrate.ts +5 -0
- package/scripts/db-seed.ts +5 -0
- package/scripts/reset.ts +5 -0
- package/scripts/scan.ts +30 -0
- package/src/db/client.ts +32 -0
- package/src/db/migrate-core.ts +147 -0
- package/src/db/reset.ts +14 -0
- package/src/db/schema.ts +259 -0
- package/src/db/seed.ts +110 -0
- package/src/db/settings.ts +47 -0
- package/src/ingestion/adapters/claude-code.ts +78 -0
- package/src/ingestion/adapters/codex-cli.ts +82 -0
- package/src/ingestion/adapters/generic-json.ts +93 -0
- package/src/ingestion/adapters/generic-jsonl.ts +62 -0
- package/src/ingestion/adapters/generic-log.ts +144 -0
- package/src/ingestion/adapters/generic-records.ts +178 -0
- package/src/ingestion/adapters/helpers.ts +309 -0
- package/src/ingestion/adapters/index.ts +15 -0
- package/src/ingestion/discovery.ts +130 -0
- package/src/ingestion/persist.ts +283 -0
- package/src/ingestion/scan.ts +247 -0
- package/src/ingestion/types.ts +78 -0
- package/src/lib/analytics.ts +592 -0
- package/src/lib/cost.ts +62 -0
- package/src/lib/csv.ts +15 -0
- package/src/lib/format.ts +51 -0
- package/src/lib/ids.ts +23 -0
- package/src/lib/pricing.ts +86 -0
- package/src/lib/token-estimator.ts +24 -0
- package/src/lib/utils.ts +6 -0
- package/tailwind.config.ts +53 -0
- package/tsconfig.json +28 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<!DOCTYPE html><!--Fh8usqK3dgfncUx9s3VR1--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/366bb38b386229a5.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-3fcacae817f3ffab.js"/><script src="/_next/static/chunks/4bd1b696-409494caf8c83275.js" async=""></script><script src="/_next/static/chunks/255-e881f48ae1d2333a.js" async=""></script><script src="/_next/static/chunks/main-app-e9ccddef393e28c3.js" async=""></script><script src="/_next/static/chunks/125-ab0f8db8f84c1166.js" async=""></script><script src="/_next/static/chunks/938-23236de1c47554ea.js" async=""></script><script src="/_next/static/chunks/619-f072ac750404f9da.js" async=""></script><script src="/_next/static/chunks/850-8bc31e41590b5831.js" async=""></script><script src="/_next/static/chunks/app/page-b6886ec802c03cbf.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>TokenTrace CLI</title><meta name="description" content="Local-first AI CLI token and cost analytics"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div class="flex min-h-screen"><aside class="sticky top-0 hidden h-screen w-64 shrink-0 border-r bg-card md:block"><div class="flex h-full flex-col"><div class="border-b p-5"><div class="flex items-center gap-2"><div class="flex h-9 w-9 items-center justify-center rounded-md bg-primary text-primary-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chart-line h-5 w-5"><path d="M3 3v16a2 2 0 0 0 2 2h16"></path><path d="m19 9-5 5-4-4-3 3"></path></svg></div><div><div class="text-sm font-semibold">TokenTrace CLI</div><div class="text-xs text-muted-foreground">Local analytics</div></div></div></div><nav class="flex-1 space-y-1 p-3"><a class="flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-gauge h-4 w-4"><path d="m12 14 4-4"></path><path d="M3.34 19a10 10 0 1 1 17.32 0"></path></svg>Overview</a><a class="flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground" href="/tools"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-terminal h-4 w-4"><polyline points="4 17 10 11 4 5"></polyline><line x1="12" x2="20" y1="19" y2="19"></line></svg>Tools</a><a class="flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground" href="/models"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bot h-4 w-4"><path d="M12 8V4H8"></path><rect width="16" height="12" x="4" y="8" rx="2"></rect><path d="M2 14h2"></path><path d="M20 14h2"></path><path d="M15 13v2"></path><path d="M9 13v2"></path></svg>Models</a><a class="flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground" href="/projects"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder-git2 h-4 w-4"><path d="M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5"></path><circle cx="13" cy="12" r="2"></circle><path d="M18 19c-2.8 0-5-2.2-5-5v8"></path><circle cx="20" cy="19" r="2"></circle></svg>Projects</a><a class="flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground" href="/sessions"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search h-4 w-4"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg>Sessions</a><a class="flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground" href="/optimisation"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sparkles h-4 w-4"><path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z"></path><path d="M20 3v4"></path><path d="M22 5h-4"></path><path d="M4 17v2"></path><path d="M5 18H3"></path></svg>Insights</a><a class="flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground" href="/pricing"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sliders-horizontal h-4 w-4"><line x1="21" x2="14" y1="4" y2="4"></line><line x1="10" x2="3" y1="4" y2="4"></line><line x1="21" x2="12" y1="12" y2="12"></line><line x1="8" x2="3" y1="12" y2="12"></line><line x1="21" x2="16" y1="20" y2="20"></line><line x1="12" x2="3" y1="20" y2="20"></line><line x1="14" x2="14" y1="2" y2="6"></line><line x1="8" x2="8" y1="10" y2="14"></line><line x1="16" x2="16" y1="18" y2="22"></line></svg>Pricing</a><a class="flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground" href="/diagnostics"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard-list h-4 w-4"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path><path d="M12 11h4"></path><path d="M12 16h4"></path><path d="M8 11h.01"></path><path d="M8 16h.01"></path></svg>Diagnostics</a><a class="flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground" href="/discovery"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chart-column h-4 w-4"><path d="M3 3v16a2 2 0 0 0 2 2h16"></path><path d="M18 17V9"></path><path d="M13 17V5"></path><path d="M8 17v-3"></path></svg>Discovery</a><a class="flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground" href="/parser-debug"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bug h-4 w-4"><path d="m8 2 1.88 1.88"></path><path d="M14.12 3.88 16 2"></path><path d="M9 7.13v-1a3.003 3.003 0 1 1 6 0v1"></path><path d="M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6"></path><path d="M12 20v-9"></path><path d="M6.53 9C4.6 8.8 3 7.1 3 5"></path><path d="M6 13H2"></path><path d="M3 21c0-2.1 1.7-3.9 3.8-4"></path><path d="M20.97 5c0 2.1-1.6 3.8-3.5 4"></path><path d="M22 13h-4"></path><path d="M17.2 17c2.1.1 3.8 1.9 3.8 4"></path></svg>Parsers</a><a class="flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground" href="/debug"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bug h-4 w-4"><path d="m8 2 1.88 1.88"></path><path d="M14.12 3.88 16 2"></path><path d="M9 7.13v-1a3.003 3.003 0 1 1 6 0v1"></path><path d="M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6"></path><path d="M12 20v-9"></path><path d="M6.53 9C4.6 8.8 3 7.1 3 5"></path><path d="M6 13H2"></path><path d="M3 21c0-2.1 1.7-3.9 3.8-4"></path><path d="M20.97 5c0 2.1-1.6 3.8-3.5 4"></path><path d="M22 13h-4"></path><path d="M17.2 17c2.1.1 3.8 1.9 3.8 4"></path></svg>Raw Data</a><a class="flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground" href="/settings"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings h-4 w-4"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg>Settings</a></nav><div class="border-t p-4 text-xs text-muted-foreground">Local only. No telemetry. Raw content off by default.</div></div></aside><main class="min-w-0 flex-1"><div class="border-b bg-card px-4 py-3 md:hidden"><div class="text-sm font-semibold">TokenTrace CLI</div><div class="text-xs text-muted-foreground">Local analytics dashboard</div></div><nav class="flex gap-2 overflow-x-auto border-b bg-card px-4 py-2 md:hidden"><a class="flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-gauge h-3.5 w-3.5"><path d="m12 14 4-4"></path><path d="M3.34 19a10 10 0 1 1 17.32 0"></path></svg>Overview</a><a class="flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground" href="/tools"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-terminal h-3.5 w-3.5"><polyline points="4 17 10 11 4 5"></polyline><line x1="12" x2="20" y1="19" y2="19"></line></svg>Tools</a><a class="flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground" href="/models"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bot h-3.5 w-3.5"><path d="M12 8V4H8"></path><rect width="16" height="12" x="4" y="8" rx="2"></rect><path d="M2 14h2"></path><path d="M20 14h2"></path><path d="M15 13v2"></path><path d="M9 13v2"></path></svg>Models</a><a class="flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground" href="/projects"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder-git2 h-3.5 w-3.5"><path d="M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5"></path><circle cx="13" cy="12" r="2"></circle><path d="M18 19c-2.8 0-5-2.2-5-5v8"></path><circle cx="20" cy="19" r="2"></circle></svg>Projects</a><a class="flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground" href="/sessions"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search h-3.5 w-3.5"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg>Sessions</a><a class="flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground" href="/optimisation"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sparkles h-3.5 w-3.5"><path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z"></path><path d="M20 3v4"></path><path d="M22 5h-4"></path><path d="M4 17v2"></path><path d="M5 18H3"></path></svg>Insights</a><a class="flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground" href="/pricing"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sliders-horizontal h-3.5 w-3.5"><line x1="21" x2="14" y1="4" y2="4"></line><line x1="10" x2="3" y1="4" y2="4"></line><line x1="21" x2="12" y1="12" y2="12"></line><line x1="8" x2="3" y1="12" y2="12"></line><line x1="21" x2="16" y1="20" y2="20"></line><line x1="12" x2="3" y1="20" y2="20"></line><line x1="14" x2="14" y1="2" y2="6"></line><line x1="8" x2="8" y1="10" y2="14"></line><line x1="16" x2="16" y1="18" y2="22"></line></svg>Pricing</a><a class="flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground" href="/diagnostics"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard-list h-3.5 w-3.5"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path><path d="M12 11h4"></path><path d="M12 16h4"></path><path d="M8 11h.01"></path><path d="M8 16h.01"></path></svg>Diagnostics</a><a class="flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground" href="/discovery"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chart-column h-3.5 w-3.5"><path d="M3 3v16a2 2 0 0 0 2 2h16"></path><path d="M18 17V9"></path><path d="M13 17V5"></path><path d="M8 17v-3"></path></svg>Discovery</a><a class="flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground" href="/parser-debug"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bug h-3.5 w-3.5"><path d="m8 2 1.88 1.88"></path><path d="M14.12 3.88 16 2"></path><path d="M9 7.13v-1a3.003 3.003 0 1 1 6 0v1"></path><path d="M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6"></path><path d="M12 20v-9"></path><path d="M6.53 9C4.6 8.8 3 7.1 3 5"></path><path d="M6 13H2"></path><path d="M3 21c0-2.1 1.7-3.9 3.8-4"></path><path d="M20.97 5c0 2.1-1.6 3.8-3.5 4"></path><path d="M22 13h-4"></path><path d="M17.2 17c2.1.1 3.8 1.9 3.8 4"></path></svg>Parsers</a><a class="flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground" href="/debug"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bug h-3.5 w-3.5"><path d="m8 2 1.88 1.88"></path><path d="M14.12 3.88 16 2"></path><path d="M9 7.13v-1a3.003 3.003 0 1 1 6 0v1"></path><path d="M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6"></path><path d="M12 20v-9"></path><path d="M6.53 9C4.6 8.8 3 7.1 3 5"></path><path d="M6 13H2"></path><path d="M3 21c0-2.1 1.7-3.9 3.8-4"></path><path d="M20.97 5c0 2.1-1.6 3.8-3.5 4"></path><path d="M22 13h-4"></path><path d="M17.2 17c2.1.1 3.8 1.9 3.8 4"></path></svg>Raw Data</a><a class="flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground" href="/settings"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings h-3.5 w-3.5"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg>Settings</a></nav><div class="mx-auto w-full max-w-7xl px-4 py-6 sm:px-6 lg:px-8"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>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><!--$--><!--/$--></div></main></div><script src="/_next/static/chunks/webpack-3fcacae817f3ffab.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[52619,[\"125\",\"static/chunks/125-ab0f8db8f84c1166.js\",\"938\",\"static/chunks/938-23236de1c47554ea.js\",\"619\",\"static/chunks/619-f072ac750404f9da.js\",\"850\",\"static/chunks/850-8bc31e41590b5831.js\",\"974\",\"static/chunks/app/page-b6886ec802c03cbf.js\"],\"\"]\n10:I[57150,[],\"\"]\n:HL[\"/_next/static/css/366bb38b386229a5.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"Fh8usqK3dgfncUx9s3VR1\",\"p\":\"\",\"c\":[\"\",\"_not-found\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/366bb38b386229a5.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"flex min-h-screen\",\"children\":[[\"$\",\"aside\",null,{\"className\":\"sticky top-0 hidden h-screen w-64 shrink-0 border-r bg-card md:block\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex h-full flex-col\",\"children\":[[\"$\",\"div\",null,{\"className\":\"border-b p-5\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex h-9 w-9 items-center justify-center rounded-md bg-primary text-primary-foreground\",\"children\":[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-chart-line h-5 w-5\",\"children\":[[\"$\",\"path\",\"c24i48\",{\"d\":\"M3 3v16a2 2 0 0 0 2 2h16\"}],[\"$\",\"path\",\"2osh9i\",{\"d\":\"m19 9-5 5-4-4-3 3\"}],\"$undefined\"]}]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"div\",null,{\"className\":\"text-sm font-semibold\",\"children\":\"TokenTrace CLI\"}],[\"$\",\"div\",null,{\"className\":\"text-xs text-muted-foreground\",\"children\":\"Local analytics\"}]]}]]}]}],[\"$\",\"nav\",null,{\"className\":\"flex-1 space-y-1 p-3\",\"children\":[[\"$\",\"$L2\",\"/\",{\"href\":\"/\",\"className\":\"flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-gauge h-4 w-4\",\"children\":[[\"$\",\"path\",\"9kzdfg\",{\"d\":\"m12 14 4-4\"}],[\"$\",\"path\",\"19p75a\",{\"d\":\"M3.34 19a10 10 0 1 1 17.32 0\"}],\"$undefined\"]}],\"Overview\"]}],[\"$\",\"$L2\",\"/tools\",{\"href\":\"/tools\",\"className\":\"flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-terminal h-4 w-4\",\"children\":[[\"$\",\"polyline\",\"akl6gq\",{\"points\":\"4 17 10 11 4 5\"}],[\"$\",\"line\",\"q2wloq\",{\"x1\":\"12\",\"x2\":\"20\",\"y1\":\"19\",\"y2\":\"19\"}],\"$undefined\"]}],\"Tools\"]}],[\"$\",\"$L2\",\"/models\",{\"href\":\"/models\",\"className\":\"flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-bot h-4 w-4\",\"children\":[[\"$\",\"path\",\"hb8ula\",{\"d\":\"M12 8V4H8\"}],[\"$\",\"rect\",\"enze0r\",{\"width\":\"16\",\"height\":\"12\",\"x\":\"4\",\"y\":\"8\",\"rx\":\"2\"}],[\"$\",\"path\",\"vft8re\",{\"d\":\"M2 14h2\"}],[\"$\",\"path\",\"4cs60a\",{\"d\":\"M20 14h2\"}],[\"$\",\"path\",\"1xurst\",{\"d\":\"M15 13v2\"}],[\"$\",\"path\",\"rq6x2g\",{\"d\":\"M9 13v2\"}],\"$undefined\"]}],\"Models\"]}],[\"$\",\"$L2\",\"/projects\",{\"href\":\"/projects\",\"className\":\"flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-folder-git2 h-4 w-4\",\"children\":[[\"$\",\"path\",\"1w6njk\",{\"d\":\"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5\"}],[\"$\",\"circle\",\"1j92g6\",{\"cx\":\"13\",\"cy\":\"12\",\"r\":\"2\"}],[\"$\",\"path\",\"pkpw2h\",{\"d\":\"M18 19c-2.8 0-5-2.2-5-5v8\"}],[\"$\",\"circle\",\"1obnsp\",{\"cx\":\"20\",\"cy\":\"19\",\"r\":\"2\"}],\"$undefined\"]}],\"Projects\"]}],[\"$\",\"$L2\",\"/sessions\",{\"href\":\"/sessions\",\"className\":\"flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground\",\"children\":[\"$L3\",\"Sessions\"]}],\"$L4\",\"$L5\",\"$L6\",\"$L7\",\"$L8\",\"$L9\",\"$La\"]}],\"$Lb\"]}]}],\"$Lc\"]}]}]}]]}],{\"children\":[\"/_not-found\",\"$Ld\",{\"children\":[\"__PAGE__\",\"$Le\",{},null,false]},null,false]},null,false],\"$Lf\",false]],\"m\":\"$undefined\",\"G\":[\"$10\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"19:I[9766,[],\"\"]\n1a:I[98924,[],\"\"]\n1b:I[24431,[],\"OutletBoundary\"]\n1d:I[15278,[],\"AsyncMetadataOutlet\"]\n1f:I[24431,[],\"ViewportBoundary\"]\n21:I[24431,[],\"MetadataBoundary\"]\n22:\"$Sreact.suspense\"\n3:[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-search h-4 w-4\",\"children\":[[\"$\",\"circle\",\"4ej97u\",{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"}],[\"$\",\"path\",\"1qie3q\",{\"d\":\"m21 21-4.3-4.3\"}],\"$undefined\"]}]\n"])</script><script>self.__next_f.push([1,"4:[\"$\",\"$L2\",\"/optimisation\",{\"href\":\"/optimisation\",\"className\":\"flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-sparkles h-4 w-4\",\"children\":[[\"$\",\"path\",\"4pj2yx\",{\"d\":\"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z\"}],[\"$\",\"path\",\"1olli1\",{\"d\":\"M20 3v4\"}],[\"$\",\"path\",\"1gvqau\",{\"d\":\"M22 5h-4\"}],[\"$\",\"path\",\"vumght\",{\"d\":\"M4 17v2\"}],[\"$\",\"path\",\"zchphs\",{\"d\":\"M5 18H3\"}],\"$undefined\"]}],\"Insights\"]}]\n"])</script><script>self.__next_f.push([1,"5:[\"$\",\"$L2\",\"/pricing\",{\"href\":\"/pricing\",\"className\":\"flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-sliders-horizontal h-4 w-4\",\"children\":[[\"$\",\"line\",\"obuewd\",{\"x1\":\"21\",\"x2\":\"14\",\"y1\":\"4\",\"y2\":\"4\"}],[\"$\",\"line\",\"1q6298\",{\"x1\":\"10\",\"x2\":\"3\",\"y1\":\"4\",\"y2\":\"4\"}],[\"$\",\"line\",\"1iu8h1\",{\"x1\":\"21\",\"x2\":\"12\",\"y1\":\"12\",\"y2\":\"12\"}],[\"$\",\"line\",\"ntss68\",{\"x1\":\"8\",\"x2\":\"3\",\"y1\":\"12\",\"y2\":\"12\"}],[\"$\",\"line\",\"14d8ph\",{\"x1\":\"21\",\"x2\":\"16\",\"y1\":\"20\",\"y2\":\"20\"}],[\"$\",\"line\",\"m0wm8r\",{\"x1\":\"12\",\"x2\":\"3\",\"y1\":\"20\",\"y2\":\"20\"}],[\"$\",\"line\",\"14e1ph\",{\"x1\":\"14\",\"x2\":\"14\",\"y1\":\"2\",\"y2\":\"6\"}],[\"$\",\"line\",\"1i6ji0\",{\"x1\":\"8\",\"x2\":\"8\",\"y1\":\"10\",\"y2\":\"14\"}],[\"$\",\"line\",\"1lctlv\",{\"x1\":\"16\",\"x2\":\"16\",\"y1\":\"18\",\"y2\":\"22\"}],\"$undefined\"]}],\"Pricing\"]}]\n"])</script><script>self.__next_f.push([1,"6:[\"$\",\"$L2\",\"/diagnostics\",{\"href\":\"/diagnostics\",\"className\":\"flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clipboard-list h-4 w-4\",\"children\":[[\"$\",\"rect\",\"tgr4d6\",{\"width\":\"8\",\"height\":\"4\",\"x\":\"8\",\"y\":\"2\",\"rx\":\"1\",\"ry\":\"1\"}],[\"$\",\"path\",\"116196\",{\"d\":\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"}],[\"$\",\"path\",\"1jrz19\",{\"d\":\"M12 11h4\"}],[\"$\",\"path\",\"n85exb\",{\"d\":\"M12 16h4\"}],[\"$\",\"path\",\"1dfujw\",{\"d\":\"M8 11h.01\"}],[\"$\",\"path\",\"18s6g9\",{\"d\":\"M8 16h.01\"}],\"$undefined\"]}],\"Diagnostics\"]}]\n"])</script><script>self.__next_f.push([1,"7:[\"$\",\"$L2\",\"/discovery\",{\"href\":\"/discovery\",\"className\":\"flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-chart-column h-4 w-4\",\"children\":[[\"$\",\"path\",\"c24i48\",{\"d\":\"M3 3v16a2 2 0 0 0 2 2h16\"}],[\"$\",\"path\",\"2bz60n\",{\"d\":\"M18 17V9\"}],[\"$\",\"path\",\"1frdt8\",{\"d\":\"M13 17V5\"}],[\"$\",\"path\",\"17ska0\",{\"d\":\"M8 17v-3\"}],\"$undefined\"]}],\"Discovery\"]}]\n"])</script><script>self.__next_f.push([1,"8:[\"$\",\"$L2\",\"/parser-debug\",{\"href\":\"/parser-debug\",\"className\":\"flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-bug h-4 w-4\",\"children\":[[\"$\",\"path\",\"fmnt4t\",{\"d\":\"m8 2 1.88 1.88\"}],[\"$\",\"path\",\"qol33r\",{\"d\":\"M14.12 3.88 16 2\"}],[\"$\",\"path\",\"d7y7pr\",{\"d\":\"M9 7.13v-1a3.003 3.003 0 1 1 6 0v1\"}],[\"$\",\"path\",\"xs1cw7\",{\"d\":\"M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6\"}],[\"$\",\"path\",\"1qisl0\",{\"d\":\"M12 20v-9\"}],[\"$\",\"path\",\"32zzws\",{\"d\":\"M6.53 9C4.6 8.8 3 7.1 3 5\"}],[\"$\",\"path\",\"82j7cp\",{\"d\":\"M6 13H2\"}],[\"$\",\"path\",\"4p0ekp\",{\"d\":\"M3 21c0-2.1 1.7-3.9 3.8-4\"}],[\"$\",\"path\",\"18gb23\",{\"d\":\"M20.97 5c0 2.1-1.6 3.8-3.5 4\"}],[\"$\",\"path\",\"1jl80f\",{\"d\":\"M22 13h-4\"}],[\"$\",\"path\",\"k3fwyw\",{\"d\":\"M17.2 17c2.1.1 3.8 1.9 3.8 4\"}],\"$undefined\"]}],\"Parsers\"]}]\n"])</script><script>self.__next_f.push([1,"9:[\"$\",\"$L2\",\"/debug\",{\"href\":\"/debug\",\"className\":\"flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-bug h-4 w-4\",\"children\":[[\"$\",\"path\",\"fmnt4t\",{\"d\":\"m8 2 1.88 1.88\"}],[\"$\",\"path\",\"qol33r\",{\"d\":\"M14.12 3.88 16 2\"}],[\"$\",\"path\",\"d7y7pr\",{\"d\":\"M9 7.13v-1a3.003 3.003 0 1 1 6 0v1\"}],[\"$\",\"path\",\"xs1cw7\",{\"d\":\"M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6\"}],[\"$\",\"path\",\"1qisl0\",{\"d\":\"M12 20v-9\"}],[\"$\",\"path\",\"32zzws\",{\"d\":\"M6.53 9C4.6 8.8 3 7.1 3 5\"}],[\"$\",\"path\",\"82j7cp\",{\"d\":\"M6 13H2\"}],[\"$\",\"path\",\"4p0ekp\",{\"d\":\"M3 21c0-2.1 1.7-3.9 3.8-4\"}],[\"$\",\"path\",\"18gb23\",{\"d\":\"M20.97 5c0 2.1-1.6 3.8-3.5 4\"}],[\"$\",\"path\",\"1jl80f\",{\"d\":\"M22 13h-4\"}],[\"$\",\"path\",\"k3fwyw\",{\"d\":\"M17.2 17c2.1.1 3.8 1.9 3.8 4\"}],\"$undefined\"]}],\"Raw Data\"]}]\n"])</script><script>self.__next_f.push([1,"a:[\"$\",\"$L2\",\"/settings\",{\"href\":\"/settings\",\"className\":\"flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-settings h-4 w-4\",\"children\":[[\"$\",\"path\",\"1qme2f\",{\"d\":\"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z\"}],[\"$\",\"circle\",\"1v7zrd\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"}],\"$undefined\"]}],\"Settings\"]}]\n"])</script><script>self.__next_f.push([1,"b:[\"$\",\"div\",null,{\"className\":\"border-t p-4 text-xs text-muted-foreground\",\"children\":\"Local only. No telemetry. Raw content off by default.\"}]\n"])</script><script>self.__next_f.push([1,"c:[\"$\",\"main\",null,{\"className\":\"min-w-0 flex-1\",\"children\":[[\"$\",\"div\",null,{\"className\":\"border-b bg-card px-4 py-3 md:hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-sm font-semibold\",\"children\":\"TokenTrace CLI\"}],[\"$\",\"div\",null,{\"className\":\"text-xs text-muted-foreground\",\"children\":\"Local analytics dashboard\"}]]}],[\"$\",\"nav\",null,{\"className\":\"flex gap-2 overflow-x-auto border-b bg-card px-4 py-2 md:hidden\",\"children\":[[\"$\",\"$L2\",\"/\",{\"href\":\"/\",\"className\":\"flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-gauge h-3.5 w-3.5\",\"children\":[[\"$\",\"path\",\"9kzdfg\",{\"d\":\"m12 14 4-4\"}],[\"$\",\"path\",\"19p75a\",{\"d\":\"M3.34 19a10 10 0 1 1 17.32 0\"}],\"$undefined\"]}],\"Overview\"]}],[\"$\",\"$L2\",\"/tools\",{\"href\":\"/tools\",\"className\":\"flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-terminal h-3.5 w-3.5\",\"children\":[[\"$\",\"polyline\",\"akl6gq\",{\"points\":\"4 17 10 11 4 5\"}],[\"$\",\"line\",\"q2wloq\",{\"x1\":\"12\",\"x2\":\"20\",\"y1\":\"19\",\"y2\":\"19\"}],\"$undefined\"]}],\"Tools\"]}],[\"$\",\"$L2\",\"/models\",{\"href\":\"/models\",\"className\":\"flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-bot h-3.5 w-3.5\",\"children\":[[\"$\",\"path\",\"hb8ula\",{\"d\":\"M12 8V4H8\"}],[\"$\",\"rect\",\"enze0r\",{\"width\":\"16\",\"height\":\"12\",\"x\":\"4\",\"y\":\"8\",\"rx\":\"2\"}],[\"$\",\"path\",\"vft8re\",{\"d\":\"M2 14h2\"}],[\"$\",\"path\",\"4cs60a\",{\"d\":\"M20 14h2\"}],[\"$\",\"path\",\"1xurst\",{\"d\":\"M15 13v2\"}],[\"$\",\"path\",\"rq6x2g\",{\"d\":\"M9 13v2\"}],\"$undefined\"]}],\"Models\"]}],[\"$\",\"$L2\",\"/projects\",{\"href\":\"/projects\",\"className\":\"flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-folder-git2 h-3.5 w-3.5\",\"children\":[[\"$\",\"path\",\"1w6njk\",{\"d\":\"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5\"}],[\"$\",\"circle\",\"1j92g6\",{\"cx\":\"13\",\"cy\":\"12\",\"r\":\"2\"}],[\"$\",\"path\",\"pkpw2h\",{\"d\":\"M18 19c-2.8 0-5-2.2-5-5v8\"}],[\"$\",\"circle\",\"1obnsp\",{\"cx\":\"20\",\"cy\":\"19\",\"r\":\"2\"}],\"$undefined\"]}],\"Projects\"]}],[\"$\",\"$L2\",\"/sessions\",{\"href\":\"/sessions\",\"className\":\"flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-search h-3.5 w-3.5\",\"children\":[[\"$\",\"circle\",\"4ej97u\",{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"}],[\"$\",\"path\",\"1qie3q\",{\"d\":\"m21 21-4.3-4.3\"}],\"$undefined\"]}],\"Sessions\"]}],[\"$\",\"$L2\",\"/optimisation\",{\"href\":\"/optimisation\",\"className\":\"flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-sparkles h-3.5 w-3.5\",\"children\":[[\"$\",\"path\",\"4pj2yx\",{\"d\":\"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z\"}],[\"$\",\"path\",\"1olli1\",{\"d\":\"M20 3v4\"}],[\"$\",\"path\",\"1gvqau\",{\"d\":\"M22 5h-4\"}],[\"$\",\"path\",\"vumght\",{\"d\":\"M4 17v2\"}],\"$L11\",\"$undefined\"]}],\"Insights\"]}],\"$L12\",\"$L13\",\"$L14\",\"$L15\",\"$L16\",\"$L17\"]}],\"$L18\"]}]\n"])</script><script>self.__next_f.push([1,"d:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L19\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L1a\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n"])</script><script>self.__next_f.push([1,"e:[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"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.\"}]}]]}]}]],null,[\"$\",\"$L1b\",null,{\"children\":[\"$L1c\",[\"$\",\"$L1d\",null,{\"promise\":\"$@1e\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"f:[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$L1f\",null,{\"children\":\"$L20\"}],null],[\"$\",\"$L21\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$22\",null,{\"fallback\":null,\"children\":\"$L23\"}]}]}]]}]\n"])</script><script>self.__next_f.push([1,"11:[\"$\",\"path\",\"zchphs\",{\"d\":\"M5 18H3\"}]\n"])</script><script>self.__next_f.push([1,"12:[\"$\",\"$L2\",\"/pricing\",{\"href\":\"/pricing\",\"className\":\"flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-sliders-horizontal h-3.5 w-3.5\",\"children\":[[\"$\",\"line\",\"obuewd\",{\"x1\":\"21\",\"x2\":\"14\",\"y1\":\"4\",\"y2\":\"4\"}],[\"$\",\"line\",\"1q6298\",{\"x1\":\"10\",\"x2\":\"3\",\"y1\":\"4\",\"y2\":\"4\"}],[\"$\",\"line\",\"1iu8h1\",{\"x1\":\"21\",\"x2\":\"12\",\"y1\":\"12\",\"y2\":\"12\"}],[\"$\",\"line\",\"ntss68\",{\"x1\":\"8\",\"x2\":\"3\",\"y1\":\"12\",\"y2\":\"12\"}],[\"$\",\"line\",\"14d8ph\",{\"x1\":\"21\",\"x2\":\"16\",\"y1\":\"20\",\"y2\":\"20\"}],[\"$\",\"line\",\"m0wm8r\",{\"x1\":\"12\",\"x2\":\"3\",\"y1\":\"20\",\"y2\":\"20\"}],[\"$\",\"line\",\"14e1ph\",{\"x1\":\"14\",\"x2\":\"14\",\"y1\":\"2\",\"y2\":\"6\"}],[\"$\",\"line\",\"1i6ji0\",{\"x1\":\"8\",\"x2\":\"8\",\"y1\":\"10\",\"y2\":\"14\"}],[\"$\",\"line\",\"1lctlv\",{\"x1\":\"16\",\"x2\":\"16\",\"y1\":\"18\",\"y2\":\"22\"}],\"$undefined\"]}],\"Pricing\"]}]\n"])</script><script>self.__next_f.push([1,"13:[\"$\",\"$L2\",\"/diagnostics\",{\"href\":\"/diagnostics\",\"className\":\"flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clipboard-list h-3.5 w-3.5\",\"children\":[[\"$\",\"rect\",\"tgr4d6\",{\"width\":\"8\",\"height\":\"4\",\"x\":\"8\",\"y\":\"2\",\"rx\":\"1\",\"ry\":\"1\"}],[\"$\",\"path\",\"116196\",{\"d\":\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"}],[\"$\",\"path\",\"1jrz19\",{\"d\":\"M12 11h4\"}],[\"$\",\"path\",\"n85exb\",{\"d\":\"M12 16h4\"}],[\"$\",\"path\",\"1dfujw\",{\"d\":\"M8 11h.01\"}],[\"$\",\"path\",\"18s6g9\",{\"d\":\"M8 16h.01\"}],\"$undefined\"]}],\"Diagnostics\"]}]\n"])</script><script>self.__next_f.push([1,"14:[\"$\",\"$L2\",\"/discovery\",{\"href\":\"/discovery\",\"className\":\"flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-chart-column h-3.5 w-3.5\",\"children\":[[\"$\",\"path\",\"c24i48\",{\"d\":\"M3 3v16a2 2 0 0 0 2 2h16\"}],[\"$\",\"path\",\"2bz60n\",{\"d\":\"M18 17V9\"}],[\"$\",\"path\",\"1frdt8\",{\"d\":\"M13 17V5\"}],[\"$\",\"path\",\"17ska0\",{\"d\":\"M8 17v-3\"}],\"$undefined\"]}],\"Discovery\"]}]\n"])</script><script>self.__next_f.push([1,"15:[\"$\",\"$L2\",\"/parser-debug\",{\"href\":\"/parser-debug\",\"className\":\"flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-bug h-3.5 w-3.5\",\"children\":[[\"$\",\"path\",\"fmnt4t\",{\"d\":\"m8 2 1.88 1.88\"}],[\"$\",\"path\",\"qol33r\",{\"d\":\"M14.12 3.88 16 2\"}],[\"$\",\"path\",\"d7y7pr\",{\"d\":\"M9 7.13v-1a3.003 3.003 0 1 1 6 0v1\"}],[\"$\",\"path\",\"xs1cw7\",{\"d\":\"M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6\"}],[\"$\",\"path\",\"1qisl0\",{\"d\":\"M12 20v-9\"}],[\"$\",\"path\",\"32zzws\",{\"d\":\"M6.53 9C4.6 8.8 3 7.1 3 5\"}],[\"$\",\"path\",\"82j7cp\",{\"d\":\"M6 13H2\"}],[\"$\",\"path\",\"4p0ekp\",{\"d\":\"M3 21c0-2.1 1.7-3.9 3.8-4\"}],[\"$\",\"path\",\"18gb23\",{\"d\":\"M20.97 5c0 2.1-1.6 3.8-3.5 4\"}],[\"$\",\"path\",\"1jl80f\",{\"d\":\"M22 13h-4\"}],[\"$\",\"path\",\"k3fwyw\",{\"d\":\"M17.2 17c2.1.1 3.8 1.9 3.8 4\"}],\"$undefined\"]}],\"Parsers\"]}]\n"])</script><script>self.__next_f.push([1,"16:[\"$\",\"$L2\",\"/debug\",{\"href\":\"/debug\",\"className\":\"flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-bug h-3.5 w-3.5\",\"children\":[[\"$\",\"path\",\"fmnt4t\",{\"d\":\"m8 2 1.88 1.88\"}],[\"$\",\"path\",\"qol33r\",{\"d\":\"M14.12 3.88 16 2\"}],[\"$\",\"path\",\"d7y7pr\",{\"d\":\"M9 7.13v-1a3.003 3.003 0 1 1 6 0v1\"}],[\"$\",\"path\",\"xs1cw7\",{\"d\":\"M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6\"}],[\"$\",\"path\",\"1qisl0\",{\"d\":\"M12 20v-9\"}],[\"$\",\"path\",\"32zzws\",{\"d\":\"M6.53 9C4.6 8.8 3 7.1 3 5\"}],[\"$\",\"path\",\"82j7cp\",{\"d\":\"M6 13H2\"}],[\"$\",\"path\",\"4p0ekp\",{\"d\":\"M3 21c0-2.1 1.7-3.9 3.8-4\"}],[\"$\",\"path\",\"18gb23\",{\"d\":\"M20.97 5c0 2.1-1.6 3.8-3.5 4\"}],[\"$\",\"path\",\"1jl80f\",{\"d\":\"M22 13h-4\"}],[\"$\",\"path\",\"k3fwyw\",{\"d\":\"M17.2 17c2.1.1 3.8 1.9 3.8 4\"}],\"$undefined\"]}],\"Raw Data\"]}]\n"])</script><script>self.__next_f.push([1,"17:[\"$\",\"$L2\",\"/settings\",{\"href\":\"/settings\",\"className\":\"flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-settings h-3.5 w-3.5\",\"children\":[[\"$\",\"path\",\"1qme2f\",{\"d\":\"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z\"}],[\"$\",\"circle\",\"1v7zrd\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"}],\"$undefined\"]}],\"Settings\"]}]\n"])</script><script>self.__next_f.push([1,"18:[\"$\",\"div\",null,{\"className\":\"mx-auto w-full max-w-7xl px-4 py-6 sm:px-6 lg:px-8\",\"children\":[\"$\",\"$L19\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L1a\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]\n"])</script><script>self.__next_f.push([1,"20:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n1c:null\n"])</script><script>self.__next_f.push([1,"1e:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"TokenTrace CLI\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Local-first AI CLI token and cost analytics\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"23:\"$1e:metadata\"\n"])</script></body></html>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
1:"$Sreact.fragment"
|
|
2
|
+
2:I[52619,["125","static/chunks/125-ab0f8db8f84c1166.js","938","static/chunks/938-23236de1c47554ea.js","619","static/chunks/619-f072ac750404f9da.js","850","static/chunks/850-8bc31e41590b5831.js","974","static/chunks/app/page-b6886ec802c03cbf.js"],""]
|
|
3
|
+
10:I[57150,[],""]
|
|
4
|
+
:HL["/_next/static/css/366bb38b386229a5.css","style"]
|
|
5
|
+
0:{"P":null,"b":"Fh8usqK3dgfncUx9s3VR1","p":"","c":["","_not-found"],"i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/366bb38b386229a5.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","div",null,{"className":"flex min-h-screen","children":[["$","aside",null,{"className":"sticky top-0 hidden h-screen w-64 shrink-0 border-r bg-card md:block","children":["$","div",null,{"className":"flex h-full flex-col","children":[["$","div",null,{"className":"border-b p-5","children":["$","div",null,{"className":"flex items-center gap-2","children":[["$","div",null,{"className":"flex h-9 w-9 items-center justify-center rounded-md bg-primary text-primary-foreground","children":["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-chart-line h-5 w-5","children":[["$","path","c24i48",{"d":"M3 3v16a2 2 0 0 0 2 2h16"}],["$","path","2osh9i",{"d":"m19 9-5 5-4-4-3 3"}],"$undefined"]}]}],["$","div",null,{"children":[["$","div",null,{"className":"text-sm font-semibold","children":"TokenTrace CLI"}],["$","div",null,{"className":"text-xs text-muted-foreground","children":"Local analytics"}]]}]]}]}],["$","nav",null,{"className":"flex-1 space-y-1 p-3","children":[["$","$L2","/",{"href":"/","className":"flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-gauge h-4 w-4","children":[["$","path","9kzdfg",{"d":"m12 14 4-4"}],["$","path","19p75a",{"d":"M3.34 19a10 10 0 1 1 17.32 0"}],"$undefined"]}],"Overview"]}],["$","$L2","/tools",{"href":"/tools","className":"flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-terminal h-4 w-4","children":[["$","polyline","akl6gq",{"points":"4 17 10 11 4 5"}],["$","line","q2wloq",{"x1":"12","x2":"20","y1":"19","y2":"19"}],"$undefined"]}],"Tools"]}],["$","$L2","/models",{"href":"/models","className":"flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-bot h-4 w-4","children":[["$","path","hb8ula",{"d":"M12 8V4H8"}],["$","rect","enze0r",{"width":"16","height":"12","x":"4","y":"8","rx":"2"}],["$","path","vft8re",{"d":"M2 14h2"}],["$","path","4cs60a",{"d":"M20 14h2"}],["$","path","1xurst",{"d":"M15 13v2"}],["$","path","rq6x2g",{"d":"M9 13v2"}],"$undefined"]}],"Models"]}],["$","$L2","/projects",{"href":"/projects","className":"flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-folder-git2 h-4 w-4","children":[["$","path","1w6njk",{"d":"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5"}],["$","circle","1j92g6",{"cx":"13","cy":"12","r":"2"}],["$","path","pkpw2h",{"d":"M18 19c-2.8 0-5-2.2-5-5v8"}],["$","circle","1obnsp",{"cx":"20","cy":"19","r":"2"}],"$undefined"]}],"Projects"]}],["$","$L2","/sessions",{"href":"/sessions","className":"flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground","children":["$L3","Sessions"]}],"$L4","$L5","$L6","$L7","$L8","$L9","$La"]}],"$Lb"]}]}],"$Lc"]}]}]}]]}],{"children":["/_not-found","$Ld",{"children":["__PAGE__","$Le",{},null,false]},null,false]},null,false],"$Lf",false]],"m":"$undefined","G":["$10",[]],"s":false,"S":true}
|
|
6
|
+
19:I[9766,[],""]
|
|
7
|
+
1a:I[98924,[],""]
|
|
8
|
+
1b:I[24431,[],"OutletBoundary"]
|
|
9
|
+
1d:I[15278,[],"AsyncMetadataOutlet"]
|
|
10
|
+
1f:I[24431,[],"ViewportBoundary"]
|
|
11
|
+
21:I[24431,[],"MetadataBoundary"]
|
|
12
|
+
22:"$Sreact.suspense"
|
|
13
|
+
3:["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-search h-4 w-4","children":[["$","circle","4ej97u",{"cx":"11","cy":"11","r":"8"}],["$","path","1qie3q",{"d":"m21 21-4.3-4.3"}],"$undefined"]}]
|
|
14
|
+
4:["$","$L2","/optimisation",{"href":"/optimisation","className":"flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-sparkles h-4 w-4","children":[["$","path","4pj2yx",{"d":"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z"}],["$","path","1olli1",{"d":"M20 3v4"}],["$","path","1gvqau",{"d":"M22 5h-4"}],["$","path","vumght",{"d":"M4 17v2"}],["$","path","zchphs",{"d":"M5 18H3"}],"$undefined"]}],"Insights"]}]
|
|
15
|
+
5:["$","$L2","/pricing",{"href":"/pricing","className":"flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-sliders-horizontal h-4 w-4","children":[["$","line","obuewd",{"x1":"21","x2":"14","y1":"4","y2":"4"}],["$","line","1q6298",{"x1":"10","x2":"3","y1":"4","y2":"4"}],["$","line","1iu8h1",{"x1":"21","x2":"12","y1":"12","y2":"12"}],["$","line","ntss68",{"x1":"8","x2":"3","y1":"12","y2":"12"}],["$","line","14d8ph",{"x1":"21","x2":"16","y1":"20","y2":"20"}],["$","line","m0wm8r",{"x1":"12","x2":"3","y1":"20","y2":"20"}],["$","line","14e1ph",{"x1":"14","x2":"14","y1":"2","y2":"6"}],["$","line","1i6ji0",{"x1":"8","x2":"8","y1":"10","y2":"14"}],["$","line","1lctlv",{"x1":"16","x2":"16","y1":"18","y2":"22"}],"$undefined"]}],"Pricing"]}]
|
|
16
|
+
6:["$","$L2","/diagnostics",{"href":"/diagnostics","className":"flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-clipboard-list h-4 w-4","children":[["$","rect","tgr4d6",{"width":"8","height":"4","x":"8","y":"2","rx":"1","ry":"1"}],["$","path","116196",{"d":"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"}],["$","path","1jrz19",{"d":"M12 11h4"}],["$","path","n85exb",{"d":"M12 16h4"}],["$","path","1dfujw",{"d":"M8 11h.01"}],["$","path","18s6g9",{"d":"M8 16h.01"}],"$undefined"]}],"Diagnostics"]}]
|
|
17
|
+
7:["$","$L2","/discovery",{"href":"/discovery","className":"flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-chart-column h-4 w-4","children":[["$","path","c24i48",{"d":"M3 3v16a2 2 0 0 0 2 2h16"}],["$","path","2bz60n",{"d":"M18 17V9"}],["$","path","1frdt8",{"d":"M13 17V5"}],["$","path","17ska0",{"d":"M8 17v-3"}],"$undefined"]}],"Discovery"]}]
|
|
18
|
+
8:["$","$L2","/parser-debug",{"href":"/parser-debug","className":"flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-bug h-4 w-4","children":[["$","path","fmnt4t",{"d":"m8 2 1.88 1.88"}],["$","path","qol33r",{"d":"M14.12 3.88 16 2"}],["$","path","d7y7pr",{"d":"M9 7.13v-1a3.003 3.003 0 1 1 6 0v1"}],["$","path","xs1cw7",{"d":"M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6"}],["$","path","1qisl0",{"d":"M12 20v-9"}],["$","path","32zzws",{"d":"M6.53 9C4.6 8.8 3 7.1 3 5"}],["$","path","82j7cp",{"d":"M6 13H2"}],["$","path","4p0ekp",{"d":"M3 21c0-2.1 1.7-3.9 3.8-4"}],["$","path","18gb23",{"d":"M20.97 5c0 2.1-1.6 3.8-3.5 4"}],["$","path","1jl80f",{"d":"M22 13h-4"}],["$","path","k3fwyw",{"d":"M17.2 17c2.1.1 3.8 1.9 3.8 4"}],"$undefined"]}],"Parsers"]}]
|
|
19
|
+
9:["$","$L2","/debug",{"href":"/debug","className":"flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-bug h-4 w-4","children":[["$","path","fmnt4t",{"d":"m8 2 1.88 1.88"}],["$","path","qol33r",{"d":"M14.12 3.88 16 2"}],["$","path","d7y7pr",{"d":"M9 7.13v-1a3.003 3.003 0 1 1 6 0v1"}],["$","path","xs1cw7",{"d":"M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6"}],["$","path","1qisl0",{"d":"M12 20v-9"}],["$","path","32zzws",{"d":"M6.53 9C4.6 8.8 3 7.1 3 5"}],["$","path","82j7cp",{"d":"M6 13H2"}],["$","path","4p0ekp",{"d":"M3 21c0-2.1 1.7-3.9 3.8-4"}],["$","path","18gb23",{"d":"M20.97 5c0 2.1-1.6 3.8-3.5 4"}],["$","path","1jl80f",{"d":"M22 13h-4"}],["$","path","k3fwyw",{"d":"M17.2 17c2.1.1 3.8 1.9 3.8 4"}],"$undefined"]}],"Raw Data"]}]
|
|
20
|
+
a:["$","$L2","/settings",{"href":"/settings","className":"flex items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-settings h-4 w-4","children":[["$","path","1qme2f",{"d":"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"}],["$","circle","1v7zrd",{"cx":"12","cy":"12","r":"3"}],"$undefined"]}],"Settings"]}]
|
|
21
|
+
b:["$","div",null,{"className":"border-t p-4 text-xs text-muted-foreground","children":"Local only. No telemetry. Raw content off by default."}]
|
|
22
|
+
c:["$","main",null,{"className":"min-w-0 flex-1","children":[["$","div",null,{"className":"border-b bg-card px-4 py-3 md:hidden","children":[["$","div",null,{"className":"text-sm font-semibold","children":"TokenTrace CLI"}],["$","div",null,{"className":"text-xs text-muted-foreground","children":"Local analytics dashboard"}]]}],["$","nav",null,{"className":"flex gap-2 overflow-x-auto border-b bg-card px-4 py-2 md:hidden","children":[["$","$L2","/",{"href":"/","className":"flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-gauge h-3.5 w-3.5","children":[["$","path","9kzdfg",{"d":"m12 14 4-4"}],["$","path","19p75a",{"d":"M3.34 19a10 10 0 1 1 17.32 0"}],"$undefined"]}],"Overview"]}],["$","$L2","/tools",{"href":"/tools","className":"flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-terminal h-3.5 w-3.5","children":[["$","polyline","akl6gq",{"points":"4 17 10 11 4 5"}],["$","line","q2wloq",{"x1":"12","x2":"20","y1":"19","y2":"19"}],"$undefined"]}],"Tools"]}],["$","$L2","/models",{"href":"/models","className":"flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-bot h-3.5 w-3.5","children":[["$","path","hb8ula",{"d":"M12 8V4H8"}],["$","rect","enze0r",{"width":"16","height":"12","x":"4","y":"8","rx":"2"}],["$","path","vft8re",{"d":"M2 14h2"}],["$","path","4cs60a",{"d":"M20 14h2"}],["$","path","1xurst",{"d":"M15 13v2"}],["$","path","rq6x2g",{"d":"M9 13v2"}],"$undefined"]}],"Models"]}],["$","$L2","/projects",{"href":"/projects","className":"flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-folder-git2 h-3.5 w-3.5","children":[["$","path","1w6njk",{"d":"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5"}],["$","circle","1j92g6",{"cx":"13","cy":"12","r":"2"}],["$","path","pkpw2h",{"d":"M18 19c-2.8 0-5-2.2-5-5v8"}],["$","circle","1obnsp",{"cx":"20","cy":"19","r":"2"}],"$undefined"]}],"Projects"]}],["$","$L2","/sessions",{"href":"/sessions","className":"flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-search h-3.5 w-3.5","children":[["$","circle","4ej97u",{"cx":"11","cy":"11","r":"8"}],["$","path","1qie3q",{"d":"m21 21-4.3-4.3"}],"$undefined"]}],"Sessions"]}],["$","$L2","/optimisation",{"href":"/optimisation","className":"flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-sparkles h-3.5 w-3.5","children":[["$","path","4pj2yx",{"d":"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z"}],["$","path","1olli1",{"d":"M20 3v4"}],["$","path","1gvqau",{"d":"M22 5h-4"}],["$","path","vumght",{"d":"M4 17v2"}],"$L11","$undefined"]}],"Insights"]}],"$L12","$L13","$L14","$L15","$L16","$L17"]}],"$L18"]}]
|
|
23
|
+
d:["$","$1","c",{"children":[null,["$","$L19",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L1a",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}]
|
|
24
|
+
e:["$","$1","c",{"children":[[["$","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."}]}]]}]}]],null,["$","$L1b",null,{"children":["$L1c",["$","$L1d",null,{"promise":"$@1e"}]]}]]}]
|
|
25
|
+
f:["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],[["$","$L1f",null,{"children":"$L20"}],null],["$","$L21",null,{"children":["$","div",null,{"hidden":true,"children":["$","$22",null,{"fallback":null,"children":"$L23"}]}]}]]}]
|
|
26
|
+
11:["$","path","zchphs",{"d":"M5 18H3"}]
|
|
27
|
+
12:["$","$L2","/pricing",{"href":"/pricing","className":"flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-sliders-horizontal h-3.5 w-3.5","children":[["$","line","obuewd",{"x1":"21","x2":"14","y1":"4","y2":"4"}],["$","line","1q6298",{"x1":"10","x2":"3","y1":"4","y2":"4"}],["$","line","1iu8h1",{"x1":"21","x2":"12","y1":"12","y2":"12"}],["$","line","ntss68",{"x1":"8","x2":"3","y1":"12","y2":"12"}],["$","line","14d8ph",{"x1":"21","x2":"16","y1":"20","y2":"20"}],["$","line","m0wm8r",{"x1":"12","x2":"3","y1":"20","y2":"20"}],["$","line","14e1ph",{"x1":"14","x2":"14","y1":"2","y2":"6"}],["$","line","1i6ji0",{"x1":"8","x2":"8","y1":"10","y2":"14"}],["$","line","1lctlv",{"x1":"16","x2":"16","y1":"18","y2":"22"}],"$undefined"]}],"Pricing"]}]
|
|
28
|
+
13:["$","$L2","/diagnostics",{"href":"/diagnostics","className":"flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-clipboard-list h-3.5 w-3.5","children":[["$","rect","tgr4d6",{"width":"8","height":"4","x":"8","y":"2","rx":"1","ry":"1"}],["$","path","116196",{"d":"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"}],["$","path","1jrz19",{"d":"M12 11h4"}],["$","path","n85exb",{"d":"M12 16h4"}],["$","path","1dfujw",{"d":"M8 11h.01"}],["$","path","18s6g9",{"d":"M8 16h.01"}],"$undefined"]}],"Diagnostics"]}]
|
|
29
|
+
14:["$","$L2","/discovery",{"href":"/discovery","className":"flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-chart-column h-3.5 w-3.5","children":[["$","path","c24i48",{"d":"M3 3v16a2 2 0 0 0 2 2h16"}],["$","path","2bz60n",{"d":"M18 17V9"}],["$","path","1frdt8",{"d":"M13 17V5"}],["$","path","17ska0",{"d":"M8 17v-3"}],"$undefined"]}],"Discovery"]}]
|
|
30
|
+
15:["$","$L2","/parser-debug",{"href":"/parser-debug","className":"flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-bug h-3.5 w-3.5","children":[["$","path","fmnt4t",{"d":"m8 2 1.88 1.88"}],["$","path","qol33r",{"d":"M14.12 3.88 16 2"}],["$","path","d7y7pr",{"d":"M9 7.13v-1a3.003 3.003 0 1 1 6 0v1"}],["$","path","xs1cw7",{"d":"M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6"}],["$","path","1qisl0",{"d":"M12 20v-9"}],["$","path","32zzws",{"d":"M6.53 9C4.6 8.8 3 7.1 3 5"}],["$","path","82j7cp",{"d":"M6 13H2"}],["$","path","4p0ekp",{"d":"M3 21c0-2.1 1.7-3.9 3.8-4"}],["$","path","18gb23",{"d":"M20.97 5c0 2.1-1.6 3.8-3.5 4"}],["$","path","1jl80f",{"d":"M22 13h-4"}],["$","path","k3fwyw",{"d":"M17.2 17c2.1.1 3.8 1.9 3.8 4"}],"$undefined"]}],"Parsers"]}]
|
|
31
|
+
16:["$","$L2","/debug",{"href":"/debug","className":"flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-bug h-3.5 w-3.5","children":[["$","path","fmnt4t",{"d":"m8 2 1.88 1.88"}],["$","path","qol33r",{"d":"M14.12 3.88 16 2"}],["$","path","d7y7pr",{"d":"M9 7.13v-1a3.003 3.003 0 1 1 6 0v1"}],["$","path","xs1cw7",{"d":"M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6"}],["$","path","1qisl0",{"d":"M12 20v-9"}],["$","path","32zzws",{"d":"M6.53 9C4.6 8.8 3 7.1 3 5"}],["$","path","82j7cp",{"d":"M6 13H2"}],["$","path","4p0ekp",{"d":"M3 21c0-2.1 1.7-3.9 3.8-4"}],["$","path","18gb23",{"d":"M20.97 5c0 2.1-1.6 3.8-3.5 4"}],["$","path","1jl80f",{"d":"M22 13h-4"}],["$","path","k3fwyw",{"d":"M17.2 17c2.1.1 3.8 1.9 3.8 4"}],"$undefined"]}],"Raw Data"]}]
|
|
32
|
+
17:["$","$L2","/settings",{"href":"/settings","className":"flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-xs text-muted-foreground","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-settings h-3.5 w-3.5","children":[["$","path","1qme2f",{"d":"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"}],["$","circle","1v7zrd",{"cx":"12","cy":"12","r":"3"}],"$undefined"]}],"Settings"]}]
|
|
33
|
+
18:["$","div",null,{"className":"mx-auto w-full max-w-7xl px-4 py-6 sm:px-6 lg:px-8","children":["$","$L19",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L1a",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}]
|
|
34
|
+
20:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
35
|
+
1c:null
|
|
36
|
+
1e:{"metadata":[["$","title","0",{"children":"TokenTrace CLI"}],["$","meta","1",{"name":"description","content":"Local-first AI CLI token and cost analytics"}]],"error":null,"digest":"$undefined"}
|
|
37
|
+
23:"$1e:metadata"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(()=>{var a={};a.id=70,a.ids=[70],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},40670:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{GET:()=>x,dynamic:()=>w});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(66444);let w="force-dynamic";async function x(){return u.NextResponse.json((0,v.v)())}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/analytics/route",pathname:"/api/analytics",filename:"route",bundlePath:"app/api/analytics/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/abhyoh/Documents/Brand/Apps/token-usage/app/api/analytics/route.ts",nextConfigOutput:"",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){var d;let e="/api/analytics/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},76760:a=>{"use strict";a.exports=require("node:path")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},96487:()=>{}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[331,237,692,444],()=>b(b.s=40670));module.exports=c})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":1,"files":["../../../../../.tokentrace/tokentrace.db","../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../node_modules/better-sqlite3/package.json","../../../../../node_modules/bindings/bindings.js","../../../../../node_modules/bindings/package.json","../../../../../node_modules/file-uri-to-path/index.js","../../../../../node_modules/file-uri-to-path/package.json","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../package.json","../../../chunks/237.js","../../../chunks/331.js","../../../chunks/444.js","../../../chunks/692.js","../../../webpack-runtime.js","route_client-reference-manifest.js"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/analytics/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"5813":{"*":{"id":"1551","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"23050":{"*":{"id":"30438","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"33055":{"*":{"id":"13879","name":"*","chunks":[],"async":false}},"36918":{"*":{"id":"13860","name":"*","chunks":[],"async":false}},"40675":{"*":{"id":"37524","name":"*","chunks":[],"async":false}},"52619":{"*":{"id":"3991","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/abhyoh/Documents/Brand/Apps/token-usage/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/abhyoh/Documents/Brand/Apps/token-usage/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/abhyoh/Documents/Brand/Apps/token-usage/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/abhyoh/Documents/Brand/Apps/token-usage/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/abhyoh/Documents/Brand/Apps/token-usage/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/abhyoh/Documents/Brand/Apps/token-usage/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/abhyoh/Documents/Brand/Apps/token-usage/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/abhyoh/Documents/Brand/Apps/token-usage/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/abhyoh/Documents/Brand/Apps/token-usage/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/abhyoh/Documents/Brand/Apps/token-usage/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/abhyoh/Documents/Brand/Apps/token-usage/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/abhyoh/Documents/Brand/Apps/token-usage/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/abhyoh/Documents/Brand/Apps/token-usage/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/abhyoh/Documents/Brand/Apps/token-usage/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/abhyoh/Documents/Brand/Apps/token-usage/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/abhyoh/Documents/Brand/Apps/token-usage/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/abhyoh/Documents/Brand/Apps/token-usage/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/abhyoh/Documents/Brand/Apps/token-usage/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/abhyoh/Documents/Brand/Apps/token-usage/app/globals.css":{"id":41290,"name":"*","chunks":["619","static/chunks/619-f072ac750404f9da.js","558","static/chunks/app/layout-8942804176ff26f3.js"],"async":false},"/Users/abhyoh/Documents/Brand/Apps/token-usage/node_modules/next/dist/client/app-dir/link.js":{"id":52619,"name":"*","chunks":["125","static/chunks/125-ab0f8db8f84c1166.js","938","static/chunks/938-23236de1c47554ea.js","619","static/chunks/619-f072ac750404f9da.js","850","static/chunks/850-8bc31e41590b5831.js","974","static/chunks/app/page-b6886ec802c03cbf.js"],"async":false},"/Users/abhyoh/Documents/Brand/Apps/token-usage/node_modules/next/dist/esm/client/app-dir/link.js":{"id":52619,"name":"*","chunks":["125","static/chunks/125-ab0f8db8f84c1166.js","938","static/chunks/938-23236de1c47554ea.js","619","static/chunks/619-f072ac750404f9da.js","850","static/chunks/850-8bc31e41590b5831.js","974","static/chunks/app/page-b6886ec802c03cbf.js"],"async":false},"/Users/abhyoh/Documents/Brand/Apps/token-usage/components/pricing-settings.tsx":{"id":40675,"name":"*","chunks":[],"async":false},"/Users/abhyoh/Documents/Brand/Apps/token-usage/components/session-explorer.tsx":{"id":33055,"name":"*","chunks":[],"async":false},"/Users/abhyoh/Documents/Brand/Apps/token-usage/components/charts/rank-bar-chart.tsx":{"id":5813,"name":"*","chunks":["125","static/chunks/125-ab0f8db8f84c1166.js","938","static/chunks/938-23236de1c47554ea.js","619","static/chunks/619-f072ac750404f9da.js","850","static/chunks/850-8bc31e41590b5831.js","974","static/chunks/app/page-b6886ec802c03cbf.js"],"async":false},"/Users/abhyoh/Documents/Brand/Apps/token-usage/components/charts/trend-chart.tsx":{"id":23050,"name":"*","chunks":["125","static/chunks/125-ab0f8db8f84c1166.js","938","static/chunks/938-23236de1c47554ea.js","619","static/chunks/619-f072ac750404f9da.js","850","static/chunks/850-8bc31e41590b5831.js","974","static/chunks/app/page-b6886ec802c03cbf.js"],"async":false},"/Users/abhyoh/Documents/Brand/Apps/token-usage/components/settings-panel.tsx":{"id":36918,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/abhyoh/Documents/Brand/Apps/token-usage/":[],"/Users/abhyoh/Documents/Brand/Apps/token-usage/app/layout":[{"inlined":false,"path":"static/css/366bb38b386229a5.css"}],"/Users/abhyoh/Documents/Brand/Apps/token-usage/app/page":[],"/Users/abhyoh/Documents/Brand/Apps/token-usage/app/api/analytics/route":[]},"rscModuleMapping":{"5813":{"*":{"id":"62317","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"23050":{"*":{"id":"25268","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"33055":{"*":{"id":"44300","name":"*","chunks":[],"async":false}},"36918":{"*":{"id":"3570","name":"*","chunks":[],"async":false}},"40675":{"*":{"id":"61488","name":"*","chunks":[],"async":false}},"41290":{"*":{"id":"82704","name":"*","chunks":[],"async":false}},"52619":{"*":{"id":"65169","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
(()=>{var a={};a.id=606,a.ids=[606],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16488:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{DELETE:()=>x,dynamic:()=>w});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(76846);let w="force-dynamic";async function x(){return(0,v.s0)(),u.NextResponse.json({ok:!0})}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/data/route",pathname:"/api/data",filename:"route",bundlePath:"app/api/data/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/abhyoh/Documents/Brand/Apps/token-usage/app/api/data/route.ts",nextConfigOutput:"",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){var d;let e="/api/data/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30727:(a,b,c)=>{"use strict";c.d(b,{sW:()=>g,dD:()=>f});let d=require("node:crypto");var e=c.n(d);function f(a,b){let c=e().createHash("sha1").update(b.map(a=>String(a??"")).join("\x1f")).digest("hex").slice(0,24);return`${a}_${c}`}function g(a){return e().createHash("sha256").update(a).digest("hex")}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74608:(a,b,c)=>{"use strict";c.r(b),c.d(b,{interactionRelations:()=>z,interactions:()=>p,modelRelations:()=>w,models:()=>m,projectRelations:()=>x,projects:()=>n,providerRelations:()=>u,providers:()=>k,scanFiles:()=>s,scanRuns:()=>r,sessionRelations:()=>y,sessions:()=>o,settings:()=>t,toolCalls:()=>q,toolRelations:()=>v,tools:()=>l});var d=c(85766),e=c(47543),f=c(95417),g=c(58040),h=c(20377),i=c(4035),j=c(19643);let k=(0,f.D)("providers",{id:(0,g.Qq)("id").primaryKey(),name:(0,g.Qq)("name").notNull(),type:(0,g.Qq)("type").notNull(),createdAt:(0,h.nd)("created_at",{mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date)}),l=(0,f.D)("tools",{id:(0,g.Qq)("id").primaryKey(),providerId:(0,g.Qq)("provider_id").notNull().references(()=>k.id,{onDelete:"cascade"}),name:(0,g.Qq)("name").notNull(),createdAt:(0,h.nd)("created_at",{mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date)},a=>({providerNameIdx:(0,i.GL)("tools_provider_name_idx").on(a.providerId,a.name)})),m=(0,f.D)("models",{id:(0,g.Qq)("id").primaryKey(),providerId:(0,g.Qq)("provider_id").notNull().references(()=>k.id,{onDelete:"cascade"}),name:(0,g.Qq)("name").notNull(),inputTokenPrice:(0,j.x)("input_token_price"),outputTokenPrice:(0,j.x)("output_token_price"),cachedInputTokenPrice:(0,j.x)("cached_input_token_price"),currency:(0,g.Qq)("currency").notNull().default("USD"),effectiveFrom:(0,h.nd)("effective_from",{mode:"timestamp_ms"}),rawMetadata:(0,g.Qq)("raw_metadata",{mode:"json"}).$type()},a=>({providerModelIdx:(0,i.GL)("models_provider_name_idx").on(a.providerId,a.name)})),n=(0,f.D)("projects",{id:(0,g.Qq)("id").primaryKey(),name:(0,g.Qq)("name").notNull(),path:(0,g.Qq)("path").notNull(),createdAt:(0,h.nd)("created_at",{mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date)},a=>({pathIdx:(0,i.GL)("projects_path_idx").on(a.path)})),o=(0,f.D)("sessions",{id:(0,g.Qq)("id").primaryKey(),sourceId:(0,g.Qq)("source_id").notNull(),toolId:(0,g.Qq)("tool_id").notNull().references(()=>l.id,{onDelete:"cascade"}),projectId:(0,g.Qq)("project_id").references(()=>n.id,{onDelete:"set null"}),startedAt:(0,h.nd)("started_at",{mode:"timestamp_ms"}),endedAt:(0,h.nd)("ended_at",{mode:"timestamp_ms"}),title:(0,g.Qq)("title"),sourceFile:(0,g.Qq)("source_file").notNull(),rawMetadata:(0,g.Qq)("raw_metadata",{mode:"json"}).$type()},a=>({sourceIdx:(0,i.GL)("sessions_source_id_idx").on(a.sourceId),toolIdx:(0,i.Pe)("sessions_tool_idx").on(a.toolId),projectIdx:(0,i.Pe)("sessions_project_idx").on(a.projectId),startedIdx:(0,i.Pe)("sessions_started_idx").on(a.startedAt)})),p=(0,f.D)("interactions",{id:(0,g.Qq)("id").primaryKey(),sourceId:(0,g.Qq)("source_id").notNull(),sessionId:(0,g.Qq)("session_id").notNull().references(()=>o.id,{onDelete:"cascade"}),timestamp:(0,h.nd)("timestamp",{mode:"timestamp_ms"}),role:(0,g.Qq)("role").notNull(),modelId:(0,g.Qq)("model_id").references(()=>m.id,{onDelete:"set null"}),inputTokens:(0,h.nd)("input_tokens").notNull().default(0),outputTokens:(0,h.nd)("output_tokens").notNull().default(0),cacheReadTokens:(0,h.nd)("cache_read_tokens").notNull().default(0),cacheWriteTokens:(0,h.nd)("cache_write_tokens").notNull().default(0),reasoningTokens:(0,h.nd)("reasoning_tokens").notNull().default(0),totalTokens:(0,h.nd)("total_tokens").notNull().default(0),estimatedTokens:(0,h.nd)("estimated_tokens",{mode:"boolean"}).notNull().default(!1),tokenConfidence:(0,g.Qq)("token_confidence").notNull().default("unknown"),cost:(0,j.x)("cost"),costEstimated:(0,h.nd)("cost_estimated",{mode:"boolean"}).notNull().default(!1),latencyMs:(0,h.nd)("latency_ms"),rawTextPreview:(0,g.Qq)("raw_text_preview"),rawText:(0,g.Qq)("raw_text"),rawMetadata:(0,g.Qq)("raw_metadata",{mode:"json"}).$type()},a=>({sourceIdx:(0,i.GL)("interactions_source_id_idx").on(a.sourceId),sessionIdx:(0,i.Pe)("interactions_session_idx").on(a.sessionId),modelIdx:(0,i.Pe)("interactions_model_idx").on(a.modelId),timestampIdx:(0,i.Pe)("interactions_timestamp_idx").on(a.timestamp)})),q=(0,f.D)("tool_calls",{id:(0,g.Qq)("id").primaryKey(),interactionId:(0,g.Qq)("interaction_id").notNull().references(()=>p.id,{onDelete:"cascade"}),name:(0,g.Qq)("name").notNull(),status:(0,g.Qq)("status"),durationMs:(0,h.nd)("duration_ms"),rawMetadata:(0,g.Qq)("raw_metadata",{mode:"json"}).$type()},a=>({interactionIdx:(0,i.Pe)("tool_calls_interaction_idx").on(a.interactionId)})),r=(0,f.D)("scan_runs",{id:(0,g.Qq)("id").primaryKey(),startedAt:(0,h.nd)("started_at",{mode:"timestamp_ms"}).notNull(),completedAt:(0,h.nd)("completed_at",{mode:"timestamp_ms"}),filesScanned:(0,h.nd)("files_scanned").notNull().default(0),recordsImported:(0,h.nd)("records_imported").notNull().default(0),warnings:(0,g.Qq)("warnings",{mode:"json"}).$type().notNull().default((0,d.ll)`'[]'`),errors:(0,g.Qq)("errors",{mode:"json"}).$type().notNull().default((0,d.ll)`'[]'`)}),s=(0,f.D)("scan_files",{id:(0,g.Qq)("id").primaryKey(),scanRunId:(0,g.Qq)("scan_run_id").notNull().references(()=>r.id,{onDelete:"cascade"}),path:(0,g.Qq)("path").notNull(),modifiedTime:(0,h.nd)("modified_time",{mode:"timestamp_ms"}),sizeBytes:(0,h.nd)("size_bytes").notNull().default(0),fileHash:(0,g.Qq)("file_hash"),parser:(0,g.Qq)("parser"),status:(0,g.Qq)("status").notNull(),recordsImported:(0,h.nd)("records_imported").notNull().default(0),warnings:(0,g.Qq)("warnings",{mode:"json"}).$type().notNull().default((0,d.ll)`'[]'`),errors:(0,g.Qq)("errors",{mode:"json"}).$type().notNull().default((0,d.ll)`'[]'`),rawMetadata:(0,g.Qq)("raw_metadata",{mode:"json"}).$type()},a=>({pathHashIdx:(0,i.Pe)("scan_files_path_hash_idx").on(a.path,a.fileHash),scanRunIdx:(0,i.Pe)("scan_files_run_idx").on(a.scanRunId)})),t=(0,f.D)("settings",{key:(0,g.Qq)("key").primaryKey(),value:(0,g.Qq)("value",{mode:"json"}).$type().notNull(),updatedAt:(0,h.nd)("updated_at",{mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date)}),u=(0,e.K1)(k,({many:a})=>({tools:a(l),models:a(m)})),v=(0,e.K1)(l,({one:a,many:b})=>({provider:a(k,{fields:[l.providerId],references:[k.id]}),sessions:b(o)})),w=(0,e.K1)(m,({one:a,many:b})=>({provider:a(k,{fields:[m.providerId],references:[k.id]}),interactions:b(p)})),x=(0,e.K1)(n,({many:a})=>({sessions:a(o)})),y=(0,e.K1)(o,({one:a,many:b})=>({tool:a(l,{fields:[o.toolId],references:[l.id]}),project:a(n,{fields:[o.projectId],references:[n.id]}),interactions:b(p)})),z=(0,e.K1)(p,({one:a,many:b})=>({session:a(o,{fields:[p.sessionId],references:[o.id]}),model:a(m,{fields:[p.modelId],references:[m.id]}),toolCalls:b(q)}))},76760:a=>{"use strict";a.exports=require("node:path")},76846:(a,b,c)=>{"use strict";c.d(b,{MA:()=>f,Q7:()=>g,s0:()=>h});var d=c(89820),e=c(30727);function f(){return d.F.prepare(`SELECT m.id, p.id AS providerId, p.name AS provider, m.name AS model,
|
|
2
|
+
m.input_token_price AS inputTokenPrice,
|
|
3
|
+
m.output_token_price AS outputTokenPrice,
|
|
4
|
+
m.cached_input_token_price AS cachedInputTokenPrice,
|
|
5
|
+
m.currency,
|
|
6
|
+
m.effective_from AS effectiveFrom
|
|
7
|
+
FROM models m
|
|
8
|
+
JOIN providers p ON p.id = m.provider_id
|
|
9
|
+
ORDER BY p.name ASC, m.name ASC`).all()}function g(a){let b=a.providerName?.trim()||a.providerId;d.F.prepare("INSERT OR IGNORE INTO providers (id, name, type) VALUES (?, ?, 'llm-provider')").run(a.providerId,b);let c=d.F.prepare("SELECT id FROM models WHERE provider_id = ? AND lower(name) = lower(?)").get(a.providerId,a.model),f=c?.id??(0,e.dD)("model",[a.providerId,a.model]);return d.F.prepare(`INSERT INTO models
|
|
10
|
+
(id, provider_id, name, input_token_price, output_token_price, cached_input_token_price, currency, effective_from)
|
|
11
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
|
12
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
13
|
+
input_token_price = excluded.input_token_price,
|
|
14
|
+
output_token_price = excluded.output_token_price,
|
|
15
|
+
cached_input_token_price = excluded.cached_input_token_price,
|
|
16
|
+
currency = excluded.currency,
|
|
17
|
+
effective_from = excluded.effective_from`).run(f,a.providerId,a.model,a.inputTokenPrice,a.outputTokenPrice,a.cachedInputTokenPrice,a.currency||"USD",Date.now()),f}function h(){d.F.exec(`
|
|
18
|
+
DELETE FROM tool_calls;
|
|
19
|
+
DELETE FROM interactions;
|
|
20
|
+
DELETE FROM sessions;
|
|
21
|
+
DELETE FROM projects;
|
|
22
|
+
DELETE FROM scan_files;
|
|
23
|
+
DELETE FROM scan_runs;
|
|
24
|
+
`)}},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},89820:(a,b,c)=>{"use strict";c.d(b,{db:()=>q,X:()=>r,F:()=>p});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(73136),i=c(87550),j=c.n(i),k=c(64947);let l=`
|
|
25
|
+
PRAGMA journal_mode = WAL;
|
|
26
|
+
PRAGMA foreign_keys = ON;
|
|
27
|
+
|
|
28
|
+
CREATE TABLE IF NOT EXISTS providers (
|
|
29
|
+
id TEXT PRIMARY KEY,
|
|
30
|
+
name TEXT NOT NULL,
|
|
31
|
+
type TEXT NOT NULL,
|
|
32
|
+
created_at INTEGER NOT NULL DEFAULT (unixepoch() * 1000)
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
CREATE TABLE IF NOT EXISTS tools (
|
|
36
|
+
id TEXT PRIMARY KEY,
|
|
37
|
+
provider_id TEXT NOT NULL REFERENCES providers(id) ON DELETE CASCADE,
|
|
38
|
+
name TEXT NOT NULL,
|
|
39
|
+
created_at INTEGER NOT NULL DEFAULT (unixepoch() * 1000)
|
|
40
|
+
);
|
|
41
|
+
CREATE UNIQUE INDEX IF NOT EXISTS tools_provider_name_idx ON tools(provider_id, name);
|
|
42
|
+
|
|
43
|
+
CREATE TABLE IF NOT EXISTS models (
|
|
44
|
+
id TEXT PRIMARY KEY,
|
|
45
|
+
provider_id TEXT NOT NULL REFERENCES providers(id) ON DELETE CASCADE,
|
|
46
|
+
name TEXT NOT NULL,
|
|
47
|
+
input_token_price REAL,
|
|
48
|
+
output_token_price REAL,
|
|
49
|
+
cached_input_token_price REAL,
|
|
50
|
+
currency TEXT NOT NULL DEFAULT 'USD',
|
|
51
|
+
effective_from INTEGER,
|
|
52
|
+
raw_metadata TEXT
|
|
53
|
+
);
|
|
54
|
+
CREATE UNIQUE INDEX IF NOT EXISTS models_provider_name_idx ON models(provider_id, name);
|
|
55
|
+
|
|
56
|
+
CREATE TABLE IF NOT EXISTS projects (
|
|
57
|
+
id TEXT PRIMARY KEY,
|
|
58
|
+
name TEXT NOT NULL,
|
|
59
|
+
path TEXT NOT NULL,
|
|
60
|
+
created_at INTEGER NOT NULL DEFAULT (unixepoch() * 1000)
|
|
61
|
+
);
|
|
62
|
+
CREATE UNIQUE INDEX IF NOT EXISTS projects_path_idx ON projects(path);
|
|
63
|
+
|
|
64
|
+
CREATE TABLE IF NOT EXISTS sessions (
|
|
65
|
+
id TEXT PRIMARY KEY,
|
|
66
|
+
source_id TEXT NOT NULL,
|
|
67
|
+
tool_id TEXT NOT NULL REFERENCES tools(id) ON DELETE CASCADE,
|
|
68
|
+
project_id TEXT REFERENCES projects(id) ON DELETE SET NULL,
|
|
69
|
+
started_at INTEGER,
|
|
70
|
+
ended_at INTEGER,
|
|
71
|
+
title TEXT,
|
|
72
|
+
source_file TEXT NOT NULL,
|
|
73
|
+
raw_metadata TEXT
|
|
74
|
+
);
|
|
75
|
+
CREATE UNIQUE INDEX IF NOT EXISTS sessions_source_id_idx ON sessions(source_id);
|
|
76
|
+
CREATE INDEX IF NOT EXISTS sessions_tool_idx ON sessions(tool_id);
|
|
77
|
+
CREATE INDEX IF NOT EXISTS sessions_project_idx ON sessions(project_id);
|
|
78
|
+
CREATE INDEX IF NOT EXISTS sessions_started_idx ON sessions(started_at);
|
|
79
|
+
|
|
80
|
+
CREATE TABLE IF NOT EXISTS interactions (
|
|
81
|
+
id TEXT PRIMARY KEY,
|
|
82
|
+
source_id TEXT NOT NULL,
|
|
83
|
+
session_id TEXT NOT NULL REFERENCES sessions(id) ON DELETE CASCADE,
|
|
84
|
+
timestamp INTEGER,
|
|
85
|
+
role TEXT NOT NULL,
|
|
86
|
+
model_id TEXT REFERENCES models(id) ON DELETE SET NULL,
|
|
87
|
+
input_tokens INTEGER NOT NULL DEFAULT 0,
|
|
88
|
+
output_tokens INTEGER NOT NULL DEFAULT 0,
|
|
89
|
+
cache_read_tokens INTEGER NOT NULL DEFAULT 0,
|
|
90
|
+
cache_write_tokens INTEGER NOT NULL DEFAULT 0,
|
|
91
|
+
reasoning_tokens INTEGER NOT NULL DEFAULT 0,
|
|
92
|
+
total_tokens INTEGER NOT NULL DEFAULT 0,
|
|
93
|
+
estimated_tokens INTEGER NOT NULL DEFAULT 0,
|
|
94
|
+
token_confidence TEXT NOT NULL DEFAULT 'unknown',
|
|
95
|
+
cost REAL,
|
|
96
|
+
cost_estimated INTEGER NOT NULL DEFAULT 0,
|
|
97
|
+
latency_ms INTEGER,
|
|
98
|
+
raw_text_preview TEXT,
|
|
99
|
+
raw_text TEXT,
|
|
100
|
+
raw_metadata TEXT
|
|
101
|
+
);
|
|
102
|
+
CREATE UNIQUE INDEX IF NOT EXISTS interactions_source_id_idx ON interactions(source_id);
|
|
103
|
+
CREATE INDEX IF NOT EXISTS interactions_session_idx ON interactions(session_id);
|
|
104
|
+
CREATE INDEX IF NOT EXISTS interactions_model_idx ON interactions(model_id);
|
|
105
|
+
CREATE INDEX IF NOT EXISTS interactions_timestamp_idx ON interactions(timestamp);
|
|
106
|
+
|
|
107
|
+
PRAGMA user_version;
|
|
108
|
+
|
|
109
|
+
CREATE TABLE IF NOT EXISTS tool_calls (
|
|
110
|
+
id TEXT PRIMARY KEY,
|
|
111
|
+
interaction_id TEXT NOT NULL REFERENCES interactions(id) ON DELETE CASCADE,
|
|
112
|
+
name TEXT NOT NULL,
|
|
113
|
+
status TEXT,
|
|
114
|
+
duration_ms INTEGER,
|
|
115
|
+
raw_metadata TEXT
|
|
116
|
+
);
|
|
117
|
+
CREATE INDEX IF NOT EXISTS tool_calls_interaction_idx ON tool_calls(interaction_id);
|
|
118
|
+
|
|
119
|
+
CREATE TABLE IF NOT EXISTS scan_runs (
|
|
120
|
+
id TEXT PRIMARY KEY,
|
|
121
|
+
started_at INTEGER NOT NULL,
|
|
122
|
+
completed_at INTEGER,
|
|
123
|
+
files_scanned INTEGER NOT NULL DEFAULT 0,
|
|
124
|
+
records_imported INTEGER NOT NULL DEFAULT 0,
|
|
125
|
+
warnings TEXT NOT NULL DEFAULT '[]',
|
|
126
|
+
errors TEXT NOT NULL DEFAULT '[]'
|
|
127
|
+
);
|
|
128
|
+
|
|
129
|
+
CREATE TABLE IF NOT EXISTS scan_files (
|
|
130
|
+
id TEXT PRIMARY KEY,
|
|
131
|
+
scan_run_id TEXT NOT NULL REFERENCES scan_runs(id) ON DELETE CASCADE,
|
|
132
|
+
path TEXT NOT NULL,
|
|
133
|
+
modified_time INTEGER,
|
|
134
|
+
size_bytes INTEGER NOT NULL DEFAULT 0,
|
|
135
|
+
file_hash TEXT,
|
|
136
|
+
parser TEXT,
|
|
137
|
+
status TEXT NOT NULL,
|
|
138
|
+
records_imported INTEGER NOT NULL DEFAULT 0,
|
|
139
|
+
warnings TEXT NOT NULL DEFAULT '[]',
|
|
140
|
+
errors TEXT NOT NULL DEFAULT '[]',
|
|
141
|
+
raw_metadata TEXT
|
|
142
|
+
);
|
|
143
|
+
CREATE INDEX IF NOT EXISTS scan_files_path_hash_idx ON scan_files(path, file_hash);
|
|
144
|
+
CREATE INDEX IF NOT EXISTS scan_files_run_idx ON scan_files(scan_run_id);
|
|
145
|
+
|
|
146
|
+
CREATE TABLE IF NOT EXISTS settings (
|
|
147
|
+
key TEXT PRIMARY KEY,
|
|
148
|
+
value TEXT NOT NULL,
|
|
149
|
+
updated_at INTEGER NOT NULL DEFAULT (unixepoch() * 1000)
|
|
150
|
+
);
|
|
151
|
+
`;var m=c(74608);let n=g().join(process.cwd(),".tokentrace","tokentrace.db"),o=process.env.TOKENTRACE_DB??function(a){if(!a?.startsWith("file:"))return null;try{return(0,h.fileURLToPath)(a)}catch{return a.slice(5)}}(process.env.DATABASE_URL)??n;e().mkdirSync(g().dirname(o),{recursive:!0});let p=new(j())(o);p.pragma("foreign_keys = ON"),function(a){if(a.exec(l),!a.prepare("PRAGMA table_info(interactions)").all().some(a=>"token_confidence"===a.name))try{a.exec("ALTER TABLE interactions ADD COLUMN token_confidence TEXT NOT NULL DEFAULT 'unknown'")}catch(a){if(!(a instanceof Error)||!a.message.toLowerCase().includes("duplicate column"))throw a}}(p);let q=(0,k.f)(p,{schema:m});function r(){return o}},96487:()=>{}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[331,237,692],()=>b(b.s=16488));module.exports=c})();
|