This repository has been archived on 2026-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
anvillm/scripts/anvillm-hook

50 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
# Support two modes:
# 1. JSON on stdin (for wrapper scripts)
# 2. Event name as first argument (for direct invocation)
if [[ $# -gt 0 ]]; then
# Direct invocation: event name passed as argument
event="$1"
cwd="${2:-$PWD}"
else
# JSON mode: parse from stdin
TIMEOUT=$(command -v gtimeout 2>/dev/null || command -v timeout 2>/dev/null || :)
payload=$(${TIMEOUT:+"$TIMEOUT" 3} jq -c . 2>/dev/null || :)
[[ $payload ]] || exit 0
event=''
cwd=$PWD
IFS=$'\t' read -r _event _cwd < <(jq -r '"\(.hook_event_name // "")\t\(.cwd // "")"' <<<"$payload") || :
[[ ${_event:-} ]] && event=$_event
[[ ${_cwd:-} ]] && cwd=$_cwd
fi
# Helper for anvillm state transitions
anvillm_set_state() {
local agent_id=${AGENT_ID:-}
[[ $agent_id ]] && echo "$1" | 9p write "anvillm/$agent_id/state" 2>/dev/null || true
}
case "$event" in
agentSpawn)
cd "$cwd" 2>/dev/null || :
cat ~/.kiro/OUTPUT_PROTOCOL.md 2>/dev/null || :
cat ~/.kiro/SKILLS_PROMPT.md 2>/dev/null || :
;;
userPromptSubmit)
anvillm_set_state running
;;
preToolUse)
;;
postToolUse)
;;
stop)
anvillm_set_state idle
;;
*)
;;
esac