projectlens 0.1.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,17 +1,21 @@
1
- # CodeLens CLI
1
+ # Projectlens CLI
2
2
 
3
3
  Local lint, type-check & AI security dashboard for JS/TS projects (Next.js, SvelteKit, Vue, plain Node).
4
4
 
5
- Run one command inside any project and CodeLens runs your **real** ESLint and
5
+ | | |
6
+ |---|---|
7
+ | ![Overview](https://raw.githubusercontent.com/dagmawibabi/projectlens/main/assets/overview.png) | ![Lint](https://raw.githubusercontent.com/dagmawibabi/projectlens/main/assets/lint.png) |
8
+
9
+ Run one command inside any project and Projectlens runs your **real** ESLint and
6
10
  TypeScript toolchain, audits your dependencies, runs an AI security review over
7
11
  your source, and opens a live dashboard at `localhost:4321`.
8
12
 
9
13
  ```bash
10
- codelens # run checks + open the dashboard
11
- codelens --no-ai # skip the AI security pass (lint + types only)
12
- codelens --ci # run once, print a summary, exit non-zero on issues
13
- codelens --json # print the full report as JSON and exit
14
- codelens --min-score 80 # in --ci mode, fail if health score < 80
14
+ projectlens # run checks + open the dashboard
15
+ projectlens --no-ai # skip the AI security pass (lint + types only)
16
+ projectlens --ci # run once, print summary, exit non-zero on issues
17
+ projectlens --json # print the full report as JSON and exit
18
+ projectlens --min-score 80 # in --ci mode, fail if health score < 80
15
19
  ```
16
20
 
17
21
  ## What the dashboard shows
@@ -20,7 +24,7 @@ The dashboard turns one run into a navigable workspace:
20
24
 
21
25
  - **Overview** — composite health score, severity breakdown, and per-category summaries.
22
26
  - **Trends** — an interactive multi-metric chart and per-run history table built from
23
- the local `.codelens/` run history (deltas, peak/low/avg).
27
+ the local `.projectlens/` run history (deltas, peak/low/avg).
24
28
  - **Code quality** — Lint, Types, and Tests findings from your real toolchain.
25
29
  - **Security** — AI security review with severity sub-tabs (Critical → Info).
26
30
  - **Dependencies** — real CVE advisories with fix-version guidance.
@@ -46,6 +50,17 @@ already on your worklist at a glance.
46
50
  The board is stored only in your browser (localStorage) — it never leaves your machine or
47
51
  reaches the CLI. Manage or reset it from **Settings → Task board**.
48
52
 
53
+ ## Screenshots
54
+
55
+ | | |
56
+ |---|---|
57
+ | ![Overview](https://raw.githubusercontent.com/dagmawibabi/projectlens/main/assets/overview.png) | ![Lint](https://raw.githubusercontent.com/dagmawibabi/projectlens/main/assets/lint.png) |
58
+ | ![Type](https://raw.githubusercontent.com/dagmawibabi/projectlens/main/assets/type.png) | ![Trend](https://raw.githubusercontent.com/dagmawibabi/projectlens/main/assets/trend.png) |
59
+ | ![Dependencies](https://raw.githubusercontent.com/dagmawibabi/projectlens/main/assets/dependencies.png) | ![Statistics](https://raw.githubusercontent.com/dagmawibabi/projectlens/main/assets/statistics.png) |
60
+ | ![Security](https://raw.githubusercontent.com/dagmawibabi/projectlens/main/assets/security.png) | ![Database](https://raw.githubusercontent.com/dagmawibabi/projectlens/main/assets/database.png) |
61
+ | ![Git](https://raw.githubusercontent.com/dagmawibabi/projectlens/main/assets/git.png) | ![Task Manager](https://raw.githubusercontent.com/dagmawibabi/projectlens/main/assets/task-manager.png) |
62
+ | ![Details](https://raw.githubusercontent.com/dagmawibabi/projectlens/main/assets/details.png) | ![Docs](https://raw.githubusercontent.com/dagmawibabi/projectlens/main/assets/docs.png) |
63
+
49
64
  ## How it works
50
65
 
51
66
  ```
@@ -57,7 +72,7 @@ runners/tsc.ts spawns tsc --pretty false, parses the diagnostic chain
57
72
  runners/audit.ts npm/pnpm/yarn audit --json → real CVE advisories
58
73
  ai/audit.ts AI SDK security review (code) + dependency prioritization
59
74
  report.ts weighted composite health score
60
- store.ts local run history in .codelens/ (powers trends)
75
+ store.ts local run history in .projectlens/ (powers trends)
61
76
  server.ts local HTTP + WebSocket server that serves the dashboard
62
77
  ```
63
78
 
@@ -74,7 +89,7 @@ pnpm build # builds the dashboard into ./public, then bundles the CLI
74
89
 
75
90
  `pnpm build` runs two steps:
76
91
  1. `build:dashboard` — static-exports the Next.js dashboard (with
77
- `CODELENS_EXPORT=1`) and copies it into `cli/public`.
92
+ `PROJECTLENS_EXPORT=1`) and copies it into `cli/public`.
78
93
  2. `tsup` — bundles `src/` into `dist/`.
79
94
 
80
95
  ## Installing it into your own projects
@@ -87,7 +102,7 @@ pnpm build
87
102
  pnpm link --global
88
103
 
89
104
  cd ~/your-project
90
- codelens
105
+ projectlens
91
106
  ```
92
107
 
93
108
  **Run directly by path (no linking):**
@@ -96,7 +111,7 @@ codelens
96
111
  node ~/path/to/cli/dist/cli.js
97
112
  ```
98
113
 
99
- **Publish (optional, for `npx codelens`):**
114
+ **Publish (optional, for `npx projectlens`):**
100
115
 
101
116
  ```bash
102
117
  cd cli
@@ -105,7 +120,7 @@ npm publish
105
120
 
106
121
  ## AI security audit
107
122
 
108
- The AI pass needs a model key. CodeLens uses the Vercel AI Gateway, so set one of:
123
+ The AI pass needs a model key. Projectlens uses the Vercel AI Gateway, so set one of:
109
124
 
110
125
  ```bash
111
126
  export AI_GATEWAY_API_KEY=... # recommended
@@ -116,11 +131,11 @@ export OPENAI_API_KEY=...
116
131
  By default the audit runs on a **free** OpenRouter text model
117
132
  (`meta-llama/llama-3.3-70b-instruct:free`) and automatically **falls back** to
118
133
  `google/gemini-2.5-flash` if the primary model errors or is rate-limited, so the
119
- review keeps working out of the box. Override either via env or `.codelensrc`:
134
+ review keeps working out of the box. Override either via env or `.projectlensrc`:
120
135
 
121
136
  ```bash
122
- export CODELENS_MODEL=openai/gpt-5-mini # primary model
123
- export CODELENS_FALLBACK_MODEL=anthropic/claude-haiku-4
137
+ export PROJECTLENS_MODEL=openai/gpt-5-mini # primary model
138
+ export PROJECTLENS_FALLBACK_MODEL=anthropic/claude-haiku-4
124
139
  ```
125
140
 
126
141
  Without a key, lint + type-check + dependency advisories still run; only the AI
package/dist/cli.js CHANGED
@@ -247,7 +247,7 @@ var DEFAULTS = {
247
247
  var cached = null;
248
248
  function readFileConfig(cwd2) {
249
249
  try {
250
- const raw = readFileSync(join(cwd2, ".codelens.json"), "utf8");
250
+ const raw = readFileSync(join(cwd2, ".projectlens.json"), "utf8");
251
251
  const parsed = JSON.parse(raw);
252
252
  return parsed && typeof parsed === "object" ? parsed : {};
253
253
  } catch {
@@ -262,17 +262,17 @@ function loadConfig(cwd2 = process.cwd()) {
262
262
  if (value && !process.env[key]) process.env[key] = value;
263
263
  }
264
264
  }
265
- const model = process.env.CODELENS_MODEL ?? file.ai?.model ?? DEFAULTS.model;
266
- const fallbackModel = process.env.CODELENS_FALLBACK_MODEL ?? file.ai?.fallbackModel ?? DEFAULTS.fallbackModel;
265
+ const model = process.env.projectlens_MODEL ?? file.ai?.model ?? DEFAULTS.model;
266
+ const fallbackModel = process.env.projectlens_FALLBACK_MODEL ?? file.ai?.fallbackModel ?? DEFAULTS.fallbackModel;
267
267
  cached = {
268
268
  aiEnabled: file.ai?.enabled ?? DEFAULTS.aiEnabled,
269
269
  model,
270
270
  fallbackModel,
271
- maxFiles: Number(process.env.CODELENS_MAX_FILES) || file.ai?.maxFiles || DEFAULTS.maxFiles,
271
+ maxFiles: Number(process.env.projectlens_MAX_FILES) || file.ai?.maxFiles || DEFAULTS.maxFiles,
272
272
  redactSecrets: file.ai?.redactSecrets ?? DEFAULTS.redactSecrets,
273
273
  chatEnabled: file.chat?.enabled ?? DEFAULTS.chatEnabled,
274
274
  persistChats: file.chat?.persist ?? DEFAULTS.persistChats,
275
- defaultRepo: file.github?.defaultRepo?.trim() || process.env.CODELENS_REPO?.trim() || DEFAULTS.defaultRepo
275
+ defaultRepo: file.github?.defaultRepo?.trim() || process.env.projectlens_REPO?.trim() || DEFAULTS.defaultRepo
276
276
  };
277
277
  return cached;
278
278
  }
@@ -284,8 +284,8 @@ async function withModelFallback(call) {
284
284
  return await call(primary);
285
285
  } catch (err) {
286
286
  if (!fallbackModel || fallbackModel === primary) throw err;
287
- if (process.env.CODELENS_DEBUG) {
288
- console.error(`[codelens] model "${primary}" failed, falling back to "${fallbackModel}":`, err);
287
+ if (process.env.projectlens_DEBUG) {
288
+ console.error(`[Projectlens] model "${primary}" failed, falling back to "${fallbackModel}":`, err);
289
289
  }
290
290
  return await call(fallbackModel);
291
291
  }
@@ -443,7 +443,7 @@ var IGNORE_DIRS = /* @__PURE__ */ new Set([
443
443
  "build",
444
444
  ".svelte-kit",
445
445
  "coverage",
446
- ".codelens"
446
+ ".projectlens"
447
447
  ]);
448
448
  async function selectFiles(root) {
449
449
  const maxFiles = loadConfig().maxFiles;
@@ -482,12 +482,12 @@ async function runSecurityAudit(args) {
482
482
  const errors = [];
483
483
  const [findings, dependencies] = await Promise.all([
484
484
  auditCode(project, files).catch((err) => {
485
- if (process.env.CODELENS_DEBUG) console.error("[codelens] code review failed:", err);
485
+ if (process.env.projectlens_DEBUG) console.error("[Projectlens] code review failed:", err);
486
486
  errors.push(`code review failed (${describeError(err)})`);
487
487
  return [];
488
488
  }),
489
489
  prioritizeDependencies(project, advisories).catch((err) => {
490
- if (process.env.CODELENS_DEBUG) console.error("[codelens] dependency prioritization failed:", err);
490
+ if (process.env.projectlens_DEBUG) console.error("[Projectlens] dependency prioritization failed:", err);
491
491
  errors.push(`dependency prioritization failed (${describeError(err)})`);
492
492
  return advisories;
493
493
  })
@@ -1475,7 +1475,7 @@ var IGNORE_DIRS2 = /* @__PURE__ */ new Set([
1475
1475
  ".turbo",
1476
1476
  ".vercel",
1477
1477
  "coverage",
1478
- ".codelens",
1478
+ ".projectlens",
1479
1479
  ".cache",
1480
1480
  "vendor"
1481
1481
  ]);
@@ -1867,10 +1867,10 @@ async function collectDocs(ctx) {
1867
1867
  check("todos", "Few stray TODOs", true, 1, "Tracked separately in Setup.", false)
1868
1868
  ];
1869
1869
  const standards = [
1870
- buildStandard("quality", "Documentation Quality", "Is the project understandable to humans?", "CodeLens", "#", 0.4, qualityChecks),
1870
+ buildStandard("quality", "Documentation Quality", "Is the project understandable to humans?", "Projectlens", "#", 0.4, qualityChecks),
1871
1871
  buildStandard("llmstxt", "llms.txt", "Can AI agents discover your docs?", "llmstxt.org", "https://llmstxt.org", 0.25, llmsChecks),
1872
1872
  buildStandard("vercel", "Web & SEO Readiness", "Is the app discoverable and deployable?", "Vercel", "https://vercel.com", 0.2, vercelChecks),
1873
- buildStandard("farming", "Inline API Docs", "Are exported APIs documented in code?", "CodeLens", "#", 0.15, farmingChecks)
1873
+ buildStandard("farming", "Inline API Docs", "Are exported APIs documented in code?", "Projectlens", "#", 0.15, farmingChecks)
1874
1874
  ];
1875
1875
  const score = Math.round(standards.reduce((sum, s) => sum + s.score * s.weight, 0));
1876
1876
  const agentStandards = standards.filter((s) => s.id === "llmstxt" || s.id === "vercel");
@@ -3261,7 +3261,7 @@ async function collectGenericProvider(ctx, provider) {
3261
3261
  label: "Analysis depth",
3262
3262
  value: "Provider-level",
3263
3263
  status: "info",
3264
- detail: "CodeLens surfaces provider detection and common pitfalls. Deep config introspection is available for Better Auth."
3264
+ detail: "Projectlens surfaces provider detection and common pitfalls. Deep config introspection is available for Better Auth."
3265
3265
  }
3266
3266
  ];
3267
3267
  findings.sort((a, b) => sevRank2(b.severity) - sevRank2(a.severity));
@@ -4135,8 +4135,8 @@ async function collectInsights(scan, onProgress) {
4135
4135
  return result;
4136
4136
  } catch (err) {
4137
4137
  onProgress?.(`${label} (failed)`);
4138
- if (process.env.CODELENS_DEBUG) {
4139
- console.error(`[codelens] insight "${label}" failed:`, err);
4138
+ if (process.env.PROJECTLENS_DEBUG) {
4139
+ console.error(`[Projectlens] insight "${label}" failed:`, err);
4140
4140
  }
4141
4141
  return fallback;
4142
4142
  }
@@ -4619,8 +4619,8 @@ async function runWorkspaceAnalysis(opts2) {
4619
4619
  });
4620
4620
  packageData[pkg.name] = { report, insights };
4621
4621
  } catch (err) {
4622
- if (process.env.CODELENS_DEBUG) {
4623
- console.error(`[codelens] package "${pkg.name}" failed:`, err);
4622
+ if (process.env.PROJECTLENS_DEBUG) {
4623
+ console.error(`[Projectlens] package "${pkg.name}" failed:`, err);
4624
4624
  }
4625
4625
  }
4626
4626
  }
@@ -4753,7 +4753,7 @@ async function startServer(opts2) {
4753
4753
  res.writeHead(202, { "content-type": "application/json" });
4754
4754
  res.end(JSON.stringify({ ok: true, scope, package: packageParam }));
4755
4755
  Promise.resolve().then(() => onRunRequest(scope, packageParam)).catch((err) => {
4756
- console.error("\x1B[31m[codelens]\x1B[0m run failed:", err);
4756
+ console.error("\x1B[31m[Projectlens]\x1B[0m run failed:", err);
4757
4757
  }).finally(() => {
4758
4758
  running = false;
4759
4759
  });
@@ -4862,7 +4862,7 @@ function listen(server, preferred) {
4862
4862
  // src/store.ts
4863
4863
  import { promises as fs11 } from "fs";
4864
4864
  import path11 from "path";
4865
- var DIR = ".codelens";
4865
+ var DIR = ".projectlens";
4866
4866
  var HISTORY_FILE = "history.json";
4867
4867
  var LATEST_FILE = "latest.json";
4868
4868
  var INSIGHTS_FILE = "insights.json";
@@ -4982,7 +4982,7 @@ async function savePackageRun(cwd2, packageName, report) {
4982
4982
 
4983
4983
  // src/cli.ts
4984
4984
  var program = new Command();
4985
- program.name("codelens").description("Local lint, type-check & AI security dashboard for JS/TS projects").version("0.1.0").option("-p, --port <number>", "preferred dashboard port", "4321").option("--no-ai", "skip the AI security audit").option("--no-open", "do not auto-open the browser").option("--ci", "run once, print summary, exit non-zero if issues are found").option("--json", "print the full report as JSON and exit").option("--min-score <number>", "fail in --ci mode if health score is below this", "0").option("-d, --dir <path>", "project directory to analyze (default: cwd)").option("--package <name>", "analyze only this workspace package (monorepo mode)");
4985
+ program.name("projectlens").description("Local lint, type-check & AI security dashboard for JS/TS projects").version("0.1.0").option("-p, --port <number>", "preferred dashboard port", "4321").option("--no-ai", "skip the AI security audit").option("--no-open", "do not auto-open the browser").option("--ci", "run once, print summary, exit non-zero if issues are found").option("--json", "print the full report as JSON and exit").option("--min-score <number>", "fail in --ci mode if health score is below this", "0").option("-d, --dir <path>", "project directory to analyze (default: cwd)").option("--package <name>", "analyze only this workspace package (monorepo mode)");
4986
4986
  program.parse();
4987
4987
  var opts = program.opts();
4988
4988
  var cwd = opts.dir ? path12.resolve(opts.dir) : process.cwd();
@@ -4990,7 +4990,7 @@ var config = loadConfig(cwd);
4990
4990
  var ai = Boolean(opts.ai) && config.aiEnabled && aiEnabled();
4991
4991
  if (Boolean(opts.ai) && config.aiEnabled && !aiEnabled()) {
4992
4992
  console.error(
4993
- "\x1B[33m![codelens]\x1B[0m AI security audit is enabled but no gateway key was found.\n The default model is free, but requests still route through the Vercel AI Gateway,\n which needs an API key (the key is free \u2014 it does not require an OpenRouter account).\n 1. Get a free key at \x1B[36mhttps://vercel.com/ai-gateway\x1B[0m\n 2. Run \x1B[1mexport AI_GATEWAY_API_KEY=...\x1B[0m (or set it in .codelens.json / your shell)\n Alternatively set OPENAI_API_KEY, or pass \x1B[1m--no-ai\x1B[0m to silence this.\n Lint, type-check, and dependency audit still run without it.\n"
4993
+ "\x1B[33m![Projectlens]\x1B[0m AI security audit is enabled but no gateway key was found.\n The default model is free, but requests still route through the Vercel AI Gateway,\n which needs an API key (the key is free \u2014 it does not require an OpenRouter account).\n 1. Get a free key at \x1B[36mhttps://vercel.com/ai-gateway\x1B[0m\n 2. Run \x1B[1mexport AI_GATEWAY_API_KEY=...\x1B[0m (or set it in .projectlens.json / your shell)\n Alternatively set OPENAI_API_KEY, or pass \x1B[1m--no-ai\x1B[0m to silence this.\n Lint, type-check, and dependency audit still run without it.\n"
4994
4994
  );
4995
4995
  }
4996
4996
  async function main() {
@@ -5089,7 +5089,7 @@ async function main() {
5089
5089
  onClearData: (scope) => clearData(cwd, scope)
5090
5090
  });
5091
5091
  console.log(`
5092
- \x1B[36mCodeLens\x1B[0m dashboard \u2192 \x1B[1m${server.url}\x1B[0m
5092
+ \x1B[36mProjectlens\x1B[0m dashboard \u2192 \x1B[1m${server.url}\x1B[0m
5093
5093
  `);
5094
5094
  if (monorepo) {
5095
5095
  console.log(
@@ -5128,7 +5128,7 @@ async function main() {
5128
5128
  function printCiSummary(report) {
5129
5129
  const { health, lint, types, security } = report;
5130
5130
  console.log(`
5131
- CodeLens \u2014 ${report.meta.project.framework} project`);
5131
+ Projectlens \u2014 ${report.meta.project.framework} project`);
5132
5132
  console.log(` Health score : ${health.score} (${health.grade})`);
5133
5133
  console.log(` Lint : ${lint.errorCount} errors, ${lint.warningCount} warnings`);
5134
5134
  console.log(` Types : ${types.diagnostics.length} errors`);
@@ -5137,6 +5137,6 @@ CodeLens \u2014 ${report.meta.project.framework} project`);
5137
5137
  );
5138
5138
  }
5139
5139
  main().catch((err) => {
5140
- console.error("\x1B[31m[codelens] fatal:\x1B[0m", err);
5140
+ console.error("\x1B[31m[Projectlens] fatal:\x1B[0m", err);
5141
5141
  process.exit(1);
5142
5142
  });
package/package.json CHANGED
@@ -1,37 +1,37 @@
1
- {
2
- "name": "projectlens",
3
- "version": "0.1.0",
4
- "description": "Local lint, type-check & AI security dashboard for JS/TS projects",
5
- "type": "module",
6
- "bin": {
7
- "codelens": "./dist/cli.js"
8
- },
9
- "files": [
10
- "dist",
11
- "public"
12
- ],
13
- "engines": {
14
- "node": ">=18"
15
- },
16
- "dependencies": {
17
- "ai": "^6.0.0",
18
- "commander": "^12.1.0",
19
- "execa": "^9.5.0",
20
- "open": "^10.1.0",
21
- "ws": "^8.18.0",
22
- "zod": "^3.23.8"
23
- },
24
- "devDependencies": {
25
- "@types/node": "^22.0.0",
26
- "@types/ws": "^8.5.12",
27
- "tsup": "^8.3.0",
28
- "typescript": "^5.6.0"
29
- },
30
- "license": "MIT",
31
- "scripts": {
32
- "build": "npm run build:dashboard && tsup",
33
- "build:dashboard": "node ./scripts/build-dashboard.mjs",
34
- "dev": "tsup --watch",
35
- "typecheck": "tsc --noEmit"
36
- }
37
- }
1
+ {
2
+ "name": "projectlens",
3
+ "version": "1.0.1",
4
+ "description": "Local lint, type-check & AI security dashboard for JS/TS projects",
5
+ "type": "module",
6
+ "bin": {
7
+ "projectlens": "./dist/cli.js"
8
+ },
9
+ "files": [
10
+ "dist",
11
+ "public"
12
+ ],
13
+ "engines": {
14
+ "node": ">=18"
15
+ },
16
+ "scripts": {
17
+ "build": "npm run build:dashboard && tsup",
18
+ "build:dashboard": "node ./scripts/build-dashboard.mjs",
19
+ "dev": "tsup --watch",
20
+ "typecheck": "tsc --noEmit"
21
+ },
22
+ "dependencies": {
23
+ "ai": "^6.0.0",
24
+ "commander": "^12.1.0",
25
+ "execa": "^9.5.0",
26
+ "open": "^10.1.0",
27
+ "ws": "^8.18.0",
28
+ "zod": "^3.23.8"
29
+ },
30
+ "devDependencies": {
31
+ "@types/node": "^22.0.0",
32
+ "@types/ws": "^8.5.12",
33
+ "tsup": "^8.3.0",
34
+ "typescript": "^5.6.0"
35
+ },
36
+ "license": "MIT"
37
+ }
package/public/404.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en" class="geist_a71539c9-module__T19VSG__variable jetbrains_mono_7d65b77b-module__VxV-Ta__variable bg-background"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/02jqkfcbj77p5.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/0l0vfv7tr4h1n.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/17mke5d8u31kx.js"/><script src="/_next/static/chunks/060q84nvp94s6.js" async=""></script><script src="/_next/static/chunks/0ag9_thdvsufz.js" async=""></script><script src="/_next/static/chunks/turbopack-0btzs1a7324pk.js" async=""></script><script src="/_next/static/chunks/0fulyomwb7at-.js" async=""></script><script src="/_next/static/chunks/0~hotr4crj3w3.js" async=""></script><script src="/_next/static/chunks/00g6ktfqbvh0k.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)"/><meta name="theme-color" content="#121212" media="(prefers-color-scheme: dark)"/><title>CodeLens — Local Quality &amp; Security Dashboard</title><meta name="description" content="Run ESLint and TypeScript checks and an AI-powered security audit on your local project, with rich, detailed reporting."/><meta name="generator" content="v0.app"/><script>try{if(JSON.parse(localStorage.getItem('codelens.settings.v1')||'{}').colorAccents){document.documentElement.classList.add('accents')}}catch(e){}</script><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body class="font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","light",null,["light","dark"],null,false,true)</script><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/17mke5d8u31kx.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[89554,[\"/_next/static/chunks/0fulyomwb7at-.js\",\"/_next/static/chunks/0~hotr4crj3w3.js\",\"/_next/static/chunks/00g6ktfqbvh0k.js\"],\"ThemeProvider\"]\n3:I[28231,[\"/_next/static/chunks/0fulyomwb7at-.js\",\"/_next/static/chunks/0~hotr4crj3w3.js\",\"/_next/static/chunks/00g6ktfqbvh0k.js\"],\"TooltipProvider\"]\n4:I[21157,[\"/_next/static/chunks/0fulyomwb7at-.js\",\"/_next/static/chunks/0~hotr4crj3w3.js\",\"/_next/static/chunks/00g6ktfqbvh0k.js\"],\"default\"]\n5:I[15782,[\"/_next/static/chunks/0fulyomwb7at-.js\",\"/_next/static/chunks/0~hotr4crj3w3.js\",\"/_next/static/chunks/00g6ktfqbvh0k.js\"],\"default\"]\n6:I[3656,[\"/_next/static/chunks/0fulyomwb7at-.js\",\"/_next/static/chunks/0~hotr4crj3w3.js\",\"/_next/static/chunks/00g6ktfqbvh0k.js\"],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\na:I[3656,[\"/_next/static/chunks/0fulyomwb7at-.js\",\"/_next/static/chunks/0~hotr4crj3w3.js\",\"/_next/static/chunks/00g6ktfqbvh0k.js\"],\"ViewportBoundary\"]\nc:I[3656,[\"/_next/static/chunks/0fulyomwb7at-.js\",\"/_next/static/chunks/0~hotr4crj3w3.js\",\"/_next/static/chunks/00g6ktfqbvh0k.js\"],\"MetadataBoundary\"]\ne:I[6177,[\"/_next/static/chunks/0fulyomwb7at-.js\",\"/_next/static/chunks/0~hotr4crj3w3.js\",\"/_next/static/chunks/00g6ktfqbvh0k.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/02jqkfcbj77p5.css\",\"style\"]\n:HL[\"/_next/static/chunks/0l0vfv7tr4h1n.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/02jqkfcbj77p5.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0l0vfv7tr4h1n.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0fulyomwb7at-.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0~hotr4crj3w3.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/00g6ktfqbvh0k.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"className\":\"geist_a71539c9-module__T19VSG__variable jetbrains_mono_7d65b77b-module__VxV-Ta__variable bg-background\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"try{if(JSON.parse(localStorage.getItem('codelens.settings.v1')||'{}').colorAccents){document.documentElement.classList.add('accents')}}catch(e){}\"}}]}],[\"$\",\"body\",null,{\"className\":\"font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"attribute\":\"class\",\"defaultTheme\":\"light\",\"enableSystem\":false,\"disableTransitionOnChange\":true,\"children\":[\"$\",\"$L3\",null,{\"delay\":200,\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@8\"}]}]]}],{},null,false,null]},null,false,\"$@9\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Ld\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/02jqkfcbj77p5.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0l0vfv7tr4h1n.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"Y9zjmXhW-zuG8Rhhw7lhH\"}\n"])</script><script>self.__next_f.push([1,"f:[]\n9:\"$Wf\"\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#ffffff\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"meta\",\"3\",{\"name\":\"theme-color\",\"content\":\"#121212\",\"media\":\"(prefers-color-scheme: dark)\"}]]\n"])</script><script>self.__next_f.push([1,"8:null\nd:[[\"$\",\"title\",\"0\",{\"children\":\"CodeLens — Local Quality \u0026 Security Dashboard\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Run ESLint and TypeScript checks and an AI-powered security audit on your local project, with rich, detailed reporting.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"generator\",\"content\":\"v0.app\"}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><html lang="en" class="geist_a71539c9-module__T19VSG__variable jetbrains_mono_7d65b77b-module__VxV-Ta__variable bg-background"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/02jqkfcbj77p5.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/0cbf_ns_utqrn.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/17mke5d8u31kx.js"/><script src="/_next/static/chunks/060q84nvp94s6.js" async=""></script><script src="/_next/static/chunks/0ag9_thdvsufz.js" async=""></script><script src="/_next/static/chunks/turbopack-0btzs1a7324pk.js" async=""></script><script src="/_next/static/chunks/0fulyomwb7at-.js" async=""></script><script src="/_next/static/chunks/0~hotr4crj3w3.js" async=""></script><script src="/_next/static/chunks/00g6ktfqbvh0k.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)"/><meta name="theme-color" content="#121212" media="(prefers-color-scheme: dark)"/><title>Projectlens — Local Quality &amp; Security Dashboard</title><meta name="description" content="Run ESLint and TypeScript checks and an AI-powered security audit on your local project, with rich, detailed reporting."/><meta name="generator" content="v0.app"/><script>try{if(JSON.parse(localStorage.getItem('projectlens.settings.v1')||'{}').colorAccents){document.documentElement.classList.add('accents')}}catch(e){}</script><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body class="font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","light",null,["light","dark"],null,false,true)</script><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/17mke5d8u31kx.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[89554,[\"/_next/static/chunks/0fulyomwb7at-.js\",\"/_next/static/chunks/0~hotr4crj3w3.js\",\"/_next/static/chunks/00g6ktfqbvh0k.js\"],\"ThemeProvider\"]\n3:I[28231,[\"/_next/static/chunks/0fulyomwb7at-.js\",\"/_next/static/chunks/0~hotr4crj3w3.js\",\"/_next/static/chunks/00g6ktfqbvh0k.js\"],\"TooltipProvider\"]\n4:I[21157,[\"/_next/static/chunks/0fulyomwb7at-.js\",\"/_next/static/chunks/0~hotr4crj3w3.js\",\"/_next/static/chunks/00g6ktfqbvh0k.js\"],\"default\"]\n5:I[15782,[\"/_next/static/chunks/0fulyomwb7at-.js\",\"/_next/static/chunks/0~hotr4crj3w3.js\",\"/_next/static/chunks/00g6ktfqbvh0k.js\"],\"default\"]\n6:I[3656,[\"/_next/static/chunks/0fulyomwb7at-.js\",\"/_next/static/chunks/0~hotr4crj3w3.js\",\"/_next/static/chunks/00g6ktfqbvh0k.js\"],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\na:I[3656,[\"/_next/static/chunks/0fulyomwb7at-.js\",\"/_next/static/chunks/0~hotr4crj3w3.js\",\"/_next/static/chunks/00g6ktfqbvh0k.js\"],\"ViewportBoundary\"]\nc:I[3656,[\"/_next/static/chunks/0fulyomwb7at-.js\",\"/_next/static/chunks/0~hotr4crj3w3.js\",\"/_next/static/chunks/00g6ktfqbvh0k.js\"],\"MetadataBoundary\"]\ne:I[6177,[\"/_next/static/chunks/0fulyomwb7at-.js\",\"/_next/static/chunks/0~hotr4crj3w3.js\",\"/_next/static/chunks/00g6ktfqbvh0k.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/02jqkfcbj77p5.css\",\"style\"]\n:HL[\"/_next/static/chunks/0cbf_ns_utqrn.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/02jqkfcbj77p5.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0cbf_ns_utqrn.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0fulyomwb7at-.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0~hotr4crj3w3.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/00g6ktfqbvh0k.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"className\":\"geist_a71539c9-module__T19VSG__variable jetbrains_mono_7d65b77b-module__VxV-Ta__variable bg-background\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"try{if(JSON.parse(localStorage.getItem('projectlens.settings.v1')||'{}').colorAccents){document.documentElement.classList.add('accents')}}catch(e){}\"}}]}],[\"$\",\"body\",null,{\"className\":\"font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"attribute\":\"class\",\"defaultTheme\":\"light\",\"enableSystem\":false,\"disableTransitionOnChange\":true,\"children\":[\"$\",\"$L3\",null,{\"delay\":200,\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@8\"}]}]]}],{},null,false,null]},null,false,\"$@9\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Ld\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/02jqkfcbj77p5.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0cbf_ns_utqrn.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"5b9sWw26Magr957-mNW48\"}\n"])</script><script>self.__next_f.push([1,"f:[]\n9:\"$Wf\"\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#ffffff\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"meta\",\"3\",{\"name\":\"theme-color\",\"content\":\"#121212\",\"media\":\"(prefers-color-scheme: dark)\"}]]\n"])</script><script>self.__next_f.push([1,"8:null\nd:[[\"$\",\"title\",\"0\",{\"children\":\"Projectlens — Local Quality \u0026 Security Dashboard\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Run ESLint and TypeScript checks and an AI-powered security audit on your local project, with rich, detailed reporting.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"generator\",\"content\":\"v0.app\"}]]\n"])</script></body></html>
@@ -1,6 +1,6 @@
1
1
  1:"$Sreact.fragment"
2
- 2:I[40881,["/_next/static/chunks/0fulyomwb7at-.js","/_next/static/chunks/0~hotr4crj3w3.js","/_next/static/chunks/00g6ktfqbvh0k.js","/_next/static/chunks/04..ecqvwwq50.js"],"DashboardLoader"]
2
+ 2:I[40881,["/_next/static/chunks/0fulyomwb7at-.js","/_next/static/chunks/0~hotr4crj3w3.js","/_next/static/chunks/00g6ktfqbvh0k.js","/_next/static/chunks/03~rwd658lpsk.js"],"DashboardLoader"]
3
3
  3:I[3656,["/_next/static/chunks/0fulyomwb7at-.js","/_next/static/chunks/0~hotr4crj3w3.js","/_next/static/chunks/00g6ktfqbvh0k.js"],"OutletBoundary"]
4
4
  4:"$Sreact.suspense"
5
- 0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{}],[["$","script","script-0",{"src":"/_next/static/chunks/04..ecqvwwq50.js","async":true}]],["$","$L3",null,{"children":["$","$4",null,{"name":"Next.MetadataOutlet","children":"$@5"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"Y9zjmXhW-zuG8Rhhw7lhH"}
5
+ 0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{}],[["$","script","script-0",{"src":"/_next/static/chunks/03~rwd658lpsk.js","async":true}]],["$","$L3",null,{"children":["$","$4",null,{"name":"Next.MetadataOutlet","children":"$@5"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"5b9sWw26Magr957-mNW48"}
6
6
  5:null
@@ -3,17 +3,17 @@
3
3
  3:I[28231,["/_next/static/chunks/0fulyomwb7at-.js","/_next/static/chunks/0~hotr4crj3w3.js","/_next/static/chunks/00g6ktfqbvh0k.js"],"TooltipProvider"]
4
4
  4:I[21157,["/_next/static/chunks/0fulyomwb7at-.js","/_next/static/chunks/0~hotr4crj3w3.js","/_next/static/chunks/00g6ktfqbvh0k.js"],"default"]
5
5
  5:I[15782,["/_next/static/chunks/0fulyomwb7at-.js","/_next/static/chunks/0~hotr4crj3w3.js","/_next/static/chunks/00g6ktfqbvh0k.js"],"default"]
6
- 6:I[40881,["/_next/static/chunks/0fulyomwb7at-.js","/_next/static/chunks/0~hotr4crj3w3.js","/_next/static/chunks/00g6ktfqbvh0k.js","/_next/static/chunks/04..ecqvwwq50.js"],"DashboardLoader"]
6
+ 6:I[40881,["/_next/static/chunks/0fulyomwb7at-.js","/_next/static/chunks/0~hotr4crj3w3.js","/_next/static/chunks/00g6ktfqbvh0k.js","/_next/static/chunks/03~rwd658lpsk.js"],"DashboardLoader"]
7
7
  7:I[3656,["/_next/static/chunks/0fulyomwb7at-.js","/_next/static/chunks/0~hotr4crj3w3.js","/_next/static/chunks/00g6ktfqbvh0k.js"],"OutletBoundary"]
8
8
  8:"$Sreact.suspense"
9
9
  a:I[3656,["/_next/static/chunks/0fulyomwb7at-.js","/_next/static/chunks/0~hotr4crj3w3.js","/_next/static/chunks/00g6ktfqbvh0k.js"],"ViewportBoundary"]
10
10
  c:I[3656,["/_next/static/chunks/0fulyomwb7at-.js","/_next/static/chunks/0~hotr4crj3w3.js","/_next/static/chunks/00g6ktfqbvh0k.js"],"MetadataBoundary"]
11
11
  e:I[6177,["/_next/static/chunks/0fulyomwb7at-.js","/_next/static/chunks/0~hotr4crj3w3.js","/_next/static/chunks/00g6ktfqbvh0k.js"],"default",1]
12
12
  :HL["/_next/static/chunks/02jqkfcbj77p5.css","style"]
13
- :HL["/_next/static/chunks/0l0vfv7tr4h1n.css","style"]
13
+ :HL["/_next/static/chunks/0cbf_ns_utqrn.css","style"]
14
14
  :HL["/_next/static/media/70bc3e132a0a741e-s.p.1409xf.ylxg8g.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
15
15
  :HL["/_next/static/media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
16
- 0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/02jqkfcbj77p5.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/chunks/0l0vfv7tr4h1n.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0fulyomwb7at-.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0~hotr4crj3w3.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/00g6ktfqbvh0k.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"className":"geist_a71539c9-module__T19VSG__variable jetbrains_mono_7d65b77b-module__VxV-Ta__variable bg-background","children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"try{if(JSON.parse(localStorage.getItem('codelens.settings.v1')||'{}').colorAccents){document.documentElement.classList.add('accents')}}catch(e){}"}}]}],["$","body",null,{"className":"font-sans antialiased","children":["$","$L2",null,{"attribute":"class","defaultTheme":"light","enableSystem":false,"disableTransitionOnChange":true,"children":["$","$L3",null,{"delay":200,"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","$L6",null,{}],[["$","script","script-0",{"src":"/_next/static/chunks/04..ecqvwwq50.js","async":true,"nonce":"$undefined"}]],["$","$L7",null,{"children":["$","$8",null,{"name":"Next.MetadataOutlet","children":"$@9"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$La",null,{"children":"$Lb"}],["$","div",null,{"hidden":true,"children":["$","$Lc",null,{"children":["$","$8",null,{"name":"Next.Metadata","children":"$Ld"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$e",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/02jqkfcbj77p5.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/chunks/0l0vfv7tr4h1n.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"Y9zjmXhW-zuG8Rhhw7lhH"}
16
+ 0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/02jqkfcbj77p5.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/chunks/0cbf_ns_utqrn.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0fulyomwb7at-.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0~hotr4crj3w3.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/00g6ktfqbvh0k.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"className":"geist_a71539c9-module__T19VSG__variable jetbrains_mono_7d65b77b-module__VxV-Ta__variable bg-background","children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"try{if(JSON.parse(localStorage.getItem('projectlens.settings.v1')||'{}').colorAccents){document.documentElement.classList.add('accents')}}catch(e){}"}}]}],["$","body",null,{"className":"font-sans antialiased","children":["$","$L2",null,{"attribute":"class","defaultTheme":"light","enableSystem":false,"disableTransitionOnChange":true,"children":["$","$L3",null,{"delay":200,"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","$L6",null,{}],[["$","script","script-0",{"src":"/_next/static/chunks/03~rwd658lpsk.js","async":true,"nonce":"$undefined"}]],["$","$L7",null,{"children":["$","$8",null,{"name":"Next.MetadataOutlet","children":"$@9"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$La",null,{"children":"$Lb"}],["$","div",null,{"hidden":true,"children":["$","$Lc",null,{"children":["$","$8",null,{"name":"Next.Metadata","children":"$Ld"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$e",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/02jqkfcbj77p5.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/chunks/0cbf_ns_utqrn.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"5b9sWw26Magr957-mNW48"}
17
17
  b:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#ffffff","media":"(prefers-color-scheme: light)"}],["$","meta","3",{"name":"theme-color","content":"#121212","media":"(prefers-color-scheme: dark)"}]]
18
18
  9:null
19
- d:[["$","title","0",{"children":"CodeLens — Local Quality & Security Dashboard"}],["$","meta","1",{"name":"description","content":"Run ESLint and TypeScript checks and an AI-powered security audit on your local project, with rich, detailed reporting."}],["$","meta","2",{"name":"generator","content":"v0.app"}]]
19
+ d:[["$","title","0",{"children":"Projectlens — Local Quality & Security Dashboard"}],["$","meta","1",{"name":"description","content":"Run ESLint and TypeScript checks and an AI-powered security audit on your local project, with rich, detailed reporting."}],["$","meta","2",{"name":"generator","content":"v0.app"}]]
@@ -2,4 +2,4 @@
2
2
  2:I[3656,["/_next/static/chunks/0fulyomwb7at-.js","/_next/static/chunks/0~hotr4crj3w3.js","/_next/static/chunks/00g6ktfqbvh0k.js"],"ViewportBoundary"]
3
3
  3:I[3656,["/_next/static/chunks/0fulyomwb7at-.js","/_next/static/chunks/0~hotr4crj3w3.js","/_next/static/chunks/00g6ktfqbvh0k.js"],"MetadataBoundary"]
4
4
  4:"$Sreact.suspense"
5
- 0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#ffffff","media":"(prefers-color-scheme: light)"}],["$","meta","3",{"name":"theme-color","content":"#121212","media":"(prefers-color-scheme: dark)"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"CodeLens — Local Quality & Security Dashboard"}],["$","meta","1",{"name":"description","content":"Run ESLint and TypeScript checks and an AI-powered security audit on your local project, with rich, detailed reporting."}],["$","meta","2",{"name":"generator","content":"v0.app"}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"Y9zjmXhW-zuG8Rhhw7lhH"}
5
+ 0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#ffffff","media":"(prefers-color-scheme: light)"}],["$","meta","3",{"name":"theme-color","content":"#121212","media":"(prefers-color-scheme: dark)"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Projectlens — Local Quality & Security Dashboard"}],["$","meta","1",{"name":"description","content":"Run ESLint and TypeScript checks and an AI-powered security audit on your local project, with rich, detailed reporting."}],["$","meta","2",{"name":"generator","content":"v0.app"}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"5b9sWw26Magr957-mNW48"}
@@ -4,5 +4,5 @@
4
4
  4:I[21157,["/_next/static/chunks/0fulyomwb7at-.js","/_next/static/chunks/0~hotr4crj3w3.js","/_next/static/chunks/00g6ktfqbvh0k.js"],"default"]
5
5
  5:I[15782,["/_next/static/chunks/0fulyomwb7at-.js","/_next/static/chunks/0~hotr4crj3w3.js","/_next/static/chunks/00g6ktfqbvh0k.js"],"default"]
6
6
  :HL["/_next/static/chunks/02jqkfcbj77p5.css","style"]
7
- :HL["/_next/static/chunks/0l0vfv7tr4h1n.css","style"]
8
- 0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/02jqkfcbj77p5.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/chunks/0l0vfv7tr4h1n.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0fulyomwb7at-.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0~hotr4crj3w3.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/00g6ktfqbvh0k.js","async":true}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"className":"geist_a71539c9-module__T19VSG__variable jetbrains_mono_7d65b77b-module__VxV-Ta__variable bg-background","children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"try{if(JSON.parse(localStorage.getItem('codelens.settings.v1')||'{}').colorAccents){document.documentElement.classList.add('accents')}}catch(e){}"}}]}],["$","body",null,{"className":"font-sans antialiased","children":["$","$L2",null,{"attribute":"class","defaultTheme":"light","enableSystem":false,"disableTransitionOnChange":true,"children":["$","$L3",null,{"delay":200,"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"Y9zjmXhW-zuG8Rhhw7lhH"}
7
+ :HL["/_next/static/chunks/0cbf_ns_utqrn.css","style"]
8
+ 0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/02jqkfcbj77p5.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/chunks/0cbf_ns_utqrn.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0fulyomwb7at-.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0~hotr4crj3w3.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/00g6ktfqbvh0k.js","async":true}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"className":"geist_a71539c9-module__T19VSG__variable jetbrains_mono_7d65b77b-module__VxV-Ta__variable bg-background","children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"try{if(JSON.parse(localStorage.getItem('projectlens.settings.v1')||'{}').colorAccents){document.documentElement.classList.add('accents')}}catch(e){}"}}]}],["$","body",null,{"className":"font-sans antialiased","children":["$","$L2",null,{"attribute":"class","defaultTheme":"light","enableSystem":false,"disableTransitionOnChange":true,"children":["$","$L3",null,{"delay":200,"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"5b9sWw26Magr957-mNW48"}
@@ -1,5 +1,5 @@
1
1
  :HL["/_next/static/chunks/02jqkfcbj77p5.css","style"]
2
- :HL["/_next/static/chunks/0l0vfv7tr4h1n.css","style"]
2
+ :HL["/_next/static/chunks/0cbf_ns_utqrn.css","style"]
3
3
  :HL["/_next/static/media/70bc3e132a0a741e-s.p.1409xf.ylxg8g.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
4
4
  :HL["/_next/static/media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
5
- 0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"Y9zjmXhW-zuG8Rhhw7lhH"}
5
+ 0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"5b9sWw26Magr957-mNW48"}