paper-search-cli 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/.env.example +165 -0
  2. package/LICENSE +21 -0
  3. package/README-sc.md +642 -0
  4. package/README.md +642 -0
  5. package/dist/cli.d.ts +3 -0
  6. package/dist/cli.d.ts.map +1 -0
  7. package/dist/cli.js +637 -0
  8. package/dist/cli.js.map +1 -0
  9. package/dist/config/ConfigService.d.ts +26 -0
  10. package/dist/config/ConfigService.d.ts.map +1 -0
  11. package/dist/config/ConfigService.js +145 -0
  12. package/dist/config/ConfigService.js.map +1 -0
  13. package/dist/config/constants.d.ts +140 -0
  14. package/dist/config/constants.d.ts.map +1 -0
  15. package/dist/config/constants.js +93 -0
  16. package/dist/config/constants.js.map +1 -0
  17. package/dist/core/diagnostics.d.ts +43 -0
  18. package/dist/core/diagnostics.d.ts.map +1 -0
  19. package/dist/core/diagnostics.js +544 -0
  20. package/dist/core/diagnostics.js.map +1 -0
  21. package/dist/core/handleToolCall.d.ts +8 -0
  22. package/dist/core/handleToolCall.d.ts.map +1 -0
  23. package/dist/core/handleToolCall.js +440 -0
  24. package/dist/core/handleToolCall.js.map +1 -0
  25. package/dist/core/schemas.d.ts +454 -0
  26. package/dist/core/schemas.d.ts.map +1 -0
  27. package/dist/core/schemas.js +322 -0
  28. package/dist/core/schemas.js.map +1 -0
  29. package/dist/core/searchers.d.ts +45 -0
  30. package/dist/core/searchers.d.ts.map +1 -0
  31. package/dist/core/searchers.js +73 -0
  32. package/dist/core/searchers.js.map +1 -0
  33. package/dist/core/tools.d.ts +7 -0
  34. package/dist/core/tools.d.ts.map +1 -0
  35. package/dist/core/tools.js +640 -0
  36. package/dist/core/tools.js.map +1 -0
  37. package/dist/models/Paper.d.ts +64 -0
  38. package/dist/models/Paper.d.ts.map +1 -0
  39. package/dist/models/Paper.js +70 -0
  40. package/dist/models/Paper.js.map +1 -0
  41. package/dist/platforms/ArxivSearcher.d.ts +64 -0
  42. package/dist/platforms/ArxivSearcher.d.ts.map +1 -0
  43. package/dist/platforms/ArxivSearcher.js +531 -0
  44. package/dist/platforms/ArxivSearcher.js.map +1 -0
  45. package/dist/platforms/BioRxivSearcher.d.ts +47 -0
  46. package/dist/platforms/BioRxivSearcher.d.ts.map +1 -0
  47. package/dist/platforms/BioRxivSearcher.js +196 -0
  48. package/dist/platforms/BioRxivSearcher.js.map +1 -0
  49. package/dist/platforms/CORESearcher.d.ts +16 -0
  50. package/dist/platforms/CORESearcher.d.ts.map +1 -0
  51. package/dist/platforms/CORESearcher.js +148 -0
  52. package/dist/platforms/CORESearcher.js.map +1 -0
  53. package/dist/platforms/CrossrefSearcher.d.ts +34 -0
  54. package/dist/platforms/CrossrefSearcher.d.ts.map +1 -0
  55. package/dist/platforms/CrossrefSearcher.js +339 -0
  56. package/dist/platforms/CrossrefSearcher.js.map +1 -0
  57. package/dist/platforms/EuropePMCSearcher.d.ts +20 -0
  58. package/dist/platforms/EuropePMCSearcher.d.ts.map +1 -0
  59. package/dist/platforms/EuropePMCSearcher.js +173 -0
  60. package/dist/platforms/EuropePMCSearcher.js.map +1 -0
  61. package/dist/platforms/GoogleScholarSearcher.d.ts +77 -0
  62. package/dist/platforms/GoogleScholarSearcher.d.ts.map +1 -0
  63. package/dist/platforms/GoogleScholarSearcher.js +262 -0
  64. package/dist/platforms/GoogleScholarSearcher.js.map +1 -0
  65. package/dist/platforms/IACRSearcher.d.ts +51 -0
  66. package/dist/platforms/IACRSearcher.d.ts.map +1 -0
  67. package/dist/platforms/IACRSearcher.js +339 -0
  68. package/dist/platforms/IACRSearcher.js.map +1 -0
  69. package/dist/platforms/OpenAIRESearcher.d.ts +22 -0
  70. package/dist/platforms/OpenAIRESearcher.d.ts.map +1 -0
  71. package/dist/platforms/OpenAIRESearcher.js +223 -0
  72. package/dist/platforms/OpenAIRESearcher.js.map +1 -0
  73. package/dist/platforms/OpenAlexSearcher.d.ts +14 -0
  74. package/dist/platforms/OpenAlexSearcher.d.ts.map +1 -0
  75. package/dist/platforms/OpenAlexSearcher.js +114 -0
  76. package/dist/platforms/OpenAlexSearcher.js.map +1 -0
  77. package/dist/platforms/PMCSearcher.d.ts +20 -0
  78. package/dist/platforms/PMCSearcher.d.ts.map +1 -0
  79. package/dist/platforms/PMCSearcher.js +177 -0
  80. package/dist/platforms/PMCSearcher.js.map +1 -0
  81. package/dist/platforms/PaperSource.d.ts +143 -0
  82. package/dist/platforms/PaperSource.d.ts.map +1 -0
  83. package/dist/platforms/PaperSource.js +125 -0
  84. package/dist/platforms/PaperSource.js.map +1 -0
  85. package/dist/platforms/PubMedSearcher.d.ts +104 -0
  86. package/dist/platforms/PubMedSearcher.d.ts.map +1 -0
  87. package/dist/platforms/PubMedSearcher.js +422 -0
  88. package/dist/platforms/PubMedSearcher.js.map +1 -0
  89. package/dist/platforms/SciHubSearcher.d.ts +66 -0
  90. package/dist/platforms/SciHubSearcher.d.ts.map +1 -0
  91. package/dist/platforms/SciHubSearcher.js +398 -0
  92. package/dist/platforms/SciHubSearcher.js.map +1 -0
  93. package/dist/platforms/ScienceDirectSearcher.d.ts +42 -0
  94. package/dist/platforms/ScienceDirectSearcher.d.ts.map +1 -0
  95. package/dist/platforms/ScienceDirectSearcher.js +326 -0
  96. package/dist/platforms/ScienceDirectSearcher.js.map +1 -0
  97. package/dist/platforms/ScopusSearcher.d.ts +43 -0
  98. package/dist/platforms/ScopusSearcher.d.ts.map +1 -0
  99. package/dist/platforms/ScopusSearcher.js +364 -0
  100. package/dist/platforms/ScopusSearcher.js.map +1 -0
  101. package/dist/platforms/SemanticScholarSearcher.d.ts +96 -0
  102. package/dist/platforms/SemanticScholarSearcher.d.ts.map +1 -0
  103. package/dist/platforms/SemanticScholarSearcher.js +419 -0
  104. package/dist/platforms/SemanticScholarSearcher.js.map +1 -0
  105. package/dist/platforms/SpringerSearcher.d.ts +54 -0
  106. package/dist/platforms/SpringerSearcher.d.ts.map +1 -0
  107. package/dist/platforms/SpringerSearcher.js +407 -0
  108. package/dist/platforms/SpringerSearcher.js.map +1 -0
  109. package/dist/platforms/UnpaywallSearcher.d.ts +18 -0
  110. package/dist/platforms/UnpaywallSearcher.d.ts.map +1 -0
  111. package/dist/platforms/UnpaywallSearcher.js +115 -0
  112. package/dist/platforms/UnpaywallSearcher.js.map +1 -0
  113. package/dist/platforms/WebOfScienceSearcher.d.ts +111 -0
  114. package/dist/platforms/WebOfScienceSearcher.d.ts.map +1 -0
  115. package/dist/platforms/WebOfScienceSearcher.js +500 -0
  116. package/dist/platforms/WebOfScienceSearcher.js.map +1 -0
  117. package/dist/platforms/WileySearcher.d.ts +44 -0
  118. package/dist/platforms/WileySearcher.d.ts.map +1 -0
  119. package/dist/platforms/WileySearcher.js +148 -0
  120. package/dist/platforms/WileySearcher.js.map +1 -0
  121. package/dist/services/CitationService.d.ts +66 -0
  122. package/dist/services/CitationService.d.ts.map +1 -0
  123. package/dist/services/CitationService.js +237 -0
  124. package/dist/services/CitationService.js.map +1 -0
  125. package/dist/services/MultiSourceSearchService.d.ts +19 -0
  126. package/dist/services/MultiSourceSearchService.d.ts.map +1 -0
  127. package/dist/services/MultiSourceSearchService.js +96 -0
  128. package/dist/services/MultiSourceSearchService.js.map +1 -0
  129. package/dist/services/OpenAccessFallbackService.d.ts +20 -0
  130. package/dist/services/OpenAccessFallbackService.d.ts.map +1 -0
  131. package/dist/services/OpenAccessFallbackService.js +124 -0
  132. package/dist/services/OpenAccessFallbackService.js.map +1 -0
  133. package/dist/utils/ErrorHandler.d.ts +99 -0
  134. package/dist/utils/ErrorHandler.d.ts.map +1 -0
  135. package/dist/utils/ErrorHandler.js +266 -0
  136. package/dist/utils/ErrorHandler.js.map +1 -0
  137. package/dist/utils/Logger.d.ts +6 -0
  138. package/dist/utils/Logger.d.ts.map +1 -0
  139. package/dist/utils/Logger.js +26 -0
  140. package/dist/utils/Logger.js.map +1 -0
  141. package/dist/utils/PDFExtractor.d.ts +34 -0
  142. package/dist/utils/PDFExtractor.d.ts.map +1 -0
  143. package/dist/utils/PDFExtractor.js +130 -0
  144. package/dist/utils/PDFExtractor.js.map +1 -0
  145. package/dist/utils/PdfDownload.d.ts +7 -0
  146. package/dist/utils/PdfDownload.d.ts.map +1 -0
  147. package/dist/utils/PdfDownload.js +52 -0
  148. package/dist/utils/PdfDownload.js.map +1 -0
  149. package/dist/utils/QuotaManager.d.ts +32 -0
  150. package/dist/utils/QuotaManager.d.ts.map +1 -0
  151. package/dist/utils/QuotaManager.js +95 -0
  152. package/dist/utils/QuotaManager.js.map +1 -0
  153. package/dist/utils/RateLimiter.d.ts +50 -0
  154. package/dist/utils/RateLimiter.d.ts.map +1 -0
  155. package/dist/utils/RateLimiter.js +121 -0
  156. package/dist/utils/RateLimiter.js.map +1 -0
  157. package/dist/utils/RequestCache.d.ts +26 -0
  158. package/dist/utils/RequestCache.d.ts.map +1 -0
  159. package/dist/utils/RequestCache.js +66 -0
  160. package/dist/utils/RequestCache.js.map +1 -0
  161. package/dist/utils/SecurityUtils.d.ts +80 -0
  162. package/dist/utils/SecurityUtils.d.ts.map +1 -0
  163. package/dist/utils/SecurityUtils.js +357 -0
  164. package/dist/utils/SecurityUtils.js.map +1 -0
  165. package/package.json +111 -0
  166. package/skills/paper-search/SKILL.md +192 -0
@@ -0,0 +1,64 @@
1
+ /**
2
+ * 统一的学术论文数据模型
3
+ * 支持多个学术平台的标准化数据格式
4
+ */
5
+ export interface Paper {
6
+ /** 唯一标识符 (如 arXiv ID, PMID, DOI) */
7
+ paperId: string;
8
+ /** 论文标题 */
9
+ title: string;
10
+ /** 作者列表 */
11
+ authors: string[];
12
+ /** 摘要 */
13
+ abstract: string;
14
+ /** DOI (数字对象标识符) */
15
+ doi: string;
16
+ /** 发布日期 */
17
+ publishedDate: Date | null;
18
+ /** PDF直接下载链接 */
19
+ pdfUrl: string;
20
+ /** 论文页面URL */
21
+ url: string;
22
+ /** 来源平台 (如 'arxiv', 'pubmed', 'webofscience') */
23
+ source: string;
24
+ /** 最后更新日期 */
25
+ updatedDate?: Date;
26
+ /** 学科分类 */
27
+ categories?: string[];
28
+ /** 关键词 */
29
+ keywords?: string[];
30
+ /** 被引次数 */
31
+ citationCount?: number;
32
+ /** 参考文献ID/DOI列表 */
33
+ references?: string[];
34
+ /** 期刊/会议名称 */
35
+ journal?: string;
36
+ /** 卷号 */
37
+ volume?: string;
38
+ /** 期号 */
39
+ issue?: string;
40
+ /** 页码范围 */
41
+ pages?: string;
42
+ /** 年份 */
43
+ year?: number;
44
+ /** 平台特定的额外元数据 */
45
+ extra?: Record<string, any>;
46
+ }
47
+ /**
48
+ * Paper工厂类,用于创建和验证Paper对象
49
+ */
50
+ export declare class PaperFactory {
51
+ /**
52
+ * 创建Paper对象
53
+ */
54
+ static create(data: Partial<Paper> & Required<Pick<Paper, 'paperId' | 'title' | 'source'>>): Paper;
55
+ /**
56
+ * 将Paper对象转换为字典格式(用于序列化)
57
+ */
58
+ static toDict(paper: Paper): Record<string, any>;
59
+ /**
60
+ * 验证Paper对象是否有效
61
+ */
62
+ static validate(paper: Paper): boolean;
63
+ }
64
+ //# sourceMappingURL=Paper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Paper.d.ts","sourceRoot":"","sources":["../../src/models/Paper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,KAAK;IAEpB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAEhB,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IAEd,WAAW;IACX,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB,SAAS;IACT,QAAQ,EAAE,MAAM,CAAC;IAEjB,oBAAoB;IACpB,GAAG,EAAE,MAAM,CAAC;IAEZ,WAAW;IACX,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC;IAE3B,gBAAgB;IAChB,MAAM,EAAE,MAAM,CAAC;IAEf,cAAc;IACd,GAAG,EAAE,MAAM,CAAC;IAEZ,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IAGf,aAAa;IACb,WAAW,CAAC,EAAE,IAAI,CAAC;IAEnB,WAAW;IACX,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB,UAAU;IACV,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB,WAAW;IACX,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,mBAAmB;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB,cAAc;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,SAAS;IACT,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,SAAS;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,SAAS;IACT,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC,GAAG,KAAK;IAyBlG;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAyBhD;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;CAGvC"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * 统一的学术论文数据模型
3
+ * 支持多个学术平台的标准化数据格式
4
+ */
5
+ /**
6
+ * Paper工厂类,用于创建和验证Paper对象
7
+ */
8
+ export class PaperFactory {
9
+ /**
10
+ * 创建Paper对象
11
+ */
12
+ static create(data) {
13
+ return {
14
+ paperId: data.paperId,
15
+ title: data.title,
16
+ authors: data.authors || [],
17
+ abstract: data.abstract || '',
18
+ doi: data.doi || '',
19
+ publishedDate: data.publishedDate || null,
20
+ pdfUrl: data.pdfUrl || '',
21
+ url: data.url || '',
22
+ source: data.source,
23
+ updatedDate: data.updatedDate,
24
+ categories: data.categories || [],
25
+ keywords: data.keywords || [],
26
+ citationCount: data.citationCount || 0,
27
+ references: data.references || [],
28
+ journal: data.journal,
29
+ volume: data.volume,
30
+ issue: data.issue,
31
+ pages: data.pages,
32
+ year: data.year,
33
+ extra: data.extra || {}
34
+ };
35
+ }
36
+ /**
37
+ * 将Paper对象转换为字典格式(用于序列化)
38
+ */
39
+ static toDict(paper) {
40
+ return {
41
+ paper_id: paper.paperId,
42
+ title: paper.title,
43
+ authors: paper.authors.join('; '),
44
+ abstract: paper.abstract,
45
+ doi: paper.doi,
46
+ published_date: paper.publishedDate?.toISOString() || '',
47
+ pdf_url: paper.pdfUrl,
48
+ url: paper.url,
49
+ source: paper.source,
50
+ updated_date: paper.updatedDate?.toISOString() || '',
51
+ categories: paper.categories?.join('; ') || '',
52
+ keywords: paper.keywords?.join('; ') || '',
53
+ citation_count: paper.citationCount || 0,
54
+ references: paper.references?.join('; ') || '',
55
+ journal: paper.journal || '',
56
+ volume: paper.volume || '',
57
+ issue: paper.issue || '',
58
+ pages: paper.pages || '',
59
+ year: paper.year || null,
60
+ extra: JSON.stringify(paper.extra || {})
61
+ };
62
+ }
63
+ /**
64
+ * 验证Paper对象是否有效
65
+ */
66
+ static validate(paper) {
67
+ return !!(paper.paperId && paper.title && paper.source);
68
+ }
69
+ }
70
+ //# sourceMappingURL=Paper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Paper.js","sourceRoot":"","sources":["../../src/models/Paper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkEH;;GAEG;AACH,MAAM,OAAO,YAAY;IACvB;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,IAA4E;QACxF,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;YAC7B,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE;YACnB,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI;YACzC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;YACzB,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;YAC7B,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,CAAC;YACtC,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;YACjC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;SACxB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,KAAY;QACxB,OAAO;YACL,QAAQ,EAAE,KAAK,CAAC,OAAO;YACvB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YACjC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE;YACxD,OAAO,EAAE,KAAK,CAAC,MAAM;YACrB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE;YACpD,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAC9C,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAC1C,cAAc,EAAE,KAAK,CAAC,aAAa,IAAI,CAAC;YACxC,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAC9C,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;YAC5B,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE;YAC1B,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE;YACxB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI;YACxB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;SACzC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAY;QAC1B,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC;CACF"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * arXiv API集成模块
3
+ * 基于arXiv API v1.1实现论文搜索和下载功能
4
+ */
5
+ import { Paper } from '../models/Paper.js';
6
+ import { PaperSource, SearchOptions, DownloadOptions, PlatformCapabilities } from './PaperSource.js';
7
+ export declare class ArxivSearcher extends PaperSource {
8
+ private readonly rateLimiter;
9
+ private readonly cache;
10
+ constructor();
11
+ getCapabilities(): PlatformCapabilities;
12
+ /**
13
+ * 搜索arXiv论文
14
+ */
15
+ search(query: string, options?: SearchOptions): Promise<Paper[]>;
16
+ private searchViaExportApi;
17
+ private fetchSearchPage;
18
+ private normalizeMaxResults;
19
+ private isTimeoutError;
20
+ private shouldUseWebFallback;
21
+ private isRateLimitError;
22
+ private waitForGlobalExportApiSlot;
23
+ private markGlobalExportApiCooldown;
24
+ private withArxivRateLimitLock;
25
+ private acquireArxivRateLimitLock;
26
+ private removeStaleArxivRateLimitLock;
27
+ private getArxivRateLimitPaths;
28
+ private readArxivRateLimitState;
29
+ private writeArxivRateLimitState;
30
+ private createArxivCooldownError;
31
+ private sleep;
32
+ private searchViaWebFallback;
33
+ private parseWebSearchResponse;
34
+ /**
35
+ * 下载PDF文件
36
+ */
37
+ downloadPdf(paperId: string, options?: DownloadOptions): Promise<string>;
38
+ /**
39
+ * 读取论文全文内容(从PDF中提取)
40
+ */
41
+ readPaper(paperId: string, options?: DownloadOptions): Promise<string>;
42
+ /**
43
+ * 构建搜索查询
44
+ */
45
+ private buildSearchQuery;
46
+ private normalizeSearchQuery;
47
+ private hasArxivQuerySyntax;
48
+ private escapeArxivTerm;
49
+ private webFallbackPageSize;
50
+ private mapWebSortOrder;
51
+ /**
52
+ * 映射排序字段
53
+ */
54
+ private mapSortField;
55
+ /**
56
+ * 解析搜索响应
57
+ */
58
+ private parseSearchResponse;
59
+ /**
60
+ * 解析单个arXiv条目
61
+ */
62
+ private parseArxivEntry;
63
+ }
64
+ //# sourceMappingURL=ArxivSearcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArxivSearcher.d.ts","sourceRoot":"","sources":["../../src/platforms/ArxivSearcher.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EAAE,KAAK,EAAgB,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAqDrG,qBAAa,aAAc,SAAQ,WAAW;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;;IAe9C,eAAe,IAAI,oBAAoB;IAWvC;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;YAoD5D,kBAAkB;YAiClB,eAAe;IAwB7B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,gBAAgB;YAIV,0BAA0B;YAwB1B,2BAA2B;YAW3B,sBAAsB;YAatB,yBAAyB;IAevC,OAAO,CAAC,6BAA6B;IAWrC,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,wBAAwB;IAMhC,OAAO,CAAC,KAAK;YAIC,oBAAoB;IA8BlC,OAAO,CAAC,sBAAsB;IA0D9B;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IAwClF;;OAEG;IACG,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBhF;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgCxB,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,eAAe;IAOvB;;OAEG;IACH,OAAO,CAAC,YAAY;IASpB;;OAEG;YACW,mBAAmB;IAqBjC;;OAEG;IACH,OAAO,CAAC,eAAe;CA6DxB"}