@cyanheads/nist-nvd-mcp-server 0.1.11 → 0.1.13
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/AGENTS.md +3 -3
- package/CLAUDE.md +3 -3
- package/Dockerfile +10 -6
- package/LICENSE +1 -1
- package/README.md +6 -5
- package/changelog/0.1.x/0.1.12.md +33 -0
- package/changelog/0.1.x/0.1.13.md +42 -0
- package/changelog/template.md +5 -3
- package/dist/mcp-server/tools/definitions/nvd-audit-cpe.tool.d.ts +1 -0
- package/dist/mcp-server/tools/definitions/nvd-audit-cpe.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/nvd-audit-cpe.tool.js +49 -31
- package/dist/mcp-server/tools/definitions/nvd-audit-cpe.tool.js.map +1 -1
- package/dist/services/nvd-cve/nvd-cve-service.d.ts.map +1 -1
- package/dist/services/nvd-cve/nvd-cve-service.js +7 -6
- package/dist/services/nvd-cve/nvd-cve-service.js.map +1 -1
- package/dist/services/nvd-cve/types.d.ts +5 -0
- package/dist/services/nvd-cve/types.d.ts.map +1 -1
- package/dist/services/nvd-http/nvd-http-client.d.ts +39 -5
- package/dist/services/nvd-http/nvd-http-client.d.ts.map +1 -1
- package/dist/services/nvd-http/nvd-http-client.js +170 -88
- package/dist/services/nvd-http/nvd-http-client.js.map +1 -1
- package/manifest.json +1 -1
- package/package.json +12 -10
- package/server.json +3 -3
package/AGENTS.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Developer Protocol
|
|
2
2
|
|
|
3
3
|
**Server:** nist-nvd-mcp-server
|
|
4
|
-
**Version:** 0.1.
|
|
5
|
-
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.10.
|
|
4
|
+
**Version:** 0.1.13
|
|
5
|
+
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.10.14`
|
|
6
6
|
**Engines:** Bun ≥1.3.0, Node ≥24.0.0
|
|
7
7
|
**MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
|
|
8
8
|
**Zod:** ^4.4.3
|
|
@@ -275,13 +275,13 @@ Available skills:
|
|
|
275
275
|
| `tool-defs-analysis` | Read-only audit of MCP definition language across the surface — voice, leaks, defaults, recovery hints, output descriptions |
|
|
276
276
|
| `security-pass` | Audit server for MCP-flavored security gaps: output injection, scope blast radius, input sinks, tenant isolation |
|
|
277
277
|
| `code-simplifier` | Post-session cleanup against `git diff` — modernize syntax, consolidate duplication, align with the codebase |
|
|
278
|
-
| `devcheck` | Lint, format, typecheck, audit |
|
|
279
278
|
| `polish-docs-meta` | Finalize docs, README, metadata, and agent protocol for shipping |
|
|
280
279
|
| `git-wrapup` | Land working-tree changes as a versioned commit + annotated tag — version bump, changelog, verify, tag. Local only. |
|
|
281
280
|
| `release-and-publish` | Push + npm + MCP Registry + GH Release + Docker. Picks up from `git-wrapup` |
|
|
282
281
|
| `maintenance` | Investigate changelogs, adopt upstream changes, sync skills to agent dirs |
|
|
283
282
|
| `report-issue-framework` | File a bug or feature request against `@cyanheads/mcp-ts-core` via `gh` CLI |
|
|
284
283
|
| `report-issue-local` | File a bug or feature request against this server's own repo via `gh` CLI |
|
|
284
|
+
| `techniques` | Catalog of response/data-shaping techniques — overflow handling, payload shaping, retrieval patterns |
|
|
285
285
|
| `api-auth` | Auth modes, scopes, JWT/OAuth |
|
|
286
286
|
| `api-canvas` | DataCanvas: register tabular data, run SQL, export, plus the `spillover()` helper for big result sets — Tier 3 opt-in |
|
|
287
287
|
| `api-config` | AppConfig, parseConfig, env vars |
|
package/CLAUDE.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Developer Protocol
|
|
2
2
|
|
|
3
3
|
**Server:** nist-nvd-mcp-server
|
|
4
|
-
**Version:** 0.1.
|
|
5
|
-
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.10.
|
|
4
|
+
**Version:** 0.1.13
|
|
5
|
+
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.10.14`
|
|
6
6
|
**Engines:** Bun ≥1.3.0, Node ≥24.0.0
|
|
7
7
|
**MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
|
|
8
8
|
**Zod:** ^4.4.3
|
|
@@ -275,13 +275,13 @@ Available skills:
|
|
|
275
275
|
| `tool-defs-analysis` | Read-only audit of MCP definition language across the surface — voice, leaks, defaults, recovery hints, output descriptions |
|
|
276
276
|
| `security-pass` | Audit server for MCP-flavored security gaps: output injection, scope blast radius, input sinks, tenant isolation |
|
|
277
277
|
| `code-simplifier` | Post-session cleanup against `git diff` — modernize syntax, consolidate duplication, align with the codebase |
|
|
278
|
-
| `devcheck` | Lint, format, typecheck, audit |
|
|
279
278
|
| `polish-docs-meta` | Finalize docs, README, metadata, and agent protocol for shipping |
|
|
280
279
|
| `git-wrapup` | Land working-tree changes as a versioned commit + annotated tag — version bump, changelog, verify, tag. Local only. |
|
|
281
280
|
| `release-and-publish` | Push + npm + MCP Registry + GH Release + Docker. Picks up from `git-wrapup` |
|
|
282
281
|
| `maintenance` | Investigate changelogs, adopt upstream changes, sync skills to agent dirs |
|
|
283
282
|
| `report-issue-framework` | File a bug or feature request against `@cyanheads/mcp-ts-core` via `gh` CLI |
|
|
284
283
|
| `report-issue-local` | File a bug or feature request against this server's own repo via `gh` CLI |
|
|
284
|
+
| `techniques` | Catalog of response/data-shaping techniques — overflow handling, payload shaping, retrieval patterns |
|
|
285
285
|
| `api-auth` | Auth modes, scopes, JWT/OAuth |
|
|
286
286
|
| `api-canvas` | DataCanvas: register tabular data, run SQL, export, plus the `spillover()` helper for big result sets — Tier 3 opt-in |
|
|
287
287
|
| `api-config` | AppConfig, parseConfig, env vars |
|
package/Dockerfile
CHANGED
|
@@ -4,15 +4,17 @@
|
|
|
4
4
|
# This stage installs all dependencies (including dev), builds the TypeScript
|
|
5
5
|
# source code into JavaScript, and prepares the production assets.
|
|
6
6
|
# ==============================================================================
|
|
7
|
-
FROM oven/bun:1.3 AS build
|
|
7
|
+
FROM oven/bun:1.3.14 AS build
|
|
8
8
|
|
|
9
9
|
WORKDIR /usr/src/app
|
|
10
10
|
|
|
11
11
|
# Copy dependency manifests for optimized layer caching
|
|
12
12
|
COPY package.json bun.lock ./
|
|
13
13
|
|
|
14
|
-
# Install all dependencies (including dev dependencies for building)
|
|
15
|
-
|
|
14
|
+
# Install all dependencies (including dev dependencies for building).
|
|
15
|
+
# The BuildKit cache mount persists Bun's global package cache across builds.
|
|
16
|
+
RUN --mount=type=cache,target=/root/.bun/install/cache \
|
|
17
|
+
bun install --frozen-lockfile --ignore-scripts
|
|
16
18
|
|
|
17
19
|
# Copy the rest of the source code
|
|
18
20
|
COPY . .
|
|
@@ -28,7 +30,7 @@ RUN bun run build
|
|
|
28
30
|
# application. It uses a slim base image and only includes production
|
|
29
31
|
# dependencies and build artifacts.
|
|
30
32
|
# ==============================================================================
|
|
31
|
-
FROM oven/bun:1.3-slim AS production
|
|
33
|
+
FROM oven/bun:1.3.14-slim AS production
|
|
32
34
|
|
|
33
35
|
WORKDIR /usr/src/app
|
|
34
36
|
|
|
@@ -49,13 +51,15 @@ COPY package.json bun.lock ./
|
|
|
49
51
|
|
|
50
52
|
# Install only production dependencies, ignoring any lifecycle scripts (like 'prepare')
|
|
51
53
|
# that are not needed in the final production image.
|
|
52
|
-
RUN bun
|
|
54
|
+
RUN --mount=type=cache,target=/root/.bun/install/cache \
|
|
55
|
+
bun install --production --frozen-lockfile --ignore-scripts
|
|
53
56
|
|
|
54
57
|
# Conditionally install OpenTelemetry optional peer dependencies (Tier 3).
|
|
55
58
|
# These are not bundled by default to keep the base image lean. Enable at build time
|
|
56
59
|
# with: docker build --build-arg OTEL_ENABLED=true
|
|
57
60
|
ARG OTEL_ENABLED=true
|
|
58
|
-
RUN
|
|
61
|
+
RUN --mount=type=cache,target=/root/.bun/install/cache \
|
|
62
|
+
if [ "$OTEL_ENABLED" = "true" ]; then \
|
|
59
63
|
bun add @hono/otel \
|
|
60
64
|
@opentelemetry/instrumentation-http \
|
|
61
65
|
@opentelemetry/exporter-metrics-otlp-http \
|
package/LICENSE
CHANGED
|
@@ -186,7 +186,7 @@ Apache License
|
|
|
186
186
|
same "printed page" as the copyright notice for easier
|
|
187
187
|
identification within third-party archives.
|
|
188
188
|
|
|
189
|
-
Copyright
|
|
189
|
+
Copyright 2026 Casey Hand @cyanheads
|
|
190
190
|
|
|
191
191
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
192
192
|
you may not use this file except in compliance with the License.
|
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
<div align="center">
|
|
9
9
|
|
|
10
|
-
[](./CHANGELOG.md) [](./LICENSE) [](https://github.com/users/cyanheads/packages/container/package/nist-nvd-mcp-server) [](https://modelcontextprotocol.io/) [](https://www.npmjs.com/package/@cyanheads/nist-nvd-mcp-server) [](https://www.typescriptlang.org/) [](https://bun.sh/)
|
|
11
11
|
|
|
12
12
|
</div>
|
|
13
13
|
|
|
@@ -119,9 +119,10 @@ Built on [`@cyanheads/mcp-ts-core`](https://www.npmjs.com/package/@cyanheads/mcp
|
|
|
119
119
|
|
|
120
120
|
NVD-specific:
|
|
121
121
|
|
|
122
|
-
-
|
|
123
|
-
-
|
|
124
|
-
-
|
|
122
|
+
- Request pacer enforces NVD's 5 req/30s (no key) and 50 req/30s (with key) limits with automatic queuing, at a minimum inter-request gap derived from the window and limit
|
|
123
|
+
- Retry wraps the pacer rather than sitting inside it — every attempt takes its own turn in the queue, so retries count against the rate budget instead of bursting past it
|
|
124
|
+
- A 403's `Retry-After` holds the whole queue until NVD's window resets. Keyless, a 403 fails fast and names `NVD_API_KEY` rather than spending a 5-request budget on retries that cannot outlast a 30-second window
|
|
125
|
+
- Deterministic rejections fail fast instead of consuming retries. NVD answers both a bad parameter and a refused API key with HTTP 404, separated only by a `message` header — a refused key surfaces as a config fault naming `NVD_API_KEY` rather than as a malformed CVE ID
|
|
125
126
|
- HTML-response guard catches NVD rate-limit pages served as HTML instead of 403
|
|
126
127
|
|
|
127
128
|
Agent-friendly output:
|
|
@@ -284,7 +285,7 @@ The Dockerfile defaults to HTTP transport, stateless session mode, and logs to `
|
|
|
284
285
|
| `src/config` | Server-specific environment variable parsing and validation with Zod. |
|
|
285
286
|
| `src/mcp-server/tools` | Tool definitions (`*.tool.ts`). |
|
|
286
287
|
| `src/mcp-server/resources` | Resource definitions (`*.resource.ts`). |
|
|
287
|
-
| `src/services/nvd-http` | NVD HTTP client with
|
|
288
|
+
| `src/services/nvd-http` | NVD HTTP client with rate-limit pacing and retry. |
|
|
288
289
|
| `src/services/nvd-cve` | CVE service — search, fetch-by-ID, CPE audit, change history, normalization. |
|
|
289
290
|
| `src/services/nvd-cpe` | CPE service — dictionary search and normalization. |
|
|
290
291
|
| `tests/` | Unit and integration tests mirroring `src/`. |
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "mcp-ts-core ^0.10.9 maintenance — vendored framework skills/scripts resynced (check-dependency-specifiers, plugin-manifest packaging checks), dev-dep refresh. No server behavior change."
|
|
3
|
+
breaking: false
|
|
4
|
+
security: false
|
|
5
|
+
agent-notes: |
|
|
6
|
+
Framework dep @cyanheads/mcp-ts-core ^0.10.6 → ^0.10.9. Framework-maintenance
|
|
7
|
+
only — no server source or behavior change. Vendored scripts/skills resynced to
|
|
8
|
+
the 0.10.7–0.10.9 framework line:
|
|
9
|
+
- New devcheck step: scripts/check-dependency-specifiers.ts (fails on floating
|
|
10
|
+
latest/*/dist-tag specifiers in package.json + bun.lock workspaces).
|
|
11
|
+
- lint-packaging.ts check 10: plugin-manifest correctness (descriptions,
|
|
12
|
+
unscoped display names, full npx install arg). Gated by the new
|
|
13
|
+
devcheck.config.json `packaging.pluginManifests` flag (default on).
|
|
14
|
+
- Fresh-scaffold devcheck guards (changelog-sync, git-dependent checks) and the
|
|
15
|
+
check-skill-versions worktree-deletion guard from 0.10.7.
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# 0.1.12 — 2026-06-20
|
|
19
|
+
|
|
20
|
+
## Changed
|
|
21
|
+
|
|
22
|
+
- **`@cyanheads/mcp-ts-core` `^0.10.6` → `^0.10.9`** — framework-maintenance bump; no server source or behavior change.
|
|
23
|
+
- **Vendored framework scripts/skills resynced to the 0.10.7–0.10.9 line** — adds the `check-dependency-specifiers` devcheck step (`scripts/check-dependency-specifiers.ts`, flag `--no-dep-specifiers`), which hard-fails on floating `latest`/`*`/pre-release dist-tag specifiers in `package.json`'s dependency sections and `bun.lock`'s `workspaces` map. ([cyanheads/mcp-ts-core#246](https://github.com/cyanheads/mcp-ts-core/issues/246))
|
|
24
|
+
- **`scripts/lint-packaging.ts`** — gains plugin-marketplace manifest validation (check 10) for `.claude-plugin/plugin.json` and `.codex-plugin/plugin.json`: non-empty descriptions, unscoped machine name in display fields, and the full `package.json` name in the `npx -y` install arg. ([cyanheads/mcp-ts-core#240](https://github.com/cyanheads/mcp-ts-core/issues/240))
|
|
25
|
+
- **`devcheck.config.json`** — added `packaging.pluginManifests: true`, enabling the new check-10 manifest validation; the "Packaging" gate now also runs when a plugin manifest is present.
|
|
26
|
+
- **`scripts/build-changelog.ts`, `scripts/devcheck.ts`, `scripts/check-framework-antipatterns.ts`, `scripts/check-skill-versions.ts`** — fresh-scaffold and worktree-deletion guards from the 0.10.7 framework release. ([cyanheads/mcp-ts-core#237](https://github.com/cyanheads/mcp-ts-core/issues/237), [cyanheads/mcp-ts-core#242](https://github.com/cyanheads/mcp-ts-core/issues/242), [cyanheads/mcp-ts-core#243](https://github.com/cyanheads/mcp-ts-core/issues/243))
|
|
27
|
+
|
|
28
|
+
## Dependencies
|
|
29
|
+
|
|
30
|
+
- `@cyanheads/mcp-ts-core` ^0.10.6 → ^0.10.9
|
|
31
|
+
- `@biomejs/biome` ^2.4.16 → ^2.5.0
|
|
32
|
+
- `@types/node` ^25.9.3 → ^26.0.0
|
|
33
|
+
- `vitest` ^4.1.8 → ^4.1.9
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "NVD retries now pace through the rate-limit queue instead of bursting inside it, and nvd_audit_cpe renders CPE match criteria instead of bare operator lines. mcp-ts-core ^0.10.14, Socket install scanning, 8 transitive advisories cleared."
|
|
3
|
+
breaking: false
|
|
4
|
+
security: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 0.1.13 — 2026-07-15
|
|
8
|
+
|
|
9
|
+
## Added
|
|
10
|
+
|
|
11
|
+
- **`configurations[].operator`** — the group-level AND/OR combining sibling nodes is now typed on `RawCveItem` and `CveRecord`, carried through `normalizeCve()`, and declared on `nvd_audit_cpe`'s `CveRecordSchema`, so it reaches `structuredContent` as well as the rendered text. NVD uses it to mark jointly-required nodes — a firmware match plus the hardware it runs on — which read as unrelated alternatives while it was dropped. ([#22](https://github.com/cyanheads/nist-nvd-mcp-server/issues/22))
|
|
12
|
+
- **`.github/SECURITY.md`** — private vulnerability reporting policy.
|
|
13
|
+
- **`.gitattributes`** — LF normalization, binary-asset protection, and `linguist-generated` on `bun.lock`, `CHANGELOG.md`, and `docs/tree.md`.
|
|
14
|
+
- **Socket install scanning** — `bunfig.toml` registers `@socketsecurity/bun-security-scanner` under `[install.security]`, scanning every package before install. Configuring a scanner disables Bun's auto-install.
|
|
15
|
+
- **`minimumReleaseAge` supply-chain guard** — `bunfig.toml` blocks package versions published less than 3 days ago, excluding `@cyanheads/mcp-ts-core`. `scripts/devcheck.ts`'s outdated check now skips rows bun marks `*` (held by the gate, nothing to adopt) while still failing on a genuine update.
|
|
16
|
+
|
|
17
|
+
## Changed
|
|
18
|
+
|
|
19
|
+
- **Docker base images pinned** — `oven/bun:1.3` → `oven/bun:1.3.14` on both stages; BuildKit cache mounts persist Bun's package cache across builds, and the build stage installs with `--ignore-scripts`.
|
|
20
|
+
- **`devcheck.config.json`** — `outdated.allowlist` holds `typescript` at `^6.0.3` (7.0.2 is out).
|
|
21
|
+
- **`package.json`** — `author` is now `Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)`; `packageManager` `bun@1.3.2` → `bun@1.3.14`; `engines.bun` `>=1.3.2` → `>=1.3.0`.
|
|
22
|
+
- **`changelog/template.md`, `scripts/build-changelog.ts`** — the `security:` frontmatter flag is documented as a source-code signal; a dependency or transitive CVE bump records under `## Dependencies` and leaves the flag `false`.
|
|
23
|
+
- **LICENSE** — copyright year 2025 → 2026.
|
|
24
|
+
|
|
25
|
+
## Fixed
|
|
26
|
+
|
|
27
|
+
- **Retries no longer burst inside one rate-limiter slot** — `NvdHttpClient.get()` composes `withRetry(() => schedule(fetchOnce))`, so every attempt is enqueued separately and waits out the inter-request gap instead of firing up to 4 unpaced requests against NVD's 5-per-30s keyless budget. ([#21](https://github.com/cyanheads/nist-nvd-mcp-server/issues/21))
|
|
28
|
+
- **A 403 now holds the whole queue** — the parsed `Retry-After`, clamped to the 30s window, sets a `backoffUntil` that stops every pending request from firing into a window that is already closed. A keyed call spends one patient retry across it; a keyless call fails fast naming `NVD_API_KEY`, and drops to `maxRetries: 1` for other transient failures. ([#21](https://github.com/cyanheads/nist-nvd-mcp-server/issues/21))
|
|
29
|
+
- **Deterministic rejections fail fast** — NVD's parameter-rejection 404 is now an `McpError` carrying `data.retryable === false`, so `withRetry` stops re-sending a request that cannot succeed. `fetchById()` and `getCveHistory()` key off it via the exported `isNvdRequestRejected()` guard rather than an `'HTTP 404'` message substring. ([#21](https://github.com/cyanheads/nist-nvd-mcp-server/issues/21))
|
|
30
|
+
- **A refused API key is no longer reported as a malformed CVE ID** — NVD answers both faults with 404, separated only by a `message` response header; a refused key now raises `ConfigurationError` / `nvd_invalid_api_key` naming `NVD_API_KEY`. ([#21](https://github.com/cyanheads/nist-nvd-mcp-server/issues/21))
|
|
31
|
+
- **`nvd_audit_cpe` printed bare `Operator:` lines carrying no CPE data** — the Configurations block now renders one line per CPE match (criteria string, version bounds, node and group operators, and a marker when the CPE is context rather than the vulnerable component), capped at the first 5 per CVE with a `… N more` trailer, matching the `references` cap in the same formatter. ([#22](https://github.com/cyanheads/nist-nvd-mcp-server/issues/22))
|
|
32
|
+
|
|
33
|
+
## Dependencies
|
|
34
|
+
|
|
35
|
+
- `@cyanheads/mcp-ts-core` ^0.10.9 → ^0.10.14
|
|
36
|
+
- `@biomejs/biome` ^2.5.0 → ^2.5.3
|
|
37
|
+
- `@types/node` ^26.0.0 → ^26.1.1
|
|
38
|
+
- `ignore` ^7.0.5 → ^7.0.6
|
|
39
|
+
- `tsc-alias` ^1.8.17 → ^1.9.0
|
|
40
|
+
- `vitest` ^4.1.9 → ^4.1.10
|
|
41
|
+
- `@socketsecurity/bun-security-scanner` ^1.1.2 (new dev dependency)
|
|
42
|
+
- `bun audit` 8 → 0 open advisories (2 high, 6 moderate), all transitive — `hono`, `vite`, and `js-yaml`. Nothing in this server's own source, so `security` stays `false`.
|
package/changelog/template.md
CHANGED
|
@@ -15,9 +15,11 @@ summary: ""
|
|
|
15
15
|
# usage. Flagged as `Breaking` in the rollup.
|
|
16
16
|
breaking: false
|
|
17
17
|
|
|
18
|
-
# Set `true`
|
|
19
|
-
#
|
|
20
|
-
#
|
|
18
|
+
# Set `true` ONLY for a security fix in THIS project's own source code — a
|
|
19
|
+
# vulnerability or hardening in code you ship. A dependency or transitive CVE
|
|
20
|
+
# bump is routine maintenance, NOT a security release: record it under
|
|
21
|
+
# `## Dependencies` (with the advisory ID) and leave this `false`. When true,
|
|
22
|
+
# pairs with the `## Security` section below and flags `Security` in the rollup.
|
|
21
23
|
security: false
|
|
22
24
|
|
|
23
25
|
# Optional free-form notes for maintenance agents processing this release.
|
|
@@ -51,6 +51,7 @@ export declare const nvdAuditCpe: import("@cyanheads/mcp-ts-core").ToolDefinitio
|
|
|
51
51
|
cweIds: z.ZodArray<z.ZodString>;
|
|
52
52
|
}, z.core.$strip>>;
|
|
53
53
|
configurations: z.ZodArray<z.ZodObject<{
|
|
54
|
+
operator: z.ZodOptional<z.ZodString>;
|
|
54
55
|
nodes: z.ZodArray<z.ZodObject<{
|
|
55
56
|
operator: z.ZodOptional<z.ZodString>;
|
|
56
57
|
cpeMatch: z.ZodArray<z.ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nvd-audit-cpe.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/nvd-audit-cpe.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"nvd-audit-cpe.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/nvd-audit-cpe.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAsJjE,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqRtB,CAAC"}
|
|
@@ -18,6 +18,40 @@ const TopSeveritySchema = z.object({
|
|
|
18
18
|
score: z.number().describe('Highest base score (0.0–10.0).'),
|
|
19
19
|
fromVersion: z.string().describe('Which CVSS version this top score came from.'),
|
|
20
20
|
});
|
|
21
|
+
const CpeMatchSchema = z.object({
|
|
22
|
+
vulnerable: z
|
|
23
|
+
.boolean()
|
|
24
|
+
.describe('Whether this CPE is the vulnerable component or only the context it runs in.'),
|
|
25
|
+
criteria: z.string().describe('CPEv2.3 match criteria string.'),
|
|
26
|
+
versionStartIncluding: z.string().optional().describe('Inclusive lower version bound.'),
|
|
27
|
+
versionStartExcluding: z.string().optional().describe('Exclusive lower version bound.'),
|
|
28
|
+
versionEndIncluding: z.string().optional().describe('Inclusive upper version bound.'),
|
|
29
|
+
versionEndExcluding: z.string().optional().describe('Exclusive upper version bound.'),
|
|
30
|
+
});
|
|
31
|
+
/** Cap on CPE match criteria rendered per CVE — mirrors the references cap in this formatter. */
|
|
32
|
+
const CPE_MATCH_CAP = 5;
|
|
33
|
+
/**
|
|
34
|
+
* Render one CPE match as a single line: the criteria string, its version bounds, and the
|
|
35
|
+
* operators that govern it. `nodeOperator` combines the matches inside a node; `groupOperator`
|
|
36
|
+
* combines sibling nodes in the group, so an `AND` there marks conditions that hold together
|
|
37
|
+
* (e.g. a firmware match and the hardware it runs on) rather than independent alternatives.
|
|
38
|
+
*/
|
|
39
|
+
function formatCpeMatch(match, groupOperator, nodeOperator) {
|
|
40
|
+
const bounds = [
|
|
41
|
+
match.versionStartIncluding && `>= ${match.versionStartIncluding}`,
|
|
42
|
+
match.versionStartExcluding && `> ${match.versionStartExcluding}`,
|
|
43
|
+
match.versionEndIncluding && `<= ${match.versionEndIncluding}`,
|
|
44
|
+
match.versionEndExcluding && `< ${match.versionEndExcluding}`,
|
|
45
|
+
].filter(Boolean);
|
|
46
|
+
const notes = [
|
|
47
|
+
nodeOperator,
|
|
48
|
+
groupOperator && `${groupOperator} with sibling nodes`,
|
|
49
|
+
match.vulnerable ? undefined : 'not the vulnerable component',
|
|
50
|
+
].filter(Boolean);
|
|
51
|
+
return (`${match.criteria}` +
|
|
52
|
+
(bounds.length > 0 ? ` (${bounds.join(', ')})` : '') +
|
|
53
|
+
(notes.length > 0 ? ` [${notes.join('; ')}]` : ''));
|
|
54
|
+
}
|
|
21
55
|
const CveRecordSchema = z.object({
|
|
22
56
|
cveId: z.string().describe('CVE identifier (e.g., "CVE-2021-44228").'),
|
|
23
57
|
vulnStatus: z.string().describe('NVD analysis status.'),
|
|
@@ -48,35 +82,19 @@ const CveRecordSchema = z.object({
|
|
|
48
82
|
configurations: z
|
|
49
83
|
.array(z
|
|
50
84
|
.object({
|
|
85
|
+
operator: z
|
|
86
|
+
.string()
|
|
87
|
+
.optional()
|
|
88
|
+
.describe('Logical operator (AND/OR) combining this group\'s sibling nodes. An "AND" means every node must match for the CVE to apply — e.g. a firmware node and the hardware it runs on. Absent when the group has nothing to combine.'),
|
|
51
89
|
nodes: z
|
|
52
90
|
.array(z
|
|
53
91
|
.object({
|
|
54
|
-
operator: z
|
|
92
|
+
operator: z
|
|
93
|
+
.string()
|
|
94
|
+
.optional()
|
|
95
|
+
.describe("Logical operator (AND/OR) combining this node's own CPE matches."),
|
|
55
96
|
cpeMatch: z
|
|
56
|
-
.array(
|
|
57
|
-
.object({
|
|
58
|
-
vulnerable: z
|
|
59
|
-
.boolean()
|
|
60
|
-
.describe('Whether this CPE is the vulnerable component.'),
|
|
61
|
-
criteria: z.string().describe('CPEv2.3 match criteria string.'),
|
|
62
|
-
versionStartIncluding: z
|
|
63
|
-
.string()
|
|
64
|
-
.optional()
|
|
65
|
-
.describe('Inclusive lower version bound.'),
|
|
66
|
-
versionStartExcluding: z
|
|
67
|
-
.string()
|
|
68
|
-
.optional()
|
|
69
|
-
.describe('Exclusive lower version bound.'),
|
|
70
|
-
versionEndIncluding: z
|
|
71
|
-
.string()
|
|
72
|
-
.optional()
|
|
73
|
-
.describe('Inclusive upper version bound.'),
|
|
74
|
-
versionEndExcluding: z
|
|
75
|
-
.string()
|
|
76
|
-
.optional()
|
|
77
|
-
.describe('Exclusive upper version bound.'),
|
|
78
|
-
})
|
|
79
|
-
.describe('One CPE match criterion.'))
|
|
97
|
+
.array(CpeMatchSchema.describe('One CPE match criterion.'))
|
|
80
98
|
.describe('CPE match criteria for this node.'),
|
|
81
99
|
})
|
|
82
100
|
.describe('One configuration node with its CPE match criteria.'))
|
|
@@ -293,12 +311,12 @@ export const nvdAuditCpe = tool('nvd_audit_cpe', {
|
|
|
293
311
|
lines.push(` - Required Action: ${cve.cisaKev.requiredAction}`);
|
|
294
312
|
}
|
|
295
313
|
if (cve.configurations && cve.configurations.length > 0) {
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
}
|
|
314
|
+
const matches = cve.configurations.flatMap((cfg) => cfg.nodes.flatMap((node) => node.cpeMatch.map((m) => formatCpeMatch(m, cfg.operator, node.operator))));
|
|
315
|
+
lines.push(`**Configurations:** ${cve.configurations.length} node group(s), ${matches.length} CPE match(es)`);
|
|
316
|
+
for (const match of matches.slice(0, CPE_MATCH_CAP))
|
|
317
|
+
lines.push(` - ${match}`);
|
|
318
|
+
if (matches.length > CPE_MATCH_CAP) {
|
|
319
|
+
lines.push(` - … ${matches.length - CPE_MATCH_CAP} more`);
|
|
302
320
|
}
|
|
303
321
|
}
|
|
304
322
|
if (cve.references && cve.references.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nvd-audit-cpe.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/nvd-audit-cpe.tool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nvd-audit-cpe.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/nvd-audit-cpe.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nvd-cve-service.d.ts","sourceRoot":"","sources":["../../../src/services/nvd-cve/nvd-cve-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,KAAK,EACV,cAAc,EAEd,cAAc,EACd,SAAS,EAOV,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"nvd-cve-service.d.ts","sourceRoot":"","sources":["../../../src/services/nvd-cve/nvd-cve-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,KAAK,EACV,cAAc,EAEd,cAAc,EACd,SAAS,EAOV,MAAM,YAAY,CAAC;AAqJpB,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;IAC7C,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAUD,qBAAa,aAAa;gBAEZ,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc;IAExD;;;;OAIG;IACG,SAAS,CACb,MAAM,EAAE,MAAM,EAAE,EAChB,iBAAiB,EAAE,OAAO,EAC1B,GAAG,EAAE,OAAO,GACX,OAAO,CAAC;QAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IA6C5F;;OAEG;IACG,UAAU,CACd,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,OAAO,GACX,OAAO,CAAC;QACT,IAAI,EAAE,cAAc,EAAE,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IA+CF;;OAEG;IACG,QAAQ,CACZ,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,OAAO,GACX,OAAO,CAAC;QACT,IAAI,EAAE,SAAS,EAAE,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC7B,CAAC;IAiEF;;OAEG;IACG,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,OAAO,GACX,OAAO,CAAC;QACT,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,cAAc,EAAE,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CAwCH;AAMD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAElF;AAED,wBAAgB,gBAAgB,IAAI,aAAa,CAKhD"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @module services/nvd-cve/nvd-cve-service
|
|
5
5
|
*/
|
|
6
6
|
import { notFound, validationError } from '@cyanheads/mcp-ts-core/errors';
|
|
7
|
-
import { getNvdHttpClient } from '../nvd-http/nvd-http-client.js';
|
|
7
|
+
import { getNvdHttpClient, isNvdRequestRejected } from '../nvd-http/nvd-http-client.js';
|
|
8
8
|
const CVE_ID_REGEX = /^CVE-\d{4}-\d{4,}$/i;
|
|
9
9
|
/**
|
|
10
10
|
* Derive a CVSS v2.0 severity label from the numeric base score.
|
|
@@ -87,6 +87,7 @@ function normalizeCve(raw, includeReferences) {
|
|
|
87
87
|
.map((d) => d.value),
|
|
88
88
|
}));
|
|
89
89
|
const configurations = (raw.configurations ?? []).map((cfg) => ({
|
|
90
|
+
...(cfg.operator && { operator: cfg.operator }),
|
|
90
91
|
nodes: (cfg.nodes ?? []).map((node) => ({
|
|
91
92
|
...(node.operator && { operator: node.operator }),
|
|
92
93
|
cpeMatch: (node.cpeMatch ?? []).map((m) => ({
|
|
@@ -167,9 +168,9 @@ export class NvdCveService {
|
|
|
167
168
|
response = await client.get('cves/2.0', { cveIds: cveIds.join(',') }, ctx);
|
|
168
169
|
}
|
|
169
170
|
catch (err) {
|
|
170
|
-
// NVD
|
|
171
|
-
if (err
|
|
172
|
-
throw validationError(`One or more CVE IDs may be malformed (NVD
|
|
171
|
+
// NVD rejects malformed IDs with a 404: re-throw as invalid_cve_id_format
|
|
172
|
+
if (isNvdRequestRejected(err)) {
|
|
173
|
+
throw validationError(`One or more CVE IDs may be malformed (NVD rejected the request). Verify the IDs: ${cveIds.join(', ')}.`, { reason: 'invalid_cve_id_format', cveIds });
|
|
173
174
|
}
|
|
174
175
|
throw err;
|
|
175
176
|
}
|
|
@@ -311,8 +312,8 @@ export class NvdCveService {
|
|
|
311
312
|
response = await client.get('cvehistory/2.0', { cveId, resultsPerPage: Math.min(limit, 2000), startIndex: offset }, ctx);
|
|
312
313
|
}
|
|
313
314
|
catch (err) {
|
|
314
|
-
if (err
|
|
315
|
-
throw validationError(`CVE ID "${cveId}" appears to be malformed (NVD
|
|
315
|
+
if (isNvdRequestRejected(err)) {
|
|
316
|
+
throw validationError(`CVE ID "${cveId}" appears to be malformed (NVD rejected the request).`, { reason: 'invalid_cve_id_format', cveId });
|
|
316
317
|
}
|
|
317
318
|
throw err;
|
|
318
319
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nvd-cve-service.js","sourceRoot":"","sources":["../../../src/services/nvd-cve/nvd-cve-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nvd-cve-service.js","sourceRoot":"","sources":["../../../src/services/nvd-cve/nvd-cve-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAE1E,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAcxF,MAAM,YAAY,GAAG,qBAAqB,CAAC;AAE3C;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,KAAyB;IACjD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5D,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAC/B,IAAI,KAAK,GAAG,GAAG;QAAE,OAAO,KAAK,CAAC;IAC9B,IAAI,KAAK,GAAG,GAAG;QAAE,OAAO,QAAQ,CAAC;IACjC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,oEAAoE;AACpE,SAAS,aAAa,CAAC,EAAU;IAC/B,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,MAAM,eAAe,CAAC,2BAA2B,OAAO,qCAAqC,EAAE;YAC7F,MAAM,EAAE,uBAAuB;YAC/B,KAAK,EAAE,OAAO;SACf,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;AAC/B,CAAC;AAED,iEAAiE;AACjE,SAAS,iBAAiB,CAAC,OAA8B;IACvD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,MAAM,MAAM,GAAgB,EAAE,CAAC;IAE/B,MAAM,UAAU,GAAG,CAAC,IAAiC,EAAE,OAAe,EAAE,IAAa,EAAE,EAAE;QACvF,KAAK,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;YAC3B,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS;gBAAE,SAAS;YACrC,iFAAiF;YACjF,MAAM,QAAQ,GACZ,CAAC,CAAC,QAAQ,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACzF,MAAM,KAAK,GAAc;gBACvB,OAAO;gBACP,UAAU,EAAE,CAAC,CAAC,IAAI,IAAI,SAAS;gBAC/B,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS;gBAC/B,QAAQ;aACT,CAAC;YACF,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY;gBAAE,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC1E,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IAEF,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9C,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAChD,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAChD,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAEhD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,0DAA0D;AAC1D,SAAS,iBAAiB,CAAC,MAAmB;IAC5C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAChC,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IACrE,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,QAAQ;QACnB,KAAK,EAAE,GAAG,CAAC,SAAS;QACpB,WAAW,EAAE,GAAG,CAAC,OAAO;KACzB,CAAC;AACJ,CAAC;AAED,oDAAoD;AACpD,SAAS,YAAY,CAAC,GAAe,EAAE,iBAA0B;IAC/D,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAE/C,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpD,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE;QACtB,MAAM,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC;aAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC;aACzC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAe,CAAC;KACjC,CAAC,CAAC,CAAC;IAEJ,MAAM,cAAc,GAAG,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC9D,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC/C,KAAK,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACtC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjD,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC1C,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,KAAK;gBACjC,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE;gBAC1B,GAAG,CAAC,CAAC,CAAC,qBAAqB,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC,qBAAqB,EAAE,CAAC;gBAClF,GAAG,CAAC,CAAC,CAAC,qBAAqB,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC,qBAAqB,EAAE,CAAC;gBAClF,GAAG,CAAC,CAAC,CAAC,mBAAmB,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC,mBAAmB,EAAE,CAAC;gBAC5E,GAAG,CAAC,CAAC,CAAC,mBAAmB,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC,mBAAmB,EAAE,CAAC;aAC7E,CAAC,CAAC;SACJ,CAAC,CAAC;KACJ,CAAC,CAAC,CAAC;IAEJ,IAAI,OAA4B,CAAC;IACjC,IACE,GAAG,CAAC,cAAc;QAClB,GAAG,CAAC,aAAa;QACjB,GAAG,CAAC,kBAAkB;QACtB,GAAG,CAAC,qBAAqB,EACzB,CAAC;QACD,OAAO,GAAG;YACR,cAAc,EAAE,GAAG,CAAC,cAAc;YAClC,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,cAAc,EAAE,GAAG,CAAC,kBAAkB;YACtC,iBAAiB,EAAE,GAAG,CAAC,qBAAqB;SAC7C,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE;QACnB,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,EAAE;QAChC,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,EAAE;QAC9B,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,EAAE;QACpC,YAAY,EAAE,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;aACnC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC;aAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAc,EAAE,KAAK,EAAE,CAAC,CAAC,KAAe,EAAE,CAAC,CAAC;QACrE,UAAU;QACV,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC7B,UAAU;QACV,cAAc;QACd,GAAG,CAAC,iBAAiB,IAAI;YACvB,UAAU,EAAE,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7C,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE;gBAChB,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;gBACrC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;aACxC,CAAC,CAAC;SACJ,CAAC;QACF,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC;KAC5B,CAAC;AACJ,CAAC;AAED,2CAA2C;AAC3C,SAAS,UAAU,CAAC,MAAiB;IACnC,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrD,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,qBAAqB,EAAE,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;KACnF,CAAC;AACJ,CAAC;AA4BD,oCAAoC;AACpC,MAAM,cAAc,GAA2B;IAC7C,GAAG,EAAE,CAAC;IACN,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;IACP,QAAQ,EAAE,CAAC;CACZ,CAAC;AAEF,MAAM,OAAO,aAAa;IACxB,gGAAgG;IAChG,YAAY,OAAkB,EAAE,QAAwB,IAAG,CAAC;IAE5D;;;;OAIG;IACH,KAAK,CAAC,SAAS,CACb,MAAgB,EAChB,iBAA0B,EAC1B,GAAY;QAEZ,6CAA6C;QAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAEzC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,IAAI,QAAwB,CAAC;QAC7B,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAiB,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC7F,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,0EAA0E;YAC1E,IAAI,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,eAAe,CACnB,oFAAoF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EACxG,EAAE,MAAM,EAAE,uBAAuB,EAAE,MAAM,EAAE,CAC5C,CAAC;YACJ,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC;aAC3C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;aACjB,MAAM,CAAC,CAAC,CAAC,EAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,MAAM,QAAQ,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,oBAAoB,EAAE;gBACnD,MAAM,EAAE,eAAe;gBACvB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;aACjB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC;QAExE,kDAAkD;QAClD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACpE,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAE7E,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE;YACjC,SAAS,EAAE,MAAM,CAAC,MAAM;YACxB,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjD,CAAC,CAAC;QAEH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;IAC/E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,MAAwB,EACxB,GAAY;QAOZ,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAElC,MAAM,SAAS,GAA0D;YACvE,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC;YAClD,UAAU,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC;SAC/B,CAAC;QAEF,IAAI,MAAM,CAAC,OAAO;YAAE,SAAS,CAAC,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC;QAC7D,IAAI,MAAM,CAAC,KAAK;YAAE,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACjD,IAAI,MAAM,CAAC,YAAY;YAAE,SAAS,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACtE,IAAI,MAAM,CAAC,UAAU;YAAE,SAAS,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAChE,IAAI,MAAM,CAAC,gBAAgB;YAAE,SAAS,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAClF,IAAI,MAAM,CAAC,cAAc;YAAE,SAAS,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5E,IAAI,MAAM,CAAC,OAAO;YAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;QAC5C,IAAI,MAAM,CAAC,UAAU;YAAE,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;QAEnD,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,IAAI,IAAI,CAAC;YAC3C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACjB,SAAS,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC;YAClD,CAAC;iBAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACxB,SAAS,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC;YAClD,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAiB,UAAU,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QAE9E,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC;aAC3C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;aACjB,MAAM,CAAC,CAAC,CAAC,EAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAE5E,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,IAAI,CAAC,CAAC;QAChD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAE9E,OAAO;YACL,IAAI;YACJ,YAAY;YACZ,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC;SAC3B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CACZ,MAAsB,EACtB,GAAY;QAQZ,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAElC,MAAM,SAAS,GAA0D;YACvE,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC;YAClD,UAAU,EAAE,CAAC;SACd,CAAC;QAEF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YACnC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;QAChC,CAAC;aAAM,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACrC,SAAS,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;YACzD,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBACxB,SAAS,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;gBAC7C,SAAS,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,WAAW,CAAC;YACtE,CAAC;YACD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,SAAS,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;gBACzC,SAAS,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,WAAW,CAAC;YAClE,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAiB,UAAU,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QAE9E,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,IAAI,CAAC,CAAC;QAEhD,sFAAsF;QACtF,4FAA4F;QAC5F,8FAA8F;QAC9F,IAAI,YAAY,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACzC,MAAM,QAAQ,CACZ,0BAA0B,MAAM,CAAC,OAAO,6CAA6C,EACrF,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CACrD,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,GAAG,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC;aACzC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;aACjB,MAAM,CAAC,CAAC,CAAC,EAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvC,8BAA8B;QAC9B,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC;YACvE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC5B,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC/C,MAAM,GAAG,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACtC,IAAI,CAAC,GAAG;oBAAE,OAAO,KAAK,CAAC;gBACvB,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;YACrE,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAE3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAE7E,OAAO;YACL,IAAI;YACJ,YAAY;YACZ,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;YAClD,GAAG,CAAC,MAAM,CAAC,kBAAkB,IAAI,EAAE,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,EAAE,CAAC;SACpF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,KAAa,EACb,KAAa,EACb,MAAc,EACd,GAAY;QAQZ,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAElC,IAAI,QAA+B,CAAC;QACpC,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CACzB,gBAAgB,EAChB,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,EACpE,GAAG,CACJ,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,eAAe,CACnB,WAAW,KAAK,uDAAuD,EACvE,EAAE,MAAM,EAAE,uBAAuB,EAAE,KAAK,EAAE,CAC3C,CAAC;YACJ,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,MAAM,OAAO,GAAqB,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;aAC1D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;aACpB,MAAM,CAAC,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACX,UAAU,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE;YAC3B,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/C,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChD,CAAC,CAAC;SACJ,CAAC,CAAC,CAAC;QAEN,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,IAAI,CAAC,CAAC;QAChD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAEvF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAC5E,CAAC;CACF;AAED,gCAAgC;AAEhC,IAAI,QAAmC,CAAC;AAExC,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,OAAuB;IAC1E,QAAQ,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -22,6 +22,8 @@ export interface RawCveItem {
|
|
|
22
22
|
cisaRequiredAction?: string;
|
|
23
23
|
cisaVulnerabilityName?: string;
|
|
24
24
|
configurations?: Array<{
|
|
25
|
+
/** Combines this group's sibling nodes — an `AND` means every node must match. */
|
|
26
|
+
operator?: string;
|
|
25
27
|
nodes?: Array<{
|
|
26
28
|
operator?: string;
|
|
27
29
|
negate?: boolean;
|
|
@@ -131,7 +133,10 @@ export interface CisaKev {
|
|
|
131
133
|
export interface CveRecord {
|
|
132
134
|
cisaKev?: CisaKev;
|
|
133
135
|
configurations: Array<{
|
|
136
|
+
/** Combines this group's sibling nodes — an `AND` means every node must match. */
|
|
137
|
+
operator?: string;
|
|
134
138
|
nodes: Array<{
|
|
139
|
+
/** Combines this node's own cpeMatch entries. */
|
|
135
140
|
operator?: string;
|
|
136
141
|
cpeMatch: Array<{
|
|
137
142
|
vulnerable: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/nvd-cve/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/nvd-cve/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,57 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @fileoverview HTTP client for the NIST NVD API 2.0 with
|
|
3
|
-
* Manages API key injection, queue-based
|
|
2
|
+
* @fileoverview HTTP client for the NIST NVD API 2.0 with rate-limit pacing.
|
|
3
|
+
* Manages API key injection, queue-based pacing of every request attempt, retry with backoff,
|
|
4
|
+
* and Retry-After header parsing.
|
|
4
5
|
* @module services/nvd-http/nvd-http-client
|
|
5
6
|
*/
|
|
6
7
|
import type { Context } from '@cyanheads/mcp-ts-core';
|
|
8
|
+
import { McpError } from '@cyanheads/mcp-ts-core/errors';
|
|
9
|
+
/**
|
|
10
|
+
* The error thrown when NVD answers HTTP 404 because it rejected the request parameters
|
|
11
|
+
* (malformed CVE ID, unusable match string) rather than reporting an absent record.
|
|
12
|
+
* Deterministic, so it carries `retryable: false`: the framework's opt-out stops `withRetry`
|
|
13
|
+
* from re-sending a request that can never succeed.
|
|
14
|
+
*
|
|
15
|
+
* `detail` is NVD's own diagnosis from the `message` header — it names the offending parameter,
|
|
16
|
+
* which the generic text cannot.
|
|
17
|
+
*
|
|
18
|
+
* Exported so callers translate it to a domain error and tests reproduce it exactly.
|
|
19
|
+
*/
|
|
20
|
+
export declare function nvdRequestRejected(endpoint: string, detail?: string): McpError;
|
|
21
|
+
/** True when `err` is the {@link nvdRequestRejected} throw. */
|
|
22
|
+
export declare function isNvdRequestRejected(err: unknown): boolean;
|
|
7
23
|
export declare class NvdHttpClient {
|
|
8
24
|
private readonly apiKey;
|
|
9
25
|
private readonly timeoutMs;
|
|
10
26
|
private lastRequestAt;
|
|
27
|
+
/** Epoch ms before which no request may be sent — set from a 403's Retry-After. */
|
|
28
|
+
private backoffUntil;
|
|
11
29
|
private queue;
|
|
12
30
|
private draining;
|
|
13
31
|
constructor(apiKey: string | undefined, timeoutMs: number);
|
|
14
32
|
/**
|
|
15
|
-
*
|
|
16
|
-
*
|
|
33
|
+
* Fetch from the NVD API.
|
|
34
|
+
*
|
|
35
|
+
* Retry wraps the pacing queue rather than sitting inside it, so every attempt — the first
|
|
36
|
+
* try and each retry — waits its turn and counts against the rate budget.
|
|
17
37
|
*/
|
|
18
38
|
get<T>(endpoint: string, params: Record<string, string | number | boolean | undefined>, ctx: Context): Promise<T>;
|
|
39
|
+
/** Enqueue one request attempt, paced behind the inter-request gap and any active 403 backoff. */
|
|
40
|
+
private schedule;
|
|
19
41
|
private drainNext;
|
|
20
|
-
private
|
|
42
|
+
private fetchOnce;
|
|
43
|
+
/**
|
|
44
|
+
* Classify NVD's HTTP 404, which covers two unrelated faults separated only by the `message`
|
|
45
|
+
* header: a rejected request parameter, or an unusable API key. Reporting a malformed CVE ID
|
|
46
|
+
* when the real fault is `NVD_API_KEY` sends the caller to fix the wrong thing — no correction
|
|
47
|
+
* to the ID can succeed while the key is refused. Both are deterministic, so neither retries.
|
|
48
|
+
*/
|
|
49
|
+
private rejectionFor;
|
|
50
|
+
/**
|
|
51
|
+
* Build the 403 error and hold the queue until NVD's window resets, so every pending request —
|
|
52
|
+
* not just this call's retry — stops firing into a limit that is already exceeded.
|
|
53
|
+
*/
|
|
54
|
+
private rateLimitError;
|
|
21
55
|
private buildUrl;
|
|
22
56
|
private buildHeaders;
|
|
23
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nvd-http-client.d.ts","sourceRoot":"","sources":["../../../src/services/nvd-http/nvd-http-client.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"nvd-http-client.d.ts","sourceRoot":"","sources":["../../../src/services/nvd-http/nvd-http-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAEL,QAAQ,EAKT,MAAM,+BAA+B,CAAC;AA2CvC;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAO9E;AAED,+DAA+D;AAC/D,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAE1D;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,aAAa,CAAK;IAC1B,mFAAmF;IACnF,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,QAAQ,CAAS;gBAEb,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM;IAKzD;;;;;OAKG;IACH,GAAG,CAAC,CAAC,EACH,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,EAC7D,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,CAAC,CAAC;IAqBb,kGAAkG;IAClG,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,SAAS;YAmBH,SAAS;IA4EvB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAepB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAoBtB,OAAO,CAAC,QAAQ;IAiBhB,OAAO,CAAC,YAAY;CASrB;AAMD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAErF;AAED,wBAAgB,gBAAgB,IAAI,aAAa,CAKhD"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @fileoverview HTTP client for the NIST NVD API 2.0 with
|
|
3
|
-
* Manages API key injection, queue-based
|
|
2
|
+
* @fileoverview HTTP client for the NIST NVD API 2.0 with rate-limit pacing.
|
|
3
|
+
* Manages API key injection, queue-based pacing of every request attempt, retry with backoff,
|
|
4
|
+
* and Retry-After header parsing.
|
|
4
5
|
* @module services/nvd-http/nvd-http-client
|
|
5
6
|
*/
|
|
6
|
-
import { rateLimited, serviceUnavailable, timeout } from '@cyanheads/mcp-ts-core/errors';
|
|
7
|
+
import { configurationError, McpError, rateLimited, serviceUnavailable, timeout, validationError, } from '@cyanheads/mcp-ts-core/errors';
|
|
7
8
|
import { withRetry } from '@cyanheads/mcp-ts-core/utils';
|
|
8
9
|
const NVD_BASE_URL = 'https://services.nvd.nist.gov/rest/json';
|
|
9
10
|
/**
|
|
@@ -14,15 +15,55 @@ const NVD_BASE_URL = 'https://services.nvd.nist.gov/rest/json';
|
|
|
14
15
|
const RATE_LIMIT_WINDOW_MS = 30_000;
|
|
15
16
|
const RATE_LIMIT_WITHOUT_KEY = 5;
|
|
16
17
|
const RATE_LIMIT_WITH_KEY = 50;
|
|
18
|
+
/**
|
|
19
|
+
* Retry budget per logical call. Every attempt occupies a rate-limit slot, so the keyless
|
|
20
|
+
* budget (5 per 30s) cannot afford the framework default of 4 attempts on one call.
|
|
21
|
+
*/
|
|
22
|
+
const MAX_RETRIES_WITH_KEY = 3;
|
|
23
|
+
const MAX_RETRIES_WITHOUT_KEY = 1;
|
|
24
|
+
/** `data.reason` on the error thrown when NVD rejects a request's parameters with HTTP 404. */
|
|
25
|
+
const REQUEST_REJECTED_REASON = 'nvd_request_rejected';
|
|
26
|
+
/** `data.reason` on the error thrown when NVD rejects the configured API key. */
|
|
27
|
+
const INVALID_API_KEY_REASON = 'nvd_invalid_api_key';
|
|
28
|
+
/**
|
|
29
|
+
* NVD's own diagnosis for a 404, returned in a `message` response header rather than a body
|
|
30
|
+
* (e.g. `Invalid cveId parameter.`, `Invalid apiKey.`). It is the only thing separating the
|
|
31
|
+
* two unrelated faults NVD answers 404 with.
|
|
32
|
+
*/
|
|
33
|
+
const NVD_MESSAGE_HEADER = 'message';
|
|
34
|
+
/** NVD's `message` when the API key itself is the fault, not the request parameters. */
|
|
35
|
+
const INVALID_API_KEY_MESSAGE = /^invalid\s+apikey/i;
|
|
17
36
|
/** Minimum gap between requests in milliseconds derived from window/limit. */
|
|
18
37
|
function minGapMs(hasKey) {
|
|
19
38
|
const limit = hasKey ? RATE_LIMIT_WITH_KEY : RATE_LIMIT_WITHOUT_KEY;
|
|
20
39
|
return Math.ceil(RATE_LIMIT_WINDOW_MS / limit);
|
|
21
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* The error thrown when NVD answers HTTP 404 because it rejected the request parameters
|
|
43
|
+
* (malformed CVE ID, unusable match string) rather than reporting an absent record.
|
|
44
|
+
* Deterministic, so it carries `retryable: false`: the framework's opt-out stops `withRetry`
|
|
45
|
+
* from re-sending a request that can never succeed.
|
|
46
|
+
*
|
|
47
|
+
* `detail` is NVD's own diagnosis from the `message` header — it names the offending parameter,
|
|
48
|
+
* which the generic text cannot.
|
|
49
|
+
*
|
|
50
|
+
* Exported so callers translate it to a domain error and tests reproduce it exactly.
|
|
51
|
+
*/
|
|
52
|
+
export function nvdRequestRejected(endpoint, detail) {
|
|
53
|
+
return validationError(detail
|
|
54
|
+
? `NVD rejected the request parameters (HTTP 404): ${detail}`
|
|
55
|
+
: 'NVD rejected the request parameters (HTTP 404).', { reason: REQUEST_REJECTED_REASON, endpoint, retryable: false });
|
|
56
|
+
}
|
|
57
|
+
/** True when `err` is the {@link nvdRequestRejected} throw. */
|
|
58
|
+
export function isNvdRequestRejected(err) {
|
|
59
|
+
return err instanceof McpError && err.data?.reason === REQUEST_REJECTED_REASON;
|
|
60
|
+
}
|
|
22
61
|
export class NvdHttpClient {
|
|
23
62
|
apiKey;
|
|
24
63
|
timeoutMs;
|
|
25
64
|
lastRequestAt = 0;
|
|
65
|
+
/** Epoch ms before which no request may be sent — set from a 403's Retry-After. */
|
|
66
|
+
backoffUntil = 0;
|
|
26
67
|
queue = [];
|
|
27
68
|
draining = false;
|
|
28
69
|
constructor(apiKey, timeoutMs) {
|
|
@@ -30,19 +71,36 @@ export class NvdHttpClient {
|
|
|
30
71
|
this.timeoutMs = timeoutMs;
|
|
31
72
|
}
|
|
32
73
|
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
74
|
+
* Fetch from the NVD API.
|
|
75
|
+
*
|
|
76
|
+
* Retry wraps the pacing queue rather than sitting inside it, so every attempt — the first
|
|
77
|
+
* try and each retry — waits its turn and counts against the rate budget.
|
|
35
78
|
*/
|
|
36
|
-
|
|
37
|
-
|
|
79
|
+
get(endpoint, params, ctx) {
|
|
80
|
+
let attemptIndex = 0;
|
|
81
|
+
return withRetry(() => {
|
|
82
|
+
/**
|
|
83
|
+
* NVD's Retry-After is a full 30s window and the MCP client request deadline is 60s, so
|
|
84
|
+
* only one such wait fits inside a single call — spend it on the first attempt or not at
|
|
85
|
+
* all. Keyless has no budget to wait with; that arm fails fast and names NVD_API_KEY.
|
|
86
|
+
*/
|
|
87
|
+
const mayWaitOutRateLimit = attemptIndex++ === 0 && !!this.apiKey;
|
|
88
|
+
return this.schedule(() => this.fetchOnce(endpoint, params, ctx, mayWaitOutRateLimit));
|
|
89
|
+
}, {
|
|
90
|
+
operation: `NvdHttpClient.get:${endpoint}`,
|
|
91
|
+
maxRetries: this.apiKey ? MAX_RETRIES_WITH_KEY : MAX_RETRIES_WITHOUT_KEY,
|
|
92
|
+
baseDelayMs: 2_000,
|
|
93
|
+
signal: ctx.signal,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
/** Enqueue one request attempt, paced behind the inter-request gap and any active 403 backoff. */
|
|
97
|
+
schedule(run) {
|
|
38
98
|
return new Promise((resolve, reject) => {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
.then(resolve)
|
|
42
|
-
.catch(reject)
|
|
99
|
+
this.queue.push(() => {
|
|
100
|
+
run()
|
|
101
|
+
.then(resolve, reject)
|
|
43
102
|
.finally(() => this.drainNext());
|
|
44
|
-
};
|
|
45
|
-
this.queue.push(task);
|
|
103
|
+
});
|
|
46
104
|
if (!this.draining)
|
|
47
105
|
this.drainNext();
|
|
48
106
|
});
|
|
@@ -54,85 +112,109 @@ export class NvdHttpClient {
|
|
|
54
112
|
return;
|
|
55
113
|
}
|
|
56
114
|
this.draining = true;
|
|
57
|
-
const gap = minGapMs(!!this.apiKey);
|
|
58
115
|
const now = Date.now();
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
this.lastRequestAt = Date.now();
|
|
64
|
-
task();
|
|
65
|
-
}, delay);
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
this.lastRequestAt = Date.now();
|
|
116
|
+
const delay = Math.max(0, minGapMs(!!this.apiKey) - (now - this.lastRequestAt), this.backoffUntil - now);
|
|
117
|
+
if (delay > 0)
|
|
118
|
+
setTimeout(task, delay);
|
|
119
|
+
else
|
|
69
120
|
task();
|
|
70
|
-
}
|
|
71
121
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
clearTimeout(timer);
|
|
99
|
-
ctx.signal.removeEventListener('abort', onAbort);
|
|
100
|
-
}
|
|
101
|
-
if (response.status === 403) {
|
|
102
|
-
const retryAfter = response.headers.get('Retry-After');
|
|
103
|
-
throw rateLimited(`NVD rate limit exceeded. ${retryAfter ? `Retry after ${retryAfter}s.` : ''}`, {
|
|
104
|
-
reason: 'rate_limited',
|
|
105
|
-
retryAfter: retryAfter ? Number(retryAfter) : 30,
|
|
106
|
-
recovery: {
|
|
107
|
-
hint: 'The NVD rate limit was exceeded. Wait for the retry window to reset or add an API key via NVD_API_KEY.',
|
|
108
|
-
},
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
if (response.status === 404) {
|
|
112
|
-
// NVD returns 404 for malformed/invalid request parameters.
|
|
113
|
-
// Callers translate this to domain-appropriate errors via catch blocks.
|
|
114
|
-
throw new Error('NVD returned HTTP 404.');
|
|
115
|
-
}
|
|
116
|
-
if (!response.ok) {
|
|
117
|
-
throw serviceUnavailable(`NVD API returned HTTP ${response.status}.`, {
|
|
118
|
-
endpoint,
|
|
119
|
-
status: response.status,
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
const text = await response.text();
|
|
123
|
-
if (/^\s*<(!DOCTYPE\s+html|html[\s>])/i.test(text)) {
|
|
124
|
-
throw serviceUnavailable('NVD API returned HTML instead of JSON — likely rate-limited or a temporary outage.');
|
|
125
|
-
}
|
|
126
|
-
try {
|
|
127
|
-
return JSON.parse(text);
|
|
128
|
-
}
|
|
129
|
-
catch (err) {
|
|
130
|
-
throw serviceUnavailable('NVD API returned malformed JSON.', { endpoint }, { cause: err });
|
|
122
|
+
async fetchOnce(endpoint, params, ctx, mayWaitOutRateLimit) {
|
|
123
|
+
// A queued attempt can wait out a rate-limit window; don't spend a slot once the caller is gone.
|
|
124
|
+
if (ctx.signal.aborted)
|
|
125
|
+
throw timeout('NVD request cancelled by caller.');
|
|
126
|
+
const url = this.buildUrl(endpoint, params);
|
|
127
|
+
ctx.log.debug('NVD API request', { endpoint, url: url.toString() });
|
|
128
|
+
// Advance the pacer only once a request is actually going out — an attempt that bailed above
|
|
129
|
+
// sent nothing, so charging it a slot would delay the next live caller for no upstream cost.
|
|
130
|
+
this.lastRequestAt = Date.now();
|
|
131
|
+
const controller = new AbortController();
|
|
132
|
+
const timer = setTimeout(() => controller.abort(), this.timeoutMs);
|
|
133
|
+
// Chain caller's signal
|
|
134
|
+
const onAbort = () => controller.abort();
|
|
135
|
+
ctx.signal.addEventListener('abort', onAbort, { once: true });
|
|
136
|
+
let response;
|
|
137
|
+
try {
|
|
138
|
+
response = await fetch(url.toString(), {
|
|
139
|
+
headers: this.buildHeaders(),
|
|
140
|
+
signal: controller.signal,
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
catch (err) {
|
|
144
|
+
if (err.name === 'AbortError') {
|
|
145
|
+
if (ctx.signal.aborted)
|
|
146
|
+
throw timeout('NVD request cancelled by caller.');
|
|
147
|
+
throw timeout(`NVD request timed out after ${this.timeoutMs}ms.`);
|
|
131
148
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
149
|
+
throw serviceUnavailable(`NVD API network error: ${err.message}`, { endpoint }, { cause: err });
|
|
150
|
+
}
|
|
151
|
+
finally {
|
|
152
|
+
clearTimeout(timer);
|
|
153
|
+
ctx.signal.removeEventListener('abort', onAbort);
|
|
154
|
+
}
|
|
155
|
+
if (response.status === 403) {
|
|
156
|
+
throw this.rateLimitError(response, mayWaitOutRateLimit);
|
|
157
|
+
}
|
|
158
|
+
if (response.status === 404) {
|
|
159
|
+
throw this.rejectionFor(endpoint, response.headers.get(NVD_MESSAGE_HEADER));
|
|
160
|
+
}
|
|
161
|
+
if (!response.ok) {
|
|
162
|
+
throw serviceUnavailable(`NVD API returned HTTP ${response.status}.`, {
|
|
163
|
+
endpoint,
|
|
164
|
+
status: response.status,
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
const text = await response.text();
|
|
168
|
+
if (/^\s*<(!DOCTYPE\s+html|html[\s>])/i.test(text)) {
|
|
169
|
+
throw serviceUnavailable('NVD API returned HTML instead of JSON — likely rate-limited or a temporary outage.');
|
|
170
|
+
}
|
|
171
|
+
try {
|
|
172
|
+
return JSON.parse(text);
|
|
173
|
+
}
|
|
174
|
+
catch (err) {
|
|
175
|
+
throw serviceUnavailable('NVD API returned malformed JSON.', { endpoint }, { cause: err });
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Classify NVD's HTTP 404, which covers two unrelated faults separated only by the `message`
|
|
180
|
+
* header: a rejected request parameter, or an unusable API key. Reporting a malformed CVE ID
|
|
181
|
+
* when the real fault is `NVD_API_KEY` sends the caller to fix the wrong thing — no correction
|
|
182
|
+
* to the ID can succeed while the key is refused. Both are deterministic, so neither retries.
|
|
183
|
+
*/
|
|
184
|
+
rejectionFor(endpoint, detail) {
|
|
185
|
+
if (detail && INVALID_API_KEY_MESSAGE.test(detail)) {
|
|
186
|
+
const windowSec = RATE_LIMIT_WINDOW_MS / 1000;
|
|
187
|
+
return configurationError(`NVD rejected the configured API key: ${detail}`, {
|
|
188
|
+
reason: INVALID_API_KEY_REASON,
|
|
189
|
+
endpoint,
|
|
190
|
+
retryable: false,
|
|
191
|
+
recovery: {
|
|
192
|
+
hint: `NVD refused the NVD_API_KEY value. Verify the key, request a replacement at https://nvd.nist.gov/developers/request-an-api-key, or unset NVD_API_KEY to run keyless at ${RATE_LIMIT_WITHOUT_KEY} req/${windowSec}s.`,
|
|
193
|
+
},
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
return nvdRequestRejected(endpoint, detail ?? undefined);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Build the 403 error and hold the queue until NVD's window resets, so every pending request —
|
|
200
|
+
* not just this call's retry — stops firing into a limit that is already exceeded.
|
|
201
|
+
*/
|
|
202
|
+
rateLimitError(response, mayWaitOutRateLimit) {
|
|
203
|
+
const windowSec = RATE_LIMIT_WINDOW_MS / 1000;
|
|
204
|
+
const header = Number(response.headers.get('Retry-After'));
|
|
205
|
+
// Clamp to the documented window: a missing, unparseable, or oversized header must not
|
|
206
|
+
// disable the backoff (NaN) or stall the queue past the caller's deadline.
|
|
207
|
+
const retryAfter = header > 0 ? Math.min(header, windowSec) : windowSec;
|
|
208
|
+
this.backoffUntil = Date.now() + retryAfter * 1000;
|
|
209
|
+
return rateLimited(`NVD rate limit exceeded. Retry after ${retryAfter}s.`, {
|
|
210
|
+
reason: 'rate_limited',
|
|
211
|
+
retryAfter,
|
|
212
|
+
retryable: mayWaitOutRateLimit,
|
|
213
|
+
recovery: {
|
|
214
|
+
hint: this.apiKey
|
|
215
|
+
? `The NVD rate limit was exceeded (${RATE_LIMIT_WITH_KEY} req/${windowSec}s with an API key). Wait ${retryAfter}s for the window to reset, or reduce concurrent calls.`
|
|
216
|
+
: `The NVD rate limit was exceeded (${RATE_LIMIT_WITHOUT_KEY} req/${windowSec}s without an API key). Set NVD_API_KEY to raise it to ${RATE_LIMIT_WITH_KEY} req/${windowSec}s, or wait ${retryAfter}s for the window to reset.`,
|
|
217
|
+
},
|
|
136
218
|
});
|
|
137
219
|
}
|
|
138
220
|
buildUrl(endpoint, params) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nvd-http-client.js","sourceRoot":"","sources":["../../../src/services/nvd-http/nvd-http-client.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"nvd-http-client.js","sourceRoot":"","sources":["../../../src/services/nvd-http/nvd-http-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,kBAAkB,EAClB,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,eAAe,GAChB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,MAAM,YAAY,GAAG,yCAAyC,CAAC;AAE/D;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,MAAM,CAAC;AACpC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACjC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B;;;GAGG;AACH,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAC/B,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAElC,+FAA+F;AAC/F,MAAM,uBAAuB,GAAG,sBAAsB,CAAC;AAEvD,iFAAiF;AACjF,MAAM,sBAAsB,GAAG,qBAAqB,CAAC;AAErD;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAErC,wFAAwF;AACxF,MAAM,uBAAuB,GAAG,oBAAoB,CAAC;AAErD,8EAA8E;AAC9E,SAAS,QAAQ,CAAC,MAAe;IAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,sBAAsB,CAAC;IACpE,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,CAAC;AACjD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,MAAe;IAClE,OAAO,eAAe,CACpB,MAAM;QACJ,CAAC,CAAC,mDAAmD,MAAM,EAAE;QAC7D,CAAC,CAAC,iDAAiD,EACrD,EAAE,MAAM,EAAE,uBAAuB,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,CAChE,CAAC;AACJ,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,oBAAoB,CAAC,GAAY;IAC/C,OAAO,GAAG,YAAY,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,uBAAuB,CAAC;AACjF,CAAC;AAED,MAAM,OAAO,aAAa;IACP,MAAM,CAAqB;IAC3B,SAAS,CAAS;IAC3B,aAAa,GAAG,CAAC,CAAC;IAC1B,mFAAmF;IAC3E,YAAY,GAAG,CAAC,CAAC;IACjB,KAAK,GAAsB,EAAE,CAAC;IAC9B,QAAQ,GAAG,KAAK,CAAC;IAEzB,YAAY,MAA0B,EAAE,SAAiB;QACvD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACH,GAAG,CACD,QAAgB,EAChB,MAA6D,EAC7D,GAAY;QAEZ,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,OAAO,SAAS,CACd,GAAG,EAAE;YACH;;;;eAIG;YACH,MAAM,mBAAmB,GAAG,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;YAClE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAI,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAC,CAAC;QAC5F,CAAC,EACD;YACE,SAAS,EAAE,qBAAqB,QAAQ,EAAE;YAC1C,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,uBAAuB;YACxE,WAAW,EAAE,KAAK;YAClB,MAAM,EAAE,GAAG,CAAC,MAAM;SACnB,CACF,CAAC;IACJ,CAAC;IAED,kGAAkG;IAC1F,QAAQ,CAAI,GAAqB;QACvC,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;gBACnB,GAAG,EAAE;qBACF,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;qBACrB,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,SAAS;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAErB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,CAAC,EACD,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,EACpD,IAAI,CAAC,YAAY,GAAG,GAAG,CACxB,CAAC;QAEF,IAAI,KAAK,GAAG,CAAC;YAAE,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;;YAClC,IAAI,EAAE,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,SAAS,CACrB,QAAgB,EAChB,MAA6D,EAC7D,GAAY,EACZ,mBAA4B;QAE5B,iGAAiG;QACjG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,OAAO,CAAC,kCAAkC,CAAC,CAAC;QAE1E,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC5C,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAEpE,6FAA6F;QAC7F,6FAA6F;QAC7F,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEhC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnE,wBAAwB;QACxB,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACzC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAE9D,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;gBACrC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE;gBAC5B,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAAa,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACzC,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO;oBAAE,MAAM,OAAO,CAAC,kCAAkC,CAAC,CAAC;gBAC1E,MAAM,OAAO,CAAC,+BAA+B,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC;YACpE,CAAC;YACD,MAAM,kBAAkB,CACtB,0BAA2B,GAAa,CAAC,OAAO,EAAE,EAClD,EAAE,QAAQ,EAAE,EACZ,EAAE,KAAK,EAAE,GAAY,EAAE,CACxB,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC9E,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,kBAAkB,CAAC,yBAAyB,QAAQ,CAAC,MAAM,GAAG,EAAE;gBACpE,QAAQ;gBACR,MAAM,EAAE,QAAQ,CAAC,MAAM;aACxB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,mCAAmC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,MAAM,kBAAkB,CACtB,oFAAoF,CACrF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,kBAAkB,CACtB,kCAAkC,EAClC,EAAE,QAAQ,EAAE,EACZ,EAAE,KAAK,EAAE,GAAY,EAAE,CACxB,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,YAAY,CAAC,QAAgB,EAAE,MAAqB;QAC1D,IAAI,MAAM,IAAI,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,MAAM,SAAS,GAAG,oBAAoB,GAAG,IAAI,CAAC;YAC9C,OAAO,kBAAkB,CAAC,wCAAwC,MAAM,EAAE,EAAE;gBAC1E,MAAM,EAAE,sBAAsB;gBAC9B,QAAQ;gBACR,SAAS,EAAE,KAAK;gBAChB,QAAQ,EAAE;oBACR,IAAI,EAAE,0KAA0K,sBAAsB,QAAQ,SAAS,IAAI;iBAC5N;aACF,CAAC,CAAC;QACL,CAAC;QACD,OAAO,kBAAkB,CAAC,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC,CAAC;IAC3D,CAAC;IAED;;;OAGG;IACK,cAAc,CAAC,QAAkB,EAAE,mBAA4B;QACrE,MAAM,SAAS,GAAG,oBAAoB,GAAG,IAAI,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;QAC3D,uFAAuF;QACvF,2EAA2E;QAC3E,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,GAAG,IAAI,CAAC;QAEnD,OAAO,WAAW,CAAC,wCAAwC,UAAU,IAAI,EAAE;YACzE,MAAM,EAAE,cAAc;YACtB,UAAU;YACV,SAAS,EAAE,mBAAmB;YAC9B,QAAQ,EAAE;gBACR,IAAI,EAAE,IAAI,CAAC,MAAM;oBACf,CAAC,CAAC,oCAAoC,mBAAmB,QAAQ,SAAS,4BAA4B,UAAU,wDAAwD;oBACxK,CAAC,CAAC,oCAAoC,sBAAsB,QAAQ,SAAS,yDAAyD,mBAAmB,QAAQ,SAAS,cAAc,UAAU,4BAA4B;aACjO;SACF,CAAC,CAAC;IACL,CAAC;IAEO,QAAQ,CACd,QAAgB,EAChB,MAA6D;QAE7D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,YAAY,IAAI,QAAQ,EAAE,CAAC,CAAC;QACnD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;gBAAE,SAAS;YACpD,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/B,+DAA+D;gBAC/D,IAAI,KAAK;oBAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,YAAY;QAClB,MAAM,OAAO,GAA2B;YACtC,MAAM,EAAE,kBAAkB;SAC3B,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAED,gCAAgC;AAEhC,IAAI,OAAkC,CAAC;AAEvC,MAAM,UAAU,iBAAiB,CAAC,MAA0B,EAAE,SAAiB;IAC7E,OAAO,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/manifest.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"manifest_version": "0.3",
|
|
3
3
|
"name": "nist-nvd-mcp-server",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.13",
|
|
5
5
|
"description": "Search and audit CVEs by keyword, severity, CWE, CISA KEV status, and CPE via the NIST National Vulnerability Database. STDIO or Streamable HTTP.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "cyanheads"
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cyanheads/nist-nvd-mcp-server",
|
|
3
3
|
"mcpName": "io.github.cyanheads/nist-nvd-mcp-server",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.13",
|
|
5
5
|
"description": "Search and audit CVEs by keyword, severity, CWE, CISA KEV status, and CPE via the NIST National Vulnerability Database. STDIO or Streamable HTTP.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "dist/index.js",
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"bugs": {
|
|
69
69
|
"url": "https://github.com/cyanheads/nist-nvd-mcp-server/issues"
|
|
70
70
|
},
|
|
71
|
-
"author": "
|
|
71
|
+
"author": "Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)",
|
|
72
72
|
"funding": [
|
|
73
73
|
{
|
|
74
74
|
"type": "github",
|
|
@@ -80,26 +80,28 @@
|
|
|
80
80
|
}
|
|
81
81
|
],
|
|
82
82
|
"license": "Apache-2.0",
|
|
83
|
-
"packageManager": "bun@1.3.
|
|
83
|
+
"packageManager": "bun@1.3.14",
|
|
84
84
|
"engines": {
|
|
85
|
-
"bun": ">=1.3.
|
|
85
|
+
"bun": ">=1.3.0",
|
|
86
86
|
"node": ">=24.0.0"
|
|
87
87
|
},
|
|
88
88
|
"publishConfig": {
|
|
89
89
|
"access": "public"
|
|
90
90
|
},
|
|
91
|
+
"trustedDependencies": ["@socketsecurity/bun-security-scanner"],
|
|
91
92
|
"dependencies": {
|
|
92
|
-
"@cyanheads/mcp-ts-core": "^0.10.
|
|
93
|
+
"@cyanheads/mcp-ts-core": "^0.10.14",
|
|
93
94
|
"pino-pretty": "^13.1.3",
|
|
94
95
|
"zod": "^4.4.3"
|
|
95
96
|
},
|
|
96
97
|
"devDependencies": {
|
|
97
|
-
"@biomejs/biome": "^2.
|
|
98
|
-
"@
|
|
98
|
+
"@biomejs/biome": "^2.5.3",
|
|
99
|
+
"@socketsecurity/bun-security-scanner": "^1.1.2",
|
|
100
|
+
"@types/node": "^26.1.1",
|
|
99
101
|
"depcheck": "^1.4.7",
|
|
100
|
-
"ignore": "^7.0.
|
|
101
|
-
"tsc-alias": "^1.
|
|
102
|
+
"ignore": "^7.0.6",
|
|
103
|
+
"tsc-alias": "^1.9.0",
|
|
102
104
|
"typescript": "^6.0.3",
|
|
103
|
-
"vitest": "^4.1.
|
|
105
|
+
"vitest": "^4.1.10"
|
|
104
106
|
}
|
|
105
107
|
}
|
package/server.json
CHANGED
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
"url": "https://github.com/cyanheads/nist-nvd-mcp-server",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "0.1.
|
|
9
|
+
"version": "0.1.13",
|
|
10
10
|
"packages": [
|
|
11
11
|
{
|
|
12
12
|
"registryType": "npm",
|
|
13
13
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
14
14
|
"identifier": "@cyanheads/nist-nvd-mcp-server",
|
|
15
15
|
"runtimeHint": "bun",
|
|
16
|
-
"version": "0.1.
|
|
16
|
+
"version": "0.1.13",
|
|
17
17
|
"packageArguments": [
|
|
18
18
|
{
|
|
19
19
|
"type": "positional",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
56
56
|
"identifier": "@cyanheads/nist-nvd-mcp-server",
|
|
57
57
|
"runtimeHint": "bun",
|
|
58
|
-
"version": "0.1.
|
|
58
|
+
"version": "0.1.13",
|
|
59
59
|
"packageArguments": [
|
|
60
60
|
{
|
|
61
61
|
"type": "positional",
|