feat: PostSessionStart hook for auto-start on budget OK
Adds bin/session-start-hook.sh as a SessionStart hook that checks API budget on session start and launches the autoresearch tmux session in background if budget threshold is met. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Executable
+34
@@ -0,0 +1,34 @@
|
||||
#!/usr/bin/env bash
|
||||
# PostSessionStart hook: auto-start autoresearch when API budget is sufficient.
|
||||
# Runs async — must exit quickly.
|
||||
set -euo pipefail
|
||||
|
||||
CONFIG="${HOME}/.claude/autoresearch.yaml"
|
||||
SESSION="autoresearch"
|
||||
LOG="${HOME}/.claude/autoresearch/hook.log"
|
||||
|
||||
# Only run if config exists
|
||||
[[ -f "$CONFIG" ]] || exit 0
|
||||
|
||||
# Skip if autoresearch tmux session already running
|
||||
tmux has-session -t "$SESSION" 2>/dev/null && exit 0
|
||||
|
||||
# Read budget limit from config
|
||||
BUDGET_LIMIT=$(python3 -c "
|
||||
import yaml, os, sys
|
||||
try:
|
||||
cfg = yaml.safe_load(open('${CONFIG}'))
|
||||
print(cfg.get('token_threshold', {}).get('api_budget_usd', 5.0))
|
||||
except Exception:
|
||||
print(5.0)
|
||||
" 2>/dev/null || echo "5.0")
|
||||
|
||||
# Check budget (exits 0 = OK, 1 = low, or fails open)
|
||||
python3 "${HOME}/work/autoresearch/bin/check_budget.py" "$BUDGET_LIMIT" || exit 0
|
||||
|
||||
# Budget OK — start autoresearch session in background
|
||||
mkdir -p "$(dirname "$LOG")"
|
||||
nohup "${HOME}/work/autoresearch/bin/start.sh" start \
|
||||
>> "$LOG" 2>&1 &
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user