Quality-of-life pass on tool output and error messages. No new tools,
no API surface changes — every change targets how agents experience
the existing surface.
Highlights:
- `tryNotFound` service helper rewraps generic upstream 404s into
identifier-rich messages with English-ordinal congress numbers
(e.g. "Bill HR 3076 not found in the 119th Congress.") across bill,
law, member, committee, vote, nomination, daily-record, and CRS /
committee report endpoints.
- Bill summaries now rendered HTML → Markdown — preserves paragraphs,
emphasis, and links instead of plain-stripping them.
- Empty-result recovery hint on every list response so agents get an
actionable next step instead of a bare pagination header.
- Upstream casing normalized to match the rest of the surface:
`bioguideID` → `bioguideId`, `URL` → `url`, `cmte_rpt_id` → `cmteRptId`.
- Resource params strictly validated: regex on `congress`, `billNumber`,
`committeeCode`, `bioguideId`; `BillType` enum on `billType`.
- `congress://committee/{committeeCode}` resource exposes top-level
`name` and `chamber`.
- `CongressDetail` type corrected to upstream shape.
- Tool / prompt descriptions tightened on bill-summaries, daily-record,
enacted-laws, senate-nominations, bill-analysis, legislative-research.
- Shared `BILL_TYPE_CODES` constant removes three duplicated literals.