@viberaven/cli 1.6.5 → 1.6.6

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 (3) hide show
  1. package/README.md +8 -8
  2. package/dist/cli.js +18 -6
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -10,10 +10,10 @@ Requires Node.js 20 or newer. Run from the app's project root:
10
10
 
11
11
  ```bash
12
12
  # Open the local Studio
13
- npx -y viberaven@1.6.5
13
+ npx -y viberaven@1.6.6
14
14
 
15
15
  # Fresh terminal check
16
- npx -y viberaven@1.6.5 check
16
+ npx -y viberaven@1.6.6 check
17
17
  ```
18
18
 
19
19
  The `viberaven` package launches this CLI. Studio combines findings, provider context and git comparisons. For chat, select an installed/authenticated Codex CLI, Claude Code or Gemini CLI and use **Test connection**. Access modes: `ask`, `approve`, `full`. Stop Studio with Ctrl+C.
@@ -27,10 +27,10 @@ Checks include migration tables without RLS, unrestricted policy conditions such
27
27
  `check --json` prints a findings summary and artifact paths. `--json` without `check` runs a fresh scan and prints the full gate object.
28
28
 
29
29
  ```bash
30
- npx -y viberaven@1.6.5 check --json
31
- npx -y viberaven@1.6.5 audit --vercel-supabase --json
32
- npx -y viberaven@1.6.5 fix --gap <gapId> --dry-run
33
- npx -y viberaven@1.6.5 init --agents all --dry-run
30
+ npx -y viberaven@1.6.6 check --json
31
+ npx -y viberaven@1.6.6 audit --vercel-supabase --json
32
+ npx -y viberaven@1.6.6 fix --gap <gapId> --dry-run
33
+ npx -y viberaven@1.6.6 init --agents all --dry-run
34
34
  ```
35
35
 
36
36
  Read tasks and source before targeted edits. Preview fixes first. The `rls_disabled` recipe adds an RLS migration without policies: agree before applying, because browser roles lose row access until policies exist. Apply/test through your database workflow; recheck after a batch. Provider actions require provider evidence.
@@ -41,9 +41,9 @@ Read tasks and source before targeted edits. Preview fixes first. The `rls_disab
41
41
 
42
42
  ```bash
43
43
  # Fail on blockers
44
- npx -y viberaven@1.6.5 --strict --json
44
+ npx -y viberaven@1.6.6 --strict --json
45
45
  # Also fail on warnings
46
- npx -y viberaven@1.6.5 --strict=warning --json
46
+ npx -y viberaven@1.6.6 --strict=warning --json
47
47
  ```
48
48
 
49
49
  Default `--strict` returns 0 for `clear`/`warning`, 1 for `not_clear`, 2 for `error`, 3 for `unknown` or unavailable results. `--strict=warning` also returns 1 for warnings.
package/dist/cli.js CHANGED
@@ -10797,13 +10797,17 @@ function buildGapSeeds(scan, audit, databaseEvidence, extra = {}) {
10797
10797
  );
10798
10798
  const apiRoutes = hasApiRoutes(scan);
10799
10799
  if (scan.secretsFound.length > 0) {
10800
+ const privateLikePaths = scan.secretsFound.filter(
10801
+ (path) => !AMBIGUOUS_CONFIGURATION_BASENAMES.has(import_node_path7.posix.basename(path.replace(/\\/g, "/")).toLowerCase())
10802
+ );
10803
+ const ambiguousOnly = privateLikePaths.length === 0;
10800
10804
  seeds.push({
10801
10805
  id: "secrets_in_repo",
10802
10806
  category: "SECURITY & AUTH",
10803
- severity: "critical",
10804
- title: "Secret files are not gitignored",
10805
- detail: `Files that normally hold live credentials are not covered by .gitignore (${scan.secretsFound.slice(0, 5).join(", ")}). One \`git add .\` away from leaking keys into history.`,
10806
- copyPrompt: "Add the listed secret files (.env and friends) to .gitignore, verify none of them are already tracked with `git ls-files`, and if any were ever committed, rotate those credentials with the provider and scrub git history.",
10807
+ severity: ambiguousOnly ? "warning" : "critical",
10808
+ title: ambiguousOnly ? "Configuration filenames need review" : "Private-credential-like filenames need review",
10809
+ detail: `This filename-only check found files not covered by .gitignore (${scan.secretsFound.slice(0, 5).join(", ")}). Contents and Git tracking were not checked by this finding. ${ambiguousOnly ? "Base configuration may be intentionally tracked; credential content remains unverified." : `Private-credential-like filenames requiring review: ${privateLikePaths.slice(0, 5).join(", ")}. Credential content remains unverified.`}`,
10810
+ copyPrompt: "Review the listed files locally without pasting their values. Keep intentionally tracked public/base configuration when appropriate, and ignore private overrides after review. Check for actual private credentials and their Git tracking/history locally (`git ls-files` checks tracking). Only if actual private credentials were committed or otherwise exposed, rotate them with the provider and review Git history cleanup.",
10807
10811
  primaryMapCategory: "security"
10808
10812
  });
10809
10813
  }
@@ -11185,7 +11189,7 @@ async function buildLocalStationOutput(input) {
11185
11189
  productionChecklist: checklistFrom(seeds)
11186
11190
  };
11187
11191
  }
11188
- var import_node_child_process3, import_node_util3, import_promises6, import_node_path7, execFileAsync3, ENV_DRIFT_IGNORE, ENV_DRIFT_IGNORE_PREFIX, SUPABASE_EDGE_ENV, ENV_TEMPLATE_NAME, ENV_CODE_FILE, ENV_NAME, ENV_REFERENCES, SVELTEKIT_STATIC_IMPORT, SVELTEKIT_DYNAMIC_IMPORT, ENV_DESTRUCTURE, CODE_FILE, STRIPE_VERIFY_CALL, STRIPE_VERIFY_JSON_BODY, STRIPE_SIGNATURE_HEADER, RAW_BODY, STRIPE_EVENT_TYPE, REQUEST_HANDLER, TEST_FILE, STRIPE_CODE_USE, STRIPE_EDGE_WEBHOOK_PROMPT, AUDIT_FINDING_GAPS, FINDING_SEVERITY_RANK, DETAIL_MAX_FINDINGS, SEVERITY_ORDER, FULL_READ_LIMITS, PAYMENT_PATH;
11192
+ var import_node_child_process3, import_node_util3, import_promises6, import_node_path7, execFileAsync3, ENV_DRIFT_IGNORE, ENV_DRIFT_IGNORE_PREFIX, SUPABASE_EDGE_ENV, ENV_TEMPLATE_NAME, ENV_CODE_FILE, ENV_NAME, ENV_REFERENCES, SVELTEKIT_STATIC_IMPORT, SVELTEKIT_DYNAMIC_IMPORT, ENV_DESTRUCTURE, CODE_FILE, STRIPE_VERIFY_CALL, STRIPE_VERIFY_JSON_BODY, STRIPE_SIGNATURE_HEADER, RAW_BODY, STRIPE_EVENT_TYPE, REQUEST_HANDLER, TEST_FILE, STRIPE_CODE_USE, STRIPE_EDGE_WEBHOOK_PROMPT, AUDIT_FINDING_GAPS, FINDING_SEVERITY_RANK, DETAIL_MAX_FINDINGS, SEVERITY_ORDER, AMBIGUOUS_CONFIGURATION_BASENAMES, FULL_READ_LIMITS, PAYMENT_PATH;
11189
11193
  var init_localStation = __esm({
11190
11194
  "src/localStation.ts"() {
11191
11195
  "use strict";
@@ -11332,6 +11336,14 @@ var init_localStation = __esm({
11332
11336
  FINDING_SEVERITY_RANK = { critical: 0, high: 1, warning: 2, info: 3 };
11333
11337
  DETAIL_MAX_FINDINGS = 10;
11334
11338
  SEVERITY_ORDER = { critical: 0, warning: 1, info: 2 };
11339
+ AMBIGUOUS_CONFIGURATION_BASENAMES = /* @__PURE__ */ new Set([
11340
+ ".env",
11341
+ ".env.development",
11342
+ ".env.production",
11343
+ ".env.test",
11344
+ ".npmrc",
11345
+ "npmrc"
11346
+ ]);
11335
11347
  FULL_READ_LIMITS = { files: 40, bytes: 512e3 };
11336
11348
  PAYMENT_PATH = /webhook|stripe|payment|billing|checkout/i;
11337
11349
  }
@@ -15023,7 +15035,7 @@ var VERSION;
15023
15035
  var init_version = __esm({
15024
15036
  "src/version.ts"() {
15025
15037
  "use strict";
15026
- VERSION = "1.6.5";
15038
+ VERSION = "1.6.6";
15027
15039
  }
15028
15040
  });
15029
15041
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@viberaven/cli",
3
- "version": "1.6.5",
3
+ "version": "1.6.6",
4
4
  "description": "VibeRaven CLI and local Studio: Supabase RLS and security check for AI-built Vercel + Supabase apps, with an agent task list and fix prompts.",
5
5
  "license": "MIT",
6
6
  "author": "VibeRaven",