@cyanheads/pubmed-mcp-server 2.6.10 → 2.6.12

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 CHANGED
@@ -1,8 +1,8 @@
1
1
  # Agent Protocol
2
2
 
3
3
  **Server:** @cyanheads/pubmed-mcp-server
4
- **Version:** 2.6.10
5
- **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.8.20`
4
+ **Version:** 2.6.12
5
+ **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.9.1`
6
6
  **Engines:** Bun ≥1.3.2, Node ≥24.0.0
7
7
 
8
8
  > **Read the framework docs first:** `node_modules/@cyanheads/mcp-ts-core/CLAUDE.md` contains the full API reference — builders, Context, error codes, exports, patterns. This file covers server-specific conventions only.
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  <div align="center">
9
9
 
10
- [![npm](https://img.shields.io/npm/v/@cyanheads/pubmed-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/pubmed-mcp-server) [![Version](https://img.shields.io/badge/Version-2.6.10-blue.svg?style=flat-square)](./CHANGELOG.md) [![Framework](https://img.shields.io/badge/Built%20on-@cyanheads/mcp--ts--core-259?style=flat-square)](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^1.29.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/)
10
+ [![npm](https://img.shields.io/npm/v/@cyanheads/pubmed-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/pubmed-mcp-server) [![Version](https://img.shields.io/badge/Version-2.6.12-blue.svg?style=flat-square)](./CHANGELOG.md) [![Framework](https://img.shields.io/badge/Built%20on-@cyanheads/mcp--ts--core-259?style=flat-square)](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^1.29.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/)
11
11
 
12
12
  [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![TypeScript](https://img.shields.io/badge/TypeScript-^6.0.3-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.3.2-blueviolet.svg?style=flat-square)](https://bun.sh/)
13
13
 
@@ -97,7 +97,7 @@ Find articles related to a source article via ELink.
97
97
 
98
98
  - Three relationship types: `similar` (content similarity), `cited_by`, `references`
99
99
  - Results enriched with title, authors, publication date, and source via ESummary
100
- - Similarity scores included for `similar` relationship type
100
+ - Results returned in NCBI's relevance order
101
101
 
102
102
  ---
103
103
 
@@ -285,7 +285,8 @@ All configuration is validated at startup via Zod schemas in `src/config/server-
285
285
  | `STORAGE_PROVIDER_TYPE` | Storage backend: `in-memory`, `filesystem`, `supabase`, `cloudflare-kv/r2/d1` | `in-memory` |
286
286
  | `NCBI_API_KEY` | NCBI API key for higher rate limits (10 req/s vs 3 req/s) | none |
287
287
  | `NCBI_ADMIN_EMAIL` | Contact email sent with NCBI requests (recommended by NCBI) | none |
288
- | `NCBI_REQUEST_DELAY_MS` | Delay between NCBI requests in ms | 334 (100 with key) |
288
+ | `NCBI_REQUEST_DELAY_MS` | Minimum gap between NCBI request starts in ms | 334 (100 with key) |
289
+ | `NCBI_MAX_CONCURRENT` | Max concurrent in-flight NCBI requests | `8` |
289
290
  | `NCBI_MAX_RETRIES` | Retry attempts for failed NCBI requests | 6 |
290
291
  | `NCBI_TIMEOUT_MS` | Per-request HTTP timeout in ms | `30000` |
291
292
  | `NCBI_TOTAL_DEADLINE_MS` | Total deadline across all retry attempts for one NCBI call, in ms | `60000` |
@@ -10,6 +10,7 @@ declare const ServerConfigSchema: z.ZodObject<{
10
10
  toolIdentifier: z.ZodDefault<z.ZodString>;
11
11
  adminEmail: z.ZodPreprocess<z.ZodOptional<z.ZodEmail>>;
12
12
  requestDelayMs: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
13
+ maxConcurrent: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
13
14
  maxRetries: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
14
15
  timeoutMs: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
15
16
  totalDeadlineMs: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
@@ -1 +1 @@
1
- {"version":3,"file":"server-config.d.ts","sourceRoot":"","sources":["../../src/config/server-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAU3C,QAAA,MAAM,kBAAkB;;;;;;;;;;iBA2BtB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAI9D,wBAAgB,eAAe,IAAI,YAAY,CAwB9C"}
1
+ {"version":3,"file":"server-config.d.ts","sourceRoot":"","sources":["../../src/config/server-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAU3C,QAAA,MAAM,kBAAkB;;;;;;;;;;;iBAiCtB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAI9D,wBAAgB,eAAe,IAAI,YAAY,CAyB9C"}
@@ -17,6 +17,12 @@ const ServerConfigSchema = z.object({
17
17
  toolIdentifier: z.string().default('pubmed-mcp-server').describe('NCBI tool identifier'),
18
18
  adminEmail: z.preprocess(emptyAsUndefined, z.email().optional()).describe('Admin contact email'),
19
19
  requestDelayMs: z.coerce.number().min(50).max(5000).default(334).describe('Request delay in ms'),
20
+ maxConcurrent: z.coerce
21
+ .number()
22
+ .min(1)
23
+ .max(16)
24
+ .default(8)
25
+ .describe('Max concurrent in-flight NCBI requests'),
20
26
  maxRetries: z.coerce.number().min(0).max(10).default(6).describe('Max retry attempts'),
21
27
  timeoutMs: z.coerce
22
28
  .number()
@@ -48,6 +54,7 @@ export function getServerConfig() {
48
54
  toolIdentifier: 'NCBI_TOOL_IDENTIFIER',
49
55
  adminEmail: 'NCBI_ADMIN_EMAIL',
50
56
  requestDelayMs: 'NCBI_REQUEST_DELAY_MS',
57
+ maxConcurrent: 'NCBI_MAX_CONCURRENT',
51
58
  maxRetries: 'NCBI_MAX_RETRIES',
52
59
  timeoutMs: 'NCBI_TIMEOUT_MS',
53
60
  totalDeadlineMs: 'NCBI_TOTAL_DEADLINE_MS',
@@ -1 +1 @@
1
- {"version":3,"file":"server-config.js","sourceRoot":"","sources":["../../src/config/server-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-config.js","sourceRoot":"","sources":["../../src/config/server-config.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -31,6 +31,7 @@ await createApp({
31
31
  ],
32
32
  resources: [databaseInfoResource],
33
33
  prompts: [researchPlanPrompt],
34
+ instructions: "PubMed/NCBI E-utilities wrapper. Typical research flow: `pubmed_search_articles` → `pubmed_fetch_articles` (metadata) → `pubmed_fetch_fulltext`. Prefer `pubmed_lookup_citation` over free-text search when you have a partial known reference — it's deterministic. Use `pubmed_lookup_mesh` and `pubmed_spell_check` to refine queries before searching, when needed.",
34
35
  landing: {
35
36
  tagline: 'Search PubMed, fetch articles, generate citations, explore MeSH terms, and discover related research.',
36
37
  repoRoot: 'https://github.com/cyanheads/pubmed-mcp-server',
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,8DAA8D,CAAC;AACpG,OAAO,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uDAAuD,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,uDAAuD,CAAC;AAC1F,OAAO,EAAE,eAAe,EAAE,MAAM,qDAAqD,CAAC;AACtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,yDAAyD,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,wDAAwD,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wDAAwD,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,MAAM,SAAS,CAAC;IACd,KAAK,EAAE;QACL,kBAAkB;QAClB,iBAAiB;QACjB,iBAAiB;QACjB,mBAAmB;QACnB,eAAe;QACf,cAAc;QACd,cAAc;QACd,kBAAkB;QAClB,cAAc;KACf;IACD,SAAS,EAAE,CAAC,oBAAoB,CAAC;IACjC,OAAO,EAAE,CAAC,kBAAkB,CAAC;IAC7B,OAAO,EAAE;QACP,OAAO,EACL,uGAAuG;QACzG,QAAQ,EAAE,gDAAgD;QAC1D,KAAK,EAAE;YACL,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,kCAAkC,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7E;gBACE,KAAK,EAAE,kBAAkB;gBACzB,IAAI,EAAE,8CAA8C;gBACpD,QAAQ,EAAE,IAAI;aACf;YACD;gBACE,KAAK,EAAE,qBAAqB;gBAC5B,IAAI,EAAE,gDAAgD;gBACtD,QAAQ,EAAE,IAAI;aACf;YACD,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,4BAA4B,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC9E;QACD,UAAU,EAAE;YACV,YAAY,EAAE,mBAAmB;YACjC,gBAAgB,EAAE,iBAAiB;YACnC,eAAe,EAAE,iBAAiB;SACnC;KACF;IACD,KAAK;QACH,eAAe,EAAE,CAAC;QAClB,oBAAoB,EAAE,CAAC;IACzB,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,8DAA8D,CAAC;AACpG,OAAO,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uDAAuD,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,uDAAuD,CAAC;AAC1F,OAAO,EAAE,eAAe,EAAE,MAAM,qDAAqD,CAAC;AACtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,yDAAyD,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,wDAAwD,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wDAAwD,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,MAAM,SAAS,CAAC;IACd,KAAK,EAAE;QACL,kBAAkB;QAClB,iBAAiB;QACjB,iBAAiB;QACjB,mBAAmB;QACnB,eAAe;QACf,cAAc;QACd,cAAc;QACd,kBAAkB;QAClB,cAAc;KACf;IACD,SAAS,EAAE,CAAC,oBAAoB,CAAC;IACjC,OAAO,EAAE,CAAC,kBAAkB,CAAC;IAC7B,YAAY,EACV,yWAAyW;IAC3W,OAAO,EAAE;QACP,OAAO,EACL,uGAAuG;QACzG,QAAQ,EAAE,gDAAgD;QAC1D,KAAK,EAAE;YACL,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,kCAAkC,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7E;gBACE,KAAK,EAAE,kBAAkB;gBACzB,IAAI,EAAE,8CAA8C;gBACpD,QAAQ,EAAE,IAAI;aACf;YACD;gBACE,KAAK,EAAE,qBAAqB;gBAC5B,IAAI,EAAE,gDAAgD;gBACtD,QAAQ,EAAE,IAAI;aACf;YACD,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,4BAA4B,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC9E;QACD,UAAU,EAAE;YACV,YAAY,EAAE,mBAAmB;YACjC,gBAAgB,EAAE,iBAAiB;YACnC,eAAe,EAAE,iBAAiB;SACnC;KACF;IACD,KAAK;QACH,eAAe,EAAE,CAAC;QAClB,oBAAoB,EAAE,CAAC;IACzB,CAAC;CACF,CAAC,CAAC"}
@@ -25,7 +25,6 @@ export declare const findRelatedTool: import("@cyanheads/mcp-ts-core").ToolDefin
25
25
  authors: z.ZodOptional<z.ZodString>;
26
26
  source: z.ZodOptional<z.ZodString>;
27
27
  pubDate: z.ZodOptional<z.ZodString>;
28
- score: z.ZodOptional<z.ZodNumber>;
29
28
  }, z.core.$strip>>;
30
29
  totalFound: z.ZodNumber;
31
30
  notice: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"find-related.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/find-related.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAsCjD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkN1B,CAAC"}
1
+ {"version":3,"file":"find-related.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/find-related.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAqCjD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2L1B,CAAC"}
@@ -44,10 +44,6 @@ export const findRelatedTool = tool('pubmed_find_related', {
44
44
  authors: z.string().optional().describe('Author string'),
45
45
  source: z.string().optional().describe('Journal source'),
46
46
  pubDate: z.string().optional().describe('Publication date'),
47
- score: z
48
- .number()
49
- .optional()
50
- .describe('NCBI relevance score (arbitrary scale, higher = more related; only present for similar)'),
51
47
  })
52
48
  .describe('Related article with enriched summary'))
53
49
  .describe('Related articles'),
@@ -63,45 +59,34 @@ export const findRelatedTool = tool('pubmed_find_related', {
63
59
  pmid: input.pmid,
64
60
  relationship: input.relationship,
65
61
  });
66
- const eLinkParams = {
62
+ // `cmd=neighbor_score` is unstable on NCBI's side — it intermittently fails
63
+ // with a TXCLIENT::readAll EOF for high-traffic PMIDs. `cmd=neighbor` returns
64
+ // the `pubmed_pubmed` list in relevance order anyway, so we keep the ranking
65
+ // without the (arbitrary-scale) numeric score.
66
+ const linkName = input.relationship === 'cited_by'
67
+ ? 'pubmed_pubmed_citedin'
68
+ : input.relationship === 'references'
69
+ ? 'pubmed_pubmed_refs'
70
+ : 'pubmed_pubmed';
71
+ const eLinkResult = (await ncbi.eLink({
67
72
  dbfrom: 'pubmed',
68
73
  db: 'pubmed',
69
74
  id: input.pmid,
75
+ cmd: 'neighbor',
76
+ linkname: linkName,
70
77
  retmode: 'xml',
71
- };
72
- switch (input.relationship) {
73
- case 'similar':
74
- eLinkParams.cmd = 'neighbor_score';
75
- break;
76
- case 'cited_by':
77
- eLinkParams.cmd = 'neighbor';
78
- eLinkParams.linkname = 'pubmed_pubmed_citedin';
79
- break;
80
- case 'references':
81
- eLinkParams.cmd = 'neighbor';
82
- eLinkParams.linkname = 'pubmed_pubmed_refs';
83
- break;
84
- }
85
- const eLinkResult = (await ncbi.eLink(eLinkParams, { signal: ctx.signal }));
78
+ }, { signal: ctx.signal }));
86
79
  const eLinkResultsArray = ensureArray(eLinkResult?.eLinkResult);
87
80
  const firstResult = eLinkResultsArray[0];
88
81
  const linkSet = firstResult?.LinkSet;
89
82
  let foundPmids = [];
90
83
  if (linkSet?.LinkSetDb) {
91
84
  const linkSetDbArray = ensureArray(linkSet.LinkSetDb);
92
- const expectedLinkName = input.relationship === 'cited_by'
93
- ? 'pubmed_pubmed_citedin'
94
- : input.relationship === 'references'
95
- ? 'pubmed_pubmed_refs'
96
- : 'pubmed_pubmed';
97
- const targetDb = linkSetDbArray.find((db) => db.LinkName === expectedLinkName) ?? linkSetDbArray[0];
85
+ const targetDb = linkSetDbArray.find((db) => db.LinkName === linkName) ?? linkSetDbArray[0];
98
86
  if (targetDb?.Link) {
99
87
  foundPmids = ensureArray(targetDb.Link)
100
- .map((link) => ({
101
- pmid: extractValue(link.Id),
102
- ...(extractValue(link.Score) ? { score: Number(extractValue(link.Score)) } : {}),
103
- }))
104
- .filter((item) => item.pmid && item.pmid !== input.pmid && item.pmid !== '0');
88
+ .map((link) => extractValue(link.Id))
89
+ .filter((pmid) => pmid && pmid !== input.pmid && pmid !== '0');
105
90
  }
106
91
  }
107
92
  const totalFound = foundPmids.length;
@@ -152,25 +137,21 @@ export const findRelatedTool = tool('pubmed_find_related', {
152
137
  ...(notice && { notice }),
153
138
  };
154
139
  }
155
- if (foundPmids.every((p) => p.score !== undefined)) {
156
- foundPmids.sort((a, b) => (b.score ?? 0) - (a.score ?? 0));
157
- }
158
140
  const pmidsToEnrich = foundPmids.slice(0, input.maxResults);
159
141
  const summaryResult = await ncbi.eSummary({
160
142
  db: 'pubmed',
161
- id: pmidsToEnrich.map((p) => p.pmid).join(','),
143
+ id: pmidsToEnrich.join(','),
162
144
  }, { signal: ctx.signal });
163
145
  const briefSummaries = await extractBriefSummaries(summaryResult);
164
146
  const summaryMap = new Map(briefSummaries.map((bs) => [bs.pmid, bs]));
165
- const articles = pmidsToEnrich.map((p) => {
166
- const details = summaryMap.get(p.pmid);
147
+ const articles = pmidsToEnrich.map((pmid) => {
148
+ const details = summaryMap.get(pmid);
167
149
  return {
168
- pmid: p.pmid,
150
+ pmid,
169
151
  title: details?.title,
170
152
  authors: details?.authors,
171
153
  source: details?.source,
172
154
  pubDate: details?.pubDate,
173
- score: p.score,
174
155
  };
175
156
  });
176
157
  return { sourcePmid: input.pmid, relationship: input.relationship, articles, totalFound };
@@ -188,8 +169,7 @@ export const findRelatedTool = tool('pubmed_find_related', {
188
169
  }
189
170
  else {
190
171
  for (const a of result.articles) {
191
- const scorePart = a.score !== undefined ? ` (score: ${a.score})` : '';
192
- lines.push(`- **[PMID ${a.pmid}](https://pubmed.ncbi.nlm.nih.gov/${a.pmid}/)**${scorePart}`);
172
+ lines.push(`- **[PMID ${a.pmid}](https://pubmed.ncbi.nlm.nih.gov/${a.pmid}/)**`);
193
173
  if (a.title)
194
174
  lines.push(` ${a.title}`);
195
175
  if (a.authors)
@@ -1 +1 @@
1
- {"version":3,"file":"find-related.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/find-related.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"find-related.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/find-related.tool.ts"],"names":[],"mappings":"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"}
@@ -56,14 +56,13 @@ export declare class NcbiService {
56
56
  */
57
57
  private withRetry;
58
58
  /**
59
- * Enqueues a request with a service-level deadline and retry logic that covers
60
- * both HTTP-level failures (network errors, timeouts) and XML-level errors
61
- * (NCBI returning 200 OK with an error structure in the response body, e.g.
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 both the HTTP fetch
65
- * (cancels wedged requests) and the backoff sleep (cancels pending retries),
66
- * bounding the total time to `totalDeadlineMs` regardless of retry count.
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;IAuD7B,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;;;;;;;;;OASG;IACH,OAAO,CAAC,cAAc;CA0BvB;AAMD,qEAAqE;AACrE,wBAAgB,eAAe,IAAI,IAAI,CA2BtC;AAED,mEAAmE;AACnE,wBAAgB,cAAc,IAAI,WAAW,CAG5C"}
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.queue.enqueue(() => this.runWithDeadline((signal) => this.withRetry(() => this.apiClient.makeExternalRequest(NCBI_PMC_IDCONV_URL, params, signal), 'idconv', signal), options?.signal), 'idconv', params);
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
- * Enqueues a request with a service-level deadline and retry logic that covers
312
- * both HTTP-level failures (network errors, timeouts) and XML-level errors
313
- * (NCBI returning 200 OK with an error structure in the response body, e.g.
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 both the HTTP fetch
317
- * (cancels wedged requests) and the backoff sleep (cancels pending retries),
318
- * bounding the total time to `totalDeadlineMs` regardless of retry count.
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.queue.enqueue(() => this.runWithDeadline((signal) => this.withRetry(async () => {
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), options?.signal), endpoint, params);
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":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,kBAAkB,EAClB,OAAO,EACP,eAAe,GAChB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAE7E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,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,EAWL,mBAAmB,GAKpB,MAAM,YAAY,CAAC;AAEpB;;;;;GAKG;AACH,MAAM,uBAAuB,GAA2B;IACtD,IAAI,EAAE,iCAAiC;IACvC,KAAK,EAAE,mCAAmC;IAC1C,GAAG,EAAE,+CAA+C;CACrD,CAAC;AAEF,oEAAoE;AACpE,MAAM,oBAAqB,SAAQ,KAAK;IACtC,YAAY,UAAkB;QAC5B,KAAK,CAAC,0BAA0B,UAAU,cAAc,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,EAAU,EAAE,MAAoB;IACtD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1D,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7C,OAAO,EAAE,CAAC;QACZ,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,WAAW;IAEH;IACA;IACA;IACA;IACA;IALnB,YACmB,SAAwB,EACxB,KAAuB,EACvB,eAAoC,EACpC,UAAkB,EAClB,eAAuB;QAJvB,cAAS,GAAT,SAAS,CAAe;QACxB,UAAK,GAAL,KAAK,CAAkB;QACvB,oBAAe,GAAf,eAAe,CAAqB;QACpC,eAAU,GAAV,UAAU,CAAQ;QAClB,oBAAe,GAAf,eAAe,CAAQ;IACvC,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,MAAyB,EAAE,OAAyB;QAChE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAA2B,SAAS,EAAE,MAAM,EAAE;YACtF,OAAO,EAAE,KAAK;YACd,GAAG,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;SACnD,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC;QACxC,OAAO;YACL,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC;YACxC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC;YAC1C,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC;YAC9C,GAAG,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACvE,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;YACjE,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;YAC/C,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;YAC3C,GAAG,CAAC,QAAQ,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC;YAC1E,GAAG,CAAC,QAAQ,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC;SACjF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAyB,EAAE,OAAyB;QACjE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,KAAK,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QACvF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAA4B,UAAU,EAAE,MAAM,EAAE;YACxF,OAAO;YACP,GAAG,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;SACnD,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,cAAc,CAAC;IACjC,CAAC;IAED,MAAM,CACJ,MAAyB,EACzB,UAA8B,EAAE,OAAO,EAAE,KAAK,EAAE;QAEhD,MAAM,OAAO,GACX,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;QAC1F,OAAO,IAAI,CAAC,cAAc,CAAI,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CACH,MAAyB,EACzB,OAAyB;QAEzB,OAAO,IAAI,CAAC,cAAc,CAAI,OAAO,EAAE,MAAM,EAAE;YAC7C,OAAO,EAAE,KAAK;YACd,GAAG,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;SACnD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAyB,EAAE,OAAyB;QAC/D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAA0B,QAAQ,EAAE,MAAM,EAAE;YACpF,OAAO,EAAE,KAAK;YACd,GAAG,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;SACnD,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,QAAQ,CAAC,YAAY,CAAC;QAC1C,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,IAAK,MAAM,CAAC,IAAe,IAAI,EAAE,CAAC;QACpE,MAAM,SAAS,GAAG,WAAW,CAAC,cAAc,IAAI,EAAE,CAAC;QAEnD,MAAM,CAAC,KAAK,CACV,uBAAuB,EACvB,qBAAqB,CAAC,oBAAoB,CAAC;YACzC,SAAS,EAAE,YAAY;YACvB,QAAQ;YACR,SAAS;YACT,aAAa,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,KAAK,QAAQ;SAC9D,CAAC,CACH,CAAC;QAEF,OAAO;YACL,QAAQ;YACR,SAAS,EAAE,SAAS,IAAI,QAAQ;YAChC,aAAa,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,KAAK,QAAQ;SAC9D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAyB,EAAE,OAAyB;QACxD,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE;YAC1C,OAAO,EAAE,KAAK;YACd,GAAG,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;SACnD,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CACb,SAA8B,EAC9B,OAAyB;QAEzB,MAAM,KAAK,GAAG,SAAS;aACpB,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,GAAG,CAAC,CAAC,OAAO,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,IAAI,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,CAAC,CAAC,UAAU,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,GAAG,CAC9G;aACA,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CACpC,eAAe,EACf,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EACvC,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,CACxE,CAAC;QAEF,OAAO,IAAI;aACR,KAAK,CAAC,SAAS,CAAC;aAChB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;aACxC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACZ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAE1C,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC7B,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,SAAkB,EAAE,CAAC;YAC9E,CAAC;YAED,IAAI,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBACvC,MAAM,GAAG,GAAG,yBAAyB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5D,MAAM,cAAc,GAAG,GAAG;oBACxB,CAAC,CAAC,GAAG;yBACA,KAAK,CAAC,GAAG,CAAC;yBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;yBACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACnC,CAAC,CAAC,SAAS,CAAC;gBACd,OAAO;oBACL,GAAG;oBACH,OAAO,EAAE,KAAK;oBACd,IAAI,EAAE,IAAI;oBACV,MAAM,EAAE,WAAoB;oBAC5B,MAAM,EAAE,UAAU;oBAClB,GAAG,CAAC,cAAc,EAAE,MAAM,IAAI,EAAE,cAAc,EAAE,CAAC;iBAClD,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,GAAG;gBACH,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,WAAoB;gBAC5B,GAAG,CAAC,UAAU,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;aAC1C,CAAC;QACJ,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CACb,GAAa,EACb,MAAe,EACf,OAAyB;QAEzB,MAAM,MAAM,GAAsB;YAChC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;YAClB,MAAM,EAAE,MAAM;YACd,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC;SAC1B,CAAC;QAEF,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAC/B,CAAC,MAAM,EAAE,EAAE,CACT,IAAI,CAAC,KAAK,CAAC,OAAO,CAChB,GAAG,EAAE,CACH,IAAI,CAAC,SAAS,CACZ,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,MAAM,EAAE,MAAM,CAAC,EAC7E,QAAQ,EACR,MAAM,CACP,EACH,QAAQ,EACR,MAAM,EACN,MAAM,CACP,EACH,OAAO,EAAE,MAAM,CAChB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,wEAAwE;YACxE,yEAAyE;YACzE,0EAA0E;YAC1E,IAAI,KAAK,YAAY,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,aAAa,EAAE,CAAC;gBAC/E,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;gBACnD,MAAM,OAAO,GAAG,IAAI;oBAClB,CAAC,CAAC,sEAAsE,MAAM,iBAAiB,IAAI,GAAG;oBACtG,CAAC,CAAC,6DAA6D,MAAM,IAAI,aAAa,KAAK,CAAC;gBAC9F,MAAM,eAAe,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YAC5F,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,kBAAkB,CACtB,6CAA6C,EAC7C;gBACE,MAAM,EAAE,uBAAuB;gBAC/B,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC;gBACvC,GAAG,WAAW,CAAC,uBAAuB,CAAC;aACxC,EACD,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;QACJ,CAAC;QAED,OAAQ,MAA4B,CAAC,OAAO,IAAI,EAAE,CAAC;IACrD,CAAC;IAED,sEAAsE;IAC9D,MAAM,CAAU,eAAe,GAAG,IAAI,GAAG,CAAC;QAChD,gBAAgB,CAAC,kBAAkB;QACnC,gBAAgB,CAAC,OAAO;QACxB,gBAAgB,CAAC,WAAW;KAC7B,CAAC,CAAC;IAEH,6FAA6F;IACrF,MAAM,CAAU,cAAc,GAAG,MAAM,CAAC;IAEhD;;;;;OAKG;IACK,KAAK,CAAC,eAAe,CAC3B,IAAyC,EACzC,YAA0B;QAE1B,MAAM,kBAAkB,GAAG,IAAI,eAAe,EAAE,CAAC;QACjD,MAAM,aAAa,GAAG,UAAU,CAC9B,GAAG,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAC9E,IAAI,CAAC,eAAe,CACrB,CAAC;QAEF,MAAM,MAAM,GAAG,YAAY;YACzB,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAC5D,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC;QAE9B,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,KAAK,YAAY,oBAAoB,EAAE,CAAC;gBAC1C,MAAM,OAAO,CACX,KAAK,CAAC,OAAO,EACb;oBACE,MAAM,EAAE,wBAAwB;oBAChC,UAAU,EAAE,IAAI,CAAC,eAAe;oBAChC,GAAG,WAAW,CAAC,wBAAwB,CAAC;iBACzC,EACD,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,aAAa,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,SAAS,CACrB,OAAyB,EACzB,KAAa,EACb,MAAoB;QAEpB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;YAC5D,IAAI,MAAM,EAAE,OAAO;gBAAE,MAAM,MAAM,CAAC,MAAM,CAAC;YAEzC,IAAI,CAAC;gBACH,OAAO,MAAM,OAAO,EAAE,CAAC;YACzB,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,IAAI,MAAM,EAAE,OAAO;oBAAE,MAAM,MAAM,CAAC,MAAM,CAAC;gBAEzC,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC,EAAE,CAAC;oBACjC,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjD,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;oBAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;oBAC5E,MAAM,MAAM,GAAG,SAAS,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO;oBAChE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACtC,MAAM,CAAC,OAAO,CACZ,mBAAmB,KAAK,sBAAsB,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,QAAQ,UAAU,KAAK,EACnG,qBAAqB,CAAC,oBAAoB,CAAC;wBACzC,SAAS,EAAE,WAAW;wBACtB,QAAQ,EAAE,KAAK;wBACf,OAAO,EAAE,OAAO,GAAG,CAAC;wBACpB,UAAU;qBACX,CAAC,CACH,CAAC;oBACF,MAAM,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;oBACzC,SAAS;gBACX,CAAC;gBAED,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;gBACrC,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACnE,gFAAgF;gBAChF,8EAA8E;gBAC9E,kFAAkF;gBAClF,yDAAyD;gBACzD,MAAM,MAAM,GACV,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;gBACtF,MAAM,IAAI,QAAQ,CAChB,KAAK,CAAC,IAAI,EACV,GAAG,GAAG,kBAAkB,QAAQ,YAAY,EAC5C;oBACE,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;oBACjD,QAAQ,EAAE,KAAK;oBACf,QAAQ;iBACT,EACD,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,aAAa,CAAC,mCAAmC,EAAE;YACvD,MAAM,EAAE,kBAAkB;YAC1B,QAAQ,EAAE,KAAK;YACf,GAAG,WAAW,CAAC,kBAAkB,CAAC;SACnC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACK,cAAc,CACpB,QAAgB,EAChB,MAAyB,EACzB,OAA4B;QAE5B,OAAO,IAAI,CAAC,eAAe,CACzB,CAAC,MAAM,EAAE,EAAE,CACT,IAAI,CAAC,KAAK,CAAC,OAAO,CAChB,GAAG,EAAE,CACH,IAAI,CAAC,SAAS,CACZ,KAAK,IAAI,EAAE;YACT,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE;gBAC9D,GAAG,OAAO;gBACV,MAAM;aACP,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAI,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjF,CAAC,EACD,QAAQ,EACR,MAAM,CACP,EACH,QAAQ,EACR,MAAM,EACN,MAAM,CACP,EACH,OAAO,EAAE,MAAM,CAChB,CAAC;IACJ,CAAC;;AAGH,+EAA+E;AAE/E,IAAI,QAAiC,CAAC;AAEtC,qEAAqE;AACrE,MAAM,UAAU,eAAe;IAC7B,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC;QAClC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QAC/C,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;KAC5D,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IAChF,MAAM,eAAe,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAClD,QAAQ,GAAG,IAAI,WAAW,CACxB,SAAS,EACT,KAAK,EACL,eAAe,EACf,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,eAAe,CACvB,CAAC;IACF,MAAM,CAAC,IAAI,CACT,2BAA2B,EAC3B,qBAAqB,CAAC,oBAAoB,CAAC;QACzC,SAAS,EAAE,UAAU;QACrB,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;QAC1B,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,eAAe,EAAE,MAAM,CAAC,eAAe;KACxC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IAC9F,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1,21 +1,36 @@
1
1
  /**
2
- * @fileoverview FIFO request queue for NCBI E-utility calls that enforces a minimum
3
- * delay between requests to comply with NCBI rate limits.
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
- * Processes NCBI API requests through a FIFO queue, inserting a configurable
9
- * delay between consecutive calls to stay within NCBI's rate-limit window.
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 queue;
13
- private readonly delayMs;
25
+ private readonly waiters;
26
+ private readonly minStartGapMs;
27
+ private readonly maxConcurrent;
14
28
  private readonly maxQueueSize;
15
- private processing;
16
- private lastRequestTime;
17
- constructor(delayMs: number, maxQueueSize?: number);
18
- enqueue<T>(task: () => Promise<T>, endpoint: string, params: NcbiRequestParams): Promise<T>;
19
- private processQueue;
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;;;;GAIG;AAMH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAYpD;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuB;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,eAAe,CAAK;gBAEhB,OAAO,EAAE,MAAM,EAAE,YAAY,SAAyB;IAKlE,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,CAAC,CAAC;YA+B7E,YAAY;CAqD3B"}
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"}
@@ -1,88 +1,130 @@
1
1
  /**
2
- * @fileoverview FIFO request queue for NCBI E-utility calls that enforces a minimum
3
- * delay between requests to comply with NCBI rate limits.
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 { JsonRpcErrorCode, McpError } from '@cyanheads/mcp-ts-core/errors';
7
9
  import { logger, requestContextService } from '@cyanheads/mcp-ts-core/utils';
8
10
  import { recoveryFor } from '../../services/error-contracts.js';
11
+ const DEFAULT_MAX_CONCURRENT = 8;
9
12
  const DEFAULT_MAX_QUEUE_SIZE = 100;
10
13
  /**
11
- * Processes NCBI API requests through a FIFO queue, inserting a configurable
12
- * delay between consecutive calls to stay within NCBI's rate-limit window.
14
+ * Schedules NCBI API requests against two independent ceilings:
15
+ *
16
+ * - **Throughput** (`minStartGapMs`): minimum delay between two consecutive
17
+ * dispatch times. Matches NCBI's per-second start-rate cap (≈3/s without
18
+ * an API key, ≈10/s with one).
19
+ * - **Concurrency** (`maxConcurrent`): maximum number of requests in flight
20
+ * simultaneously. Decouples concurrency from rate, so slow upstream
21
+ * responses don't block new dispatches.
22
+ *
23
+ * Enqueue accepts an optional `AbortSignal` so callers can bound their total
24
+ * time inside the scheduler — when the signal fires, a still-waiting task
25
+ * rejects immediately instead of sitting behind a saturated worker for
26
+ * minutes.
13
27
  */
14
28
  export class NcbiRequestQueue {
15
- queue = [];
16
- delayMs;
29
+ waiters = [];
30
+ minStartGapMs;
31
+ maxConcurrent;
17
32
  maxQueueSize;
18
- processing = false;
19
- lastRequestTime = 0;
20
- constructor(delayMs, maxQueueSize = DEFAULT_MAX_QUEUE_SIZE) {
21
- this.delayMs = delayMs;
33
+ inFlight = 0;
34
+ lastStartTime = 0;
35
+ nextDispatchTimer;
36
+ constructor(minStartGapMs, maxConcurrent = DEFAULT_MAX_CONCURRENT, maxQueueSize = DEFAULT_MAX_QUEUE_SIZE) {
37
+ this.minStartGapMs = minStartGapMs;
38
+ this.maxConcurrent = maxConcurrent;
22
39
  this.maxQueueSize = maxQueueSize;
23
40
  }
24
- enqueue(task, endpoint, params) {
25
- if (this.queue.length >= this.maxQueueSize) {
41
+ enqueue(task, endpoint, params, signal) {
42
+ if (this.waiters.length >= this.maxQueueSize) {
26
43
  return Promise.reject(new McpError(JsonRpcErrorCode.RateLimited, `NCBI request queue is full (max ${this.maxQueueSize}).`, {
27
44
  reason: 'queue_full',
28
45
  endpoint,
29
- queueSize: this.queue.length,
46
+ queueSize: this.waiters.length,
30
47
  ...recoveryFor('queue_full'),
31
48
  }));
32
49
  }
33
50
  return new Promise((resolve, reject) => {
34
- this.queue.push({
35
- resolve: resolve,
51
+ if (signal?.aborted) {
52
+ reject(signal.reason);
53
+ return;
54
+ }
55
+ const waiter = {
56
+ resolve,
36
57
  reject,
37
58
  task,
38
59
  endpoint,
39
60
  params,
40
- });
41
- if (!this.processing) {
42
- queueMicrotask(() => this.processQueue());
61
+ ...(signal && { signal }),
62
+ };
63
+ if (signal) {
64
+ const onAbort = () => {
65
+ const idx = this.waiters.indexOf(waiter);
66
+ if (idx === -1)
67
+ return; // already dispatched — the task forwards its own signal
68
+ this.waiters.splice(idx, 1);
69
+ reject(signal.reason);
70
+ };
71
+ waiter.onAbort = onAbort;
72
+ signal.addEventListener('abort', onAbort, { once: true });
43
73
  }
74
+ this.waiters.push(waiter);
75
+ this.tryDispatch();
44
76
  });
45
77
  }
46
- async processQueue() {
47
- if (this.processing || this.queue.length === 0)
48
- return;
49
- this.processing = true;
50
- const item = this.queue.shift();
51
- if (!item) {
52
- this.processing = false;
78
+ tryDispatch() {
79
+ if (this.nextDispatchTimer !== undefined)
53
80
  return;
54
- }
55
- const { resolve, reject, task, endpoint } = item;
56
- try {
81
+ while (this.inFlight < this.maxConcurrent && this.waiters.length > 0) {
57
82
  const now = Date.now();
58
- const elapsed = now - this.lastRequestTime;
59
- const wait = this.delayMs - elapsed;
60
- if (wait > 0) {
61
- logger.debug(`Delaying NCBI request by ${wait}ms to respect rate limit.`, requestContextService.createRequestContext({
83
+ const gap = this.minStartGapMs - (now - this.lastStartTime);
84
+ if (gap > 0) {
85
+ logger.debug(`Delaying next NCBI dispatch by ${gap}ms to respect rate limit.`, requestContextService.createRequestContext({
62
86
  operation: 'NcbiQueueWait',
63
- endpoint,
64
- delayMs: wait,
87
+ delayMs: gap,
65
88
  }));
66
- await new Promise((r) => setTimeout(r, wait));
89
+ this.nextDispatchTimer = setTimeout(() => {
90
+ this.nextDispatchTimer = undefined;
91
+ this.tryDispatch();
92
+ }, gap);
93
+ return;
67
94
  }
68
- this.lastRequestTime = Date.now();
69
- logger.info(`Executing NCBI request via queue: ${endpoint}`, requestContextService.createRequestContext({ operation: 'NcbiQueueDispatch', endpoint }));
70
- const result = await task();
71
- resolve(result);
72
- }
73
- catch (error) {
74
- logger.error('Error processing NCBI request from queue.', requestContextService.createRequestContext({
75
- operation: 'NcbiQueueProcess',
76
- endpoint,
77
- errorMessage: error instanceof Error ? error.message : String(error),
78
- }));
79
- reject(error);
80
- }
81
- finally {
82
- this.processing = false;
83
- if (this.queue.length > 0) {
84
- queueMicrotask(() => this.processQueue());
95
+ const waiter = this.waiters.shift();
96
+ if (!waiter)
97
+ return;
98
+ // Detach the cancel listener now that we're about to start; the task is
99
+ // responsible for forwarding its own signal to downstream I/O.
100
+ if (waiter.signal && waiter.onAbort) {
101
+ waiter.signal.removeEventListener('abort', waiter.onAbort);
85
102
  }
103
+ this.lastStartTime = Date.now();
104
+ this.inFlight += 1;
105
+ logger.info(`Executing NCBI request via queue: ${waiter.endpoint}`, requestContextService.createRequestContext({
106
+ operation: 'NcbiQueueDispatch',
107
+ endpoint: waiter.endpoint,
108
+ inFlight: this.inFlight,
109
+ queueDepth: this.waiters.length,
110
+ }));
111
+ // `Promise.resolve().then(() => task())` converts any sync throw from
112
+ // `task()` into a rejected promise so the finally() bookkeeping always
113
+ // runs.
114
+ Promise.resolve()
115
+ .then(() => waiter.task())
116
+ .then(waiter.resolve, (err) => {
117
+ logger.error('Error processing NCBI request from queue.', requestContextService.createRequestContext({
118
+ operation: 'NcbiQueueProcess',
119
+ endpoint: waiter.endpoint,
120
+ errorMessage: err instanceof Error ? err.message : String(err),
121
+ }));
122
+ waiter.reject(err);
123
+ })
124
+ .finally(() => {
125
+ this.inFlight -= 1;
126
+ this.tryDispatch();
127
+ });
86
128
  }
87
129
  }
88
130
  }
@@ -1 +1 @@
1
- {"version":3,"file":"request-queue.js","sourceRoot":"","sources":["../../../src/services/ncbi/request-queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request-queue.js","sourceRoot":"","sources":["../../../src/services/ncbi/request-queue.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"response-handler.d.ts","sourceRoot":"","sources":["../../../src/services/ncbi/response-handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAiMrD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMvD;AAED;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgB;;IAsBjD;;;;;;;;OAQG;IACH,OAAO,CAAC,cAAc;IA4BtB,wBAAwB,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE;IAsBtE,sBAAsB,CAAC,CAAC,EACtB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,CAAC;CA0NL"}
1
+ {"version":3,"file":"response-handler.d.ts","sourceRoot":"","sources":["../../../src/services/ncbi/response-handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAiMrD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMvD;AAED;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgB;;IAsBjD;;;;;;;;OAQG;IACH,OAAO,CAAC,cAAc;IA4BtB,wBAAwB,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE;IAsBtE,sBAAsB,CAAC,CAAC,EACtB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,CAAC;CA0NL"}
@@ -6,6 +6,14 @@
6
6
  */
7
7
  import { notFound, serializationError, serviceUnavailable } from '@cyanheads/mcp-ts-core/errors';
8
8
  import { logger, requestContextService } from '@cyanheads/mcp-ts-core/utils';
9
+ /**
10
+ * fast-xml-parser is pinned to `~5.7.3` in package.json. 5.8.0 deprecates
11
+ * `XMLValidator` in favor of a new sibling package `fast-xml-validator`
12
+ * (published days before the deprecation, 0 dependents, by the same author).
13
+ * 5.8.0 carries no security fix or feature we need, so we stay on 5.7.x until
14
+ * `fast-xml-validator` has time in the wild. Re-evaluate during a future
15
+ * `maintenance` pass — if `bun update --latest` bumps this, restore the pin.
16
+ */
9
17
  import { XMLParser as FastXmlParser, XMLValidator } from 'fast-xml-parser';
10
18
  import { recoveryFor } from '../../services/error-contracts.js';
11
19
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"response-handler.js","sourceRoot":"","sources":["../../../src/services/ncbi/response-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"response-handler.js","sourceRoot":"","sources":["../../../src/services/ncbi/response-handler.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyanheads/pubmed-mcp-server",
3
- "version": "2.6.10",
3
+ "version": "2.6.12",
4
4
  "mcpName": "io.github.cyanheads/pubmed-mcp-server",
5
5
  "description": "MCP server for PubMed/NCBI E-utilities integration. Search articles, fetch metadata and open-access full text (PMC + Unpaywall), generate citations, explore MeSH terms, and discover related research.",
6
6
  "type": "module",
@@ -71,24 +71,24 @@
71
71
  "access": "public"
72
72
  },
73
73
  "dependencies": {
74
- "@cyanheads/mcp-ts-core": "^0.8.20",
74
+ "@cyanheads/mcp-ts-core": "^0.9.1",
75
75
  "defuddle": "^0.18.1",
76
- "fast-xml-parser": "^5.7.3",
76
+ "fast-xml-parser": "~5.7.3",
77
77
  "linkedom": "^0.18.12",
78
78
  "pino-pretty": "^13.1.3",
79
- "sanitize-html": "^2.17.3",
79
+ "sanitize-html": "^2.17.4",
80
80
  "unpdf": "^1.6.2"
81
81
  },
82
82
  "devDependencies": {
83
83
  "@biomejs/biome": "^2.4.15",
84
- "@types/node": "^25.6.2",
84
+ "@types/node": "^25.8.0",
85
85
  "@types/sanitize-html": "^2.16.1",
86
- "@vitest/coverage-istanbul": "^4.1.5",
86
+ "@vitest/coverage-istanbul": "^4.1.6",
87
87
  "depcheck": "^1.4.7",
88
- "fast-check": "^4.7.0",
88
+ "fast-check": "^4.8.0",
89
89
  "ignore": "^7.0.5",
90
90
  "tsc-alias": "^1.8.17",
91
91
  "typescript": "^6.0.3",
92
- "vitest": "^4.1.5"
92
+ "vitest": "^4.1.6"
93
93
  }
94
94
  }
package/server.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "url": "https://github.com/cyanheads/pubmed-mcp-server",
7
7
  "source": "github"
8
8
  },
9
- "version": "2.6.10",
9
+ "version": "2.6.12",
10
10
  "remotes": [
11
11
  {
12
12
  "type": "streamable-http",
@@ -19,7 +19,7 @@
19
19
  "registryBaseUrl": "https://registry.npmjs.org",
20
20
  "identifier": "@cyanheads/pubmed-mcp-server",
21
21
  "runtimeHint": "bun",
22
- "version": "2.6.10",
22
+ "version": "2.6.12",
23
23
  "packageArguments": [
24
24
  {
25
25
  "type": "positional",
@@ -66,7 +66,7 @@
66
66
  "registryBaseUrl": "https://registry.npmjs.org",
67
67
  "identifier": "@cyanheads/pubmed-mcp-server",
68
68
  "runtimeHint": "bun",
69
- "version": "2.6.10",
69
+ "version": "2.6.12",
70
70
  "packageArguments": [
71
71
  {
72
72
  "type": "positional",