@cliwant/mcp-sam-gov 1.5.0 → 1.6.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 (84) hide show
  1. package/LICENSE +21 -21
  2. package/README.ja.md +240 -231
  3. package/README.ko.md +240 -231
  4. package/README.md +725 -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 +44 -2
  14. package/dist/server.js.map +1 -1
  15. package/package.json +111 -111
  16. package/src/attachments.ts +652 -652
  17. package/src/bea.ts +372 -372
  18. package/src/bls.ts +1943 -1943
  19. package/src/cache.ts +73 -73
  20. package/src/cbp-border.ts +177 -177
  21. package/src/census-economic.ts +431 -431
  22. package/src/census.ts +735 -735
  23. package/src/ckan.ts +495 -495
  24. package/src/clinicaltrials.ts +923 -923
  25. package/src/cms-facility.ts +379 -379
  26. package/src/cms-hospital.ts +344 -344
  27. package/src/cms-supplier.ts +527 -527
  28. package/src/cms-utilization.ts +389 -389
  29. package/src/cms.ts +634 -634
  30. package/src/coerce.ts +47 -47
  31. package/src/courtlistener.ts +465 -465
  32. package/src/cpsc.ts +333 -333
  33. package/src/datagov-catalog.ts +312 -312
  34. package/src/datagov.ts +907 -907
  35. package/src/datagovKey.ts +68 -68
  36. package/src/datasource.ts +721 -721
  37. package/src/disclosure.ts +61 -61
  38. package/src/dol.ts +515 -515
  39. package/src/ecfr.ts +248 -248
  40. package/src/echo.ts +496 -496
  41. package/src/edgar.ts +3046 -3046
  42. package/src/epa-envirofacts.ts +358 -358
  43. package/src/errors.ts +324 -314
  44. package/src/fac.ts +529 -529
  45. package/src/far.ts +1009 -1009
  46. package/src/fdic.ts +2052 -2052
  47. package/src/federal-register.ts +725 -725
  48. package/src/feedback.ts +160 -0
  49. package/src/fema.ts +680 -680
  50. package/src/fpds.ts +620 -620
  51. package/src/fred.ts +464 -464
  52. package/src/gao.ts +744 -744
  53. package/src/gov-domains.ts +237 -237
  54. package/src/govinfo.ts +497 -497
  55. package/src/grants.ts +290 -290
  56. package/src/gsa-csv.ts +992 -992
  57. package/src/gsa-perdiem.ts +361 -361
  58. package/src/integrity.ts +928 -928
  59. package/src/keys.ts +268 -268
  60. package/src/lda.ts +385 -385
  61. package/src/meta.ts +292 -292
  62. package/src/nhtsa.ts +352 -352
  63. package/src/nih.ts +375 -375
  64. package/src/nist-controls.ts +219 -219
  65. package/src/nonprofit.ts +460 -460
  66. package/src/nppes.ts +834 -834
  67. package/src/nsf.ts +706 -706
  68. package/src/nvd.ts +1124 -1124
  69. package/src/nws-weather.ts +167 -167
  70. package/src/ofac.ts +1166 -1166
  71. package/src/openfda-device.ts +356 -356
  72. package/src/openfda-drugsfda.ts +313 -313
  73. package/src/openfda.ts +518 -518
  74. package/src/pricing.ts +1075 -1075
  75. package/src/sam-gov/client.ts +774 -774
  76. package/src/sam-gov/index.ts +32 -32
  77. package/src/sam-gov/types.ts +152 -152
  78. package/src/sba.ts +357 -357
  79. package/src/server.ts +6688 -6639
  80. package/src/snapshot.ts +223 -223
  81. package/src/socrata.ts +532 -532
  82. package/src/treasury.ts +582 -582
  83. package/src/usaspending.ts +2852 -2852
  84. 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
+ };