34 lines
1.3 KiB
Python
34 lines
1.3 KiB
Python
import os, json, datetime
|
||
|
||
# optional daily rotation
|
||
LOG_PATH = os.getenv("REFLECTION_NOTE_PATH") or \
|
||
f"/app/logs/reflections_{datetime.date.today():%Y%m%d}.log"
|
||
|
||
def log_reflection(reflection: dict, user_prompt: str, draft: str, final: str, session_id: str | None = None):
|
||
"""Append a reflection entry to the reflections log."""
|
||
try:
|
||
# 1️⃣ Make sure log directory exists
|
||
os.makedirs(os.path.dirname(LOG_PATH), exist_ok=True)
|
||
|
||
# 2️⃣ Ensure session_id is stored
|
||
reflection["session_id"] = session_id or reflection.get("session_id", "unknown")
|
||
|
||
# 3️⃣ Build JSON entry
|
||
entry = {
|
||
"timestamp": datetime.datetime.now().isoformat(),
|
||
"session_id": reflection["session_id"],
|
||
"prompt": user_prompt,
|
||
"draft_output": draft[:500],
|
||
"final_output": final[:500],
|
||
"reflection": reflection,
|
||
}
|
||
|
||
# 4️⃣ Write it in pretty JSON, comma-delimited for easy reading
|
||
with open(LOG_PATH, "a", encoding="utf-8") as f:
|
||
f.write(json.dumps(entry, indent=2, ensure_ascii=False) + ",\n")
|
||
|
||
print(f"[Cortex] Logged reflection → {LOG_PATH}")
|
||
|
||
except Exception as e:
|
||
print(f"[Cortex] Failed to log reflection: {e}")
|