QUELLCODE / HTML

index.html

src/hardware_box/web/index.html

1<!doctype html>2<!--3OpenAss: nur privat und experimentell. Bau, Download und Nutzung auf eigene Verantwortung.4Niemals Unternehmensrechner, Produktivsysteme, Industrieanlagen oder sicherheitskritische Systeme anschließen oder bedienen.5Keine freiwillige Funktions-/Sicherheitsgarantie; zwingende gesetzliche Ansprüche bleiben unberührt. Siehe DISCLAIMER.txt.6-->7<html lang="de"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Hardware Box · Leitstand</title><link rel="stylesheet" href="/style.css"><script src="/app.js" defer></script></head>8<body><header><div><p class="eyebrow">HDMI → ASTRA → USB HID</p><h1>Hardware Box</h1></div><div class="badge" id="mode">Verbinden</div></header>9<aside class="use-disclaimer" aria-label="Experimenteller Gebrauch und Haftung"><strong>Nur für privaten, experimentellen Gebrauch.</strong><p>Bau, Download und Nutzung auf eigene Verantwortung. Niemals an Unternehmensrechner, Produktivsysteme, Industrieanlagen oder sicherheitskritische Systeme anschließen oder diese bedienen.</p><details><summary>Nutzungshinweis und Haftungsausschluss lesen</summary><p>OpenAss ist ein beaufsichtigter Referenzprototyp zum privaten Lernen auf einem eigenen, isolierten Testrechner. Nur entbehrliche Testdaten und Testkonten verwenden, Sicherungen erstellen, Versorgung und Anschlüsse prüfen und jede Eingabe beaufsichtigen. Keine vertraulichen, personenbezogenen oder geschäftlichen Daten verwenden oder als Bildschirmaufnahme an einen KI-Dienst senden.</p><p>Es wird keine freiwillige Garantie für Funktion, Fehlerfreiheit, Kompatibilität, Vollständigkeit, Sicherheit oder Eignung für einen bestimmten Zweck gegeben. Fehlerhafte Eingaben, Software und Verdrahtung können Rechner und Daten verändern, beschädigen oder Datenverlust verursachen. Stop macht bereits ausgeführte Aktionen nicht rückgängig. Die rote Pilz-Stoppeinrichtung belegt keine zertifizierte Not-Halt- oder Maschinensicherheitsfunktion.</p><p>Haftung und Gewährleistung werden ausschließlich im gesetzlich zulässigen Umfang ausgeschlossen. Zwingende gesetzliche Ansprüche und Verbraucherrechte bleiben unberührt; insbesondere keine Beschränkung bei Personenschäden, Vorsatz oder grober Fahrlässigkeit. „Auf eigene Verantwortung“ hebt diese Rechte nicht auf.</p><p>Dieser Hinweis ersetzt keine Lizenz und erlaubt keine unbefugten Zugriffe. Er gilt für alle Projektmaterialien und Demonstrationen. Der vollständige Text liegt dem Projekt als <code>DISCLAIMER.txt</code> bei und ist auf <a href="https://openass.wolperdinger.at/disclaimer.html" target="_blank" rel="noopener noreferrer">der Projektseite</a> abrufbar.</p></details></aside>10<main><section id="login"><h2>Lokalen Leitstand verbinden</h2><label>Sitzungstoken<input id="token" type="password" autocomplete="off" placeholder="BOX_WEB_TOKEN oder Token aus dem Startfenster"></label><button id="connect">Verbinden</button><p>Der Token bleibt nur im Speicher dieses Browserfensters. Zugang zum Pi erfolgt lokal oder durch einen SSH-Tunnel.</p></section>11<div id="workspace" hidden><div class="columns"><section class="screen"><div class="sectiontop"><h2>Bild des Zielrechners</h2><span id="state" class="badge">READY</span></div><img id="screen" alt="Aktueller Screenshot des Zielrechners"><p id="screenhint">Bei offener Freigabe bleibt genau das zugehörige Bild angezeigt.</p><div id="approval" hidden><h3>Eingabe prüfen und freigeben</h3><pre id="pending"></pre><p>Prüfe Ziel, Fokus und mögliche Folgen im Screenshot und am Monitor. Eine Freigabe gilt nur für diese Aktion. Bei einer Bildänderung wird sie verworfen.</p><div class="buttons"><button id="approve">Diese Aktion freigeben</button><button id="reject" class="secondary">Ablehnen</button></div></div><div id="review" hidden><h3>Ergebnis am Zielrechner prüfen</h3><p id="result"></p><button id="verified">Ergebnis bestätigt</button></div></section>12<aside><section><h2>Auftrag</h2><label>Was soll Astra tun?<textarea id="task" rows="6">Öffne auf meinem privaten Testrechner Excel und die entbehrliche Datei Testtabelle.xlsx, trage in B7 den Wert 250 ein und speichere die Testdatei.</textarea></label><p id="demohelp">Im Demo-Modus laufen simulierte Schritte. Für echte Eingaben zuerst die physische ARM-Taste drücken.</p><div class="buttons"><button id="start">Starten</button><button id="pause" class="secondary">Pausieren</button><button id="stop" class="danger">Stoppen / übernehmen</button></div><p>Nach einer Pause den verbleibenden Auftrag neu formulieren und neu starten. Alte Eingaben werden nicht wiederholt.</p><div id="metrics"></div><pre id="action"></pre><p id="error" role="alert"></p><button id="check" class="secondary">API-Verbindung prüfen</button><p id="checkresult"></p></section>13<section><h2>Manueller Eingabetest</h2><p>Nur bei gestopptem Agenten; jede Eingabe erhält eine eigene Freigabe.</p><label>Aktion als JSON<textarea id="manual" rows="3">{"type":"move","x":960,"y":540}</textarea></label><button id="manualsend" class="secondary">Test vorbereiten</button></section></aside></div>14<section><h2>Auflösung und Sicherheitslimits</h2><p>Änderungen speichern die lokale Konfiguration. Danach sind Neustart und neue Kalibrierung erforderlich.</p><form id="settings"><div class="settingsgrid"><label>Capture-Breite<input name="capture_width" type="number" min="320"></label><label>Capture-Höhe<input name="capture_height" type="number" min="240"></label><label>Screenshot-Breite<input name="screenshot_width" type="number" min="320"></label><label>Screenshot-Höhe<input name="screenshot_height" type="number" min="240"></label><label>Zielauflösung Breite<input name="target_width" type="number" min="320"></label><label>Zielauflösung Höhe<input name="target_height" type="number" min="240"></label><label>Tastaturlayout<select name="keyboard_layout"><option value="de">DE · Windows/Linux</option><option value="at">AT · Windows/Linux</option><option value="us">US</option></select></label><label>Aktionen pro Sekunde<input name="max_actions_per_second" type="number" step="0.2" min="0.2" max="10"></label><label>Sitzungsdauer (Sekunden)<input name="session_seconds" type="number" min="10" max="3600"></label><label>Maximale Aktionen<input name="max_actions" type="number" min="1" max="1000"></label><label>Maximale Textlänge<input name="max_text_chars" type="number" min="1" max="1000"></label><label>Weitere gesperrte Kürzel<input name="extra_denied_keypresses" placeholder="CTRL+P, ALT+TAB"></label><label>Erlaubte Kürzel (optional)<input name="allowed_keypresses" placeholder="Leer: normale Kürzel erlaubt"></label></div><button type="submit" class="secondary">Konfiguration speichern</button><span id="settingsresult"></span></form></section>15<section><h2>Sitzungsprotokoll</h2><p>Alle geplanten und bestätigten Eingaben werden lokal protokolliert. Texte können vertrauliche Inhalte enthalten.</p><pre id="logs"></pre></section></div></main><footer>Nur privat und experimentell · Bau, Download und Nutzung auf eigene Verantwortung.<br>Monitorbild über Hardware-Passthrough · Software-Stopp und physische Stoppeinrichtung ergänzen einander; keine zertifizierte Not-Halt-Funktion. Haftung und Gewährleistung nur im gesetzlich zulässigen Umfang eingeschränkt; zwingende Rechte bleiben unberührt.</footer></body></html>