2026-03-13 14:10:13 +08:00
|
|
|
from __future__ import annotations
|
|
|
|
|
|
2026-03-23 01:20:27 +08:00
|
|
|
from datetime import datetime
|
|
|
|
|
from enum import Enum
|
|
|
|
|
from typing import Any, ClassVar, Literal
|
|
|
|
|
from uuid import UUID
|
2026-03-13 14:10:13 +08:00
|
|
|
|
2026-03-23 01:20:27 +08:00
|
|
|
from pydantic import BaseModel, ConfigDict, Field
|
2026-03-13 14:10:13 +08:00
|
|
|
|
|
|
|
|
|
2026-03-23 01:20:27 +08:00
|
|
|
class MemoryType(str, Enum):
|
|
|
|
|
USER = "user"
|
|
|
|
|
WORK = "work"
|
2026-03-13 14:10:13 +08:00
|
|
|
|
2026-03-23 01:20:27 +08:00
|
|
|
|
|
|
|
|
class MemorySource(str, Enum):
|
|
|
|
|
MANUAL = "manual"
|
|
|
|
|
AGENT = "agent"
|
|
|
|
|
IMPORTED = "imported"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class MemoryStatus(str, Enum):
|
|
|
|
|
ACTIVE = "active"
|
|
|
|
|
DISABLED = "disabled"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class MemoryModel(BaseModel):
|
|
|
|
|
model_config: ClassVar[ConfigDict] = ConfigDict(
|
|
|
|
|
extra="forbid", from_attributes=True
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
id: UUID
|
|
|
|
|
owner_id: UUID
|
|
|
|
|
agent_id: UUID | None = None
|
|
|
|
|
memory_type: Literal["user", "work"]
|
|
|
|
|
title: str | None = None
|
|
|
|
|
content: dict[str, Any]
|
|
|
|
|
source: MemorySource
|
|
|
|
|
status: MemoryStatus
|
|
|
|
|
created_at: datetime
|
|
|
|
|
updated_at: datetime
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class MemoryContext(BaseModel):
|
|
|
|
|
model_config: ClassVar[ConfigDict] = ConfigDict(extra="forbid")
|
|
|
|
|
|
|
|
|
|
memory_type: MemoryType
|
|
|
|
|
source: MemorySource
|
|
|
|
|
title: str | None = None
|
|
|
|
|
content: dict[str, Any]
|
|
|
|
|
created_at: datetime
|
|
|
|
|
updated_at: datetime
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class MemoryListResponse(BaseModel):
|
|
|
|
|
model_config: ClassVar[ConfigDict] = ConfigDict(extra="forbid")
|
|
|
|
|
|
|
|
|
|
owner_id: UUID
|
|
|
|
|
memories: list[MemoryContext] = Field(default_factory=list)
|
|
|
|
|
total: int
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
__all__ = [
|
|
|
|
|
"MemoryContext",
|
|
|
|
|
"MemoryListResponse",
|
|
|
|
|
"MemoryModel",
|
|
|
|
|
"MemorySource",
|
|
|
|
|
"MemoryStatus",
|
|
|
|
|
"MemoryType",
|
|
|
|
|
]
|