summaryrefslogtreecommitdiff
path: root/memory.py
diff options
context:
space:
mode:
Diffstat (limited to 'memory.py')
-rw-r--r--memory.py101
1 files changed, 0 insertions, 101 deletions
diff --git a/memory.py b/memory.py
deleted file mode 100644
index aab2064..0000000
--- a/memory.py
+++ /dev/null
@@ -1,101 +0,0 @@
-from dataclasses import dataclass, field
-from datetime import UTC, datetime
-from enum import Enum
-from uuid import UUID, uuid7
-
-
-class MemoryCategory(Enum):
- SEMANTIC = "semantic"
- EPISODIC = "episodic"
-
-
-@dataclass
-class LongTermMemory:
- id: UUID
- content: str
- category: MemoryCategory
- created_at: datetime
-
- @classmethod
- def create(cls, content: str, category: MemoryCategory) -> LongTermMemory:
- return cls(
- id=uuid7(), content=content, category=category, created_at=datetime.now(UTC)
- )
-
-
-class TaskStatus(Enum):
- ACTIVE = "active"
- PAUSED = "paused"
- COMPLETED = "completed"
-
-
-@dataclass
-class WorkingMemory:
- objective: str | None = None
- facts: list[str] = field(default_factory=list)
- notes: list[str] = field(default_factory=list)
- status: TaskStatus | None = None
-
- def __str__(self) -> str:
- parts: list[str] = []
-
- if self.objective:
- parts.append(f"Objective: {self.objective}")
-
- if self.status:
- parts.append(f"Status: {self.status.value}")
-
- if self.facts:
- parts.append("Facts:")
- parts.extend(f"- {fact}" for fact in self.facts)
-
- if self.notes:
- parts.append("Notes:")
- parts.extend(f"- {note}" for note in self.notes)
-
- return "\n".join(parts) if parts else "(empty)"
-
- def set_objective(self, objective: str) -> None:
- self.objective = objective
-
- def add_fact(self, fact: str) -> None:
- self.facts.append(fact)
-
- def remove_fact(self, fact: str) -> None:
- if fact in self.facts:
- self.facts.remove(fact)
-
- def add_note(self, note: str) -> None:
- self.notes.append(note)
-
- def remove_note(self, note: str) -> None:
- if note in self.notes:
- self.notes.remove(note)
-
- def set_status(self, status: TaskStatus):
- self.status = status
-
- def clear(self) -> None:
- self.objective = None
- self.status = None
- self.facts.clear()
- self.notes.clear()
-
- def start_task(self, objective: str) -> None:
- self.clear()
- self.objective = objective
- self.set_status(TaskStatus.ACTIVE)
-
- def pause_task(self) -> None:
- if self.status == TaskStatus.ACTIVE:
- self.set_status(TaskStatus.PAUSED)
-
- def resume_task(self) -> None:
- if self.status == TaskStatus.PAUSED:
- self.set_status(TaskStatus.ACTIVE)
-
- def complete_task(self) -> None:
- self.set_status(TaskStatus.COMPLETED)
-
- def end_task(self) -> None:
- self.clear()