""" Fieldkit blueprint — killswitch, dead man's switch, status dashboard. """ from flask import Blueprint, flash, redirect, render_template, request, url_for bp = Blueprint("fieldkit", __name__, url_prefix="/fieldkit") @bp.route("/") def status(): """Fieldkit status dashboard — all monitors and system health.""" from soosef.fieldkit.deadman import DeadmanSwitch deadman = DeadmanSwitch() return render_template( "fieldkit/status.html", deadman_status=deadman.status(), ) @bp.route("/killswitch", methods=["GET", "POST"]) def killswitch(): """Killswitch arming and firing UI.""" if request.method == "POST": action = request.form.get("action") if action == "fire" and request.form.get("confirm") == "CONFIRM-PURGE": from soosef.fieldkit.killswitch import PurgeScope, execute_purge result = execute_purge(PurgeScope.ALL, reason="web_ui") flash( f"Purge executed: {len(result.steps_completed)} steps completed, " f"{len(result.steps_failed)} failed", "warning" if result.steps_failed else "success", ) return redirect(url_for("fieldkit.status")) return render_template("fieldkit/killswitch.html") @bp.route("/deadman/checkin", methods=["POST"]) def deadman_checkin(): """Record a dead man's switch check-in.""" from soosef.fieldkit.deadman import DeadmanSwitch deadman = DeadmanSwitch() deadman.checkin() flash("Check-in recorded.", "success") return redirect(url_for("fieldkit.status"))