David Prince
production: clean source snapshot — no history bloat
71b4454
Raw
History Blame Contribute Delete
2.11 kB
from sqlalchemy import Column, Integer, String, DateTime, Text, JSON, ForeignKey, Float
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship
from datetime import datetime
Base = declarative_base()
class LongTermMemory(Base):
__tablename__ = "long_term_memory"
id = Column(Integer, primary_key=True)
memory_id = Column(String(64), unique=True, nullable=False)
agent_id = Column(String(64), nullable=False)
key = Column(String(128), nullable=False)
value = Column(JSON, nullable=False)
importance = Column(Float, default=0.5)
created_at = Column(DateTime, default=datetime.utcnow)
updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
expires_at = Column(DateTime, nullable=True)
class SessionMemory(Base):
__tablename__ = "session_memory"
id = Column(Integer, primary_key=True)
session_id = Column(String(64), nullable=False)
agent_id = Column(String(64), nullable=False)
turn_number = Column(Integer, default=0)
role = Column(String(32), nullable=False)
content = Column(Text, nullable=False)
meta = Column(JSON, default={}) # renamed from metadata
created_at = Column(DateTime, default=datetime.utcnow)
class WorkspaceMemory(Base):
__tablename__ = "workspace_memory"
id = Column(Integer, primary_key=True)
workspace_id = Column(String(64), nullable=False)
agent_id = Column(String(64), nullable=False)
key = Column(String(128), nullable=False)
value = Column(JSON, nullable=False)
version = Column(Integer, default=1)
updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
class ConversationSummary(Base):
__tablename__ = "conversation_summaries"
id = Column(Integer, primary_key=True)
session_id = Column(String(64), nullable=False)
agent_id = Column(String(64), nullable=False)
summary = Column(Text, nullable=False)
start_turn = Column(Integer, default=0)
end_turn = Column(Integer, default=0)
created_at = Column(DateTime, default=datetime.utcnow)