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()