Not in the top 1,000 by GitHub stars

O0000-code/paper-search-pro

Academic literature discovery as a Skill — Claude Code · Codex · any agent that loads SKILL.md. Five sources · four tiers · single-file Shadcn report.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

b551d741d040 → b551d741d040

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → b551d741d040

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit b551d741d0408b2beb8d5a0f023adb3fc8ec23b7

git clone --filter=blob:none --no-checkout https://github.com/O0000-code/paper-search-pro.git .hotskills/o0000-code-paper-search-pro && git -C .hotskills/o0000-code-paper-search-pro checkout --detach b551d741d0408b2beb8d5a0f023adb3fc8ec23b7 # Copy each selected skill directory from .hotskills/o0000-code-paper-search-pro into .claude/skills/<skill-name>/
229GitHub stars
6stars in 7 days
1skill in this repository
3commits in 30 days

Heat

6.0
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Nov 6, 2026229

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

paper-search-pro

When your agent uses it

Find academic papers across up to 8 sources (OpenAlex / Semantic Scholar / CrossRef / PubMed / arXiv for English, OpenReview for AI venues, plus native-Chinese retrieval via NSSD 国家哲社文献中心 + yiigle 中华医学期刊) with adjustable depth — Quick scan (5 min) to Audit prep (3 hr). Use when the user wants to find papers, run a literature search, gather references, scope a research topic, search Chinese-language / 中文原生 literature (中文文献/中文核心/CSSCI/C刊/国内研究/国内文献/中华××期刊/心理学报/经济研究), or filter results by journal tier (中科院分区/一区/几区, Q1, JCR/SJR quartile, 影响因子/impact factor, 期刊分区, 顶刊/top journal, '按分区筛'), or export paste-ready professional search strategies / 检索式 for external databases (PubMed / WOS / Scopus / Embase / 知网 CNKI / 万方 / SinoMed — '写检索式', '导出检索式', 'WOS 检索式', '知网专业检索', 'search strategy', 'boolean search strategy'). Triggers on search verbs ('find papers', 'literature search', 'papers about X'), review types ('scoping review', 'systematic review', 'SR prep', 'literature review', 'lit review', 'help me write a lit review'), Chinese ('找文献', '找论文', '论文搜索', '学术检索', '文献检索', '文献综述', '综述前期', '求文献', '中文文献', '中文核心', 'CSSCI', 'C刊', '国内研究', '找中文的'). Outputs Shadcn HTML report + BibTeX/RIS/CSV + PRISMA-S log. Do NOT use for: concept explanations ('what is X' / 'X 是什么', e.g. '影响因子怎么算'), writing ('帮我写' / 'help me write a paragraph'), single-paper interpretation or PDF download with metadata (use paper-downloader-portable), or when the user already has a literature set (use literature-set-review).

What it loads into context

Frontmatter

554 tokens

Always available to the agent

SKILL.md

17,068 tokens

When the skill is activated

Reference documents

139,337 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. When to use this skill
  2. When NOT to use
  3. 🤖 Called by another agent / headless mode
  4. 🔥 Execution discipline (read before running anything)
  5. Architecture at a glance
  6. The 4 tiers — pick first
  7. The recipe
  8. Output convention
  9. Error handling
  10. References (progressive disclosure — read the one for the step you're on)
  11. Examples

Scripts executed separately

  • assets/webartifacts_app/paper-report/eslint.config.js
  • assets/webartifacts_app/paper-report/package.json
  • assets/webartifacts_app/paper-report/postcss.config.js
  • assets/webartifacts_app/paper-report/src/App.tsx
  • assets/webartifacts_app/paper-report/src/components/adapters/KickerAccordion.tsx
  • assets/webartifacts_app/paper-report/src/components/adapters/KickerAlert.tsx
  • assets/webartifacts_app/paper-report/src/components/adapters/SearchInput.tsx
  • assets/webartifacts_app/paper-report/src/components/adapters/SegmentedToggle.tsx
  • assets/webartifacts_app/paper-report/src/components/adapters/SimpleTooltip.tsx
  • assets/webartifacts_app/paper-report/src/components/audit/AuditTab.tsx
  • assets/webartifacts_app/paper-report/src/components/audit/ComplianceSummary.tsx
  • assets/webartifacts_app/paper-report/src/components/audit/PhaseGroup.tsx
  • assets/webartifacts_app/paper-report/src/components/audit/PrismaRow.tsx
  • assets/webartifacts_app/paper-report/src/components/audit/StatusDot.tsx
  • assets/webartifacts_app/paper-report/src/components/audit/audit-utils.tsx
  • assets/webartifacts_app/paper-report/src/components/chrome/LayoutSwitcher.tsx
  • assets/webartifacts_app/paper-report/src/components/chrome/thumbs/Thumbs.tsx
  • assets/webartifacts_app/paper-report/src/components/extensions/ExtensionsTab.tsx
  • assets/webartifacts_app/paper-report/src/components/hero/FilterBar.tsx
  • assets/webartifacts_app/paper-report/src/components/hero/ReportTitle.tsx
  • assets/webartifacts_app/paper-report/src/components/hero/SliderWithZones.tsx
  • assets/webartifacts_app/paper-report/src/components/hero/TierStrip.tsx
  • assets/webartifacts_app/paper-report/src/components/hero/tops/BrandLink.tsx
  • assets/webartifacts_app/paper-report/src/components/hero/tops/DocumentTop.tsx
  • assets/webartifacts_app/paper-report/src/components/hero/tops/EditorialTop.tsx
  • assets/webartifacts_app/paper-report/src/components/hero/tops/SwissTop.tsx
  • assets/webartifacts_app/paper-report/src/components/methods/CitationScatter.tsx
  • assets/webartifacts_app/paper-report/src/components/methods/DiscoveryCurve.tsx
  • assets/webartifacts_app/paper-report/src/components/methods/MethodologyAccordion.tsx
  • assets/webartifacts_app/paper-report/src/components/methods/MethodsTab.tsx
  • assets/webartifacts_app/paper-report/src/components/methods/RcsHistogram.tsx
  • assets/webartifacts_app/paper-report/src/components/methods/SearchStrategies.tsx
  • assets/webartifacts_app/paper-report/src/components/methods/SectionHeader.tsx
  • assets/webartifacts_app/paper-report/src/components/methods/Stat.tsx
  • assets/webartifacts_app/paper-report/src/components/methods/TierAllocation.tsx
  • assets/webartifacts_app/paper-report/src/components/methods/TopicsTreemap.tsx
  • assets/webartifacts_app/paper-report/src/components/methods/YearBarChart.tsx
  • assets/webartifacts_app/paper-report/src/components/methods/useInsights.ts
  • assets/webartifacts_app/paper-report/src/components/papers/JournalRank.tsx
  • assets/webartifacts_app/paper-report/src/components/papers/PaperCardItem.tsx
  • assets/webartifacts_app/paper-report/src/components/papers/PaperList.tsx
  • assets/webartifacts_app/paper-report/src/components/papers/PaperRowCatalog.tsx
  • assets/webartifacts_app/paper-report/src/components/papers/PaperRowIndex.tsx
  • assets/webartifacts_app/paper-report/src/components/papers/PaperRowIndexHeader.tsx
  • assets/webartifacts_app/paper-report/src/components/papers/PaperSheet.tsx
  • assets/webartifacts_app/paper-report/src/components/papers/QuickJump.tsx
  • assets/webartifacts_app/paper-report/src/components/papers/TierDot.tsx
  • assets/webartifacts_app/paper-report/src/components/papers/TierHeader.tsx
  • assets/webartifacts_app/paper-report/src/components/papers/ZoneFilter.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/accordion.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/alert.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/aspect-ratio.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/avatar.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/badge.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/breadcrumb.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/button.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/calendar.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/card.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/carousel.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/chart.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/checkbox.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/collapsible.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/command.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/context-menu.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/dialog.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/drawer.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/dropdown-menu.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/form.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/hover-card.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/input.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/label.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/menubar.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/navigation-menu.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/popover.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/progress.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/radio-group.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/resizable.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/scroll-area.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/select.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/separator.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/sheet.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/skeleton.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/slider.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/sonner.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/switch.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/table.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/tabs.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/textarea.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/toggle-group.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/toggle.tsx
  • assets/webartifacts_app/paper-report/src/components/ui/tooltip.tsx
  • assets/webartifacts_app/paper-report/src/lib/format.ts
  • assets/webartifacts_app/paper-report/src/lib/i18n.ts
  • assets/webartifacts_app/paper-report/src/lib/mock-data.ts
  • assets/webartifacts_app/paper-report/src/lib/normalize.ts
  • assets/webartifacts_app/paper-report/src/lib/prisma-titles.ts
  • assets/webartifacts_app/paper-report/src/lib/safari-detect.ts
  • assets/webartifacts_app/paper-report/src/lib/types.ts
  • assets/webartifacts_app/paper-report/src/lib/utils.ts
  • assets/webartifacts_app/paper-report/src/main.tsx
  • assets/webartifacts_app/paper-report/tailwind.config.js
  • assets/webartifacts_app/paper-report/vite.config.ts
  • scripts/__init__.py
  • scripts/agent_search.py
  • scripts/arxiv_helper.py
  • scripts/config.py
  • scripts/crossref_helper.py
  • scripts/data_materialization.py
  • scripts/detect_language.py
  • scripts/discovery_curve.py
  • scripts/federated_kg_resolver.py
  • scripts/generate_exports.py
  • scripts/html_renderer_webartifacts.py
  • scripts/journal_rank.py
  • scripts/md_report.py
  • scripts/nssd_helper.py
  • scripts/openalex_guard.py
  • scripts/openalex_helper.py
  • scripts/openreview_helper.py
  • scripts/prisma_s_logger.py
  • scripts/pubmed_helper.py
  • scripts/quota_guard.py
  • scripts/rank_filter.py
  • scripts/rank_intent.py
  • scripts/rcs_parser.py
  • scripts/report_identity.py
  • scripts/search_export/__init__.py
  • scripts/search_export/deeplink.py
  • scripts/search_export/generate.py
  • scripts/search_export/linter.py
  • scripts/search_export/proximity.py
  • scripts/search_export/vocab_verify.py
  • scripts/semantic_cache.py
  • scripts/sjr_helper.py
  • scripts/source_fallback.py
  • scripts/ss_helper.py
  • scripts/types.py
  • scripts/vendored/__init__.py
  • scripts/vendored/tenacity_retry.py
  • scripts/yiigle_helper.py
  • tests/__init__.py
  • tests/test_agent_rank.py
  • tests/test_agent_search.py
  • tests/test_arxiv_helper.py
  • tests/test_arxiv_recent.py
  • tests/test_coverage_report.py
  • tests/test_crossref_helper.py
  • tests/test_data_materialization_rank.py
  • tests/test_detect_language.py
  • tests/test_discovery_curve.py
  • tests/test_enrich_kg.py
  • tests/test_federated_kg_resolver.py
  • tests/test_html_renderer_webartifacts.py
  • tests/test_journal_rank.py
  • tests/test_modules_smoke.py
  • tests/test_nssd_helper.py
  • tests/test_openalex_fallback.py
  • tests/test_openalex_helper.py
  • tests/test_openreview_helper.py
  • tests/test_openreview_merge.py
  • tests/test_pool_count.py
  • tests/test_prisma_s_logger.py
  • tests/test_pubmed_helper.py
  • tests/test_query_warning.py
  • tests/test_quota_guard.py
  • tests/test_rank_filter.py
  • tests/test_rank_intent.py
  • tests/test_rcs_parser.py
  • tests/test_recency_legs.py
  • tests/test_report_identity.py
  • tests/test_search_export_deeplink.py
  • tests/test_search_export_generate.py
  • tests/test_search_export_linter.py
  • tests/test_search_export_proximity.py
  • tests/test_search_export_vocab_verify.py
  • tests/test_sjr_helper.py
  • tests/test_ss_helper.py
  • tests/test_stable_ids.py
  • tests/test_year_and_query_edges.py
  • tests/test_year_bounds.py
  • tests/test_yiigle_helper.py

Files

  • .github/og-image.pngasset44,020 bytes
  • .github/workflows/tests.ymlasset555 bytes
  • .gitignoreasset1,342 bytes
  • .skillignoreasset2,569 bytes
  • CLAUDE.mddoc3,968 bytes
  • LICENSE.txtdoc11,358 bytes
  • NOTICE.mddoc2,335 bytes
  • README.mddoc13,595 bytes
  • README.zh.mddoc13,266 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • SKILL.mdcore67,069 bytes
  • THIRD_PARTY.mddoc5,694 bytes
  • assets/benchmark_queries/custom_zh_queries.jsonasset5,949 bytes
  • assets/benchmark_queries/litsearch_subset.jsonasset4,841 bytes
  • assets/benchmark_queries/sparbench_subset.jsonasset3,143 bytes
  • assets/default_config.yamlasset7,289 bytes
  • assets/md_template.md.jinjaasset5,858 bytes
  • assets/webartifacts_app/paper-report/.gitignoreasset342 bytes
  • assets/webartifacts_app/paper-report/.parcelrcasset93 bytes
  • assets/webartifacts_app/paper-report/README.mddoc2,425 bytes
  • assets/webartifacts_app/paper-report/bundle.htmlasset7,198,281 bytes
  • assets/webartifacts_app/paper-report/components.jsonasset414 bytes
  • assets/webartifacts_app/paper-report/eslint.config.jsruns591 bytes
  • assets/webartifacts_app/paper-report/index.htmlasset324 bytes
  • assets/webartifacts_app/paper-report/package.jsonruns2,622 bytes
  • assets/webartifacts_app/paper-report/pnpm-lock.yamlasset232,360 bytes
  • assets/webartifacts_app/paper-report/postcss.config.jsruns80 bytes
  • assets/webartifacts_app/paper-report/public/favicon.svgasset9,522 bytes
  • assets/webartifacts_app/paper-report/public/icons.svgasset5,031 bytes
  • assets/webartifacts_app/paper-report/src/App.cssasset64 bytes
  • assets/webartifacts_app/paper-report/src/App.tsxruns12,830 bytes
  • assets/webartifacts_app/paper-report/src/assets/hero.pngasset13,057 bytes
  • assets/webartifacts_app/paper-report/src/assets/react.svgasset4,126 bytes
  • assets/webartifacts_app/paper-report/src/assets/vite.svgasset8,709 bytes
  • assets/webartifacts_app/paper-report/src/components/adapters/KickerAccordion.tsxruns2,725 bytes
  • assets/webartifacts_app/paper-report/src/components/adapters/KickerAlert.tsxruns1,572 bytes
  • assets/webartifacts_app/paper-report/src/components/adapters/SearchInput.tsxruns835 bytes
  • assets/webartifacts_app/paper-report/src/components/adapters/SegmentedToggle.tsxruns1,815 bytes
  • assets/webartifacts_app/paper-report/src/components/adapters/SimpleTooltip.tsxruns1,174 bytes
  • assets/webartifacts_app/paper-report/src/components/audit/AuditTab.tsxruns4,777 bytes
  • assets/webartifacts_app/paper-report/src/components/audit/ComplianceSummary.tsxruns6,420 bytes
  • assets/webartifacts_app/paper-report/src/components/audit/PhaseGroup.tsxruns2,794 bytes
  • assets/webartifacts_app/paper-report/src/components/audit/PrismaRow.tsxruns8,318 bytes
  • assets/webartifacts_app/paper-report/src/components/audit/StatusDot.tsxruns1,189 bytes
  • assets/webartifacts_app/paper-report/src/components/audit/audit-utils.tsxruns8,761 bytes
  • assets/webartifacts_app/paper-report/src/components/chrome/LayoutSwitcher.tsxruns12,213 bytes
  • assets/webartifacts_app/paper-report/src/components/chrome/thumbs/Thumbs.tsxruns5,147 bytes
  • assets/webartifacts_app/paper-report/src/components/extensions/ExtensionsTab.tsxruns1,087 bytes
  • assets/webartifacts_app/paper-report/src/components/hero/FilterBar.tsxruns4,451 bytes
  • assets/webartifacts_app/paper-report/src/components/hero/ReportTitle.tsxruns2,664 bytes
  • assets/webartifacts_app/paper-report/src/components/hero/SliderWithZones.tsxruns2,612 bytes
  • assets/webartifacts_app/paper-report/src/components/hero/TierStrip.tsxruns3,445 bytes
  • assets/webartifacts_app/paper-report/src/components/hero/tops/BrandLink.tsxruns962 bytes
  • assets/webartifacts_app/paper-report/src/components/hero/tops/DocumentTop.tsxruns16,004 bytes
  • assets/webartifacts_app/paper-report/src/components/hero/tops/EditorialTop.tsxruns11,529 bytes
  • assets/webartifacts_app/paper-report/src/components/hero/tops/SwissTop.tsxruns16,330 bytes
  • assets/webartifacts_app/paper-report/src/components/methods/CitationScatter.tsxruns11,402 bytes
  • assets/webartifacts_app/paper-report/src/components/methods/DiscoveryCurve.tsxruns8,931 bytes
  • assets/webartifacts_app/paper-report/src/components/methods/MethodologyAccordion.tsxruns2,810 bytes
  • assets/webartifacts_app/paper-report/src/components/methods/MethodsTab.tsxruns12,562 bytes
  • assets/webartifacts_app/paper-report/src/components/methods/RcsHistogram.tsxruns4,370 bytes
  • assets/webartifacts_app/paper-report/src/components/methods/SearchStrategies.tsxruns31,339 bytes
  • assets/webartifacts_app/paper-report/src/components/methods/SectionHeader.tsxruns1,373 bytes
  • assets/webartifacts_app/paper-report/src/components/methods/Stat.tsxruns1,215 bytes
  • assets/webartifacts_app/paper-report/src/components/methods/TierAllocation.tsxruns6,713 bytes
  • assets/webartifacts_app/paper-report/src/components/methods/TopicsTreemap.tsxruns16,691 bytes
  • assets/webartifacts_app/paper-report/src/components/methods/YearBarChart.tsxruns4,002 bytes
  • assets/webartifacts_app/paper-report/src/components/methods/useInsights.tsruns3,342 bytes
  • assets/webartifacts_app/paper-report/src/components/papers/JournalRank.tsxruns8,557 bytes
  • assets/webartifacts_app/paper-report/src/components/papers/PaperCardItem.tsxruns9,302 bytes
  • assets/webartifacts_app/paper-report/src/components/papers/PaperList.tsxruns5,264 bytes
  • assets/webartifacts_app/paper-report/src/components/papers/PaperRowCatalog.tsxruns6,280 bytes
  • assets/webartifacts_app/paper-report/src/components/papers/PaperRowIndex.tsxruns4,203 bytes
  • assets/webartifacts_app/paper-report/src/components/papers/PaperRowIndexHeader.tsxruns1,170 bytes
  • assets/webartifacts_app/paper-report/src/components/papers/PaperSheet.tsxruns21,038 bytes
  • assets/webartifacts_app/paper-report/src/components/papers/QuickJump.tsxruns2,090 bytes
  • assets/webartifacts_app/paper-report/src/components/papers/TierDot.tsxruns699 bytes
  • assets/webartifacts_app/paper-report/src/components/papers/TierHeader.tsxruns3,297 bytes
  • assets/webartifacts_app/paper-report/src/components/papers/ZoneFilter.tsxruns6,001 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/accordion.tsxruns2,001 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/alert.tsxruns1,598 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/aspect-ratio.tsxruns140 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/avatar.tsxruns1,405 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/badge.tsxruns1,140 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/breadcrumb.tsxruns2,712 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/button.tsxruns1,902 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/calendar.tsxruns7,555 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/card.tsxruns1,828 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/carousel.tsxruns6,224 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/chart.tsxruns10,473 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/checkbox.tsxruns1,026 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/collapsible.tsxruns315 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/command.tsxruns4,887 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/context-menu.tsxruns7,420 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/dialog.tsxruns3,835 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/drawer.tsxruns3,021 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/dropdown-menu.tsxruns7,606 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/form.tsxruns4,118 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/hover-card.tsxruns1,251 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/input.tsxruns768 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/label.tsxruns724 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/menubar.tsxruns8,622 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/navigation-menu.tsxruns5,124 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/popover.tsxruns1,356 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/progress.tsxruns778 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/radio-group.tsxruns1,410 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/resizable.tsxruns1,709 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/scroll-area.tsxruns1,642 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/select.tsxruns5,731 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/separator.tsxruns770 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/sheet.tsxruns4,280 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/skeleton.tsxruns266 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/slider.tsxruns1,037 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/sonner.tsxruns1,461 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/switch.tsxruns1,162 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/table.tsxruns2,859 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/tabs.tsxruns1,877 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/textarea.tsxruns649 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/toggle-group.tsxruns1,739 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/toggle.tsxruns1,486 bytes
  • assets/webartifacts_app/paper-report/src/components/ui/tooltip.tsxruns1,253 bytes
  • assets/webartifacts_app/paper-report/src/fonts/geist-mono.woff2asset31,368 bytes
  • assets/webartifacts_app/paper-report/src/fonts/geist-sans.woff2asset28,396 bytes
  • assets/webartifacts_app/paper-report/src/index.cssasset6,232,660 bytes
  • assets/webartifacts_app/paper-report/src/lib/format.tsruns2,126 bytes
  • assets/webartifacts_app/paper-report/src/lib/i18n.tsruns38,823 bytes
  • assets/webartifacts_app/paper-report/src/lib/mock-data.tsruns66,183 bytes
  • assets/webartifacts_app/paper-report/src/lib/normalize.tsruns7,749 bytes
  • assets/webartifacts_app/paper-report/src/lib/prisma-titles.tsruns3,157 bytes
  • assets/webartifacts_app/paper-report/src/lib/safari-detect.tsruns1,580 bytes
  • assets/webartifacts_app/paper-report/src/lib/types.tsruns8,162 bytes
  • assets/webartifacts_app/paper-report/src/lib/utils.tsruns166 bytes
  • assets/webartifacts_app/paper-report/src/main.tsxruns1,152 bytes
  • assets/webartifacts_app/paper-report/tailwind.config.jsruns2,157 bytes
  • assets/webartifacts_app/paper-report/tsconfig.app.jsonasset1,052 bytes
  • assets/webartifacts_app/paper-report/tsconfig.jsonasset248 bytes
  • assets/webartifacts_app/paper-report/tsconfig.node.jsonasset591 bytes
  • assets/webartifacts_app/paper-report/vite.config.tsruns244 bytes
  • docs/index.htmlasset7,198,281 bytes
  • docs/screenshots/audit-zh.pngasset253,247 bytes
  • docs/screenshots/audit.pngasset248,744 bytes
  • docs/screenshots/discovery-report-zh.pngasset345,311 bytes
  • docs/screenshots/discovery-report.pngasset328,736 bytes
  • docs/screenshots/findings-zh.pngasset411,870 bytes
  • docs/screenshots/findings.pngasset405,393 bytes
  • docs/screenshots/methods-2-zh.pngasset192,675 bytes
  • docs/screenshots/methods-2.pngasset181,295 bytes
  • docs/screenshots/methods-3-zh.pngasset215,661 bytes
  • docs/screenshots/methods-3.pngasset196,501 bytes
  • docs/screenshots/methods-zh.pngasset251,702 bytes
  • docs/screenshots/methods.pngasset244,871 bytes
  • evals/evals.jsonasset1,624 bytes
  • pytest.iniasset137 bytes
  • references/agent_mode.mddoc49,115 bytes
  • references/arxiv_helper_cheatsheet.mddoc7,302 bytes
  • references/citation_chasing.mddoc5,239 bytes
  • references/classifier_subagent_prompt.mddoc5,134 bytes
  • references/crossref_helper_cheatsheet.mddoc6,680 bytes
  • references/error_handling.mddoc9,391 bytes
  • references/journal_metrics.mddoc14,022 bytes
  • references/openalex_helper_cheatsheet.mddoc9,128 bytes
  • references/openreview_helper_cheatsheet.mddoc7,576 bytes
  • references/output_files.mddoc8,393 bytes
  • references/prisma_s_checklist.mddoc8,422 bytes
  • references/pubmed_helper_cheatsheet.mddoc7,098 bytes
  • references/query_planner.mddoc14,264 bytes
  • references/rcs_rubric.mddoc6,936 bytes
  • references/report_title.mddoc8,613 bytes
  • references/runtime_bootstrap.mddoc4,918 bytes
  • references/search_export/chinese_methodology.mddoc17,322 bytes
  • references/search_export/filters_library.mddoc7,341 bytes
  • references/search_export/methodology.mddoc23,938 bytes
  • references/search_export/press_checklist.mddoc6,879 bytes
  • references/search_export/proximity_table.jsonasset7,146 bytes
  • references/search_export/syntax_cards/acm_dl.mddoc5,542 bytes
  • references/search_export/syntax_cards/cab_cabi.mddoc11,419 bytes
  • references/search_export/syntax_cards/cinahl_ebsco.mddoc9,007 bytes
  • references/search_export/syntax_cards/clinicaltrials_gov.mddoc12,296 bytes
  • references/search_export/syntax_cards/cnki.mddoc11,987 bytes
  • references/search_export/syntax_cards/cochrane_central.mddoc7,802 bytes
  • references/search_export/syntax_cards/econlit_ebsco.mddoc10,037 bytes
  • references/search_export/syntax_cards/embase_com.mddoc6,475 bytes
  • references/search_export/syntax_cards/embase_ovid.mddoc7,444 bytes
  • references/search_export/syntax_cards/eric.mddoc6,252 bytes
  • references/search_export/syntax_cards/ieee_xplore.mddoc6,120 bytes
  • references/search_export/syntax_cards/psycinfo_ebsco.mddoc6,640 bytes
  • references/search_export/syntax_cards/psycinfo_ovid.mddoc5,816 bytes
  • references/search_export/syntax_cards/pubmed.mddoc6,073 bytes
  • references/search_export/syntax_cards/scifinder.mddoc7,719 bytes
  • references/search_export/syntax_cards/scopus.mddoc6,589 bytes
  • references/search_export/syntax_cards/sinomed.mddoc12,128 bytes
  • references/search_export/syntax_cards/wanfang.mddoc6,312 bytes
  • references/search_export/syntax_cards/wos.mddoc6,630 bytes
  • references/setup.mddoc11,568 bytes
  • references/source_routing.mddoc28,961 bytes
  • references/ss_helper_cheatsheet.mddoc8,360 bytes
  • references/stop_decision.mddoc6,871 bytes
  • references/summary_writer.mddoc5,668 bytes
  • references/tier_decision.mddoc5,286 bytes
  • scripts/__init__.pyruns39 bytes
  • scripts/agent_search.pyruns121,643 bytes
  • scripts/arxiv_helper.pyruns16,590 bytes
  • scripts/config.pyruns3,119 bytes
  • scripts/crossref_helper.pyruns22,506 bytes
  • scripts/data_materialization.pyruns36,875 bytes
  • scripts/detect_language.pyruns2,588 bytes
  • scripts/discovery_curve.pyruns21,211 bytes
  • scripts/federated_kg_resolver.pyruns30,009 bytes
  • scripts/generate_exports.pyruns13,876 bytes
  • scripts/html_renderer_webartifacts.pyruns18,311 bytes
  • scripts/journal_rank.pyruns37,914 bytes
  • scripts/md_report.pyruns14,310 bytes
  • scripts/nssd_helper.pyruns26,625 bytes
  • scripts/openalex_guard.pyruns7,304 bytes
  • scripts/openalex_helper.pyruns60,910 bytes
  • scripts/openreview_helper.pyruns22,243 bytes
  • scripts/prisma_s_logger.pyruns26,249 bytes
  • scripts/pubmed_helper.pyruns15,208 bytes
  • scripts/quota_guard.pyruns11,411 bytes
  • scripts/rank_filter.pyruns19,641 bytes
  • scripts/rank_intent.pyruns26,997 bytes
  • scripts/rcs_parser.pyruns13,665 bytes
  • scripts/report_identity.pyruns4,788 bytes
  • scripts/requirements.lockasset1,482 bytes
  • scripts/requirements.txtdoc1,017 bytes
  • scripts/search_export/__init__.pyruns937 bytes
  • scripts/search_export/deeplink.pyruns17,085 bytes
  • scripts/search_export/generate.pyruns75,326 bytes
  • scripts/search_export/linter.pyruns39,378 bytes
  • scripts/search_export/proximity.pyruns12,302 bytes
  • scripts/search_export/vocab_verify.pyruns18,834 bytes
  • scripts/semantic_cache.pyruns5,544 bytes
  • scripts/sjr_helper.pyruns23,657 bytes
  • scripts/source_fallback.pyruns10,828 bytes
  • scripts/ss_helper.pyruns46,683 bytes
  • scripts/types.pyruns18,871 bytes
  • scripts/vendored/LICENSE-paperqa.txtdoc11,358 bytes
  • scripts/vendored/README-vendored.mddoc8,687 bytes
  • scripts/vendored/__init__.pyruns86 bytes
  • scripts/vendored/tenacity_retry.pyruns9,192 bytes
  • scripts/yiigle_helper.pyruns15,648 bytes
  • tests/__init__.pyruns0 bytes
  • tests/fixtures/openreview_challenge_403.jsonasset534 bytes
  • tests/fixtures/openreview_search_page1.jsonasset31,473 bytes
  • tests/fixtures/openreview_search_page2.jsonasset9,722 bytes
  • tests/test_agent_rank.pyruns17,951 bytes
  • tests/test_agent_search.pyruns56,198 bytes
  • tests/test_arxiv_helper.pyruns10,286 bytes
  • tests/test_arxiv_recent.pyruns3,520 bytes
  • tests/test_coverage_report.pyruns5,252 bytes
  • tests/test_crossref_helper.pyruns17,737 bytes
  • tests/test_data_materialization_rank.pyruns9,945 bytes
  • tests/test_detect_language.pyruns2,370 bytes
  • tests/test_discovery_curve.pyruns11,246 bytes
  • tests/test_enrich_kg.pyruns21,628 bytes
  • tests/test_federated_kg_resolver.pyruns27,343 bytes
  • tests/test_html_renderer_webartifacts.pyruns2,173 bytes
  • tests/test_journal_rank.pyruns22,047 bytes
  • tests/test_modules_smoke.pyruns2,396 bytes
  • tests/test_nssd_helper.pyruns28,982 bytes
  • tests/test_openalex_fallback.pyruns30,608 bytes
  • tests/test_openalex_helper.pyruns27,700 bytes
  • tests/test_openreview_helper.pyruns33,189 bytes
  • tests/test_openreview_merge.pyruns2,620 bytes
  • tests/test_pool_count.pyruns3,824 bytes
  • tests/test_prisma_s_logger.pyruns2,258 bytes
  • tests/test_pubmed_helper.pyruns11,675 bytes
  • tests/test_query_warning.pyruns3,409 bytes
  • tests/test_quota_guard.pyruns10,601 bytes
  • tests/test_rank_filter.pyruns17,327 bytes
  • tests/test_rank_intent.pyruns27,182 bytes
  • tests/test_rcs_parser.pyruns6,733 bytes
  • tests/test_recency_legs.pyruns12,115 bytes
  • tests/test_report_identity.pyruns7,838 bytes
  • tests/test_search_export_deeplink.pyruns10,675 bytes
  • tests/test_search_export_generate.pyruns70,404 bytes
  • tests/test_search_export_linter.pyruns18,422 bytes
  • tests/test_search_export_proximity.pyruns7,036 bytes
  • tests/test_search_export_vocab_verify.pyruns11,143 bytes
  • tests/test_sjr_helper.pyruns29,413 bytes
  • tests/test_ss_helper.pyruns33,783 bytes
  • tests/test_stable_ids.pyruns1,625 bytes
  • tests/test_year_and_query_edges.pyruns10,534 bytes
  • tests/test_year_bounds.pyruns7,601 bytes
  • tests/test_yiigle_helper.pyruns15,181 bytes
Read SKILL.md

# paper-search-pro

Multi-source literature search with adjustable depth. Four tiers, five data sources orchestrated by you (the main agent). Python helpers handle deterministic work; LLM classification is delegated to parallel Inline SubAgents — no external API key required.

## When to use this skill

- User wants to find academic papers / 找文献 / 论文搜索
- User is preparing a literature review, systematic review (SR), scoping review, or meta-analysis
- User wants to scope research on a topic for a thesis / proposal / coursework / news story
- User asks "what research exists on X" / "find me papers about Y"
- User uploads a query that suggests literature gathering (PICO, SPIDER, MeSH, RCT, etc.)

## When NOT to use
View the complete source on GitHub

Skills included

  • paper-search-pro

Repository facts

License
Apache-2.0
Created
May 24, 2026
Last pushed
Nov 3, 2026
Forks
16
Open issues
0
Project activity
Active

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 4, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 207 notes
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 1,149 signals by file

.gitignore

  • Access to secretsline 44
    [Credential-related source omitted]
  • Access to secretsline 46
    [Credential-related source omitted]

LICENSE.txt

  • Network accessline 2
    Apache License                            Version 2.0, January 2004                         http://www.apache.org/licenses/
  • Network accessline 4
    http://www.apache.org/licenses/
  • Network accessline 196
    http://www.apache.org/licenses/LICENSE-2.0

NOTICE.md

  • Network accessline 11
    <http://www.apache.org/licenses/LICENSE-2.0>
  • Network accessline 35
    |---|---| | **Project** | paper-qa (also known as PaperQA / PaperQA2) | | **Repository** | <https://github.com/Future-House/paper-qa> |
  • Network accessline 36
    | **Project** | paper-qa (also known as PaperQA / PaperQA2) | | **Repository** | <https://github.com/Future-House/paper-qa> | | **License** | Apache License 2.0 |
  • Network accessline 37
    | **Repository** | <https://github.com/Future-House/paper-qa> |

README.md

  • Network accessline 21
    <a href="LICENSE.txt"><img src="https://img.shields.io/badge/license-Apache_2.0-000?style=flat-square" alt="Apache 2.0"/></a>
  • Network accessline 22
    <a href="SKILL.md"><img src="https://img.shields.io/badge/agent-Skill-000?style=flat-square" alt="Agent Skill"/></a>
  • Network accessline 23
    <img src="https://img.shields.io/badge/Python-3.10+-000?style=flat-square" alt="Python 3.10+"/>
  • Network accessline 24
    <img src="https://img.shields.io/badge/version-2.5.0-000?style=flat-square" alt="v2.5.0"/>
  • Network accessline 34
    **[→ Live demo (opens the actual report in your browser)](https://o0000-code.github.io/paper-search-pro/)**
  • Network accessline 83
    git clone https://github.com/O0000-code/paper-search-pro.git \
  • Network accessline 169
    | Layer | Source | Role | Cost | Apply at | |:---:|:---|:---|:---:|:---| | **L1** | OpenAlex | primary — always on | free | <https://openalex.org/settings/api> |
  • Network accessline 170
    |:---:|:---|:---|:---:|:---| | **L1** | OpenAlex | primary — always on | free | <https://openalex.org/settings/api> | | **L2** | PubMed | medical · MeSH enricher | free | <https://account.ncbi.nlm.nih.gov/settings/> |
  • Network accessline 171
    | **L1** | OpenAlex | primary — always on | free | <https://openalex.org/settings/api> |
  • Network accessline 172
    | **L2** | PubMed | medical · MeSH enricher | free | <https://account.ncbi.nlm.nih.gov/settings/> |
  • Network accessline 173
    | **L2** | arXiv | preprint freshness (T‑0\~T‑4) · AI topics (T‑0\~T‑365) | free | *(no signup — SDK enforces 1 req / 3 s)* | | **L3** | Semantic Scholar | influentialCitationCount + abstract fallback | free | <https://www.semanticscholar.o
  • Network accessline 174
    | **L3** | Semantic Scholar | influentialCitationCount + abstract fallback | free | <https://www.semanticscholar.org/product/api> |
  • Access to secretsline 180
    [Credential-related source omitted]
  • Access to secretsline 182
    [Credential-related source omitted]
  • Network accessline 237
    I maintain paper-search-pro mostly on my own, with help from two lovely contributors, [@haoxinC111](https://github.com/haoxinC111) and [@MatrixA](https://github.com/MatrixA). You're welcome to be the third. If it has helped you, your star m

README.zh.md

  • Network accessline 21
    <a href="LICENSE.txt"><img src="https://img.shields.io/badge/license-Apache_2.0-000?style=flat-square" alt="Apache 2.0"/></a>
  • Network accessline 22
    <a href="SKILL.md"><img src="https://img.shields.io/badge/agent-Skill-000?style=flat-square" alt="Agent Skill"/></a>
  • Network accessline 23
    <img src="https://img.shields.io/badge/Python-3.10+-000?style=flat-square" alt="Python 3.10+"/>
  • Network accessline 24
    <img src="https://img.shields.io/badge/version-2.5.0-000?style=flat-square" alt="v2.5.0"/>
  • Network accessline 34
    **[→ 在线 Demo(浏览器直接打开真实报告)](https://o0000-code.github.io/paper-search-pro/)**
  • Network accessline 83
    git clone https://github.com/O0000-code/paper-search-pro.git \
  • Network accessline 169
    | 层 | 数据源 | 角色 | 成本 | 申请地址 | |:---:|:---|:---|:---:|:---| | **L1** | OpenAlex | 主源 — 始终启用 | free | <https://openalex.org/settings/api> |
  • Network accessline 170
    |:---:|:---|:---|:---:|:---| | **L1** | OpenAlex | 主源 — 始终启用 | free | <https://openalex.org/settings/api> | | **L2** | PubMed | 医学 · MeSH 富化 | free | <https://account.ncbi.nlm.nih.gov/settings/> |
  • Network accessline 171
    | **L1** | OpenAlex | 主源 — 始终启用 | free | <https://openalex.org/settings/api> |
  • Network accessline 172
    | **L2** | PubMed | 医学 · MeSH 富化 | free | <https://account.ncbi.nlm.nih.gov/settings/> |
  • Network accessline 173
    | **L2** | arXiv | preprint freshness (T‑0\~T‑4) · AI 主题 (T‑0\~T‑365) | free | *(无需注册 — SDK 自带 1 req / 3 s 限速)* | | **L3** | Semantic Scholar | influentialCitationCount + 摘要回退 | free | <https://www.semanticscholar.org/product/api> | | **L3*
  • Network accessline 174
    | **L3** | Semantic Scholar | influentialCitationCount + 摘要回退 | free | <https://www.semanticscholar.org/product/api> |
  • Access to secretsline 180
    [Credential-related source omitted]
  • Access to secretsline 182
    [Credential-related source omitted]
  • Network accessline 237
    本项目主要由我一个人维护,还有两位可爱的贡献者 [@haoxinC111](https://github.com/haoxinC111) 和 [@MatrixA](https://github.com/MatrixA) 帮过忙,欢迎你成为第三位。如果它帮到了你,你的 Star 对我来说是很大的动力,我会继续把它更新下去。

SKILL.md

  • Broad permissionsline 1
    Bash, Read, Write, Edit, Glob, Grep, Task
  • Access to secretsline 132
    [Credential-related source omitted]
  • Access to secretsline 133
    [Credential-related source omitted]

THIRD_PARTY.md

  • Network accessline 17
    | Package | License | Homepage | |---|:---:|---| | **shadcn/ui** — 41 component files under `src/components/ui/*.tsx` are derived from shadcn/ui's copy-paste catalog | MIT | <https://ui.shadcn.com/> |
  • Network accessline 18
    |---|:---:|---| | **shadcn/ui** — 41 component files under `src/components/ui/*.tsx` are derived from shadcn/ui's copy-paste catalog | MIT | <https://ui.shadcn.com/> | | **Radix UI** — 27 `@radix-ui/react-*` unstyled accessible primitives |
  • Network accessline 19
    | **shadcn/ui** — 41 component files under `src/components/ui/*.tsx` are derived from shadcn/ui's copy-paste catalog | MIT | <https://ui.shadcn.com/> |
  • Network accessline 20
    | **Radix UI** — 27 `@radix-ui/react-*` unstyled accessible primitives | MIT | <https://www.radix-ui.com/> |
  • Network accessline 21
    | **Lucide** — icon set used throughout the report | ISC | <https://lucide.dev/> |
  • Network accessline 22
    | **Sonner** — toast notification primitive | MIT | <https://sonner.emilkowal.ski/> |
  • Network accessline 23
    | **Vaul** — drawer primitive | MIT | <https://vaul.emilkowal.ski/> |
  • Network accessline 24
    | **cmdk** — command-menu primitive | MIT | <https://cmdk.paco.me/> |
  • Network accessline 25
    | **Embla Carousel** — carousel primitive | MIT | <https://www.embla-carousel.com/> |
  • Network accessline 26
    | **React Day Picker** — calendar primitive | MIT | <https://react-day-picker.js.org/> |
  • Network accessline 27
    | **React Resizable Panels** — resizable-layout primitive | MIT | <https://github.com/bvaughn/react-resizable-panels> |
  • Network accessline 31
    | Package | License | Homepage | |---|:---:|---| | **Recharts** — composable chart library powering the Methods tab | MIT | <https://recharts.org/> |
  • Network accessline 33
    | **Recharts** — composable chart library powering the Methods tab | MIT | <https://recharts.org/> |
  • Network accessline 37
    | Package | License | Homepage | |---|:---:|---| | **React Hook Form** | MIT | <https://react-hook-form.com/> |
  • Network accessline 38
    |---|:---:|---| | **React Hook Form** | MIT | <https://react-hook-form.com/> | | **@hookform/resolvers** | MIT | <https://github.com/react-hook-form/resolvers> |
  • Network accessline 39
    | **React Hook Form** | MIT | <https://react-hook-form.com/> |
  • Network accessline 40
    | **@hookform/resolvers** | MIT | <https://github.com/react-hook-form/resolvers> |
  • Network accessline 41
    | **Zod** — schema validation | MIT | <https://zod.dev/> |
  • Network accessline 45
    | Package | License | Homepage | |---|:---:|---| | **Tailwind CSS** | MIT | <https://tailwindcss.com/> |
  • Network accessline 46
    |---|:---:|---| | **Tailwind CSS** | MIT | <https://tailwindcss.com/> | | **tailwindcss-animate** | MIT | <https://github.com/jamiebuilds/tailwindcss-animate> |
  • Network accessline 47
    | **Tailwind CSS** | MIT | <https://tailwindcss.com/> |
  • Network accessline 48
    | **tailwindcss-animate** | MIT | <https://github.com/jamiebuilds/tailwindcss-animate> |
  • Network accessline 49
    | **class-variance-authority** | Apache 2.0 | <https://cva.style/> |
  • Network accessline 50
    | **clsx** | MIT | <https://github.com/lukeed/clsx> |
  • Network accessline 51
    | **tailwind-merge** | MIT | <https://github.com/dcastil/tailwind-merge> |
  • Network accessline 55
    | Font | License | Homepage | |---|:---:|---| | **Geist Variable** — Vercel's geometric sans (Latin) | SIL OFL 1.1 | <https://github.com/vercel/geist-font> |
  • Network accessline 56
    |---|:---:|---| | **Geist Variable** — Vercel's geometric sans (Latin) | SIL OFL 1.1 | <https://github.com/vercel/geist-font> | | **Geist Mono Variable** — Vercel's mono | SIL OFL 1.1 | <https://github.com/vercel/geist-font> |
  • Network accessline 57
    | **Geist Variable** — Vercel's geometric sans (Latin) | SIL OFL 1.1 | <https://github.com/vercel/geist-font> |
  • Network accessline 58
    | **Geist Mono Variable** — Vercel's mono | SIL OFL 1.1 | <https://github.com/vercel/geist-font> |
  • Network accessline 59
    | **Noto Sans SC Variable** — Google's pan-Chinese sans (CJK) | SIL OFL 1.1 | <https://fonts.google.com/noto/specimen/Noto+Sans+SC> |
  • Network accessline 63
    | Package | License | Homepage | |---|:---:|---| | **React** + **React DOM** | MIT | <https://react.dev/> |
  • Network accessline 64
    |---|:---:|---| | **React** + **React DOM** | MIT | <https://react.dev/> | | **Vite** — bundler | MIT | <https://vitejs.dev/> |
  • Network accessline 65
    | **React** + **React DOM** | MIT | <https://react.dev/> |
  • Network accessline 66
    | **Vite** — bundler | MIT | <https://vitejs.dev/> |
  • Network accessline 67
    | **TypeScript** | Apache 2.0 | <https://www.typescriptlang.org/> |
  • Network accessline 68
    | **next-themes** | MIT | <https://github.com/pacocoursey/next-themes> |
  • Network accessline 69
    | **date-fns** | MIT | <https://date-fns.org/> |
  • Network accessline 70
    | **html-inline** — single-file HTML compile step | MIT | <https://github.com/popcorn/html-inline> |
  • Network accessline 71
    | **PostCSS** + **autoprefixer** | MIT | <https://postcss.org/> |
  • Network accessline 79
    | Package | License | Homepage | |---|:---:|---| | **pyalex** — OpenAlex client | MIT | <https://github.com/J535D165/pyalex> |
  • Network accessline 80
    |---|:---:|---| | **pyalex** — OpenAlex client | MIT | <https://github.com/J535D165/pyalex> | | **semanticscholar** — Semantic Scholar client | MIT | <https://github.com/danielnsilva/semanticscholar> |
  • Network accessline 81
    | **pyalex** — OpenAlex client | MIT | <https://github.com/J535D165/pyalex> |
  • Network accessline 82
    | **semanticscholar** — Semantic Scholar client | MIT | <https://github.com/danielnsilva/semanticscholar> |
  • Network accessline 83
    | **biopython** — PubMed via NCBI Entrez | Biopython License (BSD-like) | <https://biopython.org/> | | **arxiv** — arXiv API client | MIT | <https://github.com/lukasschwab/arxiv.py> | | **requests** — HTTP client | Apache 2.0 | <https://req
  • Network accessline 84
    | **arxiv** — arXiv API client | MIT | <https://github.com/lukasschwab/arxiv.py> | | **requests** — HTTP client | Apache 2.0 | <https://requests.readthedocs.io/> | | **PyYAML** — YAML loader | MIT | <https://pyyaml.org/> |
  • Network accessline 85
    | **requests** — HTTP client | Apache 2.0 | <https://requests.readthedocs.io/> |
  • Network accessline 86
    | **PyYAML** — YAML loader | MIT | <https://pyyaml.org/> |
  • Network accessline 87
    | **Jinja2** — template engine | BSD-3-Clause | <https://palletsprojects.com/p/jinja/> |

assets/benchmark_queries/litsearch_subset.json

  • Network accessline 1
    {   "name": "LitSearch-style subset (CS/NLP, 12 queries)",   "source_note": "These 12 queries are written in LitSearch (EMNLP 2024) style — natural-language research questions in CS/NLP with citation-graph gold standards. For the OFFICIAL L
  • Network accessline 2
    "name": "LitSearch-style subset (CS/NLP, 12 queries)",   "source_note": "These 12 queries are written in LitSearch (EMNLP 2024) style — natural-language research questions in CS/NLP with citation-graph gold standards. For the OFFICIAL LitSe
  • Network accessline 3
    "source_note": "These 12 queries are written in LitSearch (EMNLP 2024) style — natural-language research questions in CS/NLP with citation-graph gold standards. For the OFFICIAL LitSearch v1 dataset (597 queries), download from https://gith

assets/benchmark_queries/sparbench_subset.json

  • Network accessline 1
    {   "name": "SPARBench-style subset (stub, 5 queries)",   "source_note": "SPARBench (Specialized PAper Retrieval Benchmark, arXiv:2507.15245) is a 2024 benchmark for academic paper retrieval. The OFFICIAL dataset (200+ queries with expert-v
  • Network accessline 2
    "name": "SPARBench-style subset (stub, 5 queries)",   "source_note": "SPARBench (Specialized PAper Retrieval Benchmark, arXiv:2507.15245) is a 2024 benchmark for academic paper retrieval. The OFFICIAL dataset (200+ queries with expert-valid
  • Network accessline 3
    "source_note": "SPARBench (Specialized PAper Retrieval Benchmark, arXiv:2507.15245) is a 2024 benchmark for academic paper retrieval. The OFFICIAL dataset (200+ queries with expert-validated gold standards) must be downloaded separately fro
  • Network accessline 64
    }   ],   "todo_for_user": "Replace this stub with the official SPARBench v1 dataset when fetched from https://arxiv.org/abs/2507.15245. The benchmark runner (scripts/run_benchmark.py) accepts this same schema so no code change is needed — j
  • Network accessline 65
    ],   "todo_for_user": "Replace this stub with the official SPARBench v1 dataset when fetched from https://arxiv.org/abs/2507.15245. The benchmark runner (scripts/run_benchmark.py) accepts this same schema so no code change is needed — just 
  • Network accessline 66
    "todo_for_user": "Replace this stub with the official SPARBench v1 dataset when fetched from https://arxiv.org/abs/2507.15245. The benchmark runner (scripts/run_benchmark.py) accepts this same schema so no code change is needed — just swap 

assets/default_config.yaml

  • Network accessline 15
    # --- OpenAlex (L1 primary source) --- # OpenAlex 2026-02 switched from mailto polite pool to API key model. # Apply at: https://openalex.org/keys  (free, $1/day quota)
  • Network accessline 16
    # OpenAlex 2026-02 switched from mailto polite pool to API key model. # Apply at: https://openalex.org/keys  (free, $1/day quota) # Either openalex_email OR openalex_api_key — having both is fine.
  • Network accessline 17
    # Apply at: https://openalex.org/keys  (free, $1/day quota)
  • Access to secretsline 18
    [Credential-related source omitted]
  • Access to secretsline 20
    [Credential-related source omitted]
  • Network accessline 22
    # --- Semantic Scholar (L3 enrichment: influentialCitationCount + abstract fallback) --- # Apply at: https://www.semanticscholar.org/product/api  (free)
  • Network accessline 23
    # Apply at: https://www.semanticscholar.org/product/api  (free)
  • Access to secretsline 25
    [Credential-related source omitted]
  • Network accessline 27
    # --- PubMed / NCBI (L2 booster: MeSH enricher) --- # Apply at: https://account.ncbi.nlm.nih.gov/settings/  ->  API Key Management
  • Network accessline 28
    # Apply at: https://account.ncbi.nlm.nih.gov/settings/  ->  API Key Management
  • Access to secretsline 31
    [Credential-related source omitted]
  • Access to secretsline 78
    [Credential-related source omitted]
  • Network accessline 109
    # HTTP works (no Cloudflare). Leave unset to use the built-in defaults.   sources:     cas: "https://raw.githubusercontent.com/hitfyd/ShowJCR/master/%E4%B8%AD%E7%A7%91%E9%99%A2%E5%88%86%E5%8C%BA%E8%A1%A8%E5%8F%8AJCR%E5%8E%9F%E5%A7%8B%E6%95%
  • Network accessline 110
    sources:     cas: "https://raw.githubusercontent.com/hitfyd/ShowJCR/master/%E4%B8%AD%E7%A7%91%E9%99%A2%E5%88%86%E5%8C%BA%E8%A1%A8%E5%8F%8AJCR%E5%8E%9F%E5%A7%8B%E6%95%B0%E6%8D%AE%E6%96%87%E4%BB%B6/FQBJCR2025-UTF8.csv"     jcr: "https://raw.g
  • Network accessline 111
    cas: "https://raw.githubusercontent.com/hitfyd/ShowJCR/master/%E4%B8%AD%E7%A7%91%E9%99%A2%E5%88%86%E5%8C%BA%E8%A1%A8%E5%8F%8AJCR%E5%8E%9F%E5%A7%8B%E6%95%B0%E6%8D%AE%E6%96%87%E4%BB%B6/FQBJCR2025-UTF8.csv"
  • Network accessline 112
    jcr: "https://raw.githubusercontent.com/hitfyd/ShowJCR/master/%E4%B8%AD%E7%A7%91%E9%99%A2%E5%88%86%E5%8C%BA%E8%A1%A8%E5%8F%8AJCR%E5%8E%9F%E5%A7%8B%E6%95%B0%E6%8D%AE%E6%96%87%E4%BB%B6/JCR2024-UTF8.csv"
  • Network accessline 113
    sjr: "https://raw.githubusercontent.com/saramabrouk173/zotero-sjr-ranker/main/scimagojr%202024.csv"

assets/webartifacts_app/paper-report/README.md

  • Network accessline 7
    - [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Oxc](https://oxc.rs)
  • Network accessline 8
    - [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/)
  • Network accessline 12
    The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation).
  • Network accessline 46
    You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plu

assets/webartifacts_app/paper-report/bundle.html

  • Network accessline 5
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />     <title>Paper Search Pro — Discovery Report</title>     <script type="module" crossorigin>var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescrip
  • Network accessline 6
    <title>Paper Search Pro — Discovery Report</title>     <script type="module" crossorigin>var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.h
  • Network accessline 7
    <script type="module" crossorigin>var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).expo
  • Network accessline 15
    `).replace(Fd,``)}function Ld(e,t){return t=Id(t),Id(e)===t}function Rd(e,t,n,r,a,o){switch(n){case`children`:typeof r==`string`?t===`body`||t===`textarea`&&r===``||Ut(e,r):(typeof r==`number`||typeof r==`bigint`)&&t!==`body`&&Ut(e,``+r);br
  • Network accessline 16
    AND ("Cognitive Training"[mh] OR "working memory training"[tiab] OR "working-memory training"[tiab] OR "working memory intervention"[tiab] OR "n-back training"[tiab] OR Cogmed[tiab] OR "memory training"[tiab] OR "cognitive training"[tiab] O
  • Network accessline 17
    ("Cognitive Training"[mh] OR "working memory training"[tiab] OR "working-memory training"[tiab] OR "working memory intervention"[tiab] OR "n-back training"[tiab] OR Cogmed[tiab] OR "memory training"[tiab] OR "cognitive training"[tiab] OR "b
  • Network accessline 18
    ("older adult*" OR "older people" OR "older person*" OR elderly OR senior* OR "late life")   AND ("working memory training" OR "working-memory training" OR "working memory intervention" OR "n-back training" OR Cogmed OR "memory training" OR
  • Network accessline 19
    AND ("working memory training" OR "working-memory training" OR "working memory intervention" OR "n-back training" OR Cogmed OR "memory training" OR "cognitive training" OR "brain training") )`,strategy_lines:[`#1 TS=("older adult*" OR "olde
  • Network accessline 20
    )`,strategy_lines:[`#1 TS=("older adult*" OR "older people" OR "older person*" OR elderly OR senior* OR "late life")`,`#2 TS=("working memory training" OR "working-memory training" OR "working memory intervention" OR "n-back training" OR Co
  • Network accessline 21
    ("older adult*" OR "older people" OR "older person*" OR elderly OR senior* OR "late life")   AND ("working memory training" OR "working-memory training" OR "working memory intervention" OR "n-back training" OR Cogmed OR "memory training" OR
  • Network accessline 22
    AND ("working memory training" OR "working-memory training" OR "working memory intervention" OR "n-back training" OR Cogmed OR "memory training" OR "cognitive training" OR "brain training") )`,strategy_lines:[`#1 TITLE-ABS-KEY("older adult*
  • Network accessline 23
    )`,strategy_lines:[`#1 TITLE-ABS-KEY("older adult*" OR "older people" OR "older person*" OR elderly OR senior* OR "late life")`,`#2 TITLE-ABS-KEY("working memory training" OR "working-memory training" OR "working memory intervention" OR "n-
  • Network accessline 24
    AND ("working memory training":ti,ab OR "working-memory training":ti,ab OR "working memory intervention":ti,ab OR "n-back training":ti,ab OR Cogmed:ti,ab OR "memory training":ti,ab OR "cognitive training":ti,ab OR "brain training":ti,ab)`,s
  • Network accessline 25
    ("working memory training":ti,ab OR "working-memory training":ti,ab OR "working memory intervention":ti,ab OR "n-back training":ti,ab OR Cogmed:ti,ab OR "memory training":ti,ab OR "cognitive training":ti,ab OR "brain training":ti,ab)`,strat
  • Network accessline 26
    AND (SU %= '工作记忆训练' OR SU %= '工作记忆干预' OR SU %= '记忆训练' OR SU %= '认知训练' OR SU %= 'n-back训练')`,strategy_lines:null,deep_link:{platform:`cnki`,tier:`C`,url_kind:`paste_only`,url:null,url_template:null,verified_http:null,verified_date:null,patte
  • Network accessline 70
    For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return v.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},_u=`DialogDescriptionWarning`,vu=({contentRef:e,descriptionId:t
  • Network accessline 105
    A${a},${a},0,0,${+(u<0)},${E.x},${E.y}       A${r},${r},0,${+(k>180)},${+(u>0)},${S.x},${S.y}       A${a},${a},0,0,${+(u<0)},${C.x},${C.y}Z`}else b+=`L${t},${n}Z`;return b},qk={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,c
  • Network accessline 106
    A${r},${r},0,${+(k>180)},${+(u>0)},${S.x},${S.y}       A${a},${a},0,0,${+(u<0)},${C.x},${C.y}Z`}else b+=`L${t},${n}Z`;return b},qk={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsEx
  • Network accessline 107
    [Credential-related source omitted]

assets/webartifacts_app/paper-report/components.json

  • Network accessline 1
    {   "$schema": "https://ui.shadcn.com/schema.json",
  • Network accessline 2
    "$schema": "https://ui.shadcn.com/schema.json",

assets/webartifacts_app/paper-report/eslint.config.js

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/package.json

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/postcss.config.js

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/public/favicon.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="48" height="46" fill="none" viewBox="0 0 48 46"><path fill="#863bff" d="M25.946 44.938c-.664.845-2.021.375-2.021-.698V33.937a2.26 2.26 0 0 0-2.262-2.262H10.287c-.92 0-1.456-1.04-.92-1.788l7.48-

assets/webartifacts_app/paper-report/public/icons.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg">

assets/webartifacts_app/paper-report/src/App.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/assets/react.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="35.93" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 228"><path fill="

assets/webartifacts_app/paper-report/src/assets/vite.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="77" height="47" fill="none" aria-labelledby="vite-logo-title" viewBox="0 0 77 47"><title id="vite-logo-title">Vite</title><style>.parenthesis{fill:#000}@media (prefers-color-scheme:dark){.paren

assets/webartifacts_app/paper-report/src/components/adapters/KickerAccordion.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/adapters/KickerAlert.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/adapters/SearchInput.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/adapters/SegmentedToggle.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/adapters/SimpleTooltip.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/audit/AuditTab.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/audit/ComplianceSummary.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/audit/PhaseGroup.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/audit/PrismaRow.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/audit/StatusDot.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/audit/audit-utils.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/chrome/LayoutSwitcher.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/chrome/thumbs/Thumbs.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/extensions/ExtensionsTab.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/hero/FilterBar.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/hero/ReportTitle.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/hero/SliderWithZones.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/hero/TierStrip.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/hero/tops/BrandLink.tsx

  • Executable scriptline 1
    Executable file
  • Network accessline 6
    export const REPO_URL = "https://github.com/O0000-code/paper-search-pro"

assets/webartifacts_app/paper-report/src/components/hero/tops/DocumentTop.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/hero/tops/EditorialTop.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/hero/tops/SwissTop.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/methods/CitationScatter.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/methods/DiscoveryCurve.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/methods/MethodologyAccordion.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/methods/MethodsTab.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/methods/RcsHistogram.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/methods/SearchStrategies.tsx

  • Executable scriptline 1
    Executable file
  • Network accessline 176
    *     leak into a clickable link — fall through;  *  3. the platform's entry page derived from the `host` field ("中国知网 /  *     kns.cnki.net" → https://kns.cnki.net) — same rule as generate.py's
  • Network accessline 177
    *  3. the platform's entry page derived from the `host` field ("中国知网 /  *     kns.cnki.net" → https://kns.cnki.net) — same rule as generate.py's  *     `_host_entry_url`: the page opens, the user pastes.
  • Network accessline 178
    *     kns.cnki.net" → https://kns.cnki.net) — same rule as generate.py's
  • Network accessline 190
    }   const m = /[A-Za-z0-9][A-Za-z0-9.-]*\.[A-Za-z]{2,}/.exec(String(s.host ?? ""))   return m ? `https://${m[0]}` : null
  • Network accessline 191
    const m = /[A-Za-z0-9][A-Za-z0-9.-]*\.[A-Za-z]{2,}/.exec(String(s.host ?? ""))   return m ? `https://${m[0]}` : null }
  • Network accessline 192
    return m ? `https://${m[0]}` : null

assets/webartifacts_app/paper-report/src/components/methods/SectionHeader.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/methods/Stat.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/methods/TierAllocation.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/methods/TopicsTreemap.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/methods/YearBarChart.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/methods/useInsights.ts

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/papers/JournalRank.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/papers/PaperCardItem.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/papers/PaperList.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/papers/PaperRowCatalog.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/papers/PaperRowIndex.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/papers/PaperRowIndexHeader.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/papers/PaperSheet.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/papers/QuickJump.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/papers/TierDot.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/papers/TierHeader.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/papers/ZoneFilter.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/accordion.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/alert.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/aspect-ratio.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/avatar.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/badge.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/breadcrumb.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/button.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/calendar.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/card.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/carousel.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/chart.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/checkbox.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/collapsible.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/command.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/context-menu.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/dialog.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/drawer.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/dropdown-menu.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/form.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/hover-card.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/input.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/label.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/menubar.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/navigation-menu.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/popover.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/progress.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/radio-group.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/resizable.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/scroll-area.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/select.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/separator.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/sheet.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/skeleton.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/slider.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/sonner.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/switch.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/table.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/tabs.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/textarea.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/toggle-group.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/toggle.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/components/ui/tooltip.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/lib/format.ts

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/lib/i18n.ts

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/lib/mock-data.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 55
    venue: "Science",       doi: "10.1126/science.1230579",       doi_url: "https://doi.org/10.1126/science.1230579",
  • Network accessline 56
    doi: "10.1126/science.1230579",       doi_url: "https://doi.org/10.1126/science.1230579",       abstract:
  • Network accessline 57
    doi_url: "https://doi.org/10.1126/science.1230579",
  • Network accessline 81
    venue: "Developmental Psychology",       doi: "10.1037/a0028228",       doi_url: "https://doi.org/10.1037/a0028228",
  • Network accessline 82
    doi: "10.1037/a0028228",       doi_url: "https://doi.org/10.1037/a0028228",       abstract:
  • Network accessline 83
    doi_url: "https://doi.org/10.1037/a0028228",
  • Network accessline 112
    venue: "PNAS",       doi: "10.1073/pnas.0801268105",       doi_url: "https://doi.org/10.1073/pnas.0801268105",
  • Network accessline 113
    doi: "10.1073/pnas.0801268105",       doi_url: "https://doi.org/10.1073/pnas.0801268105",       abstract:
  • Network accessline 114
    doi_url: "https://doi.org/10.1073/pnas.0801268105",
  • Network accessline 144
    venue: "Psychological Bulletin",       doi: "10.1037/a0029082",       doi_url: "https://doi.org/10.1037/a0029082",
  • Network accessline 145
    doi: "10.1037/a0029082",       doi_url: "https://doi.org/10.1037/a0029082",       abstract:
  • Network accessline 146
    doi_url: "https://doi.org/10.1037/a0029082",
  • Network accessline 175
    venue: "Memory & Cognition",       doi: "10.1037/a0035144",       doi_url: "https://doi.org/10.1037/a0035144",
  • Network accessline 176
    doi: "10.1037/a0035144",       doi_url: "https://doi.org/10.1037/a0035144",       abstract:
  • Network accessline 177
    doi_url: "https://doi.org/10.1037/a0035144",
  • Network accessline 201
    venue: "Trends in Cognitive Sciences",       doi: "10.1016/j.tics.2013.05.009",       doi_url: "https://doi.org/10.1016/j.tics.2013.05.009",
  • Network accessline 202
    doi: "10.1016/j.tics.2013.05.009",       doi_url: "https://doi.org/10.1016/j.tics.2013.05.009",       abstract:
  • Network accessline 203
    doi_url: "https://doi.org/10.1016/j.tics.2013.05.009",
  • Network accessline 233
    venue: "Psychology and Aging",       doi: "10.1037/a0030986",       doi_url: "https://doi.org/10.1037/a0030986",
  • Network accessline 234
    doi: "10.1037/a0030986",       doi_url: "https://doi.org/10.1037/a0030986",       abstract:
  • Network accessline 235
    doi_url: "https://doi.org/10.1037/a0030986",
  • Network accessline 264
    venue: "Perspectives on Psychological Science",       doi: "10.1037/aap0000094",       doi_url: "https://doi.org/10.1037/aap0000094",
  • Network accessline 265
    doi: "10.1037/aap0000094",       doi_url: "https://doi.org/10.1037/aap0000094",       abstract:
  • Network accessline 266
    doi_url: "https://doi.org/10.1037/aap0000094",
  • Network accessline 294
    venue: "Frontiers in Aging Neuroscience",       doi: "10.3389/fnagi.2014.00063",       doi_url: "https://doi.org/10.3389/fnagi.2014.00063",
  • Network accessline 295
    doi: "10.3389/fnagi.2014.00063",       doi_url: "https://doi.org/10.3389/fnagi.2014.00063",       abstract:
  • Network accessline 296
    doi_url: "https://doi.org/10.3389/fnagi.2014.00063",
  • Network accessline 325
    venue: "Nature Reviews Neuroscience",       doi: "10.1038/nrn3884",       doi_url: "https://doi.org/10.1038/nrn3884",
  • Network accessline 326
    doi: "10.1038/nrn3884",       doi_url: "https://doi.org/10.1038/nrn3884",       abstract:
  • Network accessline 327
    doi_url: "https://doi.org/10.1038/nrn3884",
  • Network accessline 351
    venue: "Neuropsychology",       doi: "10.1037/0894-4105.22.5.567",       doi_url: "https://doi.org/10.1037/0894-4105.22.5.567",
  • Network accessline 352
    doi: "10.1037/0894-4105.22.5.567",       doi_url: "https://doi.org/10.1037/0894-4105.22.5.567",       abstract:
  • Network accessline 353
    doi_url: "https://doi.org/10.1037/0894-4105.22.5.567",
  • Network accessline 379
    venue: "Nature",       doi: "10.1038/nature11704",       doi_url: "https://doi.org/10.1038/nature11704",
  • Network accessline 380
    doi: "10.1038/nature11704",       doi_url: "https://doi.org/10.1038/nature11704",       abstract:
  • Network accessline 381
    doi_url: "https://doi.org/10.1038/nature11704",
  • Network accessline 735
    "tier": "A",           "url_kind": "prefill",           "url": "https://pubmed.ncbi.nlm.nih.gov/?term=%28%22Aged%22%5Bmh%5D+OR+%22Aged%2C+80+and+over%22%5Bmh%5D+OR+%22older+adults%22%5Btiab%5D+OR+%22older+people%22%5Btiab%5D+OR+%22older+per
  • Network accessline 736
    "url_kind": "prefill",           "url": "https://pubmed.ncbi.nlm.nih.gov/?term=%28%22Aged%22%5Bmh%5D+OR+%22Aged%2C+80+and+over%22%5Bmh%5D+OR+%22older+adults%22%5Btiab%5D+OR+%22older+people%22%5Btiab%5D+OR+%22older+persons%22%5Btiab%5D+OR+el
  • Network accessline 737
    "url": "https://pubmed.ncbi.nlm.nih.gov/?term=%28%22Aged%22%5Bmh%5D+OR+%22Aged%2C+80+and+over%22%5Bmh%5D+OR+%22older+adults%22%5Btiab%5D+OR+%22older+people%22%5Btiab%5D+OR+%22older+persons%22%5Btiab%5D+OR+elderly%5Btiab%5D+OR+seniors%5Btiab
  • Network accessline 738
    "api_url": "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=%28%22Aged%22%5Bmh%5D+OR+%22Aged%2C+80+and+over%22%5Bmh%5D+OR+%22older+adults%22%5Btiab%5D+OR+%22older+people%22%5Btiab%5D+OR+%22older+persons%22%5Btiab%5
  • Network accessline 795
    "url_kind": "paste_only",           "url": null,           "url_template": "https://www.webofscience.com/wos/woscc/advanced-search",
  • Network accessline 796
    "url": null,           "url_template": "https://www.webofscience.com/wos/woscc/advanced-search",           "verified_http": null,
  • Network accessline 797
    "url_template": "https://www.webofscience.com/wos/woscc/advanced-search",
  • Network accessline 820
    "url_kind": "paste_only",           "url": null,           "url_template": "https://www.scopus.com/search/form.uri?display=advanced",
  • Network accessline 821
    "url": null,           "url_template": "https://www.scopus.com/search/form.uri?display=advanced",           "verified_http": null,
  • Network accessline 822
    "url_template": "https://www.scopus.com/search/form.uri?display=advanced",
  • Network accessline 841
    "url_kind": "paste_only",           "url": null,           "url_template": "https://www.embase.com/#advancedSearch",
  • Network accessline 842
    "url": null,           "url_template": "https://www.embase.com/#advancedSearch",           "verified_http": null,
  • Network accessline 843
    "url_template": "https://www.embase.com/#advancedSearch",
  • Network accessline 893
    "url_kind": "browser",           "url": null,           "url_template": "https://www.cochranelibrary.com/search?q={urlenc}",
  • Network accessline 894
    "url": null,           "url_template": "https://www.cochranelibrary.com/search?q={urlenc}",           "verified_http": null,
  • Network accessline 895
    "url_template": "https://www.cochranelibrary.com/search?q={urlenc}",
  • Network accessline 954
    "url_kind": "paste_only",           "url": null,           "url_template": "https://search.ebscohost.com/login.aspx?authtype=ip&profile=ehost&defaultdb=psyh",
  • Network accessline 955
    "url": null,           "url_template": "https://search.ebscohost.com/login.aspx?authtype=ip&profile=ehost&defaultdb=psyh",           "verified_http": null,
  • Network accessline 956
    "url_template": "https://search.ebscohost.com/login.aspx?authtype=ip&profile=ehost&defaultdb=psyh",
  • Network accessline 1006
    "url_kind": "paste_only",           "url": null,           "url_template": "https://search.ebscohost.com/login.aspx?authtype=ip&profile=ehost&defaultdb=ccm",
  • Network accessline 1007
    "url": null,           "url_template": "https://search.ebscohost.com/login.aspx?authtype=ip&profile=ehost&defaultdb=ccm",           "verified_http": null,
  • Network accessline 1008
    "url_template": "https://search.ebscohost.com/login.aspx?authtype=ip&profile=ehost&defaultdb=ccm",
  • Network accessline 1075
    "url_kind": "browser",           "url": null,           "url_template": "https://s.wanfangdata.com.cn/paper?q={urlenc}",
  • Network accessline 1076
    "url": null,           "url_template": "https://s.wanfangdata.com.cn/paper?q={urlenc}",           "verified_http": null,
  • Network accessline 1077
    "url_template": "https://s.wanfangdata.com.cn/paper?q={urlenc}",

assets/webartifacts_app/paper-report/src/lib/normalize.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 213
    venue: p.venue ?? null,         doi: p.doi ?? null,         doiUrl: p.doi ? `https://doi.org/${p.doi}` : null,
  • Network accessline 214
    doi: p.doi ?? null,         doiUrl: p.doi ? `https://doi.org/${p.doi}` : null,         abstract: p.abstract ?? null,
  • Network accessline 215
    doiUrl: p.doi ? `https://doi.org/${p.doi}` : null,

assets/webartifacts_app/paper-report/src/lib/prisma-titles.ts

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/lib/safari-detect.ts

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/lib/types.ts

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/lib/utils.ts

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/src/main.tsx

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/tailwind.config.js

  • Executable scriptline 1
    Executable file

assets/webartifacts_app/paper-report/vite.config.ts

  • Executable scriptline 1
    Executable file

docs/index.html

  • Network accessline 5
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />     <title>Paper Search Pro — Discovery Report</title>     <script type="module" crossorigin>var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescrip
  • Network accessline 6
    <title>Paper Search Pro — Discovery Report</title>     <script type="module" crossorigin>var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.h
  • Network accessline 7
    <script type="module" crossorigin>var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).expo
  • Network accessline 15
    `).replace(Fd,``)}function Ld(e,t){return t=Id(t),Id(e)===t}function Rd(e,t,n,r,a,o){switch(n){case`children`:typeof r==`string`?t===`body`||t===`textarea`&&r===``||Ut(e,r):(typeof r==`number`||typeof r==`bigint`)&&t!==`body`&&Ut(e,``+r);br
  • Network accessline 16
    AND ("Cognitive Training"[mh] OR "working memory training"[tiab] OR "working-memory training"[tiab] OR "working memory intervention"[tiab] OR "n-back training"[tiab] OR Cogmed[tiab] OR "memory training"[tiab] OR "cognitive training"[tiab] O
  • Network accessline 17
    ("Cognitive Training"[mh] OR "working memory training"[tiab] OR "working-memory training"[tiab] OR "working memory intervention"[tiab] OR "n-back training"[tiab] OR Cogmed[tiab] OR "memory training"[tiab] OR "cognitive training"[tiab] OR "b
  • Network accessline 18
    ("older adult*" OR "older people" OR "older person*" OR elderly OR senior* OR "late life")   AND ("working memory training" OR "working-memory training" OR "working memory intervention" OR "n-back training" OR Cogmed OR "memory training" OR
  • Network accessline 19
    AND ("working memory training" OR "working-memory training" OR "working memory intervention" OR "n-back training" OR Cogmed OR "memory training" OR "cognitive training" OR "brain training") )`,strategy_lines:[`#1 TS=("older adult*" OR "olde
  • Network accessline 20
    )`,strategy_lines:[`#1 TS=("older adult*" OR "older people" OR "older person*" OR elderly OR senior* OR "late life")`,`#2 TS=("working memory training" OR "working-memory training" OR "working memory intervention" OR "n-back training" OR Co
  • Network accessline 21
    ("older adult*" OR "older people" OR "older person*" OR elderly OR senior* OR "late life")   AND ("working memory training" OR "working-memory training" OR "working memory intervention" OR "n-back training" OR Cogmed OR "memory training" OR
  • Network accessline 22
    AND ("working memory training" OR "working-memory training" OR "working memory intervention" OR "n-back training" OR Cogmed OR "memory training" OR "cognitive training" OR "brain training") )`,strategy_lines:[`#1 TITLE-ABS-KEY("older adult*
  • Network accessline 23
    )`,strategy_lines:[`#1 TITLE-ABS-KEY("older adult*" OR "older people" OR "older person*" OR elderly OR senior* OR "late life")`,`#2 TITLE-ABS-KEY("working memory training" OR "working-memory training" OR "working memory intervention" OR "n-
  • Network accessline 24
    AND ("working memory training":ti,ab OR "working-memory training":ti,ab OR "working memory intervention":ti,ab OR "n-back training":ti,ab OR Cogmed:ti,ab OR "memory training":ti,ab OR "cognitive training":ti,ab OR "brain training":ti,ab)`,s
  • Network accessline 25
    ("working memory training":ti,ab OR "working-memory training":ti,ab OR "working memory intervention":ti,ab OR "n-back training":ti,ab OR Cogmed:ti,ab OR "memory training":ti,ab OR "cognitive training":ti,ab OR "brain training":ti,ab)`,strat
  • Network accessline 26
    AND (SU %= '工作记忆训练' OR SU %= '工作记忆干预' OR SU %= '记忆训练' OR SU %= '认知训练' OR SU %= 'n-back训练')`,strategy_lines:null,deep_link:{platform:`cnki`,tier:`C`,url_kind:`paste_only`,url:null,url_template:null,verified_http:null,verified_date:null,patte
  • Network accessline 70
    For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return v.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},_u=`DialogDescriptionWarning`,vu=({contentRef:e,descriptionId:t
  • Network accessline 105
    A${a},${a},0,0,${+(u<0)},${E.x},${E.y}       A${r},${r},0,${+(k>180)},${+(u>0)},${S.x},${S.y}       A${a},${a},0,0,${+(u<0)},${C.x},${C.y}Z`}else b+=`L${t},${n}Z`;return b},qk={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,c
  • Network accessline 106
    A${r},${r},0,${+(k>180)},${+(u>0)},${S.x},${S.y}       A${a},${a},0,0,${+(u<0)},${C.x},${C.y}Z`}else b+=`L${t},${n}Z`;return b},qk={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsEx
  • Network accessline 107
    [Credential-related source omitted]

references/agent_mode.md

  • Access to secretsline 205
    [Credential-related source omitted]
  • Access to secretsline 614
    [Credential-related source omitted]

references/arxiv_helper_cheatsheet.md

  • Network accessline 43
    python3 -m scripts.arxiv_helper get 1706.03762            # bare id python3 -m scripts.arxiv_helper get 1706.03762v5          # version-suffixed python3 -m scripts.arxiv_helper get https://arxiv.org/abs/2401.12345
  • Network accessline 44
    python3 -m scripts.arxiv_helper get 1706.03762v5          # version-suffixed python3 -m scripts.arxiv_helper get https://arxiv.org/abs/2401.12345 python3 -m scripts.arxiv_helper get hep-th/9707234         # legacy form
  • Network accessline 45
    python3 -m scripts.arxiv_helper get https://arxiv.org/abs/2401.12345
  • Network accessline 80
    "arxiv_categories": ["cs.CL", "cs.AI"],   "arxiv_comment": "Accepted at NeurIPS 2024",   // submitter's note; often empty   "pdf_url": "https://arxiv.org/pdf/2401.12345v3",
  • Network accessline 81
    "arxiv_comment": "Accepted at NeurIPS 2024",   // submitter's note; often empty   "pdf_url": "https://arxiv.org/pdf/2401.12345v3",   "sources": ["arxiv"],
  • Network accessline 82
    "pdf_url": "https://arxiv.org/pdf/2401.12345v3",

references/crossref_helper_cheatsheet.md

  • Network accessline 49
    "license": [     {       "URL": "https://www.nejm.org/about-nejm/...",
  • Network accessline 50
    {       "URL": "https://www.nejm.org/about-nejm/...",       "content_version": "vor",            // tdm | vor | am | unspecified
  • Network accessline 51
    "URL": "https://www.nejm.org/about-nejm/...",
  • Network accessline 89
    ],   "license": [     {"URL": "https://www.nejm.org/about-nejm/permissions", "content_version": "vor", "delay_in_days": 0}
  • Network accessline 90
    "license": [     {"URL": "https://www.nejm.org/about-nejm/permissions", "content_version": "vor", "delay_in_days": 0}   ]
  • Network accessline 91
    {"URL": "https://www.nejm.org/about-nejm/permissions", "content_version": "vor", "delay_in_days": 0}

references/error_handling.md

  • Access to secretsline 11
    [Credential-related source omitted]
  • Access to secretsline 21
    [Credential-related source omitted]
  • Access to secretsline 29
    [Credential-related source omitted]
  • Network accessline 35
    | **Symptom** | Biopython `HTTPError 429` OR empty efetch when records expected | | **Trigger** | Wrong / expired `ncbi_api_key`; or >10/s (with key) / >3/s (anonymous) | | **Action** | First, verify key is valid: `curl 'https://eutils.ncbi
  • Access to secretsline 36
    [Credential-related source omitted]
  • Network accessline 37
    [Credential-related source omitted]
  • Access to secretsline 37
    [Credential-related source omitted]

references/journal_metrics.md

  • Network accessline 64
    ### Fetch (init-once; runtime; never committed)

references/openalex_helper_cheatsheet.md

  • Access to secretsline 6
    [Credential-related source omitted]
  • Network accessline 32
    python3 -m scripts.openalex_helper get W3011865677 python3 -m scripts.openalex_helper get 10.2307/1914185           # DOI bare form python3 -m scripts.openalex_helper get https://doi.org/10.1038/x
  • Network accessline 34
    python3 -m scripts.openalex_helper get https://doi.org/10.1038/x
  • Network accessline 107
    - **per_page hard-capped at 20** — pyalex returns ~25k-token payloads when per_page>20 even though API accepts up to 200. Helper internally enforces `_PER_PAGE=20` and pages. - **OpenAlex W-IDs drift between releases** — if you have a W-ID 
  • Network accessline 108
    - **OpenAlex W-IDs drift between releases** — if you have a W-ID that 404s, retry as DOI lookup. `get` handles `10.x/y` -> `https://doi.org/10.x/y` for you.

references/openreview_helper_cheatsheet.md

  • Network accessline 54
    "keywords": ["diffusion language model", "discrete"],   "tldr": "...",                                    // content.TLDR when the authors gave one   "pdf_url": "https://openreview.net/pdf?id=g88nt4ieTG",   // only when the note has a PDF
  • Network accessline 55
    "tldr": "...",                                    // content.TLDR when the authors gave one   "pdf_url": "https://openreview.net/pdf?id=g88nt4ieTG",   // only when the note has a PDF   "oa_locations": ["https://openreview.net/forum?id=g88nt
  • Network accessline 56
    "pdf_url": "https://openreview.net/pdf?id=g88nt4ieTG",   // only when the note has a PDF
  • Network accessline 57
    "oa_locations": ["https://openreview.net/forum?id=g88nt4ieTG"],  // reviews and discussion live here
  • Network accessline 72
    - **Only the search endpoint works.** `GET /notes?content.venueid=…` (list a whole venue) answers anonymous clients with 403 `ChallengeRequiredError`. The helper uses only `GET https://api2.openreview.net/notes/search?…&limit=25&offset=k`. 

references/output_files.md

  • Dangerous shell operationline 106
    rm -rf ./paper-search-results/<id>/batches/ ./paper-search-results/<id>/classifications/

references/pubmed_helper_cheatsheet.md

  • Access to secretsline 8
    [Credential-related source omitted]
  • Network accessline 60
    | `publication_types: List[str]` | e.g. `["Journal Article", "Randomized Controlled Trial", "Multicenter Study"]` | | `pmcid: str` | "PMC9876543" (only filled if missing) | | `pmc_url: str` | "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC98
  • Network accessline 61
    | `pmcid: str` | "PMC9876543" (only filled if missing) | | `pmc_url: str` | "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9876543/" | | `abstract: str` | Filled ONLY if missing — OA reconstructed wins; PubMed = fallback |
  • Network accessline 62
    | `pmc_url: str` | "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9876543/" |
  • Network accessline 105
    PubMed's MeSH is an English-language controlled vocabulary — Chinese keywords route through PubMed's translation layer with mediocre precision, and `search-mesh` requires the **canonical English MeSH descriptor** to match. When the user que

references/search_export/chinese_methodology.md

  • Network accessline 83
    **受控词验证分轨([A-6] 硬约束)**:CMeSH **无权威免费查表 API** → 主题词默认标 **🟨 语法已验·词表待核**(`llm_suggest_only` + 黄旗「待 UI 内人工确认规范主题词+副主题词」)。**本轮实测发现一个免费软交叉核端点**:`GET https://www.sinomed.ac.cn/suggest.do?dbtype=mt_&q=<中文词>` 无需登录返回 CMeSH 中文主题词候选(`糖尿病`→有候选;无义乱码→HTTP

references/search_export/filters_library.md

  • Network accessline 84
    **URL**:`https://sites.google.com/a/york.ac.uk/issg-search-filters-resource`(RCT filter 直达页:`.../home/rcts`)。由 InterTASC Information Specialists' Sub-Group 维护,**收录并批判性评价**了 SR / RCT / 非随机研究 / 诊断准确性 / 质性等过滤器,跨多个库和服务商 [Hb §4.4.7]。

references/search_export/syntax_cards/acm_dl.md

  • Network accessline 3
    > 语法卡 · 统一字段格式(13 spec §4)。检索对公众免费;深链 **B 档**(官方端点,curl 被 Cloudflare 拦,浏览器可用)。**★无邻近算符** → 跨库翻译时降级为 AND/短语。CCS 分类是过滤 facet,非可爆炸叙词表 → 受控词 `not_applicable`。语法主张附官方 URL + verified_date。
  • Network accessline 54
    tier: "B"   url_kind: "prefill"   url_template: "https://dl.acm.org/action/doSearch?AllField={urlenc}"
  • Network accessline 55
    url_kind: "prefill"   url_template: "https://dl.acm.org/action/doSearch?AllField={urlenc}"   verified_http: "403(curl,Cloudflare bot 拦截);真实浏览器内该 URL 可用"
  • Network accessline 56
    url_template: "https://dl.acm.org/action/doSearch?AllField={urlenc}"   verified_http: "403(curl,Cloudflare bot 拦截);真实浏览器内该 URL 可用"   note: "官方文档化端点;curl 被 Cloudflare 拦(403),但浏览器内公开可用(检索免费,全文订阅)。不承诺脚本层直达。"
  • Network accessline 57
    verified_http: "403(curl,Cloudflare bot 拦截);真实浏览器内该 URL 可用"   note: "官方文档化端点;curl 被 Cloudflare 拦(403),但浏览器内公开可用(检索免费,全文订阅)。不承诺脚本层直达。"   verified_date: "2026-07-16"
  • Network accessline 58
    note: "官方文档化端点;curl 被 Cloudflare 拦(403),但浏览器内公开可用(检索免费,全文订阅)。不承诺脚本层直达。"
  • Network accessline 59
    verified_date: "2026-07-16" source_url:   - "https://libraries.acm.org/binaries/content/assets/libraries/new_acm-digital-library-user-guide.pdf"
  • Network accessline 60
    source_url:   - "https://libraries.acm.org/binaries/content/assets/libraries/new_acm-digital-library-user-guide.pdf"   - "https://library-guides.ucl.ac.uk/ACM-Digital-Library/techniques-for-searching"
  • Network accessline 61
    - "https://libraries.acm.org/binaries/content/assets/libraries/new_acm-digital-library-user-guide.pdf"
  • Network accessline 62
    - "https://library-guides.ucl.ac.uk/ACM-Digital-Library/techniques-for-searching"
  • Network accessline 63
    - "https://refhunter.org/en/database_sheets/acm-digital-library"
  • Network accessline 68
    - "通配 * 可词尾/词中、不可词首;引号短语内通配无效"   - "布尔须大写;默认词间 AND;多字段靠 Advanced 多行 + Edit Query 手改布尔"   - "深链 B 档:doSearch?AllField= 官方端点,curl 403(Cloudflare),浏览器内可用"
  • Network accessline 69
    - "布尔须大写;默认词间 AND;多字段靠 Advanced 多行 + Edit Query 手改布尔"   - "深链 B 档:doSearch?AllField= 官方端点,curl 403(Cloudflare),浏览器内可用"   - "CCS 分类是 facet 过滤,非检索式层可爆炸叙词 → 受控词 not_applicable"
  • Network accessline 70
    - "深链 B 档:doSearch?AllField= 官方端点,curl 403(Cloudflare),浏览器内可用"
  • Network accessline 88
    ### 深链(B 档) `https://dl.acm.org/action/doSearch?AllField=<URL编码>` — 官方端点,curl 403(Cloudflare),浏览器内可用;不承诺脚本层直达(C-14 天然满足:检索免费无墙)。
  • Network accessline 89
    `https://dl.acm.org/action/doSearch?AllField=<URL编码>` — 官方端点,curl 403(Cloudflare),浏览器内可用;不承诺脚本层直达(C-14 天然满足:检索免费无墙)。

references/search_export/syntax_cards/cab_cabi.md

  • Network accessline 66
    tier: "C"   url_kind: "paste_only"   url_template: "https://www.cabidigitallibrary.org/action/doSearch?AllField={urlenc}"
  • Network accessline 67
    url_kind: "paste_only"   url_template: "https://www.cabidigitallibrary.org/action/doSearch?AllField={urlenc}"   note: "CAB Abstracts is subscription on every host; execution requires institutional login. URL structure noted only; not HTTP-v
  • Network accessline 68
    url_template: "https://www.cabidigitallibrary.org/action/doSearch?AllField={urlenc}"
  • Network accessline 69
    note: "CAB Abstracts is subscription on every host; execution requires institutional login. URL structure noted only; not HTTP-verified this round, no login-bypass. Deliver the paste-ready professional string." source_url:   - "https://help
  • Network accessline 70
    source_url:   - "https://help.cabi.org/cabi-digital-library-help/"                                       # CABI official help hub   - "https://help.cabi.org/cabi-digital-library-help/search/instructions-for-recreating-saved-searches-from-ca
  • Network accessline 71
    - "https://help.cabi.org/cabi-digital-library-help/"                                       # CABI official help hub
  • Network accessline 72
    - "https://help.cabi.org/cabi-digital-library-help/search/instructions-for-recreating-saved-searches-from-cab-direct"  # official: proximity ~n, wildcards, boolean, index-field stemming
  • Network accessline 73
    - "https://www.cabi.org/cabithesaurus/"                                                    # CABI Thesaurus (controlled vocab browse)
  • Network accessline 74
    - "https://ospguides.ovid.com/OSPguides/cabadb.htm"                                        # Ovid CAB Abstracts guide (hosts_note)

references/search_export/syntax_cards/cinahl_ebsco.md

  • Network accessline 57
    tier: "C"   url_kind: "paste_only"   url_template: "https://search.ebscohost.com/login.aspx?authtype=ip&profile=ehost&defaultdb=ccm"
  • Network accessline 58
    url_kind: "paste_only"   url_template: "https://search.ebscohost.com/login.aspx?authtype=ip&profile=ehost&defaultdb=ccm"   note: "EBSCOhost addresses bind to institution customer-id/profile; execution requires institutional login. No public
  • Network accessline 59
    url_template: "https://search.ebscohost.com/login.aspx?authtype=ip&profile=ehost&defaultdb=ccm"
  • Network accessline 60
    note: "EBSCOhost addresses bind to institution customer-id/profile; execution requires institutional login. No public stateless deep link. Never construct a login-bypassing URL." source_url:   - "https://libraryguides.mcgill.ca/c.php?g=4771
  • Network accessline 61
    source_url:   - "https://libraryguides.mcgill.ca/c.php?g=477164&p=5387366"                      # McGill: CINAHL MH/MM/MJ/MW field codes + explode +   - "https://libraryguides.mcgill.ca/epib629/search-tips"                           # McGil
  • Network accessline 62
    - "https://libraryguides.mcgill.ca/c.php?g=477164&p=5387366"                      # McGill: CINAHL MH/MM/MJ/MW field codes + explode +
  • Network accessline 63
    - "https://libraryguides.mcgill.ca/epib629/search-tips"                           # McGill: CINAHL Nn/Wn proximity + suggest-subject-headings note
  • Network accessline 64
    - "https://about.ebsco.com/sites/default/files/acquiadam-assets/Top-Five-Searching-Strategies-Handout.pdf"  # EBSCO official: N/W, wildcards
  • Network accessline 65
    - "https://connect.ebsco.com/"                                                     # EBSCO Connect help hub (CINAHL/MeSH Headings, field codes)
  • Network accessline 66
    - "https://guides.library.manoa.hawaii.edu/cinahl/cinahlhdgs"                      # CINAHL Explode / Major Concept / Subheadings (EBSCO-transcribed)
  • Network accessline 91
    > "**Explode** — Represented by the + sign at the end of the subject heading … e.g., `(MH "Pregnancy in Diabetes+")` will search for records indexed with 'Pregnancy in Diabetes' OR 'Diabetes Mellitus, Gestational' OR 'Fetal Macrosomia'. **M
  • Network accessline 92
    > — https://libraryguides.mcgill.ca/c.php?g=477164&p=5387366
  • Network accessline 104
    > "To use proximity operators in CINAHL, uncheck 'Suggest Subject Headings' if entering an unqualified search … or specify the TI OR AB fields in your search query." > — https://libraryguides.mcgill.ca/epib629/search-tips
  • Network accessline 105
    > — https://libraryguides.mcgill.ca/epib629/search-tips

references/search_export/syntax_cards/clinicaltrials_gov.md

  • Network accessline 10
    access: free                          # 免费、无登录、无验证码 api:   base: "https://clinicaltrials.gov/api/v2/studies"
  • Network accessline 11
    api:   base: "https://clinicaltrials.gov/api/v2/studies"   version: "2.0.5"                     # /api/v2/version 实测 apiVersion,dataTimestamp 2026-07-15
  • Network accessline 12
    base: "https://clinicaltrials.gov/api/v2/studies"
  • Network accessline 34
    field_tags:                            # Essie 不用后缀标签;字段由 query.<field> 或 AREA[] 指定   target_field: "AREA[<SearchArea>]<term>"   # 例 AREA[ConditionSearch]diabetes   search_areas_ref: "https://clinicaltrials.gov/api/v2/studies/search-areas"
  • Network accessline 35
    target_field: "AREA[<SearchArea>]<term>"   # 例 AREA[ConditionSearch]diabetes   search_areas_ref: "https://clinicaltrials.gov/api/v2/studies/search-areas" boolean: {and: "AND", or: "OR", not: "NOT", case: "UPPERCASE-REQUIRED"}   # 实测:小写 or→1
  • Network accessline 36
    search_areas_ref: "https://clinicaltrials.gov/api/v2/studies/search-areas"
  • Network accessline 62
    tier: "A"                            # A 档来自 API v2 端点(服务器端 totalCount,机械可验、可构造)   url_kind: "api"                      # 主交付=API URL;人读 URL 见 ui_template   api_template: "https://clinicaltrials.gov/api/v2/studies?query.cond={urlenc}&query.
  • Network accessline 63
    url_kind: "api"                      # 主交付=API URL;人读 URL 见 ui_template   api_template: "https://clinicaltrials.gov/api/v2/studies?query.cond={urlenc}&query.intr={urlenc}&query.term={urlenc}&countTotal=true"   ui_template: "https://clinical
  • Network accessline 64
    api_template: "https://clinicaltrials.gov/api/v2/studies?query.cond={urlenc}&query.intr={urlenc}&query.term={urlenc}&countTotal=true"
  • Network accessline 65
    ui_template: "https://clinicaltrials.gov/expert-search?term={urlenc_essie}"   # 官方人读深链(粘 Essie 式)
  • Network accessline 66
    ui_template_alt: "https://clinicaltrials.gov/search?cond={urlenc}&intr={urlenc}&term={urlenc}"
  • Network accessline 69
    verified_date: "2026-07-16" source_url:   - "https://clinicaltrials.gov/find-studies/constructing-complex-search-queries"   # Essie 算符官方定义
  • Network accessline 70
    source_url:   - "https://clinicaltrials.gov/find-studies/constructing-complex-search-queries"   # Essie 算符官方定义   - "https://clinicaltrials.gov/data-api/api"                                        # REST API v2
  • Network accessline 71
    - "https://clinicaltrials.gov/find-studies/constructing-complex-search-queries"   # Essie 算符官方定义
  • Network accessline 72
    - "https://clinicaltrials.gov/data-api/api"                                        # REST API v2
  • Network accessline 73
    - "https://clinicaltrials.gov/api/v2/studies/search-areas"                         # 检索区/字段定义
  • Network accessline 109
    **A 档判定成立,但 A 性来自 API v2 端点,不是人读网页**(此点区别于 PubMed/ERIC,后者人读网页本身即服务器端渲染): - **API v2 端点**:`GET /api/v2/studies?query.term=...&countTotal=true` → HTTP 200 + 顶层 `totalCount`(服务器端 JSON,完全机械可解析、可复测)。这是**真正的 A 档可构造/可验证深链**,等价于 PubMed 的 E-utilitie
  • Network accessline 110
    - **API v2 端点**:`GET /api/v2/studies?query.term=...&countTotal=true` → HTTP 200 + 顶层 `totalCount`(服务器端 JSON,完全机械可解析、可复测)。这是**真正的 A 档可构造/可验证深链**,等价于 PubMed 的 E-utilities `esearch`。deeplink.py 应构造并对其计数做核验。 - **人读 URL**:官方 `https://clinicaltri
  • Network accessline 111
    - **人读 URL**:官方 `https://clinicaltrials.gov/expert-search?term=<Essie>`(及 `/search?cond=&intr=&term=`)→ HTTP 200,携带查询、浏览器内可用(免费/无登录/无验证码),**但返回固定 94295 字节 React SPA 外壳**(对 "diabetes AND metformin" 与 "cancer" 两查询字节完全相同)→ 结果**客户端渲染**。按 13 spe
  • Network accessline 138
    (以上为实测证据表;完整 curl 命令与响应存于开发档案。)

references/search_export/syntax_cards/cnki.md

  • Network accessline 80
    verified_date: "2026-07-16" source_url:   - "https://library.sysu.edu.cn/sites/default/files/attachments/2023-10/中国知网使用手册-详细版_1.pdf"   # 详细版手册 §1.2.5.2/§1.2.5.6/§1.2.5.7(旧字段集 + 复合运算符 * / 位置描述符 # %)
  • Network accessline 81
    source_url:   - "https://library.sysu.edu.cn/sites/default/files/attachments/2023-10/中国知网使用手册-详细版_1.pdf"   # 详细版手册 §1.2.5.2/§1.2.5.6/§1.2.5.7(旧字段集 + 复合运算符 * / 位置描述符 # %)   - "https://library.gzucm.edu.cn/__local/0/39/86/A976E276D464E8B25AB5
  • Network accessline 82
    - "https://library.sysu.edu.cn/sites/default/files/attachments/2023-10/中国知网使用手册-详细版_1.pdf"   # 详细版手册 §1.2.5.2/§1.2.5.6/§1.2.5.7(旧字段集 + 复合运算符 * / 位置描述符 # %)
  • Network accessline 83
    - "https://library.gzucm.edu.cn/__local/0/39/86/A976E276D464E8B25AB5A531607_579D802A_5734FC.pdf"
  • Network accessline 84
    - "https://wlxy.hbnu.edu.cn/_upload/article/files/c8/1e/6ee8cd4c476e80fc1d482eb9a351/a17b2405-4aac-4d1c-8130-beaa9af579a6.pdf"   # 全球学术快报2.0 Web版使用手册 §2.1.3.2(新字段集含 TKA=篇关摘, 2026-07-16 verified)

references/search_export/syntax_cards/cochrane_central.md

  • Network accessline 57
    tier: "B"                          # ★修正:R4 记 200(A),主 Agent 亲测 419 → 降 B 待浏览器验证   url_kind: "prefill"   url_template: "https://www.cochranelibrary.com/search?q={urlenc}"    # 用 /search?q=,不带 /en/
  • Network accessline 58
    url_kind: "prefill"   url_template: "https://www.cochranelibrary.com/search?q={urlenc}"    # 用 /search?q=,不带 /en/   verified_http: "非 200(curl 层 419/302 皆时点观测到,Bot 拦截/会话预检);B 档,build 轮浏览器实测再议升 A"
  • Network accessline 59
    url_template: "https://www.cochranelibrary.com/search?q={urlenc}"    # 用 /search?q=,不带 /en/   verified_http: "非 200(curl 层 419/302 皆时点观测到,Bot 拦截/会话预检);B 档,build 轮浏览器实测再议升 A"   note: "★转换修正(12 号 E 组):R4 §2.3 记 /search?q= HTTP 200(服务器端渲染,判 A)
  • Network accessline 60
    verified_http: "非 200(curl 层 419/302 皆时点观测到,Bot 拦截/会话预检);B 档,build 轮浏览器实测再议升 A"
  • Network accessline 62
    verified_date: "2026-07-16" source_url:   - "https://www.cochrane.org/products-and-services/cochrane-library"
  • Network accessline 63
    source_url:   - "https://www.cochrane.org/products-and-services/cochrane-library"   - "https://www.cochrane.de/sites/cochrane.de/files/uploads/CochraneLibrary_NewSearchGuide.pdf"
  • Network accessline 64
    - "https://www.cochrane.org/products-and-services/cochrane-library"
  • Network accessline 65
    - "https://www.cochrane.de/sites/cochrane.de/files/uploads/CochraneLibrary_NewSearchGuide.pdf"
  • Network accessline 66
    - "https://epoc.cochrane.org/sites/epoc.cochrane.org/files/uploads/Resources-for-authors2017/database_syntax_guide.pdf"
  • Network accessline 81
    ### 范围与角色 Cochrane Library(Wiley)的 CENTRAL 是对照试验注册库,SR 检索必备。混合访问(摘要免费/全文订阅)。**深链档位——本卡集的转换修正点**:R4 §2.3 实测 `https://www.cochranelibrary.com/search?q=` HTTP 200 size 101250、服务器端渲染含 `search-results-template`,据此 R4 判 A 档;**但主 Agent 亲测该 URL 返回 
  • Network accessline 82
    Cochrane Library(Wiley)的 CENTRAL 是对照试验注册库,SR 检索必备。混合访问(摘要免费/全文订阅)。**深链档位——本卡集的转换修正点**:R4 §2.3 实测 `https://www.cochranelibrary.com/search?q=` HTTP 200 size 101250、服务器端渲染含 `search-results-template`,据此 R4 判 A 档;**但主 Agent 亲测该 URL 返回 419**(12 号

references/search_export/syntax_cards/econlit_ebsco.md

  • Network accessline 58
    tier: "C"   url_kind: "paste_only"   url_template: "https://search.ebscohost.com/login.aspx?authtype=ip&profile=ehost&defaultdb=eoh"
  • Network accessline 59
    url_kind: "paste_only"   url_template: "https://search.ebscohost.com/login.aspx?authtype=ip&profile=ehost&defaultdb=eoh"   note: "EBSCOhost addresses are bound to institution customer-id/profile; execution requires institutional login. No p
  • Network accessline 60
    url_template: "https://search.ebscohost.com/login.aspx?authtype=ip&profile=ehost&defaultdb=eoh"
  • Network accessline 61
    note: "EBSCOhost addresses are bound to institution customer-id/profile; execution requires institutional login. No public stateless deep link. Do not construct any login-bypassing URL." source_url:   - "https://www.aeaweb.org/econlit/searc
  • Network accessline 62
    source_url:   - "https://www.aeaweb.org/econlit/search-hints"                                   # AEA official: JEL descriptors, 4-digit code rule   - "https://www.aeaweb.org/econlit/jelCodes.php?view=jel"                          # AEA off
  • Network accessline 63
    - "https://www.aeaweb.org/econlit/search-hints"                                   # AEA official: JEL descriptors, 4-digit code rule
  • Network accessline 64
    - "https://www.aeaweb.org/econlit/jelCodes.php?view=jel"                          # AEA official: full JEL code list
  • Network accessline 65
    - "https://about.ebsco.com/products/research-databases/econlit-full-text"         # EBSCO official product page
  • Network accessline 66
    - "https://about.ebsco.com/sites/default/files/acquiadam-assets/Top-Five-Searching-Strategies-Handout.pdf"  # EBSCO official: N/W, wildcards
  • Network accessline 67
    - "https://ospguides.ovid.com/OSPguides/econdb.htm"                               # Ovid EconLit guide (hosts_note: CC field)
  • Network accessline 89
    > "The EconLit subject descriptors are the same as the Journal of Economic Literature (JEL) classifications also known as the American Economic Association Classification System. On EconLit, a zero has been added to the JEL classification t
  • Network accessline 90
    > — AEA, *EconLit Search Hints*, https://www.aeaweb.org/econlit/search-hints (verified 2026-07-16)
  • Network accessline 98
    > "Near Operator (N) finds results in which search terms are within a specified number of words of one another in any order. Example: tax N5 reform … Within Operator (W) finds results in which search terms are within a specified number of w
  • Network accessline 99
    > — https://about.ebsco.com/sites/default/files/acquiadam-assets/Top-Five-Searching-Strategies-Handout.pdf

references/search_export/syntax_cards/embase_com.md

  • Network accessline 56
    tier: "C"   url_kind: "paste_only"   url_template: "https://www.embase.com/#advancedSearch"
  • Network accessline 57
    url_kind: "paste_only"   url_template: "https://www.embase.com/#advancedSearch"   note: "登录墙:实测 HTTP 200 但为 hash 路由 SPA 外壳,出结果需鉴权。URL 结构已考证,执行待机构账号;交付=可粘贴检索式;绝不构造绕登录 URL。"
  • Network accessline 58
    url_template: "https://www.embase.com/#advancedSearch"
  • Network accessline 59
    note: "登录墙:实测 HTTP 200 但为 hash 路由 SPA 外壳,出结果需鉴权。URL 结构已考证,执行待机构账号;交付=可粘贴检索式;绝不构造绕登录 URL。" source_url:   - "https://www.elsevier.support/embase/answer/how-do-i-search-in-embase"
  • Network accessline 60
    source_url:   - "https://www.elsevier.support/embase/answer/how-do-i-search-in-embase"   - "https://supportcontent.elsevier.com/RightNow%20Next%20Gen/Embase/Webinar_Embase_Intro_20170823.pdf"
  • Network accessline 61
    - "https://www.elsevier.support/embase/answer/how-do-i-search-in-embase"
  • Network accessline 62
    - "https://supportcontent.elsevier.com/RightNow%20Next%20Gen/Embase/Webinar_Embase_Intro_20170823.pdf"
  • Network accessline 78
    ### 范围与角色 Embase(Elsevier)在 embase.com 原生宿主上的语法卡。订阅登录墙 → 深链 **C 档**:R4 §2.8 实测 `https://www.embase.com/#advancedSearch` HTTP 200 但 hash 路由 SPA 外壳,出结果需鉴权 → 交付=可粘贴检索式。
  • Network accessline 79
    Embase(Elsevier)在 embase.com 原生宿主上的语法卡。订阅登录墙 → 深链 **C 档**:R4 §2.8 实测 `https://www.embase.com/#advancedSearch` HTTP 200 但 hash 路由 SPA 外壳,出结果需鉴权 → 交付=可粘贴检索式。
  • Network accessline 93
    ### 深链(C 档) `https://www.embase.com/#advancedSearch` 实测 HTTP 200(hash 路由 SPA 外壳)。URL 结构已考证,执行待机构账号;只观测不绕墙(C-14)。
  • Network accessline 94
    `https://www.embase.com/#advancedSearch` 实测 HTTP 200(hash 路由 SPA 外壳)。URL 结构已考证,执行待机构账号;只观测不绕墙(C-14)。

references/search_export/syntax_cards/embase_ovid.md

  • Network accessline 62
    note: "登录墙 + 全程会话态(ovidsp.ovid.com 会话绑定),无无状态深链。交付=可粘贴检索式;绝不构造绕登录 URL。" source_url:   - "https://ospguides.ovid.com/OSPguides/embdb.htm"
  • Network accessline 63
    source_url:   - "https://ospguides.ovid.com/OSPguides/embdb.htm"   - "https://ospguides.ovid.com/OSPguides/medline.htm"
  • Network accessline 64
    - "https://ospguides.ovid.com/OSPguides/embdb.htm"
  • Network accessline 65
    - "https://ospguides.ovid.com/OSPguides/medline.htm"
  • Network accessline 66
    - "https://library-guides.ucl.ac.uk/OvidSP/textword-searching"
  • Network accessline 67
    - "https://epoc.cochrane.org/sites/epoc.cochrane.org/files/uploads/Resources-for-authors2017/database_syntax_guide.pdf"

references/search_export/syntax_cards/eric.md

  • Network accessline 55
    tier: "A"   url_kind: "prefill"   url_template: "https://eric.ed.gov/?q={urlenc}"
  • Network accessline 56
    url_kind: "prefill"   url_template: "https://eric.ed.gov/?q={urlenc}"   field_url_example: "https://eric.ed.gov/?q=author%3Ayoung"    # 亦支持字段式 ?q=author:young
  • Network accessline 57
    url_template: "https://eric.ed.gov/?q={urlenc}"
  • Network accessline 58
    field_url_example: "https://eric.ed.gov/?q=author%3Ayoung"    # 亦支持字段式 ?q=author:young
  • Network accessline 61
    verified_date: "2026-07-16" source_url:   - "https://eric.ed.gov/?searchtips"       # Advanced Search Tips
  • Network accessline 62
    source_url:   - "https://eric.ed.gov/?searchtips"       # Advanced Search Tips   - "https://eric.ed.gov/?ti=all"           # ERIC Thesaurus
  • Network accessline 63
    - "https://eric.ed.gov/?searchtips"       # Advanced Search Tips
  • Network accessline 64
    - "https://eric.ed.gov/?ti=all"           # ERIC Thesaurus
  • Network accessline 65
    - "https://ospguides.ovid.com/OSPguides/ericdb.htm"   # 订阅宿主 ERIC-on-Ovid
  • Network accessline 81
    ### 范围与角色 ERIC(IES/美国教育部)教育学核心库;本卡记**免费官方站 eric.ed.gov**(订阅宿主 EBSCO/Ovid/ProQuest 语法见对应卡)。深链 **A 档**:R4 §2.2 实测 `https://eric.ed.gov/?q=<URL编码>` HTTP 200、页面含 "of 27,020 results"(服务器端 HTML 计数)——**最干净的开放深链之一**。
  • Network accessline 82
    ERIC(IES/美国教育部)教育学核心库;本卡记**免费官方站 eric.ed.gov**(订阅宿主 EBSCO/Ovid/ProQuest 语法见对应卡)。深链 **A 档**:R4 §2.2 实测 `https://eric.ed.gov/?q=<URL编码>` HTTP 200、页面含 "of 27,020 results"(服务器端 HTML 计数)——**最干净的开放深链之一**。
  • Network accessline 93
    ### 深链(A 档) `https://eric.ed.gov/?q=<URL编码>` 实测 200,服务器端渲染结果计数;亦支持字段式 `?q=author%3Ayoung`。deeplink.py 对 ERIC 构造并核验此 URL。
  • Network accessline 94
    `https://eric.ed.gov/?q=<URL编码>` 实测 200,服务器端渲染结果计数;亦支持字段式 `?q=author%3Ayoung`。deeplink.py 对 ERIC 构造并核验此 URL。

references/search_export/syntax_cards/ieee_xplore.md

  • Network accessline 56
    tier: "B"   url_kind: "prefill"   url_template: "https://ieeexplore.ieee.org/search/searchresult.jsp?queryText={urlenc}"
  • Network accessline 57
    url_kind: "prefill"   url_template: "https://ieeexplore.ieee.org/search/searchresult.jsp?queryText={urlenc}"   ui_render: "client-SPA (Angular)"
  • Network accessline 58
    url_template: "https://ieeexplore.ieee.org/search/searchresult.jsp?queryText={urlenc}"
  • Network accessline 62
    verified_date: "2026-07-16" source_url:   - "https://ieeexplore.ieee.org/Xplorehelp/searching-ieee-xplore/command-search"
  • Network accessline 63
    source_url:   - "https://ieeexplore.ieee.org/Xplorehelp/searching-ieee-xplore/command-search"   - "https://ieeexplore.ieee.org/Xplorehelp/searching-ieee-xplore/"
  • Network accessline 64
    - "https://ieeexplore.ieee.org/Xplorehelp/searching-ieee-xplore/command-search"
  • Network accessline 65
    - "https://ieeexplore.ieee.org/Xplorehelp/searching-ieee-xplore/"

references/search_export/syntax_cards/psycinfo_ebsco.md

  • Network accessline 60
    tier: "C"   url_kind: "paste_only"   url_template: "https://search.ebscohost.com/login.aspx?authtype=ip&profile=ehost&defaultdb=psyh"
  • Network accessline 61
    url_kind: "paste_only"   url_template: "https://search.ebscohost.com/login.aspx?authtype=ip&profile=ehost&defaultdb=psyh"   note: "EBSCOhost 按机构 customer-id/profile 定址,执行需机构登录,无公众无状态深链。交付=可粘贴检索式;绝不构造绕登录 URL。"
  • Network accessline 62
    url_template: "https://search.ebscohost.com/login.aspx?authtype=ip&profile=ehost&defaultdb=psyh"
  • Network accessline 63
    note: "EBSCOhost 按机构 customer-id/profile 定址,执行需机构登录,无公众无状态深链。交付=可粘贴检索式;绝不构造绕登录 URL。" source_url:   - "https://www.apa.org/pubs/databases/training/ebsco.pdf"
  • Network accessline 64
    source_url:   - "https://www.apa.org/pubs/databases/training/ebsco.pdf"   - "https://about.ebsco.com/sites/default/files/acquiadam-assets/Top-Five-Searching-Strategies-Handout.pdf"
  • Network accessline 65
    - "https://www.apa.org/pubs/databases/training/ebsco.pdf"
  • Network accessline 66
    - "https://about.ebsco.com/sites/default/files/acquiadam-assets/Top-Five-Searching-Strategies-Handout.pdf"
  • Network accessline 67
    - "https://connect.ebsco.com/"

references/search_export/syntax_cards/psycinfo_ovid.md

  • Network accessline 62
    note: "登录墙 + 全程会话态(ovidsp.ovid.com),无深链。交付=可粘贴检索式;绝不构造绕登录 URL。" source_url:   - "https://ospguides.ovid.com/OSPguides/psycdb.htm"
  • Network accessline 63
    source_url:   - "https://ospguides.ovid.com/OSPguides/psycdb.htm"   - "https://library-guides.ucl.ac.uk/OvidSP/textword-searching"
  • Network accessline 64
    - "https://ospguides.ovid.com/OSPguides/psycdb.htm"
  • Network accessline 65
    - "https://library-guides.ucl.ac.uk/OvidSP/textword-searching"
  • Network accessline 66
    - "https://pmc.ncbi.nlm.nih.gov/articles/PMC12527542"      # EBSCO↔Ovid PsycInfo 字段码翻译表

references/search_export/syntax_cards/pubmed.md

  • Network accessline 60
    tier: "A"   url_kind: "prefill"   url_template: "https://pubmed.ncbi.nlm.nih.gov/?term={urlenc}"       # 方括号编码为 %5B%5D
  • Network accessline 61
    url_kind: "prefill"   url_template: "https://pubmed.ncbi.nlm.nih.gov/?term={urlenc}"       # 方括号编码为 %5B%5D   api_template: "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term={urlenc}"
  • Network accessline 62
    url_template: "https://pubmed.ncbi.nlm.nih.gov/?term={urlenc}"       # 方括号编码为 %5B%5D
  • Network accessline 63
    api_template: "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term={urlenc}"
  • Network accessline 65
    verified_date: "2026-07-16" source_url:   - "https://pubmed.ncbi.nlm.nih.gov/help/"
  • Network accessline 66
    source_url:   - "https://pubmed.ncbi.nlm.nih.gov/help/"   - "https://pubmed.ncbi.nlm.nih.gov/help/#search-tags"
  • Network accessline 67
    - "https://pubmed.ncbi.nlm.nih.gov/help/"
  • Network accessline 68
    - "https://pubmed.ncbi.nlm.nih.gov/help/#search-tags"
  • Network accessline 69
    - "https://www.ncbi.nlm.nih.gov/books/NBK25501/"     # E-utilities
  • Network accessline 96
    ### 深链(A 档,实测) - 网页:`https://pubmed.ncbi.nlm.nih.gov/?term=<URL编码>`(方括号→`%5B%5D`)——R4 §2.1A 实测 HTTP 200 size 256265,返回完整结果页。
  • Network accessline 97
    - 网页:`https://pubmed.ncbi.nlm.nih.gov/?term=<URL编码>`(方括号→`%5B%5D`)——R4 §2.1A 实测 HTTP 200 size 256265,返回完整结果页。

references/search_export/syntax_cards/scifinder.md

  • Network accessline 42
    verified_date: "2026-07-16" source_url:   - "https://web.cas.org/marketing/academic/academic_kc_resources-english/SCIACDENGREF101245_SciFinder-Quick-Reference-Guide-Academic-A4.pdf"   # CAS 官方 Academic Quick Reference Guide
  • Network accessline 43
    source_url:   - "https://web.cas.org/marketing/academic/academic_kc_resources-english/SCIACDENGREF101245_SciFinder-Quick-Reference-Guide-Academic-A4.pdf"   # CAS 官方 Academic Quick Reference Guide   - "https://web.cas.org/marketing/pdf/SCIGE
  • Network accessline 44
    - "https://web.cas.org/marketing/academic/academic_kc_resources-english/SCIACDENGREF101245_SciFinder-Quick-Reference-Guide-Academic-A4.pdf"   # CAS 官方 Academic Quick Reference Guide
  • Network accessline 45
    - "https://web.cas.org/marketing/pdf/SCIGENENGREF101245-SciFinder-Quick-Reference-Guide-Commercial-A4.pdf"                                     # CAS 官方 Commercial Quick Reference Guide

references/search_export/syntax_cards/scopus.md

  • Network accessline 62
    tier: "C"   url_kind: "paste_only"   url_template: "https://www.scopus.com/search/form.uri?display=advanced"
  • Network accessline 63
    url_kind: "paste_only"   url_template: "https://www.scopus.com/search/form.uri?display=advanced"   note: "登录墙:/search/form.uri 实测 301 重定向至 SSO 登录。入口指向 Advanced document search(display=advanced):本卡产出的 TITLE-ABS-KEY(...) 字段码只在高级检索框生效,基本检索页粘进去
  • Network accessline 64
    url_template: "https://www.scopus.com/search/form.uri?display=advanced"
  • Network accessline 65
    note: "登录墙:/search/form.uri 实测 301 重定向至 SSO 登录。入口指向 Advanced document search(display=advanced):本卡产出的 TITLE-ABS-KEY(...) 字段码只在高级检索框生效,基本检索页粘进去不工作(2026-09-30 由 display=basic 改)。URL 结构已考证,执行待机构账号;交付=可粘贴检索式;绝不构造绕登录 URL。" source_url:   - "https:
  • Network accessline 66
    source_url:   - "https://elsevier.libguides.com/Scopus/topical-search"   - "https://supportcontent.elsevier.com/RightNow%20Next%20Gen/Scopus/Files/Scopus%20Quick%20Reference%20Guide%20WEB_2023.pdf"
  • Network accessline 67
    - "https://elsevier.libguides.com/Scopus/topical-search"
  • Network accessline 68
    - "https://supportcontent.elsevier.com/RightNow%20Next%20Gen/Scopus/Files/Scopus%20Quick%20Reference%20Guide%20WEB_2023.pdf"
  • Network accessline 69
    - "https://blog.scopus.com/boolean-searches-in-scopus-understanding-operator-precedence-best-practices"
  • Network accessline 99
    ### 深链(C 档) `https://www.scopus.com/results/results.uri?...`(会话态);`/search/form.uri` 实测 301→SSO。URL 结构已考证,执行待机构账号;只观测不绕墙(C-14)。
  • Network accessline 100
    `https://www.scopus.com/results/results.uri?...`(会话态);`/search/form.uri` 实测 301→SSO。URL 结构已考证,执行待机构账号;只观测不绕墙(C-14)。

references/search_export/syntax_cards/sinomed.md

  • Network accessline 49
    verification: llm_suggest_only       # 默认:LLM 建议 + 黄旗『待人工核』(须 UI 内确认准确主题词+副主题词)   free_crosscheck:                     # ★实测发现(2026-07-16):存在免费无登录 autocomplete,可做存在性交叉核     endpoint: "GET https://www.sinomed.ac.cn/suggest.do?dbtype=mt_&q=<中
  • Network accessline 50
    free_crosscheck:                     # ★实测发现(2026-07-16):存在免费无登录 autocomplete,可做存在性交叉核     endpoint: "GET https://www.sinomed.ac.cn/suggest.do?dbtype=mt_&q=<中文词>"     behavior: "返回 CMeSH 中文主题词候选;命中→有候选,无命中→HTTP 200 空体(size 0)"
  • Network accessline 51
    endpoint: "GET https://www.sinomed.ac.cn/suggest.do?dbtype=mt_&q=<中文词>"
  • Network accessline 66
    verified_date: "2026-07-16" source_url:   - "https://www.sinomed.ac.cn/zh/subjectSearch.html"     # 官方主题检索页
  • Network accessline 67
    source_url:   - "https://www.sinomed.ac.cn/zh/subjectSearch.html"     # 官方主题检索页   - "https://baike.baidu.com/item/中国生物医学文献服务系统/9588775"   # 版本/资源/CMeSH 2017 佐证
  • Network accessline 68
    - "https://www.sinomed.ac.cn/zh/subjectSearch.html"     # 官方主题检索页
  • Network accessline 69
    - "https://baike.baidu.com/item/中国生物医学文献服务系统/9588775"   # 版本/资源/CMeSH 2017 佐证
  • Network accessline 70
    - "https://lib.cmc.edu.cn/cbm.pdf"                        # 馆方使用指南(主题检索/副主题词组配步骤)
  • Network accessline 111
    - 端点 `GET https://www.sinomed.ac.cn/suggest.do?dbtype=mt_&q=<中文词>` **无需登录**即返回 CMeSH 中文主题词候选。实测:

references/search_export/syntax_cards/wanfang.md

  • Network accessline 57
    tier: "B"   url_kind: "prefill"   url_template: "https://s.wanfangdata.com.cn/paper?q={urlenc}"
  • Network accessline 58
    url_kind: "prefill"   url_template: "https://s.wanfangdata.com.cn/paper?q={urlenc}"   ui_render: "client-SPA (Nuxt/Vue, window.__NUXT__)"
  • Network accessline 59
    url_template: "https://s.wanfangdata.com.cn/paper?q={urlenc}"
  • Network accessline 63
    verified_date: "2026-07-16" source_url:   - "http://www.llas.cas.cn/xwzx/tzgg/202204/P020241229644157292759.pdf"
  • Network accessline 64
    source_url:   - "http://www.llas.cas.cn/xwzx/tzgg/202204/P020241229644157292759.pdf"   - "https://library.zuel.edu.cn/_upload/article/files/16/da/a36893834ff8978060d5256a93b8/be1fd347-d276-49a0-8921-b25e6c17a1b8.pdf"
  • Network accessline 65
    - "http://www.llas.cas.cn/xwzx/tzgg/202204/P020241229644157292759.pdf"
  • Network accessline 66
    - "https://library.zuel.edu.cn/_upload/article/files/16/da/a36893834ff8978060d5256a93b8/be1fd347-d276-49a0-8921-b25e6c17a1b8.pdf"
  • Network accessline 79
    ### 范围与角色 万方智搜(万方数据,订阅)中文原生学术发现系统。深链 **B 档**:R4 §2.6 实测 `https://s.wanfangdata.com.cn/paper?q=<URL编码>` HTTP 200,返回 `window.__NUXT__` SPA 外壳(Nuxt/Vue,预填并前端拉结果)→ 浏览器内可用、脚本层取不到结果。
  • Network accessline 80
    万方智搜(万方数据,订阅)中文原生学术发现系统。深链 **B 档**:R4 §2.6 实测 `https://s.wanfangdata.com.cn/paper?q=<URL编码>` HTTP 200,返回 `window.__NUXT__` SPA 外壳(Nuxt/Vue,预填并前端拉结果)→ 浏览器内可用、脚本层取不到结果。

references/search_export/syntax_cards/wos.md

  • Network accessline 66
    tier: "C"   url_kind: "paste_only"   url_template: "https://www.webofscience.com/wos/woscc/advanced-search"
  • Network accessline 67
    url_kind: "paste_only"   url_template: "https://www.webofscience.com/wos/woscc/advanced-search"   note: "登录墙:advanced-search 页实测 HTTP 200 但仅加载 Angular 外壳(2026-09-30 由 basic-search 改:本卡产出的 TS= 字段标签只在 Advanced Search 生效),出结果需机构鉴权;Advanced Sea
  • Network accessline 68
    url_template: "https://www.webofscience.com/wos/woscc/advanced-search"
  • Network accessline 69
    note: "登录墙:advanced-search 页实测 HTTP 200 但仅加载 Angular 外壳(2026-09-30 由 basic-search 改:本卡产出的 TS= 字段标签只在 Advanced Search 生效),出结果需机构鉴权;Advanced Search 有会话内可分享 query 链接但绑定会话、非无状态预填。URL 结构已考证,执行待机构账号;交付=可粘贴检索式;绝不构造绕登录 URL。" source_url:   - "https:
  • Network accessline 70
    source_url:   - "https://webofscience.zendesk.com/hc/en-us/articles/20016122409105-Search-Operators"   - "https://webofscience.zendesk.com/hc/en-us/articles/26916347018257-Web-of-Science-Core-Collection-Advanced-Search-Field-Tags"
  • Network accessline 71
    - "https://webofscience.zendesk.com/hc/en-us/articles/20016122409105-Search-Operators"
  • Network accessline 72
    - "https://webofscience.zendesk.com/hc/en-us/articles/26916347018257-Web-of-Science-Core-Collection-Advanced-Search-Field-Tags"
  • Network accessline 73
    - "https://webofscience.zendesk.com/hc/en-us/articles/20130361503249-Advanced-Search-Query-Builder"
  • Network accessline 101
    ### 深链(C 档) `https://www.webofscience.com/wos/woscc/advanced-search` — 实测 HTTP 200(仅 SPA 外壳,出结果需鉴权;2026-09-30 复测)。检索式用 TS= 字段标签,只能粘进 Advanced Search,所以入口指向它而不是 basic-search。Advanced Search 有「会话内可分享 query 链接」(链条图标复制),但绑定会话、非无状态预填。URL 结构已考证,执
  • Network accessline 102
    `https://www.webofscience.com/wos/woscc/advanced-search` — 实测 HTTP 200(仅 SPA 外壳,出结果需鉴权;2026-09-30 复测)。检索式用 TS= 字段标签,只能粘进 Advanced Search,所以入口指向它而不是 basic-search。Advanced Search 有「会话内可分享 query 链接」(链条图标复制),但绑定会话、非无状态预填。URL 结构已考证,执行待机构账号;只观测不绕

references/setup.md

  • Access to secretsline 12
    [Credential-related source omitted]
  • Access to secretsline 13
    [Credential-related source omitted]
  • Access to secretsline 14
    [Credential-related source omitted]
  • Network accessline 32
    | | | |---|---| | Apply at | https://openalex.org/settings/api |
  • Network accessline 33
    |---|---| | Apply at | https://openalex.org/settings/api | | Cost | Free, $1/day quota (~10k list calls / 1k searches) |
  • Network accessline 34
    | Apply at | https://openalex.org/settings/api |
  • Access to secretsline 37
    [Credential-related source omitted]
  • Network accessline 40
    **Steps**: 1. Register at https://openalex.org (any email)
  • Network accessline 41
    1. Register at https://openalex.org (any email)
  • Network accessline 42
    2. Visit https://openalex.org/settings/api → generate API key
  • Access to secretsline 43
    [Credential-related source omitted]
  • Network accessline 49
    [Credential-related source omitted]
  • Access to secretsline 49
    [Credential-related source omitted]
  • Network accessline 55
    | | | |---|---| | Apply at | https://www.semanticscholar.org/product/api |
  • Network accessline 56
    |---|---| | Apply at | https://www.semanticscholar.org/product/api | | Cost | Free, no paid tier exists |
  • Network accessline 57
    | Apply at | https://www.semanticscholar.org/product/api |
  • Access to secretsline 60
    [Credential-related source omitted]
  • Network accessline 63
    **Steps**: 1. Visit https://www.semanticscholar.org/product/api
  • Network accessline 64
    1. Visit https://www.semanticscholar.org/product/api
  • Network accessline 71
    curl -s 'https://api.semanticscholar.org/graph/v1/paper/DOI:10.1162/neco.1997.9.8.1735?fields=influentialCitationCount' \
  • Network accessline 78
    | | | |---|---| | Apply at | https://account.ncbi.nlm.nih.gov/settings/ |
  • Network accessline 79
    |---|---| | Apply at | https://account.ncbi.nlm.nih.gov/settings/ | | Cost | Free |
  • Network accessline 80
    | Apply at | https://account.ncbi.nlm.nih.gov/settings/ |
  • Access to secretsline 83
    [Credential-related source omitted]
  • Network accessline 86
    **Steps**: 1. Visit https://account.ncbi.nlm.nih.gov/settings/ → log in (Google / ORCID / new NCBI account)
  • Network accessline 87
    1. Visit https://account.ncbi.nlm.nih.gov/settings/ → log in (Google / ORCID / new NCBI account)
  • Network accessline 95
    [Credential-related source omitted]
  • Access to secretsline 95
    [Credential-related source omitted]
  • Network accessline 113
    curl -s -H 'User-Agent: paper-search-pro/2.0 (mailto:YOUR_EMAIL)' \
  • Network accessline 114
    'https://api.crossref.org/works/10.1056/NEJMoa2034577' | head -c 400
  • Access to secretsline 164
    [Credential-related source omitted]
  • Access to secretsline 168
    [Credential-related source omitted]
  • Access to secretsline 172
    [Credential-related source omitted]
  • Access to secretsline 206
    [Credential-related source omitted]
  • Access to secretsline 207
    [Credential-related source omitted]
  • Access to secretsline 209
    [Credential-related source omitted]
  • Access to secretsline 214
    [Credential-related source omitted]
  • Access to secretsline 215
    [Credential-related source omitted]

references/source_routing.md

  • Access to secretsline 117
    [Credential-related source omitted]
  • Access to secretsline 126
    [Credential-related source omitted]

references/ss_helper_cheatsheet.md

  • Access to secretsline 8
    [Credential-related source omitted]
  • Access to secretsline 55
    [Credential-related source omitted]

scripts/__init__.py

  • Executable scriptline 1
    Executable file

scripts/agent_search.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 556
    [Credential-related source omitted]
  • Access to secretsline 1594
    [Credential-related source omitted]

scripts/arxiv_helper.py

  • Executable scriptline 1
    Executable file
  • Network accessline 141
    Examples:         'http://arxiv.org/abs/1706.03762v5' -> '1706.03762'
  • Network accessline 142
    'http://arxiv.org/abs/1706.03762v5' -> '1706.03762'
  • Network accessline 143
    'https://arxiv.org/abs/2605.21489'  -> '2605.21489'

scripts/config.py

  • Executable scriptline 1
    Executable file

scripts/crossref_helper.py

  • Executable scriptline 1
    Executable file
  • Network accessline 76
    _USER_AGENT_TEMPLATE = (     "paper-search-pro/2.0 "     "(https://github.com/anthropic/paper-search-pro; mailto:{email})"
  • Network accessline 77
    "paper-search-pro/2.0 "     "(https://github.com/anthropic/paper-search-pro; mailto:{email})" )
  • Network accessline 78
    "(https://github.com/anthropic/paper-search-pro; mailto:{email})"
  • Network accessline 79
    ) _BASE_URL = "https://api.crossref.org/works" _RATE_LIMIT_SLEEP = 0.1  # 10 req/s — well under polite-pool 10/s ceiling.
  • Network accessline 80
    _BASE_URL = "https://api.crossref.org/works"
  • Network accessline 101
    global _session, _email     _email = (config.crossref_email if config else "") or _DEFAULT_EMAIL     _session = requests.Session()
  • Network accessline 102
    _email = (config.crossref_email if config else "") or _DEFAULT_EMAIL     _session = requests.Session()     _session.headers["User-Agent"] = _USER_AGENT_TEMPLATE.format(email=_email)
  • Network accessline 103
    _session = requests.Session()
  • Network accessline 425
    type=_TYPE_MAP.get(rec.get("type") or ""),         citation_count=_as_int(rec.get("is-referenced-by-count")),         doi_url=f"https://doi.org/{doi}" if doi else None,
  • Network accessline 426
    citation_count=_as_int(rec.get("is-referenced-by-count")),         doi_url=f"https://doi.org/{doi}" if doi else None,         sources=["crossref"],
  • Network accessline 427
    doi_url=f"https://doi.org/{doi}" if doi else None,

scripts/data_materialization.py

  • Executable scriptline 1
    Executable file
  • Network accessline 416
    "rcs": p.rcs,             "citation_count": p.citation_count or 0,             "doi_url": p.doi_url or (f"https://doi.org/{p.doi}" if p.doi else None),
  • Network accessline 417
    "citation_count": p.citation_count or 0,             "doi_url": p.doi_url or (f"https://doi.org/{p.doi}" if p.doi else None),             "is_seed": (p.discovery_path or "").startswith("query:"),
  • Network accessline 418
    "doi_url": p.doi_url or (f"https://doi.org/{p.doi}" if p.doi else None),
  • Network accessline 589
    "venue": p.venue,         "doi": p.doi,         "doi_url": p.doi_url or (f"https://doi.org/{p.doi}" if p.doi else None),
  • Network accessline 590
    "doi": p.doi,         "doi_url": p.doi_url or (f"https://doi.org/{p.doi}" if p.doi else None),         "abstract": p.abstract,
  • Network accessline 591
    "doi_url": p.doi_url or (f"https://doi.org/{p.doi}" if p.doi else None),

scripts/detect_language.py

  • Executable scriptline 1
    Executable file

scripts/discovery_curve.py

  • Executable scriptline 1
    Executable file
  • Network accessline 112
    keys.append(f"pmid|{paper.pmid}")     if paper.openalex_id:         keys.append("openalex|" + paper.openalex_id.replace("https://openalex.org/", ""))
  • Network accessline 113
    if paper.openalex_id:         keys.append("openalex|" + paper.openalex_id.replace("https://openalex.org/", ""))     if paper.ss_paper_id:
  • Network accessline 114
    keys.append("openalex|" + paper.openalex_id.replace("https://openalex.org/", ""))

scripts/federated_kg_resolver.py

  • Executable scriptline 1
    Executable file
  • Network accessline 64
    Examples:         "https://doi.org/10.1038/X" -> "10.1038/x"
  • Network accessline 65
    "https://doi.org/10.1038/X" -> "10.1038/x"
  • Network accessline 71
    d = doi.strip().lower()     d = (         d.replace("https://doi.org/", "")
  • Network accessline 72
    d = (         d.replace("https://doi.org/", "")         .replace("http://doi.org/", "")
  • Network accessline 73
    d.replace("https://doi.org/", "")
  • Network accessline 74
    .replace("http://doi.org/", "")
  • Network accessline 75
    .replace("https://dx.doi.org/", "")
  • Network accessline 76
    .replace("http://dx.doi.org/", "")
  • Network accessline 88
    Examples:         "1706.03762v5"                 -> "1706.03762"         "https://arxiv.org/abs/2401.12345v2" -> "2401.12345"
  • Network accessline 89
    "1706.03762v5"                 -> "1706.03762"         "https://arxiv.org/abs/2401.12345v2" -> "2401.12345"     """
  • Network accessline 90
    "https://arxiv.org/abs/2401.12345v2" -> "2401.12345"
  • Network accessline 131
    return ("pmid", str(paper.pmid))     if paper.openalex_id:         oid = paper.openalex_id.replace("https://openalex.org/", "")
  • Network accessline 132
    if paper.openalex_id:         oid = paper.openalex_id.replace("https://openalex.org/", "")         return ("openalex", oid)
  • Network accessline 133
    oid = paper.openalex_id.replace("https://openalex.org/", "")

scripts/generate_exports.py

  • Executable scriptline 1
    Executable file
  • Network accessline 138
    fields.append(f"  doi = {{{p.doi}}}")         if p.doi_url or p.doi:             url = p.doi_url or f"https://doi.org/{p.doi}"
  • Network accessline 139
    if p.doi_url or p.doi:             url = p.doi_url or f"https://doi.org/{p.doi}"             fields.append(f"  url = {{{url}}}")
  • Network accessline 140
    url = p.doi_url or f"https://doi.org/{p.doi}"
  • Network accessline 185
    lines.append(f"DO  - {p.doi}")         if p.doi_url or p.doi:             lines.append(f"UR  - {p.doi_url or f'https://doi.org/{p.doi}'}")
  • Network accessline 186
    if p.doi_url or p.doi:             lines.append(f"UR  - {p.doi_url or f'https://doi.org/{p.doi}'}")         if p.abstract:
  • Network accessline 187
    lines.append(f"UR  - {p.doi_url or f'https://doi.org/{p.doi}'}")
  • Network accessline 246
    "venue": p.venue or "",                 "doi": p.doi or "",                 "doi_url": p.doi_url or (f"https://doi.org/{p.doi}" if p.doi else ""),
  • Network accessline 247
    "doi": p.doi or "",                 "doi_url": p.doi_url or (f"https://doi.org/{p.doi}" if p.doi else ""),                 "rcs": p.rcs if p.rcs is not None else "",
  • Network accessline 248
    "doi_url": p.doi_url or (f"https://doi.org/{p.doi}" if p.doi else ""),

scripts/html_renderer_webartifacts.py

  • Executable scriptline 1
    Executable file

scripts/journal_rank.py

  • Executable scriptline 1
    Executable file
  • Network accessline 119
    PORTAL_URL: Dict[str, str] = {     "cas": "https://www.fenqubiao.com",
  • Network accessline 120
    "cas": "https://www.fenqubiao.com",
  • Network accessline 121
    "jcr": "https://jcr.clarivate.com",
  • Network accessline 122
    "sjr": "https://www.scimagojr.com",
  • Network accessline 128
    DEFAULT_SOURCES: Dict[str, str] = {     "cas": (         "https://raw.githubusercontent.com/hitfyd/ShowJCR/master/"
  • Network accessline 129
    "cas": (         "https://raw.githubusercontent.com/hitfyd/ShowJCR/master/"         "%E4%B8%AD%E7%A7%91%E9%99%A2%E5%88%86%E5%8C%BA%E8%A1%A8%E5%8F%8AJCR"
  • Network accessline 130
    "https://raw.githubusercontent.com/hitfyd/ShowJCR/master/"
  • Network accessline 134
    ),     "jcr": (         "https://raw.githubusercontent.com/hitfyd/ShowJCR/master/"
  • Network accessline 135
    "jcr": (         "https://raw.githubusercontent.com/hitfyd/ShowJCR/master/"         "%E4%B8%AD%E7%A7%91%E9%99%A2%E5%88%86%E5%8C%BA%E8%A1%A8%E5%8F%8AJCR"
  • Network accessline 136
    "https://raw.githubusercontent.com/hitfyd/ShowJCR/master/"
  • Network accessline 140
    ),     "sjr": (         "https://raw.githubusercontent.com/saramabrouk173/zotero-sjr-ranker/"
  • Network accessline 141
    "sjr": (         "https://raw.githubusercontent.com/saramabrouk173/zotero-sjr-ranker/"         "main/scimagojr%202024.csv"
  • Network accessline 142
    "https://raw.githubusercontent.com/saramabrouk173/zotero-sjr-ranker/"
  • Network accessline 160
    _USER_AGENT = (     "paper-search-pro/2.2 "     "(https://github.com/anthropic/paper-search-pro; journal-rank fetch)"
  • Network accessline 161
    "paper-search-pro/2.2 "     "(https://github.com/anthropic/paper-search-pro; journal-rank fetch)" )
  • Network accessline 162
    "(https://github.com/anthropic/paper-search-pro; journal-rank fetch)"
  • Network accessline 606
    # --------------------------------------------------------------------------- # Cache + fetch (init-once; never re-fetch a present, fresh file)
  • Network accessline 607
    # Cache + fetch (init-once; never re-fetch a present, fresh file)
  • Network accessline 627
    def fetch(
  • Network accessline 648
    stale_days: re-fetch when a cached file is older than this.         force: re-fetch even if a fresh cache exists.         session: an injectable requests.Session (tests pass a fake; default
  • Network accessline 649
    force: re-fetch even if a fresh cache exists.         session: an injectable requests.Session (tests pass a fake; default             constructs one with the polite User-Agent).
  • Network accessline 650
    session: an injectable requests.Session (tests pass a fake; default
  • Network accessline 673
    continue         if sess is None:             sess = requests.Session()
  • Network accessline 674
    if sess is None:             sess = requests.Session()             sess.headers["User-Agent"] = _USER_AGENT
  • Network accessline 675
    sess = requests.Session()
  • Network accessline 704
    return fetch(platform=None, **kwargs)
  • Network accessline 872
    if args.command == "fetch":         cache_dir = args.cache_dir or cfg_cache_dir         result = fetch(
  • Network accessline 873
    cache_dir = args.cache_dir or cfg_cache_dir         result = fetch(             platform=args.platform, year=args.year, sources=cfg_sources,
  • Network accessline 874
    result = fetch(

scripts/md_report.py

  • Executable scriptline 1
    Executable file

scripts/nssd_helper.py

  • Executable scriptline 1
    Executable file
  • Network accessline 11
    Endpoint (verified live 2026-07-12, no login / no signature / no WAF cookie):     POST https://www.ncpssd.cn/searchHandler/search
  • Network accessline 12
    POST https://www.ncpssd.cn/searchHandler/search
  • Network accessline 96
    SEARCH_URL = "https://www.ncpssd.cn/searchHandler/search"
  • Network accessline 223
    Mirrors ``yiigle_helper._normalize_doi`` and the OpenAlex / SS convention so     the cross-source dedup key (federated_kg_resolver keys on the lowercase DOI)     lines up. Previously NSSD only lowercased, so a "https://doi.org/10.x" row
  • Network accessline 224
    the cross-source dedup key (federated_kg_resolver keys on the lowercase DOI)     lines up. Previously NSSD only lowercased, so a "https://doi.org/10.x" row     would not collide with the bare "10.x" form emitted by the other sources.
  • Network accessline 225
    lines up. Previously NSSD only lowercased, so a "https://doi.org/10.x" row
  • Network accessline 229
    if s is None:         return None     for prefix in ("https://doi.org/", "http://doi.org/", "doi.org/", "doi:"):
  • Network accessline 230
    return None     for prefix in ("https://doi.org/", "http://doi.org/", "doi.org/", "doi:"):         if s.lower().startswith(prefix):
  • Network accessline 231
    for prefix in ("https://doi.org/", "http://doi.org/", "doi.org/", "doi:"):
  • Network accessline 345
    type="article",         keywords=keywords,         doi_url=(f"https://doi.org/{doi}" if doi else None),
  • Network accessline 346
    keywords=keywords,         doi_url=(f"https://doi.org/{doi}" if doi else None),         sources=[_SOURCE],
  • Network accessline 347
    doi_url=(f"https://doi.org/{doi}" if doi else None),

scripts/openalex_guard.py

  • Executable scriptline 1
    Executable file

scripts/openalex_helper.py

  • Executable scriptline 1
    Executable file
  • Network accessline 10
    - F21 journal filter: must resolve source IDs first (display_name str is unreliable) - F6 Attention paper: cited_by 6543 is an OpenAlex data merger bug, not pyalex bug - ID prefix stripping required (raw IDs come as "https://openalex.org/W1
  • Network accessline 11
    - F6 Attention paper: cited_by 6543 is an OpenAlex data merger bug, not pyalex bug - ID prefix stripping required (raw IDs come as "https://openalex.org/W123...") """
  • Network accessline 12
    - ID prefix stripping required (raw IDs come as "https://openalex.org/W123...")
  • Access to secretsline 176
    [Credential-related source omitted]
  • Access to secretsline 182
    [Credential-related source omitted]
  • Access to secretsline 183
    [Credential-related source omitted]
  • Network accessline 191
    def _strip_oa_prefix(s: Optional[str], prefix: str = "https://openalex.org/") -> Optional[str]:
  • Network accessline 200
    if not doi:         return None     return doi.replace("https://doi.org/", "").replace("http://doi.org/", "").lower() or None
  • Network accessline 202
    return doi.replace("https://doi.org/", "").replace("http://doi.org/", "").lower() or None
  • Network accessline 230
    # Bare ID or URL: https://pubmed.ncbi.nlm.nih.gov/12345
  • Network accessline 299
    topics = [         {             "id": _strip_oa_prefix(t.get("id"), "https://openalex.org/"),
  • Network accessline 300
    {             "id": _strip_oa_prefix(t.get("id"), "https://openalex.org/"),             "name": t.get("display_name"),
  • Network accessline 301
    "id": _strip_oa_prefix(t.get("id"), "https://openalex.org/"),
  • Network accessline 801
    Accepts:     - "W3011865677"     - "https://openalex.org/W3011865677"
  • Network accessline 802
    - "W3011865677"     - "https://openalex.org/W3011865677"     - "10.2307/1914185"
  • Network accessline 803
    - "https://openalex.org/W3011865677"
  • Network accessline 804
    - "10.2307/1914185"     - "https://doi.org/10.2307/1914185"     """
  • Network accessline 805
    - "https://doi.org/10.2307/1914185"
  • Network accessline 809
    if s.startswith("10."):         s = f"https://doi.org/{s}"
  • Network accessline 810
    s = f"https://doi.org/{s}"
  • Network accessline 942
    s = openalex_id.strip()     if s.startswith("10."):         s = f"https://doi.org/{s}"
  • Network accessline 943
    if s.startswith("10."):         s = f"https://doi.org/{s}"     raw_work = openalex_guard.call(lambda: Works()[s])
  • Network accessline 944
    s = f"https://doi.org/{s}"
  • Network accessline 1014
    s = author_id_or_name.strip()     is_id = s.startswith("A") and len(s) >= 10 and s[1:].isdigit()     is_id = is_id or s.startswith("https://openalex.org/A")
  • Network accessline 1016
    is_id = is_id or s.startswith("https://openalex.org/A")

scripts/openreview_helper.py

  • Executable scriptline 1
    Executable file
  • Network accessline 16
    Endpoint discipline (anonymous, live-verified 2026-10-01):     GET https://api2.openreview.net/notes/search
  • Network accessline 17
    GET https://api2.openreview.net/notes/search
  • Network accessline 53
    "NeurIPS 2025 Poster", "COLM 2026", "EMNLP 2023 Findings";                               TMLR -> "TMLR". Never the bare word "OpenReview".     id                     -> pdf_url = "https://openreview.net/pdf?id=<id>" (only when
  • Network accessline 54
    TMLR -> "TMLR". Never the bare word "OpenReview".     id                     -> pdf_url = "https://openreview.net/pdf?id=<id>" (only when                               the note has a pdf — a small venue's paper may not)
  • Network accessline 55
    id                     -> pdf_url = "https://openreview.net/pdf?id=<id>" (only when
  • Network accessline 56
    the note has a pdf — a small venue's paper may not)     forum                  -> oa_locations = ["https://openreview.net/forum?id=<forum>"]     (constant)             -> type = "article", sources = ["openreview"]
  • Network accessline 57
    forum                  -> oa_locations = ["https://openreview.net/forum?id=<forum>"]
  • Network accessline 77
    _SEARCH_URL = "https://api2.openreview.net/notes/search"
  • Network accessline 275
    pdf = _val(content, "pdf")     pdf_url = (         f"https://openreview.net/pdf?id={note_id if isinstance(note_id, str) and note_id else forum}"
  • Network accessline 276
    pdf_url = (         f"https://openreview.net/pdf?id={note_id if isinstance(note_id, str) and note_id else forum}"         if pdf else None
  • Network accessline 277
    f"https://openreview.net/pdf?id={note_id if isinstance(note_id, str) and note_id else forum}"
  • Network accessline 289
    tldr=_clean_text(_val(content, "TLDR")),         pdf_url=pdf_url,         oa_locations=[f"https://openreview.net/forum?id={forum}"],
  • Network accessline 290
    pdf_url=pdf_url,         oa_locations=[f"https://openreview.net/forum?id={forum}"],         sources=["openreview"],
  • Network accessline 291
    oa_locations=[f"https://openreview.net/forum?id={forum}"],

scripts/prisma_s_logger.py

  • Executable scriptline 1
    Executable file

scripts/pubmed_helper.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 41
    [Credential-related source omitted]
  • Access to secretsline 42
    [Credential-related source omitted]
  • Network accessline 140
    "doi": doi,         "pmcid": pmcid,         "pmc_url": f"https://www.ncbi.nlm.nih.gov/pmc/articles/{pmcid}/" if pmcid else None,
  • Network accessline 141
    "pmcid": pmcid,         "pmc_url": f"https://www.ncbi.nlm.nih.gov/pmc/articles/{pmcid}/" if pmcid else None,         "title": title,
  • Network accessline 142
    "pmc_url": f"https://www.ncbi.nlm.nih.gov/pmc/articles/{pmcid}/" if pmcid else None,

scripts/quota_guard.py

  • Executable scriptline 1
    Executable file
  • Network accessline 64
    _PROBE_URL = "https://api.openalex.org/works?per_page=1"
  • Access to secretsline 163
    [Credential-related source omitted]
  • Access to secretsline 166
    [Credential-related source omitted]
  • Access to secretsline 168
    [Credential-related source omitted]
  • Access to secretsline 169
    [Credential-related source omitted]

scripts/rank_filter.py

  • Executable scriptline 1
    Executable file

scripts/rank_intent.py

  • Executable scriptline 1
    Executable file

scripts/rcs_parser.py

  • Executable scriptline 1
    Executable file

scripts/report_identity.py

  • Executable scriptline 1
    Executable file

scripts/search_export/__init__.py

  • Executable scriptline 1
    Executable file

scripts/search_export/deeplink.py

  • Executable scriptline 1
    Executable file
  • Network accessline 51
    #: The date the A-tier URL *patterns* below were last live-confirmed (curl HTTP
  • Network accessline 91
    _USER_AGENT = (     "paper-search-pro/2.4 "     "(https://github.com/O0000-code/paper-search-pro; deep-link verify)"
  • Network accessline 92
    "paper-search-pro/2.4 "     "(https://github.com/O0000-code/paper-search-pro; deep-link verify)" )
  • Network accessline 93
    "(https://github.com/O0000-code/paper-search-pro; deep-link verify)"
  • Network accessline 96
    _PUBMED_WEB = "https://pubmed.ncbi.nlm.nih.gov/?term={q}"
  • Network accessline 97
    _PUBMED_ESEARCH = (     "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term={q}" )
  • Network accessline 98
    "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term={q}"
  • Network accessline 99
    ) _ERIC_WEB = "https://eric.ed.gov/?q={q}" _CTGOV_API = "https://clinicaltrials.gov/api/v2/studies"
  • Network accessline 100
    _ERIC_WEB = "https://eric.ed.gov/?q={q}"
  • Network accessline 101
    _CTGOV_API = "https://clinicaltrials.gov/api/v2/studies"
  • Network accessline 102
    _CTGOV_UI = "https://clinicaltrials.gov/expert-search?term={q}"
  • Network accessline 320
    if sess is None:         import requests  # lazy: only when a real check is requested         sess = requests.Session()
  • Network accessline 321
    import requests  # lazy: only when a real check is requested         sess = requests.Session()         sess.headers["User-Agent"] = _USER_AGENT
  • Network accessline 322
    sess = requests.Session()

scripts/search_export/generate.py

  • Executable scriptline 1
    Executable file
  • Network accessline 103
    },     "who_ictrp": {         "role": "registry", "deep_link": "https://trialsearch.who.int",
  • Network accessline 104
    "who_ictrp": {         "role": "registry", "deep_link": "https://trialsearch.who.int",         "kind": "browser_entry",
  • Network accessline 105
    "role": "registry", "deep_link": "https://trialsearch.who.int",
  • Network accessline 1202
    m = re.search(r"[A-Za-z0-9][A-Za-z0-9.-]*\.[A-Za-z]{2,}", str(host or ""))     return f"https://{m.group(0)}" if m else None
  • Network accessline 1203
    return f"https://{m.group(0)}" if m else None

scripts/search_export/linter.py

  • Executable scriptline 1
    Executable file

scripts/search_export/proximity.py

  • Executable scriptline 1
    Executable file

scripts/search_export/vocab_verify.py

  • Executable scriptline 1
    Executable file
  • Network accessline 72
    _USER_AGENT = (     "paper-search-pro/2.4 "     "(https://github.com/anthropic/paper-search-pro; vocab verify)"
  • Network accessline 73
    "paper-search-pro/2.4 "     "(https://github.com/anthropic/paper-search-pro; vocab verify)" )
  • Network accessline 74
    "(https://github.com/anthropic/paper-search-pro; vocab verify)"
  • Network accessline 75
    ) _ERIC_API = "https://api.ies.ed.gov/eric/" _SINOMED_SUGGEST = "https://www.sinomed.ac.cn/suggest.do"
  • Network accessline 76
    _ERIC_API = "https://api.ies.ed.gov/eric/"
  • Network accessline 77
    _SINOMED_SUGGEST = "https://www.sinomed.ac.cn/suggest.do"
  • Access to secretsline 134
    [Credential-related source omitted]
  • Access to secretsline 143
    [Credential-related source omitted]
  • Access to secretsline 144
    [Credential-related source omitted]
  • Access to secretsline 159
    [Credential-related source omitted]
  • Access to secretsline 167
    [Credential-related source omitted]
  • Access to secretsline 171
    [Credential-related source omitted]
  • Access to secretsline 172
    [Credential-related source omitted]
  • Network accessline 218
    if sess is None:         import requests  # lazy         sess = requests.Session()
  • Network accessline 219
    import requests  # lazy         sess = requests.Session()         sess.headers["User-Agent"] = _USER_AGENT
  • Network accessline 220
    sess = requests.Session()
  • Network accessline 287
    if sess is None:         import requests  # lazy         sess = requests.Session()
  • Network accessline 288
    import requests  # lazy         sess = requests.Session()         sess.headers["User-Agent"] = _USER_AGENT
  • Network accessline 289
    sess = requests.Session()

scripts/semantic_cache.py

  • Executable scriptline 1
    Executable file

scripts/sjr_helper.py

  • Executable scriptline 1
    Executable file
  • Network accessline 73
    "Journal quartiles are from SCImago Journal Rank (SJR), derived from Scopus "     "data. © SCImago. Free for non-commercial use with citation; see "     "https://www.scimagojr.com/legal-notice.php. SJR is NOT the Clarivate JCR "
  • Network accessline 74
    "data. © SCImago. Free for non-commercial use with citation; see "     "https://www.scimagojr.com/legal-notice.php. SJR is NOT the Clarivate JCR "     "Impact Factor."
  • Network accessline 75
    "https://www.scimagojr.com/legal-notice.php. SJR is NOT the Clarivate JCR "
  • Network accessline 82
    SJR_DOWNLOAD_URL = "https://www.scimagojr.com/journalrank.php?out=xls&year={year}"
  • Network accessline 83
    SJR_PORTAL_URL = "https://www.scimagojr.com"

scripts/source_fallback.py

  • Executable scriptline 1
    Executable file
  • Network accessline 149
    s = (identifier or "").strip()     low = s.lower()     for prefix in ("https://doi.org/", "http://doi.org/", "doi:"):
  • Network accessline 150
    low = s.lower()     for prefix in ("https://doi.org/", "http://doi.org/", "doi:"):         if low.startswith(prefix):
  • Network accessline 151
    for prefix in ("https://doi.org/", "http://doi.org/", "doi:"):

scripts/ss_helper.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 83
    [Credential-related source omitted]
  • Access to secretsline 84
    [Credential-related source omitted]
  • Access to secretsline 85
    [Credential-related source omitted]
  • Access to secretsline 94
    [Credential-related source omitted]
  • Network accessline 116
    # Strip a possible "https://doi.org/" prefix defensively
  • Network accessline 117
    for prefix in ("https://doi.org/", "http://doi.org/", "doi.org/"):
  • Network accessline 135
    return None     d = doi.strip().lower()     for prefix in ("https://doi.org/", "http://doi.org/", "doi.org/", "doi:"):
  • Network accessline 136
    d = doi.strip().lower()     for prefix in ("https://doi.org/", "http://doi.org/", "doi.org/", "doi:"):         if d.startswith(prefix):
  • Network accessline 137
    for prefix in ("https://doi.org/", "http://doi.org/", "doi.org/", "doi:"):
  • Access to secretsline 316
    [Credential-related source omitted]
  • Network accessline 439
    _SS_GRAPH_URL = "https://api.semanticscholar.org/graph/v1"
  • Access to secretsline 501
    [Credential-related source omitted]
  • Access to secretsline 504
    [Credential-related source omitted]
  • Access to secretsline 508
    [Credential-related source omitted]
  • Access to secretsline 527
    [Credential-related source omitted]
  • Network accessline 543
    f"(HTTP {res.status_code}); continuing without a key. Renew "                 f"semantic_scholar_api_key in ~/.paper-search-pro/config.yaml "                 f"(https://www.semanticscholar.org/product/api#api-key-form).",
  • Network accessline 544
    [Credential-related source omitted]
  • Access to secretsline 544
    [Credential-related source omitted]
  • Network accessline 545
    f"(https://www.semanticscholar.org/product/api#api-key-form).",
  • Access to secretsline 622
    [Credential-related source omitted]
  • Access to secretsline 630
    [Credential-related source omitted]
  • Access to secretsline 643
    [Credential-related source omitted]
  • Network accessline 790
    is_oa=bool(pdf_url) if pdf_url else None,         pdf_url=pdf_url,         doi_url=(f"https://doi.org/{_ss_doi_from_external_ids(ext)}"
  • Network accessline 791
    pdf_url=pdf_url,         doi_url=(f"https://doi.org/{_ss_doi_from_external_ids(ext)}"                  if _ss_doi_from_external_ids(ext) else None),
  • Network accessline 792
    doi_url=(f"https://doi.org/{_ss_doi_from_external_ids(ext)}"
  • Access to secretsline 802
    [Credential-related source omitted]
  • Access to secretsline 837
    [Credential-related source omitted]
  • Access to secretsline 883
    [Credential-related source omitted]
  • Access to secretsline 893
    [Credential-related source omitted]
  • Access to secretsline 933
    [Credential-related source omitted]
  • Access to secretsline 954
    [Credential-related source omitted]
  • Access to secretsline 964
    [Credential-related source omitted]

scripts/types.py

  • Executable scriptline 1
    Executable file
  • Network accessline 54
    (or the chosen category's quartile). Data © SCImago (scimagojr.com),       non-commercial cited use — SCImago custom terms, NOT a Creative Commons /       CC BY-NC licence; attribution required.
  • Network accessline 55
    non-commercial cited use — SCImago custom terms, NOT a Creative Commons /       CC BY-NC licence; attribution required.     - sjr_category_quartiles     : {category: "Qn"} — per-category SJR quartiles.
  • Network accessline 56
    CC BY-NC licence; attribution required.
  • Access to secretsline 321
    [Credential-related source omitted]
  • Access to secretsline 322
    [Credential-related source omitted]
  • Access to secretsline 324
    [Credential-related source omitted]

scripts/vendored/LICENSE-paperqa.txt

  • Network accessline 2
    Apache License                            Version 2.0, January 2004                         http://www.apache.org/licenses/
  • Network accessline 4
    http://www.apache.org/licenses/
  • Network accessline 196
    http://www.apache.org/licenses/LICENSE-2.0

scripts/vendored/README-vendored.md

  • Network accessline 3
    This directory contains code and design patterns adapted from the [paper-qa](https://github.com/Future-House/paper-qa) project by FutureHouse
  • Network accessline 4
    [paper-qa](https://github.com/Future-House/paper-qa) project by FutureHouse
  • Network accessline 10
    - **Project**: paper-qa (also known as PaperQA / PaperQA2) - **Repository**: https://github.com/Future-House/paper-qa
  • Network accessline 11
    - **Repository**: https://github.com/Future-House/paper-qa

scripts/vendored/__init__.py

  • Executable scriptline 1
    Executable file

scripts/vendored/tenacity_retry.py

  • Executable scriptline 1
    Executable file
  • Network accessline 185
    @retryable_api_call(provider="openalex")         def fetch_work(work_id: str) -> dict:             return httpx.get(f"https://api.openalex.org/works/{work_id}").raise_for_status().json()
  • Network accessline 187
    return httpx.get(f"https://api.openalex.org/works/{work_id}").raise_for_status().json()

scripts/yiigle_helper.py

  • Executable scriptline 1
    Executable file
  • Network accessline 17
    Endpoint discipline (verified live 2026-07-12, no login / no signature):     POST https://www.yiigle.com/apiVue/search/searchList
  • Network accessline 18
    POST https://www.yiigle.com/apiVue/search/searchList
  • Network accessline 78
    _SEARCH_URL = "https://www.yiigle.com/apiVue/search/searchList"
  • Network accessline 111
    return None     d = str(doi).strip()     for prefix in ("https://doi.org/", "http://doi.org/", "doi.org/", "doi:"):
  • Network accessline 112
    d = str(doi).strip()     for prefix in ("https://doi.org/", "http://doi.org/", "doi.org/", "doi:"):         if d.lower().startswith(prefix):
  • Network accessline 113
    for prefix in ("https://doi.org/", "http://doi.org/", "doi.org/", "doi:"):
  • Network accessline 193
    type="article",         keywords=_extract_keywords(record),         doi_url=(f"https://doi.org/{doi}" if doi else None),
  • Network accessline 194
    keywords=_extract_keywords(record),         doi_url=(f"https://doi.org/{doi}" if doi else None),         sources=["yiigle"],
  • Network accessline 195
    doi_url=(f"https://doi.org/{doi}" if doi else None),

tests/__init__.py

  • Executable scriptline 1
    Executable file

tests/fixtures/openreview_challenge_403.json

  • Network accessline 1
    {  "_fixture_note": "Real HTTP 403 body from anonymous GET https://api2.openreview.net/notes?content.venueid=ICLR.cc/2026/Conference&limit=5 (2026-10-01).",
  • Network accessline 2
    "_fixture_note": "Real HTTP 403 body from anonymous GET https://api2.openreview.net/notes?content.venueid=ICLR.cc/2026/Conference&limit=5 (2026-10-01).",
  • Network accessline 7
    "status": 403,   "details": {    "challengeUrl": "https://openreview.net/challenge?redirect=https%3A%2F%2Fapi2.openreview.net%2Fnotes%3Fcontent.venueid%3DICLR.cc%252F2026%252FConference%26limit%3D5",
  • Network accessline 8
    "details": {    "challengeUrl": "https://openreview.net/challenge?redirect=https%3A%2F%2Fapi2.openreview.net%2Fnotes%3Fcontent.venueid%3DICLR.cc%252F2026%252FConference%26limit%3D5",    "reqId": "2026-09-30-10246308"
  • Network accessline 9
    "challengeUrl": "https://openreview.net/challenge?redirect=https%3A%2F%2Fapi2.openreview.net%2Fnotes%3Fcontent.venueid%3DICLR.cc%252F2026%252FConference%26limit%3D5",

tests/fixtures/openreview_search_page1.json

  • Network accessline 1
    {  "_fixture_note": "Real notes from anonymous GET https://api2.openreview.net/notes/search (2026-10-01), re-grouped into one page and trimmed: only the fields openreview_helper reads are kept, abstracts cut to 300 characters. Values are ot
  • Network accessline 2
    "_fixture_note": "Real notes from anonymous GET https://api2.openreview.net/notes/search (2026-10-01), re-grouped into one page and trimmed: only the fields openreview_helper reads are kept, abstracts cut to 300 characters. Values are other
  • Network accessline 543
    },     "pdf": {      "value": "https://proceedings.neurips.cc/paper_files/paper/2024/file/00d80722b756de0166523a87805dd00f-Paper-Conference.pdf"
  • Network accessline 544
    "pdf": {      "value": "https://proceedings.neurips.cc/paper_files/paper/2024/file/00d80722b756de0166523a87805dd00f-Paper-Conference.pdf"     }
  • Network accessline 545
    "value": "https://proceedings.neurips.cc/paper_files/paper/2024/file/00d80722b756de0166523a87805dd00f-Paper-Conference.pdf"
  • Network accessline 641
    },     "pdf": {      "value": "https://arxiv.org/pdf/2510.04365v1"
  • Network accessline 642
    "pdf": {      "value": "https://arxiv.org/pdf/2510.04365v1"     }
  • Network accessline 643
    "value": "https://arxiv.org/pdf/2510.04365v1"
  • Network accessline 673
    },     "pdf": {      "value": "http://arxiv.org/pdf/2505.18456v1"
  • Network accessline 674
    "pdf": {      "value": "http://arxiv.org/pdf/2505.18456v1"     }
  • Network accessline 675
    "value": "http://arxiv.org/pdf/2505.18456v1"

tests/fixtures/openreview_search_page2.json

  • Network accessline 1
    {  "_fixture_note": "Real notes from anonymous GET https://api2.openreview.net/notes/search (2026-10-01), re-grouped into one page and trimmed: only the fields openreview_helper reads are kept, abstracts cut to 300 characters. Values are ot
  • Network accessline 2
    "_fixture_note": "Real notes from anonymous GET https://api2.openreview.net/notes/search (2026-10-01), re-grouped into one page and trimmed: only the fields openreview_helper reads are kept, abstracts cut to 300 characters. Values are other

tests/test_agent_rank.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 111
    [Credential-related source omitted]

tests/test_agent_search.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 84
    [Credential-related source omitted]
  • Access to secretsline 85
    [Credential-related source omitted]
  • Access to secretsline 383
    [Credential-related source omitted]
  • Access to secretsline 409
    [Credential-related source omitted]

tests/test_arxiv_helper.py

  • Executable scriptline 1
    Executable file
  • Network accessline 76
    assert extract_arxiv_id("http://arxiv.org/abs/1706.03762v5") == "1706.03762"
  • Network accessline 77
    assert extract_arxiv_id("https://arxiv.org/abs/2605.21489") == "2605.21489"
  • Network accessline 78
    assert extract_arxiv_id("https://arxiv.org/pdf/1706.03762v7") == "1706.03762"

tests/test_arxiv_recent.py

  • Executable scriptline 1
    Executable file
  • Network accessline 80
    monkeypatch.setattr(axh.arxiv, "Client", _ArxivClient)     axh._client()._session.get("http://x", headers={})
  • Network accessline 81
    axh._client()._session.get("http://x", headers={})

tests/test_coverage_report.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 102
    [Credential-related source omitted]

tests/test_crossref_helper.py

  • Executable scriptline 1
    Executable file
  • Network accessline 66
    "license": [         {             "URL": "http://www.nejmgroup.org/legal/terms-of-use.htm",
  • Network accessline 67
    {             "URL": "http://www.nejmgroup.org/legal/terms-of-use.htm",             "content-version": "vor",
  • Network accessline 68
    "URL": "http://www.nejmgroup.org/legal/terms-of-use.htm",
  • Network accessline 92
    "funder": [{"name": "NIH", "DOI": "10.13039/100000002", "award": ["R01-12345"]}],     "license": [         {"URL": "https://creativecommons.org/licenses/by/4.0/",
  • Network accessline 93
    "license": [         {"URL": "https://creativecommons.org/licenses/by/4.0/",          "content-version": "vor", "delay-in-days": 365}
  • Network accessline 94
    {"URL": "https://creativecommons.org/licenses/by/4.0/",
  • Network accessline 232
    self.assertEqual(lic["URL"], "http://www.nejmgroup.org/legal/terms-of-use.htm")

tests/test_data_materialization_rank.py

  • Executable scriptline 1
    Executable file

tests/test_detect_language.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 53
    [Credential-related source omitted]

tests/test_discovery_curve.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 193
    [Credential-related source omitted]
  • Access to secretsline 253
    [Credential-related source omitted]

tests/test_enrich_kg.py

  • Executable scriptline 1
    Executable file
  • Network accessline 46
    "tldr": {"model": "tldr@v2.0.0", "text": "TLDR A1"},         "citationCount": 44, "influentialCitationCount": 7,         "openAccessPdf": {"url": "https://x/a1.pdf"}, "venue": "Journal A",
  • Network accessline 47
    "citationCount": 44, "influentialCitationCount": 7,         "openAccessPdf": {"url": "https://x/a1.pdf"}, "venue": "Journal A",         "publicationVenue": {"id": "v1", "name": "Journal A", "issn": "1111-1111",
  • Network accessline 48
    "openAccessPdf": {"url": "https://x/a1.pdf"}, "venue": "Journal A",
  • Network accessline 74
    "abstract": None, "sources": ["openalex"], "rcs": 8, "authors": [{"name": "Alice"}],      "venue": "J A", "issn": "1111-1111"},     {"doi": "https://doi.org/10.1000/b2", "title": "Has abstract — 中文标题",
  • Network accessline 75
    "venue": "J A", "issn": "1111-1111"},     {"doi": "https://doi.org/10.1000/b2", "title": "Has abstract — 中文标题",      "citation_count": 10, "abstract": "OA abstract", "sources": ["openalex"], "rcs": 6},
  • Network accessline 76
    {"doi": "https://doi.org/10.1000/b2", "title": "Has abstract — 中文标题",
  • Network accessline 91
    "DOI": "10.1056/nejmoa2034577",         "funder": [{"name": "BioNTech and Pfizer", "DOI": "10.13039/100004319", "award": []}],         "license": [{"URL": "http://www.nejmgroup.org/legal/terms-of-use.htm",
  • Network accessline 92
    "funder": [{"name": "BioNTech and Pfizer", "DOI": "10.13039/100004319", "award": []}],         "license": [{"URL": "http://www.nejmgroup.org/legal/terms-of-use.htm",                      "content-version": "vor", "delay-in-days": 0}],
  • Network accessline 93
    "license": [{"URL": "http://www.nejmgroup.org/legal/terms-of-use.htm",
  • Network accessline 99
    "DOI": "10.1234/trial",         "funder": [{"name": "NIH", "DOI": "10.13039/100000002", "award": ["R01-12345"]}],         "license": [{"URL": "https://creativecommons.org/licenses/by/4.0/",
  • Network accessline 100
    "funder": [{"name": "NIH", "DOI": "10.13039/100000002", "award": ["R01-12345"]}],         "license": [{"URL": "https://creativecommons.org/licenses/by/4.0/",                      "content-version": "vor", "delay-in-days": 365}],
  • Network accessline 101
    "license": [{"URL": "https://creativecommons.org/licenses/by/4.0/",
  • Access to secretsline 192
    [Credential-related source omitted]
  • Network accessline 216
    def fetch(doi):
  • Access to secretsline 352
    [Credential-related source omitted]

tests/test_federated_kg_resolver.py

  • Executable scriptline 1
    Executable file
  • Network accessline 42
    assert normalize_doi("https://doi.org/10.1038/X") == "10.1038/x"
  • Network accessline 55
    assert normalize_arxiv_id("https://arxiv.org/abs/2401.12345v2") == "2401.12345"

tests/test_html_renderer_webartifacts.py

  • Executable scriptline 1
    Executable file

tests/test_journal_rank.py

  • Executable scriptline 1
    Executable file
  • Network accessline 265
    """Fetch (fake session) into cache then load — the realistic round-trip."""
  • Network accessline 266
    sess = _full_session()     jr.fetch(cache_dir=cache_dir, session=sess)
  • Network accessline 267
    jr.fetch(cache_dir=cache_dir, session=sess)
  • Network accessline 335
    with tempfile.TemporaryDirectory() as td:         sess1 = _full_session()         jr.fetch(cache_dir=Path(td), session=sess1)
  • Network accessline 336
    sess1 = _full_session()         jr.fetch(cache_dir=Path(td), session=sess1)         assert len(sess1.calls) == 3  # first time: all three fetched
  • Network accessline 337
    jr.fetch(cache_dir=Path(td), session=sess1)
  • Network accessline 340
    sess2 = _full_session()         res = jr.fetch(cache_dir=Path(td), session=sess2)
  • Network accessline 341
    res = jr.fetch(cache_dir=Path(td), session=sess2)
  • Network accessline 347
    def test_fetch_force_refetches():     with tempfile.TemporaryDirectory() as td:         jr.fetch(cache_dir=Path(td), session=_full_session())
  • Network accessline 348
    with tempfile.TemporaryDirectory() as td:         jr.fetch(cache_dir=Path(td), session=_full_session())         sess = _full_session()
  • Network accessline 349
    jr.fetch(cache_dir=Path(td), session=_full_session())
  • Network accessline 350
    sess = _full_session()         jr.fetch(cache_dir=Path(td), session=sess, force=True)         assert len(sess.calls) == 3  # force overrides init-once
  • Network accessline 351
    jr.fetch(cache_dir=Path(td), session=sess, force=True)
  • Network accessline 357
    with tempfile.TemporaryDirectory() as td:         td = Path(td)         jr.fetch(cache_dir=td, session=_full_session())
  • Network accessline 359
    jr.fetch(cache_dir=td, session=_full_session())
  • Network accessline 364
    os.utime(p, (old, old))         sess = _full_session()         jr.fetch(cache_dir=td, session=sess, stale_days=365)
  • Network accessline 365
    sess = _full_session()         jr.fetch(cache_dir=td, session=sess, stale_days=365)         assert len(sess.calls) == 3  # stale -> re-fetched
  • Network accessline 366
    jr.fetch(cache_dir=td, session=sess, stale_days=365)
  • Network accessline 372
    with tempfile.TemporaryDirectory() as td:         sess = _full_session()         res = jr.fetch(platform="sjr", cache_dir=Path(td), session=sess)
  • Network accessline 373
    sess = _full_session()         res = jr.fetch(platform="sjr", cache_dir=Path(td), session=sess)         assert list(res.keys()) == ["sjr"]
  • Network accessline 374
    res = jr.fetch(platform="sjr", cache_dir=Path(td), session=sess)
  • Network accessline 392
    "FQBJCR": _FakeResp(404, b""),         })         res = jr.fetch(cache_dir=Path(td), session=sess)
  • Network accessline 393
    })         res = jr.fetch(cache_dir=Path(td), session=sess)         assert res["cas"] is None          # degraded, no crash
  • Network accessline 394
    res = jr.fetch(cache_dir=Path(td), session=sess)
  • Network accessline 410
    "scimagojr": _FakeResp(200, _SJR_CSV.encode("utf-8")),         }, raise_on={"FQBJCR"})         res = jr.fetch(cache_dir=Path(td), session=sess)
  • Network accessline 411
    }, raise_on={"FQBJCR"})         res = jr.fetch(cache_dir=Path(td), session=sess)         assert res["cas"] is None  # RequestException swallowed
  • Network accessline 412
    res = jr.fetch(cache_dir=Path(td), session=sess)

tests/test_modules_smoke.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 25
    [Credential-related source omitted]
  • Access to secretsline 26
    [Credential-related source omitted]

tests/test_nssd_helper.py

  • Executable scriptline 1
    Executable file
  • Network accessline 270
    e = nssd_helper._row_to_entity(ROW_WITH_DOI)     assert e.doi == "10.12677/ap.2021.114099"  # lowercased     assert e.doi_url == "https://doi.org/10.12677/ap.2021.114099"
  • Network accessline 271
    assert e.doi == "10.12677/ap.2021.114099"  # lowercased     assert e.doi_url == "https://doi.org/10.12677/ap.2021.114099"     assert e.paper_id == "10.12677/ap.2021.114099"  # DOI outranks native id
  • Network accessline 272
    assert e.doi_url == "https://doi.org/10.12677/ap.2021.114099"
  • Network accessline 492
    "issn": "1234-5678",     "years": "2022",     "doi": "https://doi.org/10.1234/ABC.2022",
  • Network accessline 493
    "years": "2022",     "doi": "https://doi.org/10.1234/ABC.2022",     "type": "中文期刊文章",
  • Network accessline 494
    "doi": "https://doi.org/10.1234/ABC.2022",
  • Network accessline 500
    f = nssd_helper._normalize_doi     assert f("10.1234/ABC") == "10.1234/abc"     assert f("https://doi.org/10.1/x") == "10.1/x"
  • Network accessline 501
    assert f("10.1234/ABC") == "10.1234/abc"     assert f("https://doi.org/10.1/x") == "10.1/x"     assert f("http://doi.org/10.1/x") == "10.1/x"
  • Network accessline 502
    assert f("https://doi.org/10.1/x") == "10.1/x"
  • Network accessline 503
    assert f("http://doi.org/10.1/x") == "10.1/x"
  • Network accessline 511
    e = nssd_helper._row_to_entity(ROW_DOI_URL)     assert e.doi == "10.1234/abc.2022"  # URL prefix stripped + lowercased     assert e.doi_url == "https://doi.org/10.1234/abc.2022"
  • Network accessline 512
    assert e.doi == "10.1234/abc.2022"  # URL prefix stripped + lowercased     assert e.doi_url == "https://doi.org/10.1234/abc.2022"     assert e.paper_id == "10.1234/abc.2022"  # DOI outranks native id
  • Network accessline 513
    assert e.doi_url == "https://doi.org/10.1234/abc.2022"
  • Network accessline 616
    # The live-verified two-concept target (A3 D-row, total≈519). This is the exact # string the reproducible curl in A3_nssd_verification.md §附 posts.
  • Network accessline 617
    # string the reproducible curl in A3_nssd_verification.md §附 posts.

tests/test_openalex_fallback.py

  • Executable scriptline 1
    Executable file
  • Network accessline 53
    res.headers.update(headers or {})     res._content = body     res.url = "https://api.openalex.org/works?search=x"
  • Network accessline 54
    res._content = body     res.url = "https://api.openalex.org/works?search=x"     res.reason = "Too Many Requests" if status == 429 else "Error"
  • Network accessline 55
    res.url = "https://api.openalex.org/works?search=x"     res.reason = "Too Many Requests" if status == 429 else "Error"     return res
  • Network accessline 60
    def _http_error(status, headers=None):     return requests.HTTPError(response=_response(status, headers))
  • Network accessline 61
    return requests.HTTPError(response=_response(status, headers))
  • Network accessline 133
    def test_connection_error_becomes_unavailable():     fn, _ = _raiser(requests.ConnectionError("down"), requests.ConnectionError("down"))
  • Network accessline 134
    fn, _ = _raiser(requests.ConnectionError("down"), requests.ConnectionError("down"))
  • Network accessline 181
    def get(self, per_page, page):         if page == 1:             return [{"id": "https://openalex.org/W1", "doi": "https://doi.org/10.1/a",
  • Network accessline 182
    if page == 1:             return [{"id": "https://openalex.org/W1", "doi": "https://doi.org/10.1/a",                      "title": "Kept", "display_name": "Kept", "publication_year": 2020}]
  • Network accessline 183
    return [{"id": "https://openalex.org/W1", "doi": "https://doi.org/10.1/a",
  • Network accessline 306
    monkeypatch.setattr(oah, "get_work", _exhausted)     monkeypatch.setattr(ss_helper, "get_paper", lambda doi: _paper(doi))     out, err, code = _run_cli(monkeypatch, ["get", "https://doi.org/10.5/x"])
  • Network accessline 307
    monkeypatch.setattr(ss_helper, "get_paper", lambda doi: _paper(doi))     out, err, code = _run_cli(monkeypatch, ["get", "https://doi.org/10.5/x"])     assert code == 0 and json.loads(out)["doi"] == "10.5/x"
  • Network accessline 308
    out, err, code = _run_cli(monkeypatch, ["get", "https://doi.org/10.5/x"])
  • Access to secretsline 385
    [Credential-related source omitted]
  • Access to secretsline 389
    [Credential-related source omitted]
  • Access to secretsline 396
    [Credential-related source omitted]
  • Network accessline 533
    def fetch(query, total_papers, sort, year_min=None, year_max=None, date_from=None, date_to=None, title_abstract_only=False):

tests/test_openalex_helper.py

  • Executable scriptline 1
    Executable file
  • Network accessline 114
    assert _strip_oa_prefix("https://openalex.org/W3011865677") == "W3011865677"
  • Network accessline 115
    assert _strip_oa_prefix("W3011865677") == "W3011865677"     assert _strip_oa_prefix(None) is None     assert _strip_doi_prefix("https://doi.org/10.2307/1914185") == "10.2307/1914185"
  • Network accessline 116
    assert _strip_oa_prefix(None) is None     assert _strip_doi_prefix("https://doi.org/10.2307/1914185") == "10.2307/1914185"     assert _strip_doi_prefix("10.2307/1914185") == "10.2307/1914185"
  • Network accessline 117
    assert _strip_doi_prefix("https://doi.org/10.2307/1914185") == "10.2307/1914185"
  • Network accessline 153
    work = {         "id": "https://openalex.org/W1",
  • Network accessline 154
    "id": "https://openalex.org/W1",
  • Network accessline 156
    "open_access": {             "is_oa": True,             "oa_url": "https://www.nature.com/articles/s41586-021-03819-2.pdf",
  • Network accessline 157
    "is_oa": True,             "oa_url": "https://www.nature.com/articles/s41586-021-03819-2.pdf",         },
  • Network accessline 158
    "oa_url": "https://www.nature.com/articles/s41586-021-03819-2.pdf",
  • Network accessline 161
    {                 "is_oa": True,                 "pdf_url": "https://www.nature.com/articles/s41586-021-03819-2.pdf",
  • Network accessline 162
    "is_oa": True,                 "pdf_url": "https://www.nature.com/articles/s41586-021-03819-2.pdf",                 "landing_page_url": "https://nature.com/x",
  • Network accessline 163
    "pdf_url": "https://www.nature.com/articles/s41586-021-03819-2.pdf",
  • Network accessline 164
    "landing_page_url": "https://nature.com/x",
  • Network accessline 165
    },             {"is_oa": True, "landing_page_url": "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8371605/"},             {"is_oa": True, "pdf_url": "https://repo.example.edu/alphafold.pdf"},
  • Network accessline 166
    {"is_oa": True, "landing_page_url": "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8371605/"},
  • Network accessline 167
    {"is_oa": True, "pdf_url": "https://repo.example.edu/alphafold.pdf"},
  • Network accessline 168
    {"is_oa": False, "landing_page_url": "https://paywalled.example.com"},
  • Network accessline 170
    {"is_oa": True, "pdf_url": "https://www.nature.com/articles/s41586-021-03819-2.pdf"},
  • Network accessline 173
    e = _to_entity(work)     assert len(e.oa_locations) == 3, f"expected 3 OA copies, got {e.oa_locations}"     assert e.oa_locations[0] == "https://www.nature.com/articles/s41586-021-03819-2.pdf"
  • Network accessline 174
    assert len(e.oa_locations) == 3, f"expected 3 OA copies, got {e.oa_locations}"     assert e.oa_locations[0] == "https://www.nature.com/articles/s41586-021-03819-2.pdf"     assert "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8371605/" in e.
  • Network accessline 175
    assert e.oa_locations[0] == "https://www.nature.com/articles/s41586-021-03819-2.pdf"
  • Network accessline 176
    assert "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8371605/" in e.oa_locations
  • Network accessline 178
    assert e.pdf_url == "https://www.nature.com/articles/s41586-021-03819-2.pdf"
  • Network accessline 185
    work = {         "id": "https://openalex.org/W2",
  • Network accessline 186
    "id": "https://openalex.org/W2",
  • Network accessline 187
    "title": "Closed",         "locations": [{"is_oa": False, "landing_page_url": "https://paywall.example"}],     }
  • Network accessline 188
    "locations": [{"is_oa": False, "landing_page_url": "https://paywall.example"}],
  • Access to secretsline 231
    [Credential-related source omitted]
  • Network accessline 497
    p1 = get_work("10.2307/1914185")     p2 = get_work("https://doi.org/10.2307/1914185")
  • Network accessline 498
    p2 = get_work("https://doi.org/10.2307/1914185")

tests/test_openreview_helper.py

  • Executable scriptline 1
    Executable file
  • Network accessline 301
    assert [a.name for a in e.authors][:3] == ["Pengxiang Li", "Yefan Zhou", "Dilxat Muhtar"]     assert e.keywords == ["diffusion language model", "discrete"]     assert e.pdf_url == "https://openreview.net/pdf?id=g88nt4ieTG"
  • Network accessline 302
    assert e.keywords == ["diffusion language model", "discrete"]     assert e.pdf_url == "https://openreview.net/pdf?id=g88nt4ieTG"     assert e.oa_locations == ["https://openreview.net/forum?id=g88nt4ieTG"]
  • Network accessline 303
    assert e.pdf_url == "https://openreview.net/pdf?id=g88nt4ieTG"
  • Network accessline 304
    assert e.oa_locations == ["https://openreview.net/forum?id=g88nt4ieTG"]
  • Network accessline 318
    assert "pdf" not in note["content"]     assert e.pdf_url is None     assert e.oa_locations == [f"https://openreview.net/forum?id={note['forum']}"]
  • Network accessline 320
    assert e.oa_locations == [f"https://openreview.net/forum?id={note['forum']}"]
  • Network accessline 326
    e = orh._note_to_entity(n)     assert e.source_native_id == "openreview:forumY"     assert e.pdf_url == "https://openreview.net/pdf?id=noteX"
  • Network accessline 327
    assert e.source_native_id == "openreview:forumY"     assert e.pdf_url == "https://openreview.net/pdf?id=noteX"     assert e.oa_locations == ["https://openreview.net/forum?id=forumY"]
  • Network accessline 328
    assert e.pdf_url == "https://openreview.net/pdf?id=noteX"
  • Network accessline 329
    assert e.oa_locations == ["https://openreview.net/forum?id=forumY"]
  • Network accessline 412
    assert [c["params"]["offset"] for c in sess.calls] == [0, 25]     for c in sess.calls:         assert c["url"] == "https://api2.openreview.net/notes/search"
  • Network accessline 413
    for c in sess.calls:         assert c["url"] == "https://api2.openreview.net/notes/search"         p = c["params"]
  • Network accessline 414
    assert c["url"] == "https://api2.openreview.net/notes/search"

tests/test_openreview_merge.py

  • Executable scriptline 1
    Executable file

tests/test_pool_count.py

  • Executable scriptline 1
    Executable file

tests/test_prisma_s_logger.py

  • Executable scriptline 1
    Executable file

tests/test_pubmed_helper.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 39
    [Credential-related source omitted]
  • Access to secretsline 42
    [Credential-related source omitted]
  • Access to secretsline 46
    [Credential-related source omitted]
  • Network accessline 171
    assert paper.pmcid == "PMC7745181", f"Expected PMC7745181, got {paper.pmcid}"     assert paper.pmc_url == "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7745181/", (
  • Network accessline 172
    assert paper.pmc_url == "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7745181/", (

tests/test_query_warning.py

  • Executable scriptline 1
    Executable file

tests/test_quota_guard.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 70
    [Credential-related source omitted]
  • Access to secretsline 72
    [Credential-related source omitted]
  • Access to secretsline 169
    [Credential-related source omitted]
  • Access to secretsline 181
    [Credential-related source omitted]

tests/test_rank_filter.py

  • Executable scriptline 1
    Executable file

tests/test_rank_intent.py

  • Executable scriptline 1
    Executable file

tests/test_rcs_parser.py

  • Executable scriptline 1
    Executable file

tests/test_recency_legs.py

  • Executable scriptline 1
    Executable file

tests/test_report_identity.py

  • Executable scriptline 1
    Executable file

tests/test_search_export_deeplink.py

  • Executable scriptline 1
    Executable file
  • Network accessline 90
    r = dl.build_deep_link("PubMed", '"Mindfulness"[Mesh] AND anxiety[tiab]')     assert r["tier"] == "A" and r["url_kind"] == "prefill"     assert r["url"].startswith("https://pubmed.ncbi.nlm.nih.gov/?term=")
  • Network accessline 91
    assert r["tier"] == "A" and r["url_kind"] == "prefill"     assert r["url"].startswith("https://pubmed.ncbi.nlm.nih.gov/?term=")     assert "%5B" in r["url"], "MeSH brackets must be encoded in the web URL"
  • Network accessline 92
    assert r["url"].startswith("https://pubmed.ncbi.nlm.nih.gov/?term=")
  • Network accessline 107
    r = dl.build_deep_link("eric", "mindfulness AND anxiety")     assert r["tier"] == "A" and r["url_kind"] == "prefill"     assert r["url"].startswith("https://eric.ed.gov/?q=")
  • Network accessline 108
    assert r["tier"] == "A" and r["url_kind"] == "prefill"     assert r["url"].startswith("https://eric.ed.gov/?q=")     assert r["api_url"] is None
  • Network accessline 109
    assert r["url"].startswith("https://eric.ed.gov/?q=")
  • Network accessline 130
    assert r["machine_verifiable_endpoint"] == "api_url"     assert r["ui_render"] == "client-SPA"     assert r["url"].startswith("https://clinicaltrials.gov/expert-search?term=")
  • Network accessline 131
    assert r["ui_render"] == "client-SPA"     assert r["url"].startswith("https://clinicaltrials.gov/expert-search?term=")     print(f"OK  CT.gov A-tier: api_url machine-verifiable, human ui separate")
  • Network accessline 132
    assert r["url"].startswith("https://clinicaltrials.gov/expert-search?term=")
  • Network accessline 148
    def test_build_b_tier_browser_only_no_filled_url():     r = dl.build_deep_link(         "ieee", "test", url_template="https://ieeexplore.ieee.org/search/...{q}",
  • Network accessline 149
    r = dl.build_deep_link(         "ieee", "test", url_template="https://ieeexplore.ieee.org/search/...{q}",     )
  • Network accessline 150
    "ieee", "test", url_template="https://ieeexplore.ieee.org/search/...{q}",
  • Network accessline 152
    assert r["tier"] == "B" and r["url_kind"] == "browser"     assert r["url"] is None, "B tier must NOT return a constructed filled URL"     assert r["url_template"] == "https://ieeexplore.ieee.org/search/...{q}"
  • Network accessline 153
    assert r["url"] is None, "B tier must NOT return a constructed filled URL"     assert r["url_template"] == "https://ieeexplore.ieee.org/search/...{q}"     print("OK  B tier (IEEE): url None, card template surfaced verbatim")
  • Network accessline 154
    assert r["url_template"] == "https://ieeexplore.ieee.org/search/...{q}"

tests/test_search_export_generate.py

  • Executable scriptline 1
    Executable file
  • Network accessline 129
    wos = lt.load_card("wos")["deep_link"]["url_template"]     scopus = lt.load_card("scopus")["deep_link"]["url_template"]     assert wos == "https://www.webofscience.com/wos/woscc/advanced-search"
  • Network accessline 130
    scopus = lt.load_card("scopus")["deep_link"]["url_template"]     assert wos == "https://www.webofscience.com/wos/woscc/advanced-search"     assert scopus == "https://www.scopus.com/search/form.uri?display=advanced"
  • Network accessline 131
    assert wos == "https://www.webofscience.com/wos/woscc/advanced-search"
  • Network accessline 132
    assert scopus == "https://www.scopus.com/search/form.uri?display=advanced"
  • Network accessline 389
    assert re.search(         r"\[打开并直接执行检索\]\(https://pubmed\.ncbi\.nlm\.nih\.gov/\?term=", md)
  • Network accessline 390
    r"\[打开并直接执行检索\]\(https://pubmed\.ncbi\.nlm\.nih\.gov/\?term=", md)
  • Network accessline 392
    assert "[打开 Advanced Search](https://www.webofscience.com/wos/woscc/advanced-search)" in md
  • Network accessline 393
    assert "[打开专业检索](https://s.wanfangdata.com.cn/paper)" in md
  • Network accessline 394
    assert "[打开专业检索](https://kns.cnki.net)" in md
  • Network accessline 665
    assert p["deep_link"]["tier"] == "A"     assert p["deep_link"]["url"] and p["deep_link"]["url"].startswith(         "https://pubmed.ncbi.nlm.nih.gov/?term="
  • Network accessline 666
    assert p["deep_link"]["url"] and p["deep_link"]["url"].startswith(         "https://pubmed.ncbi.nlm.nih.gov/?term="     )
  • Network accessline 667
    "https://pubmed.ncbi.nlm.nih.gov/?term="
  • Access to secretsline 1266
    [Credential-related source omitted]

tests/test_search_export_linter.py

  • Executable scriptline 1
    Executable file

tests/test_search_export_proximity.py

  • Executable scriptline 1
    Executable file

tests/test_search_export_vocab_verify.py

  • Executable scriptline 1
    Executable file

tests/test_sjr_helper.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 368
    [Credential-related source omitted]
  • Access to secretsline 504
    [Credential-related source omitted]
  • Access to secretsline 505
    [Credential-related source omitted]

tests/test_ss_helper.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 10
    [Credential-related source omitted]
  • Network accessline 107
    assert ss_helper._doi_for_ss("") is None     assert ss_helper._doi_for_ss("10.1234/Foo") == "DOI:10.1234/foo"     assert ss_helper._doi_for_ss("https://doi.org/10.1234/Bar") == "DOI:10.1234/bar"
  • Network accessline 109
    assert ss_helper._doi_for_ss("https://doi.org/10.1234/Bar") == "DOI:10.1234/bar"
  • Network accessline 320
    doi="10.1234/Foo", paper_id="HEX", title="Mapped Paper", year=2019,         cites=123, icit=7, issn="1234-5678", venue_name="Journal of Things",         abstract="An abstract.", pdf="https://x/y.pdf",
  • Network accessline 321
    cites=123, icit=7, issn="1234-5678", venue_name="Journal of Things",         abstract="An abstract.", pdf="https://x/y.pdf",     )
  • Network accessline 322
    abstract="An abstract.", pdf="https://x/y.pdf",
  • Network accessline 332
    assert e.venue == "Journal of Things"     assert e.abstract == "An abstract."     assert e.is_oa is True and e.pdf_url == "https://x/y.pdf"
  • Network accessline 333
    assert e.abstract == "An abstract."     assert e.is_oa is True and e.pdf_url == "https://x/y.pdf"     assert e.doi_url == "https://doi.org/10.1234/foo"
  • Network accessline 334
    assert e.is_oa is True and e.pdf_url == "https://x/y.pdf"
  • Network accessline 335
    assert e.doi_url == "https://doi.org/10.1234/foo"
  • Access to secretsline 531
    [Credential-related source omitted]

tests/test_stable_ids.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 16
    [Credential-related source omitted]
  • Network accessline 36
    w = {"id": "https://openalex.org/W1", "title": "T", "publication_year": 2024,

tests/test_year_and_query_edges.py

  • Executable scriptline 1
    Executable file

tests/test_year_bounds.py

  • Executable scriptline 1
    Executable file

tests/test_yiigle_helper.py

  • Executable scriptline 1
    Executable file
  • Network accessline 58
    "artificialKeywords": list(keywords) if keywords is not None else None,         "keywords": None,         "artUrl": f"https://rs.yiigle.com/cmaid/{art_id}",
  • Network accessline 59
    "keywords": None,         "artUrl": f"https://rs.yiigle.com/cmaid/{art_id}",     }
  • Network accessline 60
    "artUrl": f"https://rs.yiigle.com/cmaid/{art_id}",
  • Network accessline 106
    assert e.abstract.startswith("近年来")     assert e.doi == "10.3760/cma.j.cn114452-20240626-00330"  # lowercased, no prefix     assert e.doi_url == "https://doi.org/10.3760/cma.j.cn114452-20240626-00330"
  • Network accessline 107
    assert e.doi == "10.3760/cma.j.cn114452-20240626-00330"  # lowercased, no prefix     assert e.doi_url == "https://doi.org/10.3760/cma.j.cn114452-20240626-00330"     assert [a.name for a in e.authors] == ["施意", "史浩男", "叶翰嘉"]
  • Network accessline 108
    assert e.doi_url == "https://doi.org/10.3760/cma.j.cn114452-20240626-00330"

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Declared and executed: 8 facts
Signal confidence: 492 facts
  • Network access in prose of documentationLICENSE.txt:2Low confidence
  • Network access in prose of documentationLICENSE.txt:4Low confidence
  • Network access in prose of documentationLICENSE.txt:196Low confidence
  • Network access in prose of documentationNOTICE.md:11Low confidence
  • Network access in prose of documentationNOTICE.md:35Low confidence
  • Network access in prose of documentationNOTICE.md:36Low confidence
  • Network access in prose of documentationNOTICE.md:37Low confidence
  • Network access in prose of documentationREADME.md:21Low confidence
  • Network access in prose of documentationREADME.md:22Low confidence
  • Network access in prose of documentationREADME.md:23Low confidence
  • Network access in prose of documentationREADME.md:24Low confidence
  • Network access in prose of documentationREADME.md:34Low confidence
  • Network access in code of documentationREADME.md:83Low confidence
  • Network access in prose of documentationREADME.md:169Low confidence
  • Network access in prose of documentationREADME.md:170Low confidence
  • Network access in prose of documentationREADME.md:171Low confidence
  • Network access in prose of documentationREADME.md:172Low confidence
  • Network access in prose of documentationREADME.md:173Low confidence
  • Network access in prose of documentationREADME.md:174Low confidence
  • Access to secrets in code of documentation: a variable, placeholder or call, not a stored valueREADME.md:180Low confidence
  • Access to secrets in code of documentation: a variable, placeholder or call, not a stored valueREADME.md:182Low confidence
  • Network access in prose of documentationREADME.md:237Low confidence
  • Network access in prose of documentationREADME.zh.md:21Low confidence
  • Network access in prose of documentationREADME.zh.md:22Low confidence
  • Network access in prose of documentationREADME.zh.md:23Low confidence
  • Network access in prose of documentationREADME.zh.md:24Low confidence
  • Network access in prose of documentationREADME.zh.md:34Low confidence
  • Network access in code of documentationREADME.zh.md:83Low confidence
  • Network access in prose of documentationREADME.zh.md:169Low confidence
  • Network access in prose of documentationREADME.zh.md:170Low confidence
  • Network access in prose of documentationREADME.zh.md:171Low confidence
  • Network access in prose of documentationREADME.zh.md:172Low confidence
  • Network access in prose of documentationREADME.zh.md:173Low confidence
  • Network access in prose of documentationREADME.zh.md:174Low confidence
  • Access to secrets in code of documentation: a variable, placeholder or call, not a stored valueREADME.zh.md:180Low confidence
  • Access to secrets in code of documentation: a variable, placeholder or call, not a stored valueREADME.zh.md:182Low confidence
  • Network access in prose of documentationREADME.zh.md:237Low confidence
  • Broad permissions in the frontmatter of the SKILL.mdSKILL.md:1High confidence
  • Access to secrets in code of the SKILL.md: a variable, placeholder or call, not a stored valueSKILL.md:132Low confidence
  • Access to secrets in code of the SKILL.md: a variable, placeholder or call, not a stored valueSKILL.md:133Low confidence
  • Network access in prose of documentationTHIRD_PARTY.md:17Low confidence
  • Network access in prose of documentationTHIRD_PARTY.md:18Low confidence
  • Network access in prose of documentationTHIRD_PARTY.md:19Low confidence
  • Network access in prose of documentationTHIRD_PARTY.md:20Low confidence
  • Network access in prose of documentationTHIRD_PARTY.md:21Low confidence
  • Network access in prose of documentationTHIRD_PARTY.md:22Low confidence
  • Network access in prose of documentationTHIRD_PARTY.md:23Low confidence
  • Network access in prose of documentationTHIRD_PARTY.md:24Low confidence
  • Network access in prose of documentationTHIRD_PARTY.md:25Low confidence
  • Network access in prose of documentationTHIRD_PARTY.md:26Low confidence

and 442 more

Only the first 500 facts are listed.

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativePath CLAUDE.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.