@nerviq/cli 1.29.0 → 1.29.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/CHANGELOG.md +1527 -1493
- package/README.md +550 -538
- package/SECURITY.md +82 -82
- package/bin/cli.js +2562 -2558
- package/docs/api-reference.md +356 -356
- package/docs/audit-fix.md +109 -0
- package/docs/autofix.md +3 -62
- package/docs/getting-started.md +1 -1
- package/docs/index.html +592 -592
- package/docs/integration-contracts.md +287 -287
- package/docs/maintenance.md +128 -128
- package/docs/new-platform-guide.md +202 -202
- package/docs/release-process.md +63 -0
- package/docs/shallow-risk.md +244 -244
- package/docs/why-nerviq.md +82 -82
- package/package.json +67 -67
- package/src/aider/activity.js +226 -226
- package/src/aider/context.js +162 -162
- package/src/aider/freshness.js +123 -123
- package/src/aider/techniques.js +3465 -3465
- package/src/audit/layers.js +180 -180
- package/src/audit.js +1032 -1032
- package/src/benchmark.js +299 -299
- package/src/codex/activity.js +324 -324
- package/src/codex/freshness.js +142 -142
- package/src/codex/techniques.js +4895 -4895
- package/src/context.js +326 -326
- package/src/continuous-ops.js +11 -1
- package/src/convert.js +340 -340
- package/src/copilot/config-parser.js +280 -280
- package/src/copilot/context.js +218 -218
- package/src/copilot/freshness.js +177 -177
- package/src/copilot/patch.js +238 -238
- package/src/copilot/techniques.js +3578 -3578
- package/src/cursor/freshness.js +194 -194
- package/src/cursor/patch.js +243 -243
- package/src/cursor/techniques.js +3735 -3735
- package/src/doctor.js +201 -201
- package/src/fix-engine.js +511 -8
- package/src/formatters/csv.js +86 -86
- package/src/formatters/junit.js +123 -123
- package/src/formatters/markdown.js +164 -164
- package/src/formatters/otel.js +151 -151
- package/src/freshness.js +156 -156
- package/src/gemini/activity.js +402 -402
- package/src/gemini/context.js +290 -290
- package/src/gemini/freshness.js +183 -183
- package/src/gemini/patch.js +229 -229
- package/src/gemini/techniques.js +3811 -3811
- package/src/governance.js +533 -533
- package/src/harmony/audit.js +306 -306
- package/src/i18n.js +63 -63
- package/src/insights.js +119 -119
- package/src/integrations.js +134 -134
- package/src/locales/en.json +33 -33
- package/src/locales/es.json +33 -33
- package/src/migrate.js +354 -354
- package/src/opencode/activity.js +286 -286
- package/src/opencode/freshness.js +137 -137
- package/src/opencode/techniques.js +3450 -3450
- package/src/setup/analysis.js +12 -12
- package/src/setup.js +7 -6
- package/src/shallow-risk/index.js +56 -56
- package/src/shallow-risk/patterns/agent-config-cross-platform-drift.js +50 -50
- package/src/shallow-risk/patterns/agent-config-dangerous-autoapprove.js +46 -46
- package/src/shallow-risk/patterns/agent-config-deprecated-keys.js +46 -46
- package/src/shallow-risk/patterns/agent-config-missing-file.js +317 -317
- package/src/shallow-risk/patterns/agent-config-secret-literal.js +49 -49
- package/src/shallow-risk/patterns/agent-config-stack-contradiction.js +34 -34
- package/src/shallow-risk/patterns/hook-script-missing.js +70 -70
- package/src/shallow-risk/patterns/mcp-server-no-allowlist.js +52 -52
- package/src/shallow-risk/shared.js +648 -648
- package/src/source-urls.js +295 -295
- package/src/state-paths.js +85 -85
- package/src/supplemental-checks.js +805 -805
- package/src/telemetry.js +160 -160
- package/src/windsurf/context.js +359 -359
- package/src/windsurf/freshness.js +194 -194
- package/src/windsurf/patch.js +231 -231
- package/src/windsurf/techniques.js +3779 -3779
package/SECURITY.md
CHANGED
|
@@ -1,82 +1,82 @@
|
|
|
1
|
-
# Security Policy
|
|
2
|
-
|
|
3
|
-
## Reporting a Vulnerability
|
|
4
|
-
|
|
5
|
-
If you discover a security vulnerability in Nerviq, please report it responsibly.
|
|
6
|
-
|
|
7
|
-
**Email:** [business@nerviq.net](mailto:business@nerviq.net) (subject: SECURITY)
|
|
8
|
-
|
|
9
|
-
Please include:
|
|
10
|
-
|
|
11
|
-
- Description of the vulnerability
|
|
12
|
-
- Steps to reproduce
|
|
13
|
-
- Affected version(s)
|
|
14
|
-
- Impact assessment (if known)
|
|
15
|
-
|
|
16
|
-
**Do not** open a public GitHub issue for security vulnerabilities.
|
|
17
|
-
|
|
18
|
-
## Response SLA
|
|
19
|
-
|
|
20
|
-
| Severity | Response Time | Fix Timeline |
|
|
21
|
-
|----------|--------------|--------------|
|
|
22
|
-
| **Critical** (RCE, data exfiltration) | < 24 hours | < 48 hours |
|
|
23
|
-
| **High** (privilege escalation, auth bypass) | < 48 hours | < 7 days |
|
|
24
|
-
| **Medium** (information disclosure, DoS) | < 7 days | < 30 days |
|
|
25
|
-
| **Low** (minor issues, hardening) | < 14 days | Next release |
|
|
26
|
-
|
|
27
|
-
## Supported Versions
|
|
28
|
-
|
|
29
|
-
| Version | Supported |
|
|
30
|
-
|---------|-----------|
|
|
31
|
-
| 1.29.x | Yes |
|
|
32
|
-
| 1.28.x | Yes |
|
|
33
|
-
| 1.27.x | Yes |
|
|
34
|
-
| 1.26.x | Yes |
|
|
35
|
-
| < 1.26 | No |
|
|
36
|
-
| < 1.29 | No |
|
|
37
|
-
|
|
38
|
-
Only the latest patch release of each supported major.minor line receives security updates.
|
|
39
|
-
|
|
40
|
-
## Dependency Policy
|
|
41
|
-
|
|
42
|
-
- **Zero runtime dependencies.** Nerviq ships with no production `node_modules` — only Node.js (>=18) is required.
|
|
43
|
-
- **devDependencies audited monthly** using `npm audit` and reviewed for known CVEs.
|
|
44
|
-
- **SBOM published** with every release (`sbom.cdx.json`) in CycloneDX format for full dependency transparency.
|
|
45
|
-
- **Lockfile integrity** checked in CI to prevent supply-chain tampering.
|
|
46
|
-
- **npm provenance attestation** — every release published via the GitHub Actions release workflow is signed with an npm provenance attestation (`npm publish --provenance`). This cryptographically links the published package to a specific GitHub Actions run, repository, and commit. Consumers can verify the attestation with `npm audit signatures @nerviq/cli`.
|
|
47
|
-
|
|
48
|
-
## Security Architecture
|
|
49
|
-
|
|
50
|
-
- All operations run **locally** — no data is sent to external servers by default.
|
|
51
|
-
- The `nerviq serve` command binds to **localhost only** (127.0.0.1), never to 0.0.0.0.
|
|
52
|
-
- `deep-review` (opt-in) redacts secrets and credentials before sending config snippets to any AI provider.
|
|
53
|
-
- No secrets, tokens, or API keys are stored by Nerviq.
|
|
54
|
-
|
|
55
|
-
## Reporting False Positives in Checks
|
|
56
|
-
|
|
57
|
-
If a Nerviq audit check produces a false positive (flags something that is not actually a problem):
|
|
58
|
-
|
|
59
|
-
1. Run `nerviq audit --verbose` to identify the exact check key (e.g., `permissionDeny`).
|
|
60
|
-
2. Open a GitHub issue with:
|
|
61
|
-
- The check key
|
|
62
|
-
- Your project structure (relevant files only)
|
|
63
|
-
- Why you believe it is a false positive
|
|
64
|
-
3. Alternatively, use `nerviq feedback --key <checkKey> --status rejected --effect neutral --notes "false positive: <reason>"` to record it locally.
|
|
65
|
-
|
|
66
|
-
False positive reports help us improve check accuracy for all users.
|
|
67
|
-
|
|
68
|
-
## Acknowledgments
|
|
69
|
-
|
|
70
|
-
We gratefully acknowledge security researchers who responsibly disclose vulnerabilities. With your permission, we will list you in our security acknowledgments.
|
|
71
|
-
|
|
72
|
-
## Internal Response Process
|
|
73
|
-
|
|
74
|
-
When a vulnerability report arrives:
|
|
75
|
-
|
|
76
|
-
1. **Acknowledge** — Reply within the SLA above confirming receipt
|
|
77
|
-
2. **Triage** — Classify severity (Critical/High/Medium/Low), assign to founder
|
|
78
|
-
3. **Reproduce** — Verify the vulnerability exists in the latest supported version
|
|
79
|
-
4. **Fix** — Develop fix on a private branch, add regression test
|
|
80
|
-
5. **Release** — Publish patched version to npm, tag in GitHub
|
|
81
|
-
6. **Disclose** — Notify reporter, update CHANGELOG.md with security tag, credit reporter if permitted
|
|
82
|
-
7. **Post-mortem** — For Critical/High: document root cause and prevention measures in `research/`
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## Reporting a Vulnerability
|
|
4
|
+
|
|
5
|
+
If you discover a security vulnerability in Nerviq, please report it responsibly.
|
|
6
|
+
|
|
7
|
+
**Email:** [business@nerviq.net](mailto:business@nerviq.net) (subject: SECURITY)
|
|
8
|
+
|
|
9
|
+
Please include:
|
|
10
|
+
|
|
11
|
+
- Description of the vulnerability
|
|
12
|
+
- Steps to reproduce
|
|
13
|
+
- Affected version(s)
|
|
14
|
+
- Impact assessment (if known)
|
|
15
|
+
|
|
16
|
+
**Do not** open a public GitHub issue for security vulnerabilities.
|
|
17
|
+
|
|
18
|
+
## Response SLA
|
|
19
|
+
|
|
20
|
+
| Severity | Response Time | Fix Timeline |
|
|
21
|
+
|----------|--------------|--------------|
|
|
22
|
+
| **Critical** (RCE, data exfiltration) | < 24 hours | < 48 hours |
|
|
23
|
+
| **High** (privilege escalation, auth bypass) | < 48 hours | < 7 days |
|
|
24
|
+
| **Medium** (information disclosure, DoS) | < 7 days | < 30 days |
|
|
25
|
+
| **Low** (minor issues, hardening) | < 14 days | Next release |
|
|
26
|
+
|
|
27
|
+
## Supported Versions
|
|
28
|
+
|
|
29
|
+
| Version | Supported |
|
|
30
|
+
|---------|-----------|
|
|
31
|
+
| 1.29.x | Yes |
|
|
32
|
+
| 1.28.x | Yes |
|
|
33
|
+
| 1.27.x | Yes |
|
|
34
|
+
| 1.26.x | Yes |
|
|
35
|
+
| < 1.26 | No |
|
|
36
|
+
| < 1.29 | No |
|
|
37
|
+
|
|
38
|
+
Only the latest patch release of each supported major.minor line receives security updates.
|
|
39
|
+
|
|
40
|
+
## Dependency Policy
|
|
41
|
+
|
|
42
|
+
- **Zero runtime dependencies.** Nerviq ships with no production `node_modules` — only Node.js (>=18) is required.
|
|
43
|
+
- **devDependencies audited monthly** using `npm audit` and reviewed for known CVEs.
|
|
44
|
+
- **SBOM published** with every release (`sbom.cdx.json`) in CycloneDX format for full dependency transparency.
|
|
45
|
+
- **Lockfile integrity** checked in CI to prevent supply-chain tampering.
|
|
46
|
+
- **npm provenance attestation** — every release published via the GitHub Actions release workflow is signed with an npm provenance attestation (`npm publish --provenance`). This cryptographically links the published package to a specific GitHub Actions run, repository, and commit. Consumers can verify the attestation with `npm audit signatures @nerviq/cli`.
|
|
47
|
+
|
|
48
|
+
## Security Architecture
|
|
49
|
+
|
|
50
|
+
- All operations run **locally** — no data is sent to external servers by default.
|
|
51
|
+
- The `nerviq serve` command binds to **localhost only** (127.0.0.1), never to 0.0.0.0.
|
|
52
|
+
- `deep-review` (opt-in) redacts secrets and credentials before sending config snippets to any AI provider.
|
|
53
|
+
- No secrets, tokens, or API keys are stored by Nerviq.
|
|
54
|
+
|
|
55
|
+
## Reporting False Positives in Checks
|
|
56
|
+
|
|
57
|
+
If a Nerviq audit check produces a false positive (flags something that is not actually a problem):
|
|
58
|
+
|
|
59
|
+
1. Run `nerviq audit --verbose` to identify the exact check key (e.g., `permissionDeny`).
|
|
60
|
+
2. Open a GitHub issue with:
|
|
61
|
+
- The check key
|
|
62
|
+
- Your project structure (relevant files only)
|
|
63
|
+
- Why you believe it is a false positive
|
|
64
|
+
3. Alternatively, use `nerviq feedback --key <checkKey> --status rejected --effect neutral --notes "false positive: <reason>"` to record it locally.
|
|
65
|
+
|
|
66
|
+
False positive reports help us improve check accuracy for all users.
|
|
67
|
+
|
|
68
|
+
## Acknowledgments
|
|
69
|
+
|
|
70
|
+
We gratefully acknowledge security researchers who responsibly disclose vulnerabilities. With your permission, we will list you in our security acknowledgments.
|
|
71
|
+
|
|
72
|
+
## Internal Response Process
|
|
73
|
+
|
|
74
|
+
When a vulnerability report arrives:
|
|
75
|
+
|
|
76
|
+
1. **Acknowledge** — Reply within the SLA above confirming receipt
|
|
77
|
+
2. **Triage** — Classify severity (Critical/High/Medium/Low), assign to founder
|
|
78
|
+
3. **Reproduce** — Verify the vulnerability exists in the latest supported version
|
|
79
|
+
4. **Fix** — Develop fix on a private branch, add regression test
|
|
80
|
+
5. **Release** — Publish patched version to npm, tag in GitHub
|
|
81
|
+
6. **Disclose** — Notify reporter, update CHANGELOG.md with security tag, credit reporter if permitted
|
|
82
|
+
7. **Post-mortem** — For Critical/High: document root cause and prevention measures in `research/`
|