From 9928d5269bf82adb5bb039aee9747152b8a4a431 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Thu, 22 Aug 2024 12:33:32 -0700 Subject: [PATCH] refactor: Move ChatChunks class to its own file --- aider/coders/chat_chunks.py | 53 +++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/aider/coders/chat_chunks.py b/aider/coders/chat_chunks.py index e69de29bb..9d1360604 100644 --- a/aider/coders/chat_chunks.py +++ b/aider/coders/chat_chunks.py @@ -0,0 +1,53 @@ +from dataclasses import dataclass, field +from typing import List + + +@dataclass +class ChatChunks: + system: List = field(default_factory=list) + examples: List = field(default_factory=list) + done: List = field(default_factory=list) + repo: List = field(default_factory=list) + readonly_files: List = field(default_factory=list) + chat_files: List = field(default_factory=list) + cur: List = field(default_factory=list) + reminder: List = field(default_factory=list) + + def all_messages(self): + return ( + self.system + + self.examples + + self.readonly_files + + self.repo + + self.done + + self.chat_files + + self.cur + + self.reminder + ) + + def add_cache_control_headers(self): + if self.examples: + self.add_cache_control(self.examples) + else: + self.add_cache_control(self.system) + + if self.readonly_files: + self.add_cache_control(self.readonly_files) + else: + self.add_cache_control(self.repo) + + self.add_cache_control(self.chat_files) + + def add_cache_control(self, messages): + if not messages: + return + + content = messages[-1]["content"] + if type(content) is str: + content = dict( + type="text", + text=content, + ) + content["cache_control"] = {"type": "ephemeral"} + + messages[-1]["content"] = [content]