nsauditor-ai-agent-skill 0.2.39 → 0.2.40

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 CHANGED
@@ -4,6 +4,33 @@ Release notes for **`nsauditor-ai-agent-skill`** — installable knowledge packa
4
4
 
5
5
  ---
6
6
 
7
+ ## 0.2.40 (2026-08-15) — post-EE 0.37.0: offline CVE data can be hand-carried
8
+
9
+ **Requires CE >= 0.2.42** — raised, because the new entry points live in CE.
10
+
11
+ Enterprise 0.37.0 ships `feed bundle` and `feed import` — delivered as a **restricted** distribution, amd64 only.
12
+ They merge NVD feed files downloaded on a connected host into one archive, carry it, and import it
13
+ into the offline store on an isolated host. What an agent working with these artifacts must know:
14
+
15
+ - **`feed bundle` bundles the FEEDS YOU DOWNLOADED, never "your database".** The offline store is a
16
+ lossy derivation of an NVD feed and cannot be turned back into one. Do not describe this as a
17
+ store export, and do not tell an operator it will back up their store.
18
+ - **No KEV or EPSS data ships with the product.** `--kev` / `--epss` carry the operator's own
19
+ downloads from CISA and FIRST. "Exploit intelligence ships with NSAuditor" is wrong.
20
+ - **A bundle is integrity-checked, not authenticated.** The recorded SHA-256 detects alteration in
21
+ transit; it cannot establish authorship, because it travels inside the archive it covers. Never
22
+ describe an imported bundle as trusted or verified-as-genuine.
23
+ - **Import skips about a quarter of a real NVD year file by design** — withdrawn CVEs and entries
24
+ with no CPE match data. That is not data loss. Malformed records are a different signal and mean
25
+ re-download.
26
+ - **The air-gap delivery claims are EARNED BACK at this release** — offline installation tarball,
27
+ install script, feed-import CLI and air-gapped deployment. Teach them WITH their conditions, which
28
+ are part of the claim: the bundle is a **restricted** distribution (not a public `npm install`) and
29
+ it is **amd64** only. **arm64 images remain WITHDRAWN**, so never describe an arm64 enclave as
30
+ supported.
31
+
32
+ ---
33
+
7
34
  ## 0.2.39 (2026-08-13) — post-EE 0.36.0: the report verifies the signatures it renders
8
35
 
9
36
  **Requires CE >= 0.2.40** (unchanged — nothing this cycle needs new CE code).
package/README.md CHANGED
@@ -18,9 +18,13 @@ environment setting behind them.
18
18
  ⚠️ **What the skill must teach accurately about this release, because it is easy to overstate:**
19
19
  `NSAUDITOR_SIGNING_KEY` is not a new variable — it existed and was inert. As of Enterprise 0.35.0
20
20
  it is **CONSUMED**: `compliance suppress` signs the approval it writes when the variable names a
21
- local Ed25519 key — a capability that is **reachable and not yet proven**, because its verification
22
- gate has not run against published bytes — so an agent must never present a produced signature as verified
23
- evidence, and must never use the bare word "signed" without that qualifier. The commands are
21
+ local Ed25519 key — reachable, and PROVEN as of EE 0.36.0 per approver holding key material.
22
+ Its verification
23
+ gate ran against the published bytes and passed, with a length-preserving tamper rendering
24
+ `signature FAILED verification` as the negative control. An agent may describe a produced signature
25
+ as verified evidence **for approvers whose registry entry carries key material** — for a
26
+ fingerprint-only entry a report reads `not checked by this report`, which records that no check ran
27
+ and never that one failed, and must not be reported as tampering. The commands are
24
28
  **CLI-only**; no MCP tool reaches them, so an agent asked to record an approval must shell out
25
29
  rather than look for a tool.
26
30
 
@@ -132,7 +136,7 @@ This package provides **knowledge about** NSAuditor AI. To actually **run** scan
132
136
  |---------|-------|-----------|
133
137
  | **Community** | Free / MIT | 27 plugins (service probes + host/network discovery + intelligence/meta), basic AI, SARIF, CTEM, scan history |
134
138
  | **Pro** | $49/mo | + CVE matching, risk scoring, 3 Pro plugins (040 TLS / 050 TRIBE / 060 DNS) |
135
- | **Enterprise** | $2k+/yr | + 28 enterprise plugins (1020-1222 range) — 27 cloud-substrate auditors across AWS / Azure / GCP plus `1023 Zero Trust Assessment`, which scores zero-trust posture from a NETWORK-host scan and does not run on a cloud pass, seven-framework evidence-pack (SOC 2 / HIPAA / NIST CSF 2.0 / PCI DSS v4.0.1 / ISO 27001:2022 / CIS Controls v8 / GDPR Art. 32), SHA-256 chain-of-custody attestations, the suppression-approval CLI with opt-in Ed25519 signing (reachable from EE 0.35.0, not yet proven), air-gapped operation (offline licensing + offline CVE matching) |
139
+ | **Enterprise** | $2k+/yr | + 28 enterprise plugins (1020-1222 range) — 27 cloud-substrate auditors across AWS / Azure / GCP plus `1023 Zero Trust Assessment`, which scores zero-trust posture from a NETWORK-host scan and does not run on a cloud pass, seven-framework evidence-pack (SOC 2 / HIPAA / NIST CSF 2.0 / PCI DSS v4.0.1 / ISO 27001:2022 / CIS Controls v8 / GDPR Art. 32), SHA-256 chain-of-custody attestations, the suppression-approval CLI with opt-in Ed25519 signing (reachable from EE 0.35.0, proven 0.36.0, verified per approver holding key material), air-gapped operation (offline licensing + offline CVE matching) |
136
140
 
137
141
  → [Pricing](https://www.nsauditor.com/ai/pricing/)
138
142
 
package/SKILL.md CHANGED
@@ -16,9 +16,11 @@ description: >
16
16
 
17
17
  # NSAuditor AI — Agent Skill
18
18
 
19
- > **Version:** 0.2.39 (post-EE-0.36.0 · **requires CE ≥ 0.2.40**) — the verification release. Every compliance report now cryptographically checks each suppression signature — the Ed25519 suppression-signing capability this exercises stays **not yet proven**, its verification gate not having run against published bytes, and writes `report.signatureVerification`. A MISSING verdict means NOT CHECKED, never failed; `cryptoValid` is absent when unanswerable, never `false`. Ed25519 suppression signing stays **not yet proven** — its gate has not run against published bytes.
19
+ > **Version:** 0.2.40 (post-EE-0.37.0 · **requires CE ≥ 0.2.42**) — the air-gap feed release. `feed bundle` and `feed import` let NVD feed files downloaded on a connected host be merged into one archive, hand-carried, and imported into the offline store on an isolated host — delivered as a **restricted** distribution rather than a public `npm install`, and amd64 only. ⚠️ Teach these precisely: **`feed bundle` bundles the FEEDS YOU DOWNLOADED, never "your database"** — the offline store is a lossy derivation of an NVD feed and cannot be turned back into one, so never describe this as a store export or a backup. **No KEV or EPSS data ships with the product**; `--kev` / `--epss` carry the operator's own downloads from CISA and FIRST, and `--extras-dir` places them on import and prints the environment lines to set. **A bundle is integrity-checked, NOT authenticated** — the recorded SHA-256 detects alteration in transit but cannot establish authorship, because it travels inside the archive it covers; never describe an imported bundle as trusted or verified-as-genuine. **Import skips about a quarter of a real NVD year file by design** (withdrawn CVEs, entries with no CPE match data) — that is not data loss, while malformed records are a different signal meaning re-download. The air-gap delivery claims are EARNED BACK at this release — offline installation tarball, install script, feed-import CLI and air-gapped deployment — because the artifacts exist and the delivery gate passes on the built bytes. Teach them WITH their conditions, which are part of the claim and not footnotes: the bundle is a **restricted** distribution rather than a public `npm install`, and it is **amd64** only. **arm64 images remain WITHDRAWN** — never describe an arm64 enclave as supported.
20
20
  >
21
- > **Prior:** 0.2.38 (post-EE-0.35.0 · **requires CE ≥ 0.2.40**) — the approval-surface release. Four Enterprise commands are now reachable from the CLI: `compliance suppress | review | renew | keygen`. `keygen` creates an Ed25519 approval keypair for a capability that is not yet proven, writes the private half `0600` and prints an identity-registry member to paste; it refuses to overwrite an existing signing key. `suppress` signs the approval it writes when `NSAUDITOR_SIGNING_KEY` names a local Ed25519 key, and a malformed key fails at the command with nothing written. `renew` warns that renewing a signed approval invalidates its signature — the expiry and the renewal record live inside the signed payload, so the record afterwards reads `signature does not match payload`, which an auditor cannot distinguish from real tampering. ⚠️ **Teach this precisely: Ed25519 suppression signing is now REACHABLE and NOT YET PROVEN.** The verification gate has not run against published bytes, so never present a produced signature as verified evidence and never use the bare word "signed" without that qualifier. These commands are CLI-only — they are not MCP-reachable. Plugin catalog UNCHANGED at 28 EE / 55 overall; all seven matrices UNCHANGED.
21
+ > **Prior:** 0.2.39 (post-EE-0.36.0 · **requires CE ≥ 0.2.40**) — the verification release. Every compliance report now cryptographically checks each suppression signature — the Ed25519 suppression-signing capability this exercises is **proven as of EE 0.36.0 and verified for approvers whose registry entry carries key material**, its verification gate having run against the published bytes and passed — and writes `report.signatureVerification`. A MISSING verdict means NOT CHECKED, never failed; `cryptoValid` is absent when unanswerable, never `false`. Verification runs for approvers whose registry entry carries key material.
22
+ >
23
+ > **Prior:** 0.2.38 (post-EE-0.35.0 · **requires CE ≥ 0.2.40**) — the approval-surface release. Four Enterprise commands are now reachable from the CLI: `compliance suppress | review | renew | keygen`. `keygen` creates an Ed25519 approval keypair for a capability that was not yet proven at that release, writes the private half `0600` and prints an identity-registry member to paste; it refuses to overwrite an existing signing key. `suppress` signs the approval it writes when `NSAUDITOR_SIGNING_KEY` names a local Ed25519 key, and a malformed key fails at the command with nothing written. `renew` warns that renewing a signed approval invalidates its signature — the expiry and the renewal record live inside the signed payload, so the record afterwards reads `signature does not match payload`, which an auditor cannot distinguish from real tampering. ⚠️ **Teach this precisely: Ed25519 suppression signing became REACHABLE at that release and was NOT YET PROVEN then. It was PROVEN at EE 0.36.0** — the verification gate ran against the published bytes and passed. Verification runs for approvers whose registry entry carries key material; for a fingerprint-only entry a report reads `not checked`, which records that no check ran and never that one failed. These commands are CLI-only — they are not MCP-reachable. Plugin catalog UNCHANGED at 28 EE / 55 overall; all seven matrices UNCHANGED.
22
24
  >
23
25
  > **Prior:** 0.2.37 (post-EE-0.34.0 · **requires CE ≥ 0.2.39**) — the exploit-intelligence release. Enterprise findings that carry CVEs are joined by CVE-ID against a local **CISA KEV** catalog and a local **FIRST EPSS** scores file, banded `KNOWN_EXPLOITED` / `ELEVATED` / `BASELINE`, and the finding queue is ordered exploit-first — a KEV-listed MEDIUM outranks an unexploited CRITICAL. ⚠️ Teach this accurately: **no feed data ships with the product.** Both stores are operator-populated via `NSAUDITOR_EXPLOIT_KEV_STORE` / `NSAUDITOR_EXPLOIT_EPSS_STORE`, the same rule as the offline NVD store, and both **fail closed when stale** (KEV 14-day / EPSS 10-day windows) so an out-of-date catalog never reports "not exploited". `riskScore` is UNCHANGED — `exploitPriority` is a new axis beside it, not a re-weighting. ⚠️ One correction to this package's own prose: the risk score is **CVSS weighted by verification status with an initial-access uplift**, not "severity × exploitability × impact × exposure" — that phrasing named an exploitability input that did not exist until this release. Plugin catalog UNCHANGED at 28 EE / 55 overall; all seven matrices UNCHANGED.
24
26
 
@@ -232,7 +234,7 @@ mapping the engine did not emit, and never claim an MCP call produced a pack.
232
234
 
233
235
  An operator can mark a finding as accepted-risk or false-positive. That suppression workflow **ships and is reachable**: a suppressed finding renders with status `FALSE_POSITIVE`, set by an operator rather than by a probe, and the suppression is applied before the pack is written — so it sits **inside** the hashed artifact rather than being independently attested.
234
236
 
235
- ⚠️ **Ed25519 SIGNING of suppressions became reachable in EE 0.35.0 via `compliance suppress`, and is NOT YET PROVEN — the verification gate has not run against published bytes, so never present a produced signature as verified evidence.** The signer backends and the frozen `algorithm` / `backend` record fields are groundwork, deliberately landed before reachability because retrofitting algorithm agility once signatures exist in customer archives would break every auditor holding one. Setting `NSAUDITOR_SIGNING_KEY` changes nothing today, because nothing calls the signer.
237
+ ⚠️ **Ed25519 SIGNING of suppressions became reachable in EE 0.35.0 via `compliance suppress` and was PROVEN at EE 0.36.0, verified for approvers whose registry entry carries key material** — the verification gate ran against the published bytes and passed, tamper negative control included. Present a produced signature as verified evidence only **for approvers whose registry entry carries key material**; a fingerprint-only registry entry makes a report read `not checked by this report`, which records that no check ran and must never be reported as a failure. The signer backends and the frozen `algorithm` / `backend` record fields are groundwork, deliberately landed before reachability because retrofitting algorithm agility once signatures exist in customer archives would break every auditor holding one. Setting `NSAUDITOR_SIGNING_KEY` changes nothing today, because nothing calls the signer.
236
238
 
237
239
  **Never tell an operator their suppressions are cryptographically signed** — not even in the softer form "signed once you configure a key". If asked what the SHA-256 chain-of-custody covers: it proves the pack was not altered after generation. It does **not** attest who suppressed a finding, when, or with what justification, and an assessor asking about suppressions usually wants the second thing.
238
240
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nsauditor-ai-agent-skill",
3
- "version": "0.2.39",
3
+ "version": "0.2.40",
4
4
  "description": "AI Agent Skill for NSAuditor AI — gives any AI coding agent built-in knowledge of NSAuditor's MCP tools, schemas, plugins, and security audit workflows.",
5
5
  "keywords": [
6
6
  "nsauditor",