Initial SOC memory POC implementation
This commit is contained in:
48
integrations/hermes/soc-memory-poc/scripts/generate_case_note.py
Executable file
48
integrations/hermes/soc-memory-poc/scripts/generate_case_note.py
Executable file
@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env python3
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
DEFAULT_POC_ROOT = os.environ.get("SOC_MEMORY_POC_ROOT", "/home/tom/soc_memory_poc")
|
||||
|
||||
|
||||
def main() -> None:
|
||||
parser = argparse.ArgumentParser(description="Generate an Obsidian case note from a normalized SOC case JSON file.")
|
||||
parser.add_argument("--input", required=True, help="Normalized case JSON path")
|
||||
parser.add_argument("--output-dir", default=None, help="Override Obsidian output directory")
|
||||
parser.add_argument("--enrich-from-openviking", action="store_true", help="Enrich with OpenViking recommendations")
|
||||
parser.add_argument("--top-k", type=int, default=3, help="Recommendation count per type")
|
||||
parser.add_argument("--poc-root", default=DEFAULT_POC_ROOT, help="SOC Memory POC root")
|
||||
args = parser.parse_args()
|
||||
|
||||
poc_root = Path(args.poc_root)
|
||||
script_path = poc_root / "skills" / "summarize_case_skill" / "generate_case_note.py"
|
||||
if not script_path.exists():
|
||||
raise SystemExit(f"SOC Memory POC summarize script not found: {script_path}")
|
||||
|
||||
output_dir = args.output_dir or str(poc_root / "obsidian-vault" / "02_Cases")
|
||||
cmd = [
|
||||
sys.executable,
|
||||
str(script_path),
|
||||
"--input",
|
||||
args.input,
|
||||
"--output-dir",
|
||||
output_dir,
|
||||
"--top-k",
|
||||
str(args.top_k),
|
||||
]
|
||||
if args.enrich_from_openviking:
|
||||
cmd.append("--enrich-from-openviking")
|
||||
|
||||
env = os.environ.copy()
|
||||
existing = env.get("PYTHONPATH", "")
|
||||
env["PYTHONPATH"] = str(poc_root) + (os.pathsep + existing if existing else "")
|
||||
subprocess.run(cmd, check=True, env=env)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user