diff --git a/pkg/agent/core.go b/pkg/agent/core.go index 546a6fa..ddbbb72 100644 --- a/pkg/agent/core.go +++ b/pkg/agent/core.go @@ -300,6 +300,13 @@ func NewAgentCore(cfg AgentCoreConfig) Core { } } +// Close releases resources for this session, including its tmpdir. +func (s *agentCore) Close() { + if s.sessionID != "" { + os.RemoveAll("/tmp/ollie/" + s.sessionID) //nolint:errcheck + } +} + func (s *agentCore) prompt() string { return fmt.Sprintf("[%s :: %s] ", s.loopcfg.Backend.Name(), s.agentName) } diff --git a/pkg/agent/types.go b/pkg/agent/types.go index 3a62daf..6d8dde0 100644 --- a/pkg/agent/types.go +++ b/pkg/agent/types.go @@ -93,6 +93,10 @@ type Core interface { // SystemPrompt returns the fully rendered system prompt for this session. SystemPrompt() string + + // Close releases resources associated with the session, including its + // temporary directory under /tmp/ollie/. + Close() } // PromptFIFO is a simple thread-safe FIFO for queued prompts.