Files
claw-code/src/transcript.py

24 lines
585 B
Python

from __future__ import annotations
from dataclasses import dataclass, field
@dataclass
class TranscriptStore:
entries: list[str] = field(default_factory=list)
flushed: bool = False
def append(self, entry: str) -> None:
self.entries.append(entry)
self.flushed = False
def compact(self, keep_last: int = 10) -> None:
if len(self.entries) > keep_last:
self.entries[:] = self.entries[-keep_last:]
def replay(self) -> tuple[str, ...]:
return tuple(self.entries)
def flush(self) -> None:
self.flushed = True