#!/bin/bash
# Pre Tool Use Hook for Claude Code Monitor
# Captures tool preparation events before execution

# Read JSON from stdin
INPUT=$(cat)

# Extract fields using jq
SESSION_ID=$(echo "$INPUT" | jq -r '.session_id // "unknown"')
TOOL_NAME=$(echo "$INPUT" | jq -r '.tool_name // null')
TOOL_INPUT=$(echo "$INPUT" | jq -c '.tool_input // {}')
TIMESTAMP=$(echo "$INPUT" | jq -r '.timestamp // (now | tonumber)')

# Build payload for backend
PAYLOAD=$(jq -n \
  --arg session_id "$SESSION_ID" \
  --arg event_type "PreToolUse" \
  --arg tool_name "$TOOL_NAME" \
  --argjson tool_input "$TOOL_INPUT" \
  --arg timestamp "$TIMESTAMP" \
  '{
    session_id: $session_id,
    event_type: $event_type,
    tool_name: $tool_name,
    tool_input: $tool_input,
    timestamp: ($timestamp | tonumber)
  }')

# Send to backend API (asynchronous, non-blocking)
curl -X POST \
  -H "Content-Type: application/json" \
  -d "$PAYLOAD" \
  http://localhost:8000/api/events \
  --max-time 2 \
  --silent \
  --show-error \
  > /dev/null 2>&1 &

# Exit immediately (don't wait for curl)
exit 0
