@akasecurity/cli 0.8.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/README.md +65 -0
  2. package/dist/cli.js +94 -52
  3. package/package.json +6 -5
  4. package/web-ui/package.json +1 -1
  5. package/web-ui/web-ui/.next/BUILD_ID +1 -1
  6. package/web-ui/web-ui/.next/app-build-manifest.json +23 -23
  7. package/web-ui/web-ui/.next/app-path-routes-manifest.json +4 -4
  8. package/web-ui/web-ui/.next/build-manifest.json +2 -2
  9. package/web-ui/web-ui/.next/prerender-manifest.json +3 -3
  10. package/web-ui/web-ui/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
  11. package/web-ui/web-ui/.next/server/app/(app)/data-shares/page.js +2 -2
  12. package/web-ui/web-ui/.next/server/app/(app)/data-shares/page_client-reference-manifest.js +1 -1
  13. package/web-ui/web-ui/.next/server/app/(app)/detections/page.js +2 -2
  14. package/web-ui/web-ui/.next/server/app/(app)/detections/page_client-reference-manifest.js +1 -1
  15. package/web-ui/web-ui/.next/server/app/(app)/exceptions/[id]/page.js +2 -2
  16. package/web-ui/web-ui/.next/server/app/(app)/exceptions/[id]/page_client-reference-manifest.js +1 -1
  17. package/web-ui/web-ui/.next/server/app/(app)/exceptions/new/page.js +2 -2
  18. package/web-ui/web-ui/.next/server/app/(app)/exceptions/new/page_client-reference-manifest.js +1 -1
  19. package/web-ui/web-ui/.next/server/app/(app)/exceptions/page.js +1 -1
  20. package/web-ui/web-ui/.next/server/app/(app)/exceptions/page_client-reference-manifest.js +1 -1
  21. package/web-ui/web-ui/.next/server/app/(app)/findings/page_client-reference-manifest.js +1 -1
  22. package/web-ui/web-ui/.next/server/app/(app)/inventory/page.js +2 -2
  23. package/web-ui/web-ui/.next/server/app/(app)/inventory/page_client-reference-manifest.js +1 -1
  24. package/web-ui/web-ui/.next/server/app/(app)/policies/page_client-reference-manifest.js +1 -1
  25. package/web-ui/web-ui/.next/server/app/(app)/scan/page.js +2 -2
  26. package/web-ui/web-ui/.next/server/app/(app)/scan/page_client-reference-manifest.js +1 -1
  27. package/web-ui/web-ui/.next/server/app/(app)/security/page_client-reference-manifest.js +1 -1
  28. package/web-ui/web-ui/.next/server/app/(app)/settings/page.js +2 -2
  29. package/web-ui/web-ui/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
  30. package/web-ui/web-ui/.next/server/app/(app)/updates/page.js +2 -2
  31. package/web-ui/web-ui/.next/server/app/(app)/updates/page_client-reference-manifest.js +1 -1
  32. package/web-ui/web-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  33. package/web-ui/web-ui/.next/server/app/_not-found.html +1 -1
  34. package/web-ui/web-ui/.next/server/app/_not-found.rsc +1 -1
  35. package/web-ui/web-ui/.next/server/app/index.html +1 -1
  36. package/web-ui/web-ui/.next/server/app/index.rsc +1 -1
  37. package/web-ui/web-ui/.next/server/app/page_client-reference-manifest.js +1 -1
  38. package/web-ui/web-ui/.next/server/app-paths-manifest.json +4 -4
  39. package/web-ui/web-ui/.next/server/chunks/226.js +1 -1
  40. package/web-ui/web-ui/.next/server/functions-config-manifest.json +4 -4
  41. package/web-ui/web-ui/.next/server/middleware-manifest.json +5 -5
  42. package/web-ui/web-ui/.next/server/pages/404.html +1 -1
  43. package/web-ui/web-ui/.next/server/pages/500.html +1 -1
  44. package/web-ui/web-ui/.next/server/server-reference-manifest.js +1 -1
  45. package/web-ui/web-ui/.next/server/server-reference-manifest.json +1 -1
  46. package/web-ui/web-ui/.next/static/chunks/app/(app)/data-shares/page-548fa0d3dee6e829.js +1 -0
  47. package/web-ui/web-ui/.next/static/chunks/app/(app)/detections/page-0bfa1f371b65b5ad.js +1 -0
  48. package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/[id]/page-56ec5c05f347108a.js +1 -0
  49. package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/new/page-cb33dc32fd3648bf.js +1 -0
  50. package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/page-b6fbc540ef0a50f8.js +1 -0
  51. package/web-ui/web-ui/.next/static/chunks/app/(app)/inventory/page-89cf3ac5a30e76a0.js +1 -0
  52. package/web-ui/web-ui/.next/static/chunks/app/(app)/scan/page-0d43a6b2acafe349.js +1 -0
  53. package/web-ui/web-ui/.next/static/chunks/app/(app)/settings/page-2cf02a09402cfb4d.js +1 -0
  54. package/web-ui/web-ui/.next/static/chunks/app/(app)/updates/{page-241fdcbac6e942aa.js → page-b9607b5e2e8700d6.js} +1 -1
  55. package/web-ui/web-ui/.next/static/chunks/app/(app)/data-shares/page-485a76552d6dbabd.js +0 -1
  56. package/web-ui/web-ui/.next/static/chunks/app/(app)/detections/page-8030433ea5c099fa.js +0 -1
  57. package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/[id]/page-452be710e9e05ad5.js +0 -1
  58. package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/new/page-e8498a1e48943abf.js +0 -1
  59. package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/page-1b841b6a60708c6d.js +0 -1
  60. package/web-ui/web-ui/.next/static/chunks/app/(app)/inventory/page-dd61001da0f891d3.js +0 -1
  61. package/web-ui/web-ui/.next/static/chunks/app/(app)/scan/page-158ed3ad2cee998b.js +0 -1
  62. package/web-ui/web-ui/.next/static/chunks/app/(app)/settings/page-b9fba600c590896d.js +0 -1
  63. /package/web-ui/web-ui/.next/static/{v339u67-B5AsSrzDBfv22 → X9C7-HlMI5zAQEKfIW_6e}/_buildManifest.js +0 -0
  64. /package/web-ui/web-ui/.next/static/{v339u67-B5AsSrzDBfv22 → X9C7-HlMI5zAQEKfIW_6e}/_ssgManifest.js +0 -0
package/README.md ADDED
@@ -0,0 +1,65 @@
1
+ # @akasecurity/cli — `aka`
2
+
3
+ [![npm](https://img.shields.io/npm/v/@akasecurity/cli?style=flat-square&labelColor=232F3E&color=00E0B8)](https://www.npmjs.com/package/@akasecurity/cli)
4
+ [![Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-232F3E?style=flat-square)](https://github.com/akasecurity/ai-tc/blob/main/LICENSE)
5
+
6
+ The `aka` command-line tool for **[AI Traffic Control](https://github.com/akasecurity/ai-tc)** (`ai-tc`) — an open-source, local-first control plane for coding agents. It inspects and governs the traffic of an agent session (prompts, tool calls, responses, file reads), scans each event against your rule packs, and records everything to a local SQLite store at `~/.aka/data/aka.db`.
7
+
8
+ Everything runs on your machine. There's no account, no backend, and nothing leaves your computer to be scanned.
9
+
10
+ ## Install
11
+
12
+ ```bash
13
+ npm install -g @akasecurity/cli
14
+ ```
15
+
16
+ Or use the bootstrap installer (checks for Node, then installs):
17
+
18
+ ```bash
19
+ # macOS / Linux
20
+ curl -fsSL https://raw.githubusercontent.com/akasecurity/ai-tc/cli-latest/tools/installer/install.sh | sh
21
+
22
+ # Windows (PowerShell)
23
+ irm https://raw.githubusercontent.com/akasecurity/ai-tc/cli-latest/tools/installer/install.ps1 | iex
24
+ ```
25
+
26
+ Requires **Node.js 24+** (the CLI uses the built-in `node:sqlite`).
27
+
28
+ ## Quick start
29
+
30
+ ```bash
31
+ aka init # scaffold the local store at ~/.aka
32
+ aka dashboard # open the local web dashboard over your store
33
+ ```
34
+
35
+ ## What it does
36
+
37
+ | Command | What it does |
38
+ | ---------------- | ---------------------------------------------------------------- |
39
+ | `aka init` | Create the local store and settings under `~/.aka`. |
40
+ | `aka dashboard` | Launch the local web dashboard (findings, policies, exceptions). |
41
+ | `aka scan` | Scan working-tree source files for security flaws. |
42
+ | `aka detections` | List installed detection packs and available updates. |
43
+ | `aka exception` | Manage exact-value exceptions that let a specific match through. |
44
+ | `aka stats` | Show detection activity and token/cost summaries from the store. |
45
+ | `aka plugins` | Optional hub to install agent plugins (e.g. Claude Code). |
46
+
47
+ Run `aka --help` for the full command list.
48
+
49
+ ## The Claude Code plugin
50
+
51
+ The CLI gives you the dashboard, store, and scanning. To actually **intercept** a Claude Code session you also need the AKA plugin, which installs from the Claude Code plugin marketplace (not npm). With the CLI installed:
52
+
53
+ ```bash
54
+ aka plugins install claude-code
55
+ ```
56
+
57
+ This drives Claude Code to add the plugin for you (or prints the `/plugin` commands to run). See the [installation guide](https://akasecurity.github.io/ai-tc-docs/getting-started/installation/) for both components.
58
+
59
+ ## Docs
60
+
61
+ Full documentation, architecture, and the built-in detection catalog live at **[akasecurity.github.io/ai-tc-docs](https://akasecurity.github.io/ai-tc-docs/)**.
62
+
63
+ ## License
64
+
65
+ [Apache-2.0](https://github.com/akasecurity/ai-tc/blob/main/LICENSE)
package/dist/cli.js CHANGED
@@ -554,10 +554,10 @@ var AGENT_PLUGINS = [
554
554
  name: "Claude Code",
555
555
  sourceTool: "claude-code",
556
556
  description: "Hooks Claude Code sessions to detect + redact sensitive data in prompts, responses, and file writes.",
557
- npmPackage: "@akasecurity/plugin-claude-code",
558
- pluginName: "aka",
559
- marketplace: "ai-tc",
560
- marketplaceSource: "akasecurity/ai-tc"
557
+ npmPackage: "@akasecurity/ai-tc-claude-code",
558
+ pluginName: "ai-tc",
559
+ marketplace: "akasecurity",
560
+ marketplaceSource: "akasecurity/marketplace"
561
561
  }
562
562
  ];
563
563
  function findAgent(id) {
@@ -26387,50 +26387,14 @@ async function runException(argv, io = terminalPrompter()) {
26387
26387
  }
26388
26388
 
26389
26389
  // src/commands/init.ts
26390
- import { existsSync as existsSync8, renameSync as renameSync5, writeFileSync as writeFileSync6 } from "fs";
26390
+ import { existsSync as existsSync9, renameSync as renameSync5, writeFileSync as writeFileSync6 } from "fs";
26391
26391
  import { join as join14 } from "path";
26392
- import { parseArgs as parseArgs5 } from "util";
26393
- async function runInit(argv) {
26394
- const { values } = parseArgs5({ args: argv, options: HOME_OPTION });
26395
- const home = homeBase(values.home);
26396
- ensureLayoutDirSync(home);
26397
- const settings = settingsDir(home);
26398
- ensureLayoutDirSync(settings);
26399
- const settingsFile = join14(settings, "settings.json");
26400
- const settingsCreated = !existsSync8(settingsFile);
26401
- if (settingsCreated) {
26402
- const tmp = `${settingsFile}.tmp`;
26403
- writeFileSync6(tmp, `${JSON.stringify(defaultWorkspaceSettings(), null, 2)}
26404
- `, {
26405
- mode: DATA_FILE_MODE
26406
- });
26407
- renameSync5(tmp, settingsFile);
26408
- }
26409
- const db = openLocalDatabase(dataDir(home));
26410
- let policyCount;
26411
- let packCount;
26412
- let updatesAvailable;
26413
- try {
26414
- db.installedPacks.recordInventory(bundledDetections(), cliRecordedBy());
26415
- policyCount = (await db.policies.readPolicies()).length;
26416
- packCount = (await db.installedPacks.counts()).packs;
26417
- updatesAvailable = (await db.detections.listDetections({ filter: "all" })).counts.updates;
26418
- } finally {
26419
- db.close();
26420
- }
26421
- process.stdout.write(
26422
- `\u2713 Initialized AKA at ${home}
26423
- settings: ${settingsFile}${settingsCreated ? "" : " (kept existing)"}
26424
- database: ${dbPath(home)}
26425
- seeded ${String(policyCount)} default policies, ${String(packCount)} detection pack(s)
26426
- ` + (updatesAvailable > 0 ? ` \u2B06 ${String(updatesAvailable)} detection pack update(s) available \u2014 review with \`aka detections\`, apply with \`aka detections update --all\`
26427
- ` : "")
26428
- );
26429
- }
26392
+ import * as readline from "readline/promises";
26393
+ import { parseArgs as parseArgs6 } from "util";
26430
26394
 
26431
26395
  // src/commands/plugins.ts
26432
- import { existsSync as existsSync9 } from "fs";
26433
- import { parseArgs as parseArgs6 } from "util";
26396
+ import { existsSync as existsSync8 } from "fs";
26397
+ import { parseArgs as parseArgs5 } from "util";
26434
26398
  function runPlugins(argv) {
26435
26399
  const [sub, ...rest] = argv;
26436
26400
  if (!sub || sub === "list") return listPlugins(rest);
@@ -26443,10 +26407,10 @@ function runPlugins(argv) {
26443
26407
  process.exitCode = 1;
26444
26408
  }
26445
26409
  async function listPlugins(argv) {
26446
- const { values } = parseArgs6({ args: argv, options: HOME_OPTION });
26410
+ const { values } = parseArgs5({ args: argv, options: HOME_OPTION });
26447
26411
  const home = homeBase(values.home);
26448
26412
  const active = /* @__PURE__ */ new Set();
26449
- if (existsSync9(dbPath(home))) {
26413
+ if (existsSync8(dbPath(home))) {
26450
26414
  const db = openLocalDatabase(dataDir(home));
26451
26415
  try {
26452
26416
  const recent = await db.findings.recentFindings({ limit: 1e3 });
@@ -26471,7 +26435,7 @@ async function listPlugins(argv) {
26471
26435
  out.write("Update: aka update (or: aka check-updates)\n");
26472
26436
  }
26473
26437
  function installPlugin(argv) {
26474
- const { positionals } = parseArgs6({ args: argv, options: HOME_OPTION, allowPositionals: true });
26438
+ const { positionals } = parseArgs5({ args: argv, options: HOME_OPTION, allowPositionals: true });
26475
26439
  const id = positionals[0];
26476
26440
  if (!id) {
26477
26441
  process.stderr.write("aka plugins install: missing <agent> (try: aka plugins list)\n");
@@ -26528,6 +26492,84 @@ Then run \`aka init\` to set up the local store.
26528
26492
  }
26529
26493
  }
26530
26494
 
26495
+ // src/commands/init.ts
26496
+ async function runInit(argv) {
26497
+ const { values } = parseArgs6({
26498
+ args: argv,
26499
+ options: { ...HOME_OPTION, yes: { type: "boolean", short: "y" } }
26500
+ });
26501
+ const home = homeBase(values.home);
26502
+ ensureLayoutDirSync(home);
26503
+ const settings = settingsDir(home);
26504
+ ensureLayoutDirSync(settings);
26505
+ const settingsFile = join14(settings, "settings.json");
26506
+ const settingsCreated = !existsSync9(settingsFile);
26507
+ if (settingsCreated) {
26508
+ const tmp = `${settingsFile}.tmp`;
26509
+ writeFileSync6(tmp, `${JSON.stringify(defaultWorkspaceSettings(), null, 2)}
26510
+ `, {
26511
+ mode: DATA_FILE_MODE
26512
+ });
26513
+ renameSync5(tmp, settingsFile);
26514
+ }
26515
+ const db = openLocalDatabase(dataDir(home));
26516
+ let policyCount;
26517
+ let packCount;
26518
+ let updatesAvailable;
26519
+ try {
26520
+ db.installedPacks.recordInventory(bundledDetections(), cliRecordedBy());
26521
+ policyCount = (await db.policies.readPolicies()).length;
26522
+ packCount = (await db.installedPacks.counts()).packs;
26523
+ updatesAvailable = (await db.detections.listDetections({ filter: "all" })).counts.updates;
26524
+ } finally {
26525
+ db.close();
26526
+ }
26527
+ process.stdout.write(
26528
+ `\u2713 Initialized AKA at ${home}
26529
+ settings: ${settingsFile}${settingsCreated ? "" : " (kept existing)"}
26530
+ database: ${dbPath(home)}
26531
+ seeded ${String(policyCount)} default policies, ${String(packCount)} detection pack(s)
26532
+ ` + (updatesAvailable > 0 ? ` \u2B06 ${String(updatesAvailable)} detection pack update(s) available \u2014 review with \`aka detections\`, apply with \`aka detections update --all\`
26533
+ ` : "")
26534
+ );
26535
+ await offerPluginInstall(values.yes === true);
26536
+ }
26537
+ async function offerPluginInstall(autoYes) {
26538
+ const agent = findAgent("claude-code");
26539
+ const ref = agent ? pluginRef(agent) : void 0;
26540
+ if (!agent || !ref) return;
26541
+ if (installedPluginVersions().has(ref)) return;
26542
+ const out = process.stdout;
26543
+ if (!autoYes) {
26544
+ if (!process.stdin.isTTY) {
26545
+ out.write(
26546
+ `
26547
+ No Claude Code plugin detected. Install it via the marketplace:
26548
+ /plugin marketplace add ${agent.marketplaceSource ?? ""}
26549
+ /plugin install ${ref}
26550
+ Or re-run \`aka init --yes\` to install it automatically.
26551
+ `
26552
+ );
26553
+ return;
26554
+ }
26555
+ if (!await confirm(`
26556
+ Install the AKA Claude Code plugin now (via the marketplace)? [y/N] `)) {
26557
+ out.write("Skipped. Install anytime with `aka plugins install claude-code`.\n");
26558
+ return;
26559
+ }
26560
+ }
26561
+ await runPlugins(["install", "claude-code"]);
26562
+ }
26563
+ async function confirm(question) {
26564
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
26565
+ try {
26566
+ const answer = (await rl.question(question)).trim().toLowerCase();
26567
+ return answer === "y" || answer === "yes";
26568
+ } finally {
26569
+ rl.close();
26570
+ }
26571
+ }
26572
+
26531
26573
  // src/commands/scan.ts
26532
26574
  import { parseArgs as parseArgs7 } from "util";
26533
26575
  function severityRank(s) {
@@ -27335,7 +27377,7 @@ async function runTui(argv) {
27335
27377
  }
27336
27378
 
27337
27379
  // src/commands/update.ts
27338
- import * as readline from "readline/promises";
27380
+ import * as readline2 from "readline/promises";
27339
27381
  import { parseArgs as parseArgs10 } from "util";
27340
27382
  async function runUpdate(argv) {
27341
27383
  const { values, positionals } = parseArgs10({
@@ -27385,7 +27427,7 @@ async function runUpdate(argv) {
27385
27427
  out.write("Re-run with --yes to apply (no interactive terminal detected).\n");
27386
27428
  return;
27387
27429
  }
27388
- if (!await confirm("Apply these updates? [y/N] ")) {
27430
+ if (!await confirm2("Apply these updates? [y/N] ")) {
27389
27431
  out.write("Aborted \u2014 nothing changed.\n");
27390
27432
  return;
27391
27433
  }
@@ -27404,8 +27446,8 @@ async function runUpdate(argv) {
27404
27446
  }
27405
27447
  if (anyFailed) process.exitCode = 1;
27406
27448
  }
27407
- async function confirm(question) {
27408
- const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
27449
+ async function confirm2(question) {
27450
+ const rl = readline2.createInterface({ input: process.stdin, output: process.stdout });
27409
27451
  try {
27410
27452
  const answer = (await rl.question(question)).trim().toLowerCase();
27411
27453
  return answer === "y" || answer === "yes";
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "@akasecurity/cli",
3
- "version": "0.8.0",
3
+ "version": "0.8.1",
4
4
  "description": "AI Traffic Control — local-first CLI to inspect and govern AI agent traffic on your machine",
5
+ "license": "Apache-2.0",
5
6
  "repository": {
6
7
  "type": "git",
7
8
  "url": "git+https://github.com/akasecurity/ai-tc.git",
@@ -39,13 +40,13 @@
39
40
  "typescript": "^5.8.0",
40
41
  "vitest": "^4.1.10",
41
42
  "@akasecurity/dashboard-ui": "0.8.0",
42
- "@akasecurity/eslint-config": "0.8.0",
43
43
  "@akasecurity/detections": "0.8.0",
44
+ "@akasecurity/eslint-config": "0.8.0",
44
45
  "@akasecurity/local-ops": "0.8.0",
45
- "@akasecurity/persistence": "0.8.0",
46
- "@akasecurity/web-ui": "0.8.0",
47
46
  "@akasecurity/plugin-sdk": "0.8.0",
48
- "@akasecurity/schema": "0.8.0"
47
+ "@akasecurity/schema": "0.8.0",
48
+ "@akasecurity/persistence": "0.8.0",
49
+ "@akasecurity/web-ui": "0.8.0"
49
50
  },
50
51
  "scripts": {
51
52
  "dev": "tsx src/cli.ts",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ai-tc",
3
3
  "private": true,
4
- "version": "0.8.0",
4
+ "version": "0.8.1",
5
5
  "packageManager": "pnpm@10.30.1",
6
6
  "type": "module",
7
7
  "engines": {
@@ -1 +1 @@
1
- v339u67-B5AsSrzDBfv22
1
+ X9C7-HlMI5zAQEKfIW_6e
@@ -39,28 +39,28 @@
39
39
  "static/chunks/main-app-23de550d13c8bec1.js",
40
40
  "static/chunks/24-b20c857178647805.js",
41
41
  "static/chunks/561-3a19cd28d2b941fa.js",
42
- "static/chunks/app/(app)/data-shares/page-485a76552d6dbabd.js"
42
+ "static/chunks/app/(app)/data-shares/page-548fa0d3dee6e829.js"
43
43
  ],
44
- "/(app)/exceptions/new/page": [
44
+ "/(app)/activity/page": [
45
45
  "static/chunks/webpack-14166b28d6557de1.js",
46
46
  "static/chunks/813c9d6d-dc0a9294021710c1.js",
47
47
  "static/chunks/496-a8b6c34560896a23.js",
48
48
  "static/chunks/main-app-23de550d13c8bec1.js",
49
49
  "static/chunks/24-b20c857178647805.js",
50
- "static/chunks/338-78876603768c14bb.js",
51
50
  "static/chunks/561-3a19cd28d2b941fa.js",
52
- "static/chunks/app/(app)/exceptions/new/page-e8498a1e48943abf.js"
51
+ "static/chunks/app/(app)/activity/page-f6b1b344709ee48e.js"
53
52
  ],
54
- "/(app)/activity/page": [
53
+ "/(app)/exceptions/[id]/page": [
55
54
  "static/chunks/webpack-14166b28d6557de1.js",
56
55
  "static/chunks/813c9d6d-dc0a9294021710c1.js",
57
56
  "static/chunks/496-a8b6c34560896a23.js",
58
57
  "static/chunks/main-app-23de550d13c8bec1.js",
59
58
  "static/chunks/24-b20c857178647805.js",
59
+ "static/chunks/338-78876603768c14bb.js",
60
60
  "static/chunks/561-3a19cd28d2b941fa.js",
61
- "static/chunks/app/(app)/activity/page-f6b1b344709ee48e.js"
61
+ "static/chunks/app/(app)/exceptions/[id]/page-56ec5c05f347108a.js"
62
62
  ],
63
- "/(app)/exceptions/[id]/page": [
63
+ "/(app)/exceptions/new/page": [
64
64
  "static/chunks/webpack-14166b28d6557de1.js",
65
65
  "static/chunks/813c9d6d-dc0a9294021710c1.js",
66
66
  "static/chunks/496-a8b6c34560896a23.js",
@@ -68,16 +68,17 @@
68
68
  "static/chunks/24-b20c857178647805.js",
69
69
  "static/chunks/338-78876603768c14bb.js",
70
70
  "static/chunks/561-3a19cd28d2b941fa.js",
71
- "static/chunks/app/(app)/exceptions/[id]/page-452be710e9e05ad5.js"
71
+ "static/chunks/app/(app)/exceptions/new/page-cb33dc32fd3648bf.js"
72
72
  ],
73
- "/(app)/policies/page": [
73
+ "/(app)/exceptions/page": [
74
74
  "static/chunks/webpack-14166b28d6557de1.js",
75
75
  "static/chunks/813c9d6d-dc0a9294021710c1.js",
76
76
  "static/chunks/496-a8b6c34560896a23.js",
77
77
  "static/chunks/main-app-23de550d13c8bec1.js",
78
78
  "static/chunks/24-b20c857178647805.js",
79
+ "static/chunks/338-78876603768c14bb.js",
79
80
  "static/chunks/561-3a19cd28d2b941fa.js",
80
- "static/chunks/app/(app)/policies/page-a73f4fb185479b19.js"
81
+ "static/chunks/app/(app)/exceptions/page-b6fbc540ef0a50f8.js"
81
82
  ],
82
83
  "/(app)/findings/page": [
83
84
  "static/chunks/webpack-14166b28d6557de1.js",
@@ -88,7 +89,7 @@
88
89
  "static/chunks/561-3a19cd28d2b941fa.js",
89
90
  "static/chunks/app/(app)/findings/page-94eb9d838ae00222.js"
90
91
  ],
91
- "/(app)/exceptions/page": [
92
+ "/(app)/scan/page": [
92
93
  "static/chunks/webpack-14166b28d6557de1.js",
93
94
  "static/chunks/813c9d6d-dc0a9294021710c1.js",
94
95
  "static/chunks/496-a8b6c34560896a23.js",
@@ -96,17 +97,16 @@
96
97
  "static/chunks/24-b20c857178647805.js",
97
98
  "static/chunks/338-78876603768c14bb.js",
98
99
  "static/chunks/561-3a19cd28d2b941fa.js",
99
- "static/chunks/app/(app)/exceptions/page-1b841b6a60708c6d.js"
100
+ "static/chunks/app/(app)/scan/page-0d43a6b2acafe349.js"
100
101
  ],
101
- "/(app)/scan/page": [
102
+ "/(app)/policies/page": [
102
103
  "static/chunks/webpack-14166b28d6557de1.js",
103
104
  "static/chunks/813c9d6d-dc0a9294021710c1.js",
104
105
  "static/chunks/496-a8b6c34560896a23.js",
105
106
  "static/chunks/main-app-23de550d13c8bec1.js",
106
107
  "static/chunks/24-b20c857178647805.js",
107
- "static/chunks/338-78876603768c14bb.js",
108
108
  "static/chunks/561-3a19cd28d2b941fa.js",
109
- "static/chunks/app/(app)/scan/page-158ed3ad2cee998b.js"
109
+ "static/chunks/app/(app)/policies/page-a73f4fb185479b19.js"
110
110
  ],
111
111
  "/(app)/inventory/page": [
112
112
  "static/chunks/webpack-14166b28d6557de1.js",
@@ -115,34 +115,34 @@
115
115
  "static/chunks/main-app-23de550d13c8bec1.js",
116
116
  "static/chunks/24-b20c857178647805.js",
117
117
  "static/chunks/561-3a19cd28d2b941fa.js",
118
- "static/chunks/app/(app)/inventory/page-dd61001da0f891d3.js"
118
+ "static/chunks/app/(app)/inventory/page-89cf3ac5a30e76a0.js"
119
119
  ],
120
- "/(app)/settings/page": [
120
+ "/(app)/security/page": [
121
121
  "static/chunks/webpack-14166b28d6557de1.js",
122
122
  "static/chunks/813c9d6d-dc0a9294021710c1.js",
123
123
  "static/chunks/496-a8b6c34560896a23.js",
124
124
  "static/chunks/main-app-23de550d13c8bec1.js",
125
125
  "static/chunks/24-b20c857178647805.js",
126
126
  "static/chunks/561-3a19cd28d2b941fa.js",
127
- "static/chunks/app/(app)/settings/page-b9fba600c590896d.js"
127
+ "static/chunks/app/(app)/security/page-2675f7fb69829b71.js"
128
128
  ],
129
- "/(app)/security/page": [
129
+ "/(app)/updates/page": [
130
130
  "static/chunks/webpack-14166b28d6557de1.js",
131
131
  "static/chunks/813c9d6d-dc0a9294021710c1.js",
132
132
  "static/chunks/496-a8b6c34560896a23.js",
133
133
  "static/chunks/main-app-23de550d13c8bec1.js",
134
134
  "static/chunks/24-b20c857178647805.js",
135
135
  "static/chunks/561-3a19cd28d2b941fa.js",
136
- "static/chunks/app/(app)/security/page-2675f7fb69829b71.js"
136
+ "static/chunks/app/(app)/updates/page-b9607b5e2e8700d6.js"
137
137
  ],
138
- "/(app)/updates/page": [
138
+ "/(app)/settings/page": [
139
139
  "static/chunks/webpack-14166b28d6557de1.js",
140
140
  "static/chunks/813c9d6d-dc0a9294021710c1.js",
141
141
  "static/chunks/496-a8b6c34560896a23.js",
142
142
  "static/chunks/main-app-23de550d13c8bec1.js",
143
143
  "static/chunks/24-b20c857178647805.js",
144
144
  "static/chunks/561-3a19cd28d2b941fa.js",
145
- "static/chunks/app/(app)/updates/page-241fdcbac6e942aa.js"
145
+ "static/chunks/app/(app)/settings/page-2cf02a09402cfb4d.js"
146
146
  ],
147
147
  "/(app)/detections/page": [
148
148
  "static/chunks/webpack-14166b28d6557de1.js",
@@ -151,7 +151,7 @@
151
151
  "static/chunks/main-app-23de550d13c8bec1.js",
152
152
  "static/chunks/24-b20c857178647805.js",
153
153
  "static/chunks/561-3a19cd28d2b941fa.js",
154
- "static/chunks/app/(app)/detections/page-8030433ea5c099fa.js"
154
+ "static/chunks/app/(app)/detections/page-0bfa1f371b65b5ad.js"
155
155
  ]
156
156
  }
157
157
  }
@@ -3,16 +3,16 @@
3
3
  "/icon.svg/route": "/icon.svg",
4
4
  "/page": "/",
5
5
  "/(app)/data-shares/page": "/data-shares",
6
- "/(app)/exceptions/new/page": "/exceptions/new",
7
6
  "/(app)/activity/page": "/activity",
8
7
  "/(app)/exceptions/[id]/page": "/exceptions/[id]",
9
- "/(app)/policies/page": "/policies",
10
- "/(app)/findings/page": "/findings",
8
+ "/(app)/exceptions/new/page": "/exceptions/new",
11
9
  "/(app)/exceptions/page": "/exceptions",
10
+ "/(app)/findings/page": "/findings",
12
11
  "/(app)/scan/page": "/scan",
12
+ "/(app)/policies/page": "/policies",
13
13
  "/(app)/inventory/page": "/inventory",
14
- "/(app)/settings/page": "/settings",
15
14
  "/(app)/security/page": "/security",
16
15
  "/(app)/updates/page": "/updates",
16
+ "/(app)/settings/page": "/settings",
17
17
  "/(app)/detections/page": "/detections"
18
18
  }
@@ -5,8 +5,8 @@
5
5
  "devFiles": [],
6
6
  "ampDevFiles": [],
7
7
  "lowPriorityFiles": [
8
- "static/v339u67-B5AsSrzDBfv22/_buildManifest.js",
9
- "static/v339u67-B5AsSrzDBfv22/_ssgManifest.js"
8
+ "static/X9C7-HlMI5zAQEKfIW_6e/_buildManifest.js",
9
+ "static/X9C7-HlMI5zAQEKfIW_6e/_ssgManifest.js"
10
10
  ],
11
11
  "rootMainFiles": [
12
12
  "static/chunks/webpack-14166b28d6557de1.js",
@@ -83,8 +83,8 @@
83
83
  "dynamicRoutes": {},
84
84
  "notFoundRoutes": [],
85
85
  "preview": {
86
- "previewModeId": "1048fa6b1a02e520280e964e3be83829",
87
- "previewModeSigningKey": "7f408aa12fef32a53d71b5c602d7c2e93d17c67d02eab7071b34e908e6194019",
88
- "previewModeEncryptionKey": "7ebfe5926a83e25c333ddf5e2d99ad2cfd0e74b8424a592cfe25fb4970aab1fb"
86
+ "previewModeId": "d66736362409713162de3a642f464f95",
87
+ "previewModeSigningKey": "5d6d5267953a01552658391e640b133717a44f5438b64f1d5371c93ec2b1cbe2",
88
+ "previewModeEncryptionKey": "8aff86254474fb4462a6d1bf78ba2713a98a52e9c10891375db1f1fafc2375ad"
89
89
  }
90
90
  }