- tmux som sanningskälla (agentoberoende, överlever omstart via adoption) - API: sessions, prompt, question/answer, keys, mode, config, shares, notify, events - frågedetektor testad mot riktiga agy 1.1.9-dumpar + mock - integrationstest: 26 tester i isolerad debian-container (scripts/run-integration.sh) - e2e-verifierad mot riktig agy (trust-fråga -> svar -> prompt) - .gitea/workflows/helmd-release.yaml -> rullande helmd-latest (x64+arm64) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
65 lines
1.4 KiB
Bash
Executable File
65 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
# mock-agent — låtsas-agent för helmd:s integrationstester.
|
|
# Härmar agy-TUI:ns två frågetyper:
|
|
# 1) onumrerad lista med ">"-markör som navigeras med pilarna + Enter
|
|
# 2) numrerad lista som väljs med sifferknapp
|
|
set -u
|
|
|
|
echo "MOCK AGENT v1"
|
|
echo
|
|
|
|
# --- Fas 1: trust-fråga (onumrerad, pil-navigerad) --------------------
|
|
SEL=0
|
|
draw_trust() {
|
|
echo
|
|
echo "Do you trust this test arena?"
|
|
if [ "$SEL" = 0 ]; then
|
|
echo "> Yes, run the test"
|
|
echo " No, exit"
|
|
else
|
|
echo " Yes, run the test"
|
|
echo "> No, exit"
|
|
fi
|
|
echo " ↑/↓ Navigate · enter Confirm"
|
|
}
|
|
draw_trust
|
|
while true; do
|
|
IFS= read -rsn1 c
|
|
if [ "$c" = $'\e' ]; then
|
|
read -rsn2 -t 1 rest || rest=""
|
|
case "$rest" in
|
|
"[B") SEL=1; draw_trust ;;
|
|
"[A") SEL=0; draw_trust ;;
|
|
esac
|
|
elif [ -z "$c" ]; then # Enter
|
|
break
|
|
fi
|
|
done
|
|
echo "TRUST_ANSWER=$SEL"
|
|
echo
|
|
|
|
# --- Fas 2: promptloop -------------------------------------------------
|
|
while true; do
|
|
printf "> "
|
|
IFS= read -r line || break
|
|
case "$line" in
|
|
ask-numbered)
|
|
echo
|
|
echo "Do you want to proceed?"
|
|
echo "> 1. Yes"
|
|
echo " 2. Yes, and always allow"
|
|
echo " 3. No"
|
|
echo " ↑/↓ Navigate · enter Confirm"
|
|
IFS= read -rsn1 d
|
|
echo "PICKED=$d"
|
|
;;
|
|
exit)
|
|
echo "BYE"
|
|
exit 0
|
|
;;
|
|
*)
|
|
echo "ECHO: $line"
|
|
;;
|
|
esac
|
|
done
|