# Capability catalog Capabilities are exposed through harness tools and report their real runtime state. A capability can be registered while unavailable because its model is not downloaded, does not fit the selected GPU profile, or requires hardware that is not present. | Domain | Tools | Execution owner | Typical permission | | --- | --- | --- | --- | | Conversation | `chat`, `plan`, `summarize`, `rewrite`, `code` | Harness + QVAC master | read | | Retrieval | `embed`, `remember`, `ask-my-files`, workspaces | QVAC master + local stores | read/write | | Vision | screenshot, `look-at-this`, `ocr`, `what-is-this` | Portal + QVAC master | read | | Speech | `dictate`, `transcribe-file`, `meeting`, `speak`, `clone-voice` | PipeWire + QVAC master | read/write | | Language | `translate`, `relay-voice` | QVAC master | read | | Media | `imagine`, `edit-image`, `make-video`, `compose` | Job runner + QVAC master | write | | Training | `teach-me` | Isolated job + QVAC master | dangerous | | Lab | `bci`, `robot`, `world` | Explicit lab adapters | read/write/dangerous | | Desktop | launch, focus, window, clipboard, media, settings | GNOME/GIO/D-Bus | read/write | | Computer use | `cu.observe`, `cu.find`, `cu.act`, `cu.click`, `cu.type`, `cu.key` | CU session | computer-use | ```mermaid flowchart TB J((JARVIS-QVAC)) J --> C[Conversation\nchat · plan · code · summarize] J --> M[Memory\nembeddings · RAG · batch] J --> P[Perception\nscreenshot · OCR · classification] J --> V[Voice\nwake · ASR · TTS · translation] J --> G[Media\nimage · video · music] J --> D[Desktop\nGNOME · AT-SPI · computer use] J --> L[Lab\nLoRA · BCI · VLA · ABot-World] ``` All QVAC-facing capabilities use the master allowlist and scheduler. The UI must show unavailable reasons instead of hiding a feature or claiming that a job ran.