From 385abc6b10f0f47cfeb9ff651b5ac64b31b3e749 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Heath=20Dutton=F0=9F=95=B4=EF=B8=8F?= Date: Fri, 2 Jan 2026 12:17:02 -0500 Subject: [PATCH] fix(hookify): handle Write tool content in new_text field and add Update tool support --- plugins/hookify/core/rule_engine.py | 4 ++-- plugins/hookify/hooks/posttooluse.py | 2 +- plugins/hookify/hooks/pretooluse.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/hookify/core/rule_engine.py b/plugins/hookify/core/rule_engine.py index 8244c00591..df2957b8fa 100644 --- a/plugins/hookify/core/rule_engine.py +++ b/plugins/hookify/core/rule_engine.py @@ -232,12 +232,12 @@ def _extract_field(self, field: str, tool_name: str, if field == 'command': return tool_input.get('command', '') - elif tool_name in ['Write', 'Edit']: + elif tool_name in ['Write', 'Edit', 'Update']: if field == 'content': # Write uses 'content', Edit has 'new_string' return tool_input.get('content') or tool_input.get('new_string', '') elif field == 'new_text' or field == 'new_string': - return tool_input.get('new_string', '') + return tool_input.get('new_string') or tool_input.get('content', '') elif field == 'old_text' or field == 'old_string': return tool_input.get('old_string', '') elif field == 'file_path': diff --git a/plugins/hookify/hooks/posttooluse.py b/plugins/hookify/hooks/posttooluse.py index a9e12cc797..cc91237742 100755 --- a/plugins/hookify/hooks/posttooluse.py +++ b/plugins/hookify/hooks/posttooluse.py @@ -38,7 +38,7 @@ def main(): event = None if tool_name == 'Bash': event = 'bash' - elif tool_name in ['Edit', 'Write', 'MultiEdit']: + elif tool_name in ['Edit', 'Write', 'MultiEdit', 'Update']: event = 'file' # Load rules diff --git a/plugins/hookify/hooks/pretooluse.py b/plugins/hookify/hooks/pretooluse.py index f265c277e3..c7c91185c3 100755 --- a/plugins/hookify/hooks/pretooluse.py +++ b/plugins/hookify/hooks/pretooluse.py @@ -45,7 +45,7 @@ def main(): event = None if tool_name == 'Bash': event = 'bash' - elif tool_name in ['Edit', 'Write', 'MultiEdit']: + elif tool_name in ['Edit', 'Write', 'MultiEdit', 'Update']: event = 'file' # Load rules