This repository has been archived on 2026-09-17. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
nixos-config/services/live-intent/public/index.html
pijukka c8cfdcd88e host(pinix): add live intent and ereader viewer services
Both run on pinix, published only through the pinix Tailnet namespace and
Traefik's web-internal entrypoint (unbound local-data + Headscale split
DNS for intent./ereader.domain2). Live Intent reads its OpenAI key from
the new pinix-only agenix secret.

ereaderViewer is a path: flake input for now; the repo split plan moves
it into its own repository on cgit.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 12:18:55 +02:00

40 lines
1.8 KiB
HTML

<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Live Transkript</title>
<link rel="stylesheet" href="/styles.css" />
</head>
<body>
<main>
<header>
<p class="eyebrow">Planungsgespräch · Tailnet</p>
<h1>Live Transkript</h1>
<p>Ein Sprachgespräch wird als lokales Transkript gespeichert. Es wird kein Intent erzeugt und nichts ausgeführt.</p>
</header>
<section class="card" aria-labelledby="conversation-heading">
<h2 id="conversation-heading">Gespräch</h2>
<p id="status" role="status">Bereit. Mikrofonzugriff wird erst nach „Starten“ angefragt.</p>
<p id="usage" class="muted">Kosten: GPT-Live wird nach Dauer abgerechnet; Responses-Delegation während des Gesprächs ist separat kostenpflichtig.</p>
<div class="actions">
<button id="start" type="button">Starten</button>
<button id="mute" type="button" disabled>Stummschalten</button>
<button id="end" type="button" disabled>Beenden &amp; Transkript speichern</button>
</div>
<div id="captions" class="captions" aria-live="polite"></div>
</section>
<section class="card" aria-labelledby="storage-heading">
<h2 id="storage-heading">Lokale Speicherung</h2>
<p class="muted">Beim normalen Auflegen wird das empfangene Transkript automatisch auf pinix gespeichert. Bei einem unbestätigten Sessionende wird der Status in der Datei kenntlich gemacht.</p>
<div class="actions">
<button id="retry" type="button" hidden>Speichern wiederholen</button>
<a id="download" hidden>Gespeichertes transcript.md herunterladen</a>
</div>
</section>
</main>
<script type="module" src="/app.js"></script>
</body>
</html>