papersearch 0.4.2 → 0.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 (151) hide show
  1. package/README.en.md +292 -0
  2. package/README.md +203 -125
  3. package/carsi/README.md +8 -2
  4. package/carsi/paper_search_carsi/__init__.py +1 -4
  5. package/carsi/paper_search_carsi/adapters/__init__.py +1 -1
  6. package/carsi/paper_search_carsi/adapters/base.py +2 -0
  7. package/carsi/paper_search_carsi/adapters/frontiers/__init__.py +45 -0
  8. package/carsi/paper_search_carsi/adapters/mdpi/__init__.py +33 -1
  9. package/carsi/paper_search_carsi/adapters/platforms/figshare/__init__.py +185 -0
  10. package/carsi/paper_search_carsi/adapters/thieme/__init__.py +6 -5
  11. package/carsi/paper_search_carsi/browser/__init__.py +8 -1
  12. package/carsi/paper_search_carsi/browser/backend.py +23 -147
  13. package/carsi/paper_search_carsi/browser/challenge_interaction.py +137 -0
  14. package/carsi/paper_search_carsi/browser/challenges.py +57 -0
  15. package/carsi/paper_search_carsi/browser/engine.py +2 -2
  16. package/carsi/paper_search_carsi/browser/preview.py +44 -26
  17. package/carsi/paper_search_carsi/browser/profiles.py +161 -0
  18. package/carsi/paper_search_carsi/browser/watchdog.py +71 -14
  19. package/carsi/paper_search_carsi/download_diagnostics.py +1 -1
  20. package/carsi/paper_search_carsi/engine/batch.py +129 -68
  21. package/carsi/paper_search_carsi/engine/batch_access.py +8 -3
  22. package/carsi/paper_search_carsi/engine/batch_capture.py +53 -8
  23. package/carsi/paper_search_carsi/engine/batch_common.py +27 -14
  24. package/carsi/paper_search_carsi/engine/batch_diagnostics.py +20 -15
  25. package/carsi/paper_search_carsi/engine/batch_login.py +47 -27
  26. package/carsi/paper_search_carsi/engine/batch_runs.py +2 -7
  27. package/carsi/paper_search_carsi/engine/batch_waits.py +82 -42
  28. package/carsi/paper_search_carsi/engine/bridge.py +16 -8
  29. package/carsi/paper_search_carsi/engine/supplements.py +22 -3
  30. package/carsi/paper_search_carsi/log.py +13 -7
  31. package/carsi/paper_search_carsi/orchestrator.py +7 -1
  32. package/carsi/paper_search_carsi/progress_bar.py +39 -18
  33. package/carsi/paper_search_carsi/server.py +8 -1
  34. package/carsi/pyproject.toml +1 -1
  35. package/dist/capabilities/citation-expansion/schemas.d.ts +2 -2
  36. package/dist/capabilities/metadata-search/MultiSourceSearchService.d.ts.map +1 -1
  37. package/dist/capabilities/metadata-search/MultiSourceSearchService.js +17 -4
  38. package/dist/capabilities/metadata-search/MultiSourceSearchService.js.map +1 -1
  39. package/dist/capabilities/metadata-search/handler.d.ts.map +1 -1
  40. package/dist/capabilities/metadata-search/handler.js +6 -0
  41. package/dist/capabilities/metadata-search/handler.js.map +1 -1
  42. package/dist/capabilities/metadata-search/schemas.d.ts +3 -3
  43. package/dist/capabilities/metadata-search/schemas.d.ts.map +1 -1
  44. package/dist/capabilities/metadata-search/schemas.js +1 -0
  45. package/dist/capabilities/metadata-search/schemas.js.map +1 -1
  46. package/dist/capabilities/metadata-search/tools.js +1 -1
  47. package/dist/capabilities/metadata-search/tools.js.map +1 -1
  48. package/dist/capabilities/pdf-discovery/DownloadTier.d.ts +11 -0
  49. package/dist/capabilities/pdf-discovery/DownloadTier.d.ts.map +1 -1
  50. package/dist/capabilities/pdf-discovery/OpenAccessFallbackService.d.ts.map +1 -1
  51. package/dist/capabilities/pdf-discovery/OpenAccessFallbackService.js +31 -1
  52. package/dist/capabilities/pdf-discovery/OpenAccessFallbackService.js.map +1 -1
  53. package/dist/capabilities/pdf-discovery/arxiv.d.ts +4 -0
  54. package/dist/capabilities/pdf-discovery/arxiv.d.ts.map +1 -0
  55. package/dist/capabilities/pdf-discovery/arxiv.js +42 -0
  56. package/dist/capabilities/pdf-discovery/arxiv.js.map +1 -0
  57. package/dist/capabilities/pdf-discovery/batch.d.ts +1 -1
  58. package/dist/capabilities/pdf-discovery/batch.d.ts.map +1 -1
  59. package/dist/capabilities/pdf-discovery/batch.js +56 -16
  60. package/dist/capabilities/pdf-discovery/batch.js.map +1 -1
  61. package/dist/capabilities/pdf-discovery/carsi/CarsiAttempt.d.ts.map +1 -1
  62. package/dist/capabilities/pdf-discovery/carsi/CarsiAttempt.js +2 -0
  63. package/dist/capabilities/pdf-discovery/carsi/CarsiAttempt.js.map +1 -1
  64. package/dist/capabilities/pdf-discovery/carsi/CarsiMcpClient.d.ts.map +1 -1
  65. package/dist/capabilities/pdf-discovery/carsi/CarsiMcpClient.js +3 -3
  66. package/dist/capabilities/pdf-discovery/carsi/CarsiMcpClient.js.map +1 -1
  67. package/dist/capabilities/pdf-discovery/carsi/CarsiReadiness.d.ts +2 -1
  68. package/dist/capabilities/pdf-discovery/carsi/CarsiReadiness.d.ts.map +1 -1
  69. package/dist/capabilities/pdf-discovery/carsi/CarsiReadiness.js +3 -1
  70. package/dist/capabilities/pdf-discovery/carsi/CarsiReadiness.js.map +1 -1
  71. package/dist/capabilities/pdf-discovery/carsi/CarsiResultNormalizer.d.ts +1 -1
  72. package/dist/capabilities/pdf-discovery/carsi/CarsiResultNormalizer.d.ts.map +1 -1
  73. package/dist/capabilities/pdf-discovery/carsi/CarsiResultNormalizer.js +4 -4
  74. package/dist/capabilities/pdf-discovery/carsi/CarsiResultNormalizer.js.map +1 -1
  75. package/dist/capabilities/pdf-discovery/carsi/types.d.ts +2 -0
  76. package/dist/capabilities/pdf-discovery/carsi/types.d.ts.map +1 -1
  77. package/dist/capabilities/pdf-discovery/handler.d.ts.map +1 -1
  78. package/dist/capabilities/pdf-discovery/handler.js +3 -2
  79. package/dist/capabilities/pdf-discovery/handler.js.map +1 -1
  80. package/dist/capabilities/pdf-discovery/oaHosts.d.ts +1 -1
  81. package/dist/capabilities/pdf-discovery/oaHosts.d.ts.map +1 -1
  82. package/dist/capabilities/pdf-discovery/oaHosts.js +4 -4
  83. package/dist/capabilities/pdf-discovery/outputLayout.d.ts +29 -0
  84. package/dist/capabilities/pdf-discovery/outputLayout.d.ts.map +1 -0
  85. package/dist/capabilities/pdf-discovery/outputLayout.js +144 -0
  86. package/dist/capabilities/pdf-discovery/outputLayout.js.map +1 -0
  87. package/dist/capabilities/pdf-discovery/tiers/directPdfUrl.d.ts.map +1 -1
  88. package/dist/capabilities/pdf-discovery/tiers/directPdfUrl.js +6 -0
  89. package/dist/capabilities/pdf-discovery/tiers/directPdfUrl.js.map +1 -1
  90. package/dist/capabilities/pdf-discovery/tiers/entitledAccess.d.ts +2 -1
  91. package/dist/capabilities/pdf-discovery/tiers/entitledAccess.d.ts.map +1 -1
  92. package/dist/capabilities/pdf-discovery/tiers/entitledAccess.js +8 -1
  93. package/dist/capabilities/pdf-discovery/tiers/entitledAccess.js.map +1 -1
  94. package/dist/capabilities/pdf-discovery/tiers/preprint.d.ts +5 -0
  95. package/dist/capabilities/pdf-discovery/tiers/preprint.d.ts.map +1 -0
  96. package/dist/capabilities/pdf-discovery/tiers/preprint.js +80 -0
  97. package/dist/capabilities/pdf-discovery/tiers/preprint.js.map +1 -0
  98. package/dist/capabilities/pdf-discovery/tiers/primary.js +2 -0
  99. package/dist/capabilities/pdf-discovery/tiers/primary.js.map +1 -1
  100. package/dist/capabilities/pdf-discovery/tiers/unpaywall.d.ts.map +1 -1
  101. package/dist/capabilities/pdf-discovery/tiers/unpaywall.js +12 -3
  102. package/dist/capabilities/pdf-discovery/tiers/unpaywall.js.map +1 -1
  103. package/dist/capabilities/pdf-discovery/types.d.ts +6 -0
  104. package/dist/capabilities/pdf-discovery/types.d.ts.map +1 -1
  105. package/dist/core/handleToolCall.d.ts.map +1 -1
  106. package/dist/core/handleToolCall.js +12 -0
  107. package/dist/core/handleToolCall.js.map +1 -1
  108. package/dist/core/schemas.d.ts +26 -1
  109. package/dist/core/schemas.d.ts.map +1 -1
  110. package/dist/core/schemas.js +13 -0
  111. package/dist/core/schemas.js.map +1 -1
  112. package/dist/core/searchers.d.ts +2 -0
  113. package/dist/core/searchers.d.ts.map +1 -1
  114. package/dist/core/searchers.js.map +1 -1
  115. package/dist/core/tools.d.ts.map +1 -1
  116. package/dist/core/tools.js +30 -0
  117. package/dist/core/tools.js.map +1 -1
  118. package/dist/infrastructure/arxiv.d.ts +5 -0
  119. package/dist/infrastructure/arxiv.d.ts.map +1 -0
  120. package/dist/infrastructure/arxiv.js +36 -0
  121. package/dist/infrastructure/arxiv.js.map +1 -0
  122. package/dist/infrastructure/pdf/PdfDownload.d.ts +2 -0
  123. package/dist/infrastructure/pdf/PdfDownload.d.ts.map +1 -1
  124. package/dist/infrastructure/pdf/PdfDownload.js +14 -0
  125. package/dist/infrastructure/pdf/PdfDownload.js.map +1 -1
  126. package/dist/infrastructure/runlog/RunLedger.d.ts.map +1 -1
  127. package/dist/infrastructure/runlog/RunLedger.js +17 -1
  128. package/dist/infrastructure/runlog/RunLedger.js.map +1 -1
  129. package/dist/management/carsi/installer.d.ts +1 -1
  130. package/dist/platforms/ArxivSearcher.d.ts +62 -0
  131. package/dist/platforms/ArxivSearcher.d.ts.map +1 -0
  132. package/dist/platforms/ArxivSearcher.js +544 -0
  133. package/dist/platforms/ArxivSearcher.js.map +1 -0
  134. package/dist/platforms/SemanticScholarSearcher.d.ts.map +1 -1
  135. package/dist/platforms/SemanticScholarSearcher.js +4 -4
  136. package/dist/platforms/SemanticScholarSearcher.js.map +1 -1
  137. package/dist/registry/platformFactories.d.ts.map +1 -1
  138. package/dist/registry/platformFactories.js +2 -0
  139. package/dist/registry/platformFactories.js.map +1 -1
  140. package/dist/registry/platformMetadata.d.ts +1 -1
  141. package/dist/registry/platformMetadata.d.ts.map +1 -1
  142. package/dist/registry/platformMetadata.js +16 -0
  143. package/dist/registry/platformMetadata.js.map +1 -1
  144. package/package.json +2 -2
  145. package/skills/paper-search/SKILL.md +7 -4
  146. package/skills/paper-search/references/browser-download.md +7 -6
  147. package/skills/paper-search/references/capability-routing.md +4 -3
  148. package/skills/paper-search/references/cli-contract.md +10 -3
  149. package/skills/paper-search/references/publisher-support.md +6 -4
  150. package/skills/paper-search/references/troubleshooting.md +1 -1
  151. package/README.zh.md +0 -214
@@ -235,6 +235,7 @@ class ProgressWindow:
235
235
  self._apply_backdrop()
236
236
  self._fonts()
237
237
  self._bind_mouse()
238
+ self._draw_bindings: list[tuple[str, str, str]] = []
238
239
  self._finished_elapsed: float | None = None
239
240
  self._finished_run: object = None
240
241
  self._flash: tuple[str, float, str] | None = None # (text, until, doi)
@@ -304,7 +305,6 @@ class ProgressWindow:
304
305
  self.f_count = tkfont.Font(family=ui, size=px(14), weight="bold")
305
306
  self.f_body = tkfont.Font(family=ui, size=px(12))
306
307
  self.f_small = tkfont.Font(family=ui, size=px(11))
307
- self.f_gear = tkfont.Font(family=ui, size=px(15))
308
308
  self.f_mono = tkfont.Font(family=mono, size=px(11))
309
309
 
310
310
  def _anchor_x(self) -> int:
@@ -388,8 +388,18 @@ class ProgressWindow:
388
388
  return [v for v in attention if isinstance(v, dict)]
389
389
  return []
390
390
 
391
+ def _bind_draw(self, tag: str, event: str, callback: Any) -> None:
392
+ """A binding owned by this frame, released before its items are deleted."""
393
+ command = self.canvas.tag_bind(tag, event, callback)
394
+ self._draw_bindings.append((tag, event, command))
395
+
391
396
  def _draw(self, state: dict[str, Any] | None) -> None:
392
397
  c, col, s = self.canvas, self.c, self.s
398
+ # Canvas.delete removes items, not tag_bind's registered Tcl/Python
399
+ # commands. Keep neither old state nor callbacks across the 500 ms redraws.
400
+ for tag, event, command in self._draw_bindings:
401
+ c.tag_unbind(tag, event, command)
402
+ self._draw_bindings.clear()
393
403
  c.delete("all")
394
404
  P = self.P
395
405
  Wl = max(self.W, c.winfo_width())
@@ -521,24 +531,24 @@ class ProgressWindow:
521
531
  self._pill(x, y6 - u(11), x + w, y6 + u(11), col["warn"] if pressed else col["track"], tags=(tag,))
522
532
  fill = col["bg"] if pressed else (col["text"] if self._hover == key else col["btn"])
523
533
  label_id = c.create_text(x + w / 2, y6, text=text, fill=fill, font=self.f_small, tags=(tag,))
524
- c.tag_bind(tag, "<Button-1>", lambda e, k=key, d=current, s=state: (
534
+ self._bind_draw(tag, "<Button-1>", lambda e, k=key, d=current, s=state: (
525
535
  self._stop(d, s) if k == "stop_batch" else self._decide(k, d, s)))
526
536
  if not pressed:
527
- c.tag_bind(tag, "<Enter>", lambda e, k=key, i=label_id: self._hover_button(k, i))
528
- c.tag_bind(tag, "<Leave>", lambda e, i=label_id: self._hover_button("", i))
537
+ self._bind_draw(tag, "<Enter>", lambda e, k=key, i=label_id: self._hover_button(k, i))
538
+ self._bind_draw(tag, "<Leave>", lambda e, i=label_id: self._hover_button("", i))
529
539
  x += w + u(8)
530
540
  # Problem report for the agent to review: a small flag icon, right-aligned.
531
541
  c.create_text(Wl - P, y6, text="\u2691", fill=col["faint"], font=self.f_body,
532
542
  anchor="e", tags=("report",))
533
- c.tag_bind("report", "<Button-1>", lambda e, d=current, s=state: self._report_menu(e, d, s))
543
+ self._bind_draw("report", "<Button-1>", lambda e, d=current, s=state: self._report_menu(e, d, s))
534
544
 
535
545
  output_dir = str(state.get("output_dir") or "")
536
546
  if output_dir:
537
547
  link = c.create_text(Wl - P, y5, text="打开文件夹", fill=col["link"], font=self.f_small,
538
548
  anchor="e", tags=("outdir",))
539
- c.tag_bind("outdir", "<Button-1>", lambda e: self._open_output_dir(state))
540
- c.tag_bind("outdir", "<Enter>", lambda e: c.itemconfigure(link, font=self._underlined()))
541
- c.tag_bind("outdir", "<Leave>", lambda e: c.itemconfigure(link, font=self.f_small))
549
+ self._bind_draw("outdir", "<Button-1>", lambda e: self._open_output_dir(state))
550
+ self._bind_draw("outdir", "<Enter>", lambda e: c.itemconfigure(link, font=self._underlined()))
551
+ self._bind_draw("outdir", "<Leave>", lambda e: c.itemconfigure(link, font=self.f_small))
542
552
 
543
553
  def _decide(self, action: str, doi: str, state: dict[str, Any]) -> None:
544
554
  """Ask the running download to apply the user's entitlement decision."""
@@ -566,16 +576,27 @@ class ProgressWindow:
566
576
  self._decide("stop_batch", doi, state)
567
577
 
568
578
  def _draw_gear(self, right: int, y: int) -> int:
569
- """The settings button at the top right, a round button like the others'
570
- colours; returns its left edge."""
571
- c, col = self.canvas, self.c
572
- d = int(round(24 * self.s))
573
- x0, y0 = right - d, y - d // 2
574
- c.create_oval(x0, y0, right, y0 + d, fill=col["track"], outline=col["track"], tags=("settings",))
575
- item = c.create_text(right - d / 2, y, text="\u2699", fill=col["btn"], font=self.f_gear, tags=("settings",))
576
- c.tag_bind("settings", "<Button-1>", lambda e: self._open_settings())
577
- c.tag_bind("settings", "<Enter>", lambda e: c.itemconfigure(item, fill=col["text"]))
578
- c.tag_bind("settings", "<Leave>", lambda e: c.itemconfigure(item, fill=col["btn"]))
579
+ """Round settings button with a small, font-independent gear."""
580
+ import math
581
+
582
+ c, col, s = self.canvas, self.c, self.s
583
+ d = 17.6 * s
584
+ x0, cx = right - d, right - d / 2
585
+ c.create_oval(x0, y - d / 2, right, y + d / 2,
586
+ fill=col["track"], outline=col["track"], tags=("settings",))
587
+ # 11.2 px = 70% of the previous 16 px icon. Angular teeth keep the
588
+ # original gear appearance without platform-specific font rendering.
589
+ points = []
590
+ for tooth in range(8):
591
+ for offset, radius in ((-0.5, 4.1), (-0.28, 5.6), (0.28, 5.6), (0.5, 4.1)):
592
+ angle = (tooth + offset) * math.pi / 4
593
+ points.extend((cx + radius * s * math.cos(angle), y + radius * s * math.sin(angle)))
594
+ gear = c.create_polygon(*points, fill=col["btn"], outline="", tags=("settings",))
595
+ r = 2.1 * s
596
+ c.create_oval(cx - r, y - r, cx + r, y + r, fill=col["track"], outline="", tags=("settings",))
597
+ self._bind_draw("settings", "<Button-1>", lambda e: self._open_settings())
598
+ self._bind_draw("settings", "<Enter>", lambda e: c.itemconfigure(gear, fill=col["text"]))
599
+ self._bind_draw("settings", "<Leave>", lambda e: c.itemconfigure(gear, fill=col["btn"]))
579
600
  return x0
580
601
 
581
602
  def _open_settings(self) -> None:
@@ -64,6 +64,7 @@ def carsi_download(
64
64
  batch_failed: int | None = None,
65
65
  supplements: str | None = None,
66
66
  user_wait: str | None = None,
67
+ diagnostics_dir: str | None = None,
67
68
  ) -> str:
68
69
  """Synchronous download entry; ``download`` is module-level so tests can stub it.
69
70
 
@@ -79,6 +80,8 @@ def carsi_download(
79
80
  kwargs = {"supplements": supplements} if supplements in ("with", "only") else {}
80
81
  if user_wait == "short":
81
82
  kwargs["user_wait"] = user_wait
83
+ if diagnostics_dir:
84
+ kwargs["diagnostics_dir"] = diagnostics_dir
82
85
  result = download(identifier, output_dir, strategy=strategy, **kwargs)
83
86
  outcome["result"] = result
84
87
  if not result.get("success"):
@@ -113,6 +116,7 @@ async def _carsi_download_with_progress(
113
116
  batch_failed: int | None = None,
114
117
  supplements: Literal["with", "only"] | None = None,
115
118
  user_wait: Literal["short"] | None = None,
119
+ diagnostics_dir: str | None = None,
116
120
  ctx: Context = None,
117
121
  ) -> str:
118
122
  """Download one paper by DOI through institutional access only.
@@ -129,6 +133,9 @@ async def _carsi_download_with_progress(
129
133
  (``<output_dir>/<DOI>_supplements/``, listed in the result's ``supplements``); "only"
130
134
  downloads just those, for an article whose main text is already at hand.
131
135
 
136
+ diagnostics_dir: optional separate directory for browser records, screenshots and
137
+ attachment manifests. When set, attachments go in output_dir/supplements/.
138
+
132
139
  user_wait: "short" when the user seems away (an earlier article of the batch waited on them
133
140
  until its time was up): each wait on the user (school login, human verification) lasts at
134
141
  most 60 s, unless someone starts typing on the login page.
@@ -140,7 +147,7 @@ async def _carsi_download_with_progress(
140
147
  use_vpnsci, bibtex, strategy, batch_id=batch_id, batch_index=batch_index,
141
148
  batch_total=batch_total, batch_done=batch_done,
142
149
  batch_succeeded=batch_succeeded, batch_failed=batch_failed,
143
- supplements=supplements, user_wait=user_wait)
150
+ supplements=supplements, user_wait=user_wait, diagnostics_dir=diagnostics_dir)
144
151
  )
145
152
 
146
153
 
@@ -1,7 +1,7 @@
1
1
  [project]
2
2
  name = "paper-search-carsi"
3
3
  version = "0.1.0"
4
- description = "Institutional (publisher-authorized) PDF download backend for PaperSearch, carved out of scansci-pdf"
4
+ description = "Institutional (publisher-authorized) PDF and supplementary-file download backend for PaperSearch"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
7
7
  license = { file = "LICENSE" }
@@ -12,8 +12,8 @@ export declare const CitationLookupSchema: z.ZodEffects<z.ZodObject<{
12
12
  }, {
13
13
  paperId?: string | undefined;
14
14
  doi?: string | undefined;
15
- limit?: number | undefined;
16
15
  arxivId?: string | undefined;
16
+ limit?: number | undefined;
17
17
  }>, {
18
18
  limit: number;
19
19
  paperId?: string | undefined;
@@ -22,7 +22,7 @@ export declare const CitationLookupSchema: z.ZodEffects<z.ZodObject<{
22
22
  }, {
23
23
  paperId?: string | undefined;
24
24
  doi?: string | undefined;
25
- limit?: number | undefined;
26
25
  arxivId?: string | undefined;
26
+ limit?: number | undefined;
27
27
  }>;
28
28
  //# sourceMappingURL=schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSourceSearchService.d.ts","sourceRoot":"","sources":["../../../src/capabilities/metadata-search/MultiSourceSearchService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EAAE,KAAK,EAAgB,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAe,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAS5E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,YAAY,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAK1D,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM,EAAE,CAiB3F;AAED,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa,EACtB,eAAe,GAAE,MAA6B,GAC7C,OAAO,CAAC,uBAAuB,CAAC,CA8ClC;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,CAYrD"}
1
+ {"version":3,"file":"MultiSourceSearchService.d.ts","sourceRoot":"","sources":["../../../src/capabilities/metadata-search/MultiSourceSearchService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EAAE,KAAK,EAAgB,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAe,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAS5E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,YAAY,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAK1D,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM,EAAE,CAiB3F;AAED,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa,EACtB,eAAe,GAAE,MAA6B,GAC7C,OAAO,CAAC,uBAAuB,CAAC,CA8ClC;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,CAsBrD"}
@@ -57,14 +57,25 @@ export async function searchMultipleSources(searchers, query, sources, options,
57
57
  };
58
58
  }
59
59
  export function dedupePapers(papers) {
60
- const seen = new Set();
60
+ const positions = new Map();
61
61
  const out = [];
62
+ const preprint = (paper) => paper.source === 'arxiv' || /^10\.48550\/arxiv\./i.test(paper.doi);
62
63
  for (const paper of papers) {
63
64
  const key = paperKey(paper);
64
- if (seen.has(key))
65
+ const index = positions.get(key);
66
+ if (index === undefined) {
67
+ positions.set(key, out.length);
68
+ out.push(paper);
65
69
  continue;
66
- seen.add(key);
67
- out.push(paper);
70
+ }
71
+ const previous = out[index];
72
+ // A known shared DOI links these versions; title resemblance alone does not.
73
+ if (preprint(previous) !== preprint(paper)) {
74
+ const formal = preprint(previous) ? paper : previous;
75
+ const early = preprint(previous) ? previous : paper;
76
+ out[index] = { ...formal, extra: { ...formal.extra,
77
+ arxivId: early.extra?.arxivId || early.paperId, preprintUrl: early.pdfUrl } };
78
+ }
68
79
  }
69
80
  return out;
70
81
  }
@@ -74,6 +85,8 @@ function paperKey(paper) {
74
85
  return `doi:${doi}`;
75
86
  const title = (paper.title || '').trim().toLowerCase();
76
87
  const authors = (paper.authors || []).join(';').trim().toLowerCase();
88
+ if (paper.source === 'arxiv')
89
+ return `arxiv:${paper.paperId.replace(/v\d+$/, '')}`;
77
90
  if (title)
78
91
  return `title:${title}|authors:${authors}`;
79
92
  return `id:${paper.source || 'unknown'}:${paper.paperId || 'unknown'}`;
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSourceSearchService.js","sourceRoot":"","sources":["../../../src/capabilities/metadata-search/MultiSourceSearchService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MultiSourceSearchService.js","sourceRoot":"","sources":["../../../src/capabilities/metadata-search/MultiSourceSearchService.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/capabilities/metadata-search/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAmCzD,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS;;;;;GAkB1F;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS;;;;;GAiDvE;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAAE,SAAS,EAAE,SAAS;;;;;GA6FtG"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/capabilities/metadata-search/handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAwCzD,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS;;;;;GAkB1F;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS;;;;;GAiDvE;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAAE,SAAS,EAAE,SAAS;;;;;GA6FtG"}
@@ -1,3 +1,4 @@
1
+ import { normalizeArxivId } from '../../infrastructure/arxiv.js';
1
2
  import { TIMEOUTS } from '../../config/constants.js';
2
3
  import { PaperFactory } from '../../models/Paper.js';
3
4
  import { logDebug } from '../../utils/Logger.js';
@@ -21,6 +22,11 @@ function normalizeDoi(value) {
21
22
  .toLowerCase();
22
23
  }
23
24
  function paperMatchesDoi(paper, doi) {
25
+ const id = normalizeArxivId(doi);
26
+ if (id && paper.source === 'arxiv') {
27
+ const found = normalizeArxivId(paper.paperId);
28
+ return !!found && (/v\d+$/.test(id) ? found === id : found.replace(/v\d+$/, '') === id);
29
+ }
24
30
  return normalizeDoi(paper.doi || '') === normalizeDoi(doi);
25
31
  }
26
32
  export async function handleGenericSearch(platform, args, searchers) {
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/capabilities/metadata-search/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/capabilities/metadata-search/handler.ts"],"names":[],"mappings":"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"}
@@ -72,12 +72,12 @@ export declare const SearchPapersSchema: z.ZodEffects<z.ZodObject<{
72
72
  }>;
73
73
  export declare const GetPaperByDoiSchema: z.ZodObject<{
74
74
  doi: z.ZodString;
75
- platform: z.ZodDefault<z.ZodOptional<z.ZodEnum<["webofscience", "pubmed", "crossref", "openalex", "unpaywall", "pmc", "europepmc", "core", "all"]>>>;
75
+ platform: z.ZodDefault<z.ZodOptional<z.ZodEnum<["arxiv", "webofscience", "pubmed", "crossref", "openalex", "unpaywall", "pmc", "europepmc", "core", "all"]>>>;
76
76
  }, "strip", z.ZodTypeAny, {
77
77
  doi: string;
78
- platform: "webofscience" | "pubmed" | "core" | "crossref" | "openalex" | "unpaywall" | "pmc" | "europepmc" | "all";
78
+ platform: "arxiv" | "webofscience" | "pubmed" | "core" | "crossref" | "openalex" | "unpaywall" | "pmc" | "europepmc" | "all";
79
79
  }, {
80
80
  doi: string;
81
- platform?: "webofscience" | "pubmed" | "core" | "crossref" | "openalex" | "unpaywall" | "pmc" | "europepmc" | "all" | undefined;
81
+ platform?: "arxiv" | "webofscience" | "pubmed" | "core" | "crossref" | "openalex" | "unpaywall" | "pmc" | "europepmc" | "all" | undefined;
82
82
  }>;
83
83
  //# sourceMappingURL=schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/capabilities/metadata-search/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA2BxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmC3B,CAAC;AAEL,eAAO,MAAM,mBAAmB;;;;;;;;;EAkBtB,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/capabilities/metadata-search/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA2BxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmC3B,CAAC;AAEL,eAAO,MAAM,mBAAmB;;;;;;;;;EAmBtB,CAAC"}
@@ -63,6 +63,7 @@ export const GetPaperByDoiSchema = z
63
63
  doi: z.coerce.string().min(1),
64
64
  platform: z
65
65
  .enum([
66
+ 'arxiv',
66
67
  'webofscience',
67
68
  'pubmed',
68
69
  'crossref',
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/capabilities/metadata-search/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/capabilities/metadata-search/schemas.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ export const SEARCH_PAPERS_TOOL = {
13
13
  },
14
14
  sources: {
15
15
  type: 'string',
16
- description: 'Comma-separated source list for multi-source search. Use all for the broad registered set, or no-key (aliases: free, no_key) for Crossref, PubMed, Europe PMC, and OpenReview without user API keys. Failed or unconfigured sources are reported in failed_sources/errors. Example: crossref,openalex,pubmed,pmc'
16
+ description: 'Comma-separated source list for multi-source search. Use all for the broad registered set, or no-key (aliases: free, no_key) for Crossref, PubMed, Europe PMC, arXiv, and OpenReview without user API keys. Failed or unconfigured sources are reported in failed_sources/errors. Example: crossref,openalex,pubmed,pmc'
17
17
  },
18
18
  maxResults: {
19
19
  type: 'number',
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/capabilities/metadata-search/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAE5E,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,6EAA6E;IAC1F,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;YAC7D,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,GAAG,sBAAsB,EAAE,KAAK,CAAC;gBACxC,WAAW,EACT,gGAAgG;aACnG;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,kTAAkT;aACrT;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,GAAG;gBACZ,WAAW,EAAE,qCAAqC;aACnD;YACD,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kDAAkD,EAAE;YACzF,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;YAC7D,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;YAC/D,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gEAAgE,EAAE;YAC3G,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,sDAAsD;aACpE;YACD,YAAY,EAAE;gBACZ,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,wCAAwC;aACtD;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,WAAW,EAAE,gDAAgD;aAC9D;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC;gBACxC,WAAW,EAAE,+CAA+C;aAC7D;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;gBACrB,WAAW,EAAE,qCAAqC;aACnD;SACF;QACD,QAAQ,EAAE,CAAC,OAAO,CAAC;KACpB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,+DAA+D;IAC5E,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,GAAG,EAAE;gBACH,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iCAAiC;aAC/C;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC;gBACxG,WAAW,EAAE,oBAAoB;aAClC;SACF;QACD,QAAQ,EAAE,CAAC,KAAK,CAAC;KAClB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,CAAC"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/capabilities/metadata-search/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAE5E,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,6EAA6E;IAC1F,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;YAC7D,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,GAAG,sBAAsB,EAAE,KAAK,CAAC;gBACxC,WAAW,EACT,gGAAgG;aACnG;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,yTAAyT;aAC5T;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,GAAG;gBACZ,WAAW,EAAE,qCAAqC;aACnD;YACD,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kDAAkD,EAAE;YACzF,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;YAC7D,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;YAC/D,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gEAAgE,EAAE;YAC3G,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,sDAAsD;aACpE;YACD,YAAY,EAAE;gBACZ,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,wCAAwC;aACtD;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,WAAW,EAAE,gDAAgD;aAC9D;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC;gBACxC,WAAW,EAAE,+CAA+C;aAC7D;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;gBACrB,WAAW,EAAE,qCAAqC;aACnD;SACF;QACD,QAAQ,EAAE,CAAC,OAAO,CAAC;KACpB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,+DAA+D;IAC5E,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,GAAG,EAAE;gBACH,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iCAAiC;aAC/C;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC;gBACxG,WAAW,EAAE,oBAAoB;aAClC;SACF;QACD,QAAQ,EAAE,CAAC,KAAK,CAAC;KAClB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,CAAC"}
@@ -6,6 +6,12 @@ export interface DownloadTier {
6
6
  run(context: DownloadTierContext): Promise<DownloadTierResult>;
7
7
  }
8
8
  export interface DownloadTierContext {
9
+ arxivId?: string;
10
+ arxivPaper?: import('../../models/Paper.js').Paper;
11
+ arxivOnly?: boolean;
12
+ arxivConflict?: boolean;
13
+ arxivLookupError?: string;
14
+ preprintIds?: string[];
9
15
  /** Set once the funnel has asked Crossref for a missing title. */
10
16
  titleLookedUp?: boolean;
11
17
  searchers: Searchers;
@@ -14,6 +20,8 @@ export interface DownloadTierContext {
14
20
  doi?: string;
15
21
  title?: string;
16
22
  savePath: string;
23
+ diagnosticsDir?: string;
24
+ outputMetadata?: import("./outputLayout.js").OutputMetadata;
17
25
  useEntitledAccess: boolean;
18
26
  useSciHub: boolean;
19
27
  batch?: DownloadBatchPosition;
@@ -22,6 +30,9 @@ export interface DownloadTierContext {
22
30
  shortUserWait?: boolean;
23
31
  }
24
32
  export interface DownloadTierResult {
33
+ version?: "preprint";
34
+ arxivId?: string;
35
+ publishedDoi?: string;
25
36
  status: "ok" | "error" | "skipped";
26
37
  path?: string;
27
38
  message: string;
@@ -1 +1 @@
1
- {"version":3,"file":"DownloadTier.d.ts","sourceRoot":"","sources":["../../../src/capabilities/pdf-discovery/DownloadTier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAExE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAChE;AAED,MAAM,WAAW,mBAAmB;IAClC,kEAAkE;IAClE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uEAAuE;IACvE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,IAAI,GAAG,OAAO,GAAG,SAAS,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,MAAM,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC;IAC5B,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,oFAAoF;IACpF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2FAA2F;IAC3F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;CAChC"}
1
+ {"version":3,"file":"DownloadTier.d.ts","sourceRoot":"","sources":["../../../src/capabilities/pdf-discovery/DownloadTier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAExE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAChE;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,uBAAuB,EAAE,KAAK,CAAC;IACnD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,kEAAkE;IAClE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,mBAAmB,EAAE,cAAc,CAAC;IAC5D,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uEAAuE;IACvE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,IAAI,GAAG,OAAO,GAAG,SAAS,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,MAAM,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC;IAC5B,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,oFAAoF;IACpF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2FAA2F;IAC3F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;CAChC"}
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAccessFallbackService.d.ts","sourceRoot":"","sources":["../../../src/capabilities/pdf-discovery/OpenAccessFallbackService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGzD,OAAO,EAAqB,KAAK,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAGpG,OAAO,KAAK,EACV,YAAY,EAGb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,2BAA2B,EAC3B,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AASrD,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,YAAY,CAAC;AAEpB,wBAAgB,0BAA0B,CACxC,YAAY,CAAC,EAAE,YAAY,GAC1B,YAAY,EAAE,CAUhB;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,YAAY,EAAE,EACrB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,YAAY,GACjB,YAAY,EAAE,CAIhB;AAED,MAAM,WAAW,sBAAsB;IACrC,2EAA2E;IAC3E,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAyBD,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,2BAA2B,EACpC,KAAK,GAAE,YAAY,EAAiC,EACpD,MAAM,GAAE,sBAA2B,EACnC,cAAc,GAAE,gBAAoC,GACnD,OAAO,CAAC,0BAA0B,CAAC,CAyErC;AAKD,MAAM,MAAM,gBAAgB,GAAG,CAC7B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,MAAM,KACX,OAAO,CAAC,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"OpenAccessFallbackService.d.ts","sourceRoot":"","sources":["../../../src/capabilities/pdf-discovery/OpenAccessFallbackService.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGzD,OAAO,EAAqB,KAAK,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAGpG,OAAO,KAAK,EACV,YAAY,EAGb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,2BAA2B,EAC3B,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AASrD,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,YAAY,CAAC;AAEpB,wBAAgB,0BAA0B,CACxC,YAAY,CAAC,EAAE,YAAY,GAC1B,YAAY,EAAE,CAWhB;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,YAAY,EAAE,EACrB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,YAAY,GACjB,YAAY,EAAE,CAIhB;AAED,MAAM,WAAW,sBAAsB;IACrC,2EAA2E;IAC3E,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAyBD,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,2BAA2B,EACpC,KAAK,GAAE,YAAY,EAAiC,EACpD,MAAM,GAAE,sBAA2B,EACnC,cAAc,GAAE,gBAAoC,GACnD,OAAO,CAAC,0BAA0B,CAAC,CAmGrC;AAKD,MAAM,MAAM,gBAAgB,GAAG,CAC7B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,MAAM,KACX,OAAO,CAAC,iBAAiB,CAAC,CAAC"}
@@ -1,3 +1,6 @@
1
+ import { createOutputLayout, lookupOutputMetadata, organizeFiles } from "./outputLayout.js";
2
+ import { prepareArxiv } from "./arxiv.js";
3
+ import { createPreprintTier } from "./tiers/preprint.js";
1
4
  import { TIMEOUTS } from "../../config/constants.js";
2
5
  import { unlinkSync } from "node:fs";
3
6
  import { verifyPdfIdentity } from "../../infrastructure/pdf/PdfIdentity.js";
@@ -19,6 +22,7 @@ export function createDefaultDownloadTiers(carsiBackend) {
19
22
  createPublisherApiTier(),
20
23
  createSciHubTier(),
21
24
  createEntitledAccessTier(carsiBackend),
25
+ createPreprintTier(),
22
26
  ];
23
27
  }
24
28
  export function insertDownloadTierBefore(tiers, beforeStage, tier) {
@@ -54,6 +58,7 @@ export async function downloadWithFallback(searchers, options, tiers = createDef
54
58
  const reviewPaths = [];
55
59
  const context = {
56
60
  searchers,
61
+ preprintIds: options.preprintIds || [],
57
62
  source: normalizeSource(options.source),
58
63
  paperId: options.paperId,
59
64
  doi: options.doi,
@@ -66,6 +71,13 @@ export async function downloadWithFallback(searchers, options, tiers = createDef
66
71
  ...(options.shortUserWait ? { shortUserWait: true } : {}),
67
72
  };
68
73
  let supplements;
74
+ await prepareArxiv(context);
75
+ context.outputMetadata = context.arxivOnly ? context.arxivPaper || {} : await lookupOutputMetadata(searchers, context.doi ? "crossref" : context.source, context.doi || context.paperId);
76
+ context.title ||= context.outputMetadata.title;
77
+ context.titleLookedUp = true;
78
+ const layout = createOutputLayout(savePath, context.doi || context.paperId, { ...context.outputMetadata, title: context.title }, !!context.arxivOnly);
79
+ context.savePath = layout.paperDir;
80
+ context.diagnosticsDir = layout.diagnosticsDir;
69
81
  for (const tier of tiers) {
70
82
  const startedAt = Date.now();
71
83
  let result;
@@ -76,7 +88,11 @@ export async function downloadWithFallback(searchers, options, tiers = createDef
76
88
  await fillTitle(context, doi);
77
89
  }
78
90
  try {
79
- result = await runStage(tier, context, stageTimeoutMs);
91
+ result = context.arxivOnly && tier.stage !== "preprint"
92
+ ? { status: "skipped", message: context.arxivLookupError
93
+ ? "arXiv publication metadata unavailable; published DOI could not be resolved."
94
+ : "No published DOI is linked to this arXiv identifier." }
95
+ : await runStage(tier, context, stageTimeoutMs);
80
96
  }
81
97
  catch (error) {
82
98
  notifyStage(options, tier.stage, startedAt, {
@@ -87,6 +103,16 @@ export async function downloadWithFallback(searchers, options, tiers = createDef
87
103
  throw error;
88
104
  }
89
105
  result = await identityGate(result, context, verifyIdentity);
106
+ try {
107
+ const destination = result.version === "preprint"
108
+ ? createOutputLayout(savePath, `arxiv:${result.arxivId}`, context.arxivPaper || {}, true) : layout;
109
+ organizeFiles(result, destination, context.savePath);
110
+ }
111
+ catch (error) {
112
+ // Keep the retrieved file and report a concrete filing failure.
113
+ attempts.push({ stage: "output_layout", status: "error", code: "output_layout_failed",
114
+ message: `File organization failed (${error instanceof Error ? error.name : "Error"}); use the returned file paths.` });
115
+ }
90
116
  notifyStage(options, tier.stage, startedAt, result);
91
117
  attempts.push({
92
118
  stage: tier.stage,
@@ -101,11 +127,15 @@ export async function downloadWithFallback(searchers, options, tiers = createDef
101
127
  }
102
128
  if (result.supplements?.length)
103
129
  supplements = result.supplements;
130
+ if (["batch_stopped", "user_skipped"].includes(result.code || ""))
131
+ break;
104
132
  if (result.status === "ok" && result.path) {
105
133
  discardReviews(reviewPaths, result.path);
106
134
  return {
107
135
  status: "ok",
108
136
  path: result.path,
137
+ ...(result.version ? { version: result.version, arxivId: result.arxivId } : {}),
138
+ ...(result.publishedDoi || context.arxivId && context.doi ? { publishedDoi: result.publishedDoi || context.doi } : {}),
109
139
  ...(result.format && result.format !== "pdf"
110
140
  ? { format: result.format }
111
141
  : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAccessFallbackService.js","sourceRoot":"","sources":["../../../src/capabilities/pdf-discovery/OpenAccessFallbackService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OpenAccessFallbackService.js","sourceRoot":"","sources":["../../../src/capabilities/pdf-discovery/OpenAccessFallbackService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { DownloadTierContext } from './DownloadTier.js';
2
+ /** Resolve an arXiv input to its explicitly linked published DOI before any PDF. */
3
+ export declare function prepareArxiv(context: DownloadTierContext): Promise<void>;
4
+ //# sourceMappingURL=arxiv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arxiv.d.ts","sourceRoot":"","sources":["../../../src/capabilities/pdf-discovery/arxiv.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,oFAAoF;AACpF,wBAAsB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiC9E"}
@@ -0,0 +1,42 @@
1
+ import { normalizeArxivId, publishedDoi } from '../../infrastructure/arxiv.js';
2
+ import { sanitizeDoi, withTimeout } from '../../infrastructure/security/SecurityUtils.js';
3
+ /** Resolve an arXiv input to its explicitly linked published DOI before any PDF. */
4
+ export async function prepareArxiv(context) {
5
+ const id = normalizeArxivId(context.paperId) || normalizeArxivId(context.doi);
6
+ if (!id) {
7
+ if (!context.doi)
8
+ context.doi = publishedDoi(context.paperId) ? sanitizeDoi(context.paperId).sanitized : undefined;
9
+ return;
10
+ }
11
+ context.arxivId = id;
12
+ const givenDoi = publishedDoi(context.doi);
13
+ let paper = null;
14
+ try {
15
+ const searcher = context.searchers.arxiv;
16
+ if (searcher)
17
+ paper = await withTimeout(searcher.getPaperByDoi(id), 12_000, 'arXiv metadata lookup timed out');
18
+ }
19
+ catch (error) {
20
+ context.arxivLookupError = error instanceof Error ? error.message : String(error);
21
+ }
22
+ const linkedDoi = publishedDoi(paper?.doi);
23
+ if (givenDoi && linkedDoi && givenDoi !== linkedDoi) {
24
+ // Conflicting supplied DOI: try that formal paper, but never silently use
25
+ // an unrelated preprint as its fallback.
26
+ context.arxivId = undefined;
27
+ context.arxivConflict = true;
28
+ }
29
+ context.arxivPaper = paper || undefined;
30
+ const doi = givenDoi || linkedDoi;
31
+ if (doi) {
32
+ context.doi = doi;
33
+ context.paperId = doi;
34
+ context.source = 'crossref';
35
+ context.title = undefined; // published and preprint titles can differ
36
+ }
37
+ else {
38
+ context.doi = undefined;
39
+ context.arxivOnly = true;
40
+ }
41
+ }
42
+ //# sourceMappingURL=arxiv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arxiv.js","sourceRoot":"","sources":["../../../src/capabilities/pdf-discovery/arxiv.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gDAAgD,CAAC;AAG1F,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAA4B;IAC7D,MAAM,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9E,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,CAAC,GAAG;YAAE,OAAO,CAAC,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QACnH,OAAO;IACT,CAAC;IACD,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;IACrB,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,KAAK,GAAiB,IAAI,CAAC;IAC/B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC;QACzC,IAAI,QAAQ;YAAE,KAAK,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,iCAAiC,CAAC,CAAC;IACjH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,gBAAgB,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpF,CAAC;IACD,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC3C,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACpD,0EAA0E;QAC1E,yCAAyC;QACzC,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;QAC5B,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAC/B,CAAC;IACD,OAAO,CAAC,UAAU,GAAG,KAAK,IAAI,SAAS,CAAC;IACxC,MAAM,GAAG,GAAG,QAAQ,IAAI,SAAS,CAAC;IAClC,IAAI,GAAG,EAAE,CAAC;QACR,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC;QAClB,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC;QACtB,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC;QAC5B,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,2CAA2C;IACxE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;QACxB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAC3B,CAAC;AACH,CAAC"}