Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
39 lines
2.0 KiB
Python
39 lines
2.0 KiB
Python
from sqlalchemy import Column, DateTime, ForeignKey, JSON, String, Text
|
|
|
|
from app.models.base import BaseModel, utc_now
|
|
|
|
|
|
class SessionRetrospectiveRecord(BaseModel):
|
|
__tablename__ = "session_retrospectives"
|
|
|
|
user_id = Column(String(36), ForeignKey("users.id"), nullable=False, index=True)
|
|
conversation_id = Column(String(36), ForeignKey("conversations.id"), nullable=False, index=True)
|
|
request_message_id = Column(String(36), ForeignKey("messages.id"), nullable=True, index=True)
|
|
response_message_id = Column(String(36), ForeignKey("messages.id"), nullable=True, index=True)
|
|
query_text = Column(Text, nullable=False)
|
|
final_response = Column(Text, nullable=True)
|
|
summary_text = Column(Text, nullable=False)
|
|
task_type = Column(String(64), nullable=True, index=True)
|
|
execution_mode = Column(String(32), nullable=True, index=True)
|
|
primary_agent = Column(String(64), nullable=True)
|
|
verification_status = Column(String(32), nullable=True)
|
|
verification_summary = Column(Text, nullable=True)
|
|
skill_names = Column(JSON, default=list, nullable=False)
|
|
evidence = Column(JSON, default=list, nullable=False)
|
|
task_refs = Column(JSON, default=list, nullable=False)
|
|
payload = Column(JSON, default=dict, nullable=False)
|
|
recorded_at = Column(DateTime, default=utc_now, nullable=False)
|
|
|
|
|
|
class LearningArtifactRecord(BaseModel):
|
|
__tablename__ = "learning_artifacts"
|
|
|
|
user_id = Column(String(36), ForeignKey("users.id"), nullable=False, index=True)
|
|
conversation_id = Column(String(36), ForeignKey("conversations.id"), nullable=False, index=True)
|
|
retrospective_id = Column(String(36), ForeignKey("session_retrospectives.id"), nullable=True, index=True)
|
|
artifact_type = Column(String(32), nullable=False, index=True)
|
|
artifact_key = Column(String(128), nullable=True, index=True)
|
|
summary_text = Column(Text, nullable=False)
|
|
payload = Column(JSON, default=dict, nullable=False)
|
|
recorded_at = Column(DateTime, default=utc_now, nullable=False)
|