#!/bin/sh # CP2A2.2B — L1 Red Queen Worker: Tick-Wrapper (DEFINIERT, NICHT AUTOMATISCH AUSGEFUEHRT) # STRICTLY NON-AUTONOMOUS / NON-PRODUCTIVE. # # Dieser Wrapper fuehrt EINEN einzelnen `hermes -z` oneshot aus. # Er wird in CP2A2.2B NICHT automatisch gestartet (kein Scheduler, kein Loop). # Er dient als technische Foundation fuer spaetere Read-only-Autonomie: # externer Scheduler -> Gate-Evaluator /check -> ALLOW -> worker-tick.sh # # WICHTIG: In CP2A2.2B wird dieser Wrapper NUR als Datei bereitgestellt. # Er wird NICHT vom Entrypoint, NICHT von cron, NICHT von einem Loop aufgerufen. # Kein autonomer Tick darf in dieser Phase laufen. set -eu # --- Gate-Evaluator /check (read-only, keine Mutation) --- # Der Gate-Evaluator (CP2A1) entscheidet fail-closed. Aktuell: # GLOBAL_AUTONOMY=OFF, PRODUCTIVE_MUTATIONS=OFF, SAVE=OFF, DELETE=OFF, # EMERGENCY_STOP=ON -> AUTONOMOUS_TICK_START = DENY # Daher muss jeder produktive Tick-Start weiterhin DENY ergeben. # KEIN State aendern, um ALLOW zu testen. GATE_URL="${GATE_EVALUATOR_URL:-http://gate-evaluator:8080}" ACTION_CLASS="AUTONOMOUS_TICK_START" echo "[l1-worker] Gate-Check (read-only): ${GATE_URL}/check action_class=${ACTION_CLASS}" # Read-only HTTP-Check via Python (kein curl im Image noetig, kein Shell-Egress). # Der Worker hat KEINE mutierenden Credentials; der Check ist rein lesend. GATE_RESPONSE=$(python3 - </dev/null || echo "DENY") if [ "${DECISION}" = "ALLOW" ]; then echo "[l1-worker] WARNUNG: Gate ALLOW — aber CP2A2.2B ist NON-AUTONOMOUS. Tick wird NICHT ausgefuehrt." echo "[l1-worker] Autonome Mission Execution ist in dieser Phase verboten (HARD STOP)." exit 0 fi echo "[l1-worker] Gate-DECISION=${DECISION} (fail-closed). Kein autonomer Tick in CP2A2.2B." exit 0