@cliwant/mcp-sam-gov 1.5.0 → 1.7.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 (89) hide show
  1. package/LICENSE +21 -21
  2. package/README.ja.md +248 -231
  3. package/README.ko.md +248 -231
  4. package/README.md +733 -714
  5. package/dist/errors.d.ts +10 -0
  6. package/dist/errors.d.ts.map +1 -1
  7. package/dist/errors.js.map +1 -1
  8. package/dist/feedback.d.ts +64 -0
  9. package/dist/feedback.d.ts.map +1 -0
  10. package/dist/feedback.js +131 -0
  11. package/dist/feedback.js.map +1 -0
  12. package/dist/server.d.ts.map +1 -1
  13. package/dist/server.js +48 -2
  14. package/dist/server.js.map +1 -1
  15. package/dist/update-check.d.ts +38 -0
  16. package/dist/update-check.d.ts.map +1 -0
  17. package/dist/update-check.js +85 -0
  18. package/dist/update-check.js.map +1 -0
  19. package/package.json +111 -111
  20. package/src/attachments.ts +652 -652
  21. package/src/bea.ts +372 -372
  22. package/src/bls.ts +1943 -1943
  23. package/src/cache.ts +73 -73
  24. package/src/cbp-border.ts +177 -177
  25. package/src/census-economic.ts +431 -431
  26. package/src/census.ts +735 -735
  27. package/src/ckan.ts +495 -495
  28. package/src/clinicaltrials.ts +923 -923
  29. package/src/cms-facility.ts +379 -379
  30. package/src/cms-hospital.ts +344 -344
  31. package/src/cms-supplier.ts +527 -527
  32. package/src/cms-utilization.ts +389 -389
  33. package/src/cms.ts +634 -634
  34. package/src/coerce.ts +47 -47
  35. package/src/courtlistener.ts +465 -465
  36. package/src/cpsc.ts +333 -333
  37. package/src/datagov-catalog.ts +312 -312
  38. package/src/datagov.ts +907 -907
  39. package/src/datagovKey.ts +68 -68
  40. package/src/datasource.ts +721 -721
  41. package/src/disclosure.ts +61 -61
  42. package/src/dol.ts +515 -515
  43. package/src/ecfr.ts +248 -248
  44. package/src/echo.ts +496 -496
  45. package/src/edgar.ts +3046 -3046
  46. package/src/epa-envirofacts.ts +358 -358
  47. package/src/errors.ts +324 -314
  48. package/src/fac.ts +529 -529
  49. package/src/far.ts +1009 -1009
  50. package/src/fdic.ts +2052 -2052
  51. package/src/federal-register.ts +725 -725
  52. package/src/feedback.ts +160 -0
  53. package/src/fema.ts +680 -680
  54. package/src/fpds.ts +620 -620
  55. package/src/fred.ts +464 -464
  56. package/src/gao.ts +744 -744
  57. package/src/gov-domains.ts +237 -237
  58. package/src/govinfo.ts +497 -497
  59. package/src/grants.ts +290 -290
  60. package/src/gsa-csv.ts +992 -992
  61. package/src/gsa-perdiem.ts +361 -361
  62. package/src/integrity.ts +928 -928
  63. package/src/keys.ts +268 -268
  64. package/src/lda.ts +385 -385
  65. package/src/meta.ts +292 -292
  66. package/src/nhtsa.ts +352 -352
  67. package/src/nih.ts +375 -375
  68. package/src/nist-controls.ts +219 -219
  69. package/src/nonprofit.ts +460 -460
  70. package/src/nppes.ts +834 -834
  71. package/src/nsf.ts +706 -706
  72. package/src/nvd.ts +1124 -1124
  73. package/src/nws-weather.ts +167 -167
  74. package/src/ofac.ts +1166 -1166
  75. package/src/openfda-device.ts +356 -356
  76. package/src/openfda-drugsfda.ts +313 -313
  77. package/src/openfda.ts +518 -518
  78. package/src/pricing.ts +1075 -1075
  79. package/src/sam-gov/client.ts +774 -774
  80. package/src/sam-gov/index.ts +32 -32
  81. package/src/sam-gov/types.ts +152 -152
  82. package/src/sba.ts +357 -357
  83. package/src/server.ts +6692 -6639
  84. package/src/snapshot.ts +223 -223
  85. package/src/socrata.ts +532 -532
  86. package/src/treasury.ts +582 -582
  87. package/src/update-check.ts +88 -0
  88. package/src/usaspending.ts +2852 -2852
  89. package/src/usitc.ts +420 -420
@@ -1,32 +1,32 @@
1
- /**
2
- * Vendored copy of @cliwant/mcp-sam-gov/sam-gov.
3
- *
4
- * Why vendored: when `@cliwant/mcp-sam-gov` is installed via
5
- * `npm install -g github:owner/repo`, npm cannot resolve a nested
6
- * github dep on Windows reliably (it tries to cd into a non-existent
7
- * directory during the install transaction). Inlining the source
8
- * eliminates the nested-github-dep issue entirely and keeps install
9
- * a pure copy.
10
- *
11
- * When both packages are published to npm, this file can become a
12
- * one-line re-export of the upstream package without any consumer
13
- * changes (the public API surface is identical).
14
- *
15
- * Canonical home: https://github.com/cliwant/mcp-sam-gov
16
- */
17
- export {
18
- SamGovClient,
19
- daysUntilResponse,
20
- applyResponseDeadlineWindow,
21
- } from "./client.js";
22
- export type {
23
- SamOpportunity,
24
- SamSearchFilters,
25
- SamSearchResult,
26
- SamProcurementType,
27
- SamSetAside,
28
- SamLocation,
29
- SamPointOfContact,
30
- EntitySearchResult,
31
- SamGovClientOptions,
32
- } from "./types.js";
1
+ /**
2
+ * Vendored copy of @cliwant/mcp-sam-gov/sam-gov.
3
+ *
4
+ * Why vendored: when `@cliwant/mcp-sam-gov` is installed via
5
+ * `npm install -g github:owner/repo`, npm cannot resolve a nested
6
+ * github dep on Windows reliably (it tries to cd into a non-existent
7
+ * directory during the install transaction). Inlining the source
8
+ * eliminates the nested-github-dep issue entirely and keeps install
9
+ * a pure copy.
10
+ *
11
+ * When both packages are published to npm, this file can become a
12
+ * one-line re-export of the upstream package without any consumer
13
+ * changes (the public API surface is identical).
14
+ *
15
+ * Canonical home: https://github.com/cliwant/mcp-sam-gov
16
+ */
17
+ export {
18
+ SamGovClient,
19
+ daysUntilResponse,
20
+ applyResponseDeadlineWindow,
21
+ } from "./client.js";
22
+ export type {
23
+ SamOpportunity,
24
+ SamSearchFilters,
25
+ SamSearchResult,
26
+ SamProcurementType,
27
+ SamSetAside,
28
+ SamLocation,
29
+ SamPointOfContact,
30
+ EntitySearchResult,
31
+ SamGovClientOptions,
32
+ } from "./types.js";
@@ -1,152 +1,152 @@
1
- /**
2
- * Core types for the @cliwant/mcp-sam-gov/sam-gov client. Mirrors the shapes
3
- * returned by SAM.gov's two endpoint layers (authenticated v2 and
4
- * the keyless public HAL endpoints) under one normalized contract.
5
- */
6
-
7
- export type SamProcurementType =
8
- | "u" // Justification
9
- | "p" // Pre-solicitation
10
- | "a" // Award Notice
11
- | "r" // Sources Sought
12
- | "s" // Special Notice
13
- | "o" // Solicitation
14
- | "g" // Sale of Surplus
15
- | "k" // Combined Synopsis
16
- | "i"; // Intent to Bundle
17
-
18
- export type SamSetAside =
19
- | "SBA"
20
- | "SBP"
21
- | "8A"
22
- | "8AN"
23
- | "HZC"
24
- | "HZS"
25
- | "SDVOSBC"
26
- | "SDVOSBS"
27
- | "WOSB"
28
- | "WOSBSS"
29
- | "EDWOSB"
30
- | "EDWOSBSS"
31
- | "LAS"
32
- | "IEE"
33
- | "ISBEE"
34
- | "BICiv"
35
- | "VSA"
36
- | "VSS";
37
-
38
- export type SamLocation = {
39
- streetAddress?: string;
40
- streetAddress2?: string;
41
- city?: { code?: string; name?: string };
42
- state?: { code?: string; name?: string };
43
- zip?: string;
44
- country?: { code?: string; name?: string };
45
- };
46
-
47
- export type SamPointOfContact = {
48
- type?: string;
49
- title?: string;
50
- fullName?: string;
51
- email?: string;
52
- phone?: string;
53
- fax?: string | null;
54
- };
55
-
56
- export type SamOpportunity = {
57
- noticeId: string;
58
- title: string;
59
- solicitationNumber?: string;
60
- fullParentPathName?: string;
61
- fullParentPathCode?: string;
62
- postedDate?: string;
63
- type?: string;
64
- baseType?: string;
65
- archiveType?: string;
66
- archiveDate?: string | null;
67
- typeOfSetAsideDescription?: string | null;
68
- typeOfSetAside?: string | null;
69
- responseDeadLine?: string | null;
70
- naicsCode?: string | null;
71
- classificationCode?: string | null;
72
- active?: "Yes" | "No";
73
- pointOfContact?: SamPointOfContact[] | null;
74
- description?: string;
75
- placeOfPerformance?: SamLocation | null;
76
- uiLink?: string;
77
- resourceLinks?: string[] | null;
78
- /**
79
- * Which enrichment sub-fetches DEGRADED on an outage (subset of
80
- * ["attachments", "organization"]). Set ONLY when a sub-fetch's HTTP call
81
- * failed (non-200 / network / timeout) — the corresponding field
82
- * (`resourceLinks` / `fullParentPathName`) is then empty but UNKNOWN, NOT
83
- * confirmed-absent. Additive + optional: a healthy notice (incl. a genuine
84
- * 200-empty attachment list or empty org path) NEVER sets it. Tool wrappers
85
- * read it to emit an honest `_meta.degraded` + a disclosing note instead of
86
- * a silent "no attachments"/"no organization" lie.
87
- */
88
- enrichmentDegraded?: string[];
89
- };
90
-
91
- export type SamSearchFilters = {
92
- query?: string;
93
- /** MM/DD/YYYY (auth endpoint convention). */
94
- postedFrom?: string;
95
- postedTo?: string;
96
- ptype?: SamProcurementType[];
97
- ncode?: string;
98
- setAside?: SamSetAside[];
99
- organizationName?: string;
100
- state?: string;
101
- zip?: string;
102
- responseDeadlineFrom?: string;
103
- responseDeadlineTo?: string;
104
- active?: boolean;
105
- limit?: number;
106
- offset?: number;
107
- };
108
-
109
- export type SamSearchResult = {
110
- totalRecords: number;
111
- limit: number;
112
- offset: number;
113
- opportunitiesData: SamOpportunity[];
114
- /**
115
- * Set ONLY when the search could not run at all (every access tier threw:
116
- * HAL down / network / 5xx-after-retry). It disambiguates a TOTAL OUTAGE
117
- * from a GENUINE zero — both otherwise present as
118
- * `{ totalRecords: 0, opportunitiesData: [] }`. Additive + optional:
119
- * existing readers that ignore it are unaffected; a healthy search (incl.
120
- * a real 0 or an empty page past the end) NEVER sets it. Tool wrappers use
121
- * it to emit an honest `_meta` (`complete:false`, `totalAvailable:null`,
122
- * a disclosing note) instead of the silent "0 notices, complete" lie.
123
- */
124
- degraded?: { reason: string };
125
- };
126
-
127
- export type EntitySearchResult = {
128
- entities: Array<{
129
- ueiSAM: string;
130
- legalBusinessName: string;
131
- cageCode?: string;
132
- physicalAddress?: { city?: string; stateOrProvinceCode?: string };
133
- naics?: string[];
134
- setAsides?: string[];
135
- activeRegistration?: boolean;
136
- }>;
137
- totalRecords: number;
138
- };
139
-
140
- export type SamGovClientOptions = {
141
- /** SAM.gov public API key. Optional — keyless public endpoints
142
- * cover ~95% of opportunity discovery without one. Set when you
143
- * need the higher rate limit + the full historical archive. */
144
- apiKey?: string;
145
- /** Override the User-Agent the client sends to SAM.gov. */
146
- userAgent?: string;
147
- /** Override the underlying fetch (e.g. with `node-fetch` polyfill or
148
- * a wrapper for caching/retries). Defaults to global `fetch`. */
149
- fetch?: typeof fetch;
150
- /** Optional logger (defaults to a noop). */
151
- logger?: { warn?: (msg: string, err?: unknown) => void };
152
- };
1
+ /**
2
+ * Core types for the @cliwant/mcp-sam-gov/sam-gov client. Mirrors the shapes
3
+ * returned by SAM.gov's two endpoint layers (authenticated v2 and
4
+ * the keyless public HAL endpoints) under one normalized contract.
5
+ */
6
+
7
+ export type SamProcurementType =
8
+ | "u" // Justification
9
+ | "p" // Pre-solicitation
10
+ | "a" // Award Notice
11
+ | "r" // Sources Sought
12
+ | "s" // Special Notice
13
+ | "o" // Solicitation
14
+ | "g" // Sale of Surplus
15
+ | "k" // Combined Synopsis
16
+ | "i"; // Intent to Bundle
17
+
18
+ export type SamSetAside =
19
+ | "SBA"
20
+ | "SBP"
21
+ | "8A"
22
+ | "8AN"
23
+ | "HZC"
24
+ | "HZS"
25
+ | "SDVOSBC"
26
+ | "SDVOSBS"
27
+ | "WOSB"
28
+ | "WOSBSS"
29
+ | "EDWOSB"
30
+ | "EDWOSBSS"
31
+ | "LAS"
32
+ | "IEE"
33
+ | "ISBEE"
34
+ | "BICiv"
35
+ | "VSA"
36
+ | "VSS";
37
+
38
+ export type SamLocation = {
39
+ streetAddress?: string;
40
+ streetAddress2?: string;
41
+ city?: { code?: string; name?: string };
42
+ state?: { code?: string; name?: string };
43
+ zip?: string;
44
+ country?: { code?: string; name?: string };
45
+ };
46
+
47
+ export type SamPointOfContact = {
48
+ type?: string;
49
+ title?: string;
50
+ fullName?: string;
51
+ email?: string;
52
+ phone?: string;
53
+ fax?: string | null;
54
+ };
55
+
56
+ export type SamOpportunity = {
57
+ noticeId: string;
58
+ title: string;
59
+ solicitationNumber?: string;
60
+ fullParentPathName?: string;
61
+ fullParentPathCode?: string;
62
+ postedDate?: string;
63
+ type?: string;
64
+ baseType?: string;
65
+ archiveType?: string;
66
+ archiveDate?: string | null;
67
+ typeOfSetAsideDescription?: string | null;
68
+ typeOfSetAside?: string | null;
69
+ responseDeadLine?: string | null;
70
+ naicsCode?: string | null;
71
+ classificationCode?: string | null;
72
+ active?: "Yes" | "No";
73
+ pointOfContact?: SamPointOfContact[] | null;
74
+ description?: string;
75
+ placeOfPerformance?: SamLocation | null;
76
+ uiLink?: string;
77
+ resourceLinks?: string[] | null;
78
+ /**
79
+ * Which enrichment sub-fetches DEGRADED on an outage (subset of
80
+ * ["attachments", "organization"]). Set ONLY when a sub-fetch's HTTP call
81
+ * failed (non-200 / network / timeout) — the corresponding field
82
+ * (`resourceLinks` / `fullParentPathName`) is then empty but UNKNOWN, NOT
83
+ * confirmed-absent. Additive + optional: a healthy notice (incl. a genuine
84
+ * 200-empty attachment list or empty org path) NEVER sets it. Tool wrappers
85
+ * read it to emit an honest `_meta.degraded` + a disclosing note instead of
86
+ * a silent "no attachments"/"no organization" lie.
87
+ */
88
+ enrichmentDegraded?: string[];
89
+ };
90
+
91
+ export type SamSearchFilters = {
92
+ query?: string;
93
+ /** MM/DD/YYYY (auth endpoint convention). */
94
+ postedFrom?: string;
95
+ postedTo?: string;
96
+ ptype?: SamProcurementType[];
97
+ ncode?: string;
98
+ setAside?: SamSetAside[];
99
+ organizationName?: string;
100
+ state?: string;
101
+ zip?: string;
102
+ responseDeadlineFrom?: string;
103
+ responseDeadlineTo?: string;
104
+ active?: boolean;
105
+ limit?: number;
106
+ offset?: number;
107
+ };
108
+
109
+ export type SamSearchResult = {
110
+ totalRecords: number;
111
+ limit: number;
112
+ offset: number;
113
+ opportunitiesData: SamOpportunity[];
114
+ /**
115
+ * Set ONLY when the search could not run at all (every access tier threw:
116
+ * HAL down / network / 5xx-after-retry). It disambiguates a TOTAL OUTAGE
117
+ * from a GENUINE zero — both otherwise present as
118
+ * `{ totalRecords: 0, opportunitiesData: [] }`. Additive + optional:
119
+ * existing readers that ignore it are unaffected; a healthy search (incl.
120
+ * a real 0 or an empty page past the end) NEVER sets it. Tool wrappers use
121
+ * it to emit an honest `_meta` (`complete:false`, `totalAvailable:null`,
122
+ * a disclosing note) instead of the silent "0 notices, complete" lie.
123
+ */
124
+ degraded?: { reason: string };
125
+ };
126
+
127
+ export type EntitySearchResult = {
128
+ entities: Array<{
129
+ ueiSAM: string;
130
+ legalBusinessName: string;
131
+ cageCode?: string;
132
+ physicalAddress?: { city?: string; stateOrProvinceCode?: string };
133
+ naics?: string[];
134
+ setAsides?: string[];
135
+ activeRegistration?: boolean;
136
+ }>;
137
+ totalRecords: number;
138
+ };
139
+
140
+ export type SamGovClientOptions = {
141
+ /** SAM.gov public API key. Optional — keyless public endpoints
142
+ * cover ~95% of opportunity discovery without one. Set when you
143
+ * need the higher rate limit + the full historical archive. */
144
+ apiKey?: string;
145
+ /** Override the User-Agent the client sends to SAM.gov. */
146
+ userAgent?: string;
147
+ /** Override the underlying fetch (e.g. with `node-fetch` polyfill or
148
+ * a wrapper for caching/retries). Defaults to global `fetch`. */
149
+ fetch?: typeof fetch;
150
+ /** Optional logger (defaults to a noop). */
151
+ logger?: { warn?: (msg: string, err?: unknown) => void };
152
+ };