@cyanheads/congressgov-mcp-server 0.9.0 → 0.9.1
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/AGENTS.md +25 -10
- package/CLAUDE.md +25 -10
- package/README.md +10 -5
- package/changelog/0.9.x/0.9.1.md +31 -0
- package/dist/config/server-config.d.ts +0 -7
- package/dist/config/server-config.d.ts.map +1 -1
- package/dist/config/server-config.js +1 -9
- package/dist/config/server-config.js.map +1 -1
- package/dist/mcp-server/tools/definitions/bill-lookup.tool.d.ts +9 -2
- package/dist/mcp-server/tools/definitions/bill-lookup.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/bill-summaries.tool.d.ts +9 -2
- package/dist/mcp-server/tools/definitions/bill-summaries.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/committee-lookup.tool.d.ts +9 -2
- package/dist/mcp-server/tools/definitions/committee-lookup.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/committee-reports.tool.d.ts +9 -2
- package/dist/mcp-server/tools/definitions/committee-reports.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/crs-reports.tool.d.ts +9 -2
- package/dist/mcp-server/tools/definitions/crs-reports.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/daily-record.tool.d.ts +9 -2
- package/dist/mcp-server/tools/definitions/daily-record.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/enacted-laws.tool.d.ts +9 -2
- package/dist/mcp-server/tools/definitions/enacted-laws.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/member-lookup.tool.d.ts +9 -2
- package/dist/mcp-server/tools/definitions/member-lookup.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/roll-votes.tool.d.ts +9 -2
- package/dist/mcp-server/tools/definitions/roll-votes.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/roll-votes.tool.js +3 -2
- package/dist/mcp-server/tools/definitions/roll-votes.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/senate-nominations.tool.d.ts +49 -4
- package/dist/mcp-server/tools/definitions/senate-nominations.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/senate-nominations.tool.js +102 -5
- package/dist/mcp-server/tools/definitions/senate-nominations.tool.js.map +1 -1
- package/dist/mcp-server/tools/format-helpers.d.ts.map +1 -1
- package/dist/mcp-server/tools/format-helpers.js +37 -8
- package/dist/mcp-server/tools/format-helpers.js.map +1 -1
- package/dist/mcp-server/tools/tool-helpers.d.ts +11 -4
- package/dist/mcp-server/tools/tool-helpers.d.ts.map +1 -1
- package/dist/mcp-server/tools/tool-helpers.js +12 -4
- package/dist/mcp-server/tools/tool-helpers.js.map +1 -1
- package/dist/services/call-budget.d.ts +77 -0
- package/dist/services/call-budget.d.ts.map +1 -0
- package/dist/services/call-budget.js +118 -0
- package/dist/services/call-budget.js.map +1 -0
- package/dist/services/congress-api/congress-api-service.d.ts +4 -0
- package/dist/services/congress-api/congress-api-service.d.ts.map +1 -1
- package/dist/services/congress-api/congress-api-service.js +60 -32
- package/dist/services/congress-api/congress-api-service.js.map +1 -1
- package/dist/services/congress-documents/congress-documents-service.d.ts +46 -15
- package/dist/services/congress-documents/congress-documents-service.d.ts.map +1 -1
- package/dist/services/congress-documents/congress-documents-service.js +95 -24
- package/dist/services/congress-documents/congress-documents-service.js.map +1 -1
- package/dist/services/congress-documents/document-body-cache.d.ts +66 -0
- package/dist/services/congress-documents/document-body-cache.d.ts.map +1 -0
- package/dist/services/congress-documents/document-body-cache.js +122 -0
- package/dist/services/congress-documents/document-body-cache.js.map +1 -0
- package/dist/services/congress-mirror/ingest.d.ts +13 -7
- package/dist/services/congress-mirror/ingest.d.ts.map +1 -1
- package/dist/services/congress-mirror/ingest.js +33 -10
- package/dist/services/congress-mirror/ingest.js.map +1 -1
- package/dist/services/congress-mirror/schema.d.ts.map +1 -1
- package/dist/services/congress-mirror/schema.js +15 -1
- package/dist/services/congress-mirror/schema.js.map +1 -1
- package/dist/services/senate-lis/parse.d.ts +23 -0
- package/dist/services/senate-lis/parse.d.ts.map +1 -1
- package/dist/services/senate-lis/parse.js +49 -5
- package/dist/services/senate-lis/parse.js.map +1 -1
- package/dist/services/senate-lis/senate-vote-service.d.ts.map +1 -1
- package/dist/services/senate-lis/senate-vote-service.js +32 -25
- package/dist/services/senate-lis/senate-vote-service.js.map +1 -1
- package/dist/utils/congress-calendar.d.ts +15 -0
- package/dist/utils/congress-calendar.d.ts.map +1 -0
- package/dist/utils/congress-calendar.js +33 -0
- package/dist/utils/congress-calendar.js.map +1 -0
- package/package.json +3 -3
- package/scripts/_mirror-context.ts +15 -9
- package/scripts/congress-mirror-init.ts +1 -1
- package/scripts/congress-mirror-refresh.ts +1 -1
- package/scripts/congress-mirror-verify.ts +5 -4
- package/server.json +3 -3
- package/skills/congressgov-guide/SKILL.md +1 -1
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview One time budget for every upstream request a tool call or
|
|
3
|
+
* resource read makes, shared by `CongressApiService`, `SenateVoteService`, and
|
|
4
|
+
* `CongressDocumentsService`.
|
|
5
|
+
*
|
|
6
|
+
* MCP SDK clients give up on a request after 60 seconds by default. A call can
|
|
7
|
+
* chain several upstream requests — a lookup before a document fetch, a roster
|
|
8
|
+
* paged four times before the request it resolves, a first page and then a
|
|
9
|
+
* parallel stage — and each request runs its own retry ladder, so per-attempt
|
|
10
|
+
* timeouts bound neither the ladder nor the chain: a stalled upstream could run
|
|
11
|
+
* a call past the client's patience, which then sees its own timeout instead of
|
|
12
|
+
* this server's classified error.
|
|
13
|
+
*
|
|
14
|
+
* Every request made for a call therefore spends one {@link CALL_BUDGET_MS}
|
|
15
|
+
* budget counted from the call's start — `ctx.timestamp`, which the framework
|
|
16
|
+
* stamps when the tool call or resource read begins. The request's ladder gets
|
|
17
|
+
* what is left as `withRetry`'s `deadlineMs`, so a backoff or a `Retry-After`
|
|
18
|
+
* wait the remainder cannot hold fails fast instead of sleeping; each attempt's
|
|
19
|
+
* timeout is clamped to the remainder and its I/O carries the budget's signal;
|
|
20
|
+
* a request the budget no longer covers is never sent; and running out is
|
|
21
|
+
* `Timeout` with reason `upstream_timeout`. Requests issued in parallel share
|
|
22
|
+
* the same end instant.
|
|
23
|
+
*
|
|
24
|
+
* A request with no call behind it — the mirror ingester and the `mirror:*`
|
|
25
|
+
* scripts call `CongressApiService` without a context — runs the plain
|
|
26
|
+
* per-request ladder, unbudgeted.
|
|
27
|
+
*
|
|
28
|
+
* @module services/call-budget
|
|
29
|
+
*/
|
|
30
|
+
import { JsonRpcErrorCode, McpError, requestCancelled, timeout, } from '@cyanheads/mcp-ts-core/errors';
|
|
31
|
+
import { withRetry } from '@cyanheads/mcp-ts-core/utils';
|
|
32
|
+
/**
|
|
33
|
+
* The time every upstream request of one call shares. It ends under the
|
|
34
|
+
* 60-second request timeout MCP SDK clients apply by default, leaving room for
|
|
35
|
+
* the classified error to reach the client.
|
|
36
|
+
*/
|
|
37
|
+
export const CALL_BUDGET_MS = 50_000;
|
|
38
|
+
/** Declared once in `congressErrorContracts`, which every tool carries. */
|
|
39
|
+
const UPSTREAM_TIMEOUT = 'upstream_timeout';
|
|
40
|
+
/**
|
|
41
|
+
* Run one upstream request's retry ladder under its call's budget.
|
|
42
|
+
*
|
|
43
|
+
* Throws `Timeout` (`upstream_timeout`, `budgetMs`, `retryAttempts`) when the
|
|
44
|
+
* budget is spent before the request starts or runs out during it. A caller
|
|
45
|
+
* abort keeps precedence: it is never relabelled as the budget's expiry. Every
|
|
46
|
+
* other failure — a rate limit, a `Retry-After` wait the remainder cannot hold,
|
|
47
|
+
* an exhausted ladder that finished inside the budget — leaves unchanged.
|
|
48
|
+
*/
|
|
49
|
+
export async function withCallBudget(fn, options) {
|
|
50
|
+
const { attemptTimeoutMs, call, recovery, request, upstream, ...retry } = options;
|
|
51
|
+
const expired = (attemptsMade, cause) => budgetExpired({ upstream, request, recovery }, attemptsMade, cause);
|
|
52
|
+
let attempts = 0;
|
|
53
|
+
let lastAttemptClamped = false;
|
|
54
|
+
const run = ({ signal, remainingMs }) => {
|
|
55
|
+
attempts++;
|
|
56
|
+
lastAttemptClamped = remainingMs < attemptTimeoutMs;
|
|
57
|
+
return fn({ signal, timeoutMs: Math.min(attemptTimeoutMs, remainingMs) });
|
|
58
|
+
};
|
|
59
|
+
if (call === undefined)
|
|
60
|
+
return withRetry(run, retry);
|
|
61
|
+
const remainingMs = Date.parse(call.timestamp) + CALL_BUDGET_MS - Date.now();
|
|
62
|
+
if (!(remainingMs > 0)) {
|
|
63
|
+
if (retry.signal?.aborted) {
|
|
64
|
+
throw requestCancelled(`${upstream} was not asked for ${request}: the call was cancelled.`);
|
|
65
|
+
}
|
|
66
|
+
throw expired(0);
|
|
67
|
+
}
|
|
68
|
+
try {
|
|
69
|
+
/** Capped at the budget so a clock step backwards cannot hand a request more. */
|
|
70
|
+
return await withRetry(run, { ...retry, deadlineMs: Math.min(remainingMs, CALL_BUDGET_MS) });
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
/**
|
|
74
|
+
* The clock usually ends a clamped attempt through its signal, which
|
|
75
|
+
* `withRetry` reports as its deadline expiry. The attempt's own timer is
|
|
76
|
+
* armed for the same instant, though, and on the last attempt it can fire
|
|
77
|
+
* first — `withRetry` then sees an ordinary timeout and reports the
|
|
78
|
+
* exhausted ladder. Both are this budget running out.
|
|
79
|
+
*/
|
|
80
|
+
if (isRetryDeadlineExpiry(error) || (lastAttemptClamped && endedByAttemptTimeout(error))) {
|
|
81
|
+
throw expired(attempts, error);
|
|
82
|
+
}
|
|
83
|
+
throw error;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/** `withRetry`'s expiry of the `deadlineMs` the budget passed it. */
|
|
87
|
+
function isRetryDeadlineExpiry(error) {
|
|
88
|
+
return (error instanceof McpError &&
|
|
89
|
+
error.code === JsonRpcErrorCode.Timeout &&
|
|
90
|
+
error.data?.reason === 'retry_deadline_exceeded');
|
|
91
|
+
}
|
|
92
|
+
/** Whether `fetchWithTimeout`'s own timer ended the attempt, however the service wrapped it. */
|
|
93
|
+
function endedByAttemptTimeout(error) {
|
|
94
|
+
for (let current = error; current instanceof Error; current = current.cause) {
|
|
95
|
+
if (current instanceof McpError && current.data?.errorSource === 'FetchTimeout')
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* The budget ran out — before the request could start (`attempts` 0) or across
|
|
102
|
+
* the attempts it made. Names the call's budget, never the slice of it this
|
|
103
|
+
* request had left.
|
|
104
|
+
*/
|
|
105
|
+
function budgetExpired({ upstream, request, recovery }, attempts, cause) {
|
|
106
|
+
const seconds = CALL_BUDGET_MS / 1000;
|
|
107
|
+
const message = attempts === 0
|
|
108
|
+
? `${upstream} was not asked for ${request}: this call's ${seconds}-second budget for upstream requests ran out first.`
|
|
109
|
+
: `${upstream} did not deliver ${request} within this call's ${seconds}-second budget for upstream requests (${attempts} attempt${attempts === 1 ? '' : 's'}).`;
|
|
110
|
+
return timeout(message, {
|
|
111
|
+
reason: UPSTREAM_TIMEOUT,
|
|
112
|
+
retryable: true,
|
|
113
|
+
budgetMs: CALL_BUDGET_MS,
|
|
114
|
+
retryAttempts: attempts,
|
|
115
|
+
...(recovery ? { recovery } : {}),
|
|
116
|
+
}, cause === undefined ? undefined : { cause });
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=call-budget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"call-budget.js","sourceRoot":"","sources":["../../src/services/call-budget.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,6 +64,10 @@ export declare class CongressApiService {
|
|
|
64
64
|
private tryNotFound;
|
|
65
65
|
private fetchList;
|
|
66
66
|
private extractPagination;
|
|
67
|
+
/**
|
|
68
|
+
* One request under its call's budget (`call-budget.ts`) when `ctx` is the
|
|
69
|
+
* handler's context; without one — the mirror ingester — the plain ladder.
|
|
70
|
+
*/
|
|
67
71
|
private get;
|
|
68
72
|
private reserveAttempt;
|
|
69
73
|
/** Observed shared hourly remaining is a conservative bound, never a claimed reset time. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"congress-api-service.d.ts","sourceRoot":"","sources":["../../../src/services/congress-api/congress-api-service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"congress-api-service.d.ts","sourceRoot":"","sources":["../../../src/services/congress-api/congress-api-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,28 +2,14 @@
|
|
|
2
2
|
* @fileoverview Congress.gov API v3 client — auth, pagination, rate limiting, response normalization.
|
|
3
3
|
* @module services/congress-api/congress-api-service
|
|
4
4
|
*/
|
|
5
|
-
import { invalidParams, JsonRpcErrorCode, McpError, notFound, rateLimited, serviceUnavailable, } from '@cyanheads/mcp-ts-core/errors';
|
|
6
|
-
import { defaultIsTransient, fetchWithTimeout, requestContextService,
|
|
5
|
+
import { configurationError, invalidParams, JsonRpcErrorCode, McpError, notFound, rateLimited, serviceUnavailable, } from '@cyanheads/mcp-ts-core/errors';
|
|
6
|
+
import { defaultIsTransient, fetchWithTimeout, requestContextService, } from '@cyanheads/mcp-ts-core/utils';
|
|
7
7
|
import { getServerConfig } from '../../config/server-config.js';
|
|
8
|
+
import { withCallBudget } from '../call-budget.js';
|
|
9
|
+
import { ordinal } from '../../utils/congress-calendar.js';
|
|
8
10
|
function isApiRecord(value) {
|
|
9
11
|
return typeof value === 'object' && value !== null;
|
|
10
12
|
}
|
|
11
|
-
/** English ordinal for a congress number — "119" → "119th". */
|
|
12
|
-
function ordinal(n) {
|
|
13
|
-
const lastTwo = n % 100;
|
|
14
|
-
if (lastTwo >= 11 && lastTwo <= 13)
|
|
15
|
-
return `${n}th`;
|
|
16
|
-
switch (n % 10) {
|
|
17
|
-
case 1:
|
|
18
|
-
return `${n}st`;
|
|
19
|
-
case 2:
|
|
20
|
-
return `${n}nd`;
|
|
21
|
-
case 3:
|
|
22
|
-
return `${n}rd`;
|
|
23
|
-
default:
|
|
24
|
-
return `${n}th`;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
13
|
/** Normalize upstream casing: bioguideID → bioguideId. */
|
|
28
14
|
function normalizeVoteResult(item) {
|
|
29
15
|
if (!('bioguideID' in item))
|
|
@@ -180,6 +166,12 @@ const INVALID_REQUEST_RECOVERY = {
|
|
|
180
166
|
hint: 'Check parameter formats — dates must be ISO 8601 (2026-05-01T00:00:00Z) and identifiers must match their documented shape.',
|
|
181
167
|
},
|
|
182
168
|
};
|
|
169
|
+
const API_KEY_REJECTED_RECOVERY = {
|
|
170
|
+
reason: 'api_key_rejected',
|
|
171
|
+
recovery: {
|
|
172
|
+
hint: 'This is a server configuration problem, not a request problem: the operator must replace CONGRESS_API_KEY with a valid api.data.gov key (https://api.data.gov/signup/) or unset it to fall back to the rate-limited DEMO_KEY, then restart the server.',
|
|
173
|
+
},
|
|
174
|
+
};
|
|
183
175
|
const UPSTREAM_ERROR_RECOVERY = {
|
|
184
176
|
reason: 'upstream_error',
|
|
185
177
|
recovery: {
|
|
@@ -199,6 +191,25 @@ function readUpstreamStatus(error) {
|
|
|
199
191
|
function readUpstreamBody(error) {
|
|
200
192
|
return typeof error.data?.body === 'string' ? error.data.body : undefined;
|
|
201
193
|
}
|
|
194
|
+
/**
|
|
195
|
+
* Read an api.data.gov key-rejection code (`API_KEY_MISSING`, `_INVALID`,
|
|
196
|
+
* `_DISABLED`, `_UNAUTHORIZED`, `_UNVERIFIED`) off a captured error body. The
|
|
197
|
+
* gateway in front of api.congress.gov wraps each in
|
|
198
|
+
* `{ "error": { "code", "message" } }`; Congress.gov's own errors carry a
|
|
199
|
+
* string `error` or plain text and read as none.
|
|
200
|
+
*/
|
|
201
|
+
function readGatewayKeyCode(body) {
|
|
202
|
+
if (!body)
|
|
203
|
+
return;
|
|
204
|
+
try {
|
|
205
|
+
const parsed = JSON.parse(body);
|
|
206
|
+
const code = isApiRecord(parsed) && isApiRecord(parsed.error) ? parsed.error.code : undefined;
|
|
207
|
+
return typeof code === 'string' && code.startsWith('API_KEY_') ? code : undefined;
|
|
208
|
+
}
|
|
209
|
+
catch {
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
202
213
|
/**
|
|
203
214
|
* Map an McpError raised by fetchWithTimeout — whose message embeds the full
|
|
204
215
|
* upstream URL and which carries no machine-readable reason — into a clean
|
|
@@ -224,6 +235,15 @@ function classifyUpstreamError(error, path) {
|
|
|
224
235
|
meta.retryAfter = error.data.retryAfter;
|
|
225
236
|
const opts = { cause: error };
|
|
226
237
|
const suffix = status !== undefined ? ` (HTTP ${status})` : '';
|
|
238
|
+
/** A rejected key and a malformed path segment (#34) both arrive as 403, so the
|
|
239
|
+
* gateway's body code, not the status, separates operator configuration from
|
|
240
|
+
* caller input. Resolves cyanheads/congressgov-mcp-server#84. */
|
|
241
|
+
const upstreamCode = error.code === JsonRpcErrorCode.Forbidden || error.code === JsonRpcErrorCode.Unauthorized
|
|
242
|
+
? readGatewayKeyCode(body)
|
|
243
|
+
: undefined;
|
|
244
|
+
if (upstreamCode !== undefined) {
|
|
245
|
+
return configurationError(`Congress.gov's api.data.gov gateway rejected the server's API key with ${upstreamCode}${suffix}.`, { ...meta, retryable: false, upstreamCode, ...API_KEY_REJECTED_RECOVERY }, opts);
|
|
246
|
+
}
|
|
227
247
|
switch (error.code) {
|
|
228
248
|
case JsonRpcErrorCode.RequestCancelled:
|
|
229
249
|
return error;
|
|
@@ -486,24 +506,20 @@ export class CongressApiService {
|
|
|
486
506
|
const nextOffset = raw?.next ? currentOffset + limit : null;
|
|
487
507
|
return { count, nextOffset };
|
|
488
508
|
}
|
|
509
|
+
/**
|
|
510
|
+
* One request under its call's budget (`call-budget.ts`) when `ctx` is the
|
|
511
|
+
* handler's context; without one — the mirror ingester — the plain ladder.
|
|
512
|
+
*/
|
|
489
513
|
// biome-ignore lint/suspicious/noExplicitAny: API responses are dynamic JSON
|
|
490
514
|
get(path, ctx, query) {
|
|
491
515
|
const url = this.buildUrl(path, query);
|
|
492
516
|
const operation = `CongressApiService GET ${path}`;
|
|
493
517
|
const requestContext = this.getRequestContext(ctx, operation);
|
|
494
518
|
const signal = this.getAbortSignal(ctx);
|
|
495
|
-
|
|
496
|
-
operation,
|
|
497
|
-
context: requestContext,
|
|
498
|
-
baseDelayMs: BASE_BACKOFF_MS,
|
|
499
|
-
maxRetries: MAX_ATTEMPTS - 1,
|
|
500
|
-
isTransient: (error) => this.isRetryableError(error),
|
|
501
|
-
...(signal ? { signal } : {}),
|
|
502
|
-
};
|
|
503
|
-
return withRetry(async () => {
|
|
519
|
+
return withCallBudget(async (attempt) => {
|
|
504
520
|
this.reserveAttempt();
|
|
505
521
|
const sequence = ++this.requestSequence;
|
|
506
|
-
const response = await this.fetchResponse(url, path, requestContext,
|
|
522
|
+
const response = await this.fetchResponse(url, path, requestContext, attempt, sequence);
|
|
507
523
|
let text;
|
|
508
524
|
try {
|
|
509
525
|
text = await response.text();
|
|
@@ -514,7 +530,19 @@ export class CongressApiService {
|
|
|
514
530
|
throw error;
|
|
515
531
|
}
|
|
516
532
|
return this.parseJsonResponse(text, path);
|
|
517
|
-
},
|
|
533
|
+
}, {
|
|
534
|
+
call: ctx,
|
|
535
|
+
attemptTimeoutMs: REQUEST_TIMEOUT_MS,
|
|
536
|
+
upstream: 'Congress.gov',
|
|
537
|
+
request: 'the API response',
|
|
538
|
+
recovery: UPSTREAM_ERROR_RECOVERY.recovery,
|
|
539
|
+
operation,
|
|
540
|
+
context: requestContext,
|
|
541
|
+
baseDelayMs: BASE_BACKOFF_MS,
|
|
542
|
+
maxRetries: MAX_ATTEMPTS - 1,
|
|
543
|
+
isTransient: (error) => this.isRetryableError(error),
|
|
544
|
+
...(signal ? { signal } : {}),
|
|
545
|
+
});
|
|
518
546
|
}
|
|
519
547
|
reserveAttempt() {
|
|
520
548
|
const now = Date.now();
|
|
@@ -632,9 +660,9 @@ export class CongressApiService {
|
|
|
632
660
|
const signal = ctx?.signal;
|
|
633
661
|
return isNativeAbortSignal(signal) ? signal : undefined;
|
|
634
662
|
}
|
|
635
|
-
async fetchResponse(url, path, requestContext,
|
|
663
|
+
async fetchResponse(url, path, requestContext, attempt, sequence) {
|
|
636
664
|
try {
|
|
637
|
-
const response = await fetchWithTimeout(url,
|
|
665
|
+
const response = await fetchWithTimeout(url, attempt.timeoutMs, requestContext, {
|
|
638
666
|
headers: { Accept: 'application/json', 'X-Api-Key': this.apiKey },
|
|
639
667
|
errorHeaders: ['x-ratelimit-limit', 'x-ratelimit-remaining'],
|
|
640
668
|
/** Congress.gov answers 404 for any identifier it does not hold, which is an
|
|
@@ -642,7 +670,7 @@ export class CongressApiService {
|
|
|
642
670
|
* tryNotFound turn it into an actionable domain notFound. Listing it drops
|
|
643
671
|
* the framework's log severity to debug; the thrown McpError is unchanged. */
|
|
644
672
|
expectedStatuses: [404],
|
|
645
|
-
|
|
673
|
+
signal: attempt.signal,
|
|
646
674
|
});
|
|
647
675
|
this.observeQuota(response.headers, sequence);
|
|
648
676
|
return response;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"congress-api-service.js","sourceRoot":"","sources":["../../../src/services/congress-api/congress-api-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"congress-api-service.js","sourceRoot":"","sources":["../../../src/services/congress-api/congress-api-service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAwB,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAqCvD,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,0DAA0D;AAC1D,SAAS,mBAAmB,CAAC,IAAe;IAC1C,IAAI,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IACrC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,CAAC;AAC7C,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,IAAe;IACzC,IAAI,UAAU,GAAc,IAAI,CAAC;IAEjC,IAAI,OAAO,UAAU,CAAC,GAAG,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzE,UAAU,GAAG,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,WAAW,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC;IACnE,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,OAAO,GAAc,EAAE,CAAC;QAC9B,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,gBAAgB,EAAE,CAAC;YAChD,IAAI,KAAK,GAAY,KAAK,CAAC;YAC3B,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC9D,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;gBACtC,KAAK,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC;YAClC,CAAC;YACD,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;YACxF,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QACD,UAAU,GAAG,EAAE,GAAG,UAAU,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;IAC5D,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,0DAA0D;AAC1D,SAAS,wBAAwB,CAAC,IAAe;IAC/C,IAAI,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IAC7C,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,aAAa,GAAG,kDAAkD,CAAC;AAEzE;;;;GAIG;AACH,SAAS,MAAM,CAAC,KAAc;IAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;AACxC,CAAC;AAED,SAAS,mCAAmC,CAAC,IAAe;IAC1D,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACrD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3C,OAAO,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AACrF,CAAC;AAED;;;;;;GAMG;AACH,SAAS,sBAAsB,CAAC,QAAqB;IACnD,MAAM,IAAI,GAAgB,EAAE,CAAC;IAC7B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAChF,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAe,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnB,SAAS;QACX,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,mBAAmB,CAAC,SAAoB;IAC/C,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,IAAI,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACjD,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,mBAAmB,EAAE,CAAC;YACpD,IAAI,WAAW,CAAC,OAAO,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,IACE,OAAO,WAAW,KAAK,UAAU;QACjC,OAAO,WAAW,CAAC,SAAS,CAAC,cAAc,KAAK,UAAU;QAC1D,CAAC,KAAK,EACN,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,CAAC,KAAK,YAAY,SAAS,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,oBAAoB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC5C,MAAM,oBAAoB,GAAG,EAAE,GAAG,oBAAoB,CAAC;AACvD,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,MAAM,gBAAgB,GAAG,mCAAmC,CAAC;AAE7D,MAAM,kBAAkB,GACtB,2IAA2I,CAAC;AAE9I;;;;GAIG;AACH,MAAM,kBAAkB,GAAG;IACzB,MAAM,EAAE,WAAW;IACnB,QAAQ,EAAE,EAAE,IAAI,EAAE,yEAAyE,EAAE;CACrF,CAAC;AACX,MAAM,qBAAqB,GAAG;IAC5B,MAAM,EAAE,cAAc;IACtB,QAAQ,EAAE;QACR,IAAI,EAAE,yKAAyK;KAChL;CACO,CAAC;AACX,MAAM,wBAAwB,GAAG;IAC/B,MAAM,EAAE,iBAAiB;IACzB,QAAQ,EAAE;QACR,IAAI,EAAE,4HAA4H;KACnI;CACO,CAAC;AACX,MAAM,yBAAyB,GAAG;IAChC,MAAM,EAAE,kBAAkB;IAC1B,QAAQ,EAAE;QACR,IAAI,EAAE,wPAAwP;KAC/P;CACO,CAAC;AACX,MAAM,uBAAuB,GAAG;IAC9B,MAAM,EAAE,gBAAgB;IACxB,QAAQ,EAAE;QACR,IAAI,EAAE,kFAAkF;KACzF;CACO,CAAC;AAEX;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,KAAe;IACzC,OAAO,OAAO,KAAK,CAAC,IAAI,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAChF,CAAC;AAED,yEAAyE;AACzE,SAAS,gBAAgB,CAAC,KAAe;IACvC,OAAO,OAAO,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5E,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,IAAwB;IAClD,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9F,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACpF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,qBAAqB,CAAC,KAAe,EAAE,IAAY;IAC1D,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,IAAI,GAA4B,EAAE,IAAI,EAAE,CAAC;IAC/C,IAAI,MAAM,KAAK,SAAS;QAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IAC/C,IAAI,IAAI,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACzC,IAAI,KAAK,CAAC,IAAI,EAAE,SAAS,KAAK,KAAK;QAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC5D,IAAI,OAAO,KAAK,CAAC,IAAI,EAAE,UAAU,KAAK,QAAQ;QAAE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;IACxF,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/D;;sEAEkE;IAClE,MAAM,YAAY,GAChB,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,YAAY;QACvF,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC;QAC1B,CAAC,CAAC,SAAS,CAAC;IAChB,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,kBAAkB,CACvB,0EAA0E,YAAY,GAAG,MAAM,GAAG,EAClG,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,yBAAyB,EAAE,EACzE,IAAI,CACL,CAAC;IACJ,CAAC;IAED,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,gBAAgB,CAAC,gBAAgB;YACpC,OAAO,KAAK,CAAC;QACf,KAAK,gBAAgB,CAAC,OAAO;YAC3B,OAAO,IAAI,QAAQ,CACjB,KAAK,CAAC,IAAI,EACV,MAAM,KAAK,SAAS;gBAClB,CAAC,CAAC,wDAAwD,kBAAkB,wBAAwB;gBACpG,CAAC,CAAC,2CAA2C,MAAM,GAAG,EACxD;gBACE,SAAS,EAAE,IAAI;gBACf,GAAG,IAAI;gBACP,MAAM,EAAE,kBAAkB;gBAC1B,QAAQ,EAAE,uBAAuB,CAAC,QAAQ;aAC3C,EACD,IAAI,CACL,CAAC;QACJ,KAAK,gBAAgB,CAAC,WAAW;YAC/B,OAAO,WAAW,CAAC,kBAAkB,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,qBAAqB,EAAE,EAAE,IAAI,CAAC,CAAC;QACtF,KAAK,gBAAgB,CAAC,QAAQ;YAC5B,OAAO,QAAQ,CACb,oDAAoD,EACpD,EAAE,GAAG,IAAI,EAAE,GAAG,kBAAkB,EAAE,EAClC,IAAI,CACL,CAAC;QACJ,KAAK,gBAAgB,CAAC,aAAa,CAAC;QACpC,KAAK,gBAAgB,CAAC,SAAS,CAAC;QAChC,KAAK,gBAAgB,CAAC,YAAY,CAAC;QACnC,KAAK,gBAAgB,CAAC,eAAe;YACnC,OAAO,aAAa,CAClB,iDAAiD,MAAM,GAAG,EAC1D,EAAE,GAAG,IAAI,EAAE,GAAG,wBAAwB,EAAE,EACxC,IAAI,CACL,CAAC;QACJ;YACE,oFAAoF;YACpF,OAAO,IAAI,QAAQ,CACjB,KAAK,CAAC,IAAI,EACV,4CAA4C,MAAM,GAAG,EACrD,EAAE,GAAG,IAAI,EAAE,GAAG,uBAAuB,EAAE,EACvC,IAAI,CACL,CAAC;IACN,CAAC;AACH,CAAC;AAED,MAAM,OAAO,kBAAkB;IACZ,MAAM,CAAS;IACf,OAAO,CAAS;IACzB,QAAQ,GAAa,EAAE,CAAC;IACxB,WAAW,CAAS;IACpB,iBAAiB,CAAqB;IACtC,UAAU,GAAG,CAAC,CAAC;IACf,eAAe,GAAG,CAAC,CAAC;IAE5B;QACE,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1D,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,gBAAgB;IAEhB,SAAS,CAAC,MAAuB,EAAE,GAAa;QAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ;YAC1B,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE;YAC/C,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAqB,EAAE,GAAa;QAChD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CACjC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE,GAAG,CAAC,EACvF,QAAQ,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,UAAU,qBAAqB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,EACnH,EAAE,GAAG,MAAM,EAAE,CACd,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAiB,EAAE,CAAC;IAC1C,CAAC;IAED,kBAAkB,CAAC,MAA6B,EAAE,GAAa;QAC7D,MAAM,IAAI,GAAG,SAAS,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACtG,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,WAAW,CACrB,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAC5C,QAAQ,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,UAAU,YAAY,MAAM,CAAC,WAAW,sBAAsB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAClJ,EAAE,GAAG,MAAM,EAAE,CACd,CAAC;IACJ,CAAC;IAED,eAAe;IAEf,QAAQ,CAAC,MAAsB,EAAE,GAAa;QAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO;YACzB,CAAC,CAAC,QAAQ,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,EAAE;YAC7C,CAAC,CAAC,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAoB,EAAE,GAAa;QAC9C,oGAAoG;QACpG,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CACjC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,EACpF,GAAG,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,QAAQ,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,SAAS,aAAa,EAC1G,EAAE,GAAG,MAAM,EAAE,CACd,CAAC;QACF,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,IAAiB,EAAE,CAAC;IACzC,CAAC;IAED,kBAAkB;IAElB,WAAW,CAAC,MAAyB,EAAE,GAAa;QAClD,MAAM,MAAM,GACV,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACpF,IAAI,IAAI,GAAG,MAAM,CAAC;QAClB,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,IAAI,GAAG,GAAG,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACvC,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;gBAAE,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACnE,CAAC;QACD,MAAM,UAAU,GACd,MAAM,CAAC,aAAa,KAAK,SAAS;YAChC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACjE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,UAAkB,EAAE,GAAa;QAC/C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CACjC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,UAAU,EAAE,EAAE,GAAG,CAAC,EAC5C,UAAU,UAAU,iFAAiF,EACrG,EAAE,UAAU,EAAE,CACf,CAAC;QACF,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAmB,EAAE,CAAC;IAC9C,CAAC;IAED,oBAAoB,CAClB,MAAkC,EAClC,GAAa;QAEb,MAAM,IAAI,GAAG,WAAW,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAC3D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC,WAAW,CACrB,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAC5C,UAAU,MAAM,CAAC,UAAU,aAAa,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,aAAa,EAClF,EAAE,GAAG,MAAM,EAAE,CACd,CAAC;IACJ,CAAC;IAED,qBAAqB;IAErB,cAAc,CAAC,MAA4B,EAAE,GAAa;QACxD,IAAI,IAAI,GAAG,YAAY,CAAC;QACxB,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO;YAAE,IAAI,GAAG,cAAc,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;aAC3F,IAAI,MAAM,CAAC,QAAQ;YAAE,IAAI,GAAG,cAAc,MAAM,CAAC,QAAQ,EAAE,CAAC;aAC5D,IAAI,MAAM,CAAC,OAAO;YAAE,IAAI,GAAG,cAAc,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/D,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,OAAe,EACf,aAAqB,EACrB,GAAa;QAEb,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CACjC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,OAAO,IAAI,aAAa,EAAE,EAAE,GAAG,CAAC,EAC7D,aAAa,aAAa,qBAAqB,OAAO,sNAAsN,EAC5Q,EAAE,OAAO,EAAE,aAAa,EAAE,CAC3B,CAAC;QACF,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAsB,EAAE,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,uBAAuB,CAC3B,MAAkC,EAClC,GAAa;QAEb,MAAM,IAAI,GAAG,cAAc,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QAC1F,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CACnC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAC5C,aAAa,MAAM,CAAC,aAAa,KAAK,MAAM,CAAC,OAAO,YAAY,MAAM,CAAC,WAAW,wNAAwN,EAC1S,EAAE,GAAG,MAAM,EAAE,CACd,CAAC;QACF,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACrC,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,mCAAmC,CAAC,EAAE,CAAC;QACnF,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,gBAAgB;IAEhB,SAAS,CAAC,MAAuB,EAAE,GAAa;QAC9C,OAAO,IAAI,CAAC,SAAS,CACnB,eAAe,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,EAAE,EAClD,oBAAoB,EACpB,MAAM,EACN,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAqB,EAAE,GAAa;QAChD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CACjC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE,GAAG,CAAC,EAC5F,wBAAwB,MAAM,CAAC,UAAU,qBAAqB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,MAAM,CAAC,OAAO,GAAG,EAC7H,EAAE,GAAG,MAAM,EAAE,CACd,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAc,EAAE,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,MAAwC,EACxC,GAAa;QAEb,2JAA2J;QAC3J,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CACjC,GAAG,EAAE,CACH,IAAI,CAAC,GAAG,CACN,eAAe,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU,UAAU,EAC/E,GAAG,CACJ,EACH,wBAAwB,MAAM,CAAC,UAAU,qBAAqB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,MAAM,CAAC,OAAO,GAAG,EAC7H,EAAE,GAAG,MAAM,EAAE,CACd,CAAC;QACF;;;uDAG+C;QAC/C,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,4BAA4B,IAAI,IAAI,CAAc,CAAC;QACzE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;QACrC,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACpF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5F,OAAO;YACL,IAAI,EAAE,KAAK;YACX,IAAI;YACJ,UAAU,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE;SACrD,CAAC;IACJ,CAAC;IAED,sBAAsB;IAEtB,eAAe,CAAC,MAA6B,EAAE,GAAa;QAC1D,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,MAAM,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,QAAgB,EAChB,gBAAwB,EACxB,GAAa;QAEb,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CACjC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,QAAQ,IAAI,gBAAgB,EAAE,EAAE,GAAG,CAAC,EAClE,gBAAgB,gBAAgB,qBAAqB,OAAO,CAAC,QAAQ,CAAC,YAAY,EAClF,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAC/B,CAAC;QACF,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,UAAuB,EAAE,CAAC;IACtD,CAAC;IAED,UAAU,CACR,QAAgB,EAChB,gBAAwB,EACxB,UAAkB,EAClB,MAAyB,EACzB,GAAa;QAEb,OAAO,IAAI,CAAC,WAAW,CACrB,GAAG,EAAE,CACH,IAAI,CAAC,SAAS,CACZ,eAAe,QAAQ,IAAI,gBAAgB,IAAI,UAAU,EAAE,EAC3D,UAAU,EACV,MAAM,EACN,GAAG,CACJ,EACH,iBAAiB,UAAU,mBAAmB,gBAAgB,KAAK,OAAO,CAAC,QAAQ,CAAC,qFAAqF,EACzK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAE,CACpD,CAAC;IACJ,CAAC;IAED,wBAAwB,CACtB,MAAmC,EACnC,GAAa;QAEb,MAAM,IAAI,GAAG,eAAe,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QAC/F,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,WAAW,CACrB,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAC5C,gBAAgB,MAAM,CAAC,gBAAgB,YAAY,MAAM,CAAC,WAAW,sBAAsB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAC/H,EAAE,GAAG,MAAM,EAAE,CACd,CAAC;IACJ,CAAC;IAED,oBAAoB;IAEpB,aAAa,CAAC,MAA2B,EAAE,GAAa;QACtD,IAAI,IAAI,GAAG,YAAY,CAAC;QACxB,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ;YACpC,IAAI,GAAG,cAAc,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;aACvD,IAAI,MAAM,CAAC,QAAQ;YAAE,IAAI,GAAG,cAAc,MAAM,CAAC,QAAQ,EAAE,CAAC;QACjE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC;IAED,sBAAsB;IAEtB,KAAK,CAAC,cAAc,CAAC,MAAyB,EAAE,GAAa;QAC3D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAC7E,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAA0B,EAAE,GAAa;QAC1D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CACjC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,YAAY,EAAE,EAAE,GAAG,CAAC,EACxD,cAAc,MAAM,CAAC,YAAY,kFAAkF,EACnH,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CACtC,CAAC;QACF,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAc,CAAC;QACrD,OAAO,EAAE,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAc,EAAE,CAAC;IAC7D,CAAC;IAED,4BAA4B;IAE5B,KAAK,CAAC,oBAAoB,CACxB,MAAkC,EAClC,GAAa;QAEb,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU;YAC5B,CAAC,CAAC,qBAAqB,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,EAAE;YAC7D,CAAC,CAAC,qBAAqB,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAClE,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,MAAgC,EAChC,GAAa;QAEb,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CACjC,GAAG,EAAE,CACH,IAAI,CAAC,GAAG,CACN,qBAAqB,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,YAAY,EAAE,EAClF,GAAG,CACJ,EACH,oBAAoB,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,YAAY,aAAa,EAC1G,EAAE,GAAG,MAAM,EAAE,CACd,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACtC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YAChF,MAAM,QAAQ,CACZ,oBAAoB,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,YAAY,aAAa,EAC1G,EAAE,GAAG,MAAM,EAAE,GAAG,kBAAkB,EAAE,CACrC,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,MAAmB,EAAE,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,sBAAsB,CAC1B,MAAgC,EAChC,GAAa;QAEb,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CACjC,GAAG,EAAE,CACH,IAAI,CAAC,GAAG,CACN,qBAAqB,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,YAAY,OAAO,EACvF,GAAG,CACJ,EACH,oBAAoB,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,YAAY,kBAAkB,EAC/G,EAAE,GAAG,MAAM,EAAE,CACd,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,EAAE,CAAC;IAC9D,CAAC;IAED,qCAAqC;IAErC,eAAe,CAAC,MAA8B,EAAE,GAAa;QAC3D,OAAO,IAAI,CAAC,SAAS,CAAC,6BAA6B,EAAE,0BAA0B,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAChG,CAAC;IAED,cAAc,CAAC,MAA4B,EAAE,GAAa;QACxD,OAAO,IAAI,CAAC,WAAW,CACrB,GAAG,EAAE,CACH,IAAI,CAAC,SAAS,CACZ,+BAA+B,MAAM,CAAC,YAAY,EAAE,EACpD,0BAA0B,EAC1B,MAAM,EACN,GAAG,CACJ,EACH,UAAU,MAAM,CAAC,YAAY,+CAA+C,EAC5E,EAAE,GAAG,MAAM,EAAE,CACd,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAA8B,EAAE,GAAa;QAClE,MAAM,IAAI,GAAG,+BAA+B,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,WAAW,WAAW,CAAC;QACjG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CACnC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,EACnD,SAAS,MAAM,CAAC,WAAW,cAAc,MAAM,CAAC,YAAY,+CAA+C,EAC3G,EAAE,GAAG,MAAM,EAAE,CACd,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;IACtF,CAAC;IAED,4BAA4B;IAE5B,KAAK,CAAC,kBAAkB,CAAC,GAAa;QACpC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,GAAa;QAC/C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,aAAa,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,mBAAmB;IAEnB;;;;;OAKG;IACK,KAAK,CAAC,WAAW,CACvB,EAAoB,EACpB,OAAe,EACf,IAA6B;QAE7B,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBACzC,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC3C,IACE,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,QAAQ;oBACxC,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,EACvD,CAAC;oBACD,MAAM,QAAQ,CAAC,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,kBAAkB,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;gBAChF,CAAC;YACH,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,SAAS,CACrB,IAAY,EACZ,OAAe,EACf,MAAoD,EACpD,GAAa,EACb,UAAmC;QAEnC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;QAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACtD;uFAC+E;QAC/E,MAAM,KAAK,GACT,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK;YACrD,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC;YACjC,CAAC,CAAC,QAAQ,CAAC;QACf,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjF,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACrC,CAAC;IAEO,iBAAiB,CACvB,GAAwC,EACxC,SAAiB,EACjB,MAAyB;QAEzB,MAAM,KAAK,GAAI,GAAG,EAAE,KAAgB,IAAI,SAAS,CAAC;QAClD,MAAM,aAAa,GAAG,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5D,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,6EAA6E;IACrE,GAAG,CAAC,IAAY,EAAE,GAAa,EAAE,KAA8B;QACrE,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,0BAA0B,IAAI,EAAE,CAAC;QACnD,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAExC,OAAO,cAAc,CACnB,KAAK,EAAE,OAAO,EAAE,EAAE;YAChB,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC;YACxC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YACxF,IAAI,IAAY,CAAC;YACjB,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC/B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,QAAQ;oBAAE,MAAM,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBACxE,MAAM,KAAK,CAAC;YACd,CAAC;YACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC,EACD;YACE,IAAI,EAAE,GAAG;YACT,gBAAgB,EAAE,kBAAkB;YACpC,QAAQ,EAAE,cAAc;YACxB,OAAO,EAAE,kBAAkB;YAC3B,QAAQ,EAAE,uBAAuB,CAAC,QAAQ;YAC1C,SAAS;YACT,OAAO,EAAE,cAAc;YACvB,WAAW,EAAE,eAAe;YAC5B,UAAU,EAAE,YAAY,GAAG,CAAC;YAC5B,WAAW,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAC7D,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9B,CACF,CAAC;IACJ,CAAC;IAEO,cAAc;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAC;QAC3F,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;QACvE,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,IAAI,oBAAoB;YAAE,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACtF,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,GAAG,oBAAoB,CAAC,CAAC,MAAM,CAAC;QAChG,IACE,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC;YAC1D,cAAc,IAAI,IAAI,CAAC,WAAW;YAClC,IAAI,CAAC,iBAAiB,KAAK,CAAC,EAC5B,CAAC;YACD,MAAM,WAAW,CAAC,kBAAkB,EAAE;gBACpC,GAAG,qBAAqB;gBACxB,KAAK,EAAE,eAAe;gBACtB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1D,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS;YAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACrE,CAAC;IAED,4FAA4F;IACpF,YAAY,CAAC,OAAgB,EAAE,QAAgB;QACrD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACvD,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO;QACnD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,CAAC;YAAE,OAAO;QACnE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,SAAS,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;YAAE,OAAO;QAC3D,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,eAAe,GAAG,WAAW;YAAE,OAAO;QACpF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC;QAC/E,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,IAAI,KAAK,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5E,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,WAAmB;QACtC,MAAM,OAAO,GAA2B;YACtC,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,YAAY;YACxB,QAAQ,EAAE,UAAU;YACpB,KAAK,EAAE,iBAAiB;YACxB,UAAU,EAAE,YAAY;YACxB,UAAU,EAAE,YAAY;YACxB,QAAQ,EAAE,UAAU;YACpB,WAAW,EAAE,aAAa;YAC1B,YAAY,EAAE,cAAc;YAC5B,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,WAAW;YACtB,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,QAAQ;SACjB,CAAC;QACF,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC;IAC7C,CAAC;IAEO,QAAQ,CAAC,IAAY,EAAE,KAA8B;QAC3D,uIAAuI;QACvI,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC,CAAC;QAC9C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACvC,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3C,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE;oBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,UAAU,CAChB,MAAoD,EACpD,UAAmC;QAEnC,MAAM,KAAK,GAA2B,EAAE,GAAG,UAAU,EAAE,CAAC;QACxD,IAAI,MAAM,EAAE,KAAK,IAAI,IAAI;YAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9D,IAAI,MAAM,EAAE,MAAM,IAAI,IAAI;YAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,MAAM,EAAE,YAAY;YAAE,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACnE,IAAI,MAAM,EAAE,UAAU;YAAE,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAC7D,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACK,gBAAgB,CAAC,GAAY;QACnC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACvD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QACjC,IAAI,qBAAqB,IAAI,GAAG,IAAI,YAAY,IAAI,GAAG;YAAE,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACzF,MAAM,MAAM,GAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAA2B,IAAI,EAAE,CAAC;QACvF,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CAAC,GAAwB,EAAE,SAAiB;QACnE,OAAO,qBAAqB,CAAC,oBAAoB,CAAC;YAChD,SAAS;YACT,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvC,CAAC,CAAC;IACL,CAAC;IAEO,cAAc,CAAC,GAAa;QAClC,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,CAAC;QAC3B,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,GAAQ,EACR,IAAY,EACZ,cAA8B,EAC9B,OAAwB,EACxB,QAAgB;QAEhB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,EAAE,cAAc,EAAE;gBAC9E,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE;gBACjE,YAAY,EAAE,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;gBAC5D;;;+FAG+E;gBAC/E,gBAAgB,EAAE,CAAC,GAAG,CAAC;gBACvB,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC9C,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf;;;;gDAIoC;YACpC,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;gBAC9B,IAAI,KAAK,CAAC,IAAI,EAAE,OAAO,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAClE,IAAI,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAiC,CAAC,EAAE,QAAQ,CAAC,CAAC;gBACzF,CAAC;gBACD,MAAM,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC3C,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,KAAc;QACrC,OAAO,CACL,CAAC,CAAC,KAAK,YAAY,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,WAAW,CAAC;YAC3E,kBAAkB,CAAC,KAAK,CAAC,CAC1B,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAC,IAAY,EAAE,IAAY;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,kBAAkB,CAAC,mDAAmD,EAAE;gBAC5E,IAAI;gBACJ,GAAG,uBAAuB;aAC3B,CAAC,CAAC;QACL,CAAC;QACD,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,MAAM,kBAAkB,CAAC,iDAAiD,EAAE;gBAC1E,IAAI;gBACJ,GAAG,uBAAuB;aAC3B,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,kBAAkB,CACtB,yCAAyC,EACzC,EAAE,IAAI,EAAE,GAAG,uBAAuB,EAAE,EACpC,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,wBAAwB,CAAC,IAAY;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QAE7D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;YAC9D,MAAM,OAAO,GACX,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;gBAC9B,CAAC,CAAC,MAAM,CAAC,KAAK;gBACd,CAAC,CAAC,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;oBAClC,CAAC,CAAC,MAAM,CAAC,OAAO;oBAChB,CAAC,CAAC,EAAE,CAAC;YACX,OAAO,mCAAmC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF;AAED,IAAI,QAAwC,CAAC;AAE7C,MAAM,UAAU,eAAe;IAC7B,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC,QAAQ;QACX,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;IAC5F,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -8,19 +8,28 @@
|
|
|
8
8
|
* its own service the way `SenateVoteService` does for the Senate LIS feed.
|
|
9
9
|
*
|
|
10
10
|
* Two bounds, deliberately separate:
|
|
11
|
-
* - **The fetch** is bounded by {@link MAX_DOCUMENT_BYTES}, a
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
11
|
+
* - **The fetch** is bounded by {@link MAX_DOCUMENT_BYTES}, a per-attempt timeout,
|
|
12
|
+
* the tool call's one time budget (`call-budget.ts`), which the format lookup
|
|
13
|
+
* before it spends from too, and a content-type allowlist. The body is
|
|
14
|
+
* extracted as it streams and only the requested window is extracted into
|
|
15
|
+
* memory, so the ceiling bounds how long a response may run rather than how
|
|
16
|
+
* much of one fits in a buffer.
|
|
16
17
|
* - **The response** is bounded by an exact character offset/limit window. Offsets
|
|
17
18
|
* index into the extracted plain text and are never snapped to section or
|
|
18
19
|
* paragraph breaks, so feeding `nextOffset` back walks a document with every
|
|
19
20
|
* character returned exactly once — no overlap, no gap.
|
|
20
21
|
*
|
|
22
|
+
* Every window streams the whole body to learn `totalCharacters`, so a walk
|
|
23
|
+
* would fetch its document once per window. Instead the first read of a
|
|
24
|
+
* document that runs past its window keeps the decompressed body in a
|
|
25
|
+
* {@link DocumentBodyCache} (64 MB total, 16 MB per body, 10-minute TTL), and
|
|
26
|
+
* later windows replay those bytes through the same extractor: one fetch per
|
|
27
|
+
* document per TTL. A replay is local work and never touches the time budget.
|
|
28
|
+
*
|
|
21
29
|
* @module services/congress-documents/congress-documents-service
|
|
22
30
|
*/
|
|
23
31
|
import type { Context } from '@cyanheads/mcp-ts-core';
|
|
32
|
+
import { DocumentBodyCache } from './document-body-cache.js';
|
|
24
33
|
import type { DocumentContent, FetchDocumentParams } from './types.js';
|
|
25
34
|
/**
|
|
26
35
|
* Ceiling on a single document. The largest bodies Congress.gov publishes are
|
|
@@ -28,14 +37,18 @@ import type { DocumentContent, FetchDocumentParams } from './types.js';
|
|
|
28
37
|
* 6,790,482 bytes as Formatted Text and 9,812,888 as XML — and both formats of a
|
|
29
38
|
* document have to clear it, since a caller sent to the other one by a recovery
|
|
30
39
|
* hint would hit the same refusal. This clears the largest by better than a
|
|
31
|
-
* factor of two; the
|
|
40
|
+
* factor of two; the per-attempt timeout is what a runaway response meets first.
|
|
32
41
|
*/
|
|
33
42
|
export declare const MAX_DOCUMENT_BYTES = 25000000;
|
|
34
|
-
/**
|
|
43
|
+
/**
|
|
44
|
+
* Bounds one attempt's whole exchange, headers and body — a megabyte-scale body
|
|
45
|
+
* needs the room. Clamped to what is left of the call's budget.
|
|
46
|
+
*/
|
|
35
47
|
export declare const REQUEST_TIMEOUT_MS = 30000;
|
|
36
48
|
export declare class CongressDocumentsService {
|
|
37
49
|
private readonly maxDocumentBytes;
|
|
38
|
-
|
|
50
|
+
private readonly bodyCache;
|
|
51
|
+
constructor(maxDocumentBytes?: number, bodyCache?: DocumentBodyCache);
|
|
39
52
|
/**
|
|
40
53
|
* Fetch one document and return the requested character window of its text.
|
|
41
54
|
*
|
|
@@ -43,11 +56,26 @@ export declare class CongressDocumentsService {
|
|
|
43
56
|
* one — and is still checked against {@link ALLOWED_HOSTS} before any request
|
|
44
57
|
* goes out, so a redirected or malformed upstream link cannot turn this into a
|
|
45
58
|
* general-purpose fetcher.
|
|
59
|
+
*
|
|
60
|
+
* A document whose body is cached is replayed from it with no request at all.
|
|
61
|
+
* Otherwise the fetch spends what is left of the tool call's budget
|
|
62
|
+
* (`call-budget.ts`): running out throws `Timeout` (`upstream_timeout`), and a
|
|
63
|
+
* caller abort ends the call at once.
|
|
46
64
|
*/
|
|
47
65
|
fetchDocument(params: FetchDocumentParams, ctx: Context): Promise<DocumentContent>;
|
|
66
|
+
/**
|
|
67
|
+
* Serve a window from a cached body: the decoder and extractor a fetch feeds,
|
|
68
|
+
* given the body in slices with a macrotask between them, checking the
|
|
69
|
+
* caller's signal at each one.
|
|
70
|
+
*/
|
|
71
|
+
private replayWindow;
|
|
48
72
|
/** Describe the extracted `[offset, offset + limit)` window and what remains. */
|
|
49
73
|
private describeWindow;
|
|
50
74
|
private assertAllowedHost;
|
|
75
|
+
/**
|
|
76
|
+
* One attempt. `attempt.signal` carries both the caller's abort and the call
|
|
77
|
+
* budget, so either ends an exchange already in flight, body included.
|
|
78
|
+
*/
|
|
51
79
|
private doFetch;
|
|
52
80
|
/**
|
|
53
81
|
* A 404 means Congress.gov's metadata named a document its own file host does
|
|
@@ -62,17 +90,20 @@ export declare class CongressDocumentsService {
|
|
|
62
90
|
* Extract the requested character window as the body streams, under a hard
|
|
63
91
|
* byte budget that cancels the stream the moment it is exceeded.
|
|
64
92
|
*
|
|
65
|
-
*
|
|
66
|
-
* across a chunk boundary and the extractor carries its parse
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
93
|
+
* Only the window is extracted into memory: the decoder carries a partial
|
|
94
|
+
* character across a chunk boundary and the extractor carries its parse
|
|
95
|
+
* state. The raw chunks are also captured for the body cache, up to its entry
|
|
96
|
+
* ceiling and no further, so a body past that ceiling keeps the read's live
|
|
97
|
+
* set near the window's own size. Transient allocation still scales with the
|
|
98
|
+
* body — peak RSS is higher than a buffered read of the same document — but
|
|
99
|
+
* it is garbage, not live, so it is concurrent reads rather than one large
|
|
100
|
+
* read that the ceiling has to survive.
|
|
71
101
|
*/
|
|
72
102
|
private readWindow;
|
|
73
103
|
/**
|
|
74
104
|
* A body that dies partway through is the transport failing, not a malformed
|
|
75
|
-
* document — the same classification a connection that never opened gets.
|
|
105
|
+
* document — the same classification a connection that never opened gets. A
|
|
106
|
+
* caller abort mid-body stays the cancellation it is.
|
|
76
107
|
*/
|
|
77
108
|
private readChunk;
|
|
78
109
|
private tooLarge;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"congress-documents-service.d.ts","sourceRoot":"","sources":["../../../src/services/congress-documents/congress-documents-service.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"congress-documents-service.d.ts","sourceRoot":"","sources":["../../../src/services/congress-documents/congress-documents-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAgBtD,OAAO,EAAoB,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE/E,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEvE;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,WAAa,CAAC;AAE7C;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAkDzC,qBAAa,wBAAwB;IAEjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAF5B,YACmB,gBAAgB,GAAE,MAA2B,EAC7C,SAAS,GAAE,iBAA2C,EACrE;IAEJ;;;;;;;;;;;;OAYG;IACG,aAAa,CAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CA0BvF;IAED;;;;OAIG;YACW,YAAY;IAoB1B,iFAAiF;IACjF,OAAO,CAAC,cAAc;IA4BtB,OAAO,CAAC,iBAAiB;IAmBzB;;;OAGG;YACW,OAAO;IAqBrB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAwB1B,OAAO,CAAC,iBAAiB;IAezB,0FAA0F;IAC1F,OAAO,CAAC,oBAAoB;IAQ5B;;;;;;;;;;;;OAYG;YACW,UAAU;IAuCxB;;;;OAIG;YACW,SAAS;IAiBvB,OAAO,CAAC,QAAQ;IAYhB,OAAO,CAAC,gBAAgB;IAOxB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,cAAc;CAIvB;AAID,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED,wBAAgB,oBAAoB,IAAI,wBAAwB,CAO/D"}
|