ingest_paper

ingest_paper(doi: str, **kw: Any) -> str
Ingest a paper by DOI. Common kwargs: title, text, oa (open-access flag), year, authors. Returns the DOI.
mem.ingest_paper("10.1/astro", title="Astrocyte Ca2+",
                 text="astrocyte calcium " * 30, oa=True)

ingest_papers_batch

ingest_papers_batch(papers: list[dict[str, Any]]) -> dict[str, Any]
Batch-ingest many papers (fanned out to a worker pool). Each dict is a paper spec. Returns a report with an ingested count.
b = mem.ingest_papers_batch([
    {"doi": "10/c", "title": "C", "text": "calcium imaging " * 10, "oa": True},
])
assert b["ingested"] >= 1

ingest_document

ingest_document(filename: str, data: bytes, *, title: str = "") -> dict[str, Any]
Ingest a document file (PDF, Markdown, CSV, Excel, Word, JSON, text). Returns a report with ok and output (chunks, etc.).
rep = mem.ingest_document("notes.txt", b"A finding about cortical astrocytes.", title="notes")
assert rep["ok"] and rep["output"]["chunks"] >= 1

ingest_formats

ingest_formats() -> dict[str, Any]
The supported-format catalog: max_bytes and a list of formats with parser availability.

put_analysis

put_analysis(doi: str, md: str) -> dict[str, Any]
Store a Markdown analysis for a paper (idempotent). Extracts claims as a side effect; returns a dict with claims_extracted.
out = mem.put_analysis("10.1/astro", analysis_markdown)
print(out["claims_extracted"])

fetch_paper

fetch_paper(doi: str) -> dict[str, Any]
Cache-first fetch of paper bytes from memory or origin. Returns {"doi", "warm", "bytes", "bytes_saved", "source"}warm=True means it was served from cache with no network.

Read it back

Recall, papers, analyses, and claims.