3.8 KiB
API reference
Session D-Bus
Bus name: io.qvac.Jarvis
Object path: /io/qvac/Jarvis
Interface: io.qvac.Jarvis.Session
The canonical XML contract is io.qvac.Jarvis.Session.xml.
| Method | Purpose |
|---|---|
Arm() / Sleep() / Shutdown() |
Control daemon voice lifecycle |
PushToTalk(bool) |
Begin/end typed or microphone turn |
Say(string) |
Speak text through local TTS |
Ask(string) |
Submit typed text to the harness |
ReloadSettings() |
Re-read config.json and return a status string |
PreviewVoice(string) |
Speak preview text without adding a chat turn |
StopSpeech() |
Interrupt TTS playback |
ResetContext() |
Clear the current conversation context |
Confirm(jobId, toolCallId, decision) |
Answer a confirmation gate |
Cancel() |
Cancel active request/job |
SetMode(string) |
Set capability mode (not HUD layout) |
GetState() |
Return serialized daemon state |
EnrollWake(string) |
Configure wake phrase |
IngestPath(string) |
Add a local path to RAG ingestion |
ComputerGrant(bool) / ComputerRevoke() |
Start/stop computer-use grant |
ComputerStatus() |
Return computer-use status JSON |
GetRuntimeStatus() |
Return voice/runtime component status JSON |
AssessModelFit(string) |
Report whether a model fits the GPU profile |
DownloadModel(string) |
Start a model download |
CancelModel(string) |
Cancel a model download |
WipeComputerTraces() |
Wipe computer-use frames; returns whether wipe ran |
| Signal | Purpose |
|---|---|
StateChanged |
Voice/daemon state string |
ContextReset |
Conversation context was cleared |
WakeHeard |
Wake phrase detected |
PartialTranscript / FinalTranscript |
ASR text |
Token / Reply |
Streamed and final assistant text |
SpeakingLevel / ListeningLevel |
Audio RMS. The HUD no-ops these; there is no waveform |
ChipOffered |
Suggestion sidecar |
JobProgress |
Background job progress |
ComputerStep / ComputerHighlight |
CU step text and target highlight rect |
ConfirmationRequired |
Tool permission prompt |
Thinking |
Planner thought tokens |
ToolCall / ToolResult |
Tool activity JSON |
Error |
Code and message |
Payloads stay small; PCM and image bytes do not travel over D-Bus.
Computer-use tools
Tools are registered with the harness and exposed through the daemon. The
observable contract includes cu.grant, cu.revoke, cu.status,
cu.observe, cu.zoom, cu.tree, cu.find, cu.click, cu.drag,
cu.scroll, cu.type, cu.key, and cu.act. Every action is checked against
the active grant and safety policy. The HUD shows visible CU chrome (target
highlight and agent cursor), not a waveform overlay.
Search tools
Implemented in vendor/agent-harness/agent/web-search.js for Bare (fetch plus
regex/JSON, no extra npm, no SearXNG):
| Tool | Behavior |
|---|---|
web_search |
Public search. Default engine=auto walks duckduckgo → ddg_lite → jina → bing → bing_rss → google → wikipedia → ddg_instant. Pin engine to retry one backend. |
google_search |
Google HTML first, then the auto chain |
fetch_page |
Readable text via Jina Reader, then HTML strip |
web_fetch |
Raw stripped text, including IP lookup pages (do not send those through Jina) |
wiki_search |
Wikipedia MediaWiki JSON |
hn_search |
Hacker News via Algolia |
code_search |
GitHub, npm, and MDN in parallel |
These are public reads and do not require extra API keys. Shell HTTP
(curl/wget over public hosts) remains blocked; use these tools instead.
Local HTTP
QVAC's optional OpenAI-compatible server is localhost-only at port 11434.
It is a diagnostic surface, not a second Jarvis runtime. Native QVAC-only
operations use /qvac/v1/* where supported by the installed QVAC version.