paper-fetch-mcp
This MCP server resolves and fetches scholarly papers into agent-ready metadata, Markdown, structured article content, and assets, with caching, batch operations, and provider/browser diagnostics.
Resolve DOI, URL, or title queries into normalized paper candidates; batch resolve up to 50 queries.
Fetch papers as structured article, Markdown, and/or metadata with provenance, quality/trace/token estimates, references, figures/tables, and local assets.
Fetch supplementary materials independently with target=supplementary, without downloading the body or body PDF.
Control fetch behavior via modes, artifact mode, asset profile, include_refs, max_tokens, prefer_cache, no_download, save_markdown, output directories, and provider preferences.
Fetch 1–50 papers in batches with bounded concurrency, ordered results, optional JSONL output, overwrite control, and continue-on-error.
List and retrieve DOI-proven cached downloads without network access.
Probe papers cheaply with batch_check using metadata and landing-page signals only, without fetching full bodies or writing downloads.
Inspect static provider configuration and local dependency readiness; run live browser preflight for supported publishers and optionally export storage state.
Respects access controls and does not bypass paywalls or authorization boundaries.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@paper-fetch-mcpfetch full text for DOI 10.1038/s41586-021-03819-2"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Paper Fetch Skill
Fetch papers as agent-ready markdown — DOI/URL/title in, structured full text out. CLI · MCP · Skill.
Paper Fetch Skill 是已知论文的 AI 阅读层:输入 DOI、URL 或标题,在你已有合法访问权限的范围内,返回结构化元数据、Markdown 全文和可选图表资源,让 Codex、Claude Code 或任意 MCP host 从“只能读摘要”升级到“可以读全文”。
DOI / URL / title
↓
受支持 provider 的官方 HTML/XML → 验证后的 PDF fallback
↓
Sections · formulas · tables · references · local assets
↓
Markdown · structured article · quality diagnostics为什么不只是 PDF → Markdown
Paper Fetch 将论文身份解析、provider 路由、官方结构化全文与 PDF fallback 连接起来,并统一报告获取和内容质量。
维度 | Paper Fetch | 单一 PDF → Markdown 路径 |
输入入口 | DOI、URL、标题、arXiv ID 或引用条目 | 已取得的 PDF |
首选内容源 | 受支持 provider 优先使用官方 HTML/XML,失败时再走验证后的 PDF fallback | PDF 文本层、版面和 OCR |
论文结构 | 统一为 metadata、sections、references、assets 和 quality | 取决于具体转换器及 PDF 版面 |
公式 | 源站提供 MathML/TeX 时转换并规范化;失败时保留公式图片或缺失诊断 | PDF 公式恢复能力取决于具体转换器 |
图表资源 | 发现、下载、验证、本地链接改写并报告失败或降级 | 图片导出和链接方式取决于具体转换器 |
References | 全文/出版社 references 优先,保留 raw、DOI、标题和年份等可得字段 | 引用顺序和字段恢复取决于 PDF 版面与工具 |
质量可见性 | 区分正文充分性、表格/公式语义损失和资产质量 | 诊断范围取决于具体转换器 |
Related MCP server: Crossref Academic MCP Server
快速开始
源码 checkout 内安装完整能力并抓取一篇论文:
python -m pip install ".[full]"
paper-fetch fetch \
--query "10.1186/1471-2105-11-421" \
--output-dir ./papers--query 可以是 DOI、论文 landing URL 或标题。未显式传 --output 且指定 --output-dir 时,CLI 会在目录中生成安全命名的主输出;默认 Markdown 模式会保留全文 references,并按 body 资产范围尝试归档正文图表资源。全文不可用时,结果会标明仅摘要、仅元数据或具体失败原因。
只需要临时把 Markdown 输出到终端、不归档论文资产时:
paper-fetch fetch \
--query "10.1186/1471-2105-11-421" \
--format markdown \
--output - \
--output-dir ./.paper-fetch-tmp \
--artifact-mode none \
--asset-profile none \
--include-refs all \
--max-tokens full_textCLI 默认在终端 stderr 显示逐篇阶段和资产进度;--progress text|jsonl|none 可显式选择输出,--progress jsonl --control-stdin 提供机器单篇/整批取消接口,见 docs/cli.md。
CLI 会准备工作目录;MCP 临时阅读预设不保存独立 Markdown 或下载论文资产,但运行时仍可能写入缓存和浏览器状态。完整输出和落盘矩阵见 docs/cli.md 与 presets.md。
独立获取补充材料
paper-fetch fetch --target supplementary --query "10.1038/s41561-022-00912-7" --output-dir ./papers只需要补充附件、Source Data、Extended Data 或多媒体时,使用 --target supplementary,无需先取得正文,也不下载正文 PDF。随正文获取补充材料则使用默认的 --target paper 和 --asset-profile all。Python API 与 MCP 单篇、批量入口也支持 target="supplementary";材料范围、输出及失败语义见 CLI 说明。
你会得到什么
带 YAML front matter 的论文 Markdown,包含题名、作者、期刊、DOI、来源和正文状态。
按源文档恢复的摘要、正文 section、表格、公式、figure caption 和 references。
asset_profile=body|all时可下载的正文或补充资源,以及改写后的本地 Markdown 链接。JSON、MCP 和 manifest 中统一的 acquisition、content、asset 和 semantic-loss 诊断。
当全文、公式、表格或资产不完整时,明确的 warning、质量状态和稳定 reason code。
项目提供三个入口:
入口 | 适用场景 |
| 单篇或批量本地抓取与归档 |
| Codex、Claude Code 等 MCP host 内的结构化调用、缓存和批处理 |
| 告诉 agent 何时调用、如何选择预设以及如何验收结果 |
效果展示
agent 安装 skill 后,可以识别 Paper Fetch 的适用边界,按用户意图选择临时阅读、归档或探测,并核验实际正文和资产。

以下示例来自真实开放抓取产物。
Nature 示例
论文:Towards end-to-end automation of AI research
DOI:
10.1038/s41586-026-10265-5来源:Springer/Nature HTML full text
许可:
CC BY 4.0Markdown 全文:
towards-end-to-end-automation-of-ai-research.md

Science Advances 示例
论文:Deforestation-induced runoff changes dominated by forest-climate feedbacks
DOI:
10.1126/sciadv.adp3964来源:Science Advances / Science provider
Markdown 全文:
deforestation-induced-runoff-changes-dominated-by-forest-climate-feedbacks.md

安装
面向最终用户,推荐从 GitHub Releases 下载离线安装包:
Windows:
paper-fetch-skill-windows-x86_64-setup.exeLinux:与本机 CPython ABI 匹配的
paper-fetch-skill-offline-linux-x86_64-cp*.shmacOS 15+ Apple Silicon:与本机 CPython ABI 匹配的
paper-fetch-skill-offline-macos-arm64-cp*.tar.gz
官方安装包安装后,运行 paper-fetch update 即可更新到最新正式 Release:Linux/macOS 自动升级,Windows 下载校验后打开安装向导,并预选当前安装目录。同版或当前版本更新时直接退出。
源码安装可选择 core、browser、pdf 或 full 能力。安装命令、离线包校验、平台矩阵、升级、卸载、Python ABI、Gatekeeper 和 quarantine 处理见 docs/deployment.md。
单篇、批量与 Agent 接入
批量抓取时准备一个每行一个 query 的文件:
10.1186/1471-2105-11-421
https://www.nature.com/articles/s41559-026-03039-9paper-fetch fetch \
--query-file ./queries.txt \
--output-dir ./papers \
--batch-concurrency 4批量结果会按输入顺序原子写入 batch-results.jsonl;单篇失败会被记录,不会阻止其它条目继续。需要正文图时使用 --artifact-mode markdown-assets --asset-profile body,随正文获取补充材料时将 asset profile 改为 all;只获取补充材料时加 --target supplementary。
将本仓库接入 Agent:
Host | 命令 |
Codex |
|
Claude Code |
|
Antigravity CLI |
|
需要自定义环境文件、project/user scope 或手动 MCP 注册时,见 docs/deployment.md。
访问权限与运行时
Paper Fetch 不绕过付费墙或访问授权。可用性取决于 provider、用户凭据、机构访问状态和本机运行环境。
Elsevier API 路线使用从 https://dev.elsevier.com/ 申请的
ELSEVIER_API_KEY;ScienceDirect 浏览器路线使用浏览器访问状态,API key 不赋予浏览器访问权限。浏览器路线使用受管 Byparr+Camoufox;登录或订阅权限仍由用户提供。安装器默认准备平台支持的浏览器,准备、跳过和独立重试命令见 部署指南。
paper-fetch doctor只做本地静态诊断;paper-fetch browser-preflight才会启动浏览器并访问 provider 页面;需要建立或更新登录状态时运行paper-fetch auth <provider>。
paper-fetch doctor
paper-fetch browser-preflight
paper-fetch auth wiley浏览器后端、认证、显式 runtime 准备和平台限制见 docs/browser-runtime.md 与 docs/browser-backends.md;provider 的当前能力和环境要求见 docs/providers.md。
项目边界
只负责已知论文的身份解析、全文获取、验收和报告,不替代开放式主题检索、文献推荐或综述生成。
结构化公式转换依赖源站提供 MathML/TeX;只有图片或 PDF 排版信息时,不承诺恢复可靠 LaTeX。
PDF 转换输出保持原样,不做格式清洗或内容修复,见 PDF 转换边界。
文档
docs/cli.md:CLI 输出、artifact、批量抓取和错误码。docs/deployment.md:安装、配置、MCP 注册和更新。docs/providers.md:provider 路由、能力和环境变量。docs/browser-runtime.md:浏览器运行时、认证和预检。docs/README.md:完整文档导航。docs/architecture/overview.md:架构边界和维护者视角。docs/adding-a-provider.md:添加新 provider。
免责声明
获取的文献仅供个人学术研究和学习使用,不得用于商业用途。
请遵守所在国家/地区著作权法律法规及所在机构的知识产权政策。
抓取结果、资产和缓存按所选参数保存在本地;仓库中的示例与测试样本用于展示和回归验证。
fixture 中的文献样本仅作为测试使用,严禁对 fixture 进行任何形式的二次分发。
使用者应对自身的文献获取和使用行为承担全部责任。
社区
Available Tools
9 toolsbatch_checkARead-only
Probe one or more papers using cheap metadata and landing-page signals, with optional cross-host concurrency. mode defaults to metadata and accepts only metadata; article mode and the standalone has_fulltext tool are removed. Read probe_state, evidence, and errors from input-ordered results (results[0] for one query). Never fetches full bodies or writes downloads. Use batch_fetch for real fetching and judge results by acceptance.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | metadata | |
| queries | Yes | ||
| concurrency | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, and the description adds concrete behavioral context: it never fetches full bodies, never writes downloads, returns input-ordered results, and exposes probe_state, evidence, and errors. This goes well beyond the structured annotations and accurately characterizes the operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place. It front-loads the core purpose, then adds mode constraints, result semantics, safety guarantees, and the sibling alternative in a compact form without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only probe tool with no output schema, the description is remarkably complete: it explains what signals are used, how to read results, what not to expect, and how to select the sibling tool for real fetching. The agent has enough to invoke it correctly and interpret its output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry semantic weight. It does clarify mode ('defaults to metadata and accepts only metadata'), queries ('input-ordered results', results[0] for one query), and concurrency ('optional cross-host concurrency'). Minor gaps remain: it doesn't explain concurrency's upper bound or default behavior, though the schema provides those constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: 'Probe one or more papers using cheap metadata and landing-page signals.' It also distinguishes itself from batch_fetch by explicitly stating that this tool never fetches full bodies or writes downloads, so an agent can tell them apart without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear guidance: use batch_check for probing and batch_fetch for real fetching. It also explicitly states that mode only accepts metadata and that article mode and has_fulltext are removed, preventing agents from attempting unsupported modes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_fetchA
Fetch 1..50 papers with bounded concurrency and input-ordered compact manifest/acceptance results. It may access remote services and write the same cache, artifacts, or Markdown as fetch_paper. detail=bounded returns only a batch-wide bounded text sample. batch_results atomically writes the final input-ordered JSONL result; overwrite defaults false. Each batch checks managed Camoufox once at start, including HTTP/cache hits (default official/prerelease allows stable and prerelease builds; official/stable excludes prereleases; explicit channel/pins take priority).
| Name | Required | Description | Default |
|---|---|---|---|
| modes | No | ||
| detail | No | compact | |
| target | No | paper | |
| queries | Yes | ||
| strategy | No | ||
| overwrite | No | ||
| max_tokens | No | full_text | |
| concurrency | No | ||
| no_download | No | ||
| download_dir | No | ||
| include_refs | No | ||
| prefer_cache | No | ||
| artifact_mode | No | markdown-assets | |
| batch_results | No | ||
| save_markdown | No | ||
| content_max_chars | No | ||
| continue_on_error | No | ||
| markdown_filename | No | ||
| markdown_output_dir | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations, the description discloses remote access, cache/artifact/Markdown writes, atomic input-ordered JSONL output via batch_results, overwrite defaulting to false, bounded detail behavior, and a managed Camoufox check at batch start. These details materially expand on the supplied annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core batch purpose is front-loaded, but the description is a dense paragraph mixing invocation-relevant details with low-level Camoufox channel behavior. It is not bloated overall, but it could be structured more clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 19-parameter batch tool with no output schema and no schema parameter descriptions, the description is incomplete: it says results are a "compact manifest/acceptance" and that batch_results produces JSONL, but does not explain the result shape. Many parameters and nested strategy options remain undocumented, leaving the agent to infer behavior from names and defaults.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 19 parameters and 0% schema description coverage, the description explains only a few: queries are limited to 1..50, concurrency is bounded, detail=bounded returns a batch-wide text sample, and batch_results atomically writes ordered JSONL with overwrite defaulting to false. Most parameters, including modes, target, strategy, max_tokens, artifact_mode, and markdown-related options, receive no semantic explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: "Fetch 1..50 papers" with bounded concurrency and input-ordered results. The 1..50 limitation and batch-specific result handling distinguish it from the single-paper sibling fetch_paper.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the batch scope (1..50 papers), but there is no explicit when-to-use guidance versus fetch_paper, batch_check, or batch_resolve. The mention of fetch_paper explains shared cache/artifact behavior rather than routing criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_resolveARead-only
Resolve multiple DOI, URL, or title queries with shared transport reuse and optional cross-host concurrency.
| Name | Required | Description | Default |
|---|---|---|---|
| queries | Yes | ||
| concurrency | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds behavioral context by mentioning 'shared transport reuse' and 'optional cross-host concurrency,' which are not present in the schema. It does not disclose failure behavior or response shape, but those are not required by the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one dense sentence with no filler, front-loaded with the core action and batch scope. Every clause contributes either resource identification or behavioral context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool accepting up to 50 queries with no output schema, the description leaves out return format, per-item failure semantics, and any distinction from batch siblings. It is adequate for understanding the basic operation but not fully complete for invoking it safely at scale.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaning by explaining that queries can be DOIs, URLs, or titles and that concurrency is optional and cross-host. However, it omits the array-size limits and the concurrency range (1–8), leaving the schema to fill those gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Resolve') and a clear resource ('multiple DOI, URL, or title queries'), and explicitly signals batch scope with 'multiple' and 'cross-host concurrency.' This distinguishes it from single-resolution siblings like resolve_paper.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'multiple' implies the tool is for batch resolution, but the description never states when to prefer it over sibling tools such as resolve_paper or batch_fetch, nor does it provide any exclusions or when-not-to-use guidance. Usage is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_preflightB
Live-check the shared browser HTML path for one provider or all browser providers. This prepares managed Camoufox before launch, opens publisher pages, and updates native publisher profiles. save_storage_state controls only JSON snapshot export; it never runs PDF fallback or automatic authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | full | |
| provider | No | ||
| test_url | No | ||
| timeout_ms | No | ||
| browser_user_agent | No | ||
| save_storage_state | No | Export a compatibility JSON snapshot; native persistent profiles are updated even when false. | |
| storage_state_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare that this is non-readonly, open-world, non-idempotent, and non-destructive. The description adds meaningful behavior beyond that: it opens publisher pages, updates native publisher profiles, and explicitly does not run PDF fallback or automatic authentication. The only notable gap is that it does not detail what profile updates actually mutate or how timeout behavior works.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences and front-loads the core action before adding operational details. There is little wasted wording, though terms like 'Camoufox' and 'shared browser HTML path' may be opaque without context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a mutating, open-world tool with seven parameters, no output schema, and very low schema description coverage. The description covers key scope and side-effect caveats, but it omits most parameter semantics and does not explain return values, timeout behavior, or what native publisher profile updates actually change.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 14%, so the description needs to compensate heavily for undocumented parameters. It clarifies that provider null means all providers and explains that save_storage_state controls only JSON snapshot export, but it leaves detail, test_url, timeout_ms, browser_user_agent, and storage_state_path without any added meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: 'Live-check the shared browser HTML path' for one provider or all browser providers. It also explains that this prepares Camoufox, opens publisher pages, and updates native publisher profiles, making the preflight purpose clear. It does not explicitly distinguish itself from named siblings such as provider_status or batch_check, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'before launch' implies when this tool should be used, and 'for one provider or all browser providers' clarifies scope. However, there is no explicit guidance on when not to use it or which sibling tool to choose instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetch_paperA
Fetch one paper as structured article, Markdown, and/or metadata with provenance, or use target=supplementary for independent material discovery/download without a body or body PDF. target defaults to paper; supplementary ignores body asset/render options, returns a structured supplementary list and a material-only Markdown index. Empty complete discovery returns no_result; no_download returns unarchived links. quality, trace, and token estimates. Defaults are modes=article+markdown, provider-default assets, metadata-only fallback enabled, include_refs=null, max_tokens=full_text, prefer_cache=false, no_download=false, artifact_mode=markdown-assets and save_markdown=false. The call may access remote services and write provider artifacts, assets, and an MCP cache sidecar. no_download=true suppresses those writes; save_markdown=true is an explicit separate write and returns a path instead of inline full text. artifact_mode=none suppresses provider artifacts but retains MCP cache semantics. asset_profile=none|body|all controls local assets; body/all may return bounded ImageContent. Use prefer_cache=true only with matching request semantics. Current provider/source/runtime/asset-default facts are at resource://paper-fetch/provider-catalog. Access controls and manual-auth boundaries are never bypassed.
| Name | Required | Description | Default |
|---|---|---|---|
| modes | No | ||
| query | Yes | ||
| target | No | paper | |
| strategy | No | ||
| max_tokens | No | full_text | |
| no_download | No | ||
| download_dir | No | ||
| include_refs | No | ||
| prefer_cache | No | ||
| artifact_mode | No | markdown-assets | |
| save_markdown | No | ||
| markdown_filename | No | ||
| markdown_output_dir | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing remote-service access, provider-artifact/asset/cache-sidecar writes, and how no_download, save_markdown, artifact_mode, and asset_profile each affect those writes. It also documents failure modes (no_result, no_download returning unarchived links) and that manual-auth boundaries are never bypassed. Nothing here repeats what readOnlyHint/openWorldHint already say.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose, but then collapses into a dense run-on paragraph of defaults and mode interactions, including a sentence fragment ("quality, trace, and token estimates."). The information is valuable but poorly structured and hard to scan for a 13-param tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-param tool with nested objects and no output schema, the description is largely complete: it covers side effects, defaults, cache/write toggles, and several return semantics (supplementary list, material-only Markdown index, no_result, unarchived links). A few return-shape and nested-strategy details remain unaddressed, keeping it short of full.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage the description carries a real burden, and it explains target, modes defaults, no_download, save_markdown, artifact_mode, asset_profile, prefer_cache, max_tokens, and include_refs well. But the nested strategy fields (preferred_providers, require_local_body_assets, require_full_size_body_assets, inline_image_budget sub-fields) and the path params (download_dir, markdown_filename, markdown_output_dir) are left undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (fetch one paper) and enumerates its output forms (structured article, Markdown, metadata with provenance), plus the target=supplementary variant. An agent knows what it produces, but the description never differentiates it from siblings like batch_fetch or resolve_paper, so the reader must infer when this single-paper tool is preferred.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides useful conditional guidance for one axis: use target=supplementary for independent material discovery without a body, and use prefer_cache=true only with matching request semantics. However, it gives no guidance on when to choose this over batch_fetch, get_cached, or resolve_paper, so sibling selection is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cachedBRead-only
Look up DOI-proven cached files within one download_dir without touching the network. detail=compact returns preferred entries plus request-sensitive acceptance/asset summaries; preferred_only omits non-preferred entry arrays.
| Name | Required | Description | Default |
|---|---|---|---|
| doi | Yes | ||
| modes | No | ||
| detail | No | full | |
| strategy | No | ||
| max_tokens | No | full_text | |
| download_dir | No | ||
| include_refs | No | ||
| preferred_only | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the description is not required to repeat that. It adds valuable context: the no-network guarantee and the effect of the detail and preferred_only parameters on the response shape. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the main purpose, followed by parameter-specific notes. No wasted words, but the structure could be improved by grouping more parameter information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters, one required, no output schema, and the presence of a nested strategy object, the description is insufficient. It does not describe the return format, the meaning of modes, strategy, max_tokens, or download_dir, leaving an agent with significant gaps in understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters. It only explains detail and preferred_only, leaving six other parameters (doi, modes, strategy, max_tokens, download_dir, include_refs) undocumented. The nested strategy object is particularly complex and unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool looks up DOI-proven cached files within a download_dir and explicitly mentions 'without touching the network', which differentiates it from fetching tools. However, it does not name a specific sibling tool, so it stops short of the strongest differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied: it is for looking up cached files without network access. But there is no explicit statement about when to use this vs. fetching tools or any exclusions/alternatives, so guidance is not fully provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_cachedARead-only
List DOI-proven cached downloads from the current cache index without touching the network or scanning loose files.
| Name | Required | Description | Default |
|---|---|---|---|
| download_dir | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation is reinforced and expanded with meaningful behavioral detail: it never touches the network and never scans loose files, and it operates only on the current cache index for DOI-proven entries. This goes well beyond what the annotation alone provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. The core action, target resource, and key behavioral constraints are all delivered compactly and in logical order.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list operation with one optional parameter, the description is mostly adequate and the absence of an output schema is mitigated by the clear 'List... downloads' phrasing. However, the role of download_dir is completely undocumented, leaving ambiguity about whether a custom path changes the index or selects a different cache.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description never mentions the optional download_dir parameter. While the parameter name hints at a directory, the description does not explain how it relates to the 'current cache index' or what null/default behavior means, so the low-coverage burden is not met.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List'), a specific resource ('DOI-proven cached downloads from the current cache index'), and adds explicit exclusions ('without touching the network or scanning loose files'). This clearly separates it from fetching, resolving, and single-item retrieval siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly conveys when to use it: when the agent wants cached, DOI-proven downloads without network access or loose-file scanning. It does not explicitly name alternatives or state when not to use it, but the context is strong enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
provider_statusARead-only
Inspect filtered static provider configuration and local dependency readiness. This never opens Camoufox or publisher pages; use browser_preflight for live health.
| Name | Required | Description | Default |
|---|---|---|---|
| group | No | ||
| detail | No | full | |
| provider | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only, and the description adds useful behavioral context by clarifying that no browser or publisher pages are opened. It does not fully explain what 'local dependency readiness' entails, but it does not contradict the annotations and adds meaningful safety-relevant detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero filler. The core purpose is front-loaded, and the exclusion of browser behavior plus the sibling pointer are both essential and efficiently packed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's role and its key limitation well, but with no output schema and no parameter-level detail, the agent still has gaps around return shape and the meaning of 'dependency readiness.' It is adequate for tool selection but not fully complete for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description provides no explanation of the group, detail, or provider parameters. An agent can read the enum values but cannot know what 'compact' vs 'full' returns or what each group filter semantically selects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Inspect') on a clear resource ('filtered static provider configuration and local dependency readiness') and explicitly distinguishes itself from browser_preflight. An agent can immediately tell what this tool does and what it does not do.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use guidance by stating 'never opens Camoufox or publisher pages' and directs the agent to the correct alternative: 'use browser_preflight for live health.' This leaves no ambiguity about when to select this tool versus its sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_paperARead-only
Resolve a DOI, URL, or title query into a normalized paper candidate.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| query | No | ||
| title | No | ||
| authors | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already provide readOnlyHint and openWorldHint, so the safety profile is covered. The description adds useful behavioral context by stating that the result is a 'candidate' that is 'normalized', implying the tool may not always return a definitive match and that output is standardized. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the verb, the resource, the input forms, and the output form. Every word earns its place, with no filler or repetition of schema field names.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With four optional parameters, no parameter descriptions, no output schema, and no usage guidance, this description is too thin to fully equip an agent. It does not state whether at least one parameter is required, what happens if multiple forms are provided, what a 'normalized paper candidate' contains, or how resolution failures should be handled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden for parameter semantics. It mentions 'DOI, URL, or title query' but does not map these onto the schema's query, title, authors, or year parameters. The authors and year fields are left entirely unexplained, and no guidance is given on how the parameters combine or which are mutually exclusive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Resolve'), a resource ('paper'), and the accepted inputs ('DOI, URL, or title query'), and clarifies the output ('normalized paper candidate'). This clearly distinguishes it from siblings like fetch_paper and batch_resolve, which involve retrieval and batching rather than resolution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the purpose: use this tool when you need to turn an identifier or title into a normalized paper candidate. However, there is no explicit guidance about when to prefer this over fetch_paper, has_fulltext, or batch_resolve, nor any mention of exclusions or workflow sequencing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v7.3.0- Changed
browser_preflight2 fields changed- changed
Input schema / properties / provider / anyOfPrevious value: -[ - { - "enum": [ - "wiley", - "science", - "pnas", - "ieee", - "ams", - "mdpi", - "royalsocietypublishing", - "annualreviews", - "acs", - "iop", - "aip", - "tandf" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "enum": [ + "elsevier", + "wiley", + "science", + "pnas", + "ieee", + "ams", + "mdpi", + "royalsocietypublishing", + "annualreviews", + "acs", + "iop", + "aip", + "tandf" + ], + "type": "string" + }, + { + "type": "null" + } +] - added
Input schema / properties / save_storage_state / descriptionAdded value: +"Export a compatibility JSON snapshot; native persistent profiles are updated even when false."
2 tool updates
v7.2.4- Changed
batch_fetch1 field changed- added
Input schema / properties / targetAdded value: +{ + "default": "paper", + "enum": [ + "paper", + "supplementary" + ], + "title": "Target", + "type": "string" +}
- Changed
fetch_paper1 field changed- added
Input schema / properties / targetAdded value: +{ + "default": "paper", + "enum": [ + "paper", + "supplementary" + ], + "title": "Target", + "type": "string" +}
2 tool updates
v6.2.1- Changed
batch_check2 fields changed- added
Input schema / properties / mode / constAdded value: +"metadata" - removed
Input schema / properties / mode / enumRemoved value: -[ - "article", - "metadata" -]
- Removed
has_fulltext
5 tool updates
v6.1.0- Changed
batch_check1 field changed- removed
Input schema / properties / browser_auto_prepareRemoved value: -{ - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Browser Auto Prepare" -}
- Changed
batch_fetch3 fields changed- removed
Input schema / properties / browser_auto_prepareRemoved value: -{ - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Browser Auto Prepare" -} - removed
Input schema / properties / resumeRemoved value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Resume" -} - removed
Input schema / properties / run_manifestRemoved value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Run Manifest" -}
- Changed
browser_preflight1 field changed- removed
Input schema / properties / browser_auto_prepareRemoved value: -{ - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Browser Auto Prepare" -}
- Changed
fetch_paper1 field changed- removed
Input schema / properties / browser_auto_prepareRemoved value: -{ - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Browser Auto Prepare" -}
- Changed
list_cached1 field changed- removed
Input schema / properties / cache_modeRemoved value: -{ - "default": "index", - "enum": [ - "index", - "refresh", - "rescan" - ], - "title": "Cache Mode", - "type": "string" -}
10 tool updates
v6.0.1- Changed
batch_check1 field changed- changed
Output schema / (root)Previous value: -{ - "$defs": { - "AcquisitionProvenanceOutput": { - "properties": { - "fallback_used": { - "type": "boolean" - }, - "provider": { - "type": "string" - }, - "representation": { - "type": "string" - }, - "route": { - "type": "string" - }, - "transport": { - "type": "string" - } - }, - "type": "object" - }, - "BatchCheckItemOutput": { - "properties": { - "acquisition": { - "anyOf": [ - { - "$ref": "#/$defs/AcquisitionProvenanceOutput" - }, - { - "type": "null" - } - ] - }, - "candidates": { - "anyOf": [ - { - "items": { - "$ref": "#/$defs/ResolvedCandidateOutput" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "content_kind": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "details": { - "additionalProperties": true, - "type": "object" - }, - "doi": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "error": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ] - }, - "error_category": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "evidence": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_abstract": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "has_fulltext": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "http_status": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "index": { - "type": "integer" - }, - "missing_env": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "probe_state": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provider": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provider_lane": { - "type": "string" - }, - "query": { - "type": "string" - }, - "reason": { - "type": "string" - }, - "retry_after_seconds": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "retryable": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "route": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "schema_version": { - "type": "integer" - }, - "source": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "source_trail": { - "items": { - "type": "string" - }, - "type": "array" - }, - "stage": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "type": "string" - }, - "title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "token_estimate": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "token_estimate_breakdown": { - "anyOf": [ - { - "$ref": "#/$defs/TokenEstimateBreakdownOutput" - }, - { - "type": "null" - } - ] - }, - "trace": { - "items": { - "$ref": "#/$defs/TraceEventOutput" - }, - "type": "array" - }, - "warnings": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "BatchTerminalProgressOutput": { - "properties": { - "completed": { - "type": "integer" - }, - "not_scheduled": { - "type": "integer" - }, - "terminal": { - "type": "integer" - }, - "total": { - "type": "integer" - } - }, - "required": [ - "total", - "terminal", - "completed", - "not_scheduled" - ], - "type": "object" - }, - "ErrorPayloadOutput": { - "properties": { - "candidates": { - "anyOf": [ - { - "items": { - "$ref": "#/$defs/ResolvedCandidateOutput" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "details": { - "additionalProperties": true, - "type": "object" - }, - "error_category": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "http_status": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "missing_env": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "provider": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "reason": { - "type": "string" - }, - "retry_after_seconds": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "retryable": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "route": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "schema_version": { - "type": "integer" - }, - "source_trail": { - "items": { - "type": "string" - }, - "type": "array" - }, - "stage": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "type": "string" - }, - "trace": { - "items": { - "$ref": "#/$defs/TraceEventOutput" - }, - "type": "array" - }, - "warnings": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "ResolvedCandidateOutput": { - "properties": { - "author_score": { - "type": "number" - }, - "authors": { - "items": { - "type": "string" - }, - "type": "array" - }, - "doi": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "journal_title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "landing_page_url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provider_hint": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "published": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "score": { - "type": "number" - }, - "title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "title_score": { - "type": "number" - }, - "year_score": { - "type": "number" - } - }, - "type": "object" - }, - "TokenEstimateBreakdownOutput": { - "properties": { - "abstract": { - "type": "integer" - }, - "body": { - "type": "integer" - }, - "refs": { - "type": "integer" - } - }, - "type": "object" - }, - "TraceEventOutput": { - "properties": { - "attempt": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "attempt_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "component": { - "type": "string" - }, - "duration_ms": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "error_category": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "finished_at": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "http_status": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "message": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "outcome": { - "type": "string" - }, - "parent_span_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provider": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "retry_after_seconds": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "retryable": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "route": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "span_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "stage": { - "type": "string" - }, - "started_at": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "target": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "target_sha256": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - } - }, - "properties": { - "abort_reason": { - "anyOf": [ - { - "$ref": "#/$defs/ErrorPayloadOutput" - }, - { - "type": "null" - } - ] - }, - "aborted": { - "type": "boolean" - }, - "candidates": { - "anyOf": [ - { - "items": { - "$ref": "#/$defs/ResolvedCandidateOutput" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "details": { - "additionalProperties": true, - "type": "object" - }, - "error_category": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "http_status": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "missing_env": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "mode": { - "type": "string" - }, - "progress": { - "$ref": "#/$defs/BatchTerminalProgressOutput" - }, - "provider": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "reason": { - "type": "string" - }, - "results": { - "items": { - "$ref": "#/$defs/BatchCheckItemOutput" - }, - "type": "array" - }, - "retry_after_seconds": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "retryable": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "route": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "schema_version": { - "type": "integer" - }, - "source_trail": { - "items": { - "type": "string" - }, - "type": "array" - }, - "stage": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "type": "string" - }, - "trace": { - "items": { - "$ref": "#/$defs/TraceEventOutput" - }, - "type": "array" - }, - "warnings": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" -}New value: +null
- Changed
batch_fetch3 fields changed- added
Input schema / properties / strategy / properties / require_full_size_body_assetsAdded value: +{ + "default": false, + "title": "Require Full Size Body Assets", + "type": "boolean" +} - added
Input schema / properties / strategy / properties / require_local_body_assetsAdded value: +{ + "default": false, + "title": "Require Local Body Assets", + "type": "boolean" +} - changed
Output schema / (root)Previous value: -{ - "$defs": { - "AcquisitionProvenanceOutput": { - "properties": { - "fallback_used": { - "type": "boolean" - }, - "provider": { - "type": "string" - }, - "representation": { - "type": "string" - }, - "route": { - "type": "string" - }, - "transport": { - "type": "string" - } - }, - "type": "object" - }, - "BatchFetchArtifactOutput": { - "properties": { - "completed_at": { - "type": "string" - }, - "failure_code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "kind": { - "type": "string" - }, - "path": { - "type": "string" - }, - "resource_uri": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "route": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "sha256": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "size": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "verification_status": { - "type": "string" - } - }, - "type": "object" - }, - "BatchFetchCompletionOutput": { - "properties": { - "attempt": { - "type": "integer" - }, - "completed_at": { - "type": "string" - }, - "index": { - "type": "integer" - }, - "sequence": { - "type": "integer" - }, - "status": { - "type": "string" - } - }, - "type": "object" - }, - "BatchFetchItemOutput": { - "properties": { - "acceptance": { - "$ref": "#/$defs/FetchAcceptanceSummaryOutput" - }, - "acquisition": { - "anyOf": [ - { - "$ref": "#/$defs/AcquisitionProvenanceOutput" - }, - { - "type": "null" - } - ] - }, - "attempt": { - "type": "integer" - }, - "cache_hit": { - "type": "boolean" - }, - "completed_at": { - "type": "string" - }, - "completion_sequence": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "content_available_chars": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "content_returned_chars": { - "type": "integer" - }, - "content_truncated": { - "type": "boolean" - }, - "doi": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "error": { - "anyOf": [ - { - "$ref": "#/$defs/ErrorPayloadOutput" - }, - { - "type": "null" - } - ] - }, - "failure_codes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "fallback_codes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "index": { - "type": "integer" - }, - "output_artifacts": { - "items": { - "$ref": "#/$defs/BatchFetchArtifactOutput" - }, - "type": "array" - }, - "query": { - "type": "string" - }, - "record_id": { - "type": "string" - }, - "record_status": { - "type": "string" - }, - "request_fingerprint": { - "type": "string" - }, - "resource_uri": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "reused": { - "type": "boolean" - }, - "run_id": { - "type": "string" - }, - "saved_markdown_path": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "source": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "started_at": { - "type": "string" - }, - "status": { - "type": "string" - }, - "warning_codes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "warnings": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "BatchFetchLaneCooldownOutput": { - "properties": { - "cooldown_seconds": { - "type": "number" - }, - "lane": { - "type": "string" - }, - "reason_code": { - "type": "string" - }, - "retry_after_seconds": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "source_index": { - "type": "integer" - } - }, - "type": "object" - }, - "BatchFetchSummaryOutput": { - "properties": { - "acceptance": { - "additionalProperties": { - "type": "integer" - }, - "type": "object" - }, - "cache_hits": { - "type": "integer" - }, - "record_statuses": { - "additionalProperties": { - "type": "integer" - }, - "type": "object" - }, - "saved_markdown": { - "type": "integer" - } - }, - "type": "object" - }, - "ErrorPayloadOutput": { - "properties": { - "candidates": { - "anyOf": [ - { - "items": { - "$ref": "#/$defs/ResolvedCandidateOutput" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "details": { - "additionalProperties": true, - "type": "object" - }, - "error_category": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "http_status": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "missing_env": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "provider": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "reason": { - "type": "string" - }, - "retry_after_seconds": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "retryable": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "route": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "schema_version": { - "type": "integer" - }, - "source_trail": { - "items": { - "type": "string" - }, - "type": "array" - }, - "stage": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "type": "string" - }, - "trace": { - "items": { - "$ref": "#/$defs/TraceEventOutput" - }, - "type": "array" - }, - "warnings": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "FetchAcceptanceSummaryOutput": { - "properties": { - "acquisition": { - "anyOf": [ - { - "$ref": "#/$defs/AcquisitionProvenanceOutput" - }, - { - "type": "null" - } - ] - }, - "asset": { - "type": "string" - }, - "content": { - "type": "string" - }, - "fetch": { - "type": "string" - }, - "has_abstract": { - "type": "boolean" - }, - "has_fulltext": { - "type": "boolean" - }, - "identity": { - "type": "string" - }, - "output": { - "type": "string" - }, - "overall": { - "type": "string" - }, - "provenance": { - "type": "string" - }, - "token_estimate": { - "type": "integer" - } - }, - "type": "object" - }, - "ResolvedCandidateOutput": { - "properties": { - "author_score": { - "type": "number" - }, - "authors": { - "items": { - "type": "string" - }, - "type": "array" - }, - "doi": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "journal_title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "landing_page_url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provider_hint": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "published": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "score": { - "type": "number" - }, - "title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "title_score": { - "type": "number" - }, - "year_score": { - "type": "number" - } - }, - "type": "object" - }, - "TraceEventOutput": { - "properties": { - "attempt": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "attempt_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "component": { - "type": "string" - }, - "duration_ms": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "error_category": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "finished_at": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "http_status": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "message": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "outcome": { - "type": "string" - }, - "parent_span_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provider": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "retry_after_seconds": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "retryable": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "route": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "span_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "stage": { - "type": "string" - }, - "started_at": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "target": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "target_sha256": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - } - }, - "properties": { - "aborted": { - "type": "boolean" - }, - "attempted_count": { - "type": "integer" - }, - "cancelled": { - "type": "boolean" - }, - "candidates": { - "anyOf": [ - { - "items": { - "$ref": "#/$defs/ResolvedCandidateOutput" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "completion_order": { - "items": { - "$ref": "#/$defs/BatchFetchCompletionOutput" - }, - "type": "array" - }, - "content_max_chars": { - "type": "integer" - }, - "content_returned_chars": { - "type": "integer" - }, - "deduplicated_count": { - "type": "integer" - }, - "detail": { - "type": "string" - }, - "details": { - "additionalProperties": true, - "type": "object" - }, - "error_category": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "events_path": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "execution_count": { - "type": "integer" - }, - "execution_policy": { - "additionalProperties": true, - "type": "object" - }, - "http_status": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "lane_cooldowns": { - "items": { - "$ref": "#/$defs/BatchFetchLaneCooldownOutput" - }, - "type": "array" - }, - "missing_env": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "not_scheduled_count": { - "type": "integer" - }, - "persisted": { - "type": "boolean" - }, - "provider": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "query_count": { - "type": "integer" - }, - "reason": { - "type": "string" - }, - "request_fingerprint": { - "type": "string" - }, - "results": { - "items": { - "$ref": "#/$defs/BatchFetchItemOutput" - }, - "type": "array" - }, - "retry_after_seconds": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "retryable": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "reused_count": { - "type": "integer" - }, - "route": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "run_id": { - "type": "string" - }, - "run_manifest_path": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "schema_version": { - "type": "integer" - }, - "semantic_fingerprint": { - "type": "string" - }, - "source_trail": { - "items": { - "type": "string" - }, - "type": "array" - }, - "stage": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "state": { - "type": "string" - }, - "status": { - "type": "string" - }, - "summary": { - "$ref": "#/$defs/BatchFetchSummaryOutput" - }, - "trace": { - "items": { - "$ref": "#/$defs/TraceEventOutput" - }, - "type": "array" - }, - "warnings": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" -}New value: +null
- Changed
batch_resolve1 field changed- changed
Output schema / (root)Previous value: -{ - "$defs": { - "BatchTerminalProgressOutput": { - "properties": { - "completed": { - "type": "integer" - }, - "not_scheduled": { - "type": "integer" - }, - "terminal": { - "type": "integer" - }, - "total": { - "type": "integer" - } - }, - "required": [ - "total", - "terminal", - "completed", - "not_scheduled" - ], - "type": "object" - }, - "ErrorPayloadOutput": { - "properties": { - "candidates": { - "anyOf": [ - { - "items": { - "$ref": "#/$defs/ResolvedCandidateOutput" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "details": { - "additionalProperties": true, - "type": "object" - }, - "error_category": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "http_status": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "missing_env": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "provider": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "reason": { - "type": "string" - }, - "retry_after_seconds": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "retryable": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "route": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "schema_version": { - "type": "integer" - }, - "source_trail": { - "items": { - "type": "string" - }, - "type": "array" - }, - "stage": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "type": "string" - }, - "trace": { - "items": { - "$ref": "#/$defs/TraceEventOutput" - }, - "type": "array" - }, - "warnings": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "ResolvePaperOutput": { - "properties": { - "candidates": { - "anyOf": [ - { - "items": { - "$ref": "#/$defs/ResolvedCandidateOutput" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "confidence": { - "type": "number" - }, - "details": { - "additionalProperties": true, - "type": "object" - }, - "doi": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "error": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ] - }, - "error_category": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "http_status": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "index": { - "type": "integer" - }, - "landing_url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "missing_env": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "provider": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provider_hint": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provider_lane": { - "type": "string" - }, - "query": { - "type": "string" - }, - "query_kind": { - "type": "string" - }, - "reason": { - "type": "string" - }, - "retry_after_seconds": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "retryable": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "route": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "schema_version": { - "type": "integer" - }, - "source_trail": { - "items": { - "type": "string" - }, - "type": "array" - }, - "stage": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "type": "string" - }, - "title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "trace": { - "items": { - "$ref": "#/$defs/TraceEventOutput" - }, - "type": "array" - }, - "warnings": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "ResolvedCandidateOutput": { - "properties": { - "author_score": { - "type": "number" - }, - "authors": { - "items": { - "type": "string" - }, - "type": "array" - }, - "doi": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "journal_title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "landing_page_url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provider_hint": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "published": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "score": { - "type": "number" - }, - "title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "title_score": { - "type": "number" - }, - "year_score": { - "type": "number" - } - }, - "type": "object" - }, - "TraceEventOutput": { - "properties": { - "attempt": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "attempt_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "component": { - "type": "string" - }, - "duration_ms": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "error_category": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "finished_at": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "http_status": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "message": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "outcome": { - "type": "string" - }, - "parent_span_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provider": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "retry_after_seconds": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "retryable": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "route": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "span_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "stage": { - "type": "string" - }, - "started_at": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "target": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "target_sha256": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - } - }, - "properties": { - "abort_reason": { - "anyOf": [ - { - "$ref": "#/$defs/ErrorPayloadOutput" - }, - { - "type": "null" - } - ] - }, - "aborted": { - "type": "boolean" - }, - "candidates": { - "anyOf": [ - { - "items": { - "$ref": "#/$defs/ResolvedCandidateOutput" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "details": { - "additionalProperties": true, - "type": "object" - }, - "error_category": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "http_status": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "missing_env": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "progress": { - "$ref": "#/$defs/BatchTerminalProgressOutput" - }, - "provider": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "reason": { - "type": "string" - }, - "results": { - "items": { - "$ref": "#/$defs/ResolvePaperOutput" - }, - "type": "array" - }, - "retry_after_seconds": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "retryable": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "route": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "schema_version": { - "type": "integer" - }, - "source_trail": { - "items": { - "type": "string" - }, - "type": "array" - }, - "stage": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "type": "string" - }, - "trace": { - "items": { - "$ref": "#/$defs/TraceEventOutput" - }, - "type": "array" - }, - "warnings": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" -}New value: +null
- Changed
browser_preflight1 field changed- changed
Output schema / (root)Previous value: -{ - "$defs": { - "BrowserPreflightItemOutput": { - "properties": { - "diagnostics": { - "additionalProperties": true, - "type": "object" - }, - "final_url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "message": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "next_action": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "provider_label": { - "type": "string" - }, - "ready": { - "type": "boolean" - }, - "reason_code": { - "type": "string" - }, - "stage": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "type": "string" - }, - "storage_state": { - "$ref": "#/$defs/BrowserPreflightStorageStateOutput" - }, - "target_url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "BrowserPreflightStorageStateOutput": { - "properties": { - "attempted": { - "type": "boolean" - }, - "path": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "reason": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "save_requested": { - "type": "boolean" - }, - "saved": { - "type": "boolean" - } - }, - "type": "object" - }, - "BrowserPreflightSummaryOutput": { - "properties": { - "auth_required": { - "type": "integer" - }, - "cancelled": { - "type": "integer" - }, - "challenge": { - "type": "integer" - }, - "completed": { - "type": "integer" - }, - "extraction_error": { - "type": "integer" - }, - "network_timeout": { - "type": "integer" - }, - "ready": { - "type": "integer" - }, - "requested": { - "type": "integer" - }, - "runtime_error": { - "type": "integer" - } - }, - "type": "object" - }, - "ResolvedCandidateOutput": { - "properties": { - "author_score": { - "type": "number" - }, - "authors": { - "items": { - "type": "string" - }, - "type": "array" - }, - "doi": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "journal_title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "landing_page_url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provider_hint": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "published": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "score": { - "type": "number" - }, - "title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "title_score": { - "type": "number" - }, - "year_score": { - "type": "number" - } - }, - "type": "object" - }, - "TraceEventOutput": { - "properties": { - "attempt": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "attempt_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "component": { - "type": "string" - }, - "duration_ms": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "error_category": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "finished_at": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "http_status": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "message": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "outcome": { - "type": "string" - }, - "parent_span_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provider": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "retry_after_seconds": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "retryable": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "route": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "span_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "stage": { - "type": "string" - }, - "started_at": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "target": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "target_sha256": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - } - }, - "properties": { - "auth_attempted": { - "type": "boolean" - }, - "candidates": { - "anyOf": [ - { - "items": { - "$ref": "#/$defs/ResolvedCandidateOutput" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "detail": { - "type": "string" - }, - "details": { - "additionalProperties": true, - "type": "object" - }, - "diagnostic_scope": { - "type": "string" - }, - "error_category": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "http_status": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "missing_env": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "network_access": { - "type": "string" - }, - "pdf_fallback_attempted": { - "type": "boolean" - }, - "provider": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provider_filter": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "reason": { - "type": "string" - }, - "results": { - "items": { - "$ref": "#/$defs/BrowserPreflightItemOutput" - }, - "type": "array" - }, - "retry_after_seconds": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "retryable": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "route": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "schema_version": { - "type": "integer" - }, - "source_trail": { - "items": { - "type": "string" - }, - "type": "array" - }, - "stage": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "type": "string" - }, - "storage_state_write_enabled": { - "type": "boolean" - }, - "summary": { - "$ref": "#/$defs/BrowserPreflightSummaryOutput" - }, - "trace": { - "items": { - "$ref": "#/$defs/TraceEventOutput" - }, - "type": "array" - }, - "warnings": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" -}New value: +null
- Changed
fetch_paper3 fields changed- added
Input schema / properties / strategy / properties / require_full_size_body_assetsAdded value: +{ + "default": false, + "title": "Require Full Size Body Assets", + "type": "boolean" +} - added
Input schema / properties / strategy / properties / require_local_body_assetsAdded value: +{ + "default": false, + "title": "Require Local Body Assets", + "type": "boolean" +} - changed
Output schema / (root)Previous value: -{ - "$defs": { - "AcquisitionProvenanceOutput": { - "properties": { - "fallback_used": { - "type": "boolean" - }, - "provider": { - "type": "string" - }, - "representation": { - "type": "string" - }, - "route": { - "type": "string" - }, - "transport": { - "type": "string" - } - }, - "type": "object" - }, - "ArticleOutput": { - "properties": { - "acquisition": { - "anyOf": [ - { - "$ref": "#/$defs/AcquisitionProvenanceOutput" - }, - { - "type": "null" - } - ] - }, - "assets": { - "items": { - "$ref": "#/$defs/AssetOutput" - }, - "type": "array" - }, - "doi": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "metadata": { - "$ref": "#/$defs/MetadataOutput" - }, - "quality": { - "$ref": "#/$defs/QualityOutput" - }, - "references": { - "items": { - "$ref": "#/$defs/ReferenceOutput" - }, - "type": "array" - }, - "sections": { - "items": { - "$ref": "#/$defs/SectionOutput" - }, - "type": "array" - }, - "source": { - "type": "string" - } - }, - "type": "object" - }, - "AssetByKindOutput": { - "properties": { - "decoration": { - "$ref": "#/$defs/AssetKindSummaryOutput" - }, - "figure": { - "$ref": "#/$defs/AssetKindSummaryOutput" - }, - "formula": { - "$ref": "#/$defs/AssetKindSummaryOutput" - }, - "supplement": { - "$ref": "#/$defs/AssetKindSummaryOutput" - }, - "table": { - "$ref": "#/$defs/AssetKindSummaryOutput" - } - }, - "type": "object" - }, - "AssetDiagnosticOutput": { - "properties": { - "byte_count": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "download_tier": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "failure_code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "height": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "kind": { - "type": "string" - }, - "path": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "preview_accepted": { - "type": "boolean" - }, - "provenance": { - "items": { - "type": "string" - }, - "type": "array" - }, - "real_mime": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "request_profile": { - "type": "string" - }, - "sha256": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "type": "string" - }, - "suspected_reasons": { - "items": { - "type": "string" - }, - "type": "array" - }, - "width": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "AssetFailureOutput": { - "properties": { - "body_snippet": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "caption": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "content_type": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "final_url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "heading": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "reason": { - "type": "string" - }, - "recovery_attempts": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array" - }, - "section": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "source_url": { - "type": "string" - }, - "status": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "title_snippet": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "AssetKindSummaryOutput": { - "properties": { - "accepted_preview": { - "type": "integer" - }, - "failed": { - "type": "integer" - }, - "fallback_preview": { - "type": "integer" - }, - "full_size": { - "type": "integer" - }, - "not_archived": { - "type": "integer" - }, - "not_requested": { - "type": "integer" - }, - "placeholder_suspected": { - "type": "integer" - }, - "preview": { - "type": "integer" - }, - "requested": { - "type": "integer" - }, - "total": { - "type": "integer" - } - }, - "type": "object" - }, - "AssetOutput": { - "properties": { - "anchor_key": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "caption": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "content_type": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "download_tier": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "download_url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "downloaded_bytes": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "heading": { - "type": "string" - }, - "height": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "kind": { - "type": "string" - }, - "original_url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "path": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "preview_accepted": { - "type": "boolean" - }, - "provenance": { - "items": { - "type": "string" - }, - "type": "array" - }, - "render_state": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "section": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "source_href": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "source_path": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "source_url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "width": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "AssetQualitySummaryOutput": { - "properties": { - "accepted_preview": { - "type": "integer" - }, - "audited": { - "type": "boolean" - }, - "by_kind": { - "$ref": "#/$defs/AssetByKindOutput" - }, - "diagnostics": { - "items": { - "$ref": "#/$defs/AssetDiagnosticOutput" - }, - "type": "array" - }, - "failed": { - "type": "integer" - }, - "failure_codes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "fallback_preview": { - "type": "integer" - }, - "full_size": { - "type": "integer" - }, - "issue_codes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "local": { - "type": "integer" - }, - "not_archived": { - "type": "integer" - }, - "not_requested": { - "type": "integer" - }, - "placeholder_suspected": { - "type": "integer" - }, - "preview": { - "type": "integer" - }, - "profile": { - "type": "string" - }, - "remote_link_count": { - "type": "integer" - }, - "remote_only_count": { - "type": "integer" - }, - "requested": { - "type": "boolean" - }, - "total": { - "type": "integer" - } - }, - "type": "object" - }, - "BodyMetricsOutput": { - "properties": { - "body_block_count": { - "type": "integer" - }, - "body_heading_count": { - "type": "integer" - }, - "body_to_abstract_ratio": { - "type": "number" - }, - "char_count": { - "type": "integer" - }, - "explicit_body_container": { - "type": "boolean" - }, - "figure_count": { - "type": "integer" - }, - "post_abstract_body_run": { - "type": "boolean" - }, - "word_count": { - "type": "integer" - } - }, - "type": "object" - }, - "FetchAcceptanceSummaryOutput": { - "properties": { - "acquisition": { - "anyOf": [ - { - "$ref": "#/$defs/AcquisitionProvenanceOutput" - }, - { - "type": "null" - } - ] - }, - "asset": { - "type": "string" - }, - "content": { - "type": "string" - }, - "fetch": { - "type": "string" - }, - "has_abstract": { - "type": "boolean" - }, - "has_fulltext": { - "type": "boolean" - }, - "identity": { - "type": "string" - }, - "output": { - "type": "string" - }, - "overall": { - "type": "string" - }, - "provenance": { - "type": "string" - }, - "token_estimate": { - "type": "integer" - } - }, - "type": "object" - }, - "MetadataOutput": { - "properties": { - "abstract": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "article_type": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "authors": { - "items": { - "type": "string" - }, - "type": "array" - }, - "journal": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "keywords": { - "items": { - "type": "string" - }, - "type": "array" - }, - "landing_page_url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "license_urls": { - "items": { - "type": "string" - }, - "type": "array" - }, - "published": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "QualityOutput": { - "properties": { - "asset_failures": { - "items": { - "$ref": "#/$defs/AssetFailureOutput" - }, - "type": "array" - }, - "asset_summary": { - "$ref": "#/$defs/AssetQualitySummaryOutput" - }, - "body_metrics": { - "$ref": "#/$defs/BodyMetricsOutput" - }, - "confidence": { - "type": "string" - }, - "content_kind": { - "type": "string" - }, - "extraction_revision": { - "type": "integer" - }, - "flags": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_abstract": { - "type": "boolean" - }, - "has_fulltext": { - "type": "boolean" - }, - "semantic_losses": { - "$ref": "#/$defs/SemanticLossesOutput" - }, - "source_trail": { - "items": { - "type": "string" - }, - "type": "array" - }, - "token_estimate": { - "type": "integer" - }, - "token_estimate_breakdown": { - "$ref": "#/$defs/TokenEstimateBreakdownOutput" - }, - "warnings": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "ReferenceOutput": { - "properties": { - "doi": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "raw": { - "type": "string" - }, - "title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "year": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "ResolvedCandidateOutput": { - "properties": { - "author_score": { - "type": "number" - }, - "authors": { - "items": { - "type": "string" - }, - "type": "array" - }, - "doi": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "journal_title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "landing_page_url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provider_hint": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "published": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "score": { - "type": "number" - }, - "title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "title_score": { - "type": "number" - }, - "year_score": { - "type": "number" - } - }, - "type": "object" - }, - "SectionOutput": { - "properties": { - "heading": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "level": { - "type": "integer" - }, - "text": { - "type": "string" - } - }, - "type": "object" - }, - "SemanticLossesOutput": { - "properties": { - "formula_fallback_count": { - "type": "integer" - }, - "formula_missing_count": { - "type": "integer" - }, - "table_fallback_count": { - "type": "integer" - }, - "table_layout_degraded_count": { - "type": "integer" - }, - "table_lossy_count": { - "type": "integer" - }, - "table_semantic_loss_count": { - "type": "integer" - } - }, - "type": "object" - }, - "TokenEstimateBreakdownOutput": { - "properties": { - "abstract": { - "type": "integer" - }, - "body": { - "type": "integer" - }, - "refs": { - "type": "integer" - } - }, - "type": "object" - }, - "TraceEventOutput": { - "properties": { - "attempt": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "attempt_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "component": { - "type": "string" - }, - "duration_ms": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "error_category": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "finished_at": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "http_status": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "message": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "outcome": { - "type": "string" - }, - "parent_span_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provider": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "retry_after_seconds": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "retryable": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "route": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "span_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "stage": { - "type": "string" - }, - "started_at": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "target": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "target_sha256": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - } - }, - "properties": { - "acceptance": { - "$ref": "#/$defs/FetchAcceptanceSummaryOutput" - }, - "acquisition": { - "anyOf": [ - { - "$ref": "#/$defs/AcquisitionProvenanceOutput" - }, - { - "type": "null" - } - ] - }, - "article": { - "anyOf": [ - { - "$ref": "#/$defs/ArticleOutput" - }, - { - "type": "null" - } - ] - }, - "candidates": { - "anyOf": [ - { - "items": { - "$ref": "#/$defs/ResolvedCandidateOutput" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "content_kind": { - "type": "string" - }, - "details": { - "additionalProperties": true, - "type": "object" - }, - "diagnostic_artifacts": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array" - }, - "doi": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "error_category": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "has_abstract": { - "type": "boolean" - }, - "has_fulltext": { - "type": "boolean" - }, - "http_status": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "markdown": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "metadata": { - "anyOf": [ - { - "$ref": "#/$defs/MetadataOutput" - }, - { - "type": "null" - } - ] - }, - "missing_env": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "provider": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "quality": { - "$ref": "#/$defs/QualityOutput" - }, - "reason": { - "type": "string" - }, - "retry_after_seconds": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "retryable": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "route": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "saved_markdown_path": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "schema_version": { - "type": "integer" - }, - "source": { - "type": "string" - }, - "source_trail": { - "items": { - "type": "string" - }, - "type": "array" - }, - "stage": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "type": "string" - }, - "token_estimate": { - "type": "integer" - }, - "token_estimate_breakdown": { - "$ref": "#/$defs/TokenEstimateBreakdownOutput" - }, - "trace": { - "items": { - "$ref": "#/$defs/TraceEventOutput" - }, - "type": "array" - }, - "warnings": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" -}New value: +null
- Changed
get_cached3 fields changed- added
Input schema / properties / strategy / properties / require_full_size_body_assetsAdded value: +{ + "default": false, + "title": "Require Full Size Body Assets", + "type": "boolean" +} - added
Input schema / properties / strategy / properties / require_local_body_assetsAdded value: +{ + "default": false, + "title": "Require Local Body Assets", + "type": "boolean" +} - changed
Output schema / (root)Previous value: -{ - "$defs": { - "AcquisitionProvenanceOutput": { - "properties": { - "fallback_used": { - "type": "boolean" - }, - "provider": { - "type": "string" - }, - "representation": { - "type": "string" - }, - "route": { - "type": "string" - }, - "transport": { - "type": "string" - } - }, - "type": "object" - }, - "CacheAcceptanceSummaryOutput": { - "properties": { - "acquisition": { - "anyOf": [ - { - "$ref": "#/$defs/AcquisitionProvenanceOutput" - }, - { - "type": "null" - } - ] - }, - "asset": { - "type": "string" - }, - "content": { - "type": "string" - }, - "fetch": { - "type": "string" - }, - "identity": { - "type": "string" - }, - "output": { - "type": "string" - }, - "overall": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provenance": { - "type": "string" - }, - "reason_code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "type": "string" - } - }, - "type": "object" - }, - "CacheAssetSummaryOutput": { - "properties": { - "accepted_preview": { - "type": "integer" - }, - "attempted": { - "type": "integer" - }, - "audited": { - "type": "boolean" - }, - "discovered": { - "type": "integer" - }, - "expected": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "failed": { - "type": "integer" - }, - "failure_codes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "fallback_preview": { - "type": "integer" - }, - "full_size": { - "type": "integer" - }, - "issue_codes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "local": { - "type": "integer" - }, - "not_archived": { - "type": "integer" - }, - "placeholder_suspected": { - "type": "integer" - }, - "preview": { - "type": "integer" - }, - "profile": { - "type": "string" - }, - "remote_link_count": { - "type": "integer" - }, - "remote_links_preserved": { - "type": "boolean" - }, - "remote_only_count": { - "type": "integer" - }, - "requested": { - "type": "boolean" - }, - "status": { - "type": "string" - }, - "total": { - "type": "integer" - } - }, - "type": "object" - }, - "CacheEntryOutput": { - "properties": { - "acquisition": { - "anyOf": [ - { - "$ref": "#/$defs/AcquisitionProvenanceOutput" - }, - { - "type": "null" - } - ] - }, - "completed_at": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "content_kind": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "content_sha256": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "doi": { - "type": "string" - }, - "has_fulltext": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "id": { - "type": "string" - }, - "identity_proof": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "likely_has_fulltext": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "mime": { - "type": "string" - }, - "mtime": { - "type": "number" - }, - "path": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "source": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "CacheEntrySummaryOutput": { - "properties": { - "by_kind": { - "additionalProperties": { - "type": "integer" - }, - "type": "object" - }, - "total": { - "type": "integer" - } - }, - "type": "object" - }, - "CacheSidecarOutput": { - "properties": { - "cached_request": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ] - }, - "cached_request_fingerprint": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "expected_extraction_revision": { - "type": "integer" - }, - "expected_version": { - "type": "integer" - }, - "extraction_revision": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "path": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "payload_satisfies_request": { - "type": "boolean" - }, - "reason": { - "type": "string" - }, - "reason_code": { - "type": "string" - }, - "request_matches": { - "type": "boolean" - }, - "request_satisfied": { - "type": "boolean" - }, - "request_status": { - "type": "string" - }, - "requested_request": { - "additionalProperties": true, - "type": "object" - }, - "requested_request_fingerprint": { - "type": "string" - }, - "status": { - "type": "string" - }, - "version": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "CacheWarningSummaryOutput": { - "properties": { - "failure_codes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "fallback_codes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "messages": { - "items": { - "type": "string" - }, - "type": "array" - }, - "unstructured_warning_count": { - "type": "integer" - }, - "warning_codes": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "PreferredCacheEntriesOutput": { - "properties": { - "assets": { - "items": { - "$ref": "#/$defs/CacheEntryOutput" - }, - "type": "array" - }, - "markdown": { - "anyOf": [ - { - "$ref": "#/$defs/CacheEntryOutput" - }, - { - "type": "null" - } - ] - }, - "primary_payload": { - "anyOf": [ - { - "$ref": "#/$defs/CacheEntryOutput" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "ResolvedCandidateOutput": { - "properties": { - "author_score": { - "type": "number" - }, - "authors": { - "items": { - "type": "string" - }, - "type": "array" - }, - "doi": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "journal_title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "landing_page_url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provider_hint": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "published": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "score": { - "type": "number" - }, - "title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "title_score": { - "type": "number" - }, - "year_score": { - "type": "number" - } - }, - "type": "object" - }, - "TraceEventOutput": { - "properties": { - "attempt": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "attempt_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "component": { - "type": "string" - }, - "duration_ms": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "error_category": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "finished_at": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "http_status": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "message": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "outcome": { - "type": "string" - }, - "parent_span_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provider": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "retry_after_seconds": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "retryable": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "route": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "span_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "stage": { - "type": "string" - }, - "started_at": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "target": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "target_sha256": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - } - }, - "properties": { - "acceptance": { - "$ref": "#/$defs/CacheAcceptanceSummaryOutput" - }, - "acquisition": { - "anyOf": [ - { - "$ref": "#/$defs/AcquisitionProvenanceOutput" - }, - { - "type": "null" - } - ] - }, - "asset_summary": { - "$ref": "#/$defs/CacheAssetSummaryOutput" - }, - "cache_mode": { - "type": "string" - }, - "cached_request": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ] - }, - "cached_request_fingerprint": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "candidates": { - "anyOf": [ - { - "items": { - "$ref": "#/$defs/ResolvedCandidateOutput" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "confidence": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "content_kind": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "detail": { - "type": "string" - }, - "details": { - "additionalProperties": true, - "type": "object" - }, - "doi": { - "type": "string" - }, - "download_dir": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "entries": { - "items": { - "$ref": "#/$defs/CacheEntryOutput" - }, - "type": "array" - }, - "entry_summary": { - "$ref": "#/$defs/CacheEntrySummaryOutput" - }, - "error_category": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "expected_index_version": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "has_entries": { - "type": "boolean" - }, - "has_fulltext": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "http_status": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "identity_status": { - "type": "string" - }, - "index_reason": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "index_status": { - "type": "string" - }, - "index_version": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "missing_env": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "preferred": { - "$ref": "#/$defs/PreferredCacheEntriesOutput" - }, - "preferred_only": { - "type": "boolean" - }, - "provider": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "reason": { - "type": "string" - }, - "request_satisfied": { - "type": "boolean" - }, - "request_status": { - "type": "string" - }, - "requested_request": { - "additionalProperties": true, - "type": "object" - }, - "requested_request_fingerprint": { - "type": "string" - }, - "retry_after_seconds": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "retryable": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "route": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "schema_version": { - "type": "integer" - }, - "scope_status": { - "type": "string" - }, - "sidecar": { - "$ref": "#/$defs/CacheSidecarOutput" - }, - "source_trail": { - "items": { - "type": "string" - }, - "type": "array" - }, - "stage": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "type": "string" - }, - "trace": { - "items": { - "$ref": "#/$defs/TraceEventOutput" - }, - "type": "array" - }, - "warning_summary": { - "$ref": "#/$defs/CacheWarningSummaryOutput" - }, - "warnings": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" -}New value: +null
- Changed
has_fulltext1 field changed- changed
Output schema / (root)Previous value: -{ - "$defs": { - "ResolvedCandidateOutput": { - "properties": { - "author_score": { - "type": "number" - }, - "authors": { - "items": { - "type": "string" - }, - "type": "array" - }, - "doi": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "journal_title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "landing_page_url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provider_hint": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "published": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "score": { - "type": "number" - }, - "title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "title_score": { - "type": "number" - }, - "year_score": { - "type": "number" - } - }, - "type": "object" - }, - "TraceEventOutput": { - "properties": { - "attempt": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "attempt_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "component": { - "type": "string" - }, - "duration_ms": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "error_category": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "finished_at": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "http_status": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "message": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "outcome": { - "type": "string" - }, - "parent_span_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provider": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "retry_after_seconds": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "retryable": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "route": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "span_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "stage": { - "type": "string" - }, - "started_at": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "target": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "target_sha256": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - } - }, - "properties": { - "candidates": { - "anyOf": [ - { - "items": { - "$ref": "#/$defs/ResolvedCandidateOutput" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "details": { - "additionalProperties": true, - "type": "object" - }, - "doi": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "error_category": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "evidence": { - "items": { - "type": "string" - }, - "type": "array" - }, - "http_status": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "missing_env": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "provider": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "query": { - "type": "string" - }, - "reason": { - "type": "string" - }, - "retry_after_seconds": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "retryable": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "route": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "schema_version": { - "type": "integer" - }, - "source_trail": { - "items": { - "type": "string" - }, - "type": "array" - }, - "stage": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "state": { - "type": "string" - }, - "status": { - "type": "string" - }, - "trace": { - "items": { - "$ref": "#/$defs/TraceEventOutput" - }, - "type": "array" - }, - "warnings": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" -}New value: +null
- Changed
list_cached1 field changed- changed
Output schema / (root)Previous value: -{ - "$defs": { - "AcquisitionProvenanceOutput": { - "properties": { - "fallback_used": { - "type": "boolean" - }, - "provider": { - "type": "string" - }, - "representation": { - "type": "string" - }, - "route": { - "type": "string" - }, - "transport": { - "type": "string" - } - }, - "type": "object" - }, - "CacheEntryOutput": { - "properties": { - "acquisition": { - "anyOf": [ - { - "$ref": "#/$defs/AcquisitionProvenanceOutput" - }, - { - "type": "null" - } - ] - }, - "completed_at": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "content_kind": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "content_sha256": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "doi": { - "type": "string" - }, - "has_fulltext": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "id": { - "type": "string" - }, - "identity_proof": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "likely_has_fulltext": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "mime": { - "type": "string" - }, - "mtime": { - "type": "number" - }, - "path": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "source": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - }, - "ResolvedCandidateOutput": { - "properties": { - "author_score": { - "type": "number" - }, - "authors": { - "items": { - "type": "string" - }, - "type": "array" - }, - "doi": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "journal_title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "landing_page_url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provider_hint": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "published": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "score": { - "type": "number" - }, - "title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "title_score": { - "type": "number" - }, - "year_score": { - "type": "number" - } - }, - "type": "object" - }, - "TraceEventOutput": { - "properties": { - "attempt": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "attempt_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "component": { - "type": "string" - }, - "duration_ms": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "error_category": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "finished_at": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "http_status": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "message": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "outcome": { - "type": "string" - }, - "parent_span_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provider": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "retry_after_seconds": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "retryable": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "route": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "span_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "stage": { - "type": "string" - }, - "started_at": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "target": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "target_sha256": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - } - }, - "properties": { - "cache_mode": { - "type": "string" - }, - "candidates": { - "anyOf": [ - { - "items": { - "$ref": "#/$defs/ResolvedCandidateOutput" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "details": { - "additionalProperties": true, - "type": "object" - }, - "download_dir": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "entries": { - "items": { - "$ref": "#/$defs/CacheEntryOutput" - }, - "type": "array" - }, - "error_category": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "expected_index_version": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "http_status": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "index_reason": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "index_status": { - "type": "string" - }, - "index_version": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "missing_env": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "provider": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "reason": { - "type": "string" - }, - "retry_after_seconds": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "retryable": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "route": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "schema_version": { - "type": "integer" - }, - "source_trail": { - "items": { - "type": "string" - }, - "type": "array" - }, - "stage": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "type": "string" - }, - "trace": { - "items": { - "$ref": "#/$defs/TraceEventOutput" - }, - "type": "array" - }, - "warnings": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" -}New value: +null
- Changed
provider_status1 field changed- changed
Output schema / (root)Previous value: -{ - "$defs": { - "ConfigurationSourceLayerOutput": { - "properties": { - "present": { - "type": "boolean" - }, - "source": { - "type": "string" - } - }, - "type": "object" - }, - "ConfigurationSourceValueOutput": { - "properties": { - "name": { - "type": "string" - }, - "present": { - "type": "boolean" - }, - "sensitive": { - "type": "boolean" - }, - "source": { - "type": "string" - }, - "uses_default": { - "type": "boolean" - } - }, - "type": "object" - }, - "ConfigurationSourcesOutput": { - "properties": { - "layers": { - "items": { - "$ref": "#/$defs/ConfigurationSourceLayerOutput" - }, - "type": "array" - }, - "precedence": { - "items": { - "type": "string" - }, - "type": "array" - }, - "values": { - "items": { - "$ref": "#/$defs/ConfigurationSourceValueOutput" - }, - "type": "array" - } - }, - "type": "object" - }, - "ProviderStatusCheckOutput": { - "properties": { - "details": { - "additionalProperties": true, - "type": "object" - }, - "message": { - "type": "string" - }, - "missing_env": { - "items": { - "type": "string" - }, - "type": "array" - }, - "name": { - "type": "string" - }, - "status": { - "type": "string" - } - }, - "type": "object" - }, - "ProviderStatusItemOutput": { - "properties": { - "available": { - "type": "boolean" - }, - "checks": { - "items": { - "$ref": "#/$defs/ProviderStatusCheckOutput" - }, - "type": "array" - }, - "diagnostic_scope": { - "type": "string" - }, - "live_checked": { - "type": "boolean" - }, - "missing_env": { - "items": { - "type": "string" - }, - "type": "array" - }, - "notes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "official_provider": { - "type": "boolean" - }, - "provider": { - "type": "string" - }, - "reason": { - "type": "string" - }, - "reason_code": { - "type": "string" - }, - "status": { - "type": "string" - }, - "suggested_action": { - "type": "string" - } - }, - "type": "object" - }, - "ResolvedCandidateOutput": { - "properties": { - "author_score": { - "type": "number" - }, - "authors": { - "items": { - "type": "string" - }, - "type": "array" - }, - "doi": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "journal_title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "landing_page_url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provider_hint": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "published": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "score": { - "type": "number" - }, - "title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "title_score": { - "type": "number" - }, - "year_score": { - "type": "number" - } - }, - "type": "object" - }, - "TraceEventOutput": { - "properties": { - "attempt": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "attempt_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "component": { - "type": "string" - }, - "duration_ms": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "error_category": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "finished_at": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "http_status": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "message": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "outcome": { - "type": "string" - }, - "parent_span_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provider": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "retry_after_seconds": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "retryable": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "route": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "span_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "stage": { - "type": "string" - }, - "started_at": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "target": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "target_sha256": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - } - }, - "properties": { - "candidates": { - "anyOf": [ - { - "items": { - "$ref": "#/$defs/ResolvedCandidateOutput" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "configuration": { - "$ref": "#/$defs/ConfigurationSourcesOutput" - }, - "detail": { - "type": "string" - }, - "details": { - "additionalProperties": true, - "type": "object" - }, - "diagnostic_scope": { - "type": "string" - }, - "error_category": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "group_filter": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "http_status": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "live_network_checked": { - "type": "boolean" - }, - "local_capabilities": { - "additionalProperties": true, - "type": "object" - }, - "missing_env": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "provider": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provider_filter": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "providers": { - "items": { - "$ref": "#/$defs/ProviderStatusItemOutput" - }, - "type": "array" - }, - "reason": { - "type": "string" - }, - "remote_publisher_health": { - "type": "string" - }, - "retry_after_seconds": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "retryable": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "route": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "schema_version": { - "type": "integer" - }, - "source_trail": { - "items": { - "type": "string" - }, - "type": "array" - }, - "stage": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "type": "string" - }, - "trace": { - "items": { - "$ref": "#/$defs/TraceEventOutput" - }, - "type": "array" - }, - "warnings": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" -}New value: +null
- Changed
resolve_paper1 field changed- changed
Output schema / (root)Previous value: -{ - "$defs": { - "ResolvedCandidateOutput": { - "properties": { - "author_score": { - "type": "number" - }, - "authors": { - "items": { - "type": "string" - }, - "type": "array" - }, - "doi": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "journal_title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "landing_page_url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provider_hint": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "published": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "score": { - "type": "number" - }, - "title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "title_score": { - "type": "number" - }, - "year_score": { - "type": "number" - } - }, - "type": "object" - }, - "TraceEventOutput": { - "properties": { - "attempt": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "attempt_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "component": { - "type": "string" - }, - "duration_ms": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "error_category": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "finished_at": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "http_status": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "message": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "outcome": { - "type": "string" - }, - "parent_span_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provider": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "retry_after_seconds": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "retryable": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "route": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "span_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "stage": { - "type": "string" - }, - "started_at": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "target": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "target_sha256": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "type": "object" - } - }, - "properties": { - "candidates": { - "anyOf": [ - { - "items": { - "$ref": "#/$defs/ResolvedCandidateOutput" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "confidence": { - "type": "number" - }, - "details": { - "additionalProperties": true, - "type": "object" - }, - "doi": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "error": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ] - }, - "error_category": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "http_status": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "index": { - "type": "integer" - }, - "landing_url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "missing_env": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "provider": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provider_hint": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provider_lane": { - "type": "string" - }, - "query": { - "type": "string" - }, - "query_kind": { - "type": "string" - }, - "reason": { - "type": "string" - }, - "retry_after_seconds": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "retryable": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "route": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "schema_version": { - "type": "integer" - }, - "source_trail": { - "items": { - "type": "string" - }, - "type": "array" - }, - "stage": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "type": "string" - }, - "title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "trace": { - "items": { - "$ref": "#/$defs/TraceEventOutput" - }, - "type": "array" - }, - "warnings": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" -}New value: +null
7 tool updates
v5.5.0- Changed
batch_check7 fields changed- added
Output schema / $defs / AcquisitionProvenanceOutputAdded value: +{ + "properties": { + "fallback_used": { + "type": "boolean" + }, + "provider": { + "type": "string" + }, + "representation": { + "type": "string" + }, + "route": { + "type": "string" + }, + "transport": { + "type": "string" + } + }, + "type": "object" +} - added
Output schema / $defs / BatchCheckItemOutput / properties / acquisitionAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/AcquisitionProvenanceOutput" + }, + { + "type": "null" + } + ] +} - added
Output schema / $defs / BatchCheckItemOutput / properties / errorAdded value: +{ + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ] +} - added
Output schema / $defs / BatchCheckItemOutput / properties / indexAdded value: +{ + "type": "integer" +} - added
Output schema / $defs / BatchCheckItemOutput / properties / provider_laneAdded value: +{ + "type": "string" +} - added
Output schema / $defs / BatchTerminalProgressOutputAdded value: +{ + "properties": { + "completed": { + "type": "integer" + }, + "not_scheduled": { + "type": "integer" + }, + "terminal": { + "type": "integer" + }, + "total": { + "type": "integer" + } + }, + "required": [ + "total", + "terminal", + "completed", + "not_scheduled" + ], + "type": "object" +} - added
Output schema / properties / progressAdded value: +{ + "$ref": "#/$defs/BatchTerminalProgressOutput" +}
- Changed
batch_fetch10 fields changed- added
Output schema / $defs / AcquisitionProvenanceOutputAdded value: +{ + "properties": { + "fallback_used": { + "type": "boolean" + }, + "provider": { + "type": "string" + }, + "representation": { + "type": "string" + }, + "route": { + "type": "string" + }, + "transport": { + "type": "string" + } + }, + "type": "object" +} - added
Output schema / $defs / BatchFetchArtifactOutput / properties / failure_codeAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Output schema / $defs / BatchFetchArtifactOutput / properties / routeAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Output schema / $defs / BatchFetchItemOutput / properties / acquisitionAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/AcquisitionProvenanceOutput" + }, + { + "type": "null" + } + ] +} - added
Output schema / $defs / FetchAcceptanceSummaryOutput / properties / acquisitionAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/AcquisitionProvenanceOutput" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / deduplicated_countAdded value: +{ + "type": "integer" +} - added
Output schema / properties / execution_countAdded value: +{ + "type": "integer" +} - added
Output schema / properties / execution_policyAdded value: +{ + "additionalProperties": true, + "type": "object" +} - added
Output schema / properties / not_scheduled_countAdded value: +{ + "type": "integer" +} - added
Output schema / properties / semantic_fingerprintAdded value: +{ + "type": "string" +}
- Changed
batch_resolve5 fields changed- added
Output schema / $defs / BatchTerminalProgressOutputAdded value: +{ + "properties": { + "completed": { + "type": "integer" + }, + "not_scheduled": { + "type": "integer" + }, + "terminal": { + "type": "integer" + }, + "total": { + "type": "integer" + } + }, + "required": [ + "total", + "terminal", + "completed", + "not_scheduled" + ], + "type": "object" +} - added
Output schema / $defs / ResolvePaperOutput / properties / errorAdded value: +{ + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ] +} - added
Output schema / $defs / ResolvePaperOutput / properties / indexAdded value: +{ + "type": "integer" +} - added
Output schema / $defs / ResolvePaperOutput / properties / provider_laneAdded value: +{ + "type": "string" +} - added
Output schema / properties / progressAdded value: +{ + "$ref": "#/$defs/BatchTerminalProgressOutput" +}
- Changed
fetch_paper4 fields changed- added
Output schema / $defs / AcquisitionProvenanceOutputAdded value: +{ + "properties": { + "fallback_used": { + "type": "boolean" + }, + "provider": { + "type": "string" + }, + "representation": { + "type": "string" + }, + "route": { + "type": "string" + }, + "transport": { + "type": "string" + } + }, + "type": "object" +} - added
Output schema / $defs / ArticleOutput / properties / acquisitionAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/AcquisitionProvenanceOutput" + }, + { + "type": "null" + } + ] +} - added
Output schema / $defs / FetchAcceptanceSummaryOutput / properties / acquisitionAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/AcquisitionProvenanceOutput" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / acquisitionAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/AcquisitionProvenanceOutput" + }, + { + "type": "null" + } + ] +}
- Changed
get_cached11 fields changed- added
Output schema / $defs / AcquisitionProvenanceOutputAdded value: +{ + "properties": { + "fallback_used": { + "type": "boolean" + }, + "provider": { + "type": "string" + }, + "representation": { + "type": "string" + }, + "route": { + "type": "string" + }, + "transport": { + "type": "string" + } + }, + "type": "object" +} - added
Output schema / $defs / CacheAcceptanceSummaryOutput / properties / acquisitionAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/AcquisitionProvenanceOutput" + }, + { + "type": "null" + } + ] +} - added
Output schema / $defs / CacheAssetSummaryOutput / properties / accepted_previewAdded value: +{ + "type": "integer" +} - added
Output schema / $defs / CacheAssetSummaryOutput / properties / attemptedAdded value: +{ + "type": "integer" +} - added
Output schema / $defs / CacheAssetSummaryOutput / properties / auditedAdded value: +{ + "type": "boolean" +} - added
Output schema / $defs / CacheAssetSummaryOutput / properties / discoveredAdded value: +{ + "type": "integer" +} - added
Output schema / $defs / CacheAssetSummaryOutput / properties / expectedAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] +} - added
Output schema / $defs / CacheAssetSummaryOutput / properties / fallback_previewAdded value: +{ + "type": "integer" +} - added
Output schema / $defs / CacheAssetSummaryOutput / properties / issue_codesAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / $defs / CacheEntryOutput / properties / acquisitionAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/AcquisitionProvenanceOutput" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / acquisitionAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/AcquisitionProvenanceOutput" + }, + { + "type": "null" + } + ] +}
- Changed
list_cached2 fields changed- added
Output schema / $defs / AcquisitionProvenanceOutputAdded value: +{ + "properties": { + "fallback_used": { + "type": "boolean" + }, + "provider": { + "type": "string" + }, + "representation": { + "type": "string" + }, + "route": { + "type": "string" + }, + "transport": { + "type": "string" + } + }, + "type": "object" +} - added
Output schema / $defs / CacheEntryOutput / properties / acquisitionAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/AcquisitionProvenanceOutput" + }, + { + "type": "null" + } + ] +}
- Changed
resolve_paper3 fields changed- added
Output schema / properties / errorAdded value: +{ + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / indexAdded value: +{ + "type": "integer" +} - added
Output schema / properties / provider_laneAdded value: +{ + "type": "string" +}
4 tool updates
v5.4.1- Changed
batch_check1 field changed- added
Input schema / properties / browser_auto_prepareAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Browser Auto Prepare" +}
- Changed
batch_fetch1 field changed- added
Input schema / properties / browser_auto_prepareAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Browser Auto Prepare" +}
- Changed
browser_preflight1 field changed- added
Input schema / properties / browser_auto_prepareAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Browser Auto Prepare" +}
- Changed
fetch_paper1 field changed- added
Input schema / properties / browser_auto_prepareAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Browser Auto Prepare" +}
TDQS
Scored across 9 tools
Tools fall into clear functional groups: single/batch resolve (resolve_paper/batch_resolve), single/batch fetch (fetch_paper/batch_fetch), cache reads (list_cached/get_cached), and diagnostics (provider_status/browser_preflight). The singular-vs-batch and static-vs-live distinctions are stated explicitly, though the cache pair (list_cached vs get_cached) and batch_check vs fetch boundaries require careful reading of very dense descriptions to separate.
Casing is uniformly snake_case, but the verb-first convention is broken: batch_check, batch_fetch, and batch_resolve lead with a modifier rather than a verb, and provider_status/browser_preflight are noun-noun. The batch_ prefix is systematic and readable, but the set mixes several structural patterns rather than one predictable verb_noun form.
Nine tools is well-scoped for a paper-fetch server, with each tool earning its place across resolve, fetch, cache, and diagnostics concerns. Single and batch variants are paired cleanly without redundancy.
The core lifecycle—resolve, probe/check, fetch, and cache inspection—is fully covered for both single and batch workflows, plus diagnostics for providers and the browser path. The main gap is cache management: there is no way to clear or delete cached entries, only to list and look them up.
Maintenance
Related MCP Connectors
Hosted MCP server: convert PDFs to clean, LLM-ready Markdown with tables, formulas and OCR.
Document-to-Markdown MCP server — convert PDF, Office and HTML into LLM-ready Markdown.
Academic research MCP server for paper search, citation checks, graphs, and deep research.
Publish and share access-controlled Markdown documents from any MCP-enabled AI tool.
Related MCP Servers
- AlicenseBqualityBmaintenanceAn MCP server for searching and downloading academic papers from multiple sources including arXiv, PubMed, bioRxiv, and Sci-Hub, designed for seamless integration with large language models like Claude Desktop.573,497 PyPI3,009MIT
- AlicenseAqualityDmaintenanceMCP server enabling AI agents to search and retrieve scientific papers, citations, and author profiles from Crossref, OpenAlex, and Semantic Scholar with no API keys required.519 PyPI3MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server that enables coding agents to search academic papers, ingest full-text PDFs, extract structured details, and manage citations in literature research workflows.32MIT
- AlicenseNot gradedqualityDmaintenanceA MCP server for searching and downloading academic papers from arXiv, PubMed, bioRxiv, and more. It integrates with LLMs like Claude Desktop for paper discovery.MIT