Spaces:
Running
Running
File size: 1,887 Bytes
26a284a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | #!/usr/bin/env python
import sys
import os
import json
from hook_utils import resolve_project, is_sdk_child, api_call
def main():
inject_context = os.environ.get("AGENTMEMORY_INJECT_CONTEXT") == "true"
if not inject_context:
return
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
tool_name = data.get("tool_name") or data.get("toolName")
if not isinstance(tool_name, str):
return
normalized_tool = tool_name.lower()
file_tools = ["edit", "write", "create", "read", "view", "glob", "grep"]
if normalized_tool not in file_tools:
return
raw_input = data.get("tool_input") or data.get("toolArgs") or {}
tool_input = raw_input if isinstance(raw_input, dict) else {}
files = []
file_keys = ["path", "file"] if normalized_tool == "grep" else ["file_path", "path", "file", "pattern"]
for key in file_keys:
val = tool_input.get(key)
if isinstance(val, str) and val.strip():
files.append(val.strip())
if not files:
return
terms = []
if normalized_tool in ["grep", "glob"]:
pattern = tool_input.get("pattern")
if isinstance(pattern, str) and pattern.strip():
terms.append(pattern.strip())
session_id = data.get("session_id") or data.get("sessionId") or "unknown"
project = data.get("project") or resolve_project(data.get("cwd"))
payload = {
"sessionId": session_id,
"files": files,
"terms": terms,
"toolName": tool_name,
"project": project
}
result = api_call("enrich", payload, timeout=2.0)
if result and result.get("context"):
sys.stdout.write(result["context"])
if __name__ == "__main__":
main()
|