@cliwant/mcp-sam-gov 1.15.0 → 1.16.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.
- package/README.ja.md +2 -2
- package/README.ko.md +2 -2
- package/README.md +4 -4
- package/dist/bonfire.d.ts +1 -1
- package/dist/bonfire.d.ts.map +1 -1
- package/dist/bonfire.js +7 -9
- package/dist/bonfire.js.map +1 -1
- package/dist/ckan.d.ts +6 -4
- package/dist/ckan.d.ts.map +1 -1
- package/dist/ckan.js +17 -4
- package/dist/ckan.js.map +1 -1
- package/dist/data-map.d.ts.map +1 -1
- package/dist/data-map.js +56 -1
- package/dist/data-map.js.map +1 -1
- package/dist/fpds.d.ts.map +1 -1
- package/dist/fpds.js +3 -2
- package/dist/fpds.js.map +1 -1
- package/dist/gao.d.ts.map +1 -1
- package/dist/gao.js +17 -6
- package/dist/gao.js.map +1 -1
- package/dist/gsa-perdiem.d.ts +5 -0
- package/dist/gsa-perdiem.d.ts.map +1 -1
- package/dist/gsa-perdiem.js +6 -1
- package/dist/gsa-perdiem.js.map +1 -1
- package/dist/open-checkbook.d.ts +8 -0
- package/dist/open-checkbook.d.ts.map +1 -1
- package/dist/open-checkbook.js +9 -1
- package/dist/open-checkbook.js.map +1 -1
- package/dist/pricing.d.ts +1 -0
- package/dist/pricing.d.ts.map +1 -1
- package/dist/pricing.js +135 -50
- package/dist/pricing.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +34 -17
- package/dist/server.js.map +1 -1
- package/dist/socrata.d.ts +16 -1
- package/dist/socrata.d.ts.map +1 -1
- package/dist/socrata.js +31 -1
- package/dist/socrata.js.map +1 -1
- package/package.json +1 -1
- package/src/bonfire.ts +7 -9
- package/src/ckan.ts +17 -4
- package/src/data-map.ts +58 -1
- package/src/fpds.ts +3 -2
- package/src/gao.ts +20 -6
- package/src/gsa-perdiem.ts +12 -1
- package/src/open-checkbook.ts +26 -3
- package/src/pricing.ts +142 -48
- package/src/server.ts +41 -17
- package/src/socrata.ts +37 -1
package/dist/socrata.d.ts
CHANGED
|
@@ -109,8 +109,23 @@
|
|
|
109
109
|
import { num } from "./coerce.js";
|
|
110
110
|
import { type MetaBundle } from "./meta.js";
|
|
111
111
|
export { num };
|
|
112
|
-
export declare const SOCRATA_DOMAINS: readonly ["data.ny.gov", "data.colorado.gov", "data.ct.gov", "data.texas.gov", "data.wa.gov", "opendata.maryland.gov", "data.vermont.gov", "data.nj.gov", "data.oregon.gov", "data.pa.gov", "data.mo.gov", "data.delaware.gov", "data.austintexas.gov", "data.kingcounty.gov", "data.montgomerycountymd.gov", "data.mesaaz.gov", "data.cambridgema.gov", "data.transportation.gov", "data.cdc.gov", "data.bts.gov", "datacatalog.cookcountyil.gov", "data.illinois.gov", "data.cincinnati-oh.gov", "data.cityofnewyork.us", "data.cityofchicago.org", "data.sfgov.org", "data.sf.gov", "controllerdata.lacity.org", "opendata.usac.org", "data.kcmo.org", "data.brla.gov", "www.dallasopendata.com", "data.lacity.org", "data.ramseycountymn.gov", "data.richmondgov.com", "opendata.howardcountymd.gov", "data.providenceri.gov", "fiscalfocus.pittsburghpa.gov", "data.coloradosprings.gov", "data.framinghamma.gov", "data.fultoncountyga.gov", "atlanta.data.socrata.com", "opendata.cityofmesquite.com", "datahub.usac.org", "performance.ci.janesville.wi.us", "datahub.austintexas.gov", "cthru.data.socrata.com", "data.macoupincountyil.gov", "data.oaklandca.gov", "data.princegeorgescountymd.gov", "data.cstx.gov", "datahub.transportation.gov", "citydata.mesaaz.gov", "data.weho.org"];
|
|
112
|
+
export declare const SOCRATA_DOMAINS: readonly ["data.ny.gov", "data.colorado.gov", "data.ct.gov", "data.texas.gov", "data.wa.gov", "opendata.maryland.gov", "data.vermont.gov", "data.nj.gov", "data.oregon.gov", "data.pa.gov", "data.mo.gov", "data.delaware.gov", "data.austintexas.gov", "data.kingcounty.gov", "data.montgomerycountymd.gov", "data.mesaaz.gov", "data.cambridgema.gov", "data.transportation.gov", "data.cdc.gov", "data.bts.gov", "datacatalog.cookcountyil.gov", "data.illinois.gov", "data.cincinnati-oh.gov", "data.cityofnewyork.us", "data.cityofchicago.org", "data.sfgov.org", "data.sf.gov", "controllerdata.lacity.org", "opendata.usac.org", "data.kcmo.org", "data.brla.gov", "www.dallasopendata.com", "data.lacity.org", "data.ramseycountymn.gov", "data.richmondgov.com", "opendata.howardcountymd.gov", "data.providenceri.gov", "fiscalfocus.pittsburghpa.gov", "data.coloradosprings.gov", "data.framinghamma.gov", "data.fultoncountyga.gov", "sharefulton.fultoncountyga.gov", "atlanta.data.socrata.com", "opendata.cityofmesquite.com", "datahub.usac.org", "performance.ci.janesville.wi.us", "datahub.austintexas.gov", "cthru.data.socrata.com", "data.macoupincountyil.gov", "data.oaklandca.gov", "data.princegeorgescountymd.gov", "data.cstx.gov", "datahub.transportation.gov", "citydata.mesaaz.gov", "data.weho.org"];
|
|
113
113
|
export type SocrataDomain = (typeof SOCRATA_DOMAINS)[number];
|
|
114
|
+
/**
|
|
115
|
+
* Known host migrations (permanent 301 redirects). A domain here has permanently
|
|
116
|
+
* moved; redirect:"error" means any fetch to the old host will fail immediately.
|
|
117
|
+
* Rather than returning a retryable upstream_unavailable (which implies the
|
|
118
|
+
* problem may resolve on its own), we pre-flight check this map and return
|
|
119
|
+
* invalid_input — non-retryable, naming the replacement — so the caller can
|
|
120
|
+
* update the `domain` parameter instead of spinning on a doomed retry loop.
|
|
121
|
+
*
|
|
122
|
+
* Keep the old host in SOCRATA_DOMAINS so it passes the allowlist gate (invalid
|
|
123
|
+
* domains are rejected before reaching this check). Only add an entry here when
|
|
124
|
+
* the migration is confirmed by a live 301 probe with a stable redirect_url.
|
|
125
|
+
*
|
|
126
|
+
* data.sfgov.org → data.sf.gov (confirmed 2026-09-21; all paths 301)
|
|
127
|
+
*/
|
|
128
|
+
export declare const MIGRATED_SOCRATA_HOSTS: ReadonlyMap<string, string>;
|
|
114
129
|
export type SocrataRow = Record<string, unknown>;
|
|
115
130
|
/**
|
|
116
131
|
* Query rows from an allowlisted Socrata SODA dataset. The workhorse: reaches
|
package/dist/socrata.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socrata.d.ts","sourceRoot":"","sources":["../src/socrata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2GG;AAIH,OAAO,EAAE,GAAG,EAAO,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAY,KAAK,UAAU,EAAqB,MAAM,WAAW,CAAC;AAKzE,OAAO,EAAE,GAAG,EAAE,CAAC;AAOf,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"socrata.d.ts","sourceRoot":"","sources":["../src/socrata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2GG;AAIH,OAAO,EAAE,GAAG,EAAO,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAY,KAAK,UAAU,EAAqB,MAAM,WAAW,CAAC;AAKzE,OAAO,EAAE,GAAG,EAAE,CAAC;AAOf,eAAO,MAAM,eAAe,ywCAuGlB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAI7D;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAE7D,CAAC;AA8CH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAkMjD;;;;;;;;;;;GAWG;AACH,wBAAsB,KAAK,CAAC,IAAI,EAAE;IAChC,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,OAAO,CAAC,UAAU,CAAC,CAkHtB;AAGD,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,CAAC;AAqBF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,UAAU,CAAC,CAsFtB"}
|
package/dist/socrata.js
CHANGED
|
@@ -201,6 +201,7 @@ export const SOCRATA_DOMAINS = [
|
|
|
201
201
|
"data.coloradosprings.gov", // Colorado Springs CO (.gov) — e.g. yn6y-xikx (Open Checkbook Vendors ~19k)
|
|
202
202
|
"data.framinghamma.gov", // Framingham MA (.gov) — e.g. cqve-ehkr (Checkbook ~324k)
|
|
203
203
|
"data.fultoncountyga.gov", // Fulton County GA (.gov) — e.g. mxhc-krcg (Vendor Payments/disbursements ~217k)
|
|
204
|
+
"sharefulton.fultoncountyga.gov", // Fulton County GA (.gov, second portal) — e.g. kp4p-scak (Vendor Payments 226,797 rows 2014–present, updated 2026-09-14, attribution: "Fulton County Government (GA)")
|
|
204
205
|
"atlanta.data.socrata.com", // City of Atlanta GA (Socrata-hosted official portal) — e.g. jmke-icfi (Open Checkbook Ledger ~1.78M)
|
|
205
206
|
"opendata.cityofmesquite.com", // Mesquite TX (.com, official) — e.g. 6tva-azs5 (Check Register ~144k)
|
|
206
207
|
// ── County/city procurement sweep, wave 3 (loop cycle 20, 2026-07-20). Expanded
|
|
@@ -238,7 +239,7 @@ const SOCRATA_DOMAIN_SET = new Set(SOCRATA_DOMAINS);
|
|
|
238
239
|
*
|
|
239
240
|
* data.sfgov.org → data.sf.gov (confirmed 2026-09-21; all paths 301)
|
|
240
241
|
*/
|
|
241
|
-
const MIGRATED_SOCRATA_HOSTS = new Map([
|
|
242
|
+
export const MIGRATED_SOCRATA_HOSTS = new Map([
|
|
242
243
|
["data.sfgov.org", "data.sf.gov"],
|
|
243
244
|
]);
|
|
244
245
|
const CATALOG_HOST = "api.us.socrata.com";
|
|
@@ -540,6 +541,18 @@ export async function query(args) {
|
|
|
540
541
|
if (totalAvailable === null && !hasMore) {
|
|
541
542
|
notes.push("totalAvailable is unknown but completeness is INFERRED from a short page (returned < $limit): SODA returns fewer than $limit only when the result set is exhausted.");
|
|
542
543
|
}
|
|
544
|
+
// ── Response-side aggregate nudge (§A-nudge) ──
|
|
545
|
+
// When the result is truncated (hasMore) and the caller used no aggregate select,
|
|
546
|
+
// the agent only sees a PAGE of rows — NOT the total. Nudge toward an aggregate
|
|
547
|
+
// query so the agent does not try to sum one page manually.
|
|
548
|
+
if (!isAggregateSelect && hasMore) {
|
|
549
|
+
// Find the most likely amount-like column from the first row's keys.
|
|
550
|
+
const firstRow = rows[0];
|
|
551
|
+
const amountKey = firstRow !== undefined
|
|
552
|
+
? (Object.keys(firstRow).find((k) => /amount|amt|total|paid|payment/i.test(k)) ?? "<amount column>")
|
|
553
|
+
: "<amount column>";
|
|
554
|
+
notes.push(`This is a PAGE of raw rows (truncated — more rows exist). Do NOT sum this page to get a total. For a grand total: re-query with select='sum(${amountKey})' plus a where filter for vendor/fiscal year. For a top-N ranking: select='vendor_name, sum(${amountKey}) as total' with order='total DESC'. These are aggregate queries — the result is the final answer, not another page.`);
|
|
555
|
+
}
|
|
543
556
|
return withMeta({ domain: args.domain, datasetId: args.datasetId, rows }, {
|
|
544
557
|
source: `${args.domain} ${SOURCE_SUFFIX}`,
|
|
545
558
|
keylessMode: true,
|
|
@@ -626,6 +639,23 @@ export async function discoverDatasets(args) {
|
|
|
626
639
|
if (totalAvailable !== null && returned < totalAvailable) {
|
|
627
640
|
notes.push(`Showing ${returned} of ${totalAvailable} matches; raise limit (≤100) or narrow q for the rest.`);
|
|
628
641
|
}
|
|
642
|
+
// HONESTY (false-zero guard). An empty catalog result is easy to read as "this
|
|
643
|
+
// portal has no such data", and the per-host note above even calls the index
|
|
644
|
+
// COMPLETE — but the catalog behaves as if EVERY q term must match, and datasets
|
|
645
|
+
// rarely repeat their own jurisdiction's name. Measured 2026-09-21 on
|
|
646
|
+
// data.illinois.gov: q="Illinois state solicitations" -> 0 and
|
|
647
|
+
// q="Illinois procurement" -> 0, while q="solicitations" -> 1 (6rb8-ntpm). An eval
|
|
648
|
+
// agent took that zero at face value and told the user no Illinois procurement
|
|
649
|
+
// datasets exist. So a zero is reported as possibly false, with the fix.
|
|
650
|
+
if (returned === 0) {
|
|
651
|
+
// Only "more than one word?" matters here, so test for it directly rather than
|
|
652
|
+
// splitting: a raw whitespace split is reserved for disclosure tokenizing
|
|
653
|
+
// (tokenizeForDisclosure, ADR-0022) and this is not a disclosure.
|
|
654
|
+
const multiWord = /\S\s+\S/.test(args.q);
|
|
655
|
+
notes.push(multiWord
|
|
656
|
+
? `0 matches for a multi-word q — likely a FALSE zero, not proof the data is absent: the catalog behaves as if every term must match, and datasets rarely repeat their jurisdiction's name in their title. Put the place in \`domain\` (not in q) and retry with ONE topical term, e.g. 'solicitations', 'bids', 'contract', 'vendor', 'payments', 'purchase'.`
|
|
657
|
+
: `0 matches for q=${JSON.stringify(args.q)} — this is not proof the data is absent: publishers title the same thing differently. Retry with a synonym ('solicitations', 'bids', 'contract', 'vendor', 'payments', 'purchase') before concluding the portal has none.`);
|
|
658
|
+
}
|
|
629
659
|
return withMeta({ query: args.q, domain: args.domain ?? null, results }, {
|
|
630
660
|
source: `${args.domain ?? CATALOG_HOST} catalog ${SOURCE_SUFFIX}`,
|
|
631
661
|
keylessMode: true,
|
package/dist/socrata.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socrata.js","sourceRoot":"","sources":["../src/socrata.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"socrata.js","sourceRoot":"","sources":["../src/socrata.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cliwant/mcp-sam-gov",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.16.0",
|
|
4
4
|
"mcpName": "io.github.cliwant/mcp-sam-gov",
|
|
5
5
|
"description": "Most comprehensive keyless-first MCP server for US federal + state/local (SLED) contracting + spending + regulation: SAM.gov, USAspending, Federal Register, eCFR, Grants.gov, plus SLED procurement bids (OpenGov, Bonfire, ArcGIS, Socrata 53 hosts). 152 tools (147 need no API key), plug into Claude Desktop / Claude Code / Codex CLI / Cursor / Continue / Gemini CLI.",
|
|
6
6
|
"keywords": [
|
package/src/bonfire.ts
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* ★ NO keyless directory API: Bonfire's authoritative org list
|
|
12
12
|
* (`GET common-production-api-global.bonfirehub.com/v1.0/organizations/external`)
|
|
13
13
|
* is AUTH-GATED (a free vendor-account token) — OUT OF BOUNDS (we never sign in).
|
|
14
|
-
* So this ships a CURATED, live-verified SEED directory (
|
|
14
|
+
* So this ships a CURATED, live-verified SEED directory (187 US orgs; §BONFIRE_
|
|
15
15
|
* ORGS) as `bonfire_list_organizations`, and documents the keyless RSS-probe
|
|
16
16
|
* refresh method (no catch-all: `{slug}.bonfirehub.com/opportunities/rss` returns
|
|
17
17
|
* 200 <rss> for a real org, a connection failure for a non-provisioned slug). The
|
|
@@ -53,7 +53,7 @@ const BONFIRE_SOURCE = (org: string) =>
|
|
|
53
53
|
const BONFIRE_SEED_NOTE =
|
|
54
54
|
"This directory is a CURATED, live-verified SEED (Bonfire has NO keyless org-list API; the authoritative list is auth-gated and out of bounds). Euna markets up to ~900 US orgs, so the seed is partial — probe `{slug}.bonfirehub.com/opportunities/rss` (200 <rss> = real org) to extend. Feed a result's `org` to bonfire_search_opportunities. Slug identity traps: pcc = Portland Community College OR (NOT Pima CC AZ); dps = Dayton Public Schools OH (NOT Denver PS CO); maricopa = Maricopa County Community Colleges AZ (NOT Maricopa County government).";
|
|
55
55
|
|
|
56
|
-
// ─── The curated
|
|
56
|
+
// ─── The curated 187-org US seed directory (live-verified 2026-09-21) ──
|
|
57
57
|
// "slug|Entity|ST" — the slug is the RSS subdomain. Non-US (.ca / cayman / etc.)
|
|
58
58
|
// deliberately excluded.
|
|
59
59
|
// Slug identity notes (depth sweep 2026-09-21):
|
|
@@ -70,7 +70,7 @@ const BONFIRE_SEED_RAW: readonly string[] = [
|
|
|
70
70
|
"daviefl|Town of Davie|FL", "ocoee|City of Ocoee|FL", "broward|Broward County|FL", "hillsboroughcounty|Hillsborough County|FL", "marionfl|Marion County|FL", "monroecounty-fl|Monroe County|FL", "pascocountyfl|Pasco County|FL", "famu|Florida A&M University|FL", "fau|Florida Atlantic University|FL", "fgcu|Florida Gulf Coast University|FL", "floridapoly|Florida Polytechnic University|FL", "ucf|University of Central Florida|FL", "tampabaywater|Tampa Bay Water|FL", "gohart|Hillsborough Transit Authority|FL", "psta|Pinellas Suncoast Transit Authority|FL",
|
|
71
71
|
"brookhavenga|City of Brookhaven|GA", "sandysprings|City of Sandy Springs|GA", "chathamcountyga|Chatham County|GA", "columbiacountyga|Columbia County|GA", "gwinnett|Gwinnett County Public Schools|GA",
|
|
72
72
|
"cityofnampa|City of Nampa|ID", "adacounty|Ada County|ID", "bannockcounty|Bannock County|ID",
|
|
73
|
-
"cookcountyil|Cook County|IL", "d214|Township High School District 214|IL", "
|
|
73
|
+
"cookcountyil|Cook County|IL", "d214|Township High School District 214|IL", "cps|Chicago Public Schools|IL", "u-46|School District U-46|IL", "chicagoparkdistrict|Chicago Park District|IL", "mwrd|Metro Water Reclamation District of Greater Chicago|IL", "transitchicago|Chicago Transit Authority|IL", "metra|Metra|IL",
|
|
74
74
|
"indygo|Indianapolis Public Transportation Corp|IN",
|
|
75
75
|
"olatheks|City of Olathe|KS", "wichita|City of Wichita|KS",
|
|
76
76
|
"covingtonky|City of Covington|KY", "louisvilleky|City of Louisville|KY", "owensboro|City of Owensboro|KY", "lexingtonky|Lexington-Fayette|KY", "kyhousing|Kentucky Housing Corporation|KY", "tarc|Transit Authority of River City|KY",
|
|
@@ -78,10 +78,9 @@ const BONFIRE_SEED_RAW: readonly string[] = [
|
|
|
78
78
|
"harfordcountymd|Harford County|MD", "habc|Housing Authority of Baltimore City|MD", "hcpss|Howard County Public School System|MD", "menv|Maryland Environmental Service|MD", "mdcourts|Maryland Judiciary|MD",
|
|
79
79
|
"maine|State of Maine|ME",
|
|
80
80
|
"detroit|City of Detroit|MI",
|
|
81
|
-
"ramseycountymn|Ramsey County|MN",
|
|
81
|
+
"ramseycountymn|Ramsey County|MN",
|
|
82
82
|
"jeffersoncitymo|Jefferson City|MO", "kcmo|Kansas City, MO|MO", "stlouiscountymo|St. Louis County|MO", "stlcc|St. Louis Community College|MO",
|
|
83
83
|
"apexnc|Town of Apex|NC", "charlottenc|City of Charlotte|NC", "wake|Wake County|NC", "ncat|NC A&T State University|NC", "ncsu|NC State University|NC",
|
|
84
|
-
"rutgers|Rutgers University|NJ",
|
|
85
84
|
"cabq|City of Albuquerque|NM", "mckinleycounty|McKinley County|NM",
|
|
86
85
|
"clarkcountynv|Clark County|NV", "ccsd|Clark County School District|NV",
|
|
87
86
|
"suffolkcountyny|Suffolk County|NY", "stonybrook|Stony Brook University|NY", "healthsolutions|Public Health Solutions|NY", "centro|Central NY Regional Transportation Authority|NY", "nfta|Niagara Frontier Transportation Authority|NY", "panynj|Port Authority of New York & New Jersey|NY",
|
|
@@ -89,12 +88,11 @@ const BONFIRE_SEED_RAW: readonly string[] = [
|
|
|
89
88
|
"pcc|Portland Community College|OR", "pdx|Portland State University|OR",
|
|
90
89
|
"alleghenycounty|Allegheny County|PA", "montcopa|Montgomery County PA|PA", "pennbid|PennBid|PA",
|
|
91
90
|
"charlestoncounty|Charleston County|SC", "tridenttech|Trident Technical College|SC",
|
|
92
|
-
"
|
|
93
|
-
"dfwairport|DFW International Airport|TX", "amarillo|City of Amarillo|TX", "arlingtontx|City of Arlington|TX", "brownsvilletx|City of Brownsville|TX", "burlesontx|City of Burleson|TX", "cityoflewisville|City of Lewisville|TX", "dallascityhall|City of Dallas|TX", "fortworthtexas|City of Fort Worth|TX", "friscotexas|City of Frisco|TX", "leandertx|City of Leander|TX", "mckinneytexas|City of McKinney|TX", "midlandtexas|City of Midland|TX", "roundrocktexas|City of Round Rock|TX", "sanantonio|City of San Antonio|TX", "schertz|City of Schertz|TX", "southlake|City of Southlake|TX", "templetx|City of Temple|TX", "waco-texas|City of Waco|TX", "mansfield|Mansfield Council of Governments|TX", "brazoriacounty|Brazoria County|TX", "dentoncounty|Denton County|TX", "galvestoncountytx|Galveston County|TX", "harriscountytx|Harris County|TX", "johnsoncountytx|Johnson County|TX", "lubbock|Lubbock County|TX", "parkercountytx|Parker County|TX", "smithcounty|Smith County|TX", "wilco|Williamson County|TX", "hccs|Houston Community College|TX", "rice-edu|Rice University|TX", "tccd|Tarrant County College District|TX", "utdallas|UT Dallas|TX", "utexas|UT Austin|TX", "utrgv|UT Rio Grande Valley|TX", "uttyler|UT Tyler|TX", "uthscsa|UT Health San Antonio|TX", "saha|Opportunity Home San Antonio|TX", "universityhealth|University Health (hospital district)|TX", "allenisd|Allen ISD|TX", "austinisd|Austin ISD|TX", "comalisd|Comal ISD|TX", "dallasisd|Dallas ISD|TX", "fortbendisd|Fort Bend ISD|TX", "kleinisd|Klein ISD|TX", "laredoisd|Laredo ISD|TX", "magnoliaisd|Magnolia ISD|TX", "mesquiteisd|Mesquite ISD|TX", "tomballisd|Tomball ISD|TX", "twc-texas-gov|Texas Workforce Commission|TX", "txdot|Texas Department of Transportation|TX", "dart|Dallas Area Rapid Transit|TX", "ridemetro|Harris County METRO|TX",
|
|
91
|
+
"dfwairport|DFW International Airport|TX", "amarillo|City of Amarillo|TX", "arlingtontx|City of Arlington|TX", "brownsvilletx|City of Brownsville|TX", "burlesontx|City of Burleson|TX", "cityoflewisville|City of Lewisville|TX", "dallascityhall|City of Dallas|TX", "fortworthtexas|City of Fort Worth|TX", "friscotexas|City of Frisco|TX", "leandertx|City of Leander|TX", "mckinneytexas|City of McKinney|TX", "midlandtexas|City of Midland|TX", "roundrocktexas|City of Round Rock|TX", "schertz|City of Schertz|TX", "southlake|City of Southlake|TX", "templetx|City of Temple|TX", "waco-texas|City of Waco|TX", "mansfield|Mansfield Council of Governments|TX", "brazoriacounty|Brazoria County|TX", "dentoncounty|Denton County|TX", "galvestoncountytx|Galveston County|TX", "harriscountytx|Harris County|TX", "johnsoncountytx|Johnson County|TX", "lubbock|Lubbock County|TX", "parkercountytx|Parker County|TX", "smithcounty|Smith County|TX", "wilco|Williamson County|TX", "hccs|Houston Community College|TX", "rice-edu|Rice University|TX", "tccd|Tarrant County College District|TX", "utdallas|UT Dallas|TX", "utexas|UT Austin|TX", "utrgv|UT Rio Grande Valley|TX", "uttyler|UT Tyler|TX", "uthscsa|UT Health San Antonio|TX", "homesa|Opportunity Home San Antonio (formerly SAHA)|TX", "universityhealth|University Health (hospital district)|TX", "austinisd|Austin ISD|TX", "comalisd|Comal ISD|TX", "dallasisd|Dallas ISD|TX", "fortbendisd|Fort Bend ISD|TX", "kleinisd|Klein ISD|TX", "laredoisd|Laredo ISD|TX", "magnoliaisd|Magnolia ISD|TX", "mesquiteisd|Mesquite ISD|TX", "tomballisd|Tomball ISD|TX", "twc-texas-gov|Texas Workforce Commission|TX", "txdot|Texas Department of Transportation|TX", "dart|Dallas Area Rapid Transit|TX", "ridemetro|Harris County METRO|TX",
|
|
94
92
|
"ccog|The Cooperative Council of Governments|US", "omniapartners|OMNIA Partners|US", "utah|U3P / Utah Public Procurement Place|UT",
|
|
95
93
|
"chesterfield|Chesterfield County|VA", "fairfaxcounty|Fairfax County|VA", "cnu|Christopher Newport University|VA", "gmu|George Mason University|VA", "nsu|Norfolk State University|VA", "fcps|Fairfax County Public Schools|VA",
|
|
96
|
-
"cityofvancouver|City of Vancouver WA|WA", "federalwaywa|City of Federal Way|WA", "clarkcountywa|Clark County WA|WA", "
|
|
97
|
-
"cityofmilwaukee|City of Milwaukee|WI", "westalliswi|City of West Allis|WI", "racinecounty|Racine County|WI", "waukeshacounty|Waukesha County|WI", "
|
|
94
|
+
"cityofvancouver|City of Vancouver WA|WA", "federalwaywa|City of Federal Way|WA", "clarkcountywa|Clark County WA|WA", "portolympia|Port of Olympia|WA", "lwsd|Lake Washington School District|WA", "tacoma|Tacoma Public Schools|WA",
|
|
95
|
+
"cityofmilwaukee|City of Milwaukee|WI", "westalliswi|City of West Allis|WI", "racinecounty|Racine County|WI", "waukeshacounty|Waukesha County|WI", "mmsd|Milwaukee Metropolitan Sewerage District|WI",
|
|
98
96
|
"marshall|Marshall University|WV",
|
|
99
97
|
];
|
|
100
98
|
|
package/src/ckan.ts
CHANGED
|
@@ -78,9 +78,11 @@
|
|
|
78
78
|
* returned HTTP 200 + the envelope above). NO commercial-vendor domains (the
|
|
79
79
|
* Socrata Tyler-Technologies M1 mistake is avoided). `data.virginia.gov` is the
|
|
80
80
|
* same VA that CHURNED OFF Socrata (excluded from the SODA allowlist) — it belongs
|
|
81
|
-
* HERE on CKAN. `data.ok.gov`
|
|
82
|
-
*
|
|
83
|
-
*
|
|
81
|
+
* HERE on CKAN. `data.ok.gov` deferral LIFTED 2026-09-21: Vendor Payments FY2019 Q1
|
|
82
|
+
* (resource_id cc443616-15eb-4a1f-8d87-93e5711ac43c, 286,185 rows exact,
|
|
83
|
+
* `total_was_estimated:false`). FY2011/FY2017/FY2018/FY2019 each have 4 quarterly
|
|
84
|
+
* resources; one fiscal year = 4 calls. NOT bids or awards — vendor PAYMENTS.
|
|
85
|
+
* `catalog.data.gov` (federal harvester, no active datastore) is dropped.
|
|
84
86
|
* Adding a host later = a CKAN_HOSTS SOURCE edit + a live `datastore_search?
|
|
85
87
|
* limit=1` verification + an ownership note + a test-fixture note — NEVER a free
|
|
86
88
|
* runtime param.
|
|
@@ -107,8 +109,19 @@ export { num };
|
|
|
107
109
|
// resource_id={uuid}&limit=1` when touching this list.
|
|
108
110
|
export const CKAN_HOSTS = [
|
|
109
111
|
// State of California (CDT/GovOps) — Statewide Purchase Order Data 2012–2015,
|
|
110
|
-
// resource_id bb82edc5-9c78-44e2-8947-68ece26197c5 (
|
|
112
|
+
// resource_id bb82edc5-9c78-44e2-8947-68ece26197c5 (344,504 rows exact,
|
|
113
|
+
// total_was_estimated:false). DGS-Approved Non-Competitive Bids resource_id
|
|
114
|
+
// 14932789-485b-481b-910a-dafb40d3471c (480 rows exact). Live Cal eProcure
|
|
115
|
+
// portal remains WAF-403. Ownership: CDT/GovOps open.data.ca.gov.
|
|
116
|
+
// Test fixture: resource bb82edc5 rows=344504 exact; resource 14932789 rows=480 exact.
|
|
111
117
|
"data.ca.gov",
|
|
118
|
+
// State of Oklahoma (OMES/Office of Management & Enterprise Services) —
|
|
119
|
+
// Vendor Payments FY2019 Q1, resource_id cc443616-15eb-4a1f-8d87-93e5711ac43c
|
|
120
|
+
// (286,185 rows exact, total_was_estimated:false). FY2011/2017/2018/2019 each
|
|
121
|
+
// have 4 quarterly resources; one fiscal year = 4 calls. NOT bids or awards —
|
|
122
|
+
// vendor PAYMENTS. Deferral lifted 2026-09-21. Ownership: data.ok.gov (OMES).
|
|
123
|
+
// Test fixture: resource cc443616 rows=286185 exact.
|
|
124
|
+
"data.ok.gov",
|
|
112
125
|
// Commonwealth of Virginia (VITA) — the VA that churned off Socrata. Norfolk
|
|
113
126
|
// SWaM Certified Businesses, resource_id f6804560-bf9e-44a4-92bf-bf3dd7d1fd60.
|
|
114
127
|
"data.virginia.gov",
|
package/src/data-map.ts
CHANGED
|
@@ -41,6 +41,36 @@ export interface DataMapEntry {
|
|
|
41
41
|
*/
|
|
42
42
|
export const DATA_MAP_ENTRIES: DataMapEntry[] = [
|
|
43
43
|
// ── State-level ──────────────────────────────────────────────────────────
|
|
44
|
+
{
|
|
45
|
+
state: "CA",
|
|
46
|
+
jurisdiction: "California",
|
|
47
|
+
dataLabel: "DGS Purchase Order Data 2012–2015",
|
|
48
|
+
tool: "ckan_query",
|
|
49
|
+
keyArgs: "host=data.ca.gov, resourceId=bb82edc5-9c78-44e2-8947-68ece26197c5",
|
|
50
|
+
rows: 344504,
|
|
51
|
+
approximate: false,
|
|
52
|
+
notNote: "live Cal eProcure portal (WAF-403); FY2012–2015 only — no post-2015 rows",
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
state: "CA",
|
|
56
|
+
jurisdiction: "California",
|
|
57
|
+
dataLabel: "DGS-Approved Non-Competitive Bids",
|
|
58
|
+
tool: "ckan_query",
|
|
59
|
+
keyArgs: "host=data.ca.gov, resourceId=14932789-485b-481b-910a-dafb40d3471c",
|
|
60
|
+
rows: 480,
|
|
61
|
+
approximate: false,
|
|
62
|
+
notNote: "open competitive solicitations; sole-source/non-competitive award register",
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
state: "OK",
|
|
66
|
+
jurisdiction: "Oklahoma",
|
|
67
|
+
dataLabel: "Vendor Payments FY2019 Q1 (OMES)",
|
|
68
|
+
tool: "ckan_query",
|
|
69
|
+
keyArgs: "host=data.ok.gov, resourceId=cc443616-15eb-4a1f-8d87-93e5711ac43c",
|
|
70
|
+
rows: 286185,
|
|
71
|
+
approximate: false,
|
|
72
|
+
notNote: "bids or awards; vendor PAYMENTS — per-quarter resources, one fiscal year = 4 calls",
|
|
73
|
+
},
|
|
44
74
|
{
|
|
45
75
|
state: "VA",
|
|
46
76
|
jurisdiction: "Virginia",
|
|
@@ -133,6 +163,18 @@ export const DATA_MAP_ENTRIES: DataMapEntry[] = [
|
|
|
133
163
|
approximate: true,
|
|
134
164
|
notNote: "an award register; only ~3 most-recent FYs, exact-match filters",
|
|
135
165
|
},
|
|
166
|
+
// ── Alaska — verified 2026-09-21 ─────────────────────────────────────────
|
|
167
|
+
{
|
|
168
|
+
state: "AK",
|
|
169
|
+
jurisdiction: "Alaska",
|
|
170
|
+
dataLabel: "Open Checkbook vendor payments (FY2026 ONLY)",
|
|
171
|
+
tool: "open_checkbook_search",
|
|
172
|
+
keyArgs: "portal=ak, year=2026",
|
|
173
|
+
rows: 41751,
|
|
174
|
+
approximate: false,
|
|
175
|
+
notNote:
|
|
176
|
+
"historical FY coverage — ONLY FY2026 is published by this portal. FY2019–FY2025 return count:0, meaning 'not published', NOT 'no spending'. Probed years 2019–2026 and no-year on 2026-09-21: 2019–2025 = 0 rows each; 2026 = 41,751 rows ($1,179,091,896.12); no-year = 0 rows. Always pass year='2026' to get results.",
|
|
177
|
+
},
|
|
136
178
|
{
|
|
137
179
|
state: "IL",
|
|
138
180
|
jurisdiction: "Illinois",
|
|
@@ -141,7 +183,7 @@ export const DATA_MAP_ENTRIES: DataMapEntry[] = [
|
|
|
141
183
|
keyArgs: "domain=data.illinois.gov, datasetId=6rb8-ntpm",
|
|
142
184
|
rows: 48,
|
|
143
185
|
approximate: false,
|
|
144
|
-
notNote: "a comprehensive solicitation feed
|
|
186
|
+
notNote: "a comprehensive solicitation feed, and NOT currently open bids — these are ~48 CDB capital solicitations the publisher describes as \"anticipated for a future date, but have not been posted yet\" (estimated_bid_date field)",
|
|
145
187
|
},
|
|
146
188
|
{
|
|
147
189
|
state: "IL",
|
|
@@ -270,6 +312,18 @@ export const DATA_MAP_ENTRIES: DataMapEntry[] = [
|
|
|
270
312
|
notNote:
|
|
271
313
|
"Colorado STATE procurement — this is City of Denver checkbook data hosted on the Colorado state portal (data.colorado.gov). An agent that reads the domain as the jurisdiction gets this wrong. Updated 2026-09-20.",
|
|
272
314
|
},
|
|
315
|
+
// ── Fulton County GA (second portal) — verified 2026-09-21 ───────────────
|
|
316
|
+
{
|
|
317
|
+
state: "GA",
|
|
318
|
+
jurisdiction: "Fulton County GA",
|
|
319
|
+
dataLabel: "Vendor Payments 2014–present (sharefulton portal)",
|
|
320
|
+
tool: "socrata_query",
|
|
321
|
+
keyArgs: "domain=sharefulton.fultoncountyga.gov, datasetId=kp4p-scak",
|
|
322
|
+
rows: 226797,
|
|
323
|
+
approximate: false,
|
|
324
|
+
notNote:
|
|
325
|
+
"data.fultoncountyga.gov (a DIFFERENT host that is also allowlisted — both are official Fulton County portals). Fields: fiscal_year, fy_period, disb_date, dept, department_name, unit, unit_name, object, object_name, fund, fund_name, amount, vendor_code, vendor_legal_name. Updated 2026-09-14, attribution: 'Fulton County Government (GA)', 226,797 rows spanning 2014-01-01 to present.",
|
|
326
|
+
},
|
|
273
327
|
];
|
|
274
328
|
|
|
275
329
|
/**
|
|
@@ -325,5 +379,8 @@ ${renderStateTableMarkdown()}
|
|
|
325
379
|
- Login-gated or WAF-blocked live-bid portals: CA (Cal eProcure), TX ESBD/TxSmartBuy non-TxDOT (TxDOT lettings ARE available via qh8x-rm8r above), OH, NC, MI, and Periscope-based portals for IL/MA/NJ live bids.
|
|
326
380
|
- Portal exists but carries no procurement datasets: PA (data.pa.gov is live; scoped catalog has 0 bid/vendor/procurement datasets matching). Michigan (data.michigan.gov) was checked 2026-09-21 and carries only NIGP commodity code reference tables (w3u3-uptp 9,333 rows; jv5q-yp8x 235 rows) — not procurement transactions.
|
|
327
381
|
- No state-level open-data portal: FL (data.fl.gov NXDOMAIN), GA (data.georgia.gov NXDOMAIN). These states have no keyless state procurement data source — this is a measured absence, not a connectivity block.
|
|
382
|
+
|
|
383
|
+
**City-level measured absences (portals exist but carry no procurement data):**
|
|
384
|
+
- New Orleans LA (rank 46, 383,997 people): data.nola.gov exists but has NO procurement dataset. Full scan across 9 terms (procurement, solicitation, bid opportunities, vendor payments, purchase orders, contracts awarded, checkbook, supplier diversity, expenditure) on 2026-09-21 found only a 626-row DBE directory last updated 2019-11-11. Largest datasets are permits (347,839) and traffic citations (4M+) — not procurement. Use opengov_search_solicitations or bonfire_search_opportunities for New Orleans live bids.
|
|
328
385
|
`;
|
|
329
386
|
}
|
package/src/fpds.ts
CHANGED
|
@@ -48,9 +48,10 @@ const FPDS_HOST = "www.fpds.gov";
|
|
|
48
48
|
const FPDS_PATH = "/ezsearch/FEEDS/ATOM";
|
|
49
49
|
const FPDS_ORIGIN_PATH = `https://${FPDS_HOST}${FPDS_PATH}`;
|
|
50
50
|
const FPDS_LABEL = "www.fpds.gov";
|
|
51
|
-
//
|
|
51
|
+
// Identify this client honestly — same string used by every other module in the
|
|
52
|
+
// project. Live-verified 2026-09-22: FPDS returns 200 to this UA and with no UA.
|
|
52
53
|
const FPDS_UA =
|
|
53
|
-
"Mozilla/5.0 (
|
|
54
|
+
"Mozilla/5.0 (compatible; @cliwant/mcp-sam-gov; +https://github.com/cliwant/mcp-sam-gov)";
|
|
54
55
|
|
|
55
56
|
const PAGE_SIZE = 10;
|
|
56
57
|
/** Hard cap on entries sliced per feed (page size is 10; anything past a small
|
package/src/gao.ts
CHANGED
|
@@ -42,11 +42,12 @@ import { withMeta } from "./meta.js";
|
|
|
42
42
|
|
|
43
43
|
// ─── Shared HTTP ─────────────────────────────────────────────────
|
|
44
44
|
|
|
45
|
-
//
|
|
46
|
-
//
|
|
47
|
-
//
|
|
45
|
+
// Identify this client honestly — same string used by every other module in the
|
|
46
|
+
// project. Live-verified 2026-09-22: GAO's RSS feed returns 200 to this UA, to
|
|
47
|
+
// the formerly-used fake Chrome UA, and even with no UA at all. GAO per-decision
|
|
48
|
+
// pages 403 from Akamai regardless of UA, so spoofing a browser gains nothing.
|
|
48
49
|
const GAO_UA =
|
|
49
|
-
"Mozilla/5.0 (
|
|
50
|
+
"Mozilla/5.0 (compatible; @cliwant/mcp-sam-gov; +https://github.com/cliwant/mcp-sam-gov)";
|
|
50
51
|
|
|
51
52
|
const RSS_URL = "https://www.gao.gov/rss/reportslegal.xml";
|
|
52
53
|
const PRODUCT_BASE = "https://www.gao.gov/products/";
|
|
@@ -58,9 +59,9 @@ const SOURCE = "gao.gov Legal Products RSS + decision pages (keyless)";
|
|
|
58
59
|
* in `data` and inside `_meta.notes` so no consumer can miss the scope boundary.
|
|
59
60
|
*/
|
|
60
61
|
const ACCESS_NOTE =
|
|
61
|
-
"Keyless GAO access covers only RECENT decisions from the public Legal-Products RSS feed (a rolling ~25-item window). GAO's faceted historical protest search (by protester/agency/outcome/date across all years) is WAF-blocked to automated clients
|
|
62
|
+
"Keyless GAO access covers only RECENT decisions from the public Legal-Products RSS feed (a rolling ~25-item window). GAO's faceted historical protest search (by protester/agency/outcome/date across all years) is WAF-blocked to automated clients — keyless programmatic access is unavailable (a human can search at https://www.gao.gov/search). Do NOT treat these results as the complete protest history.";
|
|
62
63
|
|
|
63
|
-
// Thin LOCAL wrapper (ADR-0013) that injects
|
|
64
|
+
// Thin LOCAL wrapper (ADR-0013) that injects the project's honest UA + RSS Accept
|
|
64
65
|
// for the tool's two call sites, then delegates to the shared `getText` port
|
|
65
66
|
// (retry defaults true → fetchWithRetry, byte-identical to the former
|
|
66
67
|
// hand-rolled fetcher). `timeoutMs` is preserved as a param default (never
|
|
@@ -710,6 +711,19 @@ export async function gaoProtestLookup(args: {
|
|
|
710
711
|
);
|
|
711
712
|
}
|
|
712
713
|
|
|
714
|
+
// When a protester/agency/solicitationNumber filter was given and the window
|
|
715
|
+
// contains no matching decisions, give the caller a precise next step: GAO's
|
|
716
|
+
// own search pre-filtered to bid-protest decisions with the term filled in.
|
|
717
|
+
// (This is NOT a reading list — it is a single direct link to the full
|
|
718
|
+
// historical database that a human can open immediately.)
|
|
719
|
+
const searchTerm = (args.protester ?? args.agency ?? args.solicitationNumber)?.trim();
|
|
720
|
+
if (decisions.length === 0 && filtersApplied.length > 0 && searchTerm) {
|
|
721
|
+
const encoded = encodeURIComponent(searchTerm);
|
|
722
|
+
notes.push(
|
|
723
|
+
`"${searchTerm}" does not appear in the current ~25-decision window. GAO's full protest database is searchable at https://www.gao.gov/search?f%5B0%5D=ctype_search%3ABid%20Protest%20Decision&keyword=${encoded} — each result shows parties, agency, date and outcome. Keyless programmatic access to the historical archive is unavailable; the link above goes directly to the relevant results.`,
|
|
724
|
+
);
|
|
725
|
+
}
|
|
726
|
+
|
|
713
727
|
return withMeta(
|
|
714
728
|
{ accessNote: ACCESS_NOTE, decisions },
|
|
715
729
|
{
|
package/src/gsa-perdiem.ts
CHANGED
|
@@ -93,6 +93,10 @@ const STANDARD_RATE_NOTE =
|
|
|
93
93
|
"standardRate:true means this location falls under the CONUS STANDARD rate (not an individually-set non-standard rate). standardRate/isOconus are booleans coerced from the API's string 'true'/'false'.";
|
|
94
94
|
const NO_PAGINATION_NOTE =
|
|
95
95
|
"The per-diem API returns the COMPLETE rate set for the lookup (no pagination); totalAvailable equals the number of rows returned.";
|
|
96
|
+
const FISCAL_YEAR_NOTE =
|
|
97
|
+
"fiscalYear (= year) is the U.S. FEDERAL FISCAL YEAR (Oct 1–Sep 30). " +
|
|
98
|
+
"Example: October 2026 falls in FY2027 (FY runs Oct 2026–Sep 2027); September 2026 falls in FY2026. " +
|
|
99
|
+
"To look up October 2026 rates, pass year='2027'. To look up September 2026 rates, pass year='2026'.";
|
|
96
100
|
|
|
97
101
|
// ─── STRING-boolean coercion (null-never-fabricate) ───────────────
|
|
98
102
|
/** Coerce the API's string 'true'/'false' → a real boolean; anything else ⇒ null. */
|
|
@@ -119,6 +123,11 @@ export type PerdiemRate = {
|
|
|
119
123
|
state: string | null;
|
|
120
124
|
zip: string | null;
|
|
121
125
|
year: number | null;
|
|
126
|
+
/** Explicit U.S. federal fiscal year label (Oct 1–Sep 30). Same numeric value as
|
|
127
|
+
* `year` (the GSA API's year field IS the FY number). Surfaced as a separate named
|
|
128
|
+
* field so callers never confuse it with a calendar year. E.g. fiscalYear:2027 means
|
|
129
|
+
* rates run Oct 2026–Sep 2027; October 2026 travel uses FY2027 rates. */
|
|
130
|
+
fiscalYear: number | null;
|
|
122
131
|
isOconus: boolean | null; // OCONUS (outside-CONUS) flag — coerced from string boolean
|
|
123
132
|
standardRate: boolean | null; // CONUS standard-rate flag — coerced from string boolean
|
|
124
133
|
mealsUsd: number | null; // M&IE ceiling ($) — null-never-0
|
|
@@ -350,6 +359,8 @@ export async function perdiemRates(
|
|
|
350
359
|
state: gState,
|
|
351
360
|
zip: str(r.zip),
|
|
352
361
|
year: gYear,
|
|
362
|
+
fiscalYear: gYear, // same numeric value as year; surfaced separately so callers
|
|
363
|
+
// never confuse it with a calendar year (GSA year IS the FY)
|
|
353
364
|
isOconus: gOconus,
|
|
354
365
|
standardRate: strBool(r.standardRate),
|
|
355
366
|
mealsUsd: num(r.meals),
|
|
@@ -359,7 +370,7 @@ export async function perdiemRates(
|
|
|
359
370
|
}
|
|
360
371
|
|
|
361
372
|
const returned = rows.length;
|
|
362
|
-
const notes: string[] = [RATE_MEANING_NOTE, STANDARD_RATE_NOTE, NO_PAGINATION_NOTE];
|
|
373
|
+
const notes: string[] = [RATE_MEANING_NOTE, STANDARD_RATE_NOTE, NO_PAGINATION_NOTE, FISCAL_YEAR_NOTE];
|
|
363
374
|
if (yearWasDefaulted) {
|
|
364
375
|
notes.push(
|
|
365
376
|
`No \`year\` was supplied, so it defaulted to the CURRENT U.S. federal fiscal year (FY${year}). GSA per-diem ceilings are set per fiscal year (Oct 1–Sep 30); pass an explicit \`year\` for a prior or upcoming FY.`,
|
package/src/open-checkbook.ts
CHANGED
|
@@ -41,14 +41,37 @@ import { withMeta, type MetaBundle, type ResponseMeta } from "./meta.js";
|
|
|
41
41
|
|
|
42
42
|
export { num };
|
|
43
43
|
|
|
44
|
-
// ─── Curated portal allowlist (SSRF core) — LIVE-VERIFIED 2026-07-24 ──
|
|
45
|
-
export type OpenCheckbookPortal = {
|
|
44
|
+
// ─── Curated portal allowlist (SSRF core) — LIVE-VERIFIED 2026-07-24/2026-09-21 ──
|
|
45
|
+
export type OpenCheckbookPortal = {
|
|
46
|
+
key: string;
|
|
47
|
+
host: string;
|
|
48
|
+
label: string;
|
|
49
|
+
note: string;
|
|
50
|
+
/**
|
|
51
|
+
* What fiscal-year span this portal actually publishes, as MEASURED (not assumed).
|
|
52
|
+
* Portals differ: SD exposes roughly the three most recent FYs, AK exposes exactly
|
|
53
|
+
* one. Emitting a single hardcoded coverage sentence for both made the envelope
|
|
54
|
+
* contradict itself — the generic line claimed "~3 most-recent fiscal years" while
|
|
55
|
+
* the AK portal note in the same response said FY2026 only.
|
|
56
|
+
*/
|
|
57
|
+
coverageNote: string;
|
|
58
|
+
};
|
|
46
59
|
export const OPEN_CHECKBOOK_PORTALS: readonly OpenCheckbookPortal[] = [
|
|
47
60
|
{
|
|
48
61
|
key: "sd",
|
|
49
62
|
host: "southdakota.spending.socrata.com",
|
|
50
63
|
label: "South Dakota — Open Checkbook",
|
|
51
64
|
note: "State of South Dakota vendor-payment checkbook (row fields: expense_category, description, fund, payment_date, vendor, org1=department, amount, custom_checkbook_field7=invoice ref, payment_id). ~740,980 rows / ~$8.41B across the ~3 most-recent fiscal years (NOT full history). The underlying Socrata SODA dataset is login-gated; this public app-proxy is the keyless door.",
|
|
65
|
+
coverageNote:
|
|
66
|
+
"COVERAGE: this portal exposes only the ~3 most-recent fiscal years — NOT South Dakota's full payment history.",
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
key: "ak",
|
|
70
|
+
host: "checkbook.alaska.gov",
|
|
71
|
+
label: "Alaska — Open Checkbook",
|
|
72
|
+
note: "State of Alaska vendor-payment checkbook (official .gov CNAME to alaska-state.spending.socrata.com). Verified live 2026-09-21: 41,751 rows / $1,179,091,896.12 for FY2026. ★ FY COVERAGE CAVEAT: ONLY FY2026 is published by this portal — years 2019–2025 and no-year all return count:0 / empty data. A count:0 result for a non-2026 year means 'this portal does not publish that year', NOT 'Alaska spent nothing'. Do NOT interpret zero results for FY2019–FY2025 as an absence of spending.",
|
|
73
|
+
coverageNote:
|
|
74
|
+
"COVERAGE: this portal publishes ONLY FY2026 (measured 2026-09-21: FY2019-FY2025 and an omitted year each return count:0). A count:0 for any other year means the portal does not publish that year — it does NOT mean Alaska made no payments.",
|
|
52
75
|
},
|
|
53
76
|
] as const;
|
|
54
77
|
|
|
@@ -160,7 +183,7 @@ export async function openCheckbookSearch(args: OpenCheckbookSearchArgs): Promis
|
|
|
160
183
|
`Source: ${portal.label} (Socrata Open Expenditures app-proxy /api/checkbook_data.json, keyless). ${portal.note}`,
|
|
161
184
|
"totalAvailable = the API's exact match count (matches the product's totals.json), NOT the page length.",
|
|
162
185
|
"Filters (year/vendor/org/expenseCategory) are EXACT-match — a partial/misspelled value returns an honest count:0, not an error. amount is number|null (a real $0 is 0, an absent value is null, never a fabricated 0).",
|
|
163
|
-
|
|
186
|
+
portal.coverageNote,
|
|
164
187
|
"FRESHNESS is set by the publisher: the portal says it refreshes each payment cycle, but refreshes can lag by weeks. To check recency, sort by payment_date (sortBy='payment_date', sortOrder='desc') and read the newest date.",
|
|
165
188
|
];
|
|
166
189
|
if (servedOffset !== offset)
|