npx claudepluginhub sethdford/sre-latency-monitorDefined in hooks/hooks.json
{
"PreToolUse": [
{
"hooks": [
{
"type": "command",
"command": "INPUT=$(cat); TID=$(echo \"$INPUT\" | jq -r '.tool_use_id // \"unknown\"'); TNAME=$(echo \"$INPUT\" | jq -r '.tool_name // \"unknown\"'); NOW=$(perl -MTime::HiRes=time -e 'printf \"%.6f\", time()'); echo \"$NOW\" > \"/tmp/sre-latency-tool-start-$TID\" 2>/dev/null; TS_MS=$(echo \"$NOW * 1000\" | bc 2>/dev/null | cut -d'.' -f1); printf '{\"event\":\"pre_tool\",\"tool_name\":\"%s\",\"tool_use_id\":\"%s\",\"ts_ms\":%s}\\n' \"$TNAME\" \"$TID\" \"$TS_MS\" >> /tmp/sre-latency-monitor.jsonl 2>/dev/null; echo '{}'"
}
]
}
],
"PostToolUse": [
{
"hooks": [
{
"type": "command",
"async": true,
"command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/log_tool_latency.sh"
}
]
}
],
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "LOCK=/tmp/sre-latency-session.lock; if [ -f \"$LOCK\" ] && [ \"$(cat $LOCK 2>/dev/null)\" = \"$(date -u +%Y-%m-%dT%H:%M)\" ]; then echo '{\"additionalContext\":\"SRE Latency Monitor active.\"}'; exit 0; fi; date -u +%Y-%m-%dT%H:%M > \"$LOCK\"; rm -f /tmp/sre-latency-tool-start-* 2>/dev/null; mv /tmp/sre-latency-monitor.jsonl /tmp/sre-latency-monitor.prev.jsonl 2>/dev/null; PROVIDER=\"anthropic-direct\"; [ -n \"$CLAUDE_CODE_USE_BEDROCK\" ] && PROVIDER=\"aws-bedrock\"; NODE_VER=$(node --version 2>/dev/null || echo unknown); AWS_VER=$(aws --version 2>/dev/null | head -1 || echo not-installed); TS_MS=$(perl -MTime::HiRes=time -e 'printf \"%.0f\", time()*1000'); printf '{\"event\":\"session_start\",\"timestamp\":\"%s\",\"ts_ms\":%s,\"provider\":\"%s\",\"node_version\":\"%s\",\"aws_cli_version\":\"%s\"}\\n' \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\" \"$TS_MS\" \"$PROVIDER\" \"$NODE_VER\" \"$AWS_VER\" > /tmp/sre-latency-monitor.jsonl 2>/dev/null; echo '{\"additionalContext\":\"SRE Latency Monitor active. Provider: '\"$PROVIDER\"'. Use /sre-latency:benchmark or /sre-latency:http-trace.\"}'",
"statusMessage": "Initializing SRE Latency Monitor"
}
]
}
]
}"{\"riskFlags\": {\"touchesBash\": false, \"matchAllTools\": true, \"touchesFileWrites\": false}, \"typeStats\": {\"command\": 3}, \"eventStats\": {\"PreToolUse\": 1, \"PostToolUse\": 1, \"SessionStart\": 1}, \"originCounts\": {\"absolutePaths\": 0, \"pluginScripts\": 1, \"projectScripts\": 0}, \"timeoutStats\": {\"commandsWithoutTimeout\": 3}}"