agentmemory-python / plugin /scripts /post_tool_failure.py
Yash030's picture
feat: add Python plugin system, multi-agent connect CLI, and MCP tool expansions
26a284a
#!/usr/bin/env python
import sys
import json
import time
from datetime import datetime
from hook_utils import resolve_project, is_sdk_child, api_call_bg
def main():
try:
input_data = sys.stdin.read()
if not input_data:
return
data = json.loads(input_data)
except Exception:
return
if is_sdk_child(data):
return
if data.get("is_interrupt") or data.get("isInterrupt"):
return
session_id = data.get("session_id") or data.get("sessionId") or "unknown"
tool_name = data.get("tool_name") or data.get("toolName")
tool_input = data.get("tool_input") or data.get("toolArgs")
error = data.get("error") or data.get("errorMessage")
def limit_str(val):
if not isinstance(val, str):
val = json.dumps(val or "")
return val[:4000]
payload = {
"hookType": "post_tool_failure",
"sessionId": session_id,
"project": resolve_project(data.get("cwd")),
"cwd": data.get("cwd") or "",
"timestamp": datetime.utcnow().isoformat() + "Z",
"data": {
"tool_name": tool_name,
"tool_input": limit_str(tool_input),
"error": limit_str(error)
}
}
api_call_bg("observe", payload)
# Allow background request to be flushed
time.sleep(0.5)
if __name__ == "__main__":
main()