@blen/fedreg-mcp-server 2.0.10 → 2.1.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/CHANGELOG.md +13 -1
- package/README.md +17 -2
- package/dist/accounts/app.d.ts +16 -0
- package/dist/accounts/app.d.ts.map +1 -0
- package/dist/accounts/app.js +352 -0
- package/dist/accounts/app.js.map +1 -0
- package/dist/accounts/config.d.ts +16 -0
- package/dist/accounts/config.d.ts.map +1 -0
- package/dist/accounts/config.js +50 -0
- package/dist/accounts/config.js.map +1 -0
- package/dist/accounts/crypto.d.ts +18 -0
- package/dist/accounts/crypto.d.ts.map +1 -0
- package/dist/accounts/crypto.js +43 -0
- package/dist/accounts/crypto.js.map +1 -0
- package/dist/accounts/portal.d.ts +8 -0
- package/dist/accounts/portal.d.ts.map +1 -0
- package/dist/accounts/portal.js +170 -0
- package/dist/accounts/portal.js.map +1 -0
- package/dist/accounts/provider.d.ts +2568 -0
- package/dist/accounts/provider.d.ts.map +1 -0
- package/dist/accounts/provider.js +107 -0
- package/dist/accounts/provider.js.map +1 -0
- package/dist/accounts/runtime.d.ts +16 -0
- package/dist/accounts/runtime.d.ts.map +1 -0
- package/dist/accounts/runtime.js +122 -0
- package/dist/accounts/runtime.js.map +1 -0
- package/dist/accounts/store.d.ts +25 -0
- package/dist/accounts/store.d.ts.map +1 -0
- package/dist/accounts/store.js +142 -0
- package/dist/accounts/store.js.map +1 -0
- package/dist/bin.js +31 -18
- package/dist/bin.js.map +1 -1
- package/dist/sdk/bindings.js +1 -1
- package/dist/sdk/bindings.js.map +1 -1
- package/dist/sdk/sources/corpus-loader.d.ts +3 -1
- package/dist/sdk/sources/corpus-loader.d.ts.map +1 -1
- package/dist/sdk/sources/corpus-loader.js +10 -2
- package/dist/sdk/sources/corpus-loader.js.map +1 -1
- package/dist/sdk/sources/ecfr.d.ts.map +1 -1
- package/dist/sdk/sources/ecfr.js +2 -0
- package/dist/sdk/sources/ecfr.js.map +1 -1
- package/dist/sdk/sources/fr.d.ts.map +1 -1
- package/dist/sdk/sources/fr.js +2 -0
- package/dist/sdk/sources/fr.js.map +1 -1
- package/dist/sdk/sources/regs.js +1 -1
- package/dist/sdk/sources/regs.js.map +1 -1
- package/dist/sdk/sources/source.d.ts +5 -4
- package/dist/sdk/sources/source.d.ts.map +1 -1
- package/dist/server/http.js +3 -3
- package/dist/server/http.js.map +1 -1
- package/dist/server/mcpServer.js +2 -2
- package/dist/server/mcpServer.js.map +1 -1
- package/dist/server/stdio.js +1 -1
- package/dist/server/stdio.js.map +1 -1
- package/dist/server/toolCatalog.d.ts +3 -1
- package/dist/server/toolCatalog.d.ts.map +1 -1
- package/dist/server/toolCatalog.js.map +1 -1
- package/dist/server/zodToJsonSchema.d.ts +1 -1
- package/dist/server/zodToJsonSchema.d.ts.map +1 -1
- package/dist/supervisor/index.d.ts +11 -0
- package/dist/supervisor/index.d.ts.map +1 -1
- package/dist/supervisor/index.js +16 -1
- package/dist/supervisor/index.js.map +1 -1
- package/dist/tools/describeSchema.d.ts +1 -1
- package/dist/tools/describeSchema.d.ts.map +1 -1
- package/dist/tools/describeSchema.js +1 -1
- package/dist/tools/describeSchema.js.map +1 -1
- package/dist/tools/execute.d.ts +7 -2
- package/dist/tools/execute.d.ts.map +1 -1
- package/dist/tools/execute.js +15 -4
- package/dist/tools/execute.js.map +1 -1
- package/dist/tools/searchApi.d.ts +1 -1
- package/dist/tools/searchApi.d.ts.map +1 -1
- package/dist/tools/searchApi.js +1 -1
- package/dist/tools/searchApi.js.map +1 -1
- package/dist/util/httpClient.d.ts +30 -4
- package/dist/util/httpClient.d.ts.map +1 -1
- package/dist/util/httpClient.js +121 -50
- package/dist/util/httpClient.js.map +1 -1
- package/dist/util/logger.js +7 -1
- package/dist/util/logger.js.map +1 -1
- package/dist/util/upstreamGate.d.ts +28 -0
- package/dist/util/upstreamGate.d.ts.map +1 -0
- package/dist/util/upstreamGate.js +74 -0
- package/dist/util/upstreamGate.js.map +1 -0
- package/dist/web/assets/blen-logo-BKJFojyj.png +0 -0
- package/dist/web/assets/index--Hn7cjpj.js +299 -0
- package/dist/web/assets/index-bNtg7OeV.css +2 -0
- package/dist/web/index.html +14 -0
- package/package.json +35 -7
|
@@ -2,8 +2,16 @@ import { readFileSync } from 'node:fs';
|
|
|
2
2
|
import { fileURLToPath } from 'node:url';
|
|
3
3
|
import { dirname, resolve } from 'node:path';
|
|
4
4
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
5
|
+
// The corpus files are static; parse each once. Source factories run more than once
|
|
6
|
+
// (buildSupervisor builds sources twice, and account mode builds a regs source per execute).
|
|
7
|
+
const cache = new Map();
|
|
5
8
|
export function loadSourceCorpus(name) {
|
|
6
|
-
|
|
7
|
-
|
|
9
|
+
let corpus = cache.get(name);
|
|
10
|
+
if (!corpus) {
|
|
11
|
+
const path = resolve(__dirname, `../../../schema/${name}.json`);
|
|
12
|
+
corpus = JSON.parse(readFileSync(path, 'utf8'));
|
|
13
|
+
cache.set(name, corpus);
|
|
14
|
+
}
|
|
15
|
+
return corpus;
|
|
8
16
|
}
|
|
9
17
|
//# sourceMappingURL=corpus-loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"corpus-loader.js","sourceRoot":"","sources":["../../../src/sdk/sources/corpus-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAG7C,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"corpus-loader.js","sourceRoot":"","sources":["../../../src/sdk/sources/corpus-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAG7C,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAI1D,oFAAoF;AACpF,6FAA6F;AAC7F,MAAM,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;AAE9C,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,IAAI,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,mBAAmB,IAAI,OAAO,CAAC,CAAC;QAChE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAiB,CAAC;QAChE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecfr.d.ts","sourceRoot":"","sources":["../../../src/sdk/sources/ecfr.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAExD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"ecfr.d.ts","sourceRoot":"","sources":["../../../src/sdk/sources/ecfr.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAExD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CA2B1D"}
|
package/dist/sdk/sources/ecfr.js
CHANGED
|
@@ -5,6 +5,8 @@ export function createEcfrSource(cfg) {
|
|
|
5
5
|
const http = new HttpClient({
|
|
6
6
|
baseUrl: cfg.ecfrBaseUrl, userAgent: cfg.userAgent, timeoutMs: cfg.timeoutMs,
|
|
7
7
|
retries: cfg.retries, cacheTtlMs: cfg.cacheTtlMs, cacheMaxItems: cfg.cacheMaxItems,
|
|
8
|
+
label: 'eCFR API',
|
|
9
|
+
...(cfg.ecfrGate ? { gate: cfg.ecfrGate } : {}),
|
|
8
10
|
...(cfg.dispatcher ? { dispatcher: cfg.dispatcher } : {}),
|
|
9
11
|
});
|
|
10
12
|
const client = new EcfrClient(http);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecfr.js","sourceRoot":"","sources":["../../../src/sdk/sources/ecfr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,MAAM,UAAU,gBAAgB,CAAC,GAAiB;IAChD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC;QAC1B,OAAO,EAAE,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS;QAC5E,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa;QAClF,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1D,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO;QACL,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC;QACpF,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;YACrB,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;YACvC,mBAAmB,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW;YAC7C,6BAA6B,EAAE,MAAM,CAAC,KAAK,CAAC,qBAAqB;YACjE,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;YACjC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;YACvC,qBAAqB,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY;YACjD,sBAAsB,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa;YACnD,yBAAyB,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB;YACzD,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW;SAChD,CAAC;KACH,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"ecfr.js","sourceRoot":"","sources":["../../../src/sdk/sources/ecfr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,MAAM,UAAU,gBAAgB,CAAC,GAAiB;IAChD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC;QAC1B,OAAO,EAAE,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS;QAC5E,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa;QAClF,KAAK,EAAE,UAAU;QACjB,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1D,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO;QACL,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC;QACpF,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;YACrB,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;YACvC,mBAAmB,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW;YAC7C,6BAA6B,EAAE,MAAM,CAAC,KAAK,CAAC,qBAAqB;YACjE,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;YACjC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;YACvC,qBAAqB,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY;YACjD,sBAAsB,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa;YACnD,yBAAyB,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB;YACzD,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW;SAChD,CAAC;KACH,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fr.d.ts","sourceRoot":"","sources":["../../../src/sdk/sources/fr.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAExD,wBAAgB,cAAc,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"fr.d.ts","sourceRoot":"","sources":["../../../src/sdk/sources/fr.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAExD,wBAAgB,cAAc,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CA4BxD"}
|
package/dist/sdk/sources/fr.js
CHANGED
|
@@ -5,6 +5,8 @@ export function createFrSource(cfg) {
|
|
|
5
5
|
const http = new HttpClient({
|
|
6
6
|
baseUrl: cfg.frBaseUrl, userAgent: cfg.userAgent, timeoutMs: cfg.timeoutMs,
|
|
7
7
|
retries: cfg.retries, cacheTtlMs: cfg.cacheTtlMs, cacheMaxItems: cfg.cacheMaxItems,
|
|
8
|
+
label: 'Federal Register API',
|
|
9
|
+
...(cfg.frGate ? { gate: cfg.frGate } : {}),
|
|
8
10
|
...(cfg.dispatcher ? { dispatcher: cfg.dispatcher } : {}),
|
|
9
11
|
});
|
|
10
12
|
const client = new FederalRegisterClient(http);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fr.js","sourceRoot":"","sources":["../../../src/sdk/sources/fr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,MAAM,UAAU,cAAc,CAAC,GAAiB;IAC9C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC;QAC1B,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS;QAC1E,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa;QAClF,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1D,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC/C,OAAO;QACL,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC;QAC5F,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;YACrB,kBAAkB,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM;YAC3C,eAAe,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG;YACrC,mBAAmB,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO;YAC7C,kBAAkB,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM;YAC3C,0BAA0B,EAAE,MAAM,CAAC,gBAAgB,CAAC,OAAO;YAC3D,yBAAyB,EAAE,MAAM,CAAC,gBAAgB,CAAC,MAAM;YACzD,sBAAsB,EAAE,MAAM,CAAC,gBAAgB,CAAC,GAAG;YACnD,0BAA0B,EAAE,MAAM,CAAC,gBAAgB,CAAC,OAAO;YAC3D,eAAe,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;YACrC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG;YACnC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG;YAC/B,wBAAwB,EAAE,MAAM,CAAC,iBAAiB,CAAC,IAAI;YACvD,uBAAuB,EAAE,MAAM,CAAC,iBAAiB,CAAC,GAAG;YACrD,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG;SAChC,CAAC;KACH,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"fr.js","sourceRoot":"","sources":["../../../src/sdk/sources/fr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,MAAM,UAAU,cAAc,CAAC,GAAiB;IAC9C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC;QAC1B,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS;QAC1E,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa;QAClF,KAAK,EAAE,sBAAsB;QAC7B,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1D,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC/C,OAAO;QACL,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC;QAC5F,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;YACrB,kBAAkB,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM;YAC3C,eAAe,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG;YACrC,mBAAmB,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO;YAC7C,kBAAkB,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM;YAC3C,0BAA0B,EAAE,MAAM,CAAC,gBAAgB,CAAC,OAAO;YAC3D,yBAAyB,EAAE,MAAM,CAAC,gBAAgB,CAAC,MAAM;YACzD,sBAAsB,EAAE,MAAM,CAAC,gBAAgB,CAAC,GAAG;YACnD,0BAA0B,EAAE,MAAM,CAAC,gBAAgB,CAAC,OAAO;YAC3D,eAAe,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;YACrC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG;YACnC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG;YAC/B,wBAAwB,EAAE,MAAM,CAAC,iBAAiB,CAAC,IAAI;YACvD,uBAAuB,EAAE,MAAM,CAAC,iBAAiB,CAAC,GAAG;YACrD,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG;SAChC,CAAC;KACH,CAAC;AACJ,CAAC"}
|
package/dist/sdk/sources/regs.js
CHANGED
|
@@ -7,7 +7,7 @@ export function createRegsSource(cfg) {
|
|
|
7
7
|
const http = new HttpClient({
|
|
8
8
|
baseUrl: cfg.regsBaseUrl, userAgent: cfg.userAgent, timeoutMs: cfg.timeoutMs,
|
|
9
9
|
retries: cfg.retries, cacheTtlMs: cfg.cacheTtlMs, cacheMaxItems: cfg.cacheMaxItems,
|
|
10
|
-
retry429: false,
|
|
10
|
+
retry429: false, label: 'Regulations.gov API',
|
|
11
11
|
...(enabled ? { defaultHeaders: { 'X-Api-Key': key } } : {}),
|
|
12
12
|
...(cfg.regsPreflightLimiter ? { preflightLimiter: cfg.regsPreflightLimiter } : {}),
|
|
13
13
|
...(cfg.dispatcher ? { dispatcher: cfg.dispatcher } : {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"regs.js","sourceRoot":"","sources":["../../../src/sdk/sources/regs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,MAAM,UAAU,gBAAgB,CAAC,GAAiB;IAChD,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC;QAC1B,OAAO,EAAE,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS;QAC5E,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa;QAClF,QAAQ,EAAE,KAAK;
|
|
1
|
+
{"version":3,"file":"regs.js","sourceRoot":"","sources":["../../../src/sdk/sources/regs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,MAAM,UAAU,gBAAgB,CAAC,GAAiB;IAChD,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC;QAC1B,OAAO,EAAE,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS;QAC5E,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa;QAClF,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB;QAC7C,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,WAAW,EAAE,GAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1D,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC3C,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,iBAAiB;QACxB,OAAO;QACP,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kHAAkH;QACxJ,MAAM;QACN,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;YACrB,kBAAkB,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM;YAC3C,eAAe,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG;YACrC,iBAAiB,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;YACzC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG;YACnC,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;YACvC,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG;SAClC,CAAC;QACF,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC;KACjC,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Dispatcher } from 'undici';
|
|
2
2
|
import type { CorpusEntry } from '../../search/corpus.js';
|
|
3
|
+
import type { PreflightLimiter, UpstreamGateLike } from '../../util/httpClient.js';
|
|
3
4
|
export interface SourceMeta {
|
|
4
5
|
name: string;
|
|
5
6
|
label: string;
|
|
@@ -26,9 +27,9 @@ export interface SourceConfig {
|
|
|
26
27
|
cacheTtlMs: number;
|
|
27
28
|
cacheMaxItems: number;
|
|
28
29
|
dispatcher?: Dispatcher;
|
|
29
|
-
regsPreflightLimiter?:
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
regsPreflightLimiter?: PreflightLimiter;
|
|
31
|
+
/** Process-wide admission control per public upstream; built once in buildSupervisor. */
|
|
32
|
+
frGate?: UpstreamGateLike;
|
|
33
|
+
ecfrGate?: UpstreamGateLike;
|
|
33
34
|
}
|
|
34
35
|
//# sourceMappingURL=source.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../../src/sdk/sources/source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../../src/sdk/sources/source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEnF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,MAAO,SAAQ,UAAU;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,UAAU,CAAC;IACpB,MAAM,EAAE;QAAE,SAAS,EAAE,WAAW,EAAE,CAAC;QAAC,MAAM,EAAE,WAAW,EAAE,CAAA;KAAE,CAAC;CAC7D;AAID,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC;AAE/E,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,oBAAoB,CAAC,EAAE,gBAAgB,CAAC;IACxC,yFAAyF;IACzF,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B"}
|
package/dist/server/http.js
CHANGED
|
@@ -68,10 +68,10 @@ export async function startHttp(deps, opts) {
|
|
|
68
68
|
// `0` refuses every listen request (the limit check is `open.size >= max`).
|
|
69
69
|
maxSubscriptions: 0,
|
|
70
70
|
// Rejections carry attacker-supplied header/body fragments, so cap what reaches stderr.
|
|
71
|
-
onerror: (err) => log.warn('mcp.handler.error', {
|
|
71
|
+
onerror: (err) => log.warn('mcp.handler.error', { error: truncate(err.message) }),
|
|
72
72
|
});
|
|
73
73
|
const nodeHandler = toNodeHandler(mcpHandler, {
|
|
74
|
-
onerror: (err) => log.warn('mcp.adapter.error', {
|
|
74
|
+
onerror: (err) => log.warn('mcp.adapter.error', { error: truncate(err.message) }),
|
|
75
75
|
});
|
|
76
76
|
const server = createServer(async (req, res) => {
|
|
77
77
|
try {
|
|
@@ -146,7 +146,7 @@ export async function startHttp(deps, opts) {
|
|
|
146
146
|
reply(res, 404, { error: 'not_found' });
|
|
147
147
|
}
|
|
148
148
|
catch (err) {
|
|
149
|
-
log.error('http.unhandled', {
|
|
149
|
+
log.error('http.unhandled', { error: err.message, stack: err.stack });
|
|
150
150
|
if (!res.headersSent)
|
|
151
151
|
reply(res, 500, { error: 'internal' });
|
|
152
152
|
}
|
package/dist/server/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/server/http.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/server/http.ts"],"names":[],"mappings":"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"}
|
package/dist/server/mcpServer.js
CHANGED
|
@@ -34,7 +34,7 @@ function cachedInputSchema(name, jsonSchema) {
|
|
|
34
34
|
return converted;
|
|
35
35
|
}
|
|
36
36
|
export function buildMcpServer(deps, requestCtx) {
|
|
37
|
-
const server = new McpServer({ name: 'fedreg-mcp-server', version: '2.0
|
|
37
|
+
const server = new McpServer({ name: 'fedreg-mcp-server', version: '2.1.0' }, // x-release-version
|
|
38
38
|
{
|
|
39
39
|
capabilities: { tools: {} },
|
|
40
40
|
cacheHints: { 'tools/list': LIST_CACHE_HINT, 'server/discover': LIST_CACHE_HINT },
|
|
@@ -56,7 +56,7 @@ export function buildMcpServer(deps, requestCtx) {
|
|
|
56
56
|
}
|
|
57
57
|
catch (err) {
|
|
58
58
|
const e = err;
|
|
59
|
-
log.warn('tool.error', { tool: tool.name, name: e.name,
|
|
59
|
+
log.warn('tool.error', { tool: tool.name, name: e.name, error: e.message });
|
|
60
60
|
return {
|
|
61
61
|
isError: true,
|
|
62
62
|
content: [{ type: 'text', text: `${e.name}: ${e.message}` }],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcpServer.js","sourceRoot":"","sources":["../../src/server/mcpServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAuB,MAAM,8BAA8B,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAoB,MAAM,kBAAkB,CAAC;AAElE,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAAC;AAEjD,wFAAwF;AACxF,sFAAsF;AACtF,MAAM,eAAe,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,QAAiB,EAAE,CAAC;AAE1E;;;;;;;;;GASG;AACH,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAA6C,CAAC;AAE9E,SAAS,iBAAiB,CAAC,IAAY,EAAE,UAAmB;IAC1D,IAAI,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,cAAc,CAAC,UAA4B,CAAC,CAAC;QACzD,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAiB,EAAE,UAAuB;IACvE,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"mcpServer.js","sourceRoot":"","sources":["../../src/server/mcpServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAuB,MAAM,8BAA8B,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAoB,MAAM,kBAAkB,CAAC;AAElE,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAAC;AAEjD,wFAAwF;AACxF,sFAAsF;AACtF,MAAM,eAAe,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,QAAiB,EAAE,CAAC;AAE1E;;;;;;;;;GASG;AACH,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAA6C,CAAC;AAE9E,SAAS,iBAAiB,CAAC,IAAY,EAAE,UAAmB;IAC1D,IAAI,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,cAAc,CAAC,UAA4B,CAAC,CAAC;QACzD,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAiB,EAAE,UAAuB;IACvE,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,oBAAoB;IACrE;QACE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAC3B,UAAU,EAAE,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE;KAClF,CACF,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;QAClD,MAAM,CAAC,YAAY,CACjB,IAAI,CAAC,IAAI,EACT;YACE,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,iFAAiF;YACjF,kFAAkF;YAClF,kFAAkF;YAClF,8EAA8E;YAC9E,WAAW,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC;SAC5D,EACD,KAAK,EAAE,IAAa,EAAE,EAAE;YACtB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAC9C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YACzF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,GAAY,CAAC;gBACvB,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC5E,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;iBACtE,CAAC;YACJ,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/server/stdio.js
CHANGED
|
@@ -9,7 +9,7 @@ export async function startStdio(deps) {
|
|
|
9
9
|
// process would log `stdio.ready` and then answer every request with -32603 in silence;
|
|
10
10
|
// the v1 `await server.connect(transport)` at least rejected into `bin.fatal`.
|
|
11
11
|
serveStdio(() => buildMcpServer(deps), {
|
|
12
|
-
onerror: (err) => log.error('stdio.error', { name: err.name,
|
|
12
|
+
onerror: (err) => log.error('stdio.error', { name: err.name, error: err.message }),
|
|
13
13
|
});
|
|
14
14
|
log.info('stdio.ready', { sandbox: deps.sandbox.kind });
|
|
15
15
|
}
|
package/dist/server/stdio.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stdio.js","sourceRoot":"","sources":["../../src/server/stdio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAiB;IAChD,yFAAyF;IACzF,EAAE;IACF,uFAAuF;IACvF,qFAAqF;IACrF,wFAAwF;IACxF,+EAA+E;IAC/E,UAAU,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;QACrC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"stdio.js","sourceRoot":"","sources":["../../src/server/stdio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAiB;IAChD,yFAAyF;IACzF,EAAE;IACF,uFAAuF;IACvF,qFAAqF;IACrF,wFAAwF;IACxF,+EAA+E;IAC/E,UAAU,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;QACrC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;KACnF,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AAC1D,CAAC"}
|
|
@@ -14,10 +14,12 @@ export interface ToolDescriptor {
|
|
|
14
14
|
}
|
|
15
15
|
export interface CatalogDeps {
|
|
16
16
|
sdk: Sdk;
|
|
17
|
+
sdkForSubject?: (subject?: string) => Promise<Sdk>;
|
|
17
18
|
sandbox: SandboxRunner;
|
|
18
19
|
corpus: Corpus;
|
|
19
20
|
regsMaxCallsPerExecute: number;
|
|
20
|
-
regsSubjectQuota
|
|
21
|
+
regsSubjectQuota?: SubjectQuota;
|
|
22
|
+
publicMaxCallsPerExecute?: number;
|
|
21
23
|
}
|
|
22
24
|
export declare function buildCatalog(deps: CatalogDeps, requestCtx?: RequestCtx): ToolDescriptor[];
|
|
23
25
|
//# sourceMappingURL=toolCatalog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolCatalog.d.ts","sourceRoot":"","sources":["../../src/server/toolCatalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAyB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,eAAe,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,GAAG,CAAC;IACT,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB,EAAE,MAAM,CAAC;IAC/B,gBAAgB,EAAE,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"toolCatalog.d.ts","sourceRoot":"","sources":["../../src/server/toolCatalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAyB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,eAAe,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,GAAG,CAAC;IACT,aAAa,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACnD,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB,EAAE,MAAM,CAAC;IAC/B,gBAAgB,CAAC,EAAE,YAAY,CAAC;IAChC,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,cAAc,EAAE,CAkCzF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolCatalog.js","sourceRoot":"","sources":["../../src/server/toolCatalog.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,OAAO,EAAmB,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"toolCatalog.js","sourceRoot":"","sources":["../../src/server/toolCatalog.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,OAAO,EAAmB,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAyBvD,MAAM,UAAU,YAAY,CAAC,IAAiB,EAAE,UAAuB;IACrE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1E,OAAO;QACL;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,qCAAqC;YAC5C,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;YACvG,WAAW,EACT,0FAA0F,KAAK,0EAA0E;YAC3K,WAAW,EAAE,eAAe,CAAC,cAAc,CAAC;YAC5C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;SAC5E;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE,gCAAgC;YACvC,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;YACvG,WAAW,EACT,+HAA+H,UAAU,IAAI;YAC/I,WAAW,EAAE,eAAe,CAAC,mBAAmB,CAAC;YACjD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;SAC9F;QACD;YACE,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,+BAA+B;YACtC,2EAA2E;YAC3E,0EAA0E;YAC1E,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;YACtG,WAAW,EACT,wIAAwI,KAAK,4EAA4E;YAC3N,WAAW,EAAE,eAAe,CAAC,YAAY,CAAC;YAC1C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC;SAC7E;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zodToJsonSchema.d.ts","sourceRoot":"","sources":["../../src/server/zodToJsonSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"zodToJsonSchema.d.ts","sourceRoot":"","sources":["../../src/server/zodToJsonSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqC7E"}
|
|
@@ -14,6 +14,17 @@ export interface SupervisorConfig {
|
|
|
14
14
|
regsMaxCallsPerExecute: number;
|
|
15
15
|
regsRatePerHour: number;
|
|
16
16
|
regsSubjectRatePerHour: number;
|
|
17
|
+
/** Per public upstream (fr, ecfr), shared by every user: requests in flight and started per second. */
|
|
18
|
+
upstreamConcurrency?: number;
|
|
19
|
+
upstreamRatePerSec?: number;
|
|
20
|
+
/** Longest a call waits for an upstream slot before failing with RateLimited. */
|
|
21
|
+
upstreamMaxWaitMs?: number;
|
|
22
|
+
publicMaxCallsPerExecute?: number;
|
|
17
23
|
}
|
|
24
|
+
export declare const UPSTREAM_DEFAULTS: {
|
|
25
|
+
readonly concurrency: 8;
|
|
26
|
+
readonly ratePerSec: 10;
|
|
27
|
+
readonly maxWaitMs: 15000;
|
|
28
|
+
};
|
|
18
29
|
export declare function buildSupervisor(cfg: SupervisorConfig): Promise<CatalogDeps>;
|
|
19
30
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/supervisor/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/supervisor/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,WAAW,CAAC;IACrB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,uGAAuG;IACvG,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,eAAO,MAAM,iBAAiB;;;;CAAiE,CAAC;AAEhG,wBAAsB,eAAe,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CAmBjF"}
|
package/dist/supervisor/index.js
CHANGED
|
@@ -3,7 +3,9 @@ import { getSources } from '../sdk/sources/index.js';
|
|
|
3
3
|
import { buildCorpus } from '../search/corpus.js';
|
|
4
4
|
import { pickSandbox } from '../sandbox/index.js';
|
|
5
5
|
import { TokenBucket } from '../util/tokenBucket.js';
|
|
6
|
+
import { UpstreamGate } from '../util/upstreamGate.js';
|
|
6
7
|
import { SubjectQuota } from '../util/quotas.js';
|
|
8
|
+
export const UPSTREAM_DEFAULTS = { concurrency: 8, ratePerSec: 10, maxWaitMs: 15_000 };
|
|
7
9
|
export async function buildSupervisor(cfg) {
|
|
8
10
|
const regsLimiter = new TokenBucket(cfg.regsRatePerHour / 3600, cfg.regsRatePerHour);
|
|
9
11
|
const sourceCfg = {
|
|
@@ -11,12 +13,25 @@ export async function buildSupervisor(cfg) {
|
|
|
11
13
|
regsApiKey: cfg.regsApiKey, userAgent: cfg.userAgent, timeoutMs: cfg.upstreamTimeoutMs,
|
|
12
14
|
retries: cfg.upstreamRetries, cacheTtlMs: cfg.cacheTtlMs, cacheMaxItems: cfg.cacheMaxItems,
|
|
13
15
|
regsPreflightLimiter: regsLimiter,
|
|
16
|
+
// One gate per upstream, shared by both source sets buildSupervisor creates.
|
|
17
|
+
frGate: publicGate(cfg), ecfrGate: publicGate(cfg),
|
|
14
18
|
};
|
|
15
19
|
const sources = getSources(sourceCfg);
|
|
16
20
|
const sdk = buildSdk(sourceCfg);
|
|
17
21
|
const corpus = buildCorpus(sources);
|
|
18
22
|
const sandbox = await pickSandbox(cfg.sandbox);
|
|
19
23
|
const regsSubjectQuota = new SubjectQuota(cfg.regsSubjectRatePerHour, 60 * 60 * 1000);
|
|
20
|
-
return {
|
|
24
|
+
return {
|
|
25
|
+
sdk, sandbox, corpus, regsMaxCallsPerExecute: cfg.regsMaxCallsPerExecute, regsSubjectQuota,
|
|
26
|
+
publicMaxCallsPerExecute: cfg.publicMaxCallsPerExecute,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function publicGate(cfg) {
|
|
30
|
+
const ratePerSec = cfg.upstreamRatePerSec ?? UPSTREAM_DEFAULTS.ratePerSec;
|
|
31
|
+
return new UpstreamGate({
|
|
32
|
+
concurrency: cfg.upstreamConcurrency ?? UPSTREAM_DEFAULTS.concurrency,
|
|
33
|
+
ratePerSec, burst: Math.max(1, Math.ceil(ratePerSec)),
|
|
34
|
+
maxWaitMs: cfg.upstreamMaxWaitMs ?? UPSTREAM_DEFAULTS.maxWaitMs,
|
|
35
|
+
});
|
|
21
36
|
}
|
|
22
37
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/supervisor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/supervisor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AA0BjD,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAW,CAAC;AAEhG,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAqB;IACzD,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,eAAe,GAAG,IAAI,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;IACrF,MAAM,SAAS,GAAG;QAChB,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW;QACpF,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,iBAAiB;QACtF,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa;QAC1F,oBAAoB,EAAE,WAAW;QACjC,6EAA6E;QAC7E,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC;KACnD,CAAC;IACF,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,gBAAgB,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,sBAAsB,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IACtF,OAAO;QACL,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,sBAAsB,EAAE,GAAG,CAAC,sBAAsB,EAAE,gBAAgB;QAC1F,wBAAwB,EAAE,GAAG,CAAC,wBAAwB;KACvD,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,GAAqB;IACvC,MAAM,UAAU,GAAG,GAAG,CAAC,kBAAkB,IAAI,iBAAiB,CAAC,UAAU,CAAC;IAC1E,OAAO,IAAI,YAAY,CAAC;QACtB,WAAW,EAAE,GAAG,CAAC,mBAAmB,IAAI,iBAAiB,CAAC,WAAW;QACrE,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrD,SAAS,EAAE,GAAG,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,SAAS;KAChE,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"describeSchema.d.ts","sourceRoot":"","sources":["../../src/tools/describeSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"describeSchema.d.ts","sourceRoot":"","sources":["../../src/tools/describeSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE7E,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;EAG+E,CAAC;AAChH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEvE,MAAM,MAAM,oBAAoB,GAC5B;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC;AAE5J,wBAAgB,cAAc,CAAC,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,oBAAoB,CAMnH"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
1
|
+
import { z } from 'zod/v3';
|
|
2
2
|
import { lookupByPathOrPrefix } from '../search/corpus.js';
|
|
3
3
|
export const DescribeSchemaInput = z.object({
|
|
4
4
|
path: z.string().optional().describe("Exact dotted id, e.g. 'fr.documents.search' or 'regs.comments.search'"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"describeSchema.js","sourceRoot":"","sources":["../../src/tools/describeSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"describeSchema.js","sourceRoot":"","sources":["../../src/tools/describeSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAoB,MAAM,qBAAqB,CAAC;AAE7E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uEAAuE,CAAC;IAC7G,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;CAC9F,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC,CAAC;AAOhH,MAAM,UAAU,cAAc,CAAC,KAA2B,EAAE,OAAiC;IAC3F,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAClD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,sBAAsB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;IAC9H,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC;AAC3K,CAAC"}
|
package/dist/tools/execute.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
1
|
+
import { z } from 'zod/v3';
|
|
2
2
|
import type { Sdk } from '../sdk/bindings.js';
|
|
3
3
|
import type { SandboxRunner } from '../sandbox/types.js';
|
|
4
4
|
import { SubjectQuota } from '../util/quotas.js';
|
|
@@ -18,10 +18,15 @@ export declare const ExecuteInput: z.ZodObject<{
|
|
|
18
18
|
export type ExecuteInputT = z.infer<typeof ExecuteInput>;
|
|
19
19
|
export interface ExecuteDeps {
|
|
20
20
|
sdk: Sdk;
|
|
21
|
+
sdkForSubject?: (subject?: string) => Promise<Sdk>;
|
|
21
22
|
sandbox: SandboxRunner;
|
|
22
23
|
regsMaxCallsPerExecute: number;
|
|
23
|
-
|
|
24
|
+
/** Absent in account mode, which limits regs per account in PostgreSQL instead. */
|
|
25
|
+
regsSubjectQuota?: SubjectQuota;
|
|
26
|
+
/** fr/ecfr calls allowed per execute; defaults to PUBLIC_MAX_CALLS_PER_EXECUTE. */
|
|
27
|
+
publicMaxCallsPerExecute?: number;
|
|
24
28
|
}
|
|
29
|
+
export declare const PUBLIC_MAX_CALLS_PER_EXECUTE = 100;
|
|
25
30
|
/**
|
|
26
31
|
* Per-request context, re-derived from the caller's bearer token on every HTTP request.
|
|
27
32
|
* stdio has no subject.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/tools/execute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/tools/execute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,eAAO,MAAM,YAAY;;;;;;;;;;;;EAIvB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,GAAG,CAAC;IACT,aAAa,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACnD,OAAO,EAAE,aAAa,CAAC;IACvB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,mFAAmF;IACnF,gBAAgB,CAAC,EAAE,YAAY,CAAC;IAChC,mFAAmF;IACnF,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAEhD;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,UAAU,gDA+B7F"}
|
package/dist/tools/execute.js
CHANGED
|
@@ -1,19 +1,23 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
1
|
+
import { z } from 'zod/v3';
|
|
2
2
|
import { dispatch } from '../sdk/runtime.js';
|
|
3
3
|
export const ExecuteInput = z.object({
|
|
4
4
|
code: z.string().min(1).describe('JavaScript to run inside the sandbox (plain JS: TypeScript type annotations are rejected; top-level await/return are allowed). SDK globals are bound per source (e.g. `fr`, `ecfr`, `regs`).'),
|
|
5
5
|
timeoutMs: z.number().int().min(100).max(60_000).default(15_000),
|
|
6
6
|
memoryMb: z.number().int().min(16).max(256).default(64),
|
|
7
7
|
});
|
|
8
|
+
export const PUBLIC_MAX_CALLS_PER_EXECUTE = 100;
|
|
8
9
|
export async function execute(input, deps, requestCtx) {
|
|
10
|
+
const sdk = deps.sdkForSubject ? await deps.sdkForSubject(requestCtx?.subject) : deps.sdk;
|
|
9
11
|
let regsCalls = 0;
|
|
10
|
-
|
|
12
|
+
let publicCalls = 0;
|
|
13
|
+
const publicBudget = deps.publicMaxCallsPerExecute ?? PUBLIC_MAX_CALLS_PER_EXECUTE;
|
|
14
|
+
return deps.sandbox.execute({ code: input.code, timeoutMs: input.timeoutMs, memoryMb: input.memoryMb, bindings: sdk.registeredNames }, {
|
|
11
15
|
dispatch: (req) => {
|
|
12
16
|
if (req.binding === 'regs') {
|
|
13
17
|
if (regsCalls >= deps.regsMaxCallsPerExecute) {
|
|
14
18
|
return Promise.resolve({ ok: false, error: { name: 'RegsCallBudgetExceeded', message: `Exceeded the per-execute regulations.gov call budget (${deps.regsMaxCallsPerExecute}). Narrow your query or paginate across separate execute calls.` } });
|
|
15
19
|
}
|
|
16
|
-
if (requestCtx?.subject) {
|
|
20
|
+
if (requestCtx?.subject && deps.regsSubjectQuota) {
|
|
17
21
|
const q = deps.regsSubjectQuota.consume(requestCtx.subject);
|
|
18
22
|
if (!q.allowed) {
|
|
19
23
|
return Promise.resolve({ ok: false, error: { name: 'RegsSubjectQuotaExceeded', message: `Per-subject regulations.gov quota exceeded. Try again after ${new Date(q.resetAt).toISOString()}.` } });
|
|
@@ -21,7 +25,14 @@ export async function execute(input, deps, requestCtx) {
|
|
|
21
25
|
}
|
|
22
26
|
regsCalls++;
|
|
23
27
|
}
|
|
24
|
-
|
|
28
|
+
else {
|
|
29
|
+
// Every user shares this server's footprint on the public APIs; cap what one execute can spend.
|
|
30
|
+
if (publicCalls >= publicBudget) {
|
|
31
|
+
return Promise.resolve({ ok: false, error: { name: 'CallBudgetExceeded', message: `Exceeded the per-execute Federal Register/eCFR call budget (${publicBudget}). Narrow your query, use getMany for batches, or split the work across separate execute calls.` } });
|
|
32
|
+
}
|
|
33
|
+
publicCalls++;
|
|
34
|
+
}
|
|
35
|
+
return dispatch(sdk, req);
|
|
25
36
|
},
|
|
26
37
|
});
|
|
27
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/tools/execute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/tools/execute.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchApi.d.ts","sourceRoot":"","sources":["../../src/tools/searchApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"searchApi.d.ts","sourceRoot":"","sources":["../../src/tools/searchApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,eAAO,MAAM,cAAc;;;;;;;;;EAGzB,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE7D,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IACxD,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;CAC1E;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAOrG"}
|
package/dist/tools/searchApi.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
1
|
+
import { z } from 'zod/v3';
|
|
2
2
|
export const SearchApiInput = z.object({
|
|
3
3
|
query: z.string().min(1).describe('Free-text query over endpoint and field documentation across all bound sources (fr.*, ecfr.*, regs.*).'),
|
|
4
4
|
k: z.number().int().min(1).max(50).default(10).describe('Max number of results to return'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchApi.js","sourceRoot":"","sources":["../../src/tools/searchApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"searchApi.js","sourceRoot":"","sources":["../../src/tools/searchApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,wGAAwG,CAAC;IAC3I,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;CAC3F,CAAC,CAAC;AAQH,MAAM,UAAU,SAAS,CAAC,KAAsB,EAAE,MAAc;IAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACzD,MAAM,IAAI,GAAgB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACvC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC;QACpC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;IAC1K,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,4KAA4K,EAAE,CAAC;AACtM,CAAC"}
|
|
@@ -8,11 +8,28 @@ export interface HttpClientOptions {
|
|
|
8
8
|
cacheMaxItems?: number;
|
|
9
9
|
dispatcher?: Dispatcher;
|
|
10
10
|
defaultHeaders?: Record<string, string>;
|
|
11
|
+
/** Retry an upstream 429 once, after its Retry-After (capped by maxRetryAfterMs). Default true. */
|
|
11
12
|
retry429?: boolean;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
/** Longest a 429's Retry-After may delay a retry or pause the gate. Default 5000. */
|
|
14
|
+
maxRetryAfterMs?: number;
|
|
15
|
+
preflightLimiter?: PreflightLimiter;
|
|
16
|
+
/** Shared per-upstream admission control (see UpstreamGate). */
|
|
17
|
+
gate?: UpstreamGateLike;
|
|
18
|
+
/** Human name of the upstream, used in error messages and logs, e.g. 'Federal Register API'. */
|
|
19
|
+
label?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Admission check run after the cache and in-flight dedupe, once per upstream request (not per
|
|
23
|
+
* retry). May be async, e.g. account mode's per-account limit kept in PostgreSQL.
|
|
24
|
+
*/
|
|
25
|
+
export interface PreflightLimiter {
|
|
26
|
+
tryTake(): boolean | Promise<boolean>;
|
|
27
|
+
secondsUntilNext?(): number;
|
|
28
|
+
}
|
|
29
|
+
/** What HttpClient needs from an UpstreamGate; injectable for tests. */
|
|
30
|
+
export interface UpstreamGateLike {
|
|
31
|
+
acquire(): Promise<() => void>;
|
|
32
|
+
pause(ms: number): void;
|
|
16
33
|
}
|
|
17
34
|
export interface CallOptions {
|
|
18
35
|
method?: 'GET' | 'POST';
|
|
@@ -31,16 +48,25 @@ export declare class HttpClient {
|
|
|
31
48
|
private readonly timeoutMs;
|
|
32
49
|
private readonly retries;
|
|
33
50
|
private readonly retry429;
|
|
51
|
+
private readonly maxRetryAfterMs;
|
|
34
52
|
private readonly dispatcher?;
|
|
35
53
|
private readonly preflightLimiter?;
|
|
54
|
+
private readonly gate?;
|
|
55
|
+
private readonly label;
|
|
56
|
+
/** Identical GETs already on the wire; later callers share the first one's result. */
|
|
57
|
+
private readonly inflight;
|
|
36
58
|
constructor(opts: HttpClientOptions);
|
|
37
59
|
call<T = unknown>(o: CallOptions): Promise<T>;
|
|
60
|
+
private fetchWithRetry;
|
|
61
|
+
/** One request, holding a gate slot only while it is on the wire. */
|
|
62
|
+
private attempt;
|
|
38
63
|
private cacheKey;
|
|
39
64
|
private buildUrl;
|
|
40
65
|
}
|
|
41
66
|
export declare class HttpError extends Error {
|
|
42
67
|
readonly status: number;
|
|
43
68
|
readonly bodySnippet: string;
|
|
69
|
+
retryAfterMs?: number;
|
|
44
70
|
constructor(message: string, status: number, bodySnippet: string);
|
|
45
71
|
}
|
|
46
72
|
//# sourceMappingURL=httpClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpClient.d.ts","sourceRoot":"","sources":["../../src/util/httpClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AASlD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"httpClient.d.ts","sourceRoot":"","sources":["../../src/util/httpClient.ts"],"names":[],"mappings":"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"}
|