feat: bootstrap vela UI and gateway workspace
Establish the monorepo, tooling, and starter apps so UI and gateway development can begin from a documented, runnable baseline.
This commit is contained in:
97
docs/integrations.md
Normal file
97
docs/integrations.md
Normal file
@@ -0,0 +1,97 @@
|
||||
# Vela Integrations and Tool Safety
|
||||
|
||||
## Current Runtime Baseline
|
||||
|
||||
- `vela-ui` is implemented as a SvelteKit application
|
||||
- `vela-gateway` is implemented as a Fastify service
|
||||
- current integration work beyond the gateway HTTP baseline remains future implementation
|
||||
|
||||
## STT (Speech-to-Text)
|
||||
|
||||
### Primary Option
|
||||
|
||||
- `whisper.cpp`
|
||||
|
||||
### Deployment
|
||||
|
||||
- start on NanoPi
|
||||
- move to NAS if latency is insufficient
|
||||
|
||||
### Requirements
|
||||
|
||||
- streaming transcription
|
||||
- partial and final output
|
||||
- low latency, with sub-second response preferred
|
||||
|
||||
## TTS (Text-to-Speech)
|
||||
|
||||
### Engine
|
||||
|
||||
- Kokoro TTS
|
||||
|
||||
### Deployment
|
||||
|
||||
- prefer NAS for more compute headroom
|
||||
|
||||
### API Contract
|
||||
|
||||
```http
|
||||
POST /speak
|
||||
{
|
||||
"text": "...",
|
||||
"voice": "vela",
|
||||
"format": "wav"
|
||||
}
|
||||
```
|
||||
|
||||
### Requirements
|
||||
|
||||
- streaming audio preferred
|
||||
- low startup latency
|
||||
- interrupt support
|
||||
|
||||
## Tool System
|
||||
|
||||
### Home Assistant Tool
|
||||
|
||||
#### Functions
|
||||
|
||||
```ts
|
||||
turn_on(entity_id);
|
||||
turn_off(entity_id);
|
||||
set_temperature(entity_id, value);
|
||||
get_state(entity_id);
|
||||
```
|
||||
|
||||
#### Backend
|
||||
|
||||
- REST API
|
||||
- optional Conversation API
|
||||
|
||||
#### Safety
|
||||
|
||||
- require confirmation for destructive actions
|
||||
- require confirmation for irreversible or significant state changes
|
||||
- keep secrets server-side only
|
||||
|
||||
### SearXNG Tool
|
||||
|
||||
#### Endpoint
|
||||
|
||||
```http
|
||||
GET /search?q=...&format=json
|
||||
```
|
||||
|
||||
#### Flow
|
||||
|
||||
- query SearXNG
|
||||
- return top results
|
||||
- let the LLM summarize the result set
|
||||
|
||||
## Safety Rules
|
||||
|
||||
- the LLM does not directly control systems
|
||||
- all external actions go through explicit tool adapters
|
||||
- Home Assistant write actions require confirmation
|
||||
- frontend must not contain Home Assistant tokens or other secrets
|
||||
- ambiguous tool intents should be clarified instead of guessed
|
||||
Reference in New Issue
Block a user