devvibes's picture
Initial commit
a4d1533
"""
💾 Haven Memory System
Conversation history and context management.
"""
import json
import os
from datetime import datetime
class MemoryJournal:
def __init__(self, filepath="haven_memory.json"):
self.filepath = filepath
self._ensure_file()
def _ensure_file(self):
if not os.path.exists(self.filepath):
with open(self.filepath, 'w') as f:
json.dump([], f)
def save_interaction(self, role, content, avatar=None):
try:
with open(self.filepath, 'r') as f:
history = json.load(f)
except:
history = []
entry = {
"timestamp": datetime.now().isoformat(),
"role": role,
"content": content,
"avatar": avatar
}
history.append(entry)
# Keep last 50 entries
if len(history) > 50:
history = history[-50:]
with open(self.filepath, 'w') as f:
json.dump(history, f, indent=2)
def load_history(self):
try:
with open(self.filepath, 'r') as f:
return json.load(f)
except:
return []
def get_context_string(self, limit=5):
history = self.load_history()[-limit:]
context = ""
for msg in history:
context += f"{msg['role'].upper()}: {msg['content']}\n"
return context