#!/bin/bash
# Hook: post-tool-use
# Updates efficiency log with correct session_id for Organon MCP tools
# Logs Read tool efficiency metrics

# Read hook data from stdin
HOOK_DATA=$(cat)

# Pass through the hook data (required for PostToolUse hooks)
echo "$HOOK_DATA"

# Extract tool name and session ID
TOOL_NAME=$(echo "$HOOK_DATA" | python3 -c "import sys, json; data=json.load(sys.stdin); print(data.get('tool_name', ''))" 2>/dev/null)
SESSION_ID=$(echo "$HOOK_DATA" | python3 -c "import sys, json; data=json.load(sys.stdin); print(data.get('session_id', 'unknown'))" 2>/dev/null)

# Handle Read tool efficiency logging
if [ "$TOOL_NAME" = "Read" ]; then
    echo "$HOOK_DATA" | python3 -c "
import sys
import json
sys.path.insert(0, 'src')

data = json.load(sys.stdin)
from organon.metrics.read_efficiency import log_read_tool_efficiency
log_read_tool_efficiency(data)
" 2>/dev/null
fi

# List of Organon MCP tools that log efficiency
EFFICIENCY_TOOLS=(
    "mcp__organon__query_workflows"
    "mcp__organon__query_tasks"
    "mcp__organon__get_all_sprints_summary"
    "mcp__organon__get_current_sprint_context"
    "mcp__organon__list_sprints"
    "mcp__organon__parse_sprint_plan"
    "mcp__organon__get_executable_tasks"
    "mcp__organon__analyze_workflow_logs"
    "mcp__organon__analyze_conversations"
    "mcp__organon__generate_structure"
    "mcp__organon__update_structure"
    "mcp__organon__update_task_status"
)

# Check if this is an efficiency-logging tool
IS_EFFICIENCY_TOOL=false
for tool in "${EFFICIENCY_TOOLS[@]}"; do
    if [ "$TOOL_NAME" = "$tool" ]; then
        IS_EFFICIENCY_TOOL=true
        break
    fi
done

# If this is an efficiency tool, update the last log entry with correct session_id
if [ "$IS_EFFICIENCY_TOOL" = "true" ] && [ -n "$SESSION_ID" ]; then
    python3 -c "
import sys
sys.path.insert(0, 'src')
from organon.metrics.efficiency import EfficiencyTracker
EfficiencyTracker.update_last_session_id('$SESSION_ID')
" 2>/dev/null
fi
