File size: 1,110 Bytes
58974f8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from .base_memory import BaseMemory

from dataclasses import dataclass

@dataclass
class Task:
    def __init__(self, name: str, description: str):
        self.name = name
        self.description = description
        
class TaskChain:
    def __init__(self, tasks: list):
        self.tasks = tasks
    def append(self, task: Task):
        self.tasks.append(task)
    def clear(self):
        self.tasks = []
    def __str__(self):
        return "\n".join([f"{task.name}: {task.description}" for task in self.tasks])

class PlanMemory(BaseMemory):
    def __init__(self, initial_message, initial_task) -> None:
        self.messages = initial_message if initial_message else []
        self.tasks = TaskChain(initial_task) if initial_task else TaskChain([])
    
    def append(self, message: str) -> None:
        self.messages.append(message)
        #todo: parse message for tasks & add to task chain
        self.tasks.append(Task("Task", message))
    
    def clear(self) -> None:
        self.messages = []
    
    def load(self) -> None:
        pass
    
    def save(self) -> None:
        pass