{"_id":"@brainwav/rsearch","_rev":"5-8ec206447dd5e171775579f345283cb4","name":"@brainwav/rsearch","dist-tags":{"latest":"0.1.6"},"versions":{"0.1.1":{"name":"@brainwav/rsearch","version":"0.1.1","keywords":["arxiv","cli","mcp","research","rsearch"],"author":{"name":"jscraik"},"license":"MIT","_id":"@brainwav/rsearch@0.1.1","maintainers":[{"name":"craik515","email":"jscraik@brainwav.io"}],"homepage":"https://github.com/jscraik/rSearch#readme","bugs":{"url":"https://github.com/jscraik/rSearch/issues"},"bin":{"rsearch":"dist/cli.js"},"dist":{"shasum":"b463140ce6fe43f51d2a723972bd58b3f9d60de7","tarball":"https://registry.npmjs.org/@brainwav/rsearch/-/rsearch-0.1.1.tgz","fileCount":50,"integrity":"sha512-sa+IsSqQuuZ7VS2JknRzx4GQ6MHnbmnOLh82FBTfsLXwmP3N8MERG87VnfFcbZ1bza1AR+pZruikt5q6yjuRJA==","signatures":[{"sig":"MEQCIBAVHC7HvJUAl5ep4Ox50mgucLKMf8kTBKuT2bEqtICSAiABJ/1stYIpO2rPrTdO66KxIg7SC1CwcBThgcF7l0pDvg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":178991},"type":"module","engines":{"node":">=20.18.1"},"exports":{".":"./dist/index.js"},"gitHead":"be79138ec2fd7d51b87156e7209c6f1d1cb1a704","scripts":{"ci":"npm run typecheck && npm test && npm run build","dev":"tsx src/cli.ts","test":"vitest run","audit":"npm audit --audit-level=high","build":"tsc -p tsconfig.json","commit":"node scripts/commit.js","prepack":"npm run build","version":"node scripts/update-changelog.js && git add CHANGELOG.md","docs:api":"typedoc","postbuild":"node scripts/add-shebang.cjs","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"tsc -p tsconfig.json --noEmit","preversion":"git branch --show-current | grep -q '^main$' || (echo 'Releases must occur on main' && exit 1) && npm run prepublishOnly","postversion":"git push && git push --tags","prepublishOnly":"npm run ci","changelog:update":"node scripts/update-changelog.js","docs:check-links":"markdown-link-check *.md docs/*.md"},"_npmUser":{"name":"craik515","email":"jscraik@brainwav.io"},"repository":{"url":"git+https://github.com/jscraik/rSearch.git","type":"git"},"_npmVersion":"11.9.0","description":"rSearch CLI for arXiv","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","yargs":"^18.0.0","cheerio":"^1.2.0","pdf-parse":"^2.4.5","fast-xml-parser":"^5.3.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^4.0.18","typedoc":"^0.28.16","typescript":"^5.9.3","@types/node":"^25.2.2","@types/yargs":"^17.0.35","markdown-link-check":"^3.14.2","typedoc-plugin-markdown":"^4.10.0"},"_npmOperationalInternal":{"tmp":"tmp/rsearch_0.1.1_1771844380853_0.29433234036856226","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@brainwav/rsearch","version":"0.1.3","keywords":["arxiv","cli","mcp","research","rsearch"],"author":{"name":"jscraik"},"license":"MIT","_id":"@brainwav/rsearch@0.1.3","maintainers":[{"name":"craik515","email":"jscraik@brainwav.io"}],"homepage":"https://github.com/jscraik/rSearch#readme","bugs":{"url":"https://github.com/jscraik/rSearch/issues"},"bin":{"rsearch":"dist/cli.js"},"dist":{"shasum":"188900b09693d878e30d4d2aefed3515d7c88421","tarball":"https://registry.npmjs.org/@brainwav/rsearch/-/rsearch-0.1.3.tgz","fileCount":50,"integrity":"sha512-3wxNf3T4Z7yaYoVQJDqEf135BG4d1+X/FOhUjNllpe6cyQ9T/8M/hZWDR6SctgOZxEA4Xqs6b7kpxobZXbth5A==","signatures":[{"sig":"MEUCIGA4RusggRUPgGtx0cg/ABmoU11L0Hd1fW3drWZ4wnHiAiEAqQ4UthmeN4cN/EF0FODdLH9zgZyZh7tmLRjPBO/Gvws=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@brainwav%2frsearch@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":178992},"type":"module","engines":{"node":">=20.18.1"},"exports":{".":"./dist/index.js"},"gitHead":"c5586a6cca5aa7801f0f36af68e510806949e9ad","scripts":{"ci":"npm run typecheck && npm test && npm run build","dev":"tsx src/cli.ts","test":"vitest run","audit":"npm audit --audit-level=high","build":"tsc -p tsconfig.json","commit":"node scripts/commit.js","prepack":"npm run build","version":"node scripts/update-changelog.js && git add CHANGELOG.md","docs:api":"typedoc","postbuild":"node scripts/add-shebang.cjs","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"tsc -p tsconfig.json --noEmit","preversion":"git branch --show-current | grep -q '^main$' || (echo 'Releases must occur on main' && exit 1) && npm run prepublishOnly","postversion":"git push && git push --tags","prepublishOnly":"npm run ci","changelog:update":"node scripts/update-changelog.js","docs:check-links":"markdown-link-check *.md docs/*.md"},"_npmUser":{"name":"craik515","email":"jscraik@brainwav.io"},"repository":{"url":"git+https://github.com/jscraik/rSearch.git","type":"git"},"_npmVersion":"10.8.2","description":"rSearch CLI for arXiv","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.3.6","yargs":"^18.0.0","cheerio":"^1.2.0","pdf-parse":"^2.4.5","fast-xml-parser":"^5.3.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^4.0.18","typedoc":"^0.28.16","typescript":"^5.9.3","@types/node":"^25.2.2","@types/yargs":"^17.0.35","markdown-link-check":"^3.14.2","typedoc-plugin-markdown":"^4.10.0"},"_npmOperationalInternal":{"tmp":"tmp/rsearch_0.1.3_1771844610496_0.02941611217692186","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@brainwav/rsearch","version":"0.1.4","keywords":["arxiv","cli","mcp","research","rsearch"],"author":{"name":"jscraik"},"license":"MIT","_id":"@brainwav/rsearch@0.1.4","maintainers":[{"name":"craik515","email":"jscraik@brainwav.io"}],"homepage":"https://github.com/jscraik/rSearch#readme","bugs":{"url":"https://github.com/jscraik/rSearch/issues"},"bin":{"rsearch":"dist/cli.js"},"dist":{"shasum":"e63e849b78de5a5990c005970958924e6de76f14","tarball":"https://registry.npmjs.org/@brainwav/rsearch/-/rsearch-0.1.4.tgz","fileCount":50,"integrity":"sha512-m1vPyPqW4+dIIqViutCa0BFo/n/yhFMXArrtaxiiWkLUUoDBUav59kH6gFfawRSHsvGNoUMB9QplCOM8Oz/EbQ==","signatures":[{"sig":"MEQCIHHyqFOa9y1fEgkv7H5RnUAvV7T9AwpTkEvh43BpS35GAiB6e+xLWd/AF2FiIJUbxwV4Kpk7NJWGwbya9JITShvddQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@brainwav%2frsearch@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":178992},"type":"module","engines":{"node":">=20.18.1"},"exports":{".":"./dist/index.js"},"gitHead":"b5e708d8952efd1a4eca7f6e87ac79d1cdd6b9c7","scripts":{"ci":"npm run typecheck && npm test && npm run build","dev":"tsx src/cli.ts","test":"vitest run","audit":"npm audit --audit-level=high","build":"tsc -p tsconfig.json","commit":"node scripts/commit.js","prepack":"npm run build","version":"node scripts/update-changelog.js && git add CHANGELOG.md","docs:api":"typedoc","postbuild":"node scripts/add-shebang.cjs","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"tsc -p tsconfig.json --noEmit","preversion":"git branch --show-current | grep -q '^main$' || (echo 'Releases must occur on main' && exit 1) && npm run prepublishOnly","postversion":"git push && git push --tags","prepublishOnly":"npm run ci","changelog:update":"node scripts/update-changelog.js","docs:check-links":"markdown-link-check *.md docs/*.md"},"_npmUser":{"name":"craik515","email":"jscraik@brainwav.io"},"repository":{"url":"git+https://github.com/jscraik/rSearch.git","type":"git"},"_npmVersion":"10.8.2","description":"rSearch CLI for arXiv","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.3.6","yargs":"^18.0.0","cheerio":"^1.2.0","pdf-parse":"^2.4.5","fast-xml-parser":"^5.3.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^4.0.18","typedoc":"^0.28.16","typescript":"^5.9.3","@types/node":"^25.2.2","@types/yargs":"^17.0.35","markdown-link-check":"^3.14.2","typedoc-plugin-markdown":"^4.10.0"},"_npmOperationalInternal":{"tmp":"tmp/rsearch_0.1.4_1771844869316_0.24559750126713942","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@brainwav/rsearch","version":"0.1.5","keywords":["arxiv","cli","mcp","research","rsearch"],"author":{"name":"jscraik"},"license":"MIT","_id":"@brainwav/rsearch@0.1.5","maintainers":[{"name":"craik515","email":"jscraik@brainwav.io"}],"homepage":"https://github.com/jscraik/rSearch#readme","bugs":{"url":"https://github.com/jscraik/rSearch/issues"},"bin":{"rsearch":"dist/cli.js"},"dist":{"shasum":"0589efa57497f9e2419d2460ce8ba550dd379955","tarball":"https://registry.npmjs.org/@brainwav/rsearch/-/rsearch-0.1.5.tgz","fileCount":50,"integrity":"sha512-8mhOSINchCKcDTsH3v0r6HJGufo7GkD7IaIx7K5Rz+lOyF0AYcQKsanO6i0yzkyKp0Bkc6YBh7U0ozmOfZObqQ==","signatures":[{"sig":"MEYCIQCsnIRwskE8qFvZNAg8WtF6eInKmoOZVElPg+fl8BOZQQIhAMgcrnMguRbUN+vSwLZRdBdsLHZmu5dVQ4M/vDzbXoID","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@brainwav%2frsearch@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":178719},"type":"module","engines":{"node":">=20.18.1"},"exports":{".":"./dist/index.js"},"gitHead":"6ba32a79cf175677e8f4bf558d98777daa8ee037","scripts":{"ci":"npm run typecheck && npm test && npm run build","dev":"tsx src/cli.ts","test":"vitest run","audit":"npm audit --audit-level=high","build":"tsc -p tsconfig.json","commit":"node scripts/commit.js","prepack":"npm run build","version":"node scripts/update-changelog.js && git add CHANGELOG.md","docs:api":"typedoc","postbuild":"node scripts/add-shebang.cjs","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"tsc -p tsconfig.json --noEmit","preversion":"git branch --show-current | grep -q '^main$' || (echo 'Releases must occur on main' && exit 1) && npm run prepublishOnly","postversion":"git push && git push --tags","prepublishOnly":"npm run ci","changelog:update":"node scripts/update-changelog.js","docs:check-links":"markdown-link-check *.md docs/*.md"},"_npmUser":{"name":"craik515","email":"jscraik@brainwav.io"},"repository":{"url":"git+https://github.com/jscraik/rSearch.git","type":"git"},"_npmVersion":"10.8.2","description":"rSearch CLI for arXiv","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.3.6","yargs":"^18.0.0","cheerio":"^1.2.0","pdf-parse":"^2.4.5","fast-xml-parser":"^5.3.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^4.0.18","typedoc":"^0.28.16","typescript":"^5.9.3","@types/node":"^25.2.2","@types/yargs":"^17.0.35","markdown-link-check":"^3.14.2","typedoc-plugin-markdown":"^4.10.0"},"_npmOperationalInternal":{"tmp":"tmp/rsearch_0.1.5_1771845186948_0.5281535133581576","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@brainwav/rsearch","version":"0.1.6","description":"rSearch CLI for arXiv","type":"module","publishConfig":{"access":"public"},"bin":{"rsearch":"dist/cli.js"},"exports":{".":"./dist/index.js"},"scripts":{"build":"tsc -p tsconfig.json","postbuild":"node scripts/add-shebang.cjs","dev":"tsx src/cli.ts","typecheck":"tsc -p tsconfig.json --noEmit","lint:types":"tsc -p tsconfig.json --noEmit","test":"vitest run","audit":"npm audit --audit-level=high","ci":"npm run typecheck && npm test && npm run build","docs:check-links":"markdown-link-check *.md docs/*.md","docs:api":"typedoc","prepublishOnly":"npm run ci","preversion":"git branch --show-current | grep -q '^main$' || (echo 'Releases must occur on main' && exit 1) && npm run prepublishOnly","version":"node scripts/update-changelog.js && git add CHANGELOG.md","postversion":"git push && git push --tags","changelog:update":"node scripts/update-changelog.js","prepack":"npm run build","commit":"node scripts/commit.js"},"engines":{"node":">=20.18.1"},"keywords":["arxiv","cli","mcp","research","rsearch"],"author":{"name":"jscraik"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/jscraik/rSearch.git"},"bugs":{"url":"https://github.com/jscraik/rSearch/issues"},"homepage":"https://github.com/jscraik/rSearch#readme","dependencies":{"cheerio":"^1.2.0","fast-xml-parser":"^5.3.4","pdf-parse":"^2.4.5","yargs":"^18.0.0","zod":"^4.3.6"},"devDependencies":{"@types/node":"^25.2.2","@types/yargs":"^17.0.35","markdown-link-check":"^3.14.2","tsx":"^4.21.0","typedoc":"^0.28.17","typedoc-plugin-markdown":"^4.10.0","typescript":"^5.9.3","vitest":"^4.0.18"},"overrides":{"minimatch":"^10.2.1"},"_id":"@brainwav/rsearch@0.1.6","gitHead":"8d689b017fee74c676a87d039c770f81ab9ed04a","_nodeVersion":"20.20.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-1wqG39StG+Eoddzqo9Dl167AwOUvBI0gS1tAkYUsqi/4NXLmIckB5XZypXVekr8hyaCWI+/93VNkwOZne/JFFw==","shasum":"f9d0dfcd6c8b581cc956ab0375d6491a2c2867fe","tarball":"https://registry.npmjs.org/@brainwav/rsearch/-/rsearch-0.1.6.tgz","fileCount":50,"unpackedSize":178768,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@brainwav%2frsearch@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBx0b88dTXxfIzcpI7hLw8EYaZbWbiJdf9zEFZ5C+k4rAiAQobyGbwtCMxyGiVzUA59s0y5rNfVYlpA7/0XqrOYIbw=="}]},"_npmUser":{"name":"craik515","email":"jscraik@brainwav.io"},"directories":{},"maintainers":[{"name":"craik515","email":"jscraik@brainwav.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/rsearch_0.1.6_1771846110027_0.8007460387639915"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-23T10:59:40.760Z","modified":"2026-02-23T11:28:30.443Z","0.1.1":"2026-02-23T10:59:41.014Z","0.1.3":"2026-02-23T11:03:30.661Z","0.1.4":"2026-02-23T11:07:49.457Z","0.1.5":"2026-02-23T11:13:07.109Z","0.1.6":"2026-02-23T11:28:30.178Z"},"bugs":{"url":"https://github.com/jscraik/rSearch/issues"},"author":{"name":"jscraik"},"license":"MIT","homepage":"https://github.com/jscraik/rSearch#readme","keywords":["arxiv","cli","mcp","research","rsearch"],"repository":{"type":"git","url":"git+https://github.com/jscraik/rSearch.git"},"description":"rSearch CLI for arXiv","maintainers":[{"name":"craik515","email":"jscraik@brainwav.io"}],"readme":"<div align=\"center\">\n  <img src=\"./brand/rsearch-brand-logo.png\" alt=\"rSearch Logo\" width=\"200\" />\n</div>\n\n# rSearch helps developers search, fetch, and download arXiv papers from the terminal\n\n[![License](https://img.shields.io/badge/license-MIT-informational.svg)](LICENSE)\n[![npm](https://img.shields.io/npm/v/@brainwav/rsearch)](https://www.npmjs.com/package/@brainwav/rsearch)\n[![CI](https://github.com/jscraik/rSearch/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/jscraik/rSearch/actions/workflows/ci.yml)\n[![Security Policy](https://img.shields.io/badge/security-policy-informational.svg)](SECURITY.md)\n[![Issues](https://img.shields.io/github/issues/jscraik/rSearch)](https://github.com/jscraik/rSearch/issues)\n\nOne sentence: This repo provides a Node/TypeScript CLI for arXiv search, metadata fetch, downloads, category browsing, and URL output.\n\nLast updated: 2026-01-07\n\n## Table of contents\n\n- [Doc requirements](#doc-requirements)\n- [Prerequisites](#prerequisites)\n- [Quickstart](#quickstart)\n- [Common tasks](#common-tasks)\n- [Risks and assumptions](#risks-and-assumptions)\n- [Troubleshooting](#troubleshooting)\n- [Reference](#reference)\n- [Acceptance criteria](#acceptance-criteria)\n- [Evidence bundle](#evidence-bundle)\n\n## Doc requirements\n\n- Audience: Developers and researchers using the CLI to search, fetch, and download arXiv papers.\n- Scope: Installation, core commands, verification steps, and usage constraints.\n- Non-scope: Contribution workflow, security reporting, and internal architecture (see `CONTRIBUTING.md`, `SECURITY.md`, `docs/ADR-001-architecture.md`).\n- Doc owner: jscraik.\n- Review cadence: Each release.\n- Required approvals: 1 maintainer.\n\n## Prerequisites\n\n- Required: Node.js 20+, npm\n- Optional: Git, a POSIX shell\n\n## Quickstart\n\n### 1) Install\n\n```sh\nnpm install -g @brainwav/rsearch\n```\n\n### 2) Run a search\n\n```sh\nrsearch search \"cat:cs.AI\" --max-results 5\n```\n\n### 3) Verify\n\nExpected output:\n\n- A list of results with IDs and titles.\n\n## Common tasks\n\n### Search arXiv by query\n\n- What you get: titles and IDs (plus URLs in JSON output).\n- Steps:\n\n```sh\nrsearch search \"cat:cs.LG\" --max-results 10\n```\n\n- Verify: output shows `Total results` and a list of entries.\n\n### Filter search results to entries with license metadata\n\n- What you get: only results that include license metadata in arXiv records.\n- Steps:\n\n```sh\nrsearch search \"cat:cs.AI\" --require-license --max-results 10\n```\n\n- Verify: summary mentions filtered results when license metadata is missing.\n\n### Fetch metadata by arXiv ID\n\n- What you get: full metadata including abstract, authors, and PDF URL.\n- Steps:\n\n```sh\nrsearch fetch 2002.00762 --json\n```\n\n- Verify: JSON includes `absUrl` and `pdfUrl`.\n\n### Download PDFs\n\n- What you get: a PDF per ID in the output directory.\n- Steps:\n\n```sh\nrsearch download 2002.00762 --out-dir ./papers\n```\n\n- Verify: `./papers/2002.00762.pdf` exists.\n\n### Export Markdown or JSON with extracted text\n\n- What you get: Markdown or JSON output with text extracted from the PDF.\n- Steps:\n\n```sh\nrsearch download 2002.00762 --format md --out-dir ./papers\nrsearch download 2002.00762 --format json --out-dir ./papers\n```\n\n- Verify: `./papers/2002.00762.md` or `./papers/2002.00762.json` exists.\n\n### Enforce license metadata on downloads\n\n- What you get: downloads fail if arXiv does not provide license metadata.\n- Steps:\n\n```sh\nrsearch download 2002.00762 --format json --require-license --out-dir ./papers\n```\n\n- Verify: failures are reported with `License metadata missing` when unavailable.\n\n### Keep PDF while exporting text formats\n\n- What you get: both the text export and the PDF.\n- Steps:\n\n```sh\nrsearch download 2002.00762 --format md --keep-pdf --out-dir ./papers\n```\n\n- Verify: both `2002.00762.md` and `2002.00762.pdf` exist.\n\n### Return URLs for agents\n\n- What you get: abstract and PDF URLs per result.\n- Steps:\n\n```sh\nrsearch urls \"cat:cs.AI\"\nrsearch urls --ids 2002.00762 2101.00001\nrsearch urls \"cat:cs.AI\" --require-license\n```\n\n- Verify: each line includes an abs URL and PDF URL.\n\n### Browse categories\n\n- What you get: the arXiv category taxonomy.\n- Steps:\n\n```sh\nrsearch categories tree\nrsearch categories list --group \"Computer Science\"\n```\n\n- Verify: group names and category IDs are listed.\n\n## Risks and assumptions\n\n- Assumes arXiv API availability and that users respect rate limits.\n- Assumes users review license metadata before reuse; the CLI does not grant rights.\n- PDF text extraction may fail on scanned or complex layouts.\n- Output files overwrite only when `--overwrite` is used; verify output paths before running batch downloads.\n\n## Troubleshooting\n\n### Symptom: “Provide a search query” or “Provide arXiv IDs”\n\nCause:\n\n- Missing positional argument or stdin input.\nFix:\n\n```sh\nrsearch search \"cat:cs.AI\"\nrsearch fetch 2002.00762\n```\n\n### Symptom: “arXiv API request failed (429/5xx)”\n\nCause:\n\n- Rate limiting or transient server errors.\nFix:\n- Re-run; the CLI already retries with backoff. Lower `--max-results` if needed.\n\n### Symptom: “Failed to fetch taxonomy”\n\nCause:\n\n- arXiv taxonomy endpoint unavailable or network blocked.\nFix:\n- Re-run later or use `--refresh` once connectivity is restored.\n\n## Reference\n\n- Repo: <https://github.com/jscraik/rSearch.git>\n- Commands:\n  - `search`, `fetch`, `download`, `urls`, `categories`, `config`, `help`\n- Constraints:\n  - Default API delay: 3s\n  - Retry defaults: max-retries=3, retry-base-delay=500ms (`--no-retry` to disable)\n  - `page-size` <= 2000\n  - `max-results` <= 30000\n- Output schema:\n  - `schemas/cli-output.schema.json`\n  - `schemas/cli-error.schema.json`\n- License use:\n  - arXiv content is licensed by the authors. The CLI may expose a license URL when provided, but it does not grant rights. Always verify permitted use on the arXiv abstract page.\n- Usage policy:\n  - Be courteous to arXiv: include contact info (`--contact`) and keep rate limits conservative (`--rate-limit`).\n- Docs:\n  - `docs/index.md`\n  - `CHANGELOG.md`\n  - `SECURITY.md`\n  - `SUPPORT.md`\n  - `CODE_OF_CONDUCT.md`\n  - `CONTRIBUTING.md`\n  - `docs/cli-reference.md`\n  - `docs/configuration.md`\n  - `docs/release-policy.md`\n  - `docs/troubleshooting.md`\n  - `docs/faq.md`\n- `docs/roadmap.md`\n- `docs/ADR-001-architecture.md`\n\n## Acceptance criteria\n\n- [ ] Doc requirements reflect current CLI scope and ownership.\n- [ ] Examples match available commands and scripts in this repo.\n- [ ] License and usage policy notes are present and accurate.\n- [ ] Risks and assumptions are explicit and up to date.\n- [ ] Links resolve to existing files or URLs.\n\n## Evidence bundle\n\n- Standards mapping: CommonMark structure, accessibility (descriptive links), security/privacy guidance for license usage.\n- Brand compliance: Documentation signature added; assets present in `brand/`.\n- Automated checks: vale run on 2026-01-07 (0 errors, 0 warnings).\n- Review artifact: Self-review completed on 2026-01-07.\n- Deviations: None.\n\n---\n\n<img\n  src=\"./brand/brand-mark.webp\"\n  srcset=\"./brand/brand-mark.webp 1x, ./brand/brand-mark@2x.webp 2x\"\n  alt=\"brAInwav\"\n  height=\"28\"\n  align=\"left\"\n/>\n\n<br clear=\"left\" />\n\n**brAInwav**  \n_from demo to duty_\n","readmeFilename":"README.md"}