@viberaven/cli 1.7.0 → 1.7.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 (35) hide show
  1. package/AGENTS.md +64 -64
  2. package/LICENSE +21 -21
  3. package/README.md +67 -67
  4. package/SECURITY.md +59 -59
  5. package/dist/cli.js +697 -632
  6. package/dist/console/app.js +251 -251
  7. package/dist/console/index.html +46 -46
  8. package/dist/console/styles.css +267 -267
  9. package/dist/github-ci.js +1 -1
  10. package/dist/playbooks/_stack-default.json +11 -11
  11. package/dist/playbooks/auth-supabase.json +31 -31
  12. package/dist/playbooks/stripe.json +66 -66
  13. package/dist/playbooks/supabase.json +51 -51
  14. package/dist/playbooks/vercel.json +42 -42
  15. package/dist/report/assets/provider-authjs.svg +5 -5
  16. package/dist/report/assets/provider-aws.svg +5 -5
  17. package/dist/report/assets/provider-logrocket.svg +4 -4
  18. package/dist/report/report-cli.css +1466 -1466
  19. package/dist/report/station.css +11854 -11854
  20. package/dist/report/station.js +8319 -8319
  21. package/dist/stack/scene.css +522 -522
  22. package/dist/stack/stack.css +1691 -1691
  23. package/dist/vendor/anime.umd.min.js +7 -7
  24. package/package.json +96 -96
  25. package/playbooks/_stack-default.json +11 -11
  26. package/playbooks/auth-supabase.json +31 -31
  27. package/playbooks/stripe.json +66 -66
  28. package/playbooks/supabase.json +51 -51
  29. package/playbooks/vercel.json +42 -42
  30. package/schemas/permissions-matrix.schema.json +90 -90
  31. package/schemas/verification-plan.schema.json +350 -350
  32. package/schemas/verification-report.schema.json +550 -550
  33. package/templates/AGENTS.snippet.md +56 -56
  34. package/templates/CLAUDE.snippet.md +14 -14
  35. package/templates/CURSOR.snippet.md +14 -14
package/AGENTS.md CHANGED
@@ -1,64 +1,64 @@
1
- <!-- VIBERAVEN:START -->
2
- VibeRaven reads a repository and lists launch gaps for AI-built apps that deploy on Vercel and use Supabase. It runs fully locally: no login, no API key, no telemetry.
3
-
4
- Canonical agent command: `npx -y viberaven check`
5
-
6
- If this command is run from the `viberaven` repo itself, use `node packages/cli/dist/cli.js check` to avoid resolving the local package metadata.
7
-
8
- Suggest one pass before a Vercel + Supabase app launches or is handed off, after a Supabase migration or policy change, or when the user reports a production error about RLS, env vars, the database connection, the service role key or a Stripe webhook. It is not needed for apps that do not use Vercel and Supabase, for general SQL or deployment questions, or for one local error.
9
-
10
- This is advice, not a gate: the user decides when to ship. It is a repository check, not a live database test: it cannot show which RLS policies are live in production, and a clear result is not a security audit.
11
-
12
- Prefer `viberaven_check_readiness` when the VibeRaven MCP server is configured; otherwise `npx -y viberaven check`.
13
- <!-- VIBERAVEN:END -->
14
-
15
- # VibeRaven CLI: agent instructions
16
-
17
- ## Run it
18
-
19
- From the project root:
20
-
21
- ```bash
22
- npx -y viberaven check
23
- ```
24
-
25
- It writes, in `.viberaven/`:
26
-
27
- 1. `agent-tasklist.md`: one TASK block per gap, with fix type, file, exact fix, verify command and whether the user must act
28
- 2. `gate-result.json`: the verdict, `gate.status` (`clear`, `warning` or `not_clear`), and `topGapIds`
29
- 3. `context-map.json`: compact context for the next step
30
- 4. `agent-summary.md` and `launch-playbook.md`: scan context and the full checklist
31
- 5. `gaps/<gapId>.json`: detail for each gap
32
-
33
- ## Work the gaps
34
-
35
- Read the task list for each gap's fix route and whether user action is required. For legacy batch-loop integrations, the optional `--agent-mode` output also prints a block between `VIBERAVEN_NEXT_ACTION_START` and `VIBERAVEN_NEXT_ACTION_END` with `batchSize`, `batchApplied`, `remainingInBatch`, `scanNow`, `stalled`, `type` (`repo-code`, `provider-action`, `verify`, `stalled` or `done`), `gapId` and `requiresUserAction`.
36
-
37
- 1. For a repo-code task with `requiresUserAction: false` that lists an MCP call, call `viberaven_heal_apply { gap: "<gapId>", yes: true }` or run `npx -y viberaven fix --gap <gapId>`. Preview first with `npx -y viberaven fix --gap <gapId> --dry-run` or `viberaven_heal_plan`.
38
- 2. For a repo-code task without an MCP call, patch it directly with `npx -y viberaven prompt --gap <gapId>` as guidance. Make minimal, targeted changes and do not refactor unrelated files.
39
- 3. A successful heal updates `.viberaven/loop-state.json`. After a batch of up to `batchSize` fixes, or when `scanNow` is true, run `npx -y viberaven --verify` (or `viberaven_verify`) once, not after every fix.
40
- 4. For a task with `requiresUserAction: true`, show the user the task's action and wait for their answer: a provider step (the `VIBERAVEN_PROVIDER_ACTION` block with dashboard URL and step), or a repo change that needs their yes. For `rls_disabled` that change enables RLS without policies, so browser reads return no rows until policies exist; call `viberaven_heal_apply` or run `npx -y viberaven fix --gap rls_disabled` only after they agree. The task's MCP arguments leave out `yes: true`; add it once they agree. Do not claim dashboard, billing, DNS or webhook setup is done from repo edits alone.
41
- 5. If `stalled` is true, stop re-running the check and tell the user which gaps remain.
42
- 6. Stop when `gate.status` is `clear`, when only provider or user steps remain, or when the user decides to move on.
43
-
44
- A clear `gate.status` means the repo checks found no blockers. It is not a security audit and does not show what is live in Supabase or Vercel.
45
-
46
- ## Other commands
47
-
48
- ```bash
49
- npx -y viberaven check # terminal verdict, exit 1 when blockers exist
50
- npx -y viberaven next --json # the next step from the last scan
51
- npx -y viberaven audit --vercel-supabase # RLS in migrations, pooler port, service role key
52
- npx -y viberaven --strict # verdict as an exit code for CI: exit 1 when gate.status is not_clear
53
- npx -y viberaven init --agents all --dry-run
54
- npx -y viberaven clean --plan # non-destructive cleanup plan
55
- ```
56
-
57
- `viberaven_validate_npm_package` (MCP) looks a new package name up on the public npm registry before an install.
58
-
59
- ## Current machine-readable docs
60
-
61
- - Skill: https://viberaven.dev/SKILL.md
62
- - Agent rules: https://viberaven.dev/AGENTS.md
63
- - CLI docs: https://viberaven.dev/cli.md
64
- - MCP config: https://viberaven.dev/mcp.md
1
+ <!-- VIBERAVEN:START -->
2
+ VibeRaven reads a repository and lists launch gaps for AI-built apps that deploy on Vercel and use Supabase. It runs fully locally: no login, no API key, no telemetry.
3
+
4
+ Canonical agent command: `npx -y viberaven check`
5
+
6
+ If this command is run from the `viberaven` repo itself, use `node packages/cli/dist/cli.js check` to avoid resolving the local package metadata.
7
+
8
+ Suggest one pass before a Vercel + Supabase app launches or is handed off, after a Supabase migration or policy change, or when the user reports a production error about RLS, env vars, the database connection, the service role key or a Stripe webhook. It is not needed for apps that do not use Vercel and Supabase, for general SQL or deployment questions, or for one local error.
9
+
10
+ This is advice, not a gate: the user decides when to ship. It is a repository check, not a live database test: it cannot show which RLS policies are live in production, and a clear result is not a security audit.
11
+
12
+ Prefer `viberaven_check_readiness` when the VibeRaven MCP server is configured; otherwise `npx -y viberaven check`.
13
+ <!-- VIBERAVEN:END -->
14
+
15
+ # VibeRaven CLI: agent instructions
16
+
17
+ ## Run it
18
+
19
+ From the project root:
20
+
21
+ ```bash
22
+ npx -y viberaven check
23
+ ```
24
+
25
+ It writes, in `.viberaven/`:
26
+
27
+ 1. `agent-tasklist.md`: one TASK block per gap, with fix type, file, exact fix, verify command and whether the user must act
28
+ 2. `gate-result.json`: the verdict, `gate.status` (`clear`, `warning` or `not_clear`), and `topGapIds`
29
+ 3. `context-map.json`: compact context for the next step
30
+ 4. `agent-summary.md` and `launch-playbook.md`: scan context and the full checklist
31
+ 5. `gaps/<gapId>.json`: detail for each gap
32
+
33
+ ## Work the gaps
34
+
35
+ Read the task list for each gap's fix route and whether user action is required. For legacy batch-loop integrations, the optional `--agent-mode` output also prints a block between `VIBERAVEN_NEXT_ACTION_START` and `VIBERAVEN_NEXT_ACTION_END` with `batchSize`, `batchApplied`, `remainingInBatch`, `scanNow`, `stalled`, `type` (`repo-code`, `provider-action`, `verify`, `stalled` or `done`), `gapId` and `requiresUserAction`.
36
+
37
+ 1. For a repo-code task with `requiresUserAction: false` that lists an MCP call, call `viberaven_heal_apply { gap: "<gapId>", yes: true }` or run `npx -y viberaven fix --gap <gapId>`. Preview first with `npx -y viberaven fix --gap <gapId> --dry-run` or `viberaven_heal_plan`.
38
+ 2. For a repo-code task without an MCP call, patch it directly with `npx -y viberaven prompt --gap <gapId>` as guidance. Make minimal, targeted changes and do not refactor unrelated files.
39
+ 3. A successful heal updates `.viberaven/loop-state.json`. After a batch of up to `batchSize` fixes, or when `scanNow` is true, run `npx -y viberaven --verify` (or `viberaven_verify`) once, not after every fix.
40
+ 4. For a task with `requiresUserAction: true`, show the user the task's action and wait for their answer: a provider step (the `VIBERAVEN_PROVIDER_ACTION` block with dashboard URL and step), or a repo change that needs their yes. For `rls_disabled` that change enables RLS without policies, so browser reads return no rows until policies exist; call `viberaven_heal_apply` or run `npx -y viberaven fix --gap rls_disabled` only after they agree. The task's MCP arguments leave out `yes: true`; add it once they agree. Do not claim dashboard, billing, DNS or webhook setup is done from repo edits alone.
41
+ 5. If `stalled` is true, stop re-running the check and tell the user which gaps remain.
42
+ 6. Stop when `gate.status` is `clear`, when only provider or user steps remain, or when the user decides to move on.
43
+
44
+ A clear `gate.status` means the repo checks found no blockers. It is not a security audit and does not show what is live in Supabase or Vercel.
45
+
46
+ ## Other commands
47
+
48
+ ```bash
49
+ npx -y viberaven check # terminal verdict, exit 1 when blockers exist
50
+ npx -y viberaven next --json # the next step from the last scan
51
+ npx -y viberaven audit --vercel-supabase # RLS in migrations, pooler port, service role key
52
+ npx -y viberaven --strict # verdict as an exit code for CI: exit 1 when gate.status is not_clear
53
+ npx -y viberaven init --agents all --dry-run
54
+ npx -y viberaven clean --plan # non-destructive cleanup plan
55
+ ```
56
+
57
+ `viberaven_validate_npm_package` (MCP) looks a new package name up on the public npm registry before an install.
58
+
59
+ ## Current machine-readable docs
60
+
61
+ - Skill: https://viberaven.dev/SKILL.md
62
+ - Agent rules: https://viberaven.dev/AGENTS.md
63
+ - CLI docs: https://viberaven.dev/cli.md
64
+ - MCP config: https://viberaven.dev/mcp.md
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 VibeRaven
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 VibeRaven
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,67 +1,67 @@
1
- # @viberaven/cli
2
-
3
- VibeRaven checks AI-built apps on Vercel + Supabase for launch gaps before you ship: tables without RLS, permissive policies such as `using (true)`, service_role keys in client code, anon-callable security definer functions, the wrong pooler port and unverified Stripe webhooks. It reads the repository on your machine, then writes findings and tasks a coding agent can work through.
4
-
5
- Use a pass before launch or client handoff, after a migration or policy change, or when investigating a production RLS, environment, database connection, service-role or Stripe webhook failure.
6
-
7
- ## Start From Your App
8
-
9
- Requires Node.js 20 or newer. Run from the app's project root:
10
-
11
- ```bash
12
- # Open the local Studio
13
- npx -y viberaven@1.6.12
14
-
15
- # Fresh terminal check
16
- npx -y viberaven@1.6.12 check
17
- ```
18
-
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.
20
-
21
- ## Repository Evidence And Tasks
22
-
23
- Checks include migration tables without RLS (Supabase lint `rls_disabled_in_public`), unrestricted policy conditions such as `USING (true)`, browser-exposed service-role keys, security definer functions that no migration closes to `anon` (lint `anon_security_definer_function_executable`), a direct 5432 database URL instead of the 6543 pooler, environment names missing from `.env.example` or similar templates, and Stripe handlers without raw-body signature verification. Each gap is listed in the [GitHub README](https://github.com/ohad6k/VibeRaven#what-it-checks).
24
-
25
- `check` refreshes `.viberaven/agent-tasklist.md` (tasks and source locations), `gate-result.json` (full verdict), `context-map.json` (agent context) and `gaps/<gapId>.json` without patching app source.
26
-
27
- `check --json` prints a findings summary and artifact paths. `--json` without `check` runs a fresh scan and prints the full gate object.
28
-
29
- ```bash
30
- npx -y viberaven@1.6.12 check --json
31
- npx -y viberaven@1.6.12 audit --vercel-supabase --json
32
- npx -y viberaven@1.6.12 fix --gap <gapId> --dry-run
33
- npx -y viberaven@1.6.12 init --agents all --dry-run
34
- ```
35
-
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.
37
-
38
- ## Exit Codes And CI
39
-
40
- `check` returns 0 with no critical blockers, allowing warnings; 1 for critical blockers; 2 for a scan or comparison error. Unrestricted SELECT can be intentional public content and is a default warning. The focused audit returns 1 whenever its status is not `pass`, including warnings.
41
-
42
- ```bash
43
- # Fail on blockers
44
- npx -y viberaven@1.6.12 --strict --json
45
- # Also fail on warnings
46
- npx -y viberaven@1.6.12 --strict=warning --json
47
- ```
48
-
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.
50
-
51
- ## Optional Artifact Compatibility Mode
52
-
53
- Older integrations can keep the canonical artifact command:
54
-
55
- ```bash
56
- npx -y viberaven check
57
- ```
58
-
59
- Studio remains the default. MCP hosts use the separate [`@viberaven/mcp`](https://www.npmjs.com/package/@viberaven/mcp) package.
60
-
61
- ## Scope And Evidence
62
-
63
- The scan needs no VibeRaven login or API key; npm downloads can need network. It does not query live policies, prove complete permission coverage, run your build or deploy. With RLS off, table grants determine which roles and operations can reach rows. Verify live user access and provider environment, DNS, billing and webhooks separately. A clear result or score is not a security audit.
64
-
65
- The [missing-RLS example](https://ohad6k.github.io/VibeRaven/examples/proof/missing-rls/) and [RLS comparison](https://ohad6k.github.io/VibeRaven/examples/proof/rls-comparison/) retain published **1.6.3** runs. They are maintainer-authored, not new scans or independent endorsement. Comparison databases are local, not hosted Supabase.
66
-
67
- [Public repository](https://github.com/ohad6k/VibeRaven) | [Agent reference](https://ohad6k.github.io/VibeRaven/llms.txt). License: MIT.
1
+ # @viberaven/cli
2
+
3
+ VibeRaven checks AI-built apps on Vercel + Supabase for launch gaps before you ship: tables without RLS, permissive policies such as `using (true)`, service_role keys in client code, anon-callable security definer functions, the wrong pooler port and unverified Stripe webhooks. It reads the repository on your machine, then writes findings and tasks a coding agent can work through.
4
+
5
+ Use a pass before launch or client handoff, after a migration or policy change, or when investigating a production RLS, environment, database connection, service-role or Stripe webhook failure.
6
+
7
+ ## Start From Your App
8
+
9
+ Requires Node.js 20 or newer. Run from the app's project root:
10
+
11
+ ```bash
12
+ # Open the local Studio
13
+ npx -y viberaven@1.6.12
14
+
15
+ # Fresh terminal check
16
+ npx -y viberaven@1.6.12 check
17
+ ```
18
+
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.
20
+
21
+ ## Repository Evidence And Tasks
22
+
23
+ Checks include migration tables without RLS (Supabase lint `rls_disabled_in_public`), unrestricted policy conditions such as `USING (true)`, browser-exposed service-role keys, security definer functions that no migration closes to `anon` (lint `anon_security_definer_function_executable`), a direct 5432 database URL instead of the 6543 pooler, environment names missing from `.env.example` or similar templates, and Stripe handlers without raw-body signature verification. Each gap is listed in the [GitHub README](https://github.com/ohad6k/VibeRaven#what-it-checks).
24
+
25
+ `check` refreshes `.viberaven/agent-tasklist.md` (tasks and source locations), `gate-result.json` (full verdict), `context-map.json` (agent context) and `gaps/<gapId>.json` without patching app source.
26
+
27
+ `check --json` prints a findings summary and artifact paths. `--json` without `check` runs a fresh scan and prints the full gate object.
28
+
29
+ ```bash
30
+ npx -y viberaven@1.6.12 check --json
31
+ npx -y viberaven@1.6.12 audit --vercel-supabase --json
32
+ npx -y viberaven@1.6.12 fix --gap <gapId> --dry-run
33
+ npx -y viberaven@1.6.12 init --agents all --dry-run
34
+ ```
35
+
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.
37
+
38
+ ## Exit Codes And CI
39
+
40
+ `check` returns 0 with no critical blockers, allowing warnings; 1 for critical blockers; 2 for a scan or comparison error. Unrestricted SELECT can be intentional public content and is a default warning. The focused audit returns 1 whenever its status is not `pass`, including warnings.
41
+
42
+ ```bash
43
+ # Fail on blockers
44
+ npx -y viberaven@1.6.12 --strict --json
45
+ # Also fail on warnings
46
+ npx -y viberaven@1.6.12 --strict=warning --json
47
+ ```
48
+
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.
50
+
51
+ ## Optional Artifact Compatibility Mode
52
+
53
+ Older integrations can keep the canonical artifact command:
54
+
55
+ ```bash
56
+ npx -y viberaven check
57
+ ```
58
+
59
+ Studio remains the default. MCP hosts use the separate [`@viberaven/mcp`](https://www.npmjs.com/package/@viberaven/mcp) package.
60
+
61
+ ## Scope And Evidence
62
+
63
+ The scan needs no VibeRaven login or API key; npm downloads can need network. It does not query live policies, prove complete permission coverage, run your build or deploy. With RLS off, table grants determine which roles and operations can reach rows. Verify live user access and provider environment, DNS, billing and webhooks separately. A clear result or score is not a security audit.
64
+
65
+ The [missing-RLS example](https://ohad6k.github.io/VibeRaven/examples/proof/missing-rls/) and [RLS comparison](https://ohad6k.github.io/VibeRaven/examples/proof/rls-comparison/) retain published **1.6.3** runs. They are maintainer-authored, not new scans or independent endorsement. Comparison databases are local, not hosted Supabase.
66
+
67
+ [Public repository](https://github.com/ohad6k/VibeRaven) | [Agent reference](https://ohad6k.github.io/VibeRaven/llms.txt). License: MIT.
package/SECURITY.md CHANGED
@@ -1,59 +1,59 @@
1
- # Security - `@viberaven/cli`
2
-
3
- ## Managed Scan Boundary
4
-
5
- The npm CLI does not read `OPENAI_API_KEY` and does not accept a bring-your-own-key scan path. Scans use the VibeRaven managed API after device login, same as the signed-in VS Code extension.
6
-
7
- - API keys for model calls live on the server, not in the published npm package.
8
- - Local credentials store only a VibeRaven access token in `%APPDATA%\viberaven\credentials.json` or `~/.config/viberaven/`.
9
- - Never commit `credentials.json` or paste tokens into chat.
10
-
11
- ## Safe Commands
12
-
13
- Human terminal:
14
-
15
- ```bash
16
- npx -y viberaven
17
- ```
18
-
19
- Agent or CI gate:
20
-
21
- ```bash
22
- npx -y viberaven --agent-mode
23
- npx -y viberaven --verify
24
- npx -y viberaven --strict
25
- ```
26
-
27
- VibeRaven is the Agent Context + Production Gate. Agents should read `.viberaven/agent-tasklist.md`, `.viberaven/gate-result.json`, and `.viberaven/context-map.json` before claiming an app is safe to deploy.
28
-
29
- ## Written Artifacts
30
-
31
- After a scan, the CLI may create:
32
-
33
- | Path | Contents |
34
- |------|----------|
35
- | `.viberaven/last-scan.json` | Full scan payload |
36
- | `.viberaven/agent-tasklist.md` | Agent tasklist |
37
- | `.viberaven/gate-result.json` | Machine gate verdict |
38
- | `.viberaven/context-map.json` | Compact agent context |
39
- | `.viberaven/gaps/<gapId>.json` | Per-gap evidence |
40
- | `.viberaven/agent-summary.md` | Human/agent summary |
41
- | `.viberaven/launch-playbook.md` | Launch checklist |
42
- | `.viberaven/report.html` | Local HTML report |
43
-
44
- Repo scanners redact common key patterns in evidence strings; the CLI runs an extra redaction pass before writing files.
45
-
46
- ## Provider Boundaries
47
-
48
- Provider dashboard checks are not cleared by repo-code edits. Billing/product configuration, DNS, webhooks, credentials, quotas, and live provider verification must be completed or verified in the provider dashboard or through read-only provider evidence.
49
-
50
- ## MCP and npm Configuration
51
-
52
- `@viberaven/mcp` runs the CLI as `npx -y --package=@viberaven/cli@<its own version> -- viberaven ...`. Before it starts that npx, it removes every `npm_package_*` and `npm_lifecycle_*` variable and every `npm_config_*` variable except registry, proxy, TLS and auth settings. So the environment the MCP was started in cannot change what npx runs, add `node-options`, or point npx at another npmrc file.
53
-
54
- The child npx still reads npmrc files the normal way: your `~/.npmrc`, the global npmrc, and the `.npmrc` of the folder it runs in. That last one is the scanned repo's own `.npmrc`. It applies exactly as it does when you run `npx viberaven` in that folder yourself, and it can set options such as `node-options`. Only run VibeRaven, through MCP or directly, on repos whose `.npmrc` you would run npx under.
55
-
56
- ## Reporting Issues
57
-
58
- If you believe a scan artifact leaked a secret, rotate the key immediately and open an issue at https://github.com/ohad6k/VibeRaven/issues with the redacted file path only.
59
-
1
+ # Security - `@viberaven/cli`
2
+
3
+ ## Managed Scan Boundary
4
+
5
+ The npm CLI does not read `OPENAI_API_KEY` and does not accept a bring-your-own-key scan path. Scans use the VibeRaven managed API after device login, same as the signed-in VS Code extension.
6
+
7
+ - API keys for model calls live on the server, not in the published npm package.
8
+ - Local credentials store only a VibeRaven access token in `%APPDATA%\viberaven\credentials.json` or `~/.config/viberaven/`.
9
+ - Never commit `credentials.json` or paste tokens into chat.
10
+
11
+ ## Safe Commands
12
+
13
+ Human terminal:
14
+
15
+ ```bash
16
+ npx -y viberaven
17
+ ```
18
+
19
+ Agent or CI gate:
20
+
21
+ ```bash
22
+ npx -y viberaven --agent-mode
23
+ npx -y viberaven --verify
24
+ npx -y viberaven --strict
25
+ ```
26
+
27
+ VibeRaven is the Agent Context + Production Gate. Agents should read `.viberaven/agent-tasklist.md`, `.viberaven/gate-result.json`, and `.viberaven/context-map.json` before claiming an app is safe to deploy.
28
+
29
+ ## Written Artifacts
30
+
31
+ After a scan, the CLI may create:
32
+
33
+ | Path | Contents |
34
+ |------|----------|
35
+ | `.viberaven/last-scan.json` | Full scan payload |
36
+ | `.viberaven/agent-tasklist.md` | Agent tasklist |
37
+ | `.viberaven/gate-result.json` | Machine gate verdict |
38
+ | `.viberaven/context-map.json` | Compact agent context |
39
+ | `.viberaven/gaps/<gapId>.json` | Per-gap evidence |
40
+ | `.viberaven/agent-summary.md` | Human/agent summary |
41
+ | `.viberaven/launch-playbook.md` | Launch checklist |
42
+ | `.viberaven/report.html` | Local HTML report |
43
+
44
+ Repo scanners redact common key patterns in evidence strings; the CLI runs an extra redaction pass before writing files.
45
+
46
+ ## Provider Boundaries
47
+
48
+ Provider dashboard checks are not cleared by repo-code edits. Billing/product configuration, DNS, webhooks, credentials, quotas, and live provider verification must be completed or verified in the provider dashboard or through read-only provider evidence.
49
+
50
+ ## MCP and npm Configuration
51
+
52
+ `@viberaven/mcp` runs the CLI as `npx -y --package=@viberaven/cli@<its own version> -- viberaven ...`. Before it starts that npx, it removes every `npm_package_*` and `npm_lifecycle_*` variable and every `npm_config_*` variable except registry, proxy, TLS and auth settings. So the environment the MCP was started in cannot change what npx runs, add `node-options`, or point npx at another npmrc file.
53
+
54
+ The child npx still reads npmrc files the normal way: your `~/.npmrc`, the global npmrc, and the `.npmrc` of the folder it runs in. That last one is the scanned repo's own `.npmrc`. It applies exactly as it does when you run `npx viberaven` in that folder yourself, and it can set options such as `node-options`. Only run VibeRaven, through MCP or directly, on repos whose `.npmrc` you would run npx under.
55
+
56
+ ## Reporting Issues
57
+
58
+ If you believe a scan artifact leaked a secret, rotate the key immediately and open an issue at https://github.com/ohad6k/VibeRaven/issues with the redacted file path only.
59
+