# Dependencies Dependencies are logical capabilities used by skills and artifacts. The installer does not hardcode personal paths; `precheck` resolves each capability from environment overrides, repo-local runtimes, `PATH`, Python import checks, native Windows locations, WSL-backed commands, or remote-service placeholders. Use this page to understand what software may be needed before an install. Use [Profiles](profiles.md) or [Skills](skills.md) to see which capabilities are selected for a workflow, and use [Windows](windows.md) or [Linux](linux.md) for platform-specific detection notes. Minimum installer prerequisites: - Python 3.10 or newer. - A shell that can run the launcher: POSIX shell plus `make` on Linux/macOS, or `./make.ps1` with PowerShell on native Windows. - Existing agent homes for any agents you want to install into. Missing agent homes are skipped rather than created implicitly. Common commands: ```bash make doctor ARGS="--profile research-core" make precheck ARGS="--profile research-core" make precheck ARGS="--profile full-research --interactive" make precheck ARGS="--profile math --json" ``` Status vocabulary used by `precheck`: - `present`: the capability was found and can be used from the current substrate. - `missing`: the capability was not found and may need installation. - `degraded`: the capability appears to exist, but some part could not be executed or fully inspected. - `present-unverified`: the capability was found as a file or install root, but the current substrate cannot safely execute it. - `manual`: the capability depends on credentials, local databases, or service setup outside this repo. ## Logical Tools | Logical Tool | Description | |---|---| | `calibre-cli` | Calibre command line tools for ebook metadata and conversion. | | `chromium-browser-system-tool` | Chromium/Chrome/Edge for CDP-driven page screenshots and browser-print PDF evidence. | | `classroom50-teacher-extension` | Classroom50 instructor GitHub CLI extension executable. Install with `gh extension install foundation50/gh-teacher`; release pins belong to the restoring system's artifact lock. | | `espeak-ng-system-tool` | eSpeak NG phonemizer used by offline TTS engines (Kokoro/Piper). | | `ffmpeg-system-tool` | FFmpeg/ffprobe for video encoding, audio normalization, and duration probing. | | `gauss-cli` | Optional OpenGauss gauss CLI for manual live formal workflows. | | `getscipapers-cli` | getscipapers console script from the maintainer fork, provisioned by the getscipapers-requester skill into a dedicated runtime-owned venv (~/.getscipapers_venv). | | `git-cli` | Git command line client for repository-backed workflows and GitHub publishing. | | `github-cli` | GitHub CLI for workflows that need local Actions, PR, issue, or authentication commands. | | `gnupg-system-tool` | GnuPG (gpg) for optional PGP/MIME signing of outgoing email in send-email. | | `hcloud-cli` | Hetzner Cloud CLI used by the hetzner-research-compute lane to provision, run on, and DESTROY disposable compute servers. | | `imagemagick-system-tool` | ImageMagick convert/magick for optional post-capture cropping. | | `kaggle-cli` | Kaggle CLI (>=1.8.0) used by the kaggle-research-compute lane to push kernels, poll status, and download output. Installed by the kaggle Python package; kagglehub (>=0.4.1) validates the API token. Auth is the new single Kaggle API token from KAGGLE_API_TOKEN (or ~/.kaggle/access_token) in the environment, never the legacy KAGGLE_USERNAME + KAGGLE_KEY pair or a kaggle.json. | | `lake-cli` | Lake command line executable for optional Lean project checks. | | `lean-cli` | Lean command line executable for optional local formal typechecking. | | `manim-tex-runtime` | LaTeX engine with dvisvgm and standalone/preview (plus cairo/pango) for Manim MathTex rendering. | | `mathlib-cache` | Manually managed mathlib cache or project dependency state for optional Lean checks. | | `node-runtime` | Node runtime for MCP servers that use npx. | | `nvidia-smi-tool` | NVIDIA GPU inspection tool used by resource preflight when available. | | `ocr-runtime` | OCR command line runtime, normally Tesseract. | | `pdftotext-system-tool` | Poppler pdftotext for extracting expected markers from browser-print PDF evidence. | | `powershell-runtime` | PowerShell runtime for Windows bootstrap and argument forwarding. | | `pptx-render-system-tool` | PPTX renderer: Microsoft PowerPoint on Windows or LibreOffice elsewhere. | | `python-runtime` | Python runtime with venv, pip, and ssl support. | | `ripgrep-cli` | ripgrep command line search used by local research and session-inspection workflows. | | `rocm-smi-tool` | AMD ROCm GPU inspection tool used by resource preflight when available. | | `sage-runtime` | SageMath runtime, local on Linux or WSL-backed on Windows. | | `tex-runtime` | TeX engine for TikZ compile checks. | | `uvx-cli` | uvx command for optional manual AXLE MCP server execution. | | `wsl-runtime` | Windows Subsystem for Linux runtime. | ## Packages And Services | Dependency | Type | Detail | |---|---|---| | `axle-auth` | `remote-service` | remote-service | | `calibre-cli` | `tool` | calibre-cli | | `chromium-browser-system-tool` | `tool` | chromium-browser-system-tool | | `course-hoanganhduc-python-package` | `python` | course_hoanganhduc; candidate set `course` | | `docling-mcp-python-package` | `python` | docling_mcp; candidate set `docling` | | `docling-python-package` | `python` | docling; candidate set `docling` | | `ebooklib-python-package` | `python` | ebooklib | | `edge-tts-python-package` | `python` | edge_tts | | `espeak-ng-system-tool` | `tool` | espeak-ng-system-tool | | `feedparser-python-package` | `python` | feedparser | | `ffmpeg-system-tool` | `tool` | ffmpeg-system-tool | | `getscipapers` | `tool` | getscipapers-cli | | `git-cli` | `tool` | git-cli | | `github-cli` | `tool` | github-cli | | `gnupg-system-tool` | `tool` | gnupg-system-tool | | `google-api-python-client-package` | `python` | googleapiclient | | `google-auth-python-package` | `python` | google.oauth2 | | `hcloud-cli` | `tool` | hcloud-cli | | `hetzner-auth` | `remote-service` | remote-service | | `imagemagick-system-tool` | `tool` | imagemagick-system-tool | | `kaggle-auth` | `remote-service` | remote-service | | `kaggle-cli` | `tool` | kaggle-cli | | `kaggle-python-package` | `python` | kaggle; candidate set `agent` | | `kagglehub-python-package` | `python` | kagglehub; candidate set `agent` | | `kokoro-python-package` | `python` | kokoro | | `lean-explore-local-cache` | `manual-data` | manual-data | | `lean-explore-python-package` | `python` | lean_explore; candidate set `agent` | | `leanexplore-auth` | `remote-service` | remote-service | | `manim-python-package` | `python` | manim; candidate set `manim` | | `manim-tex-runtime` | `tool` | manim-tex-runtime | | `modal-auth` | `remote-service` | remote-service | | `modal-python-package` | `python` | modal; candidate set `agent` | | `networkx-python-package` | `python` | networkx | | `numpy-python-package` | `python` | numpy | | `nvidia-smi-tool` | `tool` | nvidia-smi-tool | | `ocr-runtime` | `tool` | ocr-runtime | | `pdf2image-python-package` | `python` | pdf2image | | `pdfplumber-python-package` | `python` | pdfplumber | | `pdftotext-system-tool` | `tool` | pdftotext-system-tool | | `pillow-python-package` | `python` | PIL | | `piper-tts-python-package` | `python` | piper | | `pptx-render-system-tool` | `tool` | pptx-render-system-tool | | `psutil-python-package` | `python` | psutil | | `pylatexenc-python-package` | `python` | pylatexenc | | `pymupdf-python-package` | `python` | fitz | | `pypdf2-python-package` | `python` | PyPDF2 | | `pypdfium2-python-package` | `python` | pypdfium2; candidate set `docling` | | `pytest-python-package` | `python` | pytest | | `python-pptx-python-package` | `python` | pptx | | `pyzotero-python-package` | `python` | pyzotero | | `rapidocr-python-package` | `python` | rapidocr; candidate set `docling` | | `requests-python-package` | `python` | requests | | `responses-python-package` | `python` | responses | | `ripgrep-cli` | `tool` | ripgrep-cli | | `rocm-smi-tool` | `tool` | rocm-smi-tool | | `shapely-python-package` | `python` | shapely | | `soundfile-python-package` | `python` | soundfile | | `svgelements-python-package` | `python` | svgelements | | `torch-python-package` | `python` | torch; candidate set `docling` | | `torchvision-python-package` | `python` | torchvision; candidate set `docling` | | `venue-ranking-provider-access` | `remote-service` | remote-service | | `vnu-eoffice-python-package` | `python` | vnu_eoffice, requests, bs4; candidate set `vnu-eoffice` | | `websocket-client-python-package` | `python` | websocket | | `zotero-credentials` | `remote-service` | remote-service | ## Current Linux And Windows Config Inventory This sanitized inventory is derived from the maintainer's current Linux and Windows target configs for Codex, Claude, DeepSeek, Copilot, OpenCode, and Antigravity where present. It intentionally excludes auth files, provider secrets, session/history/log files, local library databases, caches, backups, and file-history snapshots. Personal paths are represented as `` or ``. Evidence inspected: - Linux Codex AGENTS/instruction/skill docs - Linux DeepSeek AGENTS/skill docs - Linux Claude CLAUDE/command/skill docs - Linux Codex runtime skill requirement files and Python imports - Windows Codex AGENTS/config/skill docs - Windows Claude CLAUDE/command/skill docs - Windows Claude skill requirement files and Python imports - npm metadata for the deepseek-tui to codewhale package rename ### Extra Software | Software | Requirement | Linux | Windows | Used By | |---|---|---|---|---| | `bash-or-posix-shell` | required on Linux and inside WSL-backed Windows flows | Used by shared runtime runner and shell skill wrappers. | Used through WSL for SageMath and other Linux-substrate commands. | `runtime wrappers`, `sagemath`, `make` | | `calibre-cli` | optional for richer ebook library operations | calibredb and ebook-convert on PATH. | calibredb.exe and ebook-convert.exe on PATH. | `calibre`, `vnthuquan` | | `chromium-browser` | optional for url-to-screenshot capture and venue-ranking-evidence browser-print proof; installed manually and reported by doctor rather than treated as an install gate | chromium or google-chrome on PATH, e.g. apt-get install chromium. Venue proof is limited to the public unauthenticated ICORE detail page; licensed or authenticated browser-profile capture is not implemented. | chrome.exe or msedge.exe at the default Program Files path or on PATH. Venue proof is limited to the public unauthenticated ICORE detail page; licensed or authenticated browser-profile capture is not implemented. | `url-to-screenshot`, `url-to-screenshot-runtime`, `venue-ranking-evidence` | | `docling-cli` | optional CLI layer for docling workflows | Current Claude docs use /.local/share/docling-venv/bin/docling. | Current Claude docs use /.venv-docling/Scripts/docling.exe. | `docling` | | `espeak-ng` | optional, for offline TTS (Kokoro/Piper phonemization) | espeak-ng on PATH, e.g. apt-get install espeak-ng. | espeak-ng on PATH or at the default winget path C:\Program Files\eSpeak NG\espeak-ng.exe. | `slides-to-video offline TTS` | | `ffmpeg` | required for slides-to-video rendering (video encode, audio normalize, duration probe) | FFmpeg + ffprobe on PATH (LGPL build with libx264), e.g. apt-get install ffmpeg. | ffmpeg.exe + ffprobe.exe on PATH (LGPL build), via winget/choco or a static build. | `slides-to-video` | | `git-cli` | required for repository workflows and publishing | git on PATH. | git.exe or git on PATH. | `GitHub workflows`, `repo install/update examples` | | `github-cli` | optional for GitHub workflows that need local gh commands | gh on PATH with auth configured when needed. | gh.exe or gh on PATH with auth configured when needed. | `github`, `gh-fix-ci`, `yeet` | | `gnupg` | optional; only needed for PGP/MIME email signing (send-email --sign) | gpg on PATH with your secret key in the keyring, e.g. apt-get install gnupg. | gpg.exe on PATH (Gpg4win), with your secret key imported. | `send-email` | | `gpu-inspection-tools` | optional resource preflight enhancement | nvidia-smi for NVIDIA or rocm-smi for AMD when present. | nvidia-smi.exe or rocm-smi.exe when present; WSL GPU visibility depends on host driver support. | `get-available-resources` | | `hcloud-cli` | optional until up/push/run/wait/fetch/down are used | hcloud on PATH; HCLOUD_TOKEN supplied via the environment, never an hcloud context file. | hcloud.exe or hcloud on PATH; HCLOUD_TOKEN supplied via the environment. | `hetzner-research-compute` | | `kaggle-cli` | optional until push/status/wait/fetch/run are used | kaggle on PATH (pip install 'kaggle>=1.8.0' 'kagglehub>=0.4.1'); the new Kaggle API token is supplied via KAGGLE_API_TOKEN (or ~/.kaggle/access_token) in the environment, never a legacy kaggle.json or KAGGLE_USERNAME + KAGGLE_KEY. | kaggle.exe or kaggle on PATH (pip install 'kaggle>=1.8.0' 'kagglehub>=0.4.1'); KAGGLE_API_TOKEN supplied via the environment (or %USERPROFILE%\.kaggle\access_token). | `kaggle-research-compute` | | `lake-cli` | optional for local Lean project checks; never installed by wrappers | Lake executable on PATH, via AAS_LAKE, or via an existing elan install. | Lake executable on PATH, via AAS_LAKE, or via an existing per-user elan install. | `lean-strict-verification-gate`, `lean-formalization-intake` | | `lean-cli` | optional for local formal typechecking; never installed by wrappers | Lean 4 executable on PATH, via AAS_LEAN, or via an existing elan install. | Lean 4 executable on PATH, via AAS_LEAN, or via an existing per-user elan install. | `lean-strict-verification-gate` | | `libreoffice` | optional PPTX renderer; not needed on Windows when Microsoft PowerPoint is installed | soffice/libreoffice on PATH, e.g. apt-get install libreoffice. | soffice.exe on PATH from a LibreOffice install. | `slides-to-video PPTX input` | | `make-or-command-wrapper` | optional convenience entrypoint | make invokes installer commands. | ./make.ps1 invokes installer commands without requiring GNU Make. | `installation` | | `manim-tex-runtime` | required for manim-math-animation rendering (heavier than plain tex-runtime) | LaTeX (texlive + texlive-latex-extra + cm-super) with dvisvgm and the standalone/preview packages, plus libcairo2-dev and libpango1.0-dev; e.g. apt-get install dvisvgm texlive texlive-latex-extra libcairo2-dev libpango1.0-dev. | MiKTeX/TeX Live providing latex + dvisvgm + standalone/preview; cairo/pango ship in the Manim Windows wheels. | `manim-math-animation` | | `mathlib-cache` | optional manually prepared Lean dependency cache | Existing project-local mathlib cache or manually prepared Lake cache. | Existing project-local mathlib cache or manually prepared Lake cache. | `lean-strict-verification-gate`, `lean-formalization-intake` | | `modal-cli` | optional until submit/deploy/wait/fetch are used | Installed by the modal Python package and authenticated with modal token set/new. | Installed into the agent virtualenv; wrappers add the venv Scripts directory to PATH. | `modal-research-compute` | | `node-runtime` | required for Node-backed MCP servers and optional Zotero translation-server workflows | Node.js 18+ with npm. | Node.js 18+ with npm/npx; Windows Codex config uses npx for the sequential-thinking MCP server. | `Codex MCP`, `zotero translation server` | | `ocr-runtime` | optional for scanned-document OCR | Tesseract with tessdata available; current Claude docling docs use TESSDATA_PREFIX=/usr/share/tessdata/. | Current Windows docling flow prefers rapidocr Python extras; Tesseract may be used through WSL if needed. | `docling` | | `pdftotext` | optional for venue lookup; required for venue-ranking-evidence browser-proof marker verification | pdftotext on PATH from Poppler, e.g. apt-get install poppler-utils. | pdftotext.exe from a Poppler distribution on PATH. | `venue-ranking-evidence` | | `powershell-runtime` | required for Windows bootstrap and Windows wrapper execution | not required | PowerShell 5.1+ or PowerShell 7+. | `./make.ps1`, `installer bootstrap`, `Windows runtime wrappers` | | `pptx-renderer` | optional, required only for PPTX input rendering | LibreOffice soffice/libreoffice on PATH, e.g. apt-get install libreoffice. | Microsoft PowerPoint from Microsoft Office via COM automation, or LibreOffice soffice.exe on PATH. | `slides-to-video PPTX input` | | `python-runtime` | required for runtime-backed skills and the installer | Native Python 3.10+ detected from environment override, repo venv, python3, or python. | Native Python 3.10+ detected from environment override, repo venv, C:\Python3*, per-user Python installs, Program Files installs, py -3, python.exe, or python. | `installer`, `zotero`, `calibre`, `docling`, `get-available-resources`, `research-digest-wrapper`, `rss-news-digest`, `digest-bridge`, `tikz-draw`, `graph-verifier`, `submission-venue-selector`, `venue-ranking-evidence`, `annotated-review`, `modal-research-compute`, `hetzner-research-compute`, `kaggle-research-compute`, `session-logs`, `lean-formalization-intake`, `lean-explore-mcp`, `lean-strict-verification-gate` | | `ripgrep-cli` | optional but expected by local search/session workflows | rg on PATH. | rg.exe or rg on PATH. | `session-logs`, `research workflows`, `repo inspection` | | `sagemath` | required for the sagemath skill and optional Sage-backed graph/TikZ workflows | Native executable via `AAS_SAGE`, `sage` on `PATH`, a local Sage install, or a Docker-backed wrapper that behaves like `sage` for `--version` and `-c` probes. | WSL-backed SageMath inside Ubuntu 24.04, detected through wsl.exe when runnable, current local WSL paths when precheck runs from WSL/Linux, mounted WSL rootfs paths when available, or an ext4.vhdx presence warning when the distro image is not inspectable. | `sagemath`, `tikz-draw`, `openclaw/source research math verification` | | `tex-runtime` | required for TikZ compile checks and optional annotated-review LaTeX/PDF output | TeX Live or compatible distribution providing pdflatex, lualatex, or xelatex. | MiKTeX, TeX Live, or compatible distribution providing pdflatex.exe, lualatex.exe, or xelatex.exe. | `tikz-draw`, `annotated-review` | | `uvx-cli` | optional manual command runner for AxiomMath AXLE MCP; never invoked by installer, precheck, or smoke | uvx on PATH for manual live AXLE MCP setup. | uvx.exe or uvx on PATH for manual live AXLE MCP setup. | `axiom-axle-mcp manual setup`, `opengauss manual setup` | | `wsl-runtime` | required when a Windows skill delegates to Linux-only tools | not applicable | Current SageMath flow uses direct WSL execution with an Ubuntu 24.04 distro. When precheck is run from WSL/Linux against a mounted Windows profile, the current local WSL filesystem is also inspected. Mounted rootfs directories are inspected when present; ext4.vhdx presence is reported as a degraded inspection gap because Sage inside the image cannot be verified without WSL, a local WSL filesystem, or a mounted rootfs. Docker is explicitly not required by the current Windows Sage config. | `sagemath`, `tikz-draw optional Sage graph mode` | ### Python Packages | Package | Import | Requirement | Platforms | Used By | |---|---|---|---|---| | `Pillow` | `PIL` | Pillow>=10.2 | `linux`, `windows` | `slides-to-video`, `url-to-screenshot-runtime`, `venue-ranking-evidence` | | `PyMuPDF` | `fitz` | pymupdf; tikz semantic verifier pins PyMuPDF==1.27.2.2; slides-to-video pins PyMuPDF>=1.24 | `linux`, `windows` | `annotated-review`, `tikz-draw`, `slides-to-video` | | `PyPDF2` | `PyPDF2` | PyPDF2>=3.0.0 | `linux`, `windows` | `zotero`, `calibre` | | `docling` | `docling` | docling>=2.88.0,<3 | `linux`, `windows` | `docling` | | `docling-mcp` | `docling_mcp` | docling-mcp | `windows` | `docling MCP integration` | | `ebooklib` | `ebooklib` | ebooklib>=0.18 | `linux`, `windows` | `calibre EPUB metadata` | | `edge-tts` | `edge_tts` | edge-tts>=7,<8 | `linux`, `windows` | `slides-to-video` | | `feedparser` | `feedparser` | feedparser | `linux`, `windows` | `research-digest-wrapper`, `rss-news-digest` | | `google-api-python-client` | `googleapiclient` | google-api-python-client>=2.100.0 | `linux`, `windows` | `calibre Google Drive sync`, `zotero Google Drive helpers` | | `google-auth` | `google.oauth2` | google-auth>=2.23.0 | `linux`, `windows` | `calibre Google Drive sync`, `zotero Google Drive helpers` | | `kaggle` | `kaggle` | kaggle>=1.8.0 | `linux`, `windows` | `kaggle-research-compute` | | `kagglehub` | `kagglehub` | kagglehub>=0.4.1 | `linux`, `windows` | `kaggle-research-compute` | | `kokoro` | `kokoro` | kokoro>=0.9.4 | `linux`, `windows` | `slides-to-video` | | `lean-explore` | `lean_explore` | lean-explore | `linux`, `windows` | `lean-explore-mcp` | | `local-getscipapers-helper` | `redacted` | optional local helper package with a maintainer-specific import name | `windows` | `zotero metadata fallback` | | `manim` | `manim` | manim==0.20.1 on Python >=3.11; manim==0.19.1 on Python 3.10 | `linux`, `windows` | `manim-math-animation` | | `modal` | `modal` | modal | `linux`, `windows` | `modal-research-compute` | | `networkx` | `networkx` | networkx | `linux`, `windows`, `remote-modal` | `graph-verifier`, `modal-research-compute` | | `numpy` | `numpy` | numpy==1.26.4 for TikZ semantic verifier; numpy>=1.26 for slides-to-video audio; numpy in Modal CPU image | `linux`, `windows`, `remote-modal` | `tikz-draw`, `modal-research-compute`, `slides-to-video` | | `pdf2image` | `pdf2image` | pdf2image>=1.17 | `linux`, `windows` | `slides-to-video` | | `pdfplumber` | `pdfplumber` | pdfplumber>=0.10.0 | `linux`, `windows` | `zotero` | | `piper-tts` | `piper` | piper-tts>=1.2 | `linux`, `windows` | `slides-to-video` | | `psutil` | `psutil` | psutil | `linux`, `windows` | `get-available-resources` | | `pylatexenc` | `pylatexenc` | pylatexenc | `linux`, `windows` | `annotated-review` | | `pypdfium2` | `pypdfium2` | pypdfium2>=4 | `linux`, `windows` | `docling OCR.space fallback PDF rendering` | | `pytest` | `pytest` | pytest>=7.0.0 | `linux`, `windows` | `zotero test suite` | | `python-pptx` | `pptx` | python-pptx>=1.0 | `linux`, `windows` | `slides-to-video` | | `pyzotero` | `pyzotero` | pyzotero>=1.10.0 | `linux`, `windows` | `zotero` | | `rapidocr` | `rapidocr` | docling[rapidocr] extra | `windows` | `docling OCR` | | `requests` | `requests` | requests>=2.28.0 | `linux`, `windows` | `zotero`, `calibre`, `research-digest-wrapper` | | `responses` | `responses` | responses>=0.23.0 | `linux`, `windows` | `zotero test suite` | | `shapely` | `shapely` | shapely==2.1.2 for TikZ semantic verifier | `linux`, `windows` | `tikz-draw` | | `soundfile` | `soundfile` | soundfile>=0.12 | `linux`, `windows` | `slides-to-video` | | `svgelements` | `svgelements` | svgelements==1.9.6 for optional SVG parsing parity | `linux`, `windows` | `tikz-draw` | | `tomli` | `tomli` | tomli>=2 on Python <3.11 for TOML config and authority parsing | `linux`, `windows` | `docling`, `modal-research-compute`, `hetzner-research-compute`, `kaggle-research-compute`, `ARL credential broker Modal authority` | | `torch` | `torch` | torch CPU wheel for Windows docling; torch in Modal GPU image | `windows`, `remote-modal` | `docling Windows setup`, `modal GPU jobs` | | `torchvision` | `torchvision` | torchvision CPU wheel for Windows docling | `windows` | `docling Windows setup` | | `websocket-client` | `websocket` | websocket-client>=1.6 | `linux`, `windows` | `url-to-screenshot-runtime`, `venue-ranking-evidence` | ### Node Packages | Package | Requirement | Used By | Notes | |---|---|---|---| | `codewhale` | codewhale npm package; successor to deprecated deepseek-tui | `DeepSeek delegation provider CLI`, `DeepSeek target` | npm package metadata for codewhale and deepseek-tui rename. | | `sequential-thinking-mcp` | @modelcontextprotocol/server-sequential-thinking via npx | `Windows Codex MCP sequentialThinking server` | Windows Codex config.toml. | | `zotero-translation-server` | Vendored Zotero translation-server package.json | `zotero metadata translation` | Linux Codex Zotero translation-server-src/package.json. Runtime deps: `aws-sdk`, `config`, `iconv-lite`, `jsdom`, `koa`, `koa-bodyparser`, `koa-route`, `md5`, `request`, `request-promise-native`, `serverless-http`, `w3c-xmlserializer`, `wicked-good-xpath`, `xregexp`, `yargs` | ### Manual Integrations | Integration | Description | Used By | |---|---|---| | `axiom-axle` | AxiomMath AXLE API key and MCP client configuration are configured manually outside this repo; helpers report presence only and never write config. | `axiom-axle-mcp` | | `github` | GitHub app/CLI authentication is configured outside this repo. | `github`, `gh-fix-ci`, `yeet` | | `github-copilot-cli` | Copilot CLI account, provider, and model entitlement state is detected as target precheck metadata when the Copilot target is detected or selected; known credential sources are reported by presence rather than value, config secret values are not read, and command arguments/version output are redacted. | `copilot target` | | `google-drive` | Google Drive service-account or OAuth credentials are configured outside this repo. | `calibre`, `zotero optional Google Drive helpers` | | `hetzner` | Hetzner Cloud API token from a dedicated least-privilege project is configured outside this repo and read from the HCLOUD_TOKEN environment variable at runtime; it is never written to argv, logs, an hcloud context file, or a provisioned server. | `hetzner-research-compute` | | `kaggle` | The new single Kaggle API token is configured outside this repo and read from the KAGGLE_API_TOKEN environment variable (or ~/.kaggle/access_token) at runtime; kagglehub validates it and the kaggle CLI authenticates kernel ops with it. It is never written to argv, logs, a legacy kaggle.json, or a kernel, and the legacy KAGGLE_USERNAME + KAGGLE_KEY pair is not used. ToS: use for modest, legitimate research workloads only. | `kaggle-research-compute` | | `leanexplore` | LeanExplore API key, MCP client configuration, and local search data are configured manually outside this repo; helpers report presence only and never write config or download data. | `lean-explore-mcp` | | `modal` | Modal token file and workspace credentials are configured outside this repo. | `modal-research-compute` | | `provider-configs` | OpenAI, Claude, DeepSeek, Copilot, and other provider auth/config files are intentionally excluded. | `agent frontends` | | `venue-ranking-providers` | Scopus, Web of Science, JCR, and other licensed venue-source subscriptions, export access, API keys, and institutional access remain outside this repo. The runtime accepts only user-supplied authorized normalized imports for those sources; it never acquires credentials, automates licensed UIs, reuses browser profiles, or bypasses provider access controls. | `venue-ranking-evidence` | | `zotero` | Zotero API/library/WebDAV credentials are configured outside this repo. | `zotero`, `annotated-review`, `paper-review` | ### Windows Substrate Notes - SageMath is WSL-backed on the inspected Windows config, not native Windows. - Docling OCR is Windows-native through rapidocr extras; Tesseract is a Linux/WSL option. - Docker is explicitly not required by the inspected Windows Sage config. - Windows wrapper commands may use PowerShell scripts, native Python venvs, and WSL in the same workflow; CMD runtime launchers are not published. ## Docling And OCR Runtime Notes The managed Docling runtime is local-only by default. The wrappers accept local paths for `doctor`, `convert`, `extract`, `chunk`, and `quality`, load Docling lazily after argument/config validation, and reject URL sources, network-style paths, HTML/Markdown inputs with remote assets, remote service config fields, provider URLs, API tokens, and OCR.space settings in config files. Useful local OCR controls include: - `--preset local-accurate` for normal high-quality local parsing. - `--preset scan-heavy` for stronger scanned/image-backed paper OCR. - `--ocr-mode never|auto|always` and `--force-full-page-ocr`. - `--ocr-engine auto|easyocr|ocrmac|rapidocr|tesseract|tesserocr`. - `--table-mode fast|accurate`, `--page-range`, `--max-num-pages`, and `--max-file-size` for bounded conversions. - `quality --source ` to score local extraction quality before fallback. Config discovery order is `--config`, `AAS_DOCLING_CONFIG`, `DOCLING_CONFIG`, `$AAS_RUNTIME_WORKSPACE/config/docling.toml`, and `$OPENCLAW_WORKSPACE/config/docling.toml` only when `--allow-openclaw-config` is passed. `docling.example.toml` is the tracked template; live configs, caches, downloaded PDFs, and runtime data are not promoted into the managed runtime manifest. OCR.space is available only as an explicit remote fallback: pass `--ocr-fallback ocrspace --allow-remote-ocr` to `convert`, provide `OCRSPACE_API_KEY` or `OCR_SPACE_API_KEY`, and use `--ocr-audit-output` when you need an upload/quality audit. The fallback runs only when local Docling conversion fails or the quality gate degrades. Splitting a PDF into one image per page may help satisfy per-request size or timeout limits, but it does not bypass account-level quota, rate, or concurrency limits. The adapter redacts secrets and uses OCR Engine 3 for paper extraction quality. Live OCR.space smoke is separate from default post-install smoke. Run `ocrspace-smoke --allow-remote-ocr` only when a real OCR.space key is configured and a live remote request is acceptable. The command generates and uploads a synthetic one-page PDF rather than user data. ## Slides-To-Video Runtime Notes `slides-to-video` turns prepared slides (PNG/PDF/PPTX) into a narrated, captioned MP4 using only free tools. `ffmpeg` is the one required system tool (use an LGPL build); `espeak-ng` is needed for offline TTS and Microsoft PowerPoint on Windows or LibreOffice elsewhere is needed only for PPTX input. Python packages install into a dedicated venv at `~/.local/share/slides-to-video-venv` via the `setup` subcommand; the wrappers use `S2V_PYTHON` first, then auto-select that venv, then fall back to `AAS_RUNTIME_PYTHON`. Install the system tools first, then run `setup`, then `doctor`: Debian/Ubuntu `sudo apt-get install ffmpeg espeak-ng libreoffice`, Fedora `sudo dnf install ffmpeg espeak-ng libreoffice`, macOS `brew install ffmpeg espeak-ng` (LibreOffice via cask), Windows `winget install Gyan.FFmpeg eSpeak-NG.eSpeak-NG`. Microsoft Office PowerPoint satisfies PPTX input on Windows; `espeak-ng` is only for offline TTS. It runs a three-phase, human-in-the-loop flow: `analyze` (ingest slides), `draft` then `verbalize` (per-slide spoken transcript, math read aloud), and `render` -- which is blocked until `approve` pins the transcript SHA, and re-blocks automatically if the transcript changes afterward. Timing is duration-driven: each slide's narration is synthesized, normalized to WAV, measured with `ffprobe`, and its clip is set to exactly that length, then clips concatenate losslessly. Captions (SRT + VTT) are engine-agnostic and re-based on the same measured durations. TTS uses a language-aware ladder: edge-tts (online, best) then offline Kokoro/Piper, dropping engines without a voice for the language -- e.g. Vietnamese routes to edge-tts `vi-VN` then Piper `vi_VN`, never Kokoro. English and Vietnamese ship tuned lexicons (voices + spoken math); other languages are supported generically via live edge-tts voice enumeration. Tier-1 effects (Ken Burns, highlight, spotlight, laser, reveal) run as ffmpeg filters on the slide pixels and need no slide source. A slide's visual can also be a pre-rendered video clip (set `clip_path`, or insert one with `add-interlude`) -- this is how a manim-math-animation clip is mixed into a narrated deck: the segment runs to max(clip, narration), narration stays in this skill's TTS ladder, and the concat stays drift-free. The default `selftest` smoke is offline: it validates the deterministic core (pairing, re-basing, the engine ladder, verbalization, effect filtergraph building, captions, clip args, and the approval gate) with no network, package install, ffmpeg, or TTS. Run `doctor` to report whether ffmpeg, fonts, and the venv packages are present before a real render. ## Manim Math Animation Runtime Notes `manim-math-animation` is the optional Manim companion to slides-to-video. From a JSON scene spec (equations + optional title + emphasis) it generates a Manim scene and renders a SILENT clip normalized to the slides-to-video canonical profile (resolution, fps, yuv420p, silent 48 kHz stereo AAC), so the clip splices into a deck without re-encoding. Narration stays in slides-to-video (one timing owner per segment); Manim is rendered silent. Animations: Write of typeset equations (handwriting feel), TransformMatchingTex morphing between steps, and Indicate/Circumscribe/ Flash/Wiggle emphasis. Vietnamese/other-script prose uses the spec `title` via Pango Text + a Unicode font; math (MathTex) is language-neutral. Manim is heavier than the default smoke contract: it needs a LaTeX distro with dvisvgm + the standalone/preview packages + cm-super, the cairo/pango dev libraries, and ffmpeg (the `manim-tex-runtime` system dependency), plus Manim CE in a dedicated venv at `~/.local/share/manim-math-animation-venv` created by `setup`. The default `selftest` smoke is offline and presence- free: it validates the scene-spec round-trip, the generated Manim source, and the manim/ffmpeg argv builders with no Manim, LaTeX, or ffmpeg. Run `doctor` to confirm the render toolchain before `render`; a real render is intentionally not part of default CI smoke. ## Detection Notes Python package checks use root-relative candidate sets, including agent virtualenvs, user-local site-package directories, Codex runtime site-package directories, dedicated Docling environments, official Windows Python install roots, and per-user Windows package directories. When inspecting a mounted Windows home from Linux, `precheck` can verify package markers in `site-packages`, find common TeX Live and MiKTeX install roots, detect Sage in the current WSL/Linux filesystem, and detect mounted WSL rootfs Sage paths or WSL VHDX presence. It still marks native Windows executables as present-unverified instead of trying to execute them. Related pages: [Installation](installation.md), [Windows](windows.md), [Linux](linux.md), [Troubleshooting](troubleshooting.md).