mirobody/
├── engine/ the front door — resolve(), resolve_reading(), parse_file()
├── units/ UCUM units, unit_family, conversions ┐ the library:
├── lexical.py surface folding + the CJK-aware tokenizer │ numpy only,
├── bundle.py build-time: the axis table and alias sources │
├── res/ the shipped LOINC bundles, catalog/metrics.tsv │
├── kernel/ what health data MEANS, as pure functions: │
│ metrics · series · quality · overlay · meds · │
│ query · tools · ops · connect · sink · events · │
│ evidence · memory · decoders/ ┘ 2 packages
├── documents/ a file becomes text, by kind — PDF text layer, OCR for scanned pages only, Office, text [parse]
├── collect/ ① Collect — providers, file parsing, store, read (Postgres)
├── translate/ ② Translate — the pure seam (fold · parse · local_day · series · code ·
│ devices), the catalogue, units, aggregate/ and derive/
├── agent/ ③ Agent — the agent: models/ fs/ wire/ middleware/ tools/ chat/
├── mcp/ the MCP server
├── server/ the HTTP application — routers, auth, the bundled web client
├── utils/ mechanisms a consumer binds: config, db, sse, net, llm_output, prompts, log
├── user/ identity and the care circle — who may read whose record
└── schema/ the DDL, replayed at boot in dev
demo/ the care-circle demo fixture, beside frontend/ — a checkout
frontend/ the bundled web client has them, a
pip install
does not