@cliwant/mcp-sam-gov 0.2.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/LICENSE +21 -21
  2. package/README.ja.md +48 -16
  3. package/README.ko.md +48 -16
  4. package/README.md +279 -67
  5. package/dist/attachments.d.ts +63 -0
  6. package/dist/attachments.d.ts.map +1 -0
  7. package/dist/attachments.js +576 -0
  8. package/dist/attachments.js.map +1 -0
  9. package/dist/bls.d.ts +267 -0
  10. package/dist/bls.d.ts.map +1 -0
  11. package/dist/bls.js +1549 -0
  12. package/dist/bls.js.map +1 -0
  13. package/dist/cache.d.ts +42 -0
  14. package/dist/cache.d.ts.map +1 -0
  15. package/dist/cache.js +64 -0
  16. package/dist/cache.js.map +1 -0
  17. package/dist/census.d.ts +182 -0
  18. package/dist/census.d.ts.map +1 -0
  19. package/dist/census.js +576 -0
  20. package/dist/census.js.map +1 -0
  21. package/dist/ckan.d.ts +141 -0
  22. package/dist/ckan.d.ts.map +1 -0
  23. package/dist/ckan.js +393 -0
  24. package/dist/ckan.js.map +1 -0
  25. package/dist/clinicaltrials.d.ts +180 -0
  26. package/dist/clinicaltrials.d.ts.map +1 -0
  27. package/dist/clinicaltrials.js +730 -0
  28. package/dist/clinicaltrials.js.map +1 -0
  29. package/dist/cms.d.ts +140 -0
  30. package/dist/cms.d.ts.map +1 -0
  31. package/dist/cms.js +482 -0
  32. package/dist/cms.js.map +1 -0
  33. package/dist/coerce.d.ts +32 -0
  34. package/dist/coerce.d.ts.map +1 -0
  35. package/dist/coerce.js +50 -0
  36. package/dist/coerce.js.map +1 -0
  37. package/dist/datagov-catalog.d.ts +84 -0
  38. package/dist/datagov-catalog.d.ts.map +1 -0
  39. package/dist/datagov-catalog.js +233 -0
  40. package/dist/datagov-catalog.js.map +1 -0
  41. package/dist/datagov.d.ts +146 -0
  42. package/dist/datagov.d.ts.map +1 -0
  43. package/dist/datagov.js +689 -0
  44. package/dist/datagov.js.map +1 -0
  45. package/dist/datagovKey.d.ts +36 -0
  46. package/dist/datagovKey.d.ts.map +1 -0
  47. package/dist/datagovKey.js +60 -0
  48. package/dist/datagovKey.js.map +1 -0
  49. package/dist/datasource.d.ts +313 -0
  50. package/dist/datasource.d.ts.map +1 -0
  51. package/dist/datasource.js +551 -0
  52. package/dist/datasource.js.map +1 -0
  53. package/dist/disclosure.d.ts +55 -0
  54. package/dist/disclosure.d.ts.map +1 -0
  55. package/dist/disclosure.js +57 -0
  56. package/dist/disclosure.js.map +1 -0
  57. package/dist/ecfr.d.ts +4 -2
  58. package/dist/ecfr.d.ts.map +1 -1
  59. package/dist/ecfr.js +92 -17
  60. package/dist/ecfr.js.map +1 -1
  61. package/dist/echo.d.ts +143 -0
  62. package/dist/echo.d.ts.map +1 -0
  63. package/dist/echo.js +424 -0
  64. package/dist/echo.js.map +1 -0
  65. package/dist/edgar.d.ts +377 -0
  66. package/dist/edgar.d.ts.map +1 -0
  67. package/dist/edgar.js +2418 -0
  68. package/dist/edgar.js.map +1 -0
  69. package/dist/errors.d.ts +102 -0
  70. package/dist/errors.d.ts.map +1 -0
  71. package/dist/errors.js +247 -0
  72. package/dist/errors.js.map +1 -0
  73. package/dist/fac.d.ts +180 -0
  74. package/dist/fac.d.ts.map +1 -0
  75. package/dist/fac.js +416 -0
  76. package/dist/fac.js.map +1 -0
  77. package/dist/far.d.ts +170 -0
  78. package/dist/far.d.ts.map +1 -0
  79. package/dist/far.js +804 -0
  80. package/dist/far.js.map +1 -0
  81. package/dist/fdic.d.ts +599 -0
  82. package/dist/fdic.d.ts.map +1 -0
  83. package/dist/fdic.js +1624 -0
  84. package/dist/fdic.js.map +1 -0
  85. package/dist/federal-register.d.ts +139 -2
  86. package/dist/federal-register.d.ts.map +1 -1
  87. package/dist/federal-register.js +432 -15
  88. package/dist/federal-register.js.map +1 -1
  89. package/dist/fema.d.ts +181 -0
  90. package/dist/fema.d.ts.map +1 -0
  91. package/dist/fema.js +436 -0
  92. package/dist/fema.js.map +1 -0
  93. package/dist/fpds.d.ts +108 -0
  94. package/dist/fpds.d.ts.map +1 -0
  95. package/dist/fpds.js +519 -0
  96. package/dist/fpds.js.map +1 -0
  97. package/dist/gao.d.ts +64 -0
  98. package/dist/gao.d.ts.map +1 -0
  99. package/dist/gao.js +640 -0
  100. package/dist/gao.js.map +1 -0
  101. package/dist/govinfo.d.ts +111 -0
  102. package/dist/govinfo.d.ts.map +1 -0
  103. package/dist/govinfo.js +422 -0
  104. package/dist/govinfo.js.map +1 -0
  105. package/dist/grants.d.ts +27 -4
  106. package/dist/grants.d.ts.map +1 -1
  107. package/dist/grants.js +114 -11
  108. package/dist/grants.js.map +1 -1
  109. package/dist/gsa-csv.d.ts +249 -0
  110. package/dist/gsa-csv.d.ts.map +1 -0
  111. package/dist/gsa-csv.js +784 -0
  112. package/dist/gsa-csv.js.map +1 -0
  113. package/dist/integrity.d.ts +212 -0
  114. package/dist/integrity.d.ts.map +1 -0
  115. package/dist/integrity.js +707 -0
  116. package/dist/integrity.js.map +1 -0
  117. package/dist/meta.d.ts +165 -0
  118. package/dist/meta.d.ts.map +1 -0
  119. package/dist/meta.js +162 -0
  120. package/dist/meta.js.map +1 -0
  121. package/dist/nih.d.ts +117 -0
  122. package/dist/nih.d.ts.map +1 -0
  123. package/dist/nih.js +291 -0
  124. package/dist/nih.js.map +1 -0
  125. package/dist/nppes.d.ts +157 -0
  126. package/dist/nppes.d.ts.map +1 -0
  127. package/dist/nppes.js +648 -0
  128. package/dist/nppes.js.map +1 -0
  129. package/dist/nsf.d.ts +176 -0
  130. package/dist/nsf.d.ts.map +1 -0
  131. package/dist/nsf.js +554 -0
  132. package/dist/nsf.js.map +1 -0
  133. package/dist/nvd.d.ts +176 -0
  134. package/dist/nvd.d.ts.map +1 -0
  135. package/dist/nvd.js +912 -0
  136. package/dist/nvd.js.map +1 -0
  137. package/dist/ofac.d.ts +205 -0
  138. package/dist/ofac.d.ts.map +1 -0
  139. package/dist/ofac.js +919 -0
  140. package/dist/ofac.js.map +1 -0
  141. package/dist/pricing.d.ts +110 -0
  142. package/dist/pricing.d.ts.map +1 -0
  143. package/dist/pricing.js +843 -0
  144. package/dist/pricing.js.map +1 -0
  145. package/dist/sam-gov/client.d.ts +60 -2
  146. package/dist/sam-gov/client.d.ts.map +1 -1
  147. package/dist/sam-gov/client.js +320 -54
  148. package/dist/sam-gov/client.js.map +1 -1
  149. package/dist/sam-gov/index.d.ts +1 -1
  150. package/dist/sam-gov/index.d.ts.map +1 -1
  151. package/dist/sam-gov/index.js +1 -1
  152. package/dist/sam-gov/index.js.map +1 -1
  153. package/dist/sam-gov/types.d.ts +24 -0
  154. package/dist/sam-gov/types.d.ts.map +1 -1
  155. package/dist/sba.d.ts +72 -0
  156. package/dist/sba.d.ts.map +1 -0
  157. package/dist/sba.js +281 -0
  158. package/dist/sba.js.map +1 -0
  159. package/dist/server.d.ts +14 -2
  160. package/dist/server.d.ts.map +1 -1
  161. package/dist/server.js +3897 -295
  162. package/dist/server.js.map +1 -1
  163. package/dist/snapshot.d.ts +98 -0
  164. package/dist/snapshot.d.ts.map +1 -0
  165. package/dist/snapshot.js +146 -0
  166. package/dist/snapshot.js.map +1 -0
  167. package/dist/socrata.d.ts +157 -0
  168. package/dist/socrata.d.ts.map +1 -0
  169. package/dist/socrata.js +448 -0
  170. package/dist/socrata.js.map +1 -0
  171. package/dist/treasury.d.ts +143 -0
  172. package/dist/treasury.d.ts.map +1 -0
  173. package/dist/treasury.js +436 -0
  174. package/dist/treasury.js.map +1 -0
  175. package/dist/usaspending.d.ts +260 -65
  176. package/dist/usaspending.d.ts.map +1 -1
  177. package/dist/usaspending.js +1664 -228
  178. package/dist/usaspending.js.map +1 -1
  179. package/dist/usitc.d.ts +142 -0
  180. package/dist/usitc.d.ts.map +1 -0
  181. package/dist/usitc.js +339 -0
  182. package/dist/usitc.js.map +1 -0
  183. package/package.json +24 -2
  184. package/src/attachments.ts +652 -0
  185. package/src/bls.ts +1943 -0
  186. package/src/cache.ts +73 -0
  187. package/src/census.ts +735 -0
  188. package/src/ckan.ts +495 -0
  189. package/src/clinicaltrials.ts +923 -0
  190. package/src/cms.ts +634 -0
  191. package/src/coerce.ts +47 -0
  192. package/src/datagov-catalog.ts +296 -0
  193. package/src/datagov.ts +907 -0
  194. package/src/datagovKey.ts +68 -0
  195. package/src/datasource.ts +721 -0
  196. package/src/disclosure.ts +61 -0
  197. package/src/ecfr.ts +231 -127
  198. package/src/echo.ts +496 -0
  199. package/src/edgar.ts +3014 -0
  200. package/src/errors.ts +303 -0
  201. package/src/fac.ts +529 -0
  202. package/src/far.ts +1007 -0
  203. package/src/fdic.ts +2052 -0
  204. package/src/federal-register.ts +706 -191
  205. package/src/fema.ts +541 -0
  206. package/src/fpds.ts +620 -0
  207. package/src/gao.ts +744 -0
  208. package/src/govinfo.ts +497 -0
  209. package/src/grants.ts +290 -155
  210. package/src/gsa-csv.ts +992 -0
  211. package/src/integrity.ts +928 -0
  212. package/src/meta.ts +292 -0
  213. package/src/nih.ts +375 -0
  214. package/src/nppes.ts +834 -0
  215. package/src/nsf.ts +706 -0
  216. package/src/nvd.ts +1124 -0
  217. package/src/ofac.ts +1166 -0
  218. package/src/pricing.ts +1075 -0
  219. package/src/sam-gov/client.ts +345 -63
  220. package/src/sam-gov/index.ts +5 -1
  221. package/src/sam-gov/types.ts +22 -0
  222. package/src/sba.ts +357 -0
  223. package/src/server.ts +4559 -327
  224. package/src/snapshot.ts +192 -0
  225. package/src/socrata.ts +532 -0
  226. package/src/treasury.ts +575 -0
  227. package/src/usaspending.ts +2680 -925
  228. package/src/usitc.ts +420 -0
package/dist/nvd.d.ts ADDED
@@ -0,0 +1,176 @@
1
+ /**
2
+ * @cliwant/mcp-sam-gov/nvd — the IT / CYBER-COMPLIANCE lane (keyless).
3
+ *
4
+ * Why this exists (ADR-0035)
5
+ * --------------------------
6
+ * The server has DEEP regulatory-Comply (FAR/eCFR/SBA) and DEEP entity vetting
7
+ * (EDGAR/FDIC/OFAC) but ZERO IT/cyber compliance — a whole GovCon segment
8
+ * (FedRAMP-authorized cloud, CMMC-obligated defense IT, SBOM/supply-chain) is
9
+ * unserved. This ONE keyless source opens that lane by JOINing two federal
10
+ * upstreams:
11
+ * - NIST NVD CVE API 2.0 (services.nvd.nist.gov) — the authoritative federal
12
+ * CVE/CVSS database.
13
+ * - CISA KEV catalog (www.cisa.gov) — the Known-Exploited-Vulnerabilities list
14
+ * carrying BINDING remediation due-dates under BOD 22-01 / its 2026 successor
15
+ * BOD 26-04.
16
+ * The B2G unlock is the JOIN: a GovCon IT vendor checking a product/component
17
+ * gets both "how severe is this CVE (CVSS)" AND "does CISA mandate remediation
18
+ * by a date" in one `cve_lookup` row.
19
+ *
20
+ * TWO tools on THIS one source:
21
+ * - cve_lookup — NVD CVE detail/search JOINED with KEV status.
22
+ * - cisa_kev_lookup — the KEV catalog filtered standalone.
23
+ *
24
+ * ★ NEVER-FAKE honesty (mirrors OFAC's never-fake-CLEAR doctrine):
25
+ * - P1 pagination derives from `totalResults` (the EXACT count), NEVER page
26
+ * length.
27
+ * - P2 a genuine `totalResults:0` / `found:false` is honest; ANY 404 / 5xx /
28
+ * timeout / network / off-host-redirect / 403 / 429 THROWS (never fake-empty).
29
+ * - P3 base scores / counts are null-never-0 (`num`); an absent/Rejected score
30
+ * is null, a real 0.0 CVSS is 0.
31
+ * - A KEV download failure NEVER fabricates "not on the mandatory-remediation
32
+ * list": cve_lookup degrades to `kev.listed:null` (never false); cisa_kev_lookup
33
+ * THROWS; and a `kevOnly:true` filter during a KEV outage THROWS (M1).
34
+ *
35
+ * The module writes ZERO fetch/coercion/error/meta code — it REUSES `getJson`
36
+ * (redirect:"error"), `throughGate`, `driftError`, `num`/`str` (null-never-0),
37
+ * `withMeta`/`buildMeta`, and MIRRORS the OFAC catalog-cache + the BLS
38
+ * optional-key/tier-disclosure seam.
39
+ *
40
+ * ★ SSRF (policy①): both hosts are compile-time CONSTANTS; NO caller value
41
+ * touches host/path. NVD caller inputs are QUERY params only (validated then
42
+ * `URLSearchParams`-encoded); KEV takes no params (filters run client-side over
43
+ * the cached catalog). A post-construction hostname/protocol assert +
44
+ * `redirect:"error"` lock both (fail closed on any off-host 3xx; its body never
45
+ * read).
46
+ *
47
+ * ★ OPTIONAL NVD_API_KEY (never leaked): read once via `resolvedNvdKey()` (the
48
+ * ONLY reader; mirrors `resolvedBlsKey`). When set, injected ONLY into the
49
+ * documented `apiKey` HTTP header and NOWHERE else (never the URL, label,
50
+ * `_meta`, or a log), and it shortens the self-throttle interval. Only the MODE
51
+ * is ever disclosed.
52
+ */
53
+ import { num } from "./coerce.js";
54
+ import { type MetaBundle } from "./meta.js";
55
+ export { num };
56
+ /** Exact-CVE id shape (client-side; a malformed cveId 404s upstream). */
57
+ export declare const CVE_ID_RE: RegExp;
58
+ /** The ONLY reader of the key value (mirror `resolvedBlsKey`). Trimmed; empty ⇒
59
+ * keyless. Every other helper exposes only the MODE. */
60
+ export declare function resolvedNvdKey(): string;
61
+ /** true when no NVD_API_KEY is configured (keyless). Drives mode + interval. */
62
+ export declare function usingNvdKey(): boolean;
63
+ /**
64
+ * ★ M3 — the load-bearing not-in-KEV ≠ safe caveat (VERBATIM shared constant,
65
+ * mirror `OFAC_NOT_DETERMINATION_NOTE`). Rides on cve_lookup's `kev.listed:false`
66
+ * AND on cisa_kev_lookup's `_meta.notes`. KEV is a CISA-curated subset of
67
+ * CONFIRMED in-the-wild exploitation; absence is NOT a safety clearance.
68
+ */
69
+ export declare const KEV_NOT_SAFE_NOTE = "NOT in the CISA KEV catalog does NOT mean not-exploited, not-vulnerable, or safe \u2014 KEV is a CURATED SUBSET of CVEs with CISA-confirmed in-the-wild exploitation. Absence means CISA has not catalogued it, NOT that the component is unexploited or not vulnerable. Assess severity from the CVSS/CVE detail and your own analysis.";
70
+ export type CvssMetric = {
71
+ version: string | null;
72
+ source: string | null;
73
+ type: "Primary" | "Secondary" | string | null;
74
+ baseScore: number | null;
75
+ baseSeverity: string | null;
76
+ vectorString: string | null;
77
+ exploitabilityScore: number | null;
78
+ impactScore: number | null;
79
+ };
80
+ export type PrimaryCvss = {
81
+ version: string | null;
82
+ baseScore: number | null;
83
+ baseSeverity: string | null;
84
+ type: "Primary" | "Secondary" | string | null;
85
+ };
86
+ /**
87
+ * Extract EVERY `metrics` key matching `^cvssMetric` (V2/V30/V31/V40) into one
88
+ * `cvssMetrics[]` element per entry. `ssvcV203` and any non-cvssMetric key are
89
+ * IGNORED (never a "score"). `baseScore`/`baseSeverity` read from `cvssData`,
90
+ * with the V2 metric-level `baseSeverity` as the load-bearing fallback. Base
91
+ * score is null-never-0 (`num`).
92
+ */
93
+ export declare function extractCvssMetrics(metrics: unknown): CvssMetric[];
94
+ /**
95
+ * ★ M4 — `primaryCvss` is version-highest but type-PREFERENTIAL not
96
+ * type-EXCLUSIVE: pick the highest CVSS version overall, preferring Primary and
97
+ * FALLING BACK to the highest-version Secondary when no Primary exists. INCLUDES
98
+ * the `type`. Null ONLY when `cvssMetrics[]` is genuinely empty (Rejected/Awaiting).
99
+ */
100
+ export declare function pickPrimaryCvss(metrics: CvssMetric[]): PrimaryCvss | null;
101
+ export type KevEntry = {
102
+ cveID: string | null;
103
+ vendorProject: string | null;
104
+ product: string | null;
105
+ vulnerabilityName: string | null;
106
+ dateAdded: string | null;
107
+ shortDescription: string | null;
108
+ requiredAction: string | null;
109
+ dueDate: string | null;
110
+ /** Surfaced VERBATIM (Known/Unknown) — never defaulted. */
111
+ knownRansomwareCampaignUse: string | null;
112
+ notes: string | null;
113
+ cwes: string[];
114
+ };
115
+ export type LoadedKev = {
116
+ entries: KevEntry[];
117
+ byCve: Map<string, KevEntry>;
118
+ catalogVersion: string | null;
119
+ dateReleased: string | null;
120
+ count: number;
121
+ fetchedAt: number;
122
+ };
123
+ /**
124
+ * Parse + validate the KEV catalog body → a loaded snapshot. Shape-guard FIRST
125
+ * (a non-object / missing `vulnerabilities` → driftError, never a fake empty),
126
+ * then the plausibility FLOOR + the `count === vulnerabilities.length` DRIFT
127
+ * guard. A truncated/drifted catalog THROWS (never read as "nothing exploited").
128
+ */
129
+ export declare function parseKevCatalog(body: unknown, label: string): LoadedKev;
130
+ /** TEST-ONLY: drop the KEV cache so a fault case can re-point the fetch mock. */
131
+ export declare function _resetNvdCacheForTests(): void;
132
+ export type CveLookupArgs = {
133
+ cveId?: string;
134
+ keyword?: string;
135
+ cpeName?: string;
136
+ cvssV3Severity?: string;
137
+ pubStartDate?: string;
138
+ pubEndDate?: string;
139
+ lastModStartDate?: string;
140
+ lastModEndDate?: string;
141
+ kevOnly?: boolean;
142
+ resultsPerPage?: number;
143
+ startIndex?: number;
144
+ };
145
+ /**
146
+ * NVD CVE exact-lookup (`cveId`) OR search (keyword/cpeName/cvssV3Severity/
147
+ * date-range), each row ANNOTATED with its CISA KEV status. Honest `_meta`:
148
+ * totalAvailable = totalResults (exact), within-window pagination, tierNote, KEV
149
+ * freshness, the not-in-KEV caveat, span-clamp/rejected notes as applicable.
150
+ *
151
+ * ★ M1 — when `kevOnly` is truthy AND the KEV catalog failed to load, THROW the
152
+ * classified KEV error (a KEV-membership filter is unanswerable without a loaded
153
+ * catalog; a silently-empty result would be a fake "none on the mandatory list").
154
+ */
155
+ export declare function cveLookup(args: CveLookupArgs): Promise<MetaBundle>;
156
+ export type CisaKevLookupArgs = {
157
+ cveId?: string;
158
+ vendorProject?: string;
159
+ product?: string;
160
+ ransomwareOnly?: boolean;
161
+ addedSince?: string;
162
+ dueBefore?: string;
163
+ limit?: number;
164
+ offset?: number;
165
+ };
166
+ /**
167
+ * Filter the cached CISA KEV catalog standalone (by cveId / vendorProject /
168
+ * product / ransomwareOnly / addedSince / dueBefore, paginated). THROWS on a
169
+ * catalog outage / floor-fail / drift (never a fake-empty catalog).
170
+ *
171
+ * ★ M3 — the not-in-KEV ≠ safe caveat (KEV_NOT_SAFE_NOTE) rides in _meta.notes on
172
+ * EVERY response (especially a `cveId` miss / zero-match): absence is NOT a safety
173
+ * clearance.
174
+ */
175
+ export declare function cisaKevLookup(args: CisaKevLookupArgs): Promise<MetaBundle>;
176
+ //# sourceMappingURL=nvd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nvd.d.ts","sourceRoot":"","sources":["../src/nvd.ts"],"names":[],"mappings":"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"}