sci-ml/amd-gaia
Lightweight agent framework for the edge and AMD Ryzen AI PCs
ChangeLog
commit 32a385e17e9f473636ac3387842c229fd72df449
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Tue Jun 16 15:00:11 2026 +0200
sci-ml/amd-gaia: drop 0.19.0, 0.20.0, 0.20.1
commit 60eee24714c78302ee8f4f15620e1d320d0622ba
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Tue Jun 16 11:44:14 2026 +0200
sci-ml/amd-gaia: add 0.21.1
commit 5569e0c0c42c34a58c5336a637291a9deb07df2c
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Jun 13 13:24:31 2026 +0200
sci-ml/amd-gaia: add 0.21.0
0.21.0 promotes keyring from the ui/api extras into the base
install_requires (#1621): gaia.connectors.{store,mcp_server} import it at
module load and `gaia connectors` is a base CLI command. Move keyring
(>=24,<26, upstream's supply-chain pin) to base RDEPEND, drop the
now-redundant ui? copy. The talk extra gains pip (runtime spaCy model
download), added under talk?.
audio? rechecked against 0.21.0: still torch-only (no torchvision/
torchaudio), so the pytorch-alone RDEPEND stands. Left out: eval's new
tiktoken (guarded optional, unpackaged) and its numpy<2.3 cap (won't
solve against our 2.4 tree); ui? python-pptx still unpackaged.
commit 7a258e5b584a939696c53e8375d1c3e5896e85c6
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Jun 11 00:41:27 2026 +0200
sci-ml/amd-gaia: add 0.20.1
Upstream 0.20.1 moves python-multipart from the api/ui extras into the
base install_requires: the base gaia-mcp console_script imports
python_multipart at module load to parse multipart uploads, so a bare
install needs it even without USE=api. 0.20.0 already exposed gaia-mcp
as a base console_script while keeping the dep extras-only, so that
entry point was unusable on a default install; add python-multipart to
the base RDEPEND and drop the now-redundant api? copy.
audio? rechecked against v0.20.1: whisper_asr.py imports torch only and
src/ carries no torchvision/torchaudio, so the pytorch-alone RDEPEND
stands. The ui? python-pptx gap is unchanged (still unpackaged).
commit 5b265ce852792eee44428b68045f853302aef4ab
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Jun 6 20:52:28 2026 +0200
sci-ml/amd-gaia: drop 0.17.6, 0.18.1
commit 2c7c53793af385ec6a93424a87aba9ac7238d61e
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Jun 4 02:37:03 2026 +0200
sci-ml/amd-gaia: add 0.20.0
Pillow gets a >=9.0.0 floor matching upstream's new install_requires.
The ui extra also added python-pptx>=0.6.21; the calls are lazy
imports, so the omission only surfaces if a user actually feeds gaia
a .pptx for RAG. Comment in-tree pointing at the gap.
commit 99891f0ef157725854537af66a5ad2d5d0341c43
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat May 23 00:40:49 2026 +0200
sci-ml/amd-gaia: add 0.19.0
commit f6390e22e155d1825c1c21092085482500ffc8a9
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat May 16 12:23:16 2026 +0200
sci-ml/amd-gaia: backfill talk? group with soundfile + psutil
Upstream's talk extra lists sounddevice, openai-whisper, kokoro, soundfile, psutil (+
pip — venv-only, skipped here as Gentoo's system Python always has it). This ebuild
only declared sounddevice, openai-whisper, kokoro — a pre-existing gap inherited from
0.17.6. Add soundfile and psutil to the multi-impl talk? group so USE=talk installs
actually have the full upstream stack. Build-checked USE=talk via FEATURES=-xattr
ebuild ... merge.
commit 00604808c7f08b90f2c215b47ed2cde9706b22bf
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat May 16 11:14:54 2026 +0200
sci-ml/amd-gaia: add 0.18.1
Upstream setup.py diff (0.17.6 -> 0.18.1): - beautifulsoup4 graduates from
\"eval\" extra to install_requires. Move it to the unconditional common cond-dep
block; drop from the eval? group (still pulled transitively, no functional
regression). - New \"telegram\" extra (python-telegram-bot) — not wired up here;
no IUSE bit yet. - Internal modules gaia.filesystem / gaia.scratchpad / gaia.web
added upstream; no packaging side-effects. Build-verified via FEATURES=-xattr
ebuild ... merge. Pre-existing gaps in the talk? group (soundfile, psutil, pip)
still present at 0.18.1 — same upstream-vs-ebuild delta as 0.17.6, deferred.
commit a2cca24ceeec10b385e980e793907fcdad9a46db
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun May 10 15:28:37 2026 +0200
sci-ml/amd-gaia: switch to DISTUTILS_SINGLE_IMPL
The pytorch+HF stack here (sci-ml/{accelerate,pytorch,transformers}
and the now-single-impl dev-python/{kokoro,openai-whisper} plus
sci-ml/sentence-transformers) is SINGLE_IMPL. Multi-impl consumer with
bare $ on them produces python_targets_python3_*(-)?
that the single-impl children can't expose. Single-impl deps split out
to bare $; remaining multi-impl deps wrapped in
python_gen_cond_dep.
--scan=n: pre-existing httpx DeprecatedDep is upstream-side (httpx is
deprecated in ::gentoo); cap-relax/replacement is out of scope here.
commit 50dbe85d9e0415f13f3f58135aa410eb6591c83c
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat May 9 20:19:09 2026 +0200
sci-ml/amd-gaia: drop talk → python3_12 REQUIRED_USE constraint
dev-python/{kokoro,misaki} just had their python3_13 cap-relaxed,
making them multi-impl py3.12+13. The carve-out forced by talk's
single-impl py3.12 deps is no longer needed.
Cleanup: REQUIRED_USE drops down to just `ui? ( api )`.
talk?-conditional drops the python_gen_cond_dep wrapper around
kokoro — plain dev-python/kokoro[$] resolves.
pkg_postinst no longer mentions the py3.12 force.
commit 5ca791f074a908704af1ca0f1212f81e0a9e67e4
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat May 9 19:41:14 2026 +0200
sci-ml/amd-gaia: wire kokoro into +talk; closes the talk extra fully
dev-python/kokoro lands the TTS half of gaia.talk that we deferred
all session. +talk now pulls openai-whisper + sounddevice + kokoro —
full upstream parity for the talk extra.
REQUIRED_USE adds talk? ( python_targets_python3_12 ): kokoro and
misaki are both single-impl py3.12 (upstream caps requires-python<3.13).
Pulling +talk forces a py3.12 carve-out at build time, since the
multi-impl ASR side can run on 3.12-3.14 but kokoro can't.
Build-tested via pkgcheck only — host doesn't have py3_12 installed.
Trust pkgcheck dep-graph + upstream metadata rather than rebuilding
the python stack.
gaia[extras] coverage now: ✅ api audio eval image mcp talk ui
❌ blender (bpy still parked indefinitely)
commit 03e22a259ebc00c19f9ff5a8d41c8d51a90f916f
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat May 9 15:08:00 2026 +0200
sci-ml/amd-gaia: wire +ui — last consumer of the PyMuPDF chain fork
dev-python/PyMuPDF (5e1a3817) closes the only remaining gap in
gaia[ui]. With faiss (912b494e) + sentence-transformers (8c267c26)
already landed, +ui can pull the full RAG-over-PDFs web frontend.
REQUIRED_USE="ui? ( api )" — upstream's ui extra restates fastapi/
uvicorn/python-multipart on top of its own RAG deps; saving the
duplicate by routing through +api.
Verified: USE="ui api" merges cleanly with both flags active in
installed pkg db; USE="ui -api" correctly rejected at setup phase
by REQUIRED_USE.
Accepted DeprecatedDep on dev-python/httpx — gentoo flagged the
package on 2026-04-01 because upstream stopped accepting bug
reports (encode/httpx#3784). Still installable, still functional;
no replacement candidate. Acceptance via pkgdev commit --scan=n,
documented here so future audits don't re-investigate.
Final state of gaia[extras] in this overlay:
✅ api audio eval image mcp talk (2/3, kokoro-half pending) ui
❌ blender (bpy — Blender Python module, parked indefinitely)
commit f024c91c2d6d60bd207f2d8211df1c467eab8bb6
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat May 9 13:51:36 2026 +0200
sci-ml/amd-gaia: wire +image and +talk now their deps land
dev-python/term-image (9b205a2e) unblocks the image extra; openai-
whisper (17511e20) + sounddevice (9878c3bb) unblock the talk extra
2-of-3 (kokoro chain still parked as the heaviest remaining work).
USE=image pulls term-image only (it's the entire upstream image extra).
USE=talk pulls openai-whisper + sounddevice; gaia.talk's Kokoro TTS
half raises ModuleNotFoundError at runtime until kokoro+misaki+spacy+
phonemizer-fork+num2words+espeakng-loader land. Documented in
metadata.xml use-flag table and pkg_postinst.
ui (PyMuPDF 4-ebuild fork) and blender (bpy) remain the only extras
without all-deps-in-tree.
commit 5ce379e284788a39b103ec4c2988c9f27f4050ad
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat May 9 13:35:56 2026 +0200
sci-ml/amd-gaia: add USE=audio with cap-relaxed pytorch dep
Upstream's audio extra pins torch<2.4 / torchvision<0.19 because of
old-era openai-whisper transitive deps. Verified 2026-05-09 the cap is
stale — gaia code only `import torch`s (gaia/audio/whisper_asr.py:19);
torchvision and torchaudio are never imported, and current openai-
whisper (v20250625) has unbounded torch + no torchvision dep.
USE=audio pulls sci-ml/pytorch alone (no torchvision, no torchaudio),
without the upstream cap. Verified end-to-end against in-tree
torch-2.11.0a0:
- the exact torch APIs gaia.audio uses (cuda.is_available, device,
set_float32_matmul_precision, compile, inference_mode) all work
- upstream's torch<2.4 cap would reject 2.11.0a0; our relaxed dep
accepts it
USE=audio alone gives access to the gaia.audio module surface but
WhisperASR instantiation still needs openai-whisper from talk extra
(packaged separately in 17511e20). pkg_postinst documents which
extras still aren't built.
Updated metadata.xml use-flag table to match.
commit b27de716cc7f92fd750ed10b02110c8935e0a1d6
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat May 9 09:54:36 2026 +0200
sci-ml/amd-gaia: add 0.17.6
AMD's open-source agent framework for local AI on Ryzen AI hardware
(NPU + iGPU). GAIA orchestrates LLM-driven workflows over any
OpenAI-compatible inference endpoint; the AMD-recommended local
backend is Lemonade Server (sci-ml/lemonade in this overlay), but
gaia is hardware-agnostic so long as the upstream API is OpenAI-
compatible.
IUSE flags map to the upstream extras_require groups whose deps are
already in tree: api (FastAPI/uvicorn HTTP server), mcp (Model
Context Protocol), eval (anthropic/scikit-learn/reportlab benchmark
harness). The 5 omitted extras (ui, audio, talk, image, blender)
need 9+ new ebuilds (faiss-cpu, sentence-transformers, pymupdf,
openai-whisper, kokoro Python pkg, sounddevice, term-image, bpy,
torchvision<0.19) which is a separate scope.
Tests need a live Lemonade server, Docker, and the Gmail API per
upstream pytest config; RESTRICT until someone wants a unit-only
subset.
Cross-checked RDEPEND against upstream setup.py install_requires
and the api/mcp/eval extras_require entries on 2026-05-09.
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Tue Jun 16 15:00:11 2026 +0200
sci-ml/amd-gaia: drop 0.19.0, 0.20.0, 0.20.1
commit 60eee24714c78302ee8f4f15620e1d320d0622ba
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Tue Jun 16 11:44:14 2026 +0200
sci-ml/amd-gaia: add 0.21.1
commit 5569e0c0c42c34a58c5336a637291a9deb07df2c
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Jun 13 13:24:31 2026 +0200
sci-ml/amd-gaia: add 0.21.0
0.21.0 promotes keyring from the ui/api extras into the base
install_requires (#1621): gaia.connectors.{store,mcp_server} import it at
module load and `gaia connectors` is a base CLI command. Move keyring
(>=24,<26, upstream's supply-chain pin) to base RDEPEND, drop the
now-redundant ui? copy. The talk extra gains pip (runtime spaCy model
download), added under talk?.
audio? rechecked against 0.21.0: still torch-only (no torchvision/
torchaudio), so the pytorch-alone RDEPEND stands. Left out: eval's new
tiktoken (guarded optional, unpackaged) and its numpy<2.3 cap (won't
solve against our 2.4 tree); ui? python-pptx still unpackaged.
commit 7a258e5b584a939696c53e8375d1c3e5896e85c6
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Jun 11 00:41:27 2026 +0200
sci-ml/amd-gaia: add 0.20.1
Upstream 0.20.1 moves python-multipart from the api/ui extras into the
base install_requires: the base gaia-mcp console_script imports
python_multipart at module load to parse multipart uploads, so a bare
install needs it even without USE=api. 0.20.0 already exposed gaia-mcp
as a base console_script while keeping the dep extras-only, so that
entry point was unusable on a default install; add python-multipart to
the base RDEPEND and drop the now-redundant api? copy.
audio? rechecked against v0.20.1: whisper_asr.py imports torch only and
src/ carries no torchvision/torchaudio, so the pytorch-alone RDEPEND
stands. The ui? python-pptx gap is unchanged (still unpackaged).
commit 5b265ce852792eee44428b68045f853302aef4ab
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Jun 6 20:52:28 2026 +0200
sci-ml/amd-gaia: drop 0.17.6, 0.18.1
commit 2c7c53793af385ec6a93424a87aba9ac7238d61e
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Jun 4 02:37:03 2026 +0200
sci-ml/amd-gaia: add 0.20.0
Pillow gets a >=9.0.0 floor matching upstream's new install_requires.
The ui extra also added python-pptx>=0.6.21; the calls are lazy
imports, so the omission only surfaces if a user actually feeds gaia
a .pptx for RAG. Comment in-tree pointing at the gap.
commit 99891f0ef157725854537af66a5ad2d5d0341c43
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat May 23 00:40:49 2026 +0200
sci-ml/amd-gaia: add 0.19.0
commit f6390e22e155d1825c1c21092085482500ffc8a9
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat May 16 12:23:16 2026 +0200
sci-ml/amd-gaia: backfill talk? group with soundfile + psutil
Upstream's talk extra lists sounddevice, openai-whisper, kokoro, soundfile, psutil (+
pip — venv-only, skipped here as Gentoo's system Python always has it). This ebuild
only declared sounddevice, openai-whisper, kokoro — a pre-existing gap inherited from
0.17.6. Add soundfile and psutil to the multi-impl talk? group so USE=talk installs
actually have the full upstream stack. Build-checked USE=talk via FEATURES=-xattr
ebuild ... merge.
commit 00604808c7f08b90f2c215b47ed2cde9706b22bf
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat May 16 11:14:54 2026 +0200
sci-ml/amd-gaia: add 0.18.1
Upstream setup.py diff (0.17.6 -> 0.18.1): - beautifulsoup4 graduates from
\"eval\" extra to install_requires. Move it to the unconditional common cond-dep
block; drop from the eval? group (still pulled transitively, no functional
regression). - New \"telegram\" extra (python-telegram-bot) — not wired up here;
no IUSE bit yet. - Internal modules gaia.filesystem / gaia.scratchpad / gaia.web
added upstream; no packaging side-effects. Build-verified via FEATURES=-xattr
ebuild ... merge. Pre-existing gaps in the talk? group (soundfile, psutil, pip)
still present at 0.18.1 — same upstream-vs-ebuild delta as 0.17.6, deferred.
commit a2cca24ceeec10b385e980e793907fcdad9a46db
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun May 10 15:28:37 2026 +0200
sci-ml/amd-gaia: switch to DISTUTILS_SINGLE_IMPL
The pytorch+HF stack here (sci-ml/{accelerate,pytorch,transformers}
and the now-single-impl dev-python/{kokoro,openai-whisper} plus
sci-ml/sentence-transformers) is SINGLE_IMPL. Multi-impl consumer with
bare $ on them produces python_targets_python3_*(-)?
that the single-impl children can't expose. Single-impl deps split out
to bare $; remaining multi-impl deps wrapped in
python_gen_cond_dep.
--scan=n: pre-existing httpx DeprecatedDep is upstream-side (httpx is
deprecated in ::gentoo); cap-relax/replacement is out of scope here.
commit 50dbe85d9e0415f13f3f58135aa410eb6591c83c
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat May 9 20:19:09 2026 +0200
sci-ml/amd-gaia: drop talk → python3_12 REQUIRED_USE constraint
dev-python/{kokoro,misaki} just had their python3_13 cap-relaxed,
making them multi-impl py3.12+13. The carve-out forced by talk's
single-impl py3.12 deps is no longer needed.
Cleanup: REQUIRED_USE drops down to just `ui? ( api )`.
talk?-conditional drops the python_gen_cond_dep wrapper around
kokoro — plain dev-python/kokoro[$] resolves.
pkg_postinst no longer mentions the py3.12 force.
commit 5ca791f074a908704af1ca0f1212f81e0a9e67e4
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat May 9 19:41:14 2026 +0200
sci-ml/amd-gaia: wire kokoro into +talk; closes the talk extra fully
dev-python/kokoro lands the TTS half of gaia.talk that we deferred
all session. +talk now pulls openai-whisper + sounddevice + kokoro —
full upstream parity for the talk extra.
REQUIRED_USE adds talk? ( python_targets_python3_12 ): kokoro and
misaki are both single-impl py3.12 (upstream caps requires-python<3.13).
Pulling +talk forces a py3.12 carve-out at build time, since the
multi-impl ASR side can run on 3.12-3.14 but kokoro can't.
Build-tested via pkgcheck only — host doesn't have py3_12 installed.
Trust pkgcheck dep-graph + upstream metadata rather than rebuilding
the python stack.
gaia[extras] coverage now: ✅ api audio eval image mcp talk ui
❌ blender (bpy still parked indefinitely)
commit 03e22a259ebc00c19f9ff5a8d41c8d51a90f916f
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat May 9 15:08:00 2026 +0200
sci-ml/amd-gaia: wire +ui — last consumer of the PyMuPDF chain fork
dev-python/PyMuPDF (5e1a3817) closes the only remaining gap in
gaia[ui]. With faiss (912b494e) + sentence-transformers (8c267c26)
already landed, +ui can pull the full RAG-over-PDFs web frontend.
REQUIRED_USE="ui? ( api )" — upstream's ui extra restates fastapi/
uvicorn/python-multipart on top of its own RAG deps; saving the
duplicate by routing through +api.
Verified: USE="ui api" merges cleanly with both flags active in
installed pkg db; USE="ui -api" correctly rejected at setup phase
by REQUIRED_USE.
Accepted DeprecatedDep on dev-python/httpx — gentoo flagged the
package on 2026-04-01 because upstream stopped accepting bug
reports (encode/httpx#3784). Still installable, still functional;
no replacement candidate. Acceptance via pkgdev commit --scan=n,
documented here so future audits don't re-investigate.
Final state of gaia[extras] in this overlay:
✅ api audio eval image mcp talk (2/3, kokoro-half pending) ui
❌ blender (bpy — Blender Python module, parked indefinitely)
commit f024c91c2d6d60bd207f2d8211df1c467eab8bb6
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat May 9 13:51:36 2026 +0200
sci-ml/amd-gaia: wire +image and +talk now their deps land
dev-python/term-image (9b205a2e) unblocks the image extra; openai-
whisper (17511e20) + sounddevice (9878c3bb) unblock the talk extra
2-of-3 (kokoro chain still parked as the heaviest remaining work).
USE=image pulls term-image only (it's the entire upstream image extra).
USE=talk pulls openai-whisper + sounddevice; gaia.talk's Kokoro TTS
half raises ModuleNotFoundError at runtime until kokoro+misaki+spacy+
phonemizer-fork+num2words+espeakng-loader land. Documented in
metadata.xml use-flag table and pkg_postinst.
ui (PyMuPDF 4-ebuild fork) and blender (bpy) remain the only extras
without all-deps-in-tree.
commit 5ce379e284788a39b103ec4c2988c9f27f4050ad
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat May 9 13:35:56 2026 +0200
sci-ml/amd-gaia: add USE=audio with cap-relaxed pytorch dep
Upstream's audio extra pins torch<2.4 / torchvision<0.19 because of
old-era openai-whisper transitive deps. Verified 2026-05-09 the cap is
stale — gaia code only `import torch`s (gaia/audio/whisper_asr.py:19);
torchvision and torchaudio are never imported, and current openai-
whisper (v20250625) has unbounded torch + no torchvision dep.
USE=audio pulls sci-ml/pytorch alone (no torchvision, no torchaudio),
without the upstream cap. Verified end-to-end against in-tree
torch-2.11.0a0:
- the exact torch APIs gaia.audio uses (cuda.is_available, device,
set_float32_matmul_precision, compile, inference_mode) all work
- upstream's torch<2.4 cap would reject 2.11.0a0; our relaxed dep
accepts it
USE=audio alone gives access to the gaia.audio module surface but
WhisperASR instantiation still needs openai-whisper from talk extra
(packaged separately in 17511e20). pkg_postinst documents which
extras still aren't built.
Updated metadata.xml use-flag table to match.
commit b27de716cc7f92fd750ed10b02110c8935e0a1d6
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat May 9 09:54:36 2026 +0200
sci-ml/amd-gaia: add 0.17.6
AMD's open-source agent framework for local AI on Ryzen AI hardware
(NPU + iGPU). GAIA orchestrates LLM-driven workflows over any
OpenAI-compatible inference endpoint; the AMD-recommended local
backend is Lemonade Server (sci-ml/lemonade in this overlay), but
gaia is hardware-agnostic so long as the upstream API is OpenAI-
compatible.
IUSE flags map to the upstream extras_require groups whose deps are
already in tree: api (FastAPI/uvicorn HTTP server), mcp (Model
Context Protocol), eval (anthropic/scikit-learn/reportlab benchmark
harness). The 5 omitted extras (ui, audio, talk, image, blender)
need 9+ new ebuilds (faiss-cpu, sentence-transformers, pymupdf,
openai-whisper, kokoro Python pkg, sounddevice, term-image, bpy,
torchvision<0.19) which is a separate scope.
Tests need a live Lemonade server, Docker, and the Gmail API per
upstream pytest config; RESTRICT until someone wants a unit-only
subset.
Cross-checked RDEPEND against upstream setup.py install_requires
and the api/mcp/eval extras_require entries on 2026-05-09.


View
Download
Browse