molecule-ai-plugin-molecule.../hooks/post-edit-audit.py
Hongming Wang bdb32b1893
Some checks failed
CI / validate (push) Failing after 0s
import from local vendored copy (2026-05-06)
2026-05-06 13:53:21 -07:00

39 lines
1.2 KiB
Python
Executable File

#!/usr/bin/env python3
"""PostToolUse:Edit/Write — append one-line audit record to .claude/audit.jsonl."""
import datetime as dt
import json
import os
import sys
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from _lib import read_input, warn_to_stderr # noqa
REPO = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
AUDIT = os.path.join(REPO, ".claude", "audit.jsonl")
def main() -> None:
data = read_input()
target = data.get("tool_input", {}).get("file_path") or data.get("tool_input", {}).get("notebook_path") or ""
if target.startswith(REPO + "/"):
target = target[len(REPO) + 1:]
record = {
"ts": dt.datetime.now(dt.timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ"),
"tool": data.get("tool_name", "unknown"),
"file": target,
"ok": data.get("tool_response", {}).get("success", True),
}
try:
with open(AUDIT, "a") as f:
f.write(json.dumps(record) + "\n")
except Exception:
pass # never block tool execution on audit-write failure
if __name__ == "__main__":
try:
main()
except Exception as e:
warn_to_stderr(f"[audit hook error] {e}")
sys.exit(0)