Files
potaserandClaude Opus 5 842455dd78 Add gfa_core/mas/memory module
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-07 09:52:43 +08:00

47 lines
1.0 KiB
Python
Executable File

from abc import ABC, abstractmethod
from dataclasses import dataclass, field
from datetime import datetime
from typing import Any, Generic, TypeVar
T = TypeVar("T")
@dataclass
class MemoryEntry(Generic[T]):
key: str
value: T
created_at: datetime = field(default_factory=datetime.now)
updated_at: datetime = field(default_factory=datetime.now)
ttl: int | None = None
metadata: dict[str, Any] = field(default_factory=dict)
@dataclass
class SearchResult:
key: str
value: Any
score: float
metadata: dict[str, Any] = field(default_factory=dict)
class BaseMemory(ABC):
@abstractmethod
async def store(self, key: str, value: Any, ttl: int | None = None) -> None:
pass
@abstractmethod
async def retrieve(self, key: str) -> Any | None:
pass
@abstractmethod
async def delete(self, key: str) -> bool:
pass
@abstractmethod
async def exists(self, key: str) -> bool:
pass
@abstractmethod
async def clear(self) -> None:
pass