266ea11447
FRIDAY Voice (speaches GPU STT/TTS + hermes agent + push-to-talk console) on .150 Docker Desktop, fronted by coach.hobbs.farm. Also captures the VoiceCoach compose/agent trees and deploy notes it replaced, which had never been committed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
47 lines
1.5 KiB
HTML
47 lines
1.5 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
|
|
<title>VoiceCoach</title>
|
|
<link rel="stylesheet" href="style.css">
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<div class="header">
|
|
<h1>VoiceCoach</h1>
|
|
<div id="status" class="status disconnected">Disconnected</div>
|
|
</div>
|
|
|
|
<div class="controls">
|
|
<button id="connectBtn" class="btn btn-primary">Start Session</button>
|
|
<button id="disconnectBtn" class="btn btn-danger" style="display:none">End Session</button>
|
|
</div>
|
|
|
|
<div id="modeDisplay" class="mode-display">Mode: coaching</div>
|
|
|
|
<div id="transcript" class="transcript">
|
|
<p class="hint">Press "Start Session" to connect your voice.</p>
|
|
</div>
|
|
|
|
<div class="mode-buttons">
|
|
<button class="mode-btn" onclick="setMode('coaching mode')">Coaching</button>
|
|
<button class="mode-btn" onclick="setMode('vent mode')">Vent</button>
|
|
<button class="mode-btn" onclick="setMode('practice mode')">Practice</button>
|
|
<button class="mode-btn" onclick="setMode('briefing mode')">Briefing</button>
|
|
</div>
|
|
|
|
<div class="log-panel">
|
|
<div class="log-header">
|
|
<span>Log</span>
|
|
<button class="log-clear" onclick="clearLog()">Clear</button>
|
|
</div>
|
|
<div id="logOutput" class="log-output"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/livekit-client/dist/livekit-client.umd.min.js"></script>
|
|
<script src="app.js"></script>
|
|
</body>
|
|
</html>
|