85 lines
3.8 KiB
Markdown
85 lines
3.8 KiB
Markdown
# 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](../dbus/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.
|