config: the blocks nested under voice move with it (V-410)
WorkerConfig, TtsConfig, EmbedderConfig, WeatherConfig and ToolConfig. None of them is reachable except through a voice block, so they read better beside it.
This commit is contained in:
@@ -327,22 +327,6 @@ type QuietHoursConfig struct {
|
||||
End string `json:"end,omitempty"` // "HH:MM" local time, e.g. "08:00"
|
||||
}
|
||||
|
||||
// WeatherConfig configures the weather provider for voice queries.
|
||||
type WeatherConfig struct {
|
||||
Provider string `json:"provider,omitempty"` // "open-meteo" or "" → stub
|
||||
DefaultLocation string `json:"default_location,omitempty"` // e.g. "Moscow"
|
||||
}
|
||||
|
||||
// ToolConfig — one enabled tool. Name is the spoken verb ("restart"); Cmd is
|
||||
// the fixed argv prefix (["systemctl","restart"]); Destructive marks acts that
|
||||
// must not fire from the voice path (they need a confirm on an authed surface).
|
||||
type ToolConfig struct {
|
||||
Name string `json:"name"`
|
||||
Scope string `json:"scope,omitempty"`
|
||||
Cmd []string `json:"cmd"`
|
||||
Destructive bool `json:"destructive,omitempty"`
|
||||
}
|
||||
|
||||
// DigestConfig — notification batching / digest mode. When enabled, eligible
|
||||
// nudges (severity ≤ SeverityCeiling) are queued in memory instead of sent
|
||||
// immediately. Every Window duration (or when MaxItems reached), the queue is
|
||||
@@ -477,36 +461,6 @@ type PhraserConfig struct {
|
||||
SwapModels []string `json:"swap_models,omitempty"`
|
||||
}
|
||||
|
||||
// EmbedderConfig — paths for the ONNX multilingual embedder. The daemon
|
||||
// constructs an in-process ONNX embedder when all three paths are non-empty;
|
||||
// the router's classifier then uses real sentence embeddings instead of the
|
||||
// floor HashEmbedder stub. Model_path is the ONNX model file, tokenizer_path
|
||||
// is tokenizer.json (Unigram), lib_path is the ONNX Runtime shared library.
|
||||
type EmbedderConfig struct {
|
||||
ModelPath string `json:"model_path,omitempty"`
|
||||
TokenizerPath string `json:"tokenizer_path,omitempty"`
|
||||
LibPath string `json:"lib_path,omitempty"`
|
||||
}
|
||||
|
||||
// WorkerConfig — a unix-socket worker module connection. Used by Stt and
|
||||
// (via TtsConfig embedding the same fields) by Tts. Socket is the unix
|
||||
// socket path the worker module listens on (e.g.
|
||||
// /run/user/$UID/maven/stt.sock). Lang overrides the surface default for
|
||||
// this module when the user wants different langs for stt vs tts (rare).
|
||||
type WorkerConfig struct {
|
||||
Socket string `json:"socket,omitempty"`
|
||||
Lang string `json:"lang,omitempty"`
|
||||
}
|
||||
|
||||
// TtsConfig — the tts worker module connection + tts-specific Voice field
|
||||
// (a named voice when the worker supports multiple; "" ⇒ the worker's
|
||||
// configured default).
|
||||
type TtsConfig struct {
|
||||
Socket string `json:"socket,omitempty"`
|
||||
Lang string `json:"lang,omitempty"`
|
||||
Voice string `json:"voice,omitempty"`
|
||||
}
|
||||
|
||||
// Duration — a time.Duration that round-trips through JSON as a string
|
||||
// ("60s", "5m", "1h30m"). Plain time.Duration marshals as a nanosecond int,
|
||||
// which is unreadable in a config file; this wrapper uses ParseDuration.
|
||||
|
||||
@@ -5,6 +5,56 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
// The blocks nested under voice: the two worker seams, the embedder the
|
||||
// classifier scores with, the weather provider and the act allowlist. They live
|
||||
// here because none of them is reachable except through a voice block.
|
||||
|
||||
// WorkerConfig — a unix-socket worker module connection. Used by Stt and
|
||||
// (via TtsConfig embedding the same fields) by Tts. Socket is the unix
|
||||
// socket path the worker module listens on (e.g.
|
||||
// /run/user/$UID/maven/stt.sock). Lang overrides the surface default for
|
||||
// this module when the user wants different langs for stt vs tts (rare).
|
||||
type WorkerConfig struct {
|
||||
Socket string `json:"socket,omitempty"`
|
||||
Lang string `json:"lang,omitempty"`
|
||||
}
|
||||
|
||||
// TtsConfig — the tts worker module connection + tts-specific Voice field
|
||||
// (a named voice when the worker supports multiple; "" ⇒ the worker's
|
||||
// configured default).
|
||||
type TtsConfig struct {
|
||||
Socket string `json:"socket,omitempty"`
|
||||
Lang string `json:"lang,omitempty"`
|
||||
Voice string `json:"voice,omitempty"`
|
||||
}
|
||||
|
||||
// EmbedderConfig — paths for the ONNX multilingual embedder. The daemon
|
||||
// constructs an in-process ONNX embedder when all three paths are non-empty;
|
||||
// the router's classifier then uses real sentence embeddings instead of the
|
||||
// floor HashEmbedder stub. Model_path is the ONNX model file, tokenizer_path
|
||||
// is tokenizer.json (Unigram), lib_path is the ONNX Runtime shared library.
|
||||
type EmbedderConfig struct {
|
||||
ModelPath string `json:"model_path,omitempty"`
|
||||
TokenizerPath string `json:"tokenizer_path,omitempty"`
|
||||
LibPath string `json:"lib_path,omitempty"`
|
||||
}
|
||||
|
||||
// WeatherConfig configures the weather provider for voice queries.
|
||||
type WeatherConfig struct {
|
||||
Provider string `json:"provider,omitempty"` // "open-meteo" or "" → stub
|
||||
DefaultLocation string `json:"default_location,omitempty"` // e.g. "Moscow"
|
||||
}
|
||||
|
||||
// ToolConfig — one enabled tool. Name is the spoken verb ("restart"); Cmd is
|
||||
// the fixed argv prefix (["systemctl","restart"]); Destructive marks acts that
|
||||
// must not fire from the voice path (they need a confirm on an authed surface).
|
||||
type ToolConfig struct {
|
||||
Name string `json:"name"`
|
||||
Scope string `json:"scope,omitempty"`
|
||||
Cmd []string `json:"cmd"`
|
||||
Destructive bool `json:"destructive,omitempty"`
|
||||
}
|
||||
|
||||
// Voice defaults, applied in normaliseVoice.
|
||||
const (
|
||||
DefaultRouterThreshold = 0.55
|
||||
|
||||
Reference in New Issue
Block a user