@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/far.d.ts ADDED
@@ -0,0 +1,170 @@
1
+ /**
2
+ * FAR / DFARS clause lookup (keyless) — the authoritative clause text + its
3
+ * prescription, from the eCFR **versioner full** endpoint.
4
+ *
5
+ * Why this exists (and why NOT `ecfr_search`)
6
+ * -------------------------------------------
7
+ * The shipped full-text `ecfr_search` mis-ranks EXACT clause numbers: a bare
8
+ * `52.212-4` query returns GSAM **552**.212-4 above the real FAR 52.212-4
9
+ * (doc-09 §1.2). A proposal writer needs the AUTHORITATIVE clause text AND the
10
+ * rule that says WHEN it applies ("As prescribed in …") — the exact pair. The
11
+ * clean path is the versioner full endpoint, which `src/ecfr.ts` does not call:
12
+ *
13
+ * GET /api/versioner/v1/full/{date}/title-48.xml?section={clause}
14
+ *
15
+ * keyless, HTTP 200 (~40 KB XML) for a real clause, clean HTTP 404
16
+ * `{"error":"No matching content found."}` for an absent one. Title 48 = FAR.
17
+ * `{date}` defaults to Title 48 `up_to_date_as_of` (from listTitles, cached).
18
+ *
19
+ * TRUTHFULNESS invariants (a reviewer WILL try to break these):
20
+ * - A DOWN/failing eCFR service must NEVER read as "clause not found": only a
21
+ * genuine HTTP 404 maps to `not_found`; any other fetch error propagates
22
+ * with fetchWithRetry's classification (retryable 5xx/network/etc.).
23
+ * - A genuinely-absent clause is `not_found` (retryable:false), NEVER a fake
24
+ * empty clause. Clause text is never silently dropped or fabricated.
25
+ * - A prescription-section fetch failure is NON-FATAL: `prescription:null` +
26
+ * disclosed in `_meta.notes`; it never crashes the clause result.
27
+ * - `farOverhaulRisk` carries NO fabricated FAR-case numbers/dates — only the
28
+ * fixed structural caveat + the real authoritative-list / deviation URLs.
29
+ *
30
+ * Self-contained: imports `getText` from ./datasource.js (the shared XML/text
31
+ * fetch port, ADR-0013) + ToolErrorCarrier from ./errors.js, memoize from
32
+ * ./cache.js, listTitles from ./ecfr.js, and withMeta from ./meta.js — the
33
+ * versioner XML parse lives here (ecfr.ts's stripHtml is private and stays
34
+ * private).
35
+ */
36
+ /** The regulation family a clause number belongs to (from its prefix). */
37
+ type Regulation = "FAR" | "DFARS" | "GSAM" | "other";
38
+ /**
39
+ * The RFO (Revolutionary FAR Overhaul) currency caveat — an ALWAYS-PRESENT
40
+ * structural flag, NOT a per-clause claim. eCFR reflects the CODIFIED FAR only;
41
+ * the RFO is replacing FAR parts via agency class deviations that may not appear
42
+ * in eCFR, so a clause can be current in the CFR yet operationally superseded.
43
+ *
44
+ * This is the HONEST design (doc-09 §3 baked unverified FAR-case numbers/dates
45
+ * as [가설] — those go stale/wrong). We ship the never-stale-wrong version: no
46
+ * fabricated specifics, only the fixed caveat + the real authoritative-list and
47
+ * deviation URLs (all VERIFIED HTTP 200, 2026-07-04). `appliesTo` scopes the
48
+ * caveat to the clause's own regulation family.
49
+ */
50
+ declare function buildFarOverhaulRisk(regulation: Regulation): {
51
+ note: string;
52
+ authoritativeList: string;
53
+ deviationSources: string[];
54
+ appliesTo: Regulation;
55
+ };
56
+ export declare function farClauseLookup(args: {
57
+ clauseNumber: string;
58
+ includePrescription?: boolean;
59
+ asOfDate?: string;
60
+ }): Promise<import("./meta.js").MetaBundle<{
61
+ clauseNumber: string;
62
+ kind: "clause" | "provision";
63
+ regulation: Regulation;
64
+ heading: string | null;
65
+ revision: string | null;
66
+ text: string;
67
+ prescribedIn: string | null;
68
+ prescription: {
69
+ section: string;
70
+ heading: string | null;
71
+ text: string;
72
+ } | null;
73
+ ecfrUrl: string;
74
+ asOfDate: string;
75
+ titleUpToDateAsOf: string | null;
76
+ titleLatestAmendedOn: string | null;
77
+ isCurrent: boolean;
78
+ farOverhaulRisk: {
79
+ note: string;
80
+ authoritativeList: string;
81
+ deviationSources: string[];
82
+ appliesTo: Regulation;
83
+ };
84
+ }>>;
85
+ /** One resolved matrix row: farClauseLookup's honest fields + a gate flag. */
86
+ type MatrixRow = {
87
+ clauseNumber: string;
88
+ kind: "clause" | "provision";
89
+ regulation: Regulation;
90
+ heading: string | null;
91
+ revision: string | null;
92
+ prescribedIn: string | null;
93
+ prescription: {
94
+ section: string;
95
+ heading: string | null;
96
+ text: string;
97
+ } | null;
98
+ text: string;
99
+ ecfrUrl: string;
100
+ farOverhaulRisk: ReturnType<typeof buildFarOverhaulRisk>;
101
+ /** The eligibility-gate label (from GATE_MAP), or null when not a mapped gate. */
102
+ gate: string | null;
103
+ };
104
+ /** A clause that did not resolve, with a disclosed reason. */
105
+ type UnresolvedClause = {
106
+ clauseNumber: string;
107
+ reason: string;
108
+ };
109
+ export declare function farComplianceMatrix(args: {
110
+ clauses: string[];
111
+ asOfDate?: string;
112
+ includePrescription?: boolean;
113
+ flagGates?: boolean;
114
+ }): Promise<import("./meta.js").MetaBundle<{
115
+ asOfDate: string;
116
+ rows: MatrixRow[];
117
+ unresolved: UnresolvedClause[];
118
+ errored: UnresolvedClause[];
119
+ summary: {
120
+ total: number;
121
+ resolved: number;
122
+ unresolved: number;
123
+ errored: number;
124
+ far: number;
125
+ dfars: number;
126
+ gsam: number;
127
+ other: number;
128
+ gates: number;
129
+ };
130
+ }>>;
131
+ /** Which regulation family a far_search scope targets. */
132
+ type FarSearchScope = "far" | "dfars" | "both";
133
+ /** One far_search result row. */
134
+ type FarSearchRow = {
135
+ regulation: Regulation;
136
+ type: string;
137
+ /** The FAR/DFARS part as a number (null if unparseable), for partsOnly. */
138
+ part: number | null;
139
+ section: string;
140
+ headingPath: string;
141
+ excerpt: string;
142
+ score: number;
143
+ ecfrUrl: string;
144
+ effectiveOn: string;
145
+ endsOn: string | null;
146
+ /** endsOn==null ⇒ the CURRENT (in-force) version; false ⇒ a kept historical. */
147
+ isCurrent: boolean;
148
+ };
149
+ export declare function farSearch(args: {
150
+ query: string;
151
+ scope?: FarSearchScope;
152
+ dedupeVersions?: boolean;
153
+ partsOnly?: number[];
154
+ perPage?: number;
155
+ }): Promise<import("./meta.js").MetaBundle<{
156
+ query: string;
157
+ scope: FarSearchScope;
158
+ rows: FarSearchRow[];
159
+ returned: number;
160
+ distinctSections: number;
161
+ titleUpToDateAsOf: string | null;
162
+ farOverhaulRisk: {
163
+ note: string;
164
+ authoritativeList: string;
165
+ deviationSources: string[];
166
+ appliesTo: Regulation;
167
+ };
168
+ }>>;
169
+ export {};
170
+ //# sourceMappingURL=far.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"far.d.ts","sourceRoot":"","sources":["../src/far.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAUH,0EAA0E;AAC1E,KAAK,UAAU,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAiFrD;;;;;;;;;;;GAWG;AACH,iBAAS,oBAAoB,CAAC,UAAU,EAAE,UAAU;;;;;EAYnD;AAkED,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;;;;;;;;;iBAmIgB,MAAM;iBAAW,MAAM,GAAG,IAAI;cAAQ,MAAM;;;;;;;;;;;;;IAsF5D;AA8CD,8EAA8E;AAC9E,KAAK,SAAS,GAAG;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EACR;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GACzD,IAAI,CAAC;IACT,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;IACzD,kFAAkF;IAClF,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,CAAC;AAEF,8DAA8D;AAC9D,KAAK,gBAAgB,GAAG;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AA6BjE,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;;;;;;;;;;;;;;;;IAmLA;AA4BD,0DAA0D;AAC1D,KAAK,cAAc,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AAQ/C,iCAAiC;AACjC,KAAK,YAAY,GAAG;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,gFAAgF;IAChF,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAmFF,wBAAsB,SAAS,CAAC,IAAI,EAAE;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;;;;;;;;;;;;;IAsJA"}