Add SQLAlchemy models for the Agent Memory System: - WorkingMemory: Key-value storage with TTL for active sessions - Episode: Experiential memories from task executions - Fact: Semantic knowledge triples with confidence scores - Procedure: Learned skills and procedures with success tracking - MemoryConsolidationLog: Tracks consolidation jobs between memory tiers Create enums for memory system: - ScopeType: global, project, agent_type, agent_instance, session - EpisodeOutcome: success, failure, partial - ConsolidationType: working_to_episodic, episodic_to_semantic, etc. - ConsolidationStatus: pending, running, completed, failed Add Alembic migration (0005) for all memory tables with: - Foreign key relationships to projects, agent_instances, agent_types - Comprehensive indexes for query patterns - Unique constraints for key lookups and triple uniqueness - Vector embedding column placeholders (Text fallback until pgvector enabled) Fix timezone-naive datetime.now() in types.py TaskState (review feedback) Includes 30 unit tests for models and enums. Closes #88 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
80 lines
1.7 KiB
Python
80 lines
1.7 KiB
Python
"""
|
|
Models package initialization.
|
|
Imports all models to ensure they're registered with SQLAlchemy.
|
|
"""
|
|
|
|
# First import Base to avoid circular imports
|
|
from app.core.database import Base
|
|
|
|
from .base import TimestampMixin, UUIDMixin
|
|
|
|
# Memory system models
|
|
from .memory import (
|
|
ConsolidationStatus,
|
|
ConsolidationType,
|
|
Episode,
|
|
EpisodeOutcome,
|
|
Fact,
|
|
MemoryConsolidationLog,
|
|
Procedure,
|
|
ScopeType,
|
|
WorkingMemory,
|
|
)
|
|
|
|
# OAuth models (client mode - authenticate via Google/GitHub)
|
|
from .oauth_account import OAuthAccount
|
|
|
|
# OAuth provider models (server mode - act as authorization server for MCP)
|
|
from .oauth_authorization_code import OAuthAuthorizationCode
|
|
from .oauth_client import OAuthClient
|
|
from .oauth_provider_token import OAuthConsent, OAuthProviderRefreshToken
|
|
from .oauth_state import OAuthState
|
|
from .organization import Organization
|
|
|
|
# Syndarix domain models
|
|
from .syndarix import (
|
|
AgentInstance,
|
|
AgentType,
|
|
Issue,
|
|
Project,
|
|
Sprint,
|
|
)
|
|
|
|
# Import models
|
|
from .user import User
|
|
from .user_organization import OrganizationRole, UserOrganization
|
|
from .user_session import UserSession
|
|
|
|
__all__ = [
|
|
# Syndarix models
|
|
"AgentInstance",
|
|
"AgentType",
|
|
"Base",
|
|
# Memory models
|
|
"ConsolidationStatus",
|
|
"ConsolidationType",
|
|
"Episode",
|
|
"EpisodeOutcome",
|
|
"Fact",
|
|
"Issue",
|
|
"MemoryConsolidationLog",
|
|
"OAuthAccount",
|
|
"OAuthAuthorizationCode",
|
|
"OAuthClient",
|
|
"OAuthConsent",
|
|
"OAuthProviderRefreshToken",
|
|
"OAuthState",
|
|
"Organization",
|
|
"OrganizationRole",
|
|
"Procedure",
|
|
"Project",
|
|
"ScopeType",
|
|
"Sprint",
|
|
"TimestampMixin",
|
|
"UUIDMixin",
|
|
"User",
|
|
"UserOrganization",
|
|
"UserSession",
|
|
"WorkingMemory",
|
|
]
|