Core concepts
Models & routing
Model-agnostic by design: cascades, downloads, and engine bridges.
The runtime never talks to a model engine directly. A task-first router picks a model per call from declarative manifests (capabilities, RAM/device class, context window, network requirement), honouring privacy mode, pack requirements, and battery state.
The cascade
1 deterministic rules tier (always present — first launch, CI, low-end devices) 2 tiny intent classifier 3 small local model (1–8B quantised) 4 larger local model (high-tier devices) 5 ask the user to clarify 6 cloud fallback — only if privacy_mode allows AND user consented
- External engine bridge:
--model-cmd "<command>"attaches any engine speaking one JSON object per line (llama.cpp wrappers, Ollama, custom). - Verified downloads: resumable, sha256-checked, storage-pressure gated (
ModelDownloadManager). - Swap without rewrites: agents, skills, workflows, and packs never change when models do.