@cyanheads/pubmed-mcp-server 2.6.11 → 2.7.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/CLAUDE.md +2 -2
- package/README.md +36 -14
- package/dist/config/server-config.d.ts +6 -0
- package/dist/config/server-config.d.ts.map +1 -1
- package/dist/config/server-config.js +52 -0
- package/dist/config/server-config.js.map +1 -1
- package/dist/index.js +19 -12
- package/dist/index.js.map +1 -1
- package/dist/mcp-server/tools/definitions/fetch-fulltext.tool.d.ts +71 -23
- package/dist/mcp-server/tools/definitions/fetch-fulltext.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/fetch-fulltext.tool.js +671 -141
- package/dist/mcp-server/tools/definitions/fetch-fulltext.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/find-related.tool.d.ts +0 -1
- package/dist/mcp-server/tools/definitions/find-related.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/find-related.tool.js +21 -41
- package/dist/mcp-server/tools/definitions/find-related.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/pubmed-europepmc-search.tool.d.ts +87 -0
- package/dist/mcp-server/tools/definitions/pubmed-europepmc-search.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/pubmed-europepmc-search.tool.js +217 -0
- package/dist/mcp-server/tools/definitions/pubmed-europepmc-search.tool.js.map +1 -0
- package/dist/services/error-contracts.d.ts +18 -1
- package/dist/services/error-contracts.d.ts.map +1 -1
- package/dist/services/error-contracts.js +21 -4
- package/dist/services/error-contracts.js.map +1 -1
- package/dist/services/europe-pmc/api-client.d.ts +47 -0
- package/dist/services/europe-pmc/api-client.d.ts.map +1 -0
- package/dist/services/europe-pmc/api-client.js +123 -0
- package/dist/services/europe-pmc/api-client.js.map +1 -0
- package/dist/services/europe-pmc/europe-pmc-service.d.ts +71 -0
- package/dist/services/europe-pmc/europe-pmc-service.d.ts.map +1 -0
- package/dist/services/europe-pmc/europe-pmc-service.js +243 -0
- package/dist/services/europe-pmc/europe-pmc-service.js.map +1 -0
- package/dist/services/europe-pmc/request-queue.d.ts +33 -0
- package/dist/services/europe-pmc/request-queue.d.ts.map +1 -0
- package/dist/services/europe-pmc/request-queue.js +107 -0
- package/dist/services/europe-pmc/request-queue.js.map +1 -0
- package/dist/services/europe-pmc/types.d.ts +123 -0
- package/dist/services/europe-pmc/types.d.ts.map +1 -0
- package/dist/services/europe-pmc/types.js +16 -0
- package/dist/services/europe-pmc/types.js.map +1 -0
- package/dist/services/ncbi/ncbi-service.d.ts +6 -7
- package/dist/services/ncbi/ncbi-service.d.ts.map +1 -1
- package/dist/services/ncbi/ncbi-service.js +11 -11
- package/dist/services/ncbi/ncbi-service.js.map +1 -1
- package/dist/services/ncbi/request-queue.d.ts +26 -11
- package/dist/services/ncbi/request-queue.d.ts.map +1 -1
- package/dist/services/ncbi/request-queue.js +94 -52
- package/dist/services/ncbi/request-queue.js.map +1 -1
- package/dist/services/ncbi/response-handler.js +1 -1
- package/dist/services/unpaywall/unpaywall-service.d.ts.map +1 -1
- package/dist/services/unpaywall/unpaywall-service.js +14 -13
- package/dist/services/unpaywall/unpaywall-service.js.map +1 -1
- package/package.json +7 -6
- package/server.json +4 -4
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Rate-limited request scheduler for Europe PMC calls. Caps
|
|
3
|
+
* concurrent in-flight requests and enforces a minimum start-gap between
|
|
4
|
+
* dispatches to stay polite with EBI's infrastructure. Independent rate
|
|
5
|
+
* domain from NCBI's queue — Europe PMC runs on a different host with its
|
|
6
|
+
* own limits.
|
|
7
|
+
* @module src/services/europe-pmc/request-queue
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Schedules Europe PMC requests against two independent ceilings:
|
|
11
|
+
*
|
|
12
|
+
* - **Throughput** (`minStartGapMs`): minimum delay between two consecutive
|
|
13
|
+
* dispatch times. Defaults to 200ms to be polite with EBI.
|
|
14
|
+
* - **Concurrency** (`maxConcurrent`): maximum simultaneous in-flight
|
|
15
|
+
* requests. Decouples concurrency from rate so slow upstream responses
|
|
16
|
+
* don't block new dispatches.
|
|
17
|
+
*
|
|
18
|
+
* Enqueue accepts an optional `AbortSignal` so callers can bound their total
|
|
19
|
+
* time inside the scheduler — when the signal fires, a still-waiting task
|
|
20
|
+
* rejects immediately instead of sitting behind a saturated worker.
|
|
21
|
+
*/
|
|
22
|
+
export declare class EuropePmcRequestQueue {
|
|
23
|
+
private readonly waiters;
|
|
24
|
+
private readonly minStartGapMs;
|
|
25
|
+
private readonly maxConcurrent;
|
|
26
|
+
private inFlight;
|
|
27
|
+
private lastStartTime;
|
|
28
|
+
private nextDispatchTimer;
|
|
29
|
+
constructor(minStartGapMs: number, maxConcurrent?: number);
|
|
30
|
+
enqueue<T>(task: () => Promise<T>, label: string, signal?: AbortSignal): Promise<T>;
|
|
31
|
+
private tryDispatch;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=request-queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-queue.d.ts","sourceRoot":"","sources":["../../../src/services/europe-pmc/request-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAeH;;;;;;;;;;;;GAYG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,iBAAiB,CAA4C;gBAEzD,aAAa,EAAE,MAAM,EAAE,aAAa,GAAE,MAA+B;IAKjF,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;IA+BnF,OAAO,CAAC,WAAW;CAoDpB"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Rate-limited request scheduler for Europe PMC calls. Caps
|
|
3
|
+
* concurrent in-flight requests and enforces a minimum start-gap between
|
|
4
|
+
* dispatches to stay polite with EBI's infrastructure. Independent rate
|
|
5
|
+
* domain from NCBI's queue — Europe PMC runs on a different host with its
|
|
6
|
+
* own limits.
|
|
7
|
+
* @module src/services/europe-pmc/request-queue
|
|
8
|
+
*/
|
|
9
|
+
import { logger, requestContextService } from '@cyanheads/mcp-ts-core/utils';
|
|
10
|
+
const DEFAULT_MAX_CONCURRENT = 4;
|
|
11
|
+
/**
|
|
12
|
+
* Schedules Europe PMC requests against two independent ceilings:
|
|
13
|
+
*
|
|
14
|
+
* - **Throughput** (`minStartGapMs`): minimum delay between two consecutive
|
|
15
|
+
* dispatch times. Defaults to 200ms to be polite with EBI.
|
|
16
|
+
* - **Concurrency** (`maxConcurrent`): maximum simultaneous in-flight
|
|
17
|
+
* requests. Decouples concurrency from rate so slow upstream responses
|
|
18
|
+
* don't block new dispatches.
|
|
19
|
+
*
|
|
20
|
+
* Enqueue accepts an optional `AbortSignal` so callers can bound their total
|
|
21
|
+
* time inside the scheduler — when the signal fires, a still-waiting task
|
|
22
|
+
* rejects immediately instead of sitting behind a saturated worker.
|
|
23
|
+
*/
|
|
24
|
+
export class EuropePmcRequestQueue {
|
|
25
|
+
waiters = [];
|
|
26
|
+
minStartGapMs;
|
|
27
|
+
maxConcurrent;
|
|
28
|
+
inFlight = 0;
|
|
29
|
+
lastStartTime = 0;
|
|
30
|
+
nextDispatchTimer;
|
|
31
|
+
constructor(minStartGapMs, maxConcurrent = DEFAULT_MAX_CONCURRENT) {
|
|
32
|
+
this.minStartGapMs = minStartGapMs;
|
|
33
|
+
this.maxConcurrent = maxConcurrent;
|
|
34
|
+
}
|
|
35
|
+
enqueue(task, label, signal) {
|
|
36
|
+
return new Promise((resolve, reject) => {
|
|
37
|
+
if (signal?.aborted) {
|
|
38
|
+
reject(signal.reason);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const waiter = {
|
|
42
|
+
resolve,
|
|
43
|
+
reject,
|
|
44
|
+
task,
|
|
45
|
+
label,
|
|
46
|
+
...(signal && { signal }),
|
|
47
|
+
};
|
|
48
|
+
if (signal) {
|
|
49
|
+
const onAbort = () => {
|
|
50
|
+
const idx = this.waiters.indexOf(waiter);
|
|
51
|
+
if (idx === -1)
|
|
52
|
+
return;
|
|
53
|
+
this.waiters.splice(idx, 1);
|
|
54
|
+
reject(signal.reason);
|
|
55
|
+
};
|
|
56
|
+
waiter.onAbort = onAbort;
|
|
57
|
+
signal.addEventListener('abort', onAbort, { once: true });
|
|
58
|
+
}
|
|
59
|
+
this.waiters.push(waiter);
|
|
60
|
+
this.tryDispatch();
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
tryDispatch() {
|
|
64
|
+
if (this.nextDispatchTimer !== undefined)
|
|
65
|
+
return;
|
|
66
|
+
while (this.inFlight < this.maxConcurrent && this.waiters.length > 0) {
|
|
67
|
+
const now = Date.now();
|
|
68
|
+
const gap = this.minStartGapMs - (now - this.lastStartTime);
|
|
69
|
+
if (gap > 0) {
|
|
70
|
+
this.nextDispatchTimer = setTimeout(() => {
|
|
71
|
+
this.nextDispatchTimer = undefined;
|
|
72
|
+
this.tryDispatch();
|
|
73
|
+
}, gap);
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const waiter = this.waiters.shift();
|
|
77
|
+
if (!waiter)
|
|
78
|
+
return;
|
|
79
|
+
if (waiter.signal && waiter.onAbort) {
|
|
80
|
+
waiter.signal.removeEventListener('abort', waiter.onAbort);
|
|
81
|
+
}
|
|
82
|
+
this.lastStartTime = Date.now();
|
|
83
|
+
this.inFlight += 1;
|
|
84
|
+
logger.debug(`Executing Europe PMC request via queue: ${waiter.label}`, requestContextService.createRequestContext({
|
|
85
|
+
operation: 'EuropePmcQueueDispatch',
|
|
86
|
+
label: waiter.label,
|
|
87
|
+
inFlight: this.inFlight,
|
|
88
|
+
queueDepth: this.waiters.length,
|
|
89
|
+
}));
|
|
90
|
+
Promise.resolve()
|
|
91
|
+
.then(() => waiter.task())
|
|
92
|
+
.then(waiter.resolve, (err) => {
|
|
93
|
+
logger.error('Error processing Europe PMC request from queue.', requestContextService.createRequestContext({
|
|
94
|
+
operation: 'EuropePmcQueueProcess',
|
|
95
|
+
label: waiter.label,
|
|
96
|
+
errorMessage: err instanceof Error ? err.message : String(err),
|
|
97
|
+
}));
|
|
98
|
+
waiter.reject(err);
|
|
99
|
+
})
|
|
100
|
+
.finally(() => {
|
|
101
|
+
this.inFlight -= 1;
|
|
102
|
+
this.tryDispatch();
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=request-queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-queue.js","sourceRoot":"","sources":["../../../src/services/europe-pmc/request-queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Types for the Europe PMC REST API. Covers the search response
|
|
3
|
+
* shape and the fullTextXML endpoint contract.
|
|
4
|
+
*
|
|
5
|
+
* See https://europepmc.org/RestfulWebService for the full API. We use only
|
|
6
|
+
* the search endpoint (`/webservices/rest/search`) and the fullText endpoint
|
|
7
|
+
* (`/webservices/rest/{id}/fullTextXML`).
|
|
8
|
+
*
|
|
9
|
+
* @module src/services/europe-pmc/types
|
|
10
|
+
*/
|
|
11
|
+
/** Base URL for Europe PMC's RESTful web service. */
|
|
12
|
+
export declare const EUROPEPMC_API_BASE = "https://www.ebi.ac.uk/europepmc/webservices/rest";
|
|
13
|
+
/**
|
|
14
|
+
* Europe PMC source taxonomy. Determines which corpus a record belongs to and
|
|
15
|
+
* what identifier scheme applies. PubMed-derived records carry a `pmid`; PMC
|
|
16
|
+
* preprints carry an EPMC id (`source: PPR`) but no PMID; patents and Agricola
|
|
17
|
+
* records may carry neither.
|
|
18
|
+
*/
|
|
19
|
+
export type EuropePmcSource = 'MED' | 'PMC' | 'PPR' | 'PAT' | 'AGR' | 'CTX' | 'CBA' | 'ETH' | 'HIR';
|
|
20
|
+
/** Allowed sources for `pubmed_europepmc_search` input. */
|
|
21
|
+
export declare const EUROPEPMC_DEFAULT_SOURCES: readonly ["MED", "PMC", "PPR"];
|
|
22
|
+
export declare const EUROPEPMC_ALL_SOURCES: readonly ["MED", "PMC", "PPR", "PAT", "AGR"];
|
|
23
|
+
/**
|
|
24
|
+
* Single record from a Europe PMC search response. Only fields the server
|
|
25
|
+
* actually consumes are typed; the upstream payload carries many more under
|
|
26
|
+
* `resultType=core`. Field optionality reflects EPMC's real-world sparsity —
|
|
27
|
+
* preprints often lack `journalTitle`; patents lack `authorString`.
|
|
28
|
+
*/
|
|
29
|
+
export interface EuropePmcSearchHit {
|
|
30
|
+
abstractText?: string;
|
|
31
|
+
authorString?: string;
|
|
32
|
+
bookOrReportDetails?: unknown;
|
|
33
|
+
citedByCount?: number;
|
|
34
|
+
doi?: string;
|
|
35
|
+
/** ISO date (YYYY-MM-DD) of first index in EPMC. */
|
|
36
|
+
firstIndexDate?: string;
|
|
37
|
+
/** ISO date (YYYY-MM-DD) of publication where known. */
|
|
38
|
+
firstPublicationDate?: string;
|
|
39
|
+
hasBook?: 'Y' | 'N';
|
|
40
|
+
hasPDF?: 'Y' | 'N';
|
|
41
|
+
/** "Y"/"N" — whether EPMC believes a full-text XML is available for this record. */
|
|
42
|
+
hasTextMinedTerms?: 'Y' | 'N';
|
|
43
|
+
/** EPMC's own record identifier — unique within `source`. Always present. */
|
|
44
|
+
id: string;
|
|
45
|
+
inEPMC?: 'Y' | 'N';
|
|
46
|
+
inPMC?: 'Y' | 'N';
|
|
47
|
+
isOpenAccess?: 'Y' | 'N';
|
|
48
|
+
issue?: string;
|
|
49
|
+
journalTitle?: string;
|
|
50
|
+
journalVolume?: string;
|
|
51
|
+
/** Some hits carry their own license. Free-form per EPMC. */
|
|
52
|
+
license?: string;
|
|
53
|
+
pageInfo?: string;
|
|
54
|
+
pmcid?: string;
|
|
55
|
+
pmid?: string;
|
|
56
|
+
pubYear?: string;
|
|
57
|
+
source: EuropePmcSource;
|
|
58
|
+
title?: string;
|
|
59
|
+
[extra: string]: unknown;
|
|
60
|
+
}
|
|
61
|
+
/** Wrapper for the `resultList` block in a search response. */
|
|
62
|
+
export interface EuropePmcResultList {
|
|
63
|
+
result?: EuropePmcSearchHit[] | EuropePmcSearchHit;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Top-level shape of a Europe PMC JSON search response. EPMC returns scalar
|
|
67
|
+
* `result` when there's exactly one hit; `request.queryString` echoes the
|
|
68
|
+
* effective query so callers can preview what EPMC actually searched.
|
|
69
|
+
*/
|
|
70
|
+
export interface EuropePmcSearchResponse {
|
|
71
|
+
/** Total matching records across all pages. */
|
|
72
|
+
hitCount?: number;
|
|
73
|
+
/** Cursor token for the next page; absent on the final page. */
|
|
74
|
+
nextCursorMark?: string;
|
|
75
|
+
/** Cursor used for this response, echoed back from the request. */
|
|
76
|
+
request?: {
|
|
77
|
+
queryString?: string;
|
|
78
|
+
resultType?: string;
|
|
79
|
+
cursorMark?: string;
|
|
80
|
+
pageSize?: number;
|
|
81
|
+
sort?: string;
|
|
82
|
+
[extra: string]: unknown;
|
|
83
|
+
};
|
|
84
|
+
resultList?: EuropePmcResultList;
|
|
85
|
+
version?: string;
|
|
86
|
+
[extra: string]: unknown;
|
|
87
|
+
}
|
|
88
|
+
/** Normalized search result returned by the service layer. */
|
|
89
|
+
export interface EuropePmcSearchResult {
|
|
90
|
+
/** Cursor used for this response. Returned as-is so callers can echo it. */
|
|
91
|
+
cursorMark?: string;
|
|
92
|
+
hitCount: number;
|
|
93
|
+
hits: EuropePmcSearchHit[];
|
|
94
|
+
/** Cursor for the next page. `undefined` when no more pages remain. */
|
|
95
|
+
nextCursorMark?: string;
|
|
96
|
+
query: string;
|
|
97
|
+
}
|
|
98
|
+
/** Parameters accepted by the EPMC search endpoint. */
|
|
99
|
+
export interface EuropePmcSearchParams {
|
|
100
|
+
/** EPMC's cursor pagination token; start with `*` for the first page. */
|
|
101
|
+
cursorMark?: string;
|
|
102
|
+
/** Max 100 (per EPMC docs). */
|
|
103
|
+
pageSize?: number;
|
|
104
|
+
query: string;
|
|
105
|
+
/** Default `core` — richest payload with abstract, IDs, dates, license. */
|
|
106
|
+
resultType?: 'core' | 'lite' | 'idlist';
|
|
107
|
+
signal?: AbortSignal;
|
|
108
|
+
/** Optional sort spec, e.g. `FIRST_PIDATE desc`. */
|
|
109
|
+
sort?: string;
|
|
110
|
+
/** Allowed sources, comma-joined into the query as `(SRC:"MED" OR ...)`. */
|
|
111
|
+
sources?: readonly EuropePmcSource[];
|
|
112
|
+
}
|
|
113
|
+
/** Outcome of a fullTextXML lookup. */
|
|
114
|
+
export type EuropePmcFullTextResult = {
|
|
115
|
+
kind: 'found';
|
|
116
|
+
xml: string;
|
|
117
|
+
epmcId: string;
|
|
118
|
+
source: EuropePmcSource;
|
|
119
|
+
} | {
|
|
120
|
+
kind: 'not-available';
|
|
121
|
+
reason: string;
|
|
122
|
+
};
|
|
123
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/europe-pmc/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Types for the Europe PMC REST API. Covers the search response
|
|
3
|
+
* shape and the fullTextXML endpoint contract.
|
|
4
|
+
*
|
|
5
|
+
* See https://europepmc.org/RestfulWebService for the full API. We use only
|
|
6
|
+
* the search endpoint (`/webservices/rest/search`) and the fullText endpoint
|
|
7
|
+
* (`/webservices/rest/{id}/fullTextXML`).
|
|
8
|
+
*
|
|
9
|
+
* @module src/services/europe-pmc/types
|
|
10
|
+
*/
|
|
11
|
+
/** Base URL for Europe PMC's RESTful web service. */
|
|
12
|
+
export const EUROPEPMC_API_BASE = 'https://www.ebi.ac.uk/europepmc/webservices/rest';
|
|
13
|
+
/** Allowed sources for `pubmed_europepmc_search` input. */
|
|
14
|
+
export const EUROPEPMC_DEFAULT_SOURCES = ['MED', 'PMC', 'PPR'];
|
|
15
|
+
export const EUROPEPMC_ALL_SOURCES = ['MED', 'PMC', 'PPR', 'PAT', 'AGR'];
|
|
16
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/europe-pmc/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,qDAAqD;AACrD,MAAM,CAAC,MAAM,kBAAkB,GAAG,kDAAkD,CAAC;AAUrF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAU,CAAC;AACxE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAU,CAAC"}
|
|
@@ -56,14 +56,13 @@ export declare class NcbiService {
|
|
|
56
56
|
*/
|
|
57
57
|
private withRetry;
|
|
58
58
|
/**
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
* connection resets surfaced as C++ exception traces).
|
|
59
|
+
* Runs a request under a service-level deadline that bounds queue wait time
|
|
60
|
+
* + retry chain + HTTP execution. The deadline is constructed *outside* the
|
|
61
|
+
* queue so a backlog can't burn a request's budget before it even dispatches.
|
|
63
62
|
*
|
|
64
|
-
* The combined deadline+caller signal is threaded into
|
|
65
|
-
*
|
|
66
|
-
*
|
|
63
|
+
* The combined deadline+caller signal is threaded into the queue (cancels a
|
|
64
|
+
* still-waiting task), the retry chain (cancels pending backoff sleeps),
|
|
65
|
+
* and the HTTP fetch (cancels wedged requests).
|
|
67
66
|
*/
|
|
68
67
|
private performRequest;
|
|
69
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ncbi-service.d.ts","sourceRoot":"","sources":["../../../src/services/ncbi/ncbi-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EAEpB,KAAK,aAAa,EAElB,KAAK,YAAY,EAEjB,KAAK,cAAc,EACnB,KAAK,eAAe,EAGpB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB,MAAM,YAAY,CAAC;AA0CpB;;;GAGG;AACH,qBAAa,WAAW;IAEpB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAJf,SAAS,EAAE,aAAa,EACxB,KAAK,EAAE,gBAAgB,EACvB,eAAe,EAAE,mBAAmB,EACpC,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM;IAGpC,OAAO,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC;IAoBrF,QAAQ,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAS7F,MAAM,CAAC,CAAC,GAAG;QAAE,gBAAgB,CAAC,EAAE,mBAAmB,CAAA;KAAE,EACnD,MAAM,EAAE,iBAAiB,EACzB,OAAO,GAAE,kBAAuC,GAC/C,OAAO,CAAC,CAAC,CAAC;IAMb,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,iBAAiB,EACzB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,CAAC,CAAC;IAOP,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC;IA2BzF,KAAK,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAO7E;;;OAGG;IACG,SAAS,CACb,SAAS,EAAE,iBAAiB,EAAE,EAC9B,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,eAAe,EAAE,CAAC;IAsD7B;;;OAGG;IACG,SAAS,CACb,GAAG,EAAE,MAAM,EAAE,EACb,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,eAAe,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ncbi-service.d.ts","sourceRoot":"","sources":["../../../src/services/ncbi/ncbi-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EAEpB,KAAK,aAAa,EAElB,KAAK,YAAY,EAEjB,KAAK,cAAc,EACnB,KAAK,eAAe,EAGpB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB,MAAM,YAAY,CAAC;AA0CpB;;;GAGG;AACH,qBAAa,WAAW;IAEpB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAJf,SAAS,EAAE,aAAa,EACxB,KAAK,EAAE,gBAAgB,EACvB,eAAe,EAAE,mBAAmB,EACpC,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM;IAGpC,OAAO,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC;IAoBrF,QAAQ,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAS7F,MAAM,CAAC,CAAC,GAAG;QAAE,gBAAgB,CAAC,EAAE,mBAAmB,CAAA;KAAE,EACnD,MAAM,EAAE,iBAAiB,EACzB,OAAO,GAAE,kBAAuC,GAC/C,OAAO,CAAC,CAAC,CAAC;IAMb,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,iBAAiB,EACzB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,CAAC,CAAC;IAOP,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC;IA2BzF,KAAK,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAO7E;;;OAGG;IACG,SAAS,CACb,SAAS,EAAE,iBAAiB,EAAE,EAC9B,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,eAAe,EAAE,CAAC;IAsD7B;;;OAGG;IACG,SAAS,CACb,GAAG,EAAE,MAAM,EAAE,EACb,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,eAAe,EAAE,CAAC;IAwD7B,sEAAsE;IACtE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAIpC;IAEH,6FAA6F;IAC7F,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAU;IAEhD;;;;;OAKG;YACW,eAAe;IAkC7B;;;;;OAKG;YACW,SAAS;IAkEvB;;;;;;;;OAQG;IACH,OAAO,CAAC,cAAc;CA2BvB;AAMD,qEAAqE;AACrE,wBAAgB,eAAe,IAAI,IAAI,CA4BtC;AAED,mEAAmE;AACnE,wBAAgB,cAAc,IAAI,WAAW,CAG5C"}
|
|
@@ -187,7 +187,7 @@ export class NcbiService {
|
|
|
187
187
|
};
|
|
188
188
|
let text;
|
|
189
189
|
try {
|
|
190
|
-
text = await this.
|
|
190
|
+
text = await this.runWithDeadline((signal) => this.queue.enqueue(() => this.withRetry(() => this.apiClient.makeExternalRequest(NCBI_PMC_IDCONV_URL, params, signal), 'idconv', signal), 'idconv', params, signal), options?.signal);
|
|
191
191
|
}
|
|
192
192
|
catch (error) {
|
|
193
193
|
// PMC ID Converter returns 400 (InvalidParams) for malformed inputs and
|
|
@@ -308,23 +308,22 @@ export class NcbiService {
|
|
|
308
308
|
});
|
|
309
309
|
}
|
|
310
310
|
/**
|
|
311
|
-
*
|
|
312
|
-
*
|
|
313
|
-
*
|
|
314
|
-
* connection resets surfaced as C++ exception traces).
|
|
311
|
+
* Runs a request under a service-level deadline that bounds queue wait time
|
|
312
|
+
* + retry chain + HTTP execution. The deadline is constructed *outside* the
|
|
313
|
+
* queue so a backlog can't burn a request's budget before it even dispatches.
|
|
315
314
|
*
|
|
316
|
-
* The combined deadline+caller signal is threaded into
|
|
317
|
-
*
|
|
318
|
-
*
|
|
315
|
+
* The combined deadline+caller signal is threaded into the queue (cancels a
|
|
316
|
+
* still-waiting task), the retry chain (cancels pending backoff sleeps),
|
|
317
|
+
* and the HTTP fetch (cancels wedged requests).
|
|
319
318
|
*/
|
|
320
319
|
performRequest(endpoint, params, options) {
|
|
321
|
-
return this.
|
|
320
|
+
return this.runWithDeadline((signal) => this.queue.enqueue(() => this.withRetry(async () => {
|
|
322
321
|
const text = await this.apiClient.makeRequest(endpoint, params, {
|
|
323
322
|
...options,
|
|
324
323
|
signal,
|
|
325
324
|
});
|
|
326
325
|
return this.responseHandler.parseAndHandleResponse(text, endpoint, options);
|
|
327
|
-
}, endpoint, signal),
|
|
326
|
+
}, endpoint, signal), endpoint, params, signal), options?.signal);
|
|
328
327
|
}
|
|
329
328
|
}
|
|
330
329
|
// ─── Init / Accessor ────────────────────────────────────────────────────────
|
|
@@ -338,7 +337,7 @@ export function initNcbiService() {
|
|
|
338
337
|
...(config.apiKey && { apiKey: config.apiKey }),
|
|
339
338
|
...(config.adminEmail && { adminEmail: config.adminEmail }),
|
|
340
339
|
});
|
|
341
|
-
const queue = new NcbiRequestQueue(config.requestDelayMs);
|
|
340
|
+
const queue = new NcbiRequestQueue(config.requestDelayMs, config.maxConcurrent);
|
|
342
341
|
const responseHandler = new NcbiResponseHandler();
|
|
343
342
|
_service = new NcbiService(apiClient, queue, responseHandler, config.maxRetries, config.totalDeadlineMs);
|
|
344
343
|
logger.info('NCBI service initialized.', requestContextService.createRequestContext({
|
|
@@ -346,6 +345,7 @@ export function initNcbiService() {
|
|
|
346
345
|
toolIdentifier: config.toolIdentifier,
|
|
347
346
|
hasApiKey: !!config.apiKey,
|
|
348
347
|
requestDelayMs: config.requestDelayMs,
|
|
348
|
+
maxConcurrent: config.maxConcurrent,
|
|
349
349
|
totalDeadlineMs: config.totalDeadlineMs,
|
|
350
350
|
}));
|
|
351
351
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ncbi-service.js","sourceRoot":"","sources":["../../../src/services/ncbi/ncbi-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ncbi-service.js","sourceRoot":"","sources":["../../../src/services/ncbi/ncbi-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,36 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @fileoverview
|
|
3
|
-
*
|
|
2
|
+
* @fileoverview Rate-limited request scheduler for NCBI E-utility calls. Caps
|
|
3
|
+
* concurrent in-flight requests and enforces a minimum start-gap between
|
|
4
|
+
* dispatches to stay within NCBI's documented per-second ceiling. Supports
|
|
5
|
+
* abort-during-wait so callers' deadlines can bound queue time end-to-end.
|
|
4
6
|
* @module src/services/ncbi/request-queue
|
|
5
7
|
*/
|
|
6
8
|
import type { NcbiRequestParams } from './types.js';
|
|
7
9
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
+
* Schedules NCBI API requests against two independent ceilings:
|
|
11
|
+
*
|
|
12
|
+
* - **Throughput** (`minStartGapMs`): minimum delay between two consecutive
|
|
13
|
+
* dispatch times. Matches NCBI's per-second start-rate cap (≈3/s without
|
|
14
|
+
* an API key, ≈10/s with one).
|
|
15
|
+
* - **Concurrency** (`maxConcurrent`): maximum number of requests in flight
|
|
16
|
+
* simultaneously. Decouples concurrency from rate, so slow upstream
|
|
17
|
+
* responses don't block new dispatches.
|
|
18
|
+
*
|
|
19
|
+
* Enqueue accepts an optional `AbortSignal` so callers can bound their total
|
|
20
|
+
* time inside the scheduler — when the signal fires, a still-waiting task
|
|
21
|
+
* rejects immediately instead of sitting behind a saturated worker for
|
|
22
|
+
* minutes.
|
|
10
23
|
*/
|
|
11
24
|
export declare class NcbiRequestQueue {
|
|
12
|
-
private readonly
|
|
13
|
-
private readonly
|
|
25
|
+
private readonly waiters;
|
|
26
|
+
private readonly minStartGapMs;
|
|
27
|
+
private readonly maxConcurrent;
|
|
14
28
|
private readonly maxQueueSize;
|
|
15
|
-
private
|
|
16
|
-
private
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
29
|
+
private inFlight;
|
|
30
|
+
private lastStartTime;
|
|
31
|
+
private nextDispatchTimer;
|
|
32
|
+
constructor(minStartGapMs: number, maxConcurrent?: number, maxQueueSize?: number);
|
|
33
|
+
enqueue<T>(task: () => Promise<T>, endpoint: string, params: NcbiRequestParams, signal?: AbortSignal): Promise<T>;
|
|
34
|
+
private tryDispatch;
|
|
20
35
|
}
|
|
21
36
|
//# sourceMappingURL=request-queue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-queue.d.ts","sourceRoot":"","sources":["../../../src/services/ncbi/request-queue.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"request-queue.d.ts","sourceRoot":"","sources":["../../../src/services/ncbi/request-queue.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAepD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,iBAAiB,CAA4C;gBAGnE,aAAa,EAAE,MAAM,EACrB,aAAa,GAAE,MAA+B,EAC9C,YAAY,GAAE,MAA+B;IAO/C,OAAO,CAAC,CAAC,EACP,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,iBAAiB,EACzB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,CAAC,CAAC;IA+Cb,OAAO,CAAC,WAAW;CAgEpB"}
|