jarvis-cloud / backend /memory /working_memory.py
Jarvis2345's picture
Upload folder using huggingface_hub
dcbc7d2 verified
Raw
History Blame Contribute Delete
892 Bytes
# backend/memory/working_memory.py
# In-memory store for current session only — cleared on session end
import time
class WorkingMemory:
def __init__(self):
self.messages: list[dict] = []
def add(self, role: str, content: str):
self.messages.append({"role": role, "content": content, "ts": time.time()})
def get_context_window(self, max_tokens=4000) -> list[dict]:
# trim from oldest until under max_tokens
# Crude approximation: 1 token ~= 4 chars
current_tokens = 0
window = []
for msg in reversed(self.messages):
msg_tokens = len(msg["content"]) // 4
if current_tokens + msg_tokens > max_tokens:
break
window.insert(0, msg)
current_tokens += msg_tokens
return window
def clear(self):
self.messages.clear()