#!/usr/bin/env bash
set -euo pipefail

if [[ $# -lt 2 ]]; then
  cat >&2 <<'USAGE'
Usage:
  jarvis-code-worker <repo-path> <bounded-task>

Examples:
  jarvis-code-worker /home/agent/projects/FamilyDashboard "Add a focused unit test for the date formatter only"
  jarvis-code-worker . "Fix the TypeScript error in src/foo.ts; do not touch unrelated files"
USAGE
  exit 2
fi

REPO="$1"
TASK="$2"
cd "$REPO"

STATUS="$(git status --short 2>/dev/null || true)"
BRANCH="$(git branch --show-current 2>/dev/null || true)"

PROMPT=$(cat <<EOF
Du bist der JARVIS Code Worker (GPT 5.3 Codex-Spark) für kleine, begrenzte Coding-Aufgaben.

Repo: $REPO
Branch: $BRANCH
Aufgabe: $TASK

Governance:
- GPT 5.5/JARVIS bleibt finaler Entscheider und verifiziert deine Änderungen.
- Du darfst lokal Dateien ändern, aber keine Commits, Pushes, Deploys, Releases oder produktive DB-/Live-Aktionen ausführen.
- Keine Secrets lesen/ausgeben/verändern.
- Wenn Aufgabe riskant/unklar/gross ist: nicht blind arbeiten, sondern STOP mit Rückfrage im Abschlussbericht.
- Änderungen minimal halten; keine unrelated refactors.

Aktueller git status:
$STATUS

Erwartete Abschlussantwort:
## Ergebnis
## Geänderte Dateien
## Checks
## Offene Risiken / Rückfragen
## Empfehlung an GPT 5.5/JARVIS
EOF
)

hermes --profile code-worker chat --toolsets terminal,file --max-turns 60 -q "$PROMPT"
