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"
|
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
|
// DigestConfig — notification batching / digest mode. When enabled, eligible
|
||||||
// nudges (severity ≤ SeverityCeiling) are queued in memory instead of sent
|
// nudges (severity ≤ SeverityCeiling) are queued in memory instead of sent
|
||||||
// immediately. Every Window duration (or when MaxItems reached), the queue is
|
// immediately. Every Window duration (or when MaxItems reached), the queue is
|
||||||
@@ -477,36 +461,6 @@ type PhraserConfig struct {
|
|||||||
SwapModels []string `json:"swap_models,omitempty"`
|
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
|
// Duration — a time.Duration that round-trips through JSON as a string
|
||||||
// ("60s", "5m", "1h30m"). Plain time.Duration marshals as a nanosecond int,
|
// ("60s", "5m", "1h30m"). Plain time.Duration marshals as a nanosecond int,
|
||||||
// which is unreadable in a config file; this wrapper uses ParseDuration.
|
// which is unreadable in a config file; this wrapper uses ParseDuration.
|
||||||
|
|||||||
@@ -5,6 +5,56 @@ import (
|
|||||||
"time"
|
"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.
|
// Voice defaults, applied in normaliseVoice.
|
||||||
const (
|
const (
|
||||||
DefaultRouterThreshold = 0.55
|
DefaultRouterThreshold = 0.55
|
||||||
|
|||||||
Reference in New Issue
Block a user