jackailocal / docs /SYSTEM_BEHAVIOR.md
jackboy70's picture
Deploy: accurate lite-builder note
f25362a
|
Raw
History Blame Contribute Delete
2.9 kB
# JackAILocal System Behavior
## Layers
1. The Gradio Builder accepts a real hardware profile, recommends compatible models, and exports manifests or builder packages.
2. Platform builders prepare a local folder, USB drive, or external SSD and validate the resulting payload.
3. `jackailocald` serves the WebUI and routes requests only to reachable local AI engines.
## Runtime
The Rust runtime serves static WebUI files and these primary APIs:
```text
GET /api/status
GET /api/features
GET /api/models
POST /v1/chat/completions
GET /api/threads
POST /api/threads
POST /api/threads/:id/messages
POST /api/vision/analyze
GET /api/voice/status
POST /api/voice/transcribe
POST /api/voice/synthesize
POST /api/packs/export
POST /api/packs/import
POST /api/agent/recommend
GET /api/phone
POST /api/phone
POST /api/runtime/restart
```
Chat and SCOUT use installed Ollama models. An OpenAI-compatible `llama.cpp` server can be used as an explicit local chat fallback. Voice uses whisper.cpp and Piper binaries and models stored in the package.
`POST /api/agent/recommend` adds a local LLM-in-the-loop for client configuration and model selection review. It uses only installed local models, enforces the <=32B catalog policy, prefers Gemma 4 12B (`gemma4:12b`) when present, and returns an explicit error when a requested agent model is unavailable.
The runtime reports a feature as available only when the required local engine and model are available.
## Storage
```text
workspace/threads/ conversation JSON files
workspace/documents/ user notes
workspace/settings/ local settings and phone pairing token
workspace/exports/ encrypted packs and support ZIPs
workspace/voice/ temporary voice files
workspace/scout/ SCOUT workspace
models/ollama/ Ollama model store
models/whisper/ speech-to-text models
models/piper/ text-to-speech models
```
Threads are persistent and support filtering, rename, and individual deletion.
## Phone Access
The default bind is `127.0.0.1:4891`. Phone Access must be enabled explicitly. After restart, the runtime binds to `0.0.0.0:4891`, generates a LAN URL and QR code, and requires `X-JackAILocal-Token` for non-loopback API requests.
## Transfer Packs
Transfer packs use AES-256-GCM with PBKDF2-HMAC-SHA256. Passphrases are not stored. Imported settings are sanitized so a pack cannot silently enable Phone Access or transfer a pairing token.
## Builders
Builders install selected Ollama models, install Voice assets, generate a SHA-256 manifest, and refuse success when required files are missing. The source package and target path must not overlap.
## Offline Boundary
Normal use does not require internet after models and Voice assets are present. The runtime has no cloud inference fallback. A capability that cannot run locally returns an explicit unavailable or error response.