@cyanheads/pubmed-mcp-server 1.3.5 → 1.4.3

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.
Files changed (221) hide show
  1. package/README.md +24 -21
  2. package/dist/config/index.d.ts +11 -0
  3. package/dist/config/index.d.ts.map +1 -1
  4. package/dist/config/index.js +75 -11
  5. package/dist/config/index.js.map +1 -1
  6. package/dist/index.js.map +1 -1
  7. package/dist/mcp-server/server.d.ts +13 -0
  8. package/dist/mcp-server/server.d.ts.map +1 -1
  9. package/dist/mcp-server/server.js +31 -13
  10. package/dist/mcp-server/server.js.map +1 -1
  11. package/dist/mcp-server/tools/pubmedArticleConnections/index.d.ts +7 -0
  12. package/dist/mcp-server/tools/pubmedArticleConnections/index.d.ts.map +1 -0
  13. package/dist/mcp-server/tools/pubmedArticleConnections/index.js +7 -0
  14. package/dist/mcp-server/tools/pubmedArticleConnections/index.js.map +1 -0
  15. package/dist/mcp-server/tools/pubmedArticleConnections/logic/citationFormatter.d.ts +10 -0
  16. package/dist/mcp-server/tools/pubmedArticleConnections/logic/citationFormatter.d.ts.map +1 -0
  17. package/dist/mcp-server/tools/{getPubMedArticleConnections → pubmedArticleConnections}/logic/citationFormatter.js +9 -7
  18. package/dist/mcp-server/tools/pubmedArticleConnections/logic/citationFormatter.js.map +1 -0
  19. package/dist/mcp-server/tools/pubmedArticleConnections/logic/elinkHandler.d.ts +10 -0
  20. package/dist/mcp-server/tools/pubmedArticleConnections/logic/elinkHandler.d.ts.map +1 -0
  21. package/dist/mcp-server/tools/{getPubMedArticleConnections → pubmedArticleConnections}/logic/elinkHandler.js +9 -9
  22. package/dist/mcp-server/tools/pubmedArticleConnections/logic/elinkHandler.js.map +1 -0
  23. package/dist/mcp-server/tools/{getPubMedArticleConnections → pubmedArticleConnections}/logic/index.d.ts +9 -9
  24. package/dist/mcp-server/tools/pubmedArticleConnections/logic/index.d.ts.map +1 -0
  25. package/dist/mcp-server/tools/{getPubMedArticleConnections → pubmedArticleConnections}/logic/index.js +14 -14
  26. package/dist/mcp-server/tools/pubmedArticleConnections/logic/index.js.map +1 -0
  27. package/dist/mcp-server/tools/{getPubMedArticleConnections → pubmedArticleConnections}/logic/types.d.ts +4 -4
  28. package/dist/mcp-server/tools/pubmedArticleConnections/logic/types.d.ts.map +1 -0
  29. package/dist/mcp-server/tools/pubmedArticleConnections/logic/types.js +6 -0
  30. package/dist/mcp-server/tools/pubmedArticleConnections/logic/types.js.map +1 -0
  31. package/dist/mcp-server/tools/pubmedArticleConnections/registration.d.ts +12 -0
  32. package/dist/mcp-server/tools/pubmedArticleConnections/registration.d.ts.map +1 -0
  33. package/dist/mcp-server/tools/{getPubMedArticleConnections → pubmedArticleConnections}/registration.js +11 -11
  34. package/dist/mcp-server/tools/pubmedArticleConnections/registration.js.map +1 -0
  35. package/dist/mcp-server/tools/pubmedFetchContents/index.d.ts +7 -0
  36. package/dist/mcp-server/tools/pubmedFetchContents/index.d.ts.map +1 -0
  37. package/dist/mcp-server/tools/pubmedFetchContents/index.js +7 -0
  38. package/dist/mcp-server/tools/pubmedFetchContents/index.js.map +1 -0
  39. package/dist/mcp-server/tools/{fetchPubMedContent → pubmedFetchContents}/logic.d.ts +6 -6
  40. package/dist/mcp-server/tools/pubmedFetchContents/logic.d.ts.map +1 -0
  41. package/dist/mcp-server/tools/{fetchPubMedContent → pubmedFetchContents}/logic.js +18 -17
  42. package/dist/mcp-server/tools/pubmedFetchContents/logic.js.map +1 -0
  43. package/dist/mcp-server/tools/pubmedFetchContents/registration.d.ts +11 -0
  44. package/dist/mcp-server/tools/pubmedFetchContents/registration.d.ts.map +1 -0
  45. package/dist/mcp-server/tools/{fetchPubMedContent → pubmedFetchContents}/registration.js +12 -12
  46. package/dist/mcp-server/tools/pubmedFetchContents/registration.js.map +1 -0
  47. package/dist/mcp-server/tools/{generatePubMedChart → pubmedGenerateChart}/index.d.ts +2 -2
  48. package/dist/mcp-server/tools/pubmedGenerateChart/index.d.ts.map +1 -0
  49. package/dist/mcp-server/tools/{generatePubMedChart → pubmedGenerateChart}/index.js +2 -2
  50. package/dist/mcp-server/tools/pubmedGenerateChart/index.js.map +1 -0
  51. package/dist/mcp-server/tools/{generatePubMedChart → pubmedGenerateChart}/logic.d.ts +4 -4
  52. package/dist/mcp-server/tools/{generatePubMedChart → pubmedGenerateChart}/logic.d.ts.map +1 -1
  53. package/dist/mcp-server/tools/{generatePubMedChart → pubmedGenerateChart}/logic.js +24 -20
  54. package/dist/mcp-server/tools/pubmedGenerateChart/logic.js.map +1 -0
  55. package/dist/mcp-server/tools/pubmedGenerateChart/registration.d.ts +8 -0
  56. package/dist/mcp-server/tools/{generatePubMedChart → pubmedGenerateChart}/registration.d.ts.map +1 -1
  57. package/dist/mcp-server/tools/{generatePubMedChart → pubmedGenerateChart}/registration.js +9 -13
  58. package/dist/mcp-server/tools/pubmedGenerateChart/registration.js.map +1 -0
  59. package/dist/mcp-server/tools/pubmedResearchAgent/logic/planOrchestrator.d.ts.map +1 -1
  60. package/dist/mcp-server/tools/pubmedResearchAgent/logic/planOrchestrator.js +7 -4
  61. package/dist/mcp-server/tools/pubmedResearchAgent/logic/planOrchestrator.js.map +1 -1
  62. package/dist/mcp-server/tools/pubmedResearchAgent/registration.js.map +1 -1
  63. package/dist/mcp-server/tools/pubmedSearchArticles/index.d.ts +7 -0
  64. package/dist/mcp-server/tools/{searchPubMedArticles → pubmedSearchArticles}/index.d.ts.map +1 -1
  65. package/dist/mcp-server/tools/pubmedSearchArticles/index.js +7 -0
  66. package/dist/mcp-server/tools/{searchPubMedArticles → pubmedSearchArticles}/index.js.map +1 -1
  67. package/dist/mcp-server/tools/{searchPubMedArticles → pubmedSearchArticles}/logic.d.ts +9 -9
  68. package/dist/mcp-server/tools/{searchPubMedArticles → pubmedSearchArticles}/logic.d.ts.map +1 -1
  69. package/dist/mcp-server/tools/{searchPubMedArticles → pubmedSearchArticles}/logic.js +16 -14
  70. package/dist/mcp-server/tools/{searchPubMedArticles → pubmedSearchArticles}/logic.js.map +1 -1
  71. package/dist/mcp-server/tools/pubmedSearchArticles/registration.d.ts +11 -0
  72. package/dist/mcp-server/tools/{searchPubMedArticles → pubmedSearchArticles}/registration.d.ts.map +1 -1
  73. package/dist/mcp-server/tools/{searchPubMedArticles → pubmedSearchArticles}/registration.js +12 -12
  74. package/dist/mcp-server/tools/{searchPubMedArticles → pubmedSearchArticles}/registration.js.map +1 -1
  75. package/dist/mcp-server/transports/auth/index.d.ts +1 -1
  76. package/dist/mcp-server/transports/auth/index.d.ts.map +1 -1
  77. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts.map +1 -1
  78. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js +4 -0
  79. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js.map +1 -1
  80. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts.map +1 -1
  81. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js +5 -0
  82. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js.map +1 -1
  83. package/dist/mcp-server/transports/core/headerUtils.d.ts +20 -0
  84. package/dist/mcp-server/transports/core/headerUtils.d.ts.map +1 -0
  85. package/dist/mcp-server/transports/core/headerUtils.js +38 -0
  86. package/dist/mcp-server/transports/core/headerUtils.js.map +1 -0
  87. package/dist/mcp-server/transports/core/honoNodeBridge.d.ts +60 -7
  88. package/dist/mcp-server/transports/core/honoNodeBridge.d.ts.map +1 -1
  89. package/dist/mcp-server/transports/core/honoNodeBridge.js +99 -12
  90. package/dist/mcp-server/transports/core/honoNodeBridge.js.map +1 -1
  91. package/dist/mcp-server/transports/core/statefulTransportManager.d.ts +53 -8
  92. package/dist/mcp-server/transports/core/statefulTransportManager.d.ts.map +1 -1
  93. package/dist/mcp-server/transports/core/statefulTransportManager.js +180 -117
  94. package/dist/mcp-server/transports/core/statefulTransportManager.js.map +1 -1
  95. package/dist/mcp-server/transports/core/statelessTransportManager.d.ts +44 -7
  96. package/dist/mcp-server/transports/core/statelessTransportManager.d.ts.map +1 -1
  97. package/dist/mcp-server/transports/core/statelessTransportManager.js +84 -24
  98. package/dist/mcp-server/transports/core/statelessTransportManager.js.map +1 -1
  99. package/dist/mcp-server/transports/core/transportTypes.d.ts +58 -21
  100. package/dist/mcp-server/transports/core/transportTypes.d.ts.map +1 -1
  101. package/dist/mcp-server/transports/core/transportTypes.js +3 -1
  102. package/dist/mcp-server/transports/core/transportTypes.js.map +1 -1
  103. package/dist/mcp-server/transports/http/httpTransport.d.ts +3 -3
  104. package/dist/mcp-server/transports/http/httpTransport.d.ts.map +1 -1
  105. package/dist/mcp-server/transports/http/httpTransport.js +58 -20
  106. package/dist/mcp-server/transports/http/httpTransport.js.map +1 -1
  107. package/dist/mcp-server/transports/http/mcpTransportMiddleware.d.ts +4 -3
  108. package/dist/mcp-server/transports/http/mcpTransportMiddleware.d.ts.map +1 -1
  109. package/dist/mcp-server/transports/http/mcpTransportMiddleware.js +28 -25
  110. package/dist/mcp-server/transports/http/mcpTransportMiddleware.js.map +1 -1
  111. package/dist/services/NCBI/core/ncbiConstants.d.ts +1 -1
  112. package/dist/services/NCBI/core/ncbiConstants.d.ts.map +1 -1
  113. package/dist/services/NCBI/core/ncbiCoreApiClient.d.ts.map +1 -1
  114. package/dist/services/NCBI/core/ncbiCoreApiClient.js +5 -4
  115. package/dist/services/NCBI/core/ncbiCoreApiClient.js.map +1 -1
  116. package/dist/services/NCBI/core/ncbiRequestQueueManager.d.ts +4 -4
  117. package/dist/services/NCBI/core/ncbiRequestQueueManager.d.ts.map +1 -1
  118. package/dist/services/NCBI/core/ncbiRequestQueueManager.js +6 -5
  119. package/dist/services/NCBI/core/ncbiRequestQueueManager.js.map +1 -1
  120. package/dist/services/NCBI/core/ncbiResponseHandler.d.ts +1 -1
  121. package/dist/services/NCBI/core/ncbiResponseHandler.d.ts.map +1 -1
  122. package/dist/services/NCBI/core/ncbiResponseHandler.js +1 -1
  123. package/dist/services/NCBI/core/ncbiResponseHandler.js.map +1 -1
  124. package/dist/services/NCBI/core/ncbiService.d.ts +3 -3
  125. package/dist/services/NCBI/core/ncbiService.d.ts.map +1 -1
  126. package/dist/services/NCBI/parsing/eSummaryResultParser.d.ts.map +1 -1
  127. package/dist/services/NCBI/parsing/eSummaryResultParser.js +2 -1
  128. package/dist/services/NCBI/parsing/eSummaryResultParser.js.map +1 -1
  129. package/dist/services/NCBI/parsing/pubmedArticleStructureParser.js +1 -1
  130. package/dist/services/NCBI/parsing/pubmedArticleStructureParser.js.map +1 -1
  131. package/dist/services/NCBI/parsing/xmlGenericHelpers.d.ts +2 -2
  132. package/dist/services/NCBI/parsing/xmlGenericHelpers.d.ts.map +1 -1
  133. package/dist/services/NCBI/parsing/xmlGenericHelpers.js +17 -23
  134. package/dist/services/NCBI/parsing/xmlGenericHelpers.js.map +1 -1
  135. package/dist/types-global/pubmedXml.d.ts +9 -9
  136. package/dist/types-global/pubmedXml.d.ts.map +1 -1
  137. package/dist/utils/index.d.ts +2 -0
  138. package/dist/utils/index.d.ts.map +1 -1
  139. package/dist/utils/index.js +2 -0
  140. package/dist/utils/index.js.map +1 -1
  141. package/dist/utils/internal/errorHandler.d.ts +0 -7
  142. package/dist/utils/internal/errorHandler.d.ts.map +1 -1
  143. package/dist/utils/internal/errorHandler.js +27 -11
  144. package/dist/utils/internal/errorHandler.js.map +1 -1
  145. package/dist/utils/internal/index.d.ts +1 -0
  146. package/dist/utils/internal/index.d.ts.map +1 -1
  147. package/dist/utils/internal/index.js +1 -0
  148. package/dist/utils/internal/index.js.map +1 -1
  149. package/dist/utils/internal/logger.d.ts.map +1 -1
  150. package/dist/utils/internal/logger.js +2 -0
  151. package/dist/utils/internal/logger.js.map +1 -1
  152. package/dist/utils/internal/performance.d.ts +22 -0
  153. package/dist/utils/internal/performance.d.ts.map +1 -0
  154. package/dist/utils/internal/performance.js +104 -0
  155. package/dist/utils/internal/performance.js.map +1 -0
  156. package/dist/utils/internal/requestContext.d.ts.map +1 -1
  157. package/dist/utils/internal/requestContext.js +10 -0
  158. package/dist/utils/internal/requestContext.js.map +1 -1
  159. package/dist/utils/metrics/tokenCounter.js +4 -4
  160. package/dist/utils/metrics/tokenCounter.js.map +1 -1
  161. package/dist/utils/network/fetchWithTimeout.d.ts.map +1 -1
  162. package/dist/utils/network/fetchWithTimeout.js +18 -0
  163. package/dist/utils/network/fetchWithTimeout.js.map +1 -1
  164. package/dist/utils/parsing/dateParser.d.ts +2 -3
  165. package/dist/utils/parsing/dateParser.d.ts.map +1 -1
  166. package/dist/utils/parsing/dateParser.js +2 -2
  167. package/dist/utils/parsing/dateParser.js.map +1 -1
  168. package/dist/utils/parsing/jsonParser.d.ts +1 -1
  169. package/dist/utils/parsing/jsonParser.d.ts.map +1 -1
  170. package/dist/utils/parsing/jsonParser.js +5 -4
  171. package/dist/utils/parsing/jsonParser.js.map +1 -1
  172. package/dist/utils/security/idGenerator.d.ts.map +1 -1
  173. package/dist/utils/security/idGenerator.js +5 -1
  174. package/dist/utils/security/idGenerator.js.map +1 -1
  175. package/dist/utils/security/rateLimiter.d.ts.map +1 -1
  176. package/dist/utils/security/rateLimiter.js +22 -6
  177. package/dist/utils/security/rateLimiter.js.map +1 -1
  178. package/dist/utils/telemetry/instrumentation.d.ts +8 -0
  179. package/dist/utils/telemetry/instrumentation.d.ts.map +1 -0
  180. package/dist/utils/telemetry/instrumentation.js +179 -0
  181. package/dist/utils/telemetry/instrumentation.js.map +1 -0
  182. package/dist/utils/telemetry/semconv.d.ts +16 -0
  183. package/dist/utils/telemetry/semconv.d.ts.map +1 -0
  184. package/dist/utils/telemetry/semconv.js +16 -0
  185. package/dist/utils/telemetry/semconv.js.map +1 -0
  186. package/package.json +45 -17
  187. package/dist/mcp-server/tools/fetchPubMedContent/index.d.ts +0 -7
  188. package/dist/mcp-server/tools/fetchPubMedContent/index.d.ts.map +0 -1
  189. package/dist/mcp-server/tools/fetchPubMedContent/index.js +0 -7
  190. package/dist/mcp-server/tools/fetchPubMedContent/index.js.map +0 -1
  191. package/dist/mcp-server/tools/fetchPubMedContent/logic.d.ts.map +0 -1
  192. package/dist/mcp-server/tools/fetchPubMedContent/logic.js.map +0 -1
  193. package/dist/mcp-server/tools/fetchPubMedContent/registration.d.ts +0 -11
  194. package/dist/mcp-server/tools/fetchPubMedContent/registration.d.ts.map +0 -1
  195. package/dist/mcp-server/tools/fetchPubMedContent/registration.js.map +0 -1
  196. package/dist/mcp-server/tools/generatePubMedChart/index.d.ts.map +0 -1
  197. package/dist/mcp-server/tools/generatePubMedChart/index.js.map +0 -1
  198. package/dist/mcp-server/tools/generatePubMedChart/logic.js.map +0 -1
  199. package/dist/mcp-server/tools/generatePubMedChart/registration.d.ts +0 -8
  200. package/dist/mcp-server/tools/generatePubMedChart/registration.js.map +0 -1
  201. package/dist/mcp-server/tools/getPubMedArticleConnections/index.d.ts +0 -7
  202. package/dist/mcp-server/tools/getPubMedArticleConnections/index.d.ts.map +0 -1
  203. package/dist/mcp-server/tools/getPubMedArticleConnections/index.js +0 -7
  204. package/dist/mcp-server/tools/getPubMedArticleConnections/index.js.map +0 -1
  205. package/dist/mcp-server/tools/getPubMedArticleConnections/logic/citationFormatter.d.ts +0 -10
  206. package/dist/mcp-server/tools/getPubMedArticleConnections/logic/citationFormatter.d.ts.map +0 -1
  207. package/dist/mcp-server/tools/getPubMedArticleConnections/logic/citationFormatter.js.map +0 -1
  208. package/dist/mcp-server/tools/getPubMedArticleConnections/logic/elinkHandler.d.ts +0 -10
  209. package/dist/mcp-server/tools/getPubMedArticleConnections/logic/elinkHandler.d.ts.map +0 -1
  210. package/dist/mcp-server/tools/getPubMedArticleConnections/logic/elinkHandler.js.map +0 -1
  211. package/dist/mcp-server/tools/getPubMedArticleConnections/logic/index.d.ts.map +0 -1
  212. package/dist/mcp-server/tools/getPubMedArticleConnections/logic/index.js.map +0 -1
  213. package/dist/mcp-server/tools/getPubMedArticleConnections/logic/types.d.ts.map +0 -1
  214. package/dist/mcp-server/tools/getPubMedArticleConnections/logic/types.js +0 -6
  215. package/dist/mcp-server/tools/getPubMedArticleConnections/logic/types.js.map +0 -1
  216. package/dist/mcp-server/tools/getPubMedArticleConnections/registration.d.ts +0 -12
  217. package/dist/mcp-server/tools/getPubMedArticleConnections/registration.d.ts.map +0 -1
  218. package/dist/mcp-server/tools/getPubMedArticleConnections/registration.js.map +0 -1
  219. package/dist/mcp-server/tools/searchPubMedArticles/index.d.ts +0 -7
  220. package/dist/mcp-server/tools/searchPubMedArticles/index.js +0 -7
  221. package/dist/mcp-server/tools/searchPubMedArticles/registration.d.ts +0 -11
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @fileoverview Handles ELink requests and enriches results with ESummary data
3
- * for the getPubMedArticleConnections tool.
4
- * @module src/mcp-server/tools/getPubMedArticleConnections/logic/elinkHandler
3
+ * for the pubmedArticleConnections tool.
4
+ * @module src/mcp-server/tools/pubmedArticleConnections/logic/elinkHandler
5
5
  */
6
6
  import { getNcbiService } from "../../../../services/NCBI/core/ncbiService.js";
7
7
  import { logger } from "../../../../utils/index.js";
@@ -34,7 +34,7 @@ export async function handleELinkRelationships(input, outputData, context) {
34
34
  Object.keys(eLinkParams).forEach((key) => tempUrl.searchParams.append(key, String(eLinkParams[key])));
35
35
  outputData.eUtilityUrl = `https://eutils.ncbi.nlm.nih.gov/entrez/eutils/elink.fcgi?${tempUrl.search.substring(1)}`;
36
36
  const ncbiService = getNcbiService();
37
- const eLinkResult = await ncbiService.eLink(eLinkParams, context);
37
+ const eLinkResult = (await ncbiService.eLink(eLinkParams, context));
38
38
  // Log the full eLinkResult for debugging
39
39
  logger.debug("Raw eLinkResult from ncbiService:", {
40
40
  ...context,
@@ -42,10 +42,10 @@ export async function handleELinkRelationships(input, outputData, context) {
42
42
  });
43
43
  // Use ensureArray for robust handling of potentially single or array eLinkResult
44
44
  const eLinkResultsArray = ensureArray(eLinkResult?.eLinkResult);
45
- const firstELinkResult = eLinkResultsArray[0]; // Get the first (or only) eLinkResult object
45
+ const firstELinkResult = eLinkResultsArray[0];
46
46
  // Use ensureArray for LinkSet as well
47
47
  const linkSetsArray = ensureArray(firstELinkResult?.LinkSet);
48
- const linkSet = linkSetsArray[0]; // Get the first (or only) LinkSet object
48
+ const linkSet = linkSetsArray[0];
49
49
  let foundPmids = [];
50
50
  if (firstELinkResult?.ERROR) {
51
51
  const errorMsg = typeof firstELinkResult.ERROR === "string"
@@ -61,15 +61,15 @@ export async function handleELinkRelationships(input, outputData, context) {
61
61
  const history = Array.isArray(linkSet.LinkSetDbHistory)
62
62
  ? linkSet.LinkSetDbHistory[0]
63
63
  : linkSet.LinkSetDbHistory;
64
- if (history?.QueryKey && linkSet.WebEnv) {
64
+ if (history?.QueryKey && firstELinkResult?.LinkSet?.WebEnv) {
65
65
  const eSearchParams = {
66
66
  db: "pubmed",
67
67
  query_key: history.QueryKey,
68
- WebEnv: linkSet.WebEnv,
68
+ WebEnv: firstELinkResult.LinkSet.WebEnv,
69
69
  retmode: "xml",
70
70
  retmax: input.maxRelatedResults * 2, // Fetch a bit more to allow filtering sourcePmid
71
71
  };
72
- const eSearchResult = await ncbiService.eSearch(eSearchParams, context);
72
+ const eSearchResult = (await ncbiService.eSearch(eSearchParams, context));
73
73
  if (eSearchResult?.eSearchResult?.IdList?.Id) {
74
74
  const ids = ensureArray(eSearchResult.eSearchResult.IdList.Id);
75
75
  foundPmids = ids
@@ -159,7 +159,7 @@ export async function handleELinkRelationships(input, outputData, context) {
159
159
  version: "2.0",
160
160
  retmode: "xml",
161
161
  };
162
- const summaryResultContainer = await ncbiService.eSummary(summaryParams, context);
162
+ const summaryResultContainer = (await ncbiService.eSummary(summaryParams, context));
163
163
  const summaryResult = summaryResultContainer?.eSummaryResult ||
164
164
  summaryResultContainer?.result ||
165
165
  summaryResultContainer;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elinkHandler.js","sourceRoot":"","sources":["../../../../../src/mcp-server/tools/pubmedArticleConnections/logic/elinkHandler.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,15 @@
1
1
  /**
2
- * @fileoverview Main logic handler for the 'get_pubmed_article_connections' MCP tool.
2
+ * @fileoverview Main logic handler for the 'pubmed_article_connections' MCP tool.
3
3
  * Orchestrates calls to ELink or citation formatting handlers.
4
- * @module src/mcp-server/tools/getPubMedArticleConnections/logic/index
4
+ * @module src/mcp-server/tools/pubmedArticleConnections/logic/index
5
5
  */
6
6
  import { z } from "zod";
7
7
  import { RequestContext } from "../../../../utils/index.js";
8
8
  import type { ToolOutputData } from "./types.js";
9
9
  /**
10
- * Zod schema for the input parameters of the 'get_pubmed_article_connections' tool.
10
+ * Zod schema for the input parameters of the 'pubmed_article_connections' tool.
11
11
  */
12
- export declare const GetPubMedArticleConnectionsInputSchema: z.ZodObject<{
12
+ export declare const PubMedArticleConnectionsInputSchema: z.ZodObject<{
13
13
  sourcePmid: z.ZodString;
14
14
  relationshipType: z.ZodDefault<z.ZodEnum<["pubmed_similar_articles", "pubmed_citedin", "pubmed_references", "citation_formats"]>>;
15
15
  maxRelatedResults: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
@@ -26,14 +26,14 @@ export declare const GetPubMedArticleConnectionsInputSchema: z.ZodObject<{
26
26
  citationStyles?: ("ris" | "bibtex" | "apa_string" | "mla_string")[] | undefined;
27
27
  }>;
28
28
  /**
29
- * Type alias for the validated input of the 'get_pubmed_article_connections' tool.
29
+ * Type alias for the validated input of the 'pubmed_article_connections' tool.
30
30
  */
31
- export type GetPubMedArticleConnectionsInput = z.infer<typeof GetPubMedArticleConnectionsInputSchema>;
31
+ export type PubMedArticleConnectionsInput = z.infer<typeof PubMedArticleConnectionsInputSchema>;
32
32
  /**
33
- * Main handler for the 'get_pubmed_article_connections' tool.
34
- * @param {GetPubMedArticleConnectionsInput} input - Validated input parameters.
33
+ * Main handler for the 'pubmed_article_connections' tool.
34
+ * @param {PubMedArticleConnectionsInput} input - Validated input parameters.
35
35
  * @param {RequestContext} context - The request context for this tool invocation.
36
36
  * @returns {Promise<ToolOutputData>} The result of the tool call.
37
37
  */
38
- export declare function handleGetPubMedArticleConnections(input: GetPubMedArticleConnectionsInput, context: RequestContext): Promise<ToolOutputData>;
38
+ export declare function handlePubMedArticleConnections(input: PubMedArticleConnectionsInput, context: RequestContext): Promise<ToolOutputData>;
39
39
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/mcp-server/tools/pubmedArticleConnections/logic/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAEL,cAAc,EAGf,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;EAmC9C,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CACjD,OAAO,mCAAmC,CAC3C,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,8BAA8B,CAClD,KAAK,EAAE,6BAA6B,EACpC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CAsDzB"}
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @fileoverview Main logic handler for the 'get_pubmed_article_connections' MCP tool.
2
+ * @fileoverview Main logic handler for the 'pubmed_article_connections' MCP tool.
3
3
  * Orchestrates calls to ELink or citation formatting handlers.
4
- * @module src/mcp-server/tools/getPubMedArticleConnections/logic/index
4
+ * @module src/mcp-server/tools/pubmedArticleConnections/logic/index
5
5
  */
6
6
  import { z } from "zod";
7
7
  import { BaseErrorCode, McpError } from "../../../../types-global/errors.js";
@@ -9,9 +9,9 @@ import { logger, requestContextService, sanitizeInputForLogging, } from "../../.
9
9
  import { handleCitationFormats } from "./citationFormatter.js";
10
10
  import { handleELinkRelationships } from "./elinkHandler.js";
11
11
  /**
12
- * Zod schema for the input parameters of the 'get_pubmed_article_connections' tool.
12
+ * Zod schema for the input parameters of the 'pubmed_article_connections' tool.
13
13
  */
14
- export const GetPubMedArticleConnectionsInputSchema = z.object({
14
+ export const PubMedArticleConnectionsInputSchema = z.object({
15
15
  sourcePmid: z
16
16
  .string()
17
17
  .regex(/^\d+$/)
@@ -24,7 +24,7 @@ export const GetPubMedArticleConnectionsInputSchema = z.object({
24
24
  "citation_formats",
25
25
  ])
26
26
  .default("pubmed_similar_articles")
27
- .describe("Specifies the type of connection or action: \n- 'pubmed_similar_articles': Finds articles similar to the source PMID (uses ELink `cmd=neighbor`). \n- 'pubmed_citedin': Finds articles in PubMed that cite the source PMID (uses ELink `linkname=pubmed_pubmed_citedin`). \n- 'pubmed_references': Finds articles in PubMed referenced by the source PMID (uses ELink `linkname=pubmed_pubmed_refs`). \n- 'citation_formats': Retrieves data for the source PMID and formats it into specified citation styles (RIS, BibTeX, APA, MLA via NCBI EFetch and server-side formatting)."),
27
+ .describe("Specifies the type of connection or action: 'pubmed_similar_articles' (finds similar articles), 'pubmed_citedin' (finds citing articles), 'pubmed_references' (finds referenced articles), or 'citation_formats' (retrieves formatted citations)."),
28
28
  maxRelatedResults: z
29
29
  .number()
30
30
  .int()
@@ -32,27 +32,27 @@ export const GetPubMedArticleConnectionsInputSchema = z.object({
32
32
  .max(50, "Maximum 50 related results can be requested.")
33
33
  .optional()
34
34
  .default(5)
35
- .describe("Maximum number of related articles to retrieve when 'relationshipType' is 'pubmed_similar_articles', 'pubmed_citedin', or 'pubmed_references'. ELink results from NCBI will be truncated by the server if they exceed this number. Default is 5, maximum is 50."),
35
+ .describe("Maximum number of related articles to retrieve for relationship-based searches. Default is 5, max is 50."),
36
36
  citationStyles: z
37
37
  .array(z.enum(["ris", "bibtex", "apa_string", "mla_string"]))
38
38
  .optional()
39
39
  .default(["ris"])
40
- .describe("An array of citation styles to format the source article into when 'relationshipType' is 'citation_formats'. Supported styles: 'ris', 'bibtex', 'apa_string', 'mla_string'. Default is ['ris']. Formatting is performed server-side based on data fetched via EFetch."),
40
+ .describe("An array of citation styles to format the source article into when 'relationshipType' is 'citation_formats'. Supported styles: 'ris', 'bibtex', 'apa_string', 'mla_string'. Default is ['ris']."),
41
41
  });
42
42
  /**
43
- * Main handler for the 'get_pubmed_article_connections' tool.
44
- * @param {GetPubMedArticleConnectionsInput} input - Validated input parameters.
43
+ * Main handler for the 'pubmed_article_connections' tool.
44
+ * @param {PubMedArticleConnectionsInput} input - Validated input parameters.
45
45
  * @param {RequestContext} context - The request context for this tool invocation.
46
46
  * @returns {Promise<ToolOutputData>} The result of the tool call.
47
47
  */
48
- export async function handleGetPubMedArticleConnections(input, context) {
48
+ export async function handlePubMedArticleConnections(input, context) {
49
49
  const toolLogicContext = requestContextService.createRequestContext({
50
50
  parentRequestId: context.requestId,
51
- operation: "handleGetPubMedArticleConnections",
52
- toolName: "get_pubmed_article_connections",
51
+ operation: "handlePubMedArticleConnections",
52
+ toolName: "pubmed_article_connections",
53
53
  input: sanitizeInputForLogging(input),
54
54
  });
55
- logger.info("Executing get_pubmed_article_connections tool", toolLogicContext);
55
+ logger.info("Executing pubmed_article_connections tool", toolLogicContext);
56
56
  const outputData = {
57
57
  sourcePmid: input.sourcePmid,
58
58
  relationshipType: input.relationshipType,
@@ -80,7 +80,7 @@ export async function handleGetPubMedArticleConnections(input, context) {
80
80
  Object.keys(outputData.citations).length === 0)) {
81
81
  outputData.message = "No results found for the given parameters.";
82
82
  }
83
- logger.notice("Successfully executed get_pubmed_article_connections tool.", {
83
+ logger.notice("Successfully executed pubmed_article_connections tool.", {
84
84
  ...toolLogicContext,
85
85
  relationshipType: input.relationshipType,
86
86
  retrievedCount: outputData.retrievedCount,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/mcp-server/tools/pubmedArticleConnections/logic/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EACL,MAAM,EAEN,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAG7D;;GAEG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1D,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,KAAK,CAAC,OAAO,CAAC;SACd,QAAQ,CACP,uJAAuJ,CACxJ;IACH,gBAAgB,EAAE,CAAC;SAChB,IAAI,CAAC;QACJ,yBAAyB;QACzB,gBAAgB;QAChB,mBAAmB;QACnB,kBAAkB;KACnB,CAAC;SACD,OAAO,CAAC,yBAAyB,CAAC;SAClC,QAAQ,CACP,mPAAmP,CACpP;IACH,iBAAiB,EAAE,CAAC;SACjB,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,GAAG,CAAC,EAAE,EAAE,8CAA8C,CAAC;SACvD,QAAQ,EAAE;SACV,OAAO,CAAC,CAAC,CAAC;SACV,QAAQ,CACP,0GAA0G,CAC3G;IACH,cAAc,EAAE,CAAC;SACd,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;SAC5D,QAAQ,EAAE;SACV,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;SAChB,QAAQ,CACP,iMAAiM,CAClM;CACJ,CAAC,CAAC;AASH;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,KAAoC,EACpC,OAAuB;IAEvB,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,oBAAoB,CAAC;QAClE,eAAe,EAAE,OAAO,CAAC,SAAS;QAClC,SAAS,EAAE,gCAAgC;QAC3C,QAAQ,EAAE,4BAA4B;QACtC,KAAK,EAAE,uBAAuB,CAAC,KAAK,CAAC;KACtC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,2CAA2C,EAAE,gBAAgB,CAAC,CAAC;IAE3E,MAAM,UAAU,GAAmB;QACjC,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,eAAe,EAAE,EAAE;QACnB,SAAS,EAAE,EAAE;QACb,cAAc,EAAE,CAAC;QACjB,WAAW,EAAE,SAAS;QACtB,OAAO,EAAE,SAAS;KACnB,CAAC;IAEF,QAAQ,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC/B,KAAK,yBAAyB,CAAC;QAC/B,KAAK,gBAAgB,CAAC;QACtB,KAAK,mBAAmB;YACtB,MAAM,wBAAwB,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;YACpE,MAAM;QACR,KAAK,kBAAkB;YACrB,MAAM,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;YACjE,MAAM;QACR;YACE,MAAM,IAAI,QAAQ,CAChB,aAAa,CAAC,gBAAgB,EAC9B,iCAAiC,KAAK,CAAC,gBAAgB,EAAE,EACzD,EAAE,GAAG,gBAAgB,EAAE,YAAY,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAC9D,CAAC;IACN,CAAC;IAED,IACE,UAAU,CAAC,cAAc,KAAK,CAAC;QAC/B,CAAC,UAAU,CAAC,OAAO;QACnB,CAAC,KAAK,CAAC,gBAAgB,KAAK,kBAAkB;YAC5C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EACjD,CAAC;QACD,UAAU,CAAC,OAAO,GAAG,4CAA4C,CAAC;IACpE,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,wDAAwD,EAAE;QACtE,GAAG,gBAAgB;QACnB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,cAAc,EAAE,UAAU,CAAC,cAAc;QACzC,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM;KAC7D,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -1,8 +1,8 @@
1
1
  /**
2
- * @fileoverview Shared type definitions for the getPubMedArticleConnections tool logic.
3
- * @module src/mcp-server/tools/getPubMedArticleConnections/logic/types
2
+ * @fileoverview Shared type definitions for the pubmedArticleConnections tool logic.
3
+ * @module src/mcp-server/tools/pubmedArticleConnections/logic/types
4
4
  */
5
- import type { GetPubMedArticleConnectionsInput } from "./index.js";
5
+ import type { PubMedArticleConnectionsInput } from "./index.js";
6
6
  export interface RelatedArticle {
7
7
  pmid: string;
8
8
  title?: string;
@@ -18,7 +18,7 @@ export interface CitationOutput {
18
18
  }
19
19
  export interface ToolOutputData {
20
20
  sourcePmid: string;
21
- relationshipType: GetPubMedArticleConnectionsInput["relationshipType"];
21
+ relationshipType: PubMedArticleConnectionsInput["relationshipType"];
22
22
  relatedArticles: RelatedArticle[];
23
23
  citations: CitationOutput;
24
24
  retrievedCount: number;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/mcp-server/tools/pubmedArticleConnections/logic/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC;AAGhE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,6BAA6B,CAAC,kBAAkB,CAAC,CAAC;IACpE,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,SAAS,EAAE,cAAc,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @fileoverview Shared type definitions for the pubmedArticleConnections tool logic.
3
+ * @module src/mcp-server/tools/pubmedArticleConnections/logic/types
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/mcp-server/tools/pubmedArticleConnections/logic/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @fileoverview Registers the 'pubmed_article_connections' tool with the MCP server.
3
+ * This tool finds articles related to a source PMID or retrieves citation formats.
4
+ * @module src/mcp-server/tools/pubmedArticleConnections/registration
5
+ */
6
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
7
+ /**
8
+ * Registers the 'pubmed_article_connections' tool with the given MCP server instance.
9
+ * @param {McpServer} server - The MCP server instance.
10
+ */
11
+ export declare function registerPubMedArticleConnectionsTool(server: McpServer): Promise<void>;
12
+ //# sourceMappingURL=registration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registration.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/pubmedArticleConnections/registration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAezE;;;GAGG;AACH,wBAAsB,oCAAoC,CACxD,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,IAAI,CAAC,CAmFf"}
@@ -1,30 +1,30 @@
1
1
  /**
2
- * @fileoverview Registers the 'get_pubmed_article_connections' tool with the MCP server.
2
+ * @fileoverview Registers the 'pubmed_article_connections' tool with the MCP server.
3
3
  * This tool finds articles related to a source PMID or retrieves citation formats.
4
- * @module src/mcp-server/tools/getPubMedArticleConnections/registration
4
+ * @module src/mcp-server/tools/pubmedArticleConnections/registration
5
5
  */
6
6
  import { BaseErrorCode, McpError } from "../../../types-global/errors.js";
7
7
  import { ErrorHandler, logger, requestContextService, } from "../../../utils/index.js";
8
- import { GetPubMedArticleConnectionsInputSchema, handleGetPubMedArticleConnections, } from "./logic/index.js";
8
+ import { PubMedArticleConnectionsInputSchema, handlePubMedArticleConnections, } from "./logic/index.js";
9
9
  /**
10
- * Registers the 'get_pubmed_article_connections' tool with the given MCP server instance.
10
+ * Registers the 'pubmed_article_connections' tool with the given MCP server instance.
11
11
  * @param {McpServer} server - The MCP server instance.
12
12
  */
13
- export async function registerGetPubMedArticleConnectionsTool(server) {
14
- const operation = "registerGetPubMedArticleConnectionsTool";
15
- const toolName = "get_pubmed_article_connections";
13
+ export async function registerPubMedArticleConnectionsTool(server) {
14
+ const operation = "registerPubMedArticleConnectionsTool";
15
+ const toolName = "pubmed_article_connections";
16
16
  const toolDescription = "Finds articles related to a source PubMed ID (PMID) or retrieves formatted citations for it. Supports finding similar articles, articles that cite the source, articles referenced by the source (via NCBI ELink), or fetching data to generate citations in various styles (RIS, BibTeX, APA, MLA via NCBI EFetch and server-side formatting). Returns a JSON object detailing the connections or formatted citations.";
17
17
  const context = requestContextService.createRequestContext({ operation });
18
18
  await ErrorHandler.tryCatch(async () => {
19
- server.tool(toolName, toolDescription, GetPubMedArticleConnectionsInputSchema.shape, async (input, mcpProvidedContext) => {
19
+ server.tool(toolName, toolDescription, PubMedArticleConnectionsInputSchema.shape, async (input, mcpProvidedContext) => {
20
20
  const richContext = requestContextService.createRequestContext({
21
21
  parentRequestId: context.requestId,
22
- operation: "getPubMedArticleConnectionsToolHandler",
22
+ operation: "pubMedArticleConnectionsToolHandler",
23
23
  mcpToolContext: mcpProvidedContext,
24
24
  input,
25
25
  });
26
26
  try {
27
- const result = await handleGetPubMedArticleConnections(input, richContext);
27
+ const result = await handlePubMedArticleConnections(input, richContext);
28
28
  return {
29
29
  content: [
30
30
  { type: "text", text: JSON.stringify(result, null, 2) },
@@ -34,7 +34,7 @@ export async function registerGetPubMedArticleConnectionsTool(server) {
34
34
  }
35
35
  catch (error) {
36
36
  const handledError = ErrorHandler.handleError(error, {
37
- operation: "getPubMedArticleConnectionsToolHandler",
37
+ operation: "pubMedArticleConnectionsToolHandler",
38
38
  context: richContext,
39
39
  input,
40
40
  rethrow: false,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registration.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/pubmedArticleConnections/registration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EACL,YAAY,EACZ,MAAM,EAEN,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,mCAAmC,EACnC,8BAA8B,GAC/B,MAAM,kBAAkB,CAAC;AAE1B;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oCAAoC,CACxD,MAAiB;IAEjB,MAAM,SAAS,GAAG,sCAAsC,CAAC;IACzD,MAAM,QAAQ,GAAG,4BAA4B,CAAC;IAC9C,MAAM,eAAe,GACnB,yZAAyZ,CAAC;IAC5Z,MAAM,OAAO,GAAG,qBAAqB,CAAC,oBAAoB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAE1E,MAAM,YAAY,CAAC,QAAQ,CACzB,KAAK,IAAI,EAAE;QACT,MAAM,CAAC,IAAI,CACT,QAAQ,EACR,eAAe,EACf,mCAAmC,CAAC,KAAK,EACzC,KAAK,EACH,KAAoC,EACpC,kBAA2B,EACF,EAAE;YAC3B,MAAM,WAAW,GACf,qBAAqB,CAAC,oBAAoB,CAAC;gBACzC,eAAe,EAAE,OAAO,CAAC,SAAS;gBAClC,SAAS,EAAE,qCAAqC;gBAChD,cAAc,EAAE,kBAAkB;gBAClC,KAAK;aACN,CAAC,CAAC;YAEL,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,8BAA8B,CACjD,KAAK,EACL,WAAW,CACZ,CAAC;gBACF,OAAO;oBACL,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;qBACxD;oBACD,OAAO,EAAE,KAAK;iBACf,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,YAAY,GAAG,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE;oBACnD,SAAS,EAAE,qCAAqC;oBAChD,OAAO,EAAE,WAAW;oBACpB,KAAK;oBACL,OAAO,EAAE,KAAK;iBACf,CAAC,CAAC;gBAEH,MAAM,QAAQ,GACZ,YAAY,YAAY,QAAQ;oBAC9B,CAAC,CAAC,YAAY;oBACd,CAAC,CAAC,IAAI,QAAQ,CACV,aAAa,CAAC,cAAc,EAC5B,wEAAwE,EACxE;wBACE,iBAAiB,EAAE,YAAY,CAAC,IAAI;wBACpC,oBAAoB,EAAE,YAAY,CAAC,OAAO;qBAC3C,CACF,CAAC;gBAER,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACnB,KAAK,EAAE;oCACL,IAAI,EAAE,QAAQ,CAAC,IAAI;oCACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;oCACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;iCAC1B;6BACF,CAAC;yBACH;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC,CACF,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,SAAS,QAAQ,eAAe,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC,EACD;QACE,SAAS;QACT,OAAO;QACP,SAAS,EAAE,aAAa,CAAC,qBAAqB;QAC9C,QAAQ,EAAE,IAAI;KACf,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @fileoverview Barrel file for the pubmed_fetch_contents tool.
3
+ * Exports the tool's registration function.
4
+ * @module src/mcp-server/tools/pubmedFetchContents/index
5
+ */
6
+ export { registerPubMedFetchContentsTool } from "./registration.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/pubmedFetchContents/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,+BAA+B,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @fileoverview Barrel file for the pubmed_fetch_contents tool.
3
+ * Exports the tool's registration function.
4
+ * @module src/mcp-server/tools/pubmedFetchContents/index
5
+ */
6
+ export { registerPubMedFetchContentsTool } from "./registration.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/pubmedFetchContents/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,+BAA+B,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,13 +1,13 @@
1
1
  /**
2
- * @fileoverview Logic for the fetch_pubmed_content MCP tool.
2
+ * @fileoverview Logic for the pubmed_fetch_contents MCP tool.
3
3
  * Handles EFetch queries for specific PMIDs and formats the results.
4
4
  * This tool can fetch various details from PubMed including abstracts, full XML,
5
5
  * MEDLINE text, and citation data.
6
- * @module src/mcp-server/tools/fetchPubMedContent/logic
6
+ * @module src/mcp-server/tools/pubmedFetchContents/logic
7
7
  */
8
8
  import { z } from "zod";
9
9
  import { RequestContext } from "../../../utils/index.js";
10
- export declare const FetchPubMedContentInputSchema: z.ZodEffects<z.ZodObject<{
10
+ export declare const PubMedFetchContentsInputSchema: z.ZodEffects<z.ZodObject<{
11
11
  pmids: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
12
12
  queryKey: z.ZodOptional<z.ZodString>;
13
13
  webEnv: z.ZodOptional<z.ZodString>;
@@ -58,11 +58,11 @@ export declare const FetchPubMedContentInputSchema: z.ZodEffects<z.ZodObject<{
58
58
  includeGrantInfo?: boolean | undefined;
59
59
  outputFormat?: "json" | "raw_text" | undefined;
60
60
  }>;
61
- export type FetchPubMedContentInput = z.infer<typeof FetchPubMedContentInputSchema>;
62
- export type FetchPubMedContentOutput = {
61
+ export type PubMedFetchContentsInput = z.infer<typeof PubMedFetchContentsInputSchema>;
62
+ export type PubMedFetchContentsOutput = {
63
63
  content: string;
64
64
  articlesReturned: number;
65
65
  eFetchUrl: string;
66
66
  };
67
- export declare function fetchPubMedContentLogic(input: FetchPubMedContentInput, parentRequestContext: RequestContext): Promise<FetchPubMedContentOutput>;
67
+ export declare function pubMedFetchContentsLogic(input: PubMedFetchContentsInput, parentRequestContext: RequestContext): Promise<PubMedFetchContentsOutput>;
68
68
  //# sourceMappingURL=logic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/pubmedFetchContents/logic.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,OAAO,EAEL,cAAc,EAGf,MAAM,yBAAyB,CAAC;AAgBjC,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8GvC,CAAC;AAEL,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAC5C,OAAO,8BAA8B,CACtC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AA8GF,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,wBAAwB,EAC/B,oBAAoB,EAAE,cAAc,GACnC,OAAO,CAAC,yBAAyB,CAAC,CA0KpC"}
@@ -1,36 +1,36 @@
1
1
  /**
2
- * @fileoverview Logic for the fetch_pubmed_content MCP tool.
2
+ * @fileoverview Logic for the pubmed_fetch_contents MCP tool.
3
3
  * Handles EFetch queries for specific PMIDs and formats the results.
4
4
  * This tool can fetch various details from PubMed including abstracts, full XML,
5
5
  * MEDLINE text, and citation data.
6
- * @module src/mcp-server/tools/fetchPubMedContent/logic
6
+ * @module src/mcp-server/tools/pubmedFetchContents/logic
7
7
  */
8
8
  import { z } from "zod";
9
9
  import { getNcbiService } from "../../../services/NCBI/core/ncbiService.js";
10
10
  import { BaseErrorCode, McpError } from "../../../types-global/errors.js";
11
11
  import { logger, requestContextService, sanitizeInputForLogging, } from "../../../utils/index.js";
12
12
  import { ensureArray, extractAbstractText, extractArticleDates, extractAuthors, extractDoi, extractGrants, extractJournalInfo, extractKeywords, extractMeshTerms, extractPmid, extractPublicationTypes, getText, } from "../../../services/NCBI/parsing/index.js";
13
- export const FetchPubMedContentInputSchema = z
13
+ export const PubMedFetchContentsInputSchema = z
14
14
  .object({
15
15
  pmids: z
16
16
  .array(z.string().regex(/^\d+$/))
17
17
  .max(200, "Max 200 PMIDs per call if not using history.")
18
18
  .optional()
19
- .describe("An array of PubMed Unique Identifiers (PMIDs) for which to fetch content. Use this OR queryKey/webEnv."),
19
+ .describe("An array of PubMed Unique Identifiers (PMIDs) to fetch. Use this OR queryKey/webEnv."),
20
20
  queryKey: z
21
21
  .string()
22
22
  .optional()
23
- .describe("Query key from ESearch history server. If used, webEnv must also be provided. Use this OR pmids."),
23
+ .describe("Query key from ESearch history. Requires webEnv. Use this OR pmids."),
24
24
  webEnv: z
25
25
  .string()
26
26
  .optional()
27
- .describe("Web environment from ESearch history server. If used, queryKey must also be provided. Use this OR pmids."),
27
+ .describe("Web environment from ESearch history. Requires queryKey. Use this OR pmids."),
28
28
  retstart: z
29
29
  .number()
30
30
  .int()
31
31
  .min(0)
32
32
  .optional()
33
- .describe("Sequential index of the first record to retrieve (0-based). Used with queryKey/webEnv."),
33
+ .describe("0-based index of the first record to retrieve. Used with queryKey/webEnv."),
34
34
  retmax: z
35
35
  .number()
36
36
  .int()
@@ -41,22 +41,22 @@ export const FetchPubMedContentInputSchema = z
41
41
  .enum(["abstract_plus", "full_xml", "medline_text", "citation_data"])
42
42
  .optional()
43
43
  .default("abstract_plus")
44
- .describe("Specifies the level of detail for the fetched content. Options: 'abstract_plus' (parsed details including abstract, authors, journal, DOI, etc.), 'full_xml' (raw PubMedArticle XML), 'medline_text' (MEDLINE format), 'citation_data' (minimal parsed data for citations). Defaults to 'abstract_plus'."),
44
+ .describe("Specifies the level of detail for the fetched content. Options: 'abstract_plus' (parsed details), 'full_xml' (raw PubMedArticle XML), 'medline_text' (MEDLINE format), 'citation_data' (minimal citation data). Defaults to 'abstract_plus'."),
45
45
  includeMeshTerms: z
46
46
  .boolean()
47
47
  .optional()
48
48
  .default(true)
49
- .describe("Applies to 'abstract_plus' and 'citation_data' if parsed from XML."),
49
+ .describe("Include MeSH terms in 'abstract_plus' and 'citation_data' results. Default: true."),
50
50
  includeGrantInfo: z
51
51
  .boolean()
52
52
  .optional()
53
53
  .default(false)
54
- .describe("Applies to 'abstract_plus' if parsed from XML."),
54
+ .describe("Include grant info in 'abstract_plus' results. Default: false."),
55
55
  outputFormat: z
56
56
  .enum(["json", "raw_text"])
57
57
  .optional()
58
58
  .default("json")
59
- .describe("Specifies the final output format of the tool. \n- 'json' (default): Wraps the data in a standard JSON object. \n- 'raw_text': Returns raw text for 'medline_text' or 'full_xml' detailLevels. For other detailLevels, 'outputFormat' defaults to 'json'."),
59
+ .describe("Output format. 'json' (default) wraps data in a JSON object. 'raw_text' returns raw text for 'medline_text' or 'full_xml' detail levels."),
60
60
  })
61
61
  .superRefine((data, ctx) => {
62
62
  if (data.queryKey && !data.webEnv) {
@@ -168,18 +168,18 @@ function parsePubMedArticleSet(xmlData, input, parentContext) {
168
168
  }
169
169
  return articles;
170
170
  }
171
- export async function fetchPubMedContentLogic(input, parentRequestContext) {
171
+ export async function pubMedFetchContentsLogic(input, parentRequestContext) {
172
172
  const toolLogicContext = requestContextService.createRequestContext({
173
173
  parentRequestId: parentRequestContext.requestId,
174
- operation: "fetchPubMedContentLogic",
174
+ operation: "pubMedFetchContentsLogic",
175
175
  input: sanitizeInputForLogging(input),
176
176
  });
177
- const validationResult = FetchPubMedContentInputSchema.safeParse(input);
177
+ const validationResult = PubMedFetchContentsInputSchema.safeParse(input);
178
178
  if (!validationResult.success) {
179
179
  throw new McpError(BaseErrorCode.VALIDATION_ERROR, validationResult.error.errors[0]?.message || "Invalid input", { ...toolLogicContext, details: validationResult.error.flatten() });
180
180
  }
181
181
  const ncbiService = getNcbiService();
182
- logger.info("Executing fetch_pubmed_content tool", toolLogicContext);
182
+ logger.info("Executing pubmed_fetch_contents tool", toolLogicContext);
183
183
  const eFetchParams = { db: "pubmed" };
184
184
  if (input.queryKey && input.webEnv) {
185
185
  eFetchParams.query_key = input.queryKey;
@@ -242,7 +242,8 @@ export async function fetchPubMedContentLogic(input, parentRequestContext) {
242
242
  }
243
243
  }
244
244
  else if (input.detailLevel === "full_xml") {
245
- const articlesXml = ensureArray(eFetchResponseData?.PubmedArticleSet?.PubmedArticle || []);
245
+ const articlesXml = ensureArray(eFetchResponseData
246
+ ?.PubmedArticleSet?.PubmedArticle || []);
246
247
  articlesCount = articlesXml.length;
247
248
  if (input.outputFormat === "raw_text") {
248
249
  // Note: Raw XML output is requested, but we still parse to get an accurate count.
@@ -299,7 +300,7 @@ export async function fetchPubMedContentLogic(input, parentRequestContext) {
299
300
  eFetchDetails: { urls: [eFetchUrl] },
300
301
  });
301
302
  }
302
- logger.notice("Successfully executed fetch_pubmed_content tool.", {
303
+ logger.notice("Successfully executed pubmed_fetch_contents tool.", {
303
304
  ...toolLogicContext,
304
305
  articlesReturned: articlesCount,
305
306
  });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logic.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/pubmedFetchContents/logic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @fileoverview Registration for the pubmed_fetch_contents MCP tool.
3
+ * @module src/mcp-server/tools/pubmedFetchContents/registration
4
+ */
5
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
+ /**
7
+ * Registers the pubmed_fetch_contents tool with the MCP server.
8
+ * @param server - The McpServer instance.
9
+ */
10
+ export declare function registerPubMedFetchContentsTool(server: McpServer): Promise<void>;
11
+ //# sourceMappingURL=registration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registration.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/pubmedFetchContents/registration.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAepE;;;GAGG;AACH,wBAAsB,+BAA+B,CACnD,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,IAAI,CAAC,CAgFf"}
@@ -1,29 +1,29 @@
1
1
  /**
2
- * @fileoverview Registration for the fetch_pubmed_content MCP tool.
3
- * @module src/mcp-server/tools/fetchPubMedContent/registration
2
+ * @fileoverview Registration for the pubmed_fetch_contents MCP tool.
3
+ * @module src/mcp-server/tools/pubmedFetchContents/registration
4
4
  */
5
5
  import { BaseErrorCode, McpError } from "../../../types-global/errors.js";
6
6
  import { ErrorHandler, logger, requestContextService, } from "../../../utils/index.js";
7
- import { FetchPubMedContentInputSchema, fetchPubMedContentLogic, } from "./logic.js";
7
+ import { PubMedFetchContentsInputSchema, pubMedFetchContentsLogic, } from "./logic.js";
8
8
  /**
9
- * Registers the fetch_pubmed_content tool with the MCP server.
9
+ * Registers the pubmed_fetch_contents tool with the MCP server.
10
10
  * @param server - The McpServer instance.
11
11
  */
12
- export async function registerFetchPubMedContentTool(server) {
13
- const operation = "registerFetchPubMedContentTool";
14
- const toolName = "fetch_pubmed_content";
15
- const toolDescription = "Fetches detailed information from PubMed using NCBI EFetch. Can be used with a direct list of PMIDs or with queryKey/webEnv from an ESearch history entry. Supports pagination (retstart, retmax) when using history. Available 'detailLevel' options: 'abstract_plus' (parsed title, abstract, authors, journal, keywords, DOI, optional MeSH/grant info), 'full_xml' (JSON representation of the PubMedArticle XML structure), 'medline_text' (MEDLINE format), or 'citation_data' (minimal data for citations). Returns a JSON object containing results, any PMIDs not found (if applicable), and EFetch details.";
12
+ export async function registerPubMedFetchContentsTool(server) {
13
+ const operation = "registerPubMedFetchContentsTool";
14
+ const toolName = "pubmed_fetch_contents";
15
+ const toolDescription = "Fetches detailed information from PubMed using NCBI EFetch. Can be used with a direct list of PMIDs or with queryKey/webEnv from an ESearch history entry. Supports pagination (retstart, retmax) when using history. Available 'detailLevel' options: 'abstract_plus' (parsed details), 'full_xml' (raw PubMedArticle XML), 'medline_text' (MEDLINE format), or 'citation_data' (minimal citation data). Returns a JSON object containing results, any PMIDs not found (if applicable), and EFetch details.";
16
16
  const context = requestContextService.createRequestContext({ operation });
17
17
  await ErrorHandler.tryCatch(async () => {
18
- server.tool(toolName, toolDescription, FetchPubMedContentInputSchema._def.schema.shape, async (input, toolContext) => {
18
+ server.tool(toolName, toolDescription, PubMedFetchContentsInputSchema._def.schema.shape, async (input, toolContext) => {
19
19
  const richContext = requestContextService.createRequestContext({
20
20
  parentRequestId: context.requestId,
21
- operation: "fetchPubMedContentToolHandler",
21
+ operation: "pubMedFetchContentsToolHandler",
22
22
  mcpToolContext: toolContext,
23
23
  input,
24
24
  });
25
25
  try {
26
- const result = await fetchPubMedContentLogic(input, richContext);
26
+ const result = await pubMedFetchContentsLogic(input, richContext);
27
27
  return {
28
28
  content: [{ type: "text", text: result.content }],
29
29
  isError: false,
@@ -31,7 +31,7 @@ export async function registerFetchPubMedContentTool(server) {
31
31
  }
32
32
  catch (error) {
33
33
  const handledError = ErrorHandler.handleError(error, {
34
- operation: "fetchPubMedContentToolHandler",
34
+ operation: "pubMedFetchContentsToolHandler",
35
35
  context: richContext,
36
36
  input,
37
37
  rethrow: false,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registration.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/pubmedFetchContents/registration.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EACL,YAAY,EACZ,MAAM,EAEN,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,8BAA8B,EAC9B,wBAAwB,GACzB,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,MAAiB;IAEjB,MAAM,SAAS,GAAG,iCAAiC,CAAC;IACpD,MAAM,QAAQ,GAAG,uBAAuB,CAAC;IACzC,MAAM,eAAe,GACnB,8eAA8e,CAAC;IAEjf,MAAM,OAAO,GAAG,qBAAqB,CAAC,oBAAoB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAE1E,MAAM,YAAY,CAAC,QAAQ,CACzB,KAAK,IAAI,EAAE;QACT,MAAM,CAAC,IAAI,CACT,QAAQ,EACR,eAAe,EACf,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAChD,KAAK,EACH,KAA+B,EAC/B,WAAoB,EACK,EAAE;YAC3B,MAAM,WAAW,GACf,qBAAqB,CAAC,oBAAoB,CAAC;gBACzC,eAAe,EAAE,OAAO,CAAC,SAAS;gBAClC,SAAS,EAAE,gCAAgC;gBAC3C,cAAc,EAAE,WAAW;gBAC3B,KAAK;aACN,CAAC,CAAC;YAEL,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBAClE,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;oBACjD,OAAO,EAAE,KAAK;iBACf,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,YAAY,GAAG,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE;oBACnD,SAAS,EAAE,gCAAgC;oBAC3C,OAAO,EAAE,WAAW;oBACpB,KAAK;oBACL,OAAO,EAAE,KAAK;iBACf,CAAC,CAAC;gBAEH,MAAM,QAAQ,GACZ,YAAY,YAAY,QAAQ;oBAC9B,CAAC,CAAC,YAAY;oBACd,CAAC,CAAC,IAAI,QAAQ,CACV,aAAa,CAAC,cAAc,EAC5B,6DAA6D,EAC7D;wBACE,iBAAiB,EAAE,YAAY,CAAC,IAAI;wBACpC,oBAAoB,EAAE,YAAY,CAAC,OAAO;qBAC3C,CACF,CAAC;gBAER,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACnB,KAAK,EAAE;oCACL,IAAI,EAAE,QAAQ,CAAC,IAAI;oCACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;oCACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;iCAC1B;6BACF,CAAC;yBACH;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC,CACF,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,SAAS,QAAQ,eAAe,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC,EACD;QACE,SAAS;QACT,OAAO;QACP,SAAS,EAAE,aAAa,CAAC,qBAAqB;QAC9C,QAAQ,EAAE,IAAI;KACf,CACF,CAAC;AACJ,CAAC"}