From 75d8982b2397179ac1160139e7dc4e861e7c7def Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Thu, 5 Dec 2024 20:35:02 -0800 Subject: [PATCH] feat: add auto copy context feature with empty implementation --- aider/coders/base_coder.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/aider/coders/base_coder.py b/aider/coders/base_coder.py index a2adc04f6..e1fe9316e 100755 --- a/aider/coders/base_coder.py +++ b/aider/coders/base_coder.py @@ -286,6 +286,7 @@ class Coder: detect_urls=True, ignore_mentions=None, file_watcher=None, + auto_copy_context=False, ): # Fill in a dummy Analytics if needed, but it is never .enable()'d self.analytics = analytics if analytics is not None else Analytics() @@ -297,6 +298,8 @@ class Coder: self.rejected_urls = set() self.abs_root_path_cache = {} + self.auto_copy_context = auto_copy_context + self.ignore_mentions = ignore_mentions if not self.ignore_mentions: self.ignore_mentions = set() @@ -792,9 +795,9 @@ class Coder: self.io.user_input(with_message) self.run_one(with_message, preproc) return self.partial_response_content - while True: try: + self.copy_context() user_message = self.get_input() self.run_one(user_message, preproc) self.show_undo_hint() @@ -803,6 +806,10 @@ class Coder: except EOFError: return + def copy_context(self): + # run cmd_copy_context if self.auto-copy-context ai! + pass + def get_input(self): inchat_files = self.get_inchat_relative_files() read_only_files = [self.get_rel_fname(fname) for fname in self.abs_read_only_fnames] @@ -1114,7 +1121,10 @@ class Coder: # add the reminder anyway total_tokens = 0 - final = chunks.cur[-1] + if chunks.cur: + final = chunks.cur[-1] + else: + final = None max_input_tokens = self.main_model.info.get("max_input_tokens") or 0 # Add the reminder prompt if we still have room to include it. @@ -1125,7 +1135,7 @@ class Coder: ): if self.main_model.reminder == "sys": chunks.reminder = reminder_message - elif self.main_model.reminder == "user" and final["role"] == "user": + elif self.main_model.reminder == "user" and final and final["role"] == "user": # stuff it into the user message new_content = ( final["content"]