P2 — homeai-llm: - Fix ollama launchd plist path for Apple Silicon (/opt/homebrew/bin/ollama) - Add Modelfiles for local GGUF models: llama3.3:70b, qwen3:32b, codestral:22b (registered via `ollama create` — no re-download needed) P3 — homeai-voice: - Wyoming STT: wyoming-faster-whisper, large-v3 model, port 10300 - Wyoming TTS: custom Kokoro ONNX server (wyoming_kokoro_server.py), port 10301 Voice af_heart; models at ~/models/kokoro/ - Wake word: openWakeWord daemon (hey_jarvis), notifies OpenClaw at /wake - launchd plists for all three services + load-all-launchd.sh helper - Smoke test: wyoming/test-pipeline.sh — 3/3 passing HA Wyoming integration pending manual UI config (STT 10.0.0.200:10300, TTS 10.0.0.200:10301). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
36 lines
825 B
Bash
Executable File
36 lines
825 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# Load (or reload) all homeai-voice launchd services.
|
|
|
|
set -euo pipefail
|
|
|
|
LAUNCHD_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/launchd" && pwd)"
|
|
LAUNCH_AGENTS=~/Library/LaunchAgents
|
|
|
|
PLISTS=(
|
|
com.homeai.wyoming-stt.plist
|
|
com.homeai.wyoming-tts.plist
|
|
com.homeai.wakeword.plist
|
|
)
|
|
|
|
for plist in "${PLISTS[@]}"; do
|
|
src="${LAUNCHD_DIR}/${plist}"
|
|
dst="${LAUNCH_AGENTS}/${plist}"
|
|
label="${plist%.plist}"
|
|
|
|
cp "$src" "$dst"
|
|
|
|
if launchctl list "$label" &>/dev/null; then
|
|
launchctl unload "$dst" 2>/dev/null || true
|
|
fi
|
|
launchctl load "$dst"
|
|
echo "Loaded: $label"
|
|
done
|
|
|
|
echo ""
|
|
echo "Status:"
|
|
for plist in "${PLISTS[@]}"; do
|
|
label="${plist%.plist}"
|
|
pid=$(launchctl list "$label" 2>/dev/null | awk 'NR==2{print $1}')
|
|
echo " $label — PID: ${pid:--}"
|
|
done
|