From d8e9da35d65cd668532b4d70a5f4788854e9571b Mon Sep 17 00:00:00 2001 From: Chad Phillips Date: Sun, 3 Nov 2024 20:17:23 -0500 Subject: [PATCH 001/407] add /editor command Opens an editor for constructing a user prompt, using the currently defined chat mode. The editor is determined as follows: Look for the following environment variables, in order: 1. AIDER_EDITOR 2. VISUAL 3. EDITOR If none of these are defined, use the following defaults: Windows: notepad OS X: vim *nix: vi If an editor is not found, a RuntimeError is raised. Any arguments passed after the /editor command are inserted as content. The temporary file used for editing has an .md extension, which can be leveraged for syntax highlighting. NOTE: The editor used MUST block the process until the editor is closed -- the default editors all do this. --- aider/commands.py | 7 +++ aider/editor.py | 146 ++++++++++++++++++++++++++++++++++++++++++++++ aider/io.py | 15 +++-- 3 files changed, 162 insertions(+), 6 deletions(-) create mode 100644 aider/editor.py diff --git a/aider/commands.py b/aider/commands.py index 45d19c1b8..b11fdf2c4 100644 --- a/aider/commands.py +++ b/aider/commands.py @@ -1357,6 +1357,13 @@ class Commands: report_github_issue(issue_text, title=title, confirm=False) + def cmd_editor(self, initial_content=""): + "Open an editor to write a prompt" + from aider.editor import pipe_editor + user_input = pipe_editor(initial_content, suffix="md") + self.io.display_user_input(user_input) + self._generic_chat_command(user_input, self.coder.edit_format) + def expand_subdir(file_path): if file_path.is_file(): diff --git a/aider/editor.py b/aider/editor.py new file mode 100644 index 000000000..a6cbc0522 --- /dev/null +++ b/aider/editor.py @@ -0,0 +1,146 @@ +""" +Editor module for handling system text editor interactions. + +This module provides functionality to: +- Discover and launch the system's configured text editor +- Create and manage temporary files for editing +- Handle editor preferences from environment variables +- Support cross-platform editor operations +""" + +import os +import tempfile +import subprocess +import platform +import shlex +from rich.console import Console + +SYSTEM = platform.system() + +DEFAULT_EDITOR_NIX = "vi" +DEFAULT_EDITOR_OS_X = "vim" +DEFAULT_EDITOR_WINDOWS = "notepad" + +console = Console() + + +def print_status_message(success: bool, message: str, style: str | None = None) -> None: + """ + Print a status message with appropriate styling. + + :param success: Whether the operation was successful + :param message: The message to display + :param style: Optional style override. If None, uses green for success and red for failure + """ + if style is None: + style = "bold green" if success else "bold red" + console.print(message, style=style) + print("") + + +def write_temp_file(input_data: str = "", suffix: str | None = None, prefix: str | None = None, dir: str | None = None) -> str: + """ + Create a temporary file with the given input data. + + :param input_data: Content to write to the temporary file + :param suffix: Optional file extension (without the dot) + :param prefix: Optional prefix for the temporary filename + :param dir: Optional directory to create the file in + :return: Path to the created temporary file + :raises: OSError if file creation or writing fails + """ + kwargs = {"prefix": prefix, "dir": dir} + if suffix: + kwargs["suffix"] = f".{suffix}" + fd, filepath = tempfile.mkstemp(**kwargs) + try: + with os.fdopen(fd, 'w') as f: + f.write(input_data) + except Exception: + os.close(fd) + raise + return filepath + + +def get_environment_editor(default: str | None = None) -> str | None: + """ + Fetches the preferred editor from the environment variables. + + This function checks the following environment variables in order to + determine the user's preferred editor: + + - AIDER_EDITOR + - VISUAL + - EDITOR + + :param default: The default editor to return if no environment variable is set. + :type default: str or None + :return: The preferred editor as specified by environment variables or the default value. + :rtype: str or None + """ + editor = os.environ.get("AIDER_EDITOR", os.environ.get("VISUAL", os.environ.get("EDITOR", default))) + return editor + + +def discover_editor() -> list[str]: + """ + Discovers and returns the appropriate editor command as a list of arguments. + + Handles cases where the editor command includes arguments, including quoted arguments + with spaces (e.g. 'vim -c "set noswapfile"'). + + :return: A list of command parts ready for subprocess execution + :rtype: list[str] + """ + if SYSTEM == "Windows": + default_editor = DEFAULT_EDITOR_WINDOWS + elif SYSTEM == "Darwin": + default_editor = DEFAULT_EDITOR_OS_X + else: + default_editor = DEFAULT_EDITOR_NIX + editor = get_environment_editor(default_editor) + try: + return shlex.split(editor) + except ValueError as e: + raise RuntimeError(f"Invalid editor command format '{editor}': {e}") + + +def file_editor(filepath: str) -> None: + """ + Open the specified file in the system's configured editor. + + This function blocks until the editor is closed. + + :param filepath: Path to the file to edit + :type filepath: str + :raises RuntimeError: If the editor command is invalid + """ + command_parts = discover_editor() + command_parts.append(filepath) + subprocess.call(command_parts) + + +def pipe_editor(input_data: str = "", suffix: str | None = None) -> str: + """ + Opens the system editor with optional input data and returns the edited content. + + This function creates a temporary file with the provided input data, opens it in + the system editor, waits for the user to make changes and close the editor, then + reads and returns the modified content. The temporary file is deleted afterwards. + + :param input_data: Initial content to populate the editor with + :type input_data: str + :param suffix: Optional file extension for the temporary file (e.g. '.txt', '.md') + :type suffix: str or None + :return: The edited content after the editor is closed + :rtype: str + """ + filepath = write_temp_file(input_data, suffix) + file_editor(filepath) + with open(filepath, "r") as f: + output_data = f.read() + try: + os.remove(filepath) + except PermissionError: + print_status_message(False, f"WARNING: Unable to delete temporary file {filepath!r}. You may need to delete it manually.") + return output_data diff --git a/aider/io.py b/aider/io.py index 5e27a267a..cbde836a5 100644 --- a/aider/io.py +++ b/aider/io.py @@ -457,14 +457,17 @@ class InputOutput: log_file.write(f"{role.upper()} {timestamp}\n") log_file.write(content + "\n") + def display_user_input(self, inp): + if self.pretty and self.user_input_color: + style = dict(style=self.user_input_color) + else: + style = dict() + + self.console.print(Text(inp), **style) + def user_input(self, inp, log_only=True): if not log_only: - if self.pretty and self.user_input_color: - style = dict(style=self.user_input_color) - else: - style = dict() - - self.console.print(Text(inp), **style) + self.display_user_input(inp) prefix = "####" if inp: From a7f59a2e2b56618ddcf828090b54b01ebab1defb Mon Sep 17 00:00:00 2001 From: malkoG Date: Mon, 4 Nov 2024 12:38:27 +0900 Subject: [PATCH 002/407] Add tags.scm for dart --- aider/queries/tree-sitter-dart-tags.scm | 91 +++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 aider/queries/tree-sitter-dart-tags.scm diff --git a/aider/queries/tree-sitter-dart-tags.scm b/aider/queries/tree-sitter-dart-tags.scm new file mode 100644 index 000000000..1aacad0de --- /dev/null +++ b/aider/queries/tree-sitter-dart-tags.scm @@ -0,0 +1,91 @@ +(class_definition + name: (identifier) @name.definition.class) @definition.class + +(method_signature + (function_signature)) @definition.method + +(type_alias + (type_identifier) @name.definition.type) @definition.type + +(method_signature + (getter_signature + name: (identifier) @name.definition.method)) @definition.method + +(method_signature + (setter_signature + name: (identifier) @name.definition.method)) @definition.method + +(method_signature + (function_signature + name: (identifier) @name.definition.method)) @definition.method + +(method_signature + (factory_constructor_signature + (identifier) @name.definition.method)) @definition.method + +(method_signature + (constructor_signature + name: (identifier) @name.definition.method)) @definition.method + +(method_signature + (operator_signature)) @definition.method + +(method_signature) @definition.method + +(mixin_declaration + (mixin) + (identifier) @name.definition.mixin) @definition.mixin + +(extension_declaration + name: (identifier) @name.definition.extension) @definition.extension + +(enum_declaration + name: (identifier) @name.definition.enum) @definition.enum + +(function_signature + name: (identifier) @name.definition.function) @definition.function + +(new_expression + (type_identifier) @name.reference.class) @reference.class + +(initialized_variable_definition + name: (identifier) + value: (identifier) @name.reference.class + value: (selector + "!"? + (argument_part + (arguments + (argument)*))?)?) @reference.class + +(assignment_expression + left: (assignable_expression + (identifier) + (unconditional_assignable_selector + "." + (identifier) @name.reference.call))) @reference.call + +(assignment_expression + left: (assignable_expression + (identifier) + (conditional_assignable_selector + "?." + (identifier) @name.reference.call))) @reference.call + +((identifier) @name + (selector + "!"? + (conditional_assignable_selector + "?." (identifier) @name.reference.call)? + (unconditional_assignable_selector + "."? (identifier) @name.reference.call)? + (argument_part + (arguments + (argument)*))?)* + (cascade_section + (cascade_selector + (identifier)) @name.reference.call + (argument_part + (arguments + (argument)*))?)?) @reference.call + + From a8a3e2401be1469766de8b2da799c29f8b740fd1 Mon Sep 17 00:00:00 2001 From: malkoG Date: Mon, 4 Nov 2024 13:22:22 +0900 Subject: [PATCH 003/407] Update languages.md for dart support --- aider/website/docs/languages.md | 1 + 1 file changed, 1 insertion(+) diff --git a/aider/website/docs/languages.md b/aider/website/docs/languages.md index ac91ab537..ac8d53a10 100644 --- a/aider/website/docs/languages.md +++ b/aider/website/docs/languages.md @@ -62,6 +62,7 @@ cog.out(get_supported_languages_md()) | cpp | .cc | ✓ | ✓ | | cpp | .cpp | ✓ | ✓ | | css | .css | | ✓ | +| dart | .dart | ✓ | | | dockerfile | .dockerfile | | ✓ | | dot | .dot | | ✓ | | elisp | .el | ✓ | ✓ | From 8801fda972e45d26e0d3b004e7aa9dee67cb57a4 Mon Sep 17 00:00:00 2001 From: Chad Phillips Date: Mon, 4 Nov 2024 10:10:37 -0600 Subject: [PATCH 004/407] formatting fixes --- aider/commands.py | 1 + aider/editor.py | 36 +++++++++++++++++++++++++----------- 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/aider/commands.py b/aider/commands.py index b11fdf2c4..0c76e5fd4 100644 --- a/aider/commands.py +++ b/aider/commands.py @@ -1360,6 +1360,7 @@ class Commands: def cmd_editor(self, initial_content=""): "Open an editor to write a prompt" from aider.editor import pipe_editor + user_input = pipe_editor(initial_content, suffix="md") self.io.display_user_input(user_input) self._generic_chat_command(user_input, self.coder.edit_format) diff --git a/aider/editor.py b/aider/editor.py index a6cbc0522..fbed5ee4f 100644 --- a/aider/editor.py +++ b/aider/editor.py @@ -9,10 +9,11 @@ This module provides functionality to: """ import os -import tempfile -import subprocess import platform import shlex +import subprocess +import tempfile + from rich.console import Console SYSTEM = platform.system() @@ -24,7 +25,7 @@ DEFAULT_EDITOR_WINDOWS = "notepad" console = Console() -def print_status_message(success: bool, message: str, style: str | None = None) -> None: +def print_status_message(success, message, style=None): """ Print a status message with appropriate styling. @@ -38,7 +39,12 @@ def print_status_message(success: bool, message: str, style: str | None = None) print("") -def write_temp_file(input_data: str = "", suffix: str | None = None, prefix: str | None = None, dir: str | None = None) -> str: +def write_temp_file( + input_data="", + suffix=None, + prefix=None, + dir=None, +): """ Create a temporary file with the given input data. @@ -54,7 +60,7 @@ def write_temp_file(input_data: str = "", suffix: str | None = None, prefix: str kwargs["suffix"] = f".{suffix}" fd, filepath = tempfile.mkstemp(**kwargs) try: - with os.fdopen(fd, 'w') as f: + with os.fdopen(fd, "w") as f: f.write(input_data) except Exception: os.close(fd) @@ -62,7 +68,7 @@ def write_temp_file(input_data: str = "", suffix: str | None = None, prefix: str return filepath -def get_environment_editor(default: str | None = None) -> str | None: +def get_environment_editor(default=None): """ Fetches the preferred editor from the environment variables. @@ -78,11 +84,13 @@ def get_environment_editor(default: str | None = None) -> str | None: :return: The preferred editor as specified by environment variables or the default value. :rtype: str or None """ - editor = os.environ.get("AIDER_EDITOR", os.environ.get("VISUAL", os.environ.get("EDITOR", default))) + editor = os.environ.get( + "AIDER_EDITOR", os.environ.get("VISUAL", os.environ.get("EDITOR", default)) + ) return editor -def discover_editor() -> list[str]: +def discover_editor(): """ Discovers and returns the appropriate editor command as a list of arguments. @@ -105,7 +113,7 @@ def discover_editor() -> list[str]: raise RuntimeError(f"Invalid editor command format '{editor}': {e}") -def file_editor(filepath: str) -> None: +def file_editor(filepath): """ Open the specified file in the system's configured editor. @@ -120,7 +128,7 @@ def file_editor(filepath: str) -> None: subprocess.call(command_parts) -def pipe_editor(input_data: str = "", suffix: str | None = None) -> str: +def pipe_editor(input_data="", suffix=None): """ Opens the system editor with optional input data and returns the edited content. @@ -142,5 +150,11 @@ def pipe_editor(input_data: str = "", suffix: str | None = None) -> str: try: os.remove(filepath) except PermissionError: - print_status_message(False, f"WARNING: Unable to delete temporary file {filepath!r}. You may need to delete it manually.") + print_status_message( + False, + ( + f"WARNING: Unable to delete temporary file {filepath!r}. You may need to delete it" + " manually." + ), + ) return output_data From 266350b8ce93d30e88a48030ed31779dbf45c6fd Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Thu, 14 Nov 2024 06:48:33 -0800 Subject: [PATCH 005/407] fix: Handle potential git errors in git_ignored_file method --- aider/repo.py | 1 + 1 file changed, 1 insertion(+) diff --git a/aider/repo.py b/aider/repo.py index 83cb914de..6a3f666e9 100644 --- a/aider/repo.py +++ b/aider/repo.py @@ -334,6 +334,7 @@ class GitRepo: def git_ignored_file(self, path): if not self.repo: return + #ai try/except for git errors! if self.repo.ignored(path): return True From 94c3957d92b51bedf5d90b4c6a6a14f6e8fba071 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Thu, 14 Nov 2024 06:48:35 -0800 Subject: [PATCH 006/407] fix: Add error handling for git.ignored() method --- aider/repo.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/aider/repo.py b/aider/repo.py index 6a3f666e9..3445a1848 100644 --- a/aider/repo.py +++ b/aider/repo.py @@ -334,9 +334,11 @@ class GitRepo: def git_ignored_file(self, path): if not self.repo: return - #ai try/except for git errors! - if self.repo.ignored(path): - return True + try: + if self.repo.ignored(path): + return True + except ANY_GIT_ERROR: + return False def ignored_file(self, fname): self.refresh_aider_ignore() From d8a5bc3ae9fca9c804da6d217b0ea2914f2937c5 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Thu, 14 Nov 2024 06:53:21 -0800 Subject: [PATCH 007/407] Revert "Merge branch 'issue2283'" This reverts commit e1a1e43c3a15bc96120deb9620bb9357b5d59fa8, reversing changes made to c538817b61defb10a8813cf82ba6572dd0d28986. --- aider/coders/base_coder.py | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/aider/coders/base_coder.py b/aider/coders/base_coder.py index ebd36a941..53d0e4051 100755 --- a/aider/coders/base_coder.py +++ b/aider/coders/base_coder.py @@ -1245,19 +1245,10 @@ class Coder: else: content = "" - if not interrupted: - add_rel_files_message = self.check_for_file_mentions(content) - if add_rel_files_message: - if self.reflected_message: - self.reflected_message += "\n\n" + add_rel_files_message - else: - self.reflected_message = add_rel_files_message - return - - try: - self.reply_completed() - except KeyboardInterrupt: - interrupted = True + try: + self.reply_completed() + except KeyboardInterrupt: + interrupted = True if interrupted: content += "\n^C KeyboardInterrupt" @@ -1308,6 +1299,13 @@ class Coder: self.update_cur_messages() return + add_rel_files_message = self.check_for_file_mentions(content) + if add_rel_files_message: + if self.reflected_message: + self.reflected_message += "\n\n" + add_rel_files_message + else: + self.reflected_message = add_rel_files_message + def reply_completed(self): pass From 503a9a0038d611be5e1406936abf46b0e4ab1ec7 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Thu, 14 Nov 2024 06:55:05 -0800 Subject: [PATCH 008/407] version bump to 0.63.1 --- aider/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aider/__init__.py b/aider/__init__.py index be5c29480..76826b6b6 100644 --- a/aider/__init__.py +++ b/aider/__init__.py @@ -1,6 +1,6 @@ try: from aider.__version__ import __version__ except Exception: - __version__ = "0.63.1.dev" + __version__ = "0.63.1" __all__ = [__version__] From 66f94d21410b03ef66fb21c36a3160042ba20d34 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Thu, 14 Nov 2024 06:56:43 -0800 Subject: [PATCH 009/407] set version to 0.63.2.dev --- aider/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aider/__init__.py b/aider/__init__.py index 76826b6b6..a10d8afc7 100644 --- a/aider/__init__.py +++ b/aider/__init__.py @@ -1,6 +1,6 @@ try: from aider.__version__ import __version__ except Exception: - __version__ = "0.63.1" + __version__ = "0.63.2.dev" __all__ = [__version__] From e0c1b2458c4f9ec2a057f9e48899b42812e5daa2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20Di=20Biase?= Date: Thu, 14 Nov 2024 12:27:12 -0300 Subject: [PATCH 010/407] fix: typo pytest filename --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d304420b1..648256e10 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -187,8 +187,8 @@ pytest You can also run specific test files or test cases by providing the file path or test name: ``` -pytest aider/tests/test_coder.py -pytest aider/tests/test_coder.py::TestCoder::test_specific_case +pytest tests/basic/test_coder.py +pytest tests/basic/test_coder.py::TestCoder::test_specific_case ``` #### Continuous Integration From 6b792de802018160f521319f7ddadc5dd6d3c794 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Thu, 14 Nov 2024 15:15:23 -0800 Subject: [PATCH 011/407] copy --- .../docs/troubleshooting/edit-errors.md | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/aider/website/docs/troubleshooting/edit-errors.md b/aider/website/docs/troubleshooting/edit-errors.md index 73f3f4a7c..973983679 100644 --- a/aider/website/docs/troubleshooting/edit-errors.md +++ b/aider/website/docs/troubleshooting/edit-errors.md @@ -19,7 +19,19 @@ LLM edits that are "almost" correctly formatted. But sometimes the LLM just won't cooperate. In these cases, here are some things you might try. -## Use a capable model +## Don't add too many files + +Many LLMs now have very large context windows, +but filling them with irrelevant code or conversation +can confuse the model. + +- Don't add too many files to the chat, *just* add the files you think need to be edited. +Aider also sends the LLM a [map of your entire git repo](https://aider.chat/docs/repomap.html), so other relevant code will be included automatically. +- Use `/drop` to remove files from the chat session which aren't needed for the task at hand. This will reduce distractions and may help the LLM produce properly formatted edits. +- Use `/clear` to remove the conversation history, again to help the LLM focus. +- Use `/tokens` to see how many tokens you are using for each message. + +## Use a more capable model If possible try using GPT-4o, Claude 3.5 Sonnet or Claude 3 Opus, as they are the strongest and most capable models. @@ -33,9 +45,9 @@ so editing errors are probably unavoidable. Local models which have been quantized are even more likely to have problems because they are not capable enough to follow aider's system prompts. -## Try the whole format +## Try the whole edit format -Run aider with `--edit-format whole` if the model is using a different edit format. +Run aider with `--edit-format whole` if were using a different edit format. You can see which edit format it is using in the announce lines: ``` @@ -43,17 +55,6 @@ Aider v0.50.2-dev Models: claude-3-5-sonnet-20240620 with ♾️ diff edit format ``` -## Reduce distractions - -Many LLMs now have very large context windows, -but filling them with irrelevant code or conversation -can confuse the model. - -- Don't add too many files to the chat, *just* add the files you think need to be edited. -Aider also sends the LLM a [map of your entire git repo](https://aider.chat/docs/repomap.html), so other relevant code will be included automatically. -- Use `/drop` to remove files from the chat session which aren't needed for the task at hand. This will reduce distractions and may help the LLM produce properly formatted edits. -- Use `/clear` to remove the conversation history, again to help the LLM focus. -- Use `/tokens` to see how many tokens you are using for each message. ## More help From 805deb1002b5fd4b08c6ec0d94547bda3d9ab2bf Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Thu, 14 Nov 2024 15:18:45 -0800 Subject: [PATCH 012/407] feat: Add comment to expand read-only directory files --- aider/main.py | 1 + 1 file changed, 1 insertion(+) diff --git a/aider/main.py b/aider/main.py index a604c5f64..0bd3668ad 100644 --- a/aider/main.py +++ b/aider/main.py @@ -541,6 +541,7 @@ def main(argv=None, input=None, output=None, force_git_root=None, return_coder=F all_files = args.files + (args.file or []) fnames = [str(Path(fn).resolve()) for fn in all_files] read_only_fnames = [str(Path(fn).resolve()) for fn in (args.read or [])] + #ai expand any of the read_only_fnames which are dirs to be all the files under them! if len(all_files) > 1: good = True for fname in all_files: From 2681a41abb3d777a32f824a39030233611eee113 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Thu, 14 Nov 2024 15:18:47 -0800 Subject: [PATCH 013/407] refactor: Expand read-only file paths to include all files in directories --- aider/main.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/aider/main.py b/aider/main.py index 0bd3668ad..8a1c7cac1 100644 --- a/aider/main.py +++ b/aider/main.py @@ -540,7 +540,13 @@ def main(argv=None, input=None, output=None, force_git_root=None, return_coder=F all_files = args.files + (args.file or []) fnames = [str(Path(fn).resolve()) for fn in all_files] - read_only_fnames = [str(Path(fn).resolve()) for fn in (args.read or [])] + read_only_fnames = [] + for fn in (args.read or []): + path = Path(fn).resolve() + if path.is_dir(): + read_only_fnames.extend(str(f) for f in path.rglob('*') if f.is_file()) + else: + read_only_fnames.append(str(path)) #ai expand any of the read_only_fnames which are dirs to be all the files under them! if len(all_files) > 1: good = True From 3c26ced8db76c69e2b8e0ad21a8b13d5d61d0dbe Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Thu, 14 Nov 2024 15:18:54 -0800 Subject: [PATCH 014/407] style: Apply linter formatting to main.py --- aider/main.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/aider/main.py b/aider/main.py index 8a1c7cac1..0a5f029e7 100644 --- a/aider/main.py +++ b/aider/main.py @@ -541,13 +541,13 @@ def main(argv=None, input=None, output=None, force_git_root=None, return_coder=F all_files = args.files + (args.file or []) fnames = [str(Path(fn).resolve()) for fn in all_files] read_only_fnames = [] - for fn in (args.read or []): + for fn in args.read or []: path = Path(fn).resolve() if path.is_dir(): - read_only_fnames.extend(str(f) for f in path.rglob('*') if f.is_file()) + read_only_fnames.extend(str(f) for f in path.rglob("*") if f.is_file()) else: read_only_fnames.append(str(path)) - #ai expand any of the read_only_fnames which are dirs to be all the files under them! + # ai expand any of the read_only_fnames which are dirs to be all the files under them! if len(all_files) > 1: good = True for fname in all_files: From e82b2c12b4cee7b5cfb9256b6c6b1a5d1f77d3e2 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Thu, 14 Nov 2024 15:27:40 -0800 Subject: [PATCH 015/407] cleanup --- aider/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aider/main.py b/aider/main.py index 0a5f029e7..39556c60a 100644 --- a/aider/main.py +++ b/aider/main.py @@ -547,7 +547,7 @@ def main(argv=None, input=None, output=None, force_git_root=None, return_coder=F read_only_fnames.extend(str(f) for f in path.rglob("*") if f.is_file()) else: read_only_fnames.append(str(path)) - # ai expand any of the read_only_fnames which are dirs to be all the files under them! + if len(all_files) > 1: good = True for fname in all_files: From 38a5405c65b55c8a6c74ca824bd427cd678e4a8a Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Thu, 14 Nov 2024 15:30:49 -0800 Subject: [PATCH 016/407] copy --- aider/website/docs/scripting.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/aider/website/docs/scripting.md b/aider/website/docs/scripting.md index d4ee51c9e..df9533af0 100644 --- a/aider/website/docs/scripting.md +++ b/aider/website/docs/scripting.md @@ -95,3 +95,6 @@ io = InputOutput(yes=True) coder = Coder.create(model=model, fnames=fnames, io=io) ``` +{: .note } +The scripting API is not officially supported or documented and may +change without warning. From 0ce5a94c1561668050877e5851a0ef5b177ddfa6 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Fri, 15 Nov 2024 05:29:29 -0800 Subject: [PATCH 017/407] bumped deps --- requirements.txt | 26 ++++++++++++++------------ requirements/requirements-browser.txt | 12 ++++++------ requirements/requirements-dev.txt | 16 ++++++++-------- requirements/requirements-help.txt | 17 ++++++++++------- 4 files changed, 38 insertions(+), 33 deletions(-) diff --git a/requirements.txt b/requirements.txt index b77960136..7f66363be 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,7 +6,7 @@ # aiohappyeyeballs==2.4.3 # via aiohttp -aiohttp==3.10.10 +aiohttp==3.11.2 # via litellm aiosignal==1.3.1 # via aiohttp @@ -86,9 +86,9 @@ importlib-resources==6.4.5 # via -r requirements/requirements.in jinja2==3.1.4 # via litellm -jiter==0.7.0 +jiter==0.7.1 # via openai -json5==0.9.25 +json5==0.9.28 # via -r requirements/requirements.in jsonschema==4.23.0 # via @@ -96,7 +96,7 @@ jsonschema==4.23.0 # litellm jsonschema-specifications==2024.10.1 # via jsonschema -litellm==1.51.2 +litellm==1.52.8 # via -r requirements/requirements.in markdown-it-py==3.0.0 # via rich @@ -120,9 +120,9 @@ numpy==1.26.4 # via # -r requirements/requirements.in # scipy -openai==1.53.0 +openai==1.54.4 # via litellm -packaging==24.1 +packaging==24.2 # via # -r requirements/requirements.in # huggingface-hub @@ -139,7 +139,9 @@ posthog==3.7.0 prompt-toolkit==3.0.48 # via -r requirements/requirements.in propcache==0.2.0 - # via yarl + # via + # aiohttp + # yarl psutil==6.1.0 # via -r requirements/requirements.in ptyprocess==0.7.0 @@ -176,7 +178,7 @@ referencing==0.35.1 # via # jsonschema # jsonschema-specifications -regex==2024.9.11 +regex==2024.11.6 # via tiktoken requests==2.32.3 # via @@ -185,9 +187,9 @@ requests==2.32.3 # mixpanel # posthog # tiktoken -rich==13.9.3 +rich==13.9.4 # via -r requirements/requirements.in -rpds-py==0.20.1 +rpds-py==0.21.0 # via # jsonschema # referencing @@ -217,7 +219,7 @@ tokenizers==0.19.1 # via # -r requirements/requirements.in # litellm -tqdm==4.66.6 +tqdm==4.67.0 # via # huggingface-hub # openai @@ -241,5 +243,5 @@ wcwidth==0.2.13 # via prompt-toolkit yarl==1.17.1 # via aiohttp -zipp==3.20.2 +zipp==3.21.0 # via importlib-metadata diff --git a/requirements/requirements-browser.txt b/requirements/requirements-browser.txt index 538b5dc9b..abe36be8c 100644 --- a/requirements/requirements-browser.txt +++ b/requirements/requirements-browser.txt @@ -13,7 +13,7 @@ attrs==24.2.0 # -c requirements/requirements-help.txt # jsonschema # referencing -blinker==1.8.2 +blinker==1.9.0 # via streamlit cachetools==5.5.0 # via streamlit @@ -92,7 +92,7 @@ mdurl==0.1.2 # -c requirements/../requirements.txt # -c requirements/requirements-dev.txt # markdown-it-py -narwhals==1.12.1 +narwhals==1.13.5 # via altair numpy==1.26.4 # via @@ -103,7 +103,7 @@ numpy==1.26.4 # pandas # pydeck # streamlit -packaging==24.1 +packaging==24.2 # via # -c requirements.txt # -c requirements/../requirements.txt @@ -157,13 +157,13 @@ requests==2.32.3 # -c requirements/requirements-dev.txt # -c requirements/requirements-help.txt # streamlit -rich==13.9.3 +rich==13.9.4 # via # -c requirements.txt # -c requirements/../requirements.txt # -c requirements/requirements-dev.txt # streamlit -rpds-py==0.20.1 +rpds-py==0.21.0 # via # -c requirements.txt # -c requirements/../requirements.txt @@ -180,7 +180,7 @@ smmap==5.0.1 # -c requirements.txt # -c requirements/../requirements.txt # gitdb -streamlit==1.39.0 +streamlit==1.40.1 # via -r requirements/requirements-browser.in tenacity==8.5.0 # via diff --git a/requirements/requirements-dev.txt b/requirements/requirements-dev.txt index 945efbf95..7cb36de5c 100644 --- a/requirements/requirements-dev.txt +++ b/requirements/requirements-dev.txt @@ -32,7 +32,7 @@ codespell==2.3.0 # via -r requirements/requirements-dev.in cogapp==3.4.1 # via -r requirements/requirements-dev.in -contourpy==1.3.0 +contourpy==1.3.1 # via matplotlib cycler==0.12.1 # via matplotlib @@ -51,9 +51,9 @@ filelock==3.16.1 # -c requirements.txt # -c requirements/../requirements.txt # virtualenv -fonttools==4.54.1 +fonttools==4.55.0 # via matplotlib -identify==2.6.1 +identify==2.6.2 # via pre-commit idna==3.10 # via @@ -103,7 +103,7 @@ numpy==1.26.4 # contourpy # matplotlib # pandas -packaging==24.1 +packaging==24.2 # via # -c requirements.txt # -c requirements/../requirements.txt @@ -164,7 +164,7 @@ requests==2.32.3 # -c requirements.txt # -c requirements/../requirements.txt # sphinx -rich==13.9.3 +rich==13.9.4 # via # -c requirements.txt # -c requirements/../requirements.txt @@ -184,7 +184,7 @@ sphinx==8.1.3 # via # sphinx-rtd-theme # sphinxcontrib-jquery -sphinx-rtd-theme==3.0.1 +sphinx-rtd-theme==3.0.2 # via lox sphinxcontrib-applehelp==2.0.0 # via sphinx @@ -200,7 +200,7 @@ sphinxcontrib-qthelp==2.0.0 # via sphinx sphinxcontrib-serializinghtml==2.0.0 # via sphinx -typer==0.12.5 +typer==0.13.0 # via -r requirements/requirements-dev.in typing-extensions==4.12.2 # via @@ -216,7 +216,7 @@ urllib3==2.2.3 # requests virtualenv==20.27.1 # via pre-commit -wheel==0.44.0 +wheel==0.45.0 # via pip-tools # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/requirements-help.txt b/requirements/requirements-help.txt index cbaa2e0a1..5795c843b 100644 --- a/requirements/requirements-help.txt +++ b/requirements/requirements-help.txt @@ -9,7 +9,7 @@ aiohappyeyeballs==2.4.3 # -c requirements.txt # -c requirements/../requirements.txt # aiohttp -aiohttp==3.10.10 +aiohttp==3.11.2 # via # -c requirements.txt # -c requirements/../requirements.txt @@ -69,6 +69,8 @@ filelock==3.16.1 # huggingface-hub # torch # transformers +filetype==1.2.0 + # via llama-index-core frozenlist==1.5.0 # via # -c requirements.txt @@ -128,7 +130,7 @@ joblib==1.4.2 # via # nltk # scikit-learn -llama-index-core==0.11.21 +llama-index-core==0.11.23 # via # -r requirements/requirements-help.in # llama-index-embeddings-huggingface @@ -140,7 +142,7 @@ markupsafe==3.0.2 # -c requirements/../requirements.txt # -c requirements/requirements-dev.txt # jinja2 -marshmallow==3.23.0 +marshmallow==3.23.1 # via dataclasses-json mpmath==1.3.0 # via sympy @@ -171,7 +173,7 @@ numpy==1.26.4 # scikit-learn # scipy # transformers -packaging==24.1 +packaging==24.2 # via # -c requirements.txt # -c requirements/../requirements.txt @@ -190,6 +192,7 @@ propcache==0.2.0 # via # -c requirements.txt # -c requirements/../requirements.txt + # aiohttp # yarl pydantic==2.9.2 # via @@ -209,7 +212,7 @@ pyyaml==6.0.2 # huggingface-hub # llama-index-core # transformers -regex==2024.9.11 +regex==2024.11.6 # via # -c requirements.txt # -c requirements/../requirements.txt @@ -235,7 +238,7 @@ scipy==1.13.1 # -c requirements/../requirements.txt # scikit-learn # sentence-transformers -sentence-transformers==3.2.1 +sentence-transformers==3.3.0 # via llama-index-embeddings-huggingface sniffio==1.3.1 # via @@ -265,7 +268,7 @@ tokenizers==0.19.1 # transformers torch==2.2.2 # via sentence-transformers -tqdm==4.66.6 +tqdm==4.67.0 # via # -c requirements.txt # -c requirements/../requirements.txt From b254afa4982e9449a1479094d3f7614b367cb7fd Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Fri, 15 Nov 2024 05:33:59 -0800 Subject: [PATCH 018/407] refactor: Modify model metadata file loading to prioritize resource file --- aider/main.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/aider/main.py b/aider/main.py index 39556c60a..9a27645bf 100644 --- a/aider/main.py +++ b/aider/main.py @@ -332,14 +332,16 @@ def load_dotenv_files(git_root, dotenv_fname, encoding="utf-8"): def register_litellm_models(git_root, model_metadata_fname, io, verbose=False): - model_metatdata_files = generate_search_path_list( - ".aider.model.metadata.json", git_root, model_metadata_fname - ) + model_metatdata_files = [] # Add the resource file path resource_metadata = importlib_resources.files("aider.resources").joinpath("model-metadata.json") model_metatdata_files.append(str(resource_metadata)) + model_metatdata_files += generate_search_path_list( + ".aider.model.metadata.json", git_root, model_metadata_fname + ) + try: model_metadata_files_loaded = models.register_litellm_models(model_metatdata_files) if len(model_metadata_files_loaded) > 0 and verbose: From d4d5d15e183ad97d8753ccf31a815bc57f38297d Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Fri, 15 Nov 2024 06:14:15 -0800 Subject: [PATCH 019/407] fix: Handle missing litellm_provider in fuzzy model matching --- aider/models.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/aider/models.py b/aider/models.py index 57d5599c6..a5ea14320 100644 --- a/aider/models.py +++ b/aider/models.py @@ -1167,7 +1167,10 @@ def fuzzy_match_models(name): model = model.lower() if attrs.get("mode") != "chat": continue - provider = (attrs["litellm_provider"] + "/").lower() + provider = attrs.get("litellm_provider", "").lower() + if not provider: + continue + provider += "/" if model.startswith(provider): fq_model = model From c127f8f2f062fd5dbb413f2d67446eb0f2064bdf Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Fri, 15 Nov 2024 07:37:14 -0800 Subject: [PATCH 020/407] chore: Update HISTORY.md with v0.63.1 and v0.63.2 release notes --- HISTORY.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/HISTORY.md b/HISTORY.md index bbbf1b826..11ec57c23 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,6 +1,20 @@ # Release history +### Aider v0.63.2 + +- Fixed bug in fuzzy model name matching when litellm provider info is missing. +- Modified model metadata file loading to prioritize resource file. +- Updated dependency versions. +- Aider wrote 55% of the code in this release. + +### Aider v0.63.1 + +- Fixed bug in git ignored file handling. +- Improved error handling for git operations. +- Updated test paths in documentation. +- Aider wrote 55% of the code in this release. + ### Aider v0.63.0 - Support for Qwen 2.5 Coder 32B. From 0bf17a48f72de15d9af9a50a2b5c73bb7a6501d4 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Fri, 15 Nov 2024 07:42:17 -0800 Subject: [PATCH 021/407] copy --- HISTORY.md | 10 +- aider/website/HISTORY.md | 12 + aider/website/assets/sample-analytics.jsonl | 306 ++++++++++---------- 3 files changed, 169 insertions(+), 159 deletions(-) diff --git a/HISTORY.md b/HISTORY.md index 11ec57c23..8d6c42eeb 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,19 +1,17 @@ # Release history -### Aider v0.63.2 +### main branch - Fixed bug in fuzzy model name matching when litellm provider info is missing. -- Modified model metadata file loading to prioritize resource file. -- Updated dependency versions. -- Aider wrote 55% of the code in this release. +- Modified model metadata file loading to allow override of resource file. +- Allow recursive loading of dirs using `--read`. +- Updated dependency versions to pick up litellm fix for ollama models. ### Aider v0.63.1 - Fixed bug in git ignored file handling. - Improved error handling for git operations. -- Updated test paths in documentation. -- Aider wrote 55% of the code in this release. ### Aider v0.63.0 diff --git a/aider/website/HISTORY.md b/aider/website/HISTORY.md index b7f80fdb4..e87e9106f 100644 --- a/aider/website/HISTORY.md +++ b/aider/website/HISTORY.md @@ -23,6 +23,18 @@ cog.out(text) +### main branch + +- Fixed bug in fuzzy model name matching when litellm provider info is missing. +- Modified model metadata file loading to allow override of resource file. +- Allow recursive loading of dirs using `--read`. +- Updated dependency versions to pick up litellm fix for ollama models. + +### Aider v0.63.1 + +- Fixed bug in git ignored file handling. +- Improved error handling for git operations. + ### Aider v0.63.0 - Support for Qwen 2.5 Coder 32B. diff --git a/aider/website/assets/sample-analytics.jsonl b/aider/website/assets/sample-analytics.jsonl index fb23cf33b..ae00d0056 100644 --- a/aider/website/assets/sample-analytics.jsonl +++ b/aider/website/assets/sample-analytics.jsonl @@ -1,156 +1,3 @@ -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": "52b5cc12-f16d-45f3-b30c-95ab4ae904ee", "time": 1723560039} -{"event": "message_send", "properties": {"main_model": "gpt-4o-mini", "prompt_tokens": 638, "completion_tokens": 25, "total_tokens": 663, "cost": 0.0001107, "total_cost": 0.0001107, "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": "52b5cc12-f16d-45f3-b30c-95ab4ae904ee", "time": 1723560043} -{"event": "command_exit", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": "52b5cc12-f16d-45f3-b30c-95ab4ae904ee", "time": 1723560044} -{"event": "launched", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": "52b5cc12-f16d-45f3-b30c-95ab4ae904ee", "time": 1723560239} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20240620", "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": "52b5cc12-f16d-45f3-b30c-95ab4ae904ee", "time": 1723560239} -{"event": "command_add", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": "52b5cc12-f16d-45f3-b30c-95ab4ae904ee", "time": 1723560263} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20240620", "prompt_tokens": 15025, "completion_tokens": 462, "total_tokens": 15487, "cost": 0.052005, "total_cost": 0.052005, "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": "52b5cc12-f16d-45f3-b30c-95ab4ae904ee", "time": 1723560308} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20240620", "prompt_tokens": 16242, "completion_tokens": 269, "total_tokens": 16511, "cost": 0.052761, "total_cost": 0.104766, "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": "52b5cc12-f16d-45f3-b30c-95ab4ae904ee", "time": 1723560334} -{"event": "command_exit", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": "52b5cc12-f16d-45f3-b30c-95ab4ae904ee", "time": 1723560339} -{"event": "launched", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": "52b5cc12-f16d-45f3-b30c-95ab4ae904ee", "time": 1723560733} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": "52b5cc12-f16d-45f3-b30c-95ab4ae904ee", "time": 1723560733} -{"event": "message_send", "properties": {"main_model": "gpt-4o-mini", "prompt_tokens": 638, "completion_tokens": 25, "total_tokens": 663, "cost": 0.0001107, "total_cost": 0.0001107, "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": "52b5cc12-f16d-45f3-b30c-95ab4ae904ee", "time": 1723560737} -{"event": "command_exit", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": "52b5cc12-f16d-45f3-b30c-95ab4ae904ee", "time": 1723560765} -{"event": "launched", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": null, "time": 1723560805} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": null, "time": 1723560805} -{"event": "message_send", "properties": {"main_model": "gpt-4o-mini", "prompt_tokens": 638, "completion_tokens": 25, "total_tokens": 663, "cost": 0.0001107, "total_cost": 0.0001107, "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": null, "time": 1723560812} -{"event": "launched", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": "8f9e4550-33c4-4417-b152-e35ace897f13", "time": 1723560903} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": "8f9e4550-33c4-4417-b152-e35ace897f13", "time": 1723560903} -{"event": "launched", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": "bc3e1ea0-29a7-43ef-85fd-94694f8acebb", "time": 1723560920} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": "bc3e1ea0-29a7-43ef-85fd-94694f8acebb", "time": 1723560920} -{"event": "launched", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": null, "time": 1723560994} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": null, "time": 1723560994} -{"event": "launched", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": null, "time": 1723561016} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": null, "time": 1723561017} -{"event": "launched", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": null, "time": 1723561046} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": null, "time": 1723561046} -{"event": "launched", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": null, "time": 1723561049} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": null, "time": 1723561049} -{"event": "launched", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": "6547b0bb-4248-4d40-8269-dc59e9624e0f", "time": 1723561234} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": "6547b0bb-4248-4d40-8269-dc59e9624e0f", "time": 1723561235} -{"event": "message_send", "properties": {"main_model": "gpt-4o-mini", "prompt_tokens": 638, "completion_tokens": 25, "total_tokens": 663, "cost": 0.0001107, "total_cost": 0.0001107, "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": "6547b0bb-4248-4d40-8269-dc59e9624e0f", "time": 1723561241} -{"event": "launched", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": null, "time": 1723561304} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": null, "time": 1723561304} -{"event": "message_send", "properties": {"main_model": "gpt-4o-mini", "prompt_tokens": 638, "completion_tokens": 25, "total_tokens": 663, "cost": 0.0001107, "total_cost": 0.0001107, "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": null, "time": 1723561307} -{"event": "command_exit", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": null, "time": 1723561665} -{"event": "launched", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": null, "time": 1723561679} -{"event": "launched", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": null, "time": 1723561841} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20240620", "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": null, "time": 1723561841} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20240620", "prompt_tokens": 12148, "completion_tokens": 269, "total_tokens": 12417, "cost": 0.040479, "total_cost": 0.040479, "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": null, "time": 1723561858} -{"event": "command_undo", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": null, "time": 1723561925} -{"event": "launched", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": null, "time": 1723568624} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20240620", "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": null, "time": 1723568624} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20240620", "prompt_tokens": 14217, "completion_tokens": 217, "total_tokens": 14434, "cost": 0.045906, "total_cost": 0.045906, "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.49.2-dev"}, "user_id": null, "time": 1723568667} -{"event": "launched", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.50.1-dev"}, "user_id": null, "time": 1723579444} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20240620", "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.50.1-dev"}, "user_id": null, "time": 1723579445} -{"event": "launched", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.50.1-dev"}, "user_id": null, "time": 1723579738} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20240620", "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.50.1-dev"}, "user_id": null, "time": 1723579738} -{"event": "launched", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.50.1-dev", "$lib": "posthog-python", "$lib_version": "3.5.0", "$geoip_disable": true}, "user_id": "5218a941-50b3-405f-9f75-1bf42b282b6b", "time": 1723579757} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20240620", "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.50.1-dev", "$lib": "posthog-python", "$lib_version": "3.5.0", "$geoip_disable": true}, "user_id": "5218a941-50b3-405f-9f75-1bf42b282b6b", "time": 1723579757} -{"event": "launched", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.50.1-dev", "$lib": "posthog-python", "$lib_version": "3.5.0", "$geoip_disable": true}, "user_id": "5218a941-50b3-405f-9f75-1bf42b282b6b", "time": 1723579779} -{"event": "launched", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.50.1-dev", "$lib": "posthog-python", "$lib_version": "3.5.0", "$geoip_disable": true}, "user_id": "5218a941-50b3-405f-9f75-1bf42b282b6b", "time": 1723579940} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.50.1-dev", "$lib": "posthog-python", "$lib_version": "3.5.0", "$geoip_disable": true}, "user_id": "5218a941-50b3-405f-9f75-1bf42b282b6b", "time": 1723579940} -{"event": "message_send", "properties": {"main_model": "gpt-4o-mini", "edit_format": "whole", "prompt_tokens": 638, "completion_tokens": 25, "total_tokens": 663, "cost": 0.0001107, "total_cost": 0.0001107, "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.50.1-dev", "$lib": "posthog-python", "$lib_version": "3.5.0", "$geoip_disable": true}, "user_id": "5218a941-50b3-405f-9f75-1bf42b282b6b", "time": 1723579944} -{"event": "message_send", "properties": {"main_model": "gpt-4o-mini", "edit_format": "whole", "prompt_tokens": 673, "completion_tokens": 28, "total_tokens": 701, "cost": 0.00011775, "total_cost": 0.00022845, "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.50.1-dev", "$lib": "posthog-python", "$lib_version": "3.5.0", "$geoip_disable": true}, "user_id": "5218a941-50b3-405f-9f75-1bf42b282b6b", "time": 1723579948} -{"event": "command_exit", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.50.1-dev", "$lib": "posthog-python", "$lib_version": "3.5.0", "$geoip_disable": true}, "user_id": "5218a941-50b3-405f-9f75-1bf42b282b6b", "time": 1723579952} -{"event": "launched", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.50.1-dev", "$lib": "posthog-python", "$lib_version": "3.5.0", "$geoip_disable": true}, "user_id": "5218a941-50b3-405f-9f75-1bf42b282b6b", "time": 1723584128} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20240620", "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.50.1-dev", "$lib": "posthog-python", "$lib_version": "3.5.0", "$geoip_disable": true}, "user_id": "5218a941-50b3-405f-9f75-1bf42b282b6b", "time": 1723584128} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20240620", "edit_format": "diff", "prompt_tokens": 3461, "completion_tokens": 289, "total_tokens": 3750, "cost": 0.014718, "total_cost": 0.014718, "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.50.1-dev", "$lib": "posthog-python", "$lib_version": "3.5.0", "$geoip_disable": true}, "user_id": "5218a941-50b3-405f-9f75-1bf42b282b6b", "time": 1723584158} -{"event": "command_diff", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.50.1-dev", "$lib": "posthog-python", "$lib_version": "3.5.0", "$geoip_disable": true}, "user_id": "5218a941-50b3-405f-9f75-1bf42b282b6b", "time": 1723584162} -{"event": "command_exit", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.50.1-dev", "$lib": "posthog-python", "$lib_version": "3.5.0", "$geoip_disable": true}, "user_id": "5218a941-50b3-405f-9f75-1bf42b282b6b", "time": 1723584173} -{"event": "launched", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.50.1-dev", "$lib": "posthog-python", "$lib_version": "3.5.0", "$geoip_disable": true}, "user_id": "5218a941-50b3-405f-9f75-1bf42b282b6b", "time": 1723593477} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20240620", "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.50.1-dev", "$lib": "posthog-python", "$lib_version": "3.5.0", "$geoip_disable": true}, "user_id": "5218a941-50b3-405f-9f75-1bf42b282b6b", "time": 1723593477} -{"event": "command_chat-mode", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.50.1-dev", "$lib": "posthog-python", "$lib_version": "3.5.0", "$geoip_disable": true}, "user_id": "5218a941-50b3-405f-9f75-1bf42b282b6b", "time": 1723593516} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20240620", "edit_format": "ask", "prompt_tokens": 9262, "completion_tokens": 223, "total_tokens": 9485, "cost": 0.031131000000000002, "total_cost": 0.031131000000000002, "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.50.1-dev", "$lib": "posthog-python", "$lib_version": "3.5.0", "$geoip_disable": true}, "user_id": "5218a941-50b3-405f-9f75-1bf42b282b6b", "time": 1723593580} -{"event": "launched", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.50.1-dev", "$lib": "posthog-python", "$lib_version": "3.5.0", "$geoip_disable": true}, "user_id": "5218a941-50b3-405f-9f75-1bf42b282b6b", "time": 1723593593} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20240620", "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.50.1-dev", "$lib": "posthog-python", "$lib_version": "3.5.0", "$geoip_disable": true}, "user_id": "5218a941-50b3-405f-9f75-1bf42b282b6b", "time": 1723593593} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20240620", "edit_format": "ask", "prompt_tokens": 2054, "completion_tokens": 370, "total_tokens": 2424, "cost": 0.011712, "total_cost": 0.011712, "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.50.1-dev", "$lib": "posthog-python", "$lib_version": "3.5.0", "$geoip_disable": true}, "user_id": "5218a941-50b3-405f-9f75-1bf42b282b6b", "time": 1723593607} -{"event": "launched", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.50.2-dev"}, "user_id": "cbbee83e-62da-4629-9a3c-04d37a26f7a7", "time": 1723832819} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20240620", "python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.50.2-dev"}, "user_id": "cbbee83e-62da-4629-9a3c-04d37a26f7a7", "time": 1723832821} -{"event": "command_exit", "properties": {"python_version": "3.12.4", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.50.2-dev"}, "user_id": "cbbee83e-62da-4629-9a3c-04d37a26f7a7", "time": 1723832823} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7", "$lib": "posthog-python", "$lib_version": "3.7.0", "$geoip_disable": true}, "user_id": "1f30456a-1f79-4f19-9720-fb0b8a304b0a", "time": 1730316502} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7", "$lib": "posthog-python", "$lib_version": "3.7.0", "$geoip_disable": true}, "user_id": "1f30456a-1f79-4f19-9720-fb0b8a304b0a", "time": 1730316502} -{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7", "$lib": "posthog-python", "$lib_version": "3.7.0", "$geoip_disable": true}, "user_id": "1f30456a-1f79-4f19-9720-fb0b8a304b0a", "time": 1730316583} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7", "$lib": "posthog-python", "$lib_version": "3.7.0", "$geoip_disable": true}, "user_id": "1f30456a-1f79-4f19-9720-fb0b8a304b0a", "time": 1730316586} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7", "$lib": "posthog-python", "$lib_version": "3.7.0", "$geoip_disable": true}, "user_id": "1f30456a-1f79-4f19-9720-fb0b8a304b0a", "time": 1730316586} -{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7", "$lib": "posthog-python", "$lib_version": "3.7.0", "$geoip_disable": true}, "user_id": "1f30456a-1f79-4f19-9720-fb0b8a304b0a", "time": 1730316589} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "1f30456a-1f79-4f19-9720-fb0b8a304b0a", "time": 1730316644} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "1f30456a-1f79-4f19-9720-fb0b8a304b0a", "time": 1730316645} -{"event": "command_settings", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "1f30456a-1f79-4f19-9720-fb0b8a304b0a", "time": 1730316661} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7", "$lib": "posthog-python", "$lib_version": "3.7.0", "$geoip_disable": true}, "user_id": "3645b476-b3d5-46d6-aa89-864bf75dfb5b", "time": 1730317188} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7", "$lib": "posthog-python", "$lib_version": "3.7.0", "$geoip_disable": true}, "user_id": "3645b476-b3d5-46d6-aa89-864bf75dfb5b", "time": 1730317189} -{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7", "$lib": "posthog-python", "$lib_version": "3.7.0", "$geoip_disable": true}, "user_id": "3645b476-b3d5-46d6-aa89-864bf75dfb5b", "time": 1730317192} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7", "$lib": "posthog-python", "$lib_version": "3.7.0", "$geoip_disable": true}, "user_id": "3645b476-b3d5-46d6-aa89-864bf75dfb5b", "time": 1730317294} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7", "$lib": "posthog-python", "$lib_version": "3.7.0", "$geoip_disable": true}, "user_id": "3645b476-b3d5-46d6-aa89-864bf75dfb5b", "time": 1730317294} -{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7", "$lib": "posthog-python", "$lib_version": "3.7.0", "$geoip_disable": true}, "user_id": "3645b476-b3d5-46d6-aa89-864bf75dfb5b", "time": 1730317302} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "3645b476-b3d5-46d6-aa89-864bf75dfb5b", "time": 1730317724} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "3645b476-b3d5-46d6-aa89-864bf75dfb5b", "time": 1730317725} -{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "3645b476-b3d5-46d6-aa89-864bf75dfb5b", "time": 1730317726} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "092dd9f6-5445-42cd-b90c-a9e456b37a74", "time": 1730317730} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "092dd9f6-5445-42cd-b90c-a9e456b37a74", "time": 1730317730} -{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "092dd9f6-5445-42cd-b90c-a9e456b37a74", "time": 1730317731} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "092dd9f6-5445-42cd-b90c-a9e456b37a74", "time": 1730317749} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "092dd9f6-5445-42cd-b90c-a9e456b37a74", "time": 1730317749} -{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "092dd9f6-5445-42cd-b90c-a9e456b37a74", "time": 1730317751} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7", "$lib": "posthog-python", "$lib_version": "3.7.0", "$geoip_disable": true}, "user_id": "092dd9f6-5445-42cd-b90c-a9e456b37a74", "time": 1730317753} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7", "$lib": "posthog-python", "$lib_version": "3.7.0", "$geoip_disable": true}, "user_id": "092dd9f6-5445-42cd-b90c-a9e456b37a74", "time": 1730317753} -{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7", "$lib": "posthog-python", "$lib_version": "3.7.0", "$geoip_disable": true}, "user_id": "092dd9f6-5445-42cd-b90c-a9e456b37a74", "time": 1730317754} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "092dd9f6-5445-42cd-b90c-a9e456b37a74", "time": 1730318254} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "092dd9f6-5445-42cd-b90c-a9e456b37a74", "time": 1730318254} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730318258} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730318259} -{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730318260} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7", "$lib": "posthog-python", "$lib_version": "3.7.0", "$geoip_disable": true}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730318328} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7", "$lib": "posthog-python", "$lib_version": "3.7.0", "$geoip_disable": true}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730318328} -{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7", "$lib": "posthog-python", "$lib_version": "3.7.0", "$geoip_disable": true}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730318331} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730318336} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730318337} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730318367} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730318367} -{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730318371} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730318373} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730318373} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730318398} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730318398} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730318403} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730318404} -{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730318407} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730318451} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730318451} -{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730318455} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730319350} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730319838} -{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730319839} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730323755} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730323810} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730323820} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730323821} -{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730323824} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730323831} -{"event": "cli session", "properties": {"main_model": "some/REDACTED", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730323851} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730323974} -{"event": "model warning", "properties": {"main_model": "some/REDACTED", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730323975} -{"event": "cli session", "properties": {"main_model": "some/REDACTED", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730323985} -{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730324000} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730324063} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730337491} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "5e16241e-8c66-479e-9954-1fbee80560a3", "time": 1730337491} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "cd4d7b34-79ca-4ffe-9fba-7557dbeb8a88", "time": 1730394556} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "cd4d7b34-79ca-4ffe-9fba-7557dbeb8a88", "time": 1730394556} -{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "cd4d7b34-79ca-4ffe-9fba-7557dbeb8a88", "time": 1730394558} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "feeaed68-f237-48ad-ac13-807e1692cc40", "time": 1730400360} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "feeaed68-f237-48ad-ac13-807e1692cc40", "time": 1730400360} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "feeaed68-f237-48ad-ac13-807e1692cc40", "time": 1730405507} -{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "feeaed68-f237-48ad-ac13-807e1692cc40", "time": 1730405508} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730405785} -{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730405786} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730406699} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730406754} -{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730406756} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730407580} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730407592} -{"event": "model warning", "properties": {"main_model": "anthropic/REDACTED", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "anthropic/REDACTED", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730407593} -{"event": "cli session", "properties": {"main_model": "anthropic/REDACTED", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "anthropic/REDACTED", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730407596} {"event": "message_send", "properties": {"main_model": "anthropic/REDACTED", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "anthropic/REDACTED", "edit_format": "whole", "prompt_tokens": 1218, "completion_tokens": 0, "total_tokens": 1218, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730407601} {"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730407713} {"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730407713} @@ -998,3 +845,156 @@ {"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731533483} {"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731533488} {"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731533491} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731533590} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731533590} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.0"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731533800} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.0"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731533801} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731534026} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731534286} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731534286} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731538829} +{"event": "message_send", "properties": {"main_model": "gpt-4o-2024-08-06", "weak_model": "gpt-4o-mini", "editor_model": "gpt-4o-2024-08-06", "edit_format": "diff", "prompt_tokens": 2288, "completion_tokens": 12, "total_tokens": 2300, "cost": 0.005840000000000001, "total_cost": 0.005840000000000001, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731538833} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731538842} +{"event": "message_send", "properties": {"main_model": "gpt-4o-2024-08-06", "weak_model": "gpt-4o-mini", "editor_model": "gpt-4o-2024-08-06", "edit_format": "diff", "prompt_tokens": 2288, "completion_tokens": 12, "total_tokens": 2300, "cost": 0.005840000000000001, "total_cost": 0.005840000000000001, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731538845} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731538883} +{"event": "message_send", "properties": {"main_model": "gpt-4o-2024-08-06", "weak_model": "gpt-4o-mini", "editor_model": "gpt-4o-2024-08-06", "edit_format": "diff", "prompt_tokens": 2288, "completion_tokens": 34, "total_tokens": 2322, "cost": 0.00606, "total_cost": 0.00606, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731538887} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731543603} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731543661} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731543662} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731543783} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731543784} +{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731543787} +{"event": "command_ask", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731543808} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "ask", "prompt_tokens": 3462, "completion_tokens": 184, "total_tokens": 3646, "cost": 0.013146, "total_cost": 0.013146, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731543813} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 5748, "completion_tokens": 93, "total_tokens": 5841, "cost": 0.018639, "total_cost": 0.031785, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731543828} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731543916} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731543916} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731595683} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731595685} +{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731595699} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 6345, "completion_tokens": 165, "total_tokens": 6510, "cost": 0.02151, "total_cost": 0.02151, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731595711} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731596065} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731596065} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731596179} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731596180} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731611485} +{"event": "model warning", "properties": {"main_model": "gemini/REDACTED", "weak_model": "gemini/REDACTED", "editor_model": "gemini/REDACTED", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731611487} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731611501} +{"event": "model warning", "properties": {"main_model": "gemini/REDACTED", "weak_model": "gemini/REDACTED", "editor_model": "gemini/REDACTED", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731611503} +{"event": "message_send", "properties": {"main_model": "gemini/REDACTED", "weak_model": "gemini/REDACTED", "editor_model": "gemini/REDACTED", "edit_format": "whole", "prompt_tokens": 407, "completion_tokens": 0, "total_tokens": 407, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731611507} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731611562} +{"event": "message_send", "properties": {"main_model": "gemini/REDACTED", "weak_model": "gemini/REDACTED", "editor_model": "gemini/REDACTED", "edit_format": "whole", "prompt_tokens": 407, "completion_tokens": 0, "total_tokens": 407, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731611564} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731611573} +{"event": "message_send", "properties": {"main_model": "gemini/REDACTED", "weak_model": "gemini/REDACTED", "editor_model": "gemini/REDACTED", "edit_format": "whole", "prompt_tokens": 407, "completion_tokens": 0, "total_tokens": 407, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731611575} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731611582} +{"event": "message_send", "properties": {"main_model": "gemini/REDACTED", "weak_model": "gemini/REDACTED", "editor_model": "gemini/REDACTED", "edit_format": "whole", "prompt_tokens": 407, "completion_tokens": 0, "total_tokens": 407, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731611584} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731611626} +{"event": "message_send", "properties": {"main_model": "gemini/REDACTED", "weak_model": "gemini/REDACTED", "editor_model": "gemini/REDACTED", "edit_format": "whole", "prompt_tokens": 407, "completion_tokens": 0, "total_tokens": 407, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731611628} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731611667} +{"event": "message_send", "properties": {"main_model": "gemini/REDACTED", "weak_model": "gemini/REDACTED", "editor_model": "gemini/REDACTED", "edit_format": "whole", "prompt_tokens": 407, "completion_tokens": 0, "total_tokens": 407, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731611668} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731611706} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-1.5-flash-8b-exp-0827", "weak_model": "gemini/gemini-1.5-flash-8b-exp-0827", "editor_model": "gemini/gemini-1.5-flash-8b-exp-0827", "edit_format": "whole", "prompt_tokens": 594, "completion_tokens": 18, "total_tokens": 612, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731611708} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-1.5-flash-8b-exp-0827", "weak_model": "gemini/gemini-1.5-flash-8b-exp-0827", "editor_model": "gemini/gemini-1.5-flash-8b-exp-0827", "edit_format": "whole", "prompt_tokens": 628, "completion_tokens": 18, "total_tokens": 646, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731611709} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-1.5-flash-8b-exp-0827", "weak_model": "gemini/gemini-1.5-flash-8b-exp-0827", "editor_model": "gemini/gemini-1.5-flash-8b-exp-0827", "edit_format": "whole", "prompt_tokens": 662, "completion_tokens": 27, "total_tokens": 689, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731611709} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731611984} +{"event": "message_send", "properties": {"main_model": "gemini/REDACTED", "weak_model": "gemini/REDACTED", "editor_model": "gemini/REDACTED", "edit_format": "whole", "prompt_tokens": 407, "completion_tokens": 0, "total_tokens": 407, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731611986} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731616617} +{"event": "message_send", "properties": {"main_model": "gemini/REDACTED", "weak_model": "gemini/REDACTED", "editor_model": "gemini/REDACTED", "edit_format": "whole", "prompt_tokens": 407, "completion_tokens": 0, "total_tokens": 407, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731616619} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731616970} +{"event": "message_send", "properties": {"main_model": "gemini/REDACTED", "weak_model": "gemini/REDACTED", "editor_model": "gemini/REDACTED", "edit_format": "whole", "prompt_tokens": 407, "completion_tokens": 0, "total_tokens": 407, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731616973} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731620395} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731620439} +{"event": "message_send", "properties": {"main_model": "gemini/REDACTED", "weak_model": "gemini/REDACTED", "editor_model": "gemini/REDACTED", "edit_format": "whole", "prompt_tokens": 407, "completion_tokens": 0, "total_tokens": 407, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731620442} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731621334} +{"event": "message_send", "properties": {"main_model": "gemini/REDACTED", "weak_model": "gemini/REDACTED", "editor_model": "gemini/REDACTED", "edit_format": "whole", "prompt_tokens": 407, "completion_tokens": 0, "total_tokens": 407, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731621336} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731621350} +{"event": "message_send", "properties": {"main_model": "gemini/REDACTED", "weak_model": "gemini/REDACTED", "editor_model": "gemini/REDACTED", "edit_format": "whole", "prompt_tokens": 407, "completion_tokens": 0, "total_tokens": 407, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731621352} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731624550} +{"event": "cli session", "properties": {"main_model": "openrouter/REDACTED", "weak_model": "openrouter/REDACTED", "editor_model": "openrouter/REDACTED", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731624552} +{"event": "message_send", "properties": {"main_model": "openrouter/REDACTED", "weak_model": "openrouter/REDACTED", "editor_model": "openrouter/REDACTED", "edit_format": "diff", "prompt_tokens": 4769, "completion_tokens": 48, "total_tokens": 4817, "cost": 0.00086706, "total_cost": 0.00086706, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731624556} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731624557} +{"event": "message_send", "properties": {"main_model": "gemini/REDACTED", "weak_model": "gemini/REDACTED", "editor_model": "gemini/REDACTED", "edit_format": "whole", "prompt_tokens": 407, "completion_tokens": 0, "total_tokens": 407, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731624559} +{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731625587} +{"event": "message_send", "properties": {"main_model": "openrouter/REDACTED", "weak_model": "openrouter/REDACTED", "editor_model": "openrouter/REDACTED", "edit_format": "diff", "prompt_tokens": 8673, "completion_tokens": 2046, "total_tokens": 10719, "cost": 0.0019294199999999998, "total_cost": 0.0027964799999999996, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731625715} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731625717} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731625718} +{"event": "command_read-only", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731625721} +{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731625754} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731625777} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731625779} +{"event": "command_tokens", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731625785} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731625791} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731625792} +{"event": "command_read-only", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731625796} +{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731625797} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731625986} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731625988} +{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731625994} +{"event": "command_drop", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731626182} +{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731626185} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731626222} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731626223} +{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731626229} +{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731626264} +{"event": "command_reset", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731626271} +{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731626272} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 9823, "completion_tokens": 203, "total_tokens": 10026, "cost": 0.032514, "total_cost": 0.054024, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731626324} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731626346} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731626348} +{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731626349} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731626419} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731626419} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731627336} +{"event": "message_send", "properties": {"main_model": "gemini/REDACTED", "weak_model": "gemini/REDACTED", "editor_model": "gemini/REDACTED", "edit_format": "whole", "prompt_tokens": 407, "completion_tokens": 0, "total_tokens": 407, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731627339} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731639542} +{"event": "model warning", "properties": {"main_model": "ollama/REDACTED", "weak_model": "ollama/REDACTED", "editor_model": "ollama/REDACTED", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731639544} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731639553} +{"event": "model warning", "properties": {"main_model": "ollama/REDACTED", "weak_model": "ollama/REDACTED", "editor_model": "ollama/REDACTED", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731639554} +{"event": "cli session", "properties": {"main_model": "ollama/REDACTED", "weak_model": "ollama/REDACTED", "editor_model": "ollama/REDACTED", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731639562} +{"event": "message_send", "properties": {"main_model": "ollama/REDACTED", "weak_model": "ollama/REDACTED", "editor_model": "ollama/REDACTED", "edit_format": "whole", "prompt_tokens": 594, "completion_tokens": 8, "total_tokens": 602, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731639606} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731639615} +{"event": "model warning", "properties": {"main_model": "ollama/REDACTED", "weak_model": "ollama/REDACTED", "editor_model": "ollama/REDACTED", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731639617} +{"event": "cli session", "properties": {"main_model": "ollama/REDACTED", "weak_model": "ollama/REDACTED", "editor_model": "ollama/REDACTED", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731639623} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731639689} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731639698} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731641191} +{"event": "model warning", "properties": {"main_model": "ollama/REDACTED", "weak_model": "ollama/REDACTED", "editor_model": "ollama/REDACTED", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731641193} +{"event": "cli session", "properties": {"main_model": "ollama/REDACTED", "weak_model": "ollama/REDACTED", "editor_model": "ollama/REDACTED", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731641196} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731647898} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731648009} +{"event": "message_send", "properties": {"main_model": "gemini/REDACTED", "weak_model": "gemini/REDACTED", "editor_model": "gemini/REDACTED", "edit_format": "whole", "prompt_tokens": 407, "completion_tokens": 0, "total_tokens": 407, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731648011} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731677431} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731677431} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731677485} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731677535} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731677567} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731677610} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731677621} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731677634} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731677746} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731677746} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731678074} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731678076} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 9091, "completion_tokens": 555, "total_tokens": 9646, "cost": 0.035598000000000005, "total_cost": 0.035598000000000005, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731678118} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 9902, "completion_tokens": 595, "total_tokens": 10497, "cost": 0.038631, "total_cost": 0.074229, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731678197} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731678388} +{"event": "message_send", "properties": {"main_model": "gemini/REDACTED", "weak_model": "gemini/REDACTED", "editor_model": "gemini/REDACTED", "edit_format": "whole", "prompt_tokens": 407, "completion_tokens": 0, "total_tokens": 407, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731678390} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731679897} +{"event": "model warning", "properties": {"main_model": "openai/REDACTED", "weak_model": "openai/REDACTED", "editor_model": "openai/REDACTED", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731679899} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731680025} +{"event": "model warning", "properties": {"main_model": "openai/REDACTED", "weak_model": "openai/REDACTED", "editor_model": "openai/REDACTED", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731680026} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731680050} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731680110} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731680111} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731680112} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731680116} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731684213} +{"event": "message_send", "properties": {"main_model": "gemini/REDACTED", "weak_model": "gemini/REDACTED", "editor_model": "gemini/REDACTED", "edit_format": "whole", "prompt_tokens": 407, "completion_tokens": 0, "total_tokens": 407, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731684215} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731684870} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731684872} +{"event": "command_run", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731684885} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 25812, "completion_tokens": 274, "total_tokens": 26086, "cost": 0.08154600000000001, "total_cost": 0.08154600000000001, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731684937} +{"event": "command_undo", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731684982} +{"event": "command_clear", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731685007} +{"event": "command_run", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731685009} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 32268, "completion_tokens": 408, "total_tokens": 32676, "cost": 0.102924, "total_cost": 0.18447000000000002, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731685032} From 7f48f3d01dac118687727725f62ee84fe71f26a7 Mon Sep 17 00:00:00 2001 From: mw Date: Fri, 15 Nov 2024 15:04:25 -0800 Subject: [PATCH 022/407] Added write_text exponential backoff to Discord thread ID: 1306776889762906123 Resolve issue where Aider fails to write multiple, consecutive changes to a single file due to Visual Studio briefly locking a file for writing after it was edited. Presumably VS is doing some sort of processing, such as for IntelliSense, behind the scenes. This solution is applicable to other, similar editor/IDE behaviors. --- aider/io.py | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/aider/io.py b/aider/io.py index 193b44599..0aaa9583b 100644 --- a/aider/io.py +++ b/aider/io.py @@ -333,14 +333,31 @@ class InputOutput: self.tool_error("Use --encoding to set the unicode encoding.") return - def write_text(self, filename, content): + def write_text(self, filename, content, max_retries=5, initial_delay=0.1): + """ + Writes content to a file, retrying with progressive backoff if the file is locked. + + :param filename: Path to the file to write. + :param content: Content to write to the file. + :param max_retries: Maximum number of retries if a file lock is encountered. + :param initial_delay: Initial delay (in seconds) before the first retry. + """ if self.dry_run: return - try: - with open(str(filename), "w", encoding=self.encoding) as f: - f.write(content) - except OSError as err: - self.tool_error(f"Unable to write file {filename}: {err}") + + delay = initial_delay + for attempt in range(max_retries): + try: + with open(str(filename), "w", encoding=self.encoding) as f: + f.write(content) + return # Successfully wrote the file + except OSError as err: + if attempt < max_retries - 1: + time.sleep(delay) + delay *= 2 # Exponential backoff + else: + self.tool_error(f"Unable to write file {filename} after {max_retries} attempts: {err}") + raise def rule(self): if self.pretty: From f7de2234f2111efb9a03ce5aafc29ee2d5372b30 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Fri, 15 Nov 2024 16:23:21 -0800 Subject: [PATCH 023/407] fix: Handle different OSError types in write_text method --- aider/io.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/aider/io.py b/aider/io.py index 0aaa9583b..0d7dd0dd4 100644 --- a/aider/io.py +++ b/aider/io.py @@ -351,13 +351,16 @@ class InputOutput: with open(str(filename), "w", encoding=self.encoding) as f: f.write(content) return # Successfully wrote the file - except OSError as err: + except PermissionError as err: if attempt < max_retries - 1: time.sleep(delay) delay *= 2 # Exponential backoff else: self.tool_error(f"Unable to write file {filename} after {max_retries} attempts: {err}") raise + except OSError as err: + self.tool_error(f"Unable to write file {filename}: {err}") + raise def rule(self): if self.pretty: From 76c7c2562cd3fa0c66925243bd15df2a72dd8db4 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Fri, 15 Nov 2024 16:23:26 -0800 Subject: [PATCH 024/407] style: Format code with linter for improved readability --- aider/io.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/aider/io.py b/aider/io.py index 0d7dd0dd4..b20496b27 100644 --- a/aider/io.py +++ b/aider/io.py @@ -356,7 +356,9 @@ class InputOutput: time.sleep(delay) delay *= 2 # Exponential backoff else: - self.tool_error(f"Unable to write file {filename} after {max_retries} attempts: {err}") + self.tool_error( + f"Unable to write file {filename} after {max_retries} attempts: {err}" + ) raise except OSError as err: self.tool_error(f"Unable to write file {filename}: {err}") From bdafa842bdd6ce2922177c49deb7f1388495e6cc Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Fri, 15 Nov 2024 16:23:37 -0800 Subject: [PATCH 025/407] fix: Add missing time import for time.sleep() in write_text method --- aider/io.py | 1 + 1 file changed, 1 insertion(+) diff --git a/aider/io.py b/aider/io.py index b20496b27..db59bec47 100644 --- a/aider/io.py +++ b/aider/io.py @@ -1,5 +1,6 @@ import base64 import os +import time import webbrowser from collections import defaultdict from dataclasses import dataclass From ee0987f33149464f9e11b7bd7d15f35924279469 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Mon, 18 Nov 2024 06:57:04 -0800 Subject: [PATCH 026/407] feat: Update HISTORY.md with recent changes since v0.63.1 --- HISTORY.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/HISTORY.md b/HISTORY.md index 8d6c42eeb..b864b3134 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -7,6 +7,10 @@ - Modified model metadata file loading to allow override of resource file. - Allow recursive loading of dirs using `--read`. - Updated dependency versions to pick up litellm fix for ollama models. +- Added exponential backoff retry when writing files to handle editor file locks. +- Fixed bug in git ignored file handling. +- Improved error handling for file writes and git operations. +- Updated Qwen 2.5 Coder 32B model configuration. ### Aider v0.63.1 From eae3f04c830a2390adf4531682c1b04f3a5cf9a1 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Mon, 18 Nov 2024 06:57:35 -0800 Subject: [PATCH 027/407] copy --- HISTORY.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/HISTORY.md b/HISTORY.md index b864b3134..e9ebb908f 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -8,8 +8,6 @@ - Allow recursive loading of dirs using `--read`. - Updated dependency versions to pick up litellm fix for ollama models. - Added exponential backoff retry when writing files to handle editor file locks. -- Fixed bug in git ignored file handling. -- Improved error handling for file writes and git operations. - Updated Qwen 2.5 Coder 32B model configuration. ### Aider v0.63.1 From 569370109abc134a46641371c08e85abd54db020 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Mon, 18 Nov 2024 07:11:46 -0800 Subject: [PATCH 028/407] copy --- aider/website/HISTORY.md | 2 + aider/website/assets/sample-analytics.jsonl | 92 ++++++++++----------- 2 files changed, 48 insertions(+), 46 deletions(-) diff --git a/aider/website/HISTORY.md b/aider/website/HISTORY.md index e87e9106f..44f8da599 100644 --- a/aider/website/HISTORY.md +++ b/aider/website/HISTORY.md @@ -29,6 +29,8 @@ cog.out(text) - Modified model metadata file loading to allow override of resource file. - Allow recursive loading of dirs using `--read`. - Updated dependency versions to pick up litellm fix for ollama models. +- Added exponential backoff retry when writing files to handle editor file locks. +- Updated Qwen 2.5 Coder 32B model configuration. ### Aider v0.63.1 diff --git a/aider/website/assets/sample-analytics.jsonl b/aider/website/assets/sample-analytics.jsonl index ae00d0056..37deaed69 100644 --- a/aider/website/assets/sample-analytics.jsonl +++ b/aider/website/assets/sample-analytics.jsonl @@ -1,49 +1,3 @@ -{"event": "message_send", "properties": {"main_model": "anthropic/REDACTED", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "anthropic/REDACTED", "edit_format": "whole", "prompt_tokens": 1218, "completion_tokens": 0, "total_tokens": 1218, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730407601} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730407713} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730407713} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730407784} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730407784} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730407812} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730407812} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730407847} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730407848} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730407963} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730407963} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730408020} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730408020} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730408030} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730408030} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730408070} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730408070} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730408244} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c22c476e-18e6-4a09-9b57-1002c91be450", "time": 1730408244} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730408426} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730408426} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730408493} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730408493} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730408525} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730408526} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730408549} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730408549} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730408583} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730408583} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730408615} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730408615} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730408687} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730408689} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730408703} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730408704} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730408729} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730408729} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730408833} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730408834} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730408850} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730408851} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730408987} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730408987} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730409038} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730409038} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730409073} {"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730409073} {"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730409129} {"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730409129} @@ -998,3 +952,49 @@ {"event": "command_clear", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731685007} {"event": "command_run", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731685009} {"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 32268, "completion_tokens": 408, "total_tokens": 32676, "cost": 0.102924, "total_cost": 0.18447000000000002, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731685032} +{"event": "command_reset", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731685344} +{"event": "command_run", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731685350} +{"event": "command_run", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731685394} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731685440} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731685442} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731685479} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731685479} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731685812} +{"event": "message_send", "properties": {"main_model": "gemini/REDACTED", "weak_model": "gemini/REDACTED", "editor_model": "gemini/REDACTED", "edit_format": "whole", "prompt_tokens": 407, "completion_tokens": 0, "total_tokens": 407, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731685814} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731686099} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731686101} +{"event": "command_run", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731686115} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731686144} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731686146} +{"event": "command_run", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731686197} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731690839} +{"event": "message_send", "properties": {"main_model": "gemini/REDACTED", "weak_model": "gemini/REDACTED", "editor_model": "gemini/REDACTED", "edit_format": "whole", "prompt_tokens": 407, "completion_tokens": 0, "total_tokens": 407, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731690841} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731695537} +{"event": "message_send", "properties": {"main_model": "gemini/REDACTED", "weak_model": "gemini/REDACTED", "editor_model": "gemini/REDACTED", "edit_format": "whole", "prompt_tokens": 407, "completion_tokens": 0, "total_tokens": 407, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731695539} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731706837} +{"event": "message_send", "properties": {"main_model": "gemini/REDACTED", "weak_model": "gemini/REDACTED", "editor_model": "gemini/REDACTED", "edit_format": "whole", "prompt_tokens": 407, "completion_tokens": 10, "total_tokens": 417, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731706845} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731716555} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731716557} +{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731716560} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 8857, "completion_tokens": 331, "total_tokens": 9188, "cost": 0.031536, "total_cost": 0.031536, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731716599} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 9983, "completion_tokens": 103, "total_tokens": 10086, "cost": 0.031494, "total_cost": 0.06303, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731716615} +{"event": "command_ask", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731716633} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "ask", "prompt_tokens": 7943, "completion_tokens": 206, "total_tokens": 8149, "cost": 0.026919, "total_cost": 0.089949, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731716638} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731716702} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731716703} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731941651} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731941653} +{"event": "command_run", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731941660} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 10465, "completion_tokens": 246, "total_tokens": 10711, "cost": 0.035085, "total_cost": 0.035085, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731941710} +{"event": "command_undo", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731941775} +{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731941781} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731941788} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731941790} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 14575, "completion_tokens": 0, "total_tokens": 14575, "cost": 0.043725, "total_cost": 0.043725, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731941794} +{"event": "command_clear", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731941797} +{"event": "command_run", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731941798} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 19682, "completion_tokens": 0, "total_tokens": 19682, "cost": 0.059046, "total_cost": 0.102771, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731941801} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731941803} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731941805} +{"event": "command_run", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731941806} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 19577, "completion_tokens": 394, "total_tokens": 19971, "cost": 0.064641, "total_cost": 0.064641, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731941822} From d7a195706f0dbbe75a3459be4281d58c8087e26b Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Mon, 18 Nov 2024 07:29:05 -0800 Subject: [PATCH 029/407] version bump to 0.63.2 --- aider/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aider/__init__.py b/aider/__init__.py index a10d8afc7..90dd6fd3c 100644 --- a/aider/__init__.py +++ b/aider/__init__.py @@ -1,6 +1,6 @@ try: from aider.__version__ import __version__ except Exception: - __version__ = "0.63.2.dev" + __version__ = "0.63.2" __all__ = [__version__] From abf804cf10fad5192d33d7d0bc4df2e64edaddaa Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Mon, 18 Nov 2024 07:30:21 -0800 Subject: [PATCH 030/407] set version to 0.63.3.dev --- aider/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aider/__init__.py b/aider/__init__.py index 90dd6fd3c..23925b316 100644 --- a/aider/__init__.py +++ b/aider/__init__.py @@ -1,6 +1,6 @@ try: from aider.__version__ import __version__ except Exception: - __version__ = "0.63.2" + __version__ = "0.63.3.dev" __all__ = [__version__] From 1f8fdc6f5c3e407505877a9f06d28e312b44281e Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Mon, 18 Nov 2024 07:44:48 -0800 Subject: [PATCH 031/407] refactor: Update issue script comments and add bot suffix --- scripts/issues.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/issues.py b/scripts/issues.py index 70ded8caf..999f5d0d9 100755 --- a/scripts/issues.py +++ b/scripts/issues.py @@ -22,13 +22,15 @@ def has_been_reopened(issue_number): # Load environment variables from .env file load_dotenv() +BOT_SUFFIX = "\n\nNote: A [bot script](https://github.com/Aider-AI/aider/blob/main/scripts/issues.py) made these updates to the issue." + DUPLICATE_COMMENT = """Thanks for trying aider and filing this issue. This looks like a duplicate of #{oldest_issue_number}. Please see the comments there for more information, and feel free to continue the discussion within that issue. I'm going to close this issue for now. But please let me know if you think this is actually a distinct issue and I will reopen this issue.""" # noqa -STALE_COMMENT = """I'm labeling this issue as stale because it has been open for 2 weeks with no activity. If there are no additional comments, it will be closed in 7 days.""" # noqa +STALE_COMMENT = """I'm labeling this issue as stale because it has been open for 2 weeks with no activity. If there are no additional comments, I will close it in 7 days.""" # noqa CLOSE_STALE_COMMENT = """I'm closing this issue because it has been stalled for 3 weeks with no activity. Feel free to add a comment here and we can re-open it. Or feel free to file a new issue at any time.""" # noqa From 4613bf78d568b7fa935c1aaab99408a9951b5d28 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Mon, 18 Nov 2024 07:44:50 -0800 Subject: [PATCH 032/407] feat: Add BOT_SUFFIX to issue comment templates --- scripts/issues.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/issues.py b/scripts/issues.py index 999f5d0d9..884360fd1 100755 --- a/scripts/issues.py +++ b/scripts/issues.py @@ -28,11 +28,11 @@ DUPLICATE_COMMENT = """Thanks for trying aider and filing this issue. This looks like a duplicate of #{oldest_issue_number}. Please see the comments there for more information, and feel free to continue the discussion within that issue. -I'm going to close this issue for now. But please let me know if you think this is actually a distinct issue and I will reopen this issue.""" # noqa +I'm going to close this issue for now. But please let me know if you think this is actually a distinct issue and I will reopen this issue.""" + BOT_SUFFIX # noqa -STALE_COMMENT = """I'm labeling this issue as stale because it has been open for 2 weeks with no activity. If there are no additional comments, I will close it in 7 days.""" # noqa +STALE_COMMENT = """I'm labeling this issue as stale because it has been open for 2 weeks with no activity. If there are no additional comments, I will close it in 7 days.""" + BOT_SUFFIX # noqa -CLOSE_STALE_COMMENT = """I'm closing this issue because it has been stalled for 3 weeks with no activity. Feel free to add a comment here and we can re-open it. Or feel free to file a new issue at any time.""" # noqa +CLOSE_STALE_COMMENT = """I'm closing this issue because it has been stalled for 3 weeks with no activity. Feel free to add a comment here and we can re-open it. Or feel free to file a new issue at any time.""" + BOT_SUFFIX # noqa # GitHub API configuration GITHUB_API_URL = "https://api.github.com" From 6d26051d1125919ba4c3cb0a1a60b1cd3eaf1383 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Mon, 18 Nov 2024 07:44:54 -0800 Subject: [PATCH 033/407] style: Reformat long string literals using parentheses --- scripts/issues.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/scripts/issues.py b/scripts/issues.py index 884360fd1..dc277e5b2 100755 --- a/scripts/issues.py +++ b/scripts/issues.py @@ -22,17 +22,29 @@ def has_been_reopened(issue_number): # Load environment variables from .env file load_dotenv() -BOT_SUFFIX = "\n\nNote: A [bot script](https://github.com/Aider-AI/aider/blob/main/scripts/issues.py) made these updates to the issue." +BOT_SUFFIX = ( + "\n\nNote: A [bot script](https://github.com/Aider-AI/aider/blob/main/scripts/issues.py) made" + " these updates to the issue." +) -DUPLICATE_COMMENT = """Thanks for trying aider and filing this issue. +DUPLICATE_COMMENT = ( + """Thanks for trying aider and filing this issue. This looks like a duplicate of #{oldest_issue_number}. Please see the comments there for more information, and feel free to continue the discussion within that issue. -I'm going to close this issue for now. But please let me know if you think this is actually a distinct issue and I will reopen this issue.""" + BOT_SUFFIX # noqa +I'm going to close this issue for now. But please let me know if you think this is actually a distinct issue and I will reopen this issue.""" + + BOT_SUFFIX +) # noqa -STALE_COMMENT = """I'm labeling this issue as stale because it has been open for 2 weeks with no activity. If there are no additional comments, I will close it in 7 days.""" + BOT_SUFFIX # noqa +STALE_COMMENT = ( + """I'm labeling this issue as stale because it has been open for 2 weeks with no activity. If there are no additional comments, I will close it in 7 days.""" + + BOT_SUFFIX +) # noqa -CLOSE_STALE_COMMENT = """I'm closing this issue because it has been stalled for 3 weeks with no activity. Feel free to add a comment here and we can re-open it. Or feel free to file a new issue at any time.""" + BOT_SUFFIX # noqa +CLOSE_STALE_COMMENT = ( + """I'm closing this issue because it has been stalled for 3 weeks with no activity. Feel free to add a comment here and we can re-open it. Or feel free to file a new issue at any time.""" + + BOT_SUFFIX +) # noqa # GitHub API configuration GITHUB_API_URL = "https://api.github.com" From 201abe152445ffc14233c5ae92bee6eabe93b86e Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Mon, 18 Nov 2024 07:46:00 -0800 Subject: [PATCH 034/407] refactor: Improve code formatting and add noqa comment in issues.py script --- scripts/issues.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/scripts/issues.py b/scripts/issues.py index dc277e5b2..9251d9ccf 100755 --- a/scripts/issues.py +++ b/scripts/issues.py @@ -23,8 +23,9 @@ def has_been_reopened(issue_number): load_dotenv() BOT_SUFFIX = ( - "\n\nNote: A [bot script](https://github.com/Aider-AI/aider/blob/main/scripts/issues.py) made" - " these updates to the issue." + """ +Note: A [bot script](https://github.com/Aider-AI/aider/blob/main/scripts/issues.py) made these updates to the issue. +""" # noqa ) DUPLICATE_COMMENT = ( @@ -293,7 +294,9 @@ def handle_stale_closing(all_issues, auto_yes): continue # Add closing comment - comment_url = f"{GITHUB_API_URL}/repos/{REPO_OWNER}/{REPO_NAME}/issues/{issue['number']}/comments" + comment_url = ( + f"{GITHUB_API_URL}/repos/{REPO_OWNER}/{REPO_NAME}/issues/{issue['number']}/comments" + ) response = requests.post( comment_url, headers=headers, json={"body": CLOSE_STALE_COMMENT} ) From 5295abbb833edb06dd7794eaedbdd6c28cb5081d Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Mon, 18 Nov 2024 07:46:23 -0800 Subject: [PATCH 035/407] style: Move #noqa comments to triple-quoted strings in issues.py --- scripts/issues.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/issues.py b/scripts/issues.py index 9251d9ccf..a03696f9b 100755 --- a/scripts/issues.py +++ b/scripts/issues.py @@ -38,14 +38,14 @@ I'm going to close this issue for now. But please let me know if you think this ) # noqa STALE_COMMENT = ( - """I'm labeling this issue as stale because it has been open for 2 weeks with no activity. If there are no additional comments, I will close it in 7 days.""" + """I'm labeling this issue as stale because it has been open for 2 weeks with no activity. If there are no additional comments, I will close it in 7 days.""" # noqa + BOT_SUFFIX -) # noqa +) CLOSE_STALE_COMMENT = ( - """I'm closing this issue because it has been stalled for 3 weeks with no activity. Feel free to add a comment here and we can re-open it. Or feel free to file a new issue at any time.""" + """I'm closing this issue because it has been stalled for 3 weeks with no activity. Feel free to add a comment here and we can re-open it. Or feel free to file a new issue at any time.""" # noqa + BOT_SUFFIX -) # noqa +) # GitHub API configuration GITHUB_API_URL = "https://api.github.com" From 5f40aaabb5e27262f2869c5b8d5f9a9ea0bafdf7 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Mon, 18 Nov 2024 07:46:28 -0800 Subject: [PATCH 036/407] style: Lint and clean up code formatting in issues.py script --- scripts/issues.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/scripts/issues.py b/scripts/issues.py index a03696f9b..35685985a 100755 --- a/scripts/issues.py +++ b/scripts/issues.py @@ -22,11 +22,9 @@ def has_been_reopened(issue_number): # Load environment variables from .env file load_dotenv() -BOT_SUFFIX = ( - """ +BOT_SUFFIX = """ Note: A [bot script](https://github.com/Aider-AI/aider/blob/main/scripts/issues.py) made these updates to the issue. -""" # noqa -) +""" # noqa DUPLICATE_COMMENT = ( """Thanks for trying aider and filing this issue. @@ -294,9 +292,7 @@ def handle_stale_closing(all_issues, auto_yes): continue # Add closing comment - comment_url = ( - f"{GITHUB_API_URL}/repos/{REPO_OWNER}/{REPO_NAME}/issues/{issue['number']}/comments" - ) + comment_url = f"{GITHUB_API_URL}/repos/{REPO_OWNER}/{REPO_NAME}/issues/{issue['number']}/comments" response = requests.post( comment_url, headers=headers, json={"body": CLOSE_STALE_COMMENT} ) From 8adf42216d2b0fb9f9e53562eaf1ed1f274e70cc Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Mon, 18 Nov 2024 07:47:30 -0800 Subject: [PATCH 037/407] copy --- scripts/issues.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/scripts/issues.py b/scripts/issues.py index 35685985a..721178fa9 100755 --- a/scripts/issues.py +++ b/scripts/issues.py @@ -22,8 +22,7 @@ def has_been_reopened(issue_number): # Load environment variables from .env file load_dotenv() -BOT_SUFFIX = """ -Note: A [bot script](https://github.com/Aider-AI/aider/blob/main/scripts/issues.py) made these updates to the issue. +BOT_SUFFIX = """Note: A [bot script](https://github.com/Aider-AI/aider/blob/main/scripts/issues.py) made these updates to the issue. """ # noqa DUPLICATE_COMMENT = ( @@ -31,9 +30,9 @@ DUPLICATE_COMMENT = ( This looks like a duplicate of #{oldest_issue_number}. Please see the comments there for more information, and feel free to continue the discussion within that issue. -I'm going to close this issue for now. But please let me know if you think this is actually a distinct issue and I will reopen this issue.""" +I'm going to close this issue for now. But please let me know if you think this is actually a distinct issue and I will reopen this issue.""" # noqa + BOT_SUFFIX -) # noqa +) STALE_COMMENT = ( """I'm labeling this issue as stale because it has been open for 2 weeks with no activity. If there are no additional comments, I will close it in 7 days.""" # noqa @@ -292,7 +291,7 @@ def handle_stale_closing(all_issues, auto_yes): continue # Add closing comment - comment_url = f"{GITHUB_API_URL}/repos/{REPO_OWNER}/{REPO_NAME}/issues/{issue['number']}/comments" + comment_url = f"{GITHUB_API_URL}/repos/{REPO_OWNER}/{REPO_NAME}/issues/{issue['number']}/comments" # noqa response = requests.post( comment_url, headers=headers, json={"body": CLOSE_STALE_COMMENT} ) From 4bd7bce232cd4d507672c2ead348c4d91f5d9bfe Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Mon, 18 Nov 2024 13:22:55 -0800 Subject: [PATCH 038/407] docs: Add example of using .aiderignore to focus on specific directories in monorepo --- aider/website/docs/faq.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/aider/website/docs/faq.md b/aider/website/docs/faq.md index 9c14e5f21..868af6b19 100644 --- a/aider/website/docs/faq.md +++ b/aider/website/docs/faq.md @@ -60,6 +60,23 @@ directory you start in. You can also create a `.aiderignore` file to tell aider to ignore parts of the repo that aren't relevant to your task. This file conforms to `.gitignore` syntax and conventions. +For example, to focus only on specific directories in a monorepo, +you could create a `.aiderignore` file with: + +``` +# Ignore everything +/* + +# Allow specific directories and their contents +!foo/ +!bar/ +!baz/ + +# Allow nested files under these directories +!foo/** +!bar/** +!baz/** +``` You can use `--aiderignore ` to name a specific file to use for ignore patterns. From a20ea09a6e65ac379b90e0f29f81ffa8bfb4d8ad Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Mon, 18 Nov 2024 13:28:14 -0800 Subject: [PATCH 039/407] refactor: Remove redundant `streaming=False` from model settings --- aider/models.py | 9 --------- 1 file changed, 9 deletions(-) diff --git a/aider/models.py b/aider/models.py index a5ea14320..2856c7707 100644 --- a/aider/models.py +++ b/aider/models.py @@ -629,7 +629,6 @@ MODEL_SETTINGS = [ reminder="user", use_system_prompt=False, use_temperature=False, - streaming=False, ), ModelSettings( "azure/o1-mini", @@ -641,7 +640,6 @@ MODEL_SETTINGS = [ reminder="user", use_system_prompt=False, use_temperature=False, - streaming=False, ), ModelSettings( "o1-mini", @@ -653,7 +651,6 @@ MODEL_SETTINGS = [ reminder="user", use_system_prompt=False, use_temperature=False, - streaming=False, ), ModelSettings( "openai/o1-preview", @@ -665,7 +662,6 @@ MODEL_SETTINGS = [ reminder="user", use_system_prompt=False, use_temperature=False, - streaming=False, ), ModelSettings( "azure/o1-preview", @@ -677,7 +673,6 @@ MODEL_SETTINGS = [ reminder="user", use_system_prompt=False, use_temperature=False, - streaming=False, ), ModelSettings( "o1-preview", @@ -689,7 +684,6 @@ MODEL_SETTINGS = [ reminder="user", use_system_prompt=False, use_temperature=False, - streaming=False, ), ModelSettings( "openrouter/openai/o1-mini", @@ -701,7 +695,6 @@ MODEL_SETTINGS = [ reminder="user", use_system_prompt=False, use_temperature=False, - streaming=False, ), ModelSettings( "openrouter/openai/o1-preview", @@ -713,7 +706,6 @@ MODEL_SETTINGS = [ reminder="user", use_system_prompt=False, use_temperature=False, - streaming=False, ), ModelSettings( "openrouter/qwen/qwen-2.5-coder-32b-instruct", @@ -878,7 +870,6 @@ class Model(ModelSettings): if model.startswith("o1-") or "/o1-" in model: self.use_system_prompt = False self.use_temperature = False - self.streaming = False if ( "qwen" in model From 72734de3766ac010f0c81eadb0df291bdfe8e13b Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Mon, 18 Nov 2024 13:28:47 -0800 Subject: [PATCH 040/407] copy --- aider/website/assets/sample-analytics.jsonl | 64 +++++++++---------- .../website/docs/config/adv-model-settings.md | 16 ++--- 2 files changed, 40 insertions(+), 40 deletions(-) diff --git a/aider/website/assets/sample-analytics.jsonl b/aider/website/assets/sample-analytics.jsonl index 37deaed69..a389267b2 100644 --- a/aider/website/assets/sample-analytics.jsonl +++ b/aider/website/assets/sample-analytics.jsonl @@ -1,35 +1,3 @@ -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730409073} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730409129} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730409129} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730409149} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730409149} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730409207} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730409368} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730409368} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 3647, "completion_tokens": 211, "total_tokens": 3858, "cost": 0.014106, "total_cost": 0.014106, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730409393} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730409453} -{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730409455} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730409582} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730409582} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730409714} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730409714} -{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730409722} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730409724} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730409725} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730409766} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730409766} -{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730409782} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730410248} -{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730410250} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730410851} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730410852} -{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730410896} -{"event": "command_chat-mode", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730410902} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "ask", "prompt_tokens": 6309, "completion_tokens": 904, "total_tokens": 7213, "cost": 0.032487, "total_cost": 0.032487, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730410958} -{"event": "command_code", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730410990} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 9288, "completion_tokens": 448, "total_tokens": 9736, "cost": 0.034584000000000004, "total_cost": 0.067071, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730411002} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730411007} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730411007} {"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730411013} {"event": "command_read-only", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730411019} {"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "ask", "prompt_tokens": 7880, "completion_tokens": 325, "total_tokens": 8205, "cost": 0.028515000000000002, "total_cost": 0.095586, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.60.2.dev13+g9e7995b7"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730411067} @@ -998,3 +966,35 @@ {"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731941805} {"event": "command_run", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731941806} {"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 19577, "completion_tokens": 394, "total_tokens": 19971, "cost": 0.064641, "total_cost": 0.064641, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731941822} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731942762} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731942762} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731943799} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.2.dev9+g38a5405c.d20241115"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731943799} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731944609} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731944611} +{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731944614} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 6551, "completion_tokens": 436, "total_tokens": 6987, "cost": 0.026193, "total_cost": 0.026193, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731944687} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 8345, "completion_tokens": 402, "total_tokens": 8747, "cost": 0.031065000000000002, "total_cost": 0.057258, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731944708} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 8769, "completion_tokens": 358, "total_tokens": 9127, "cost": 0.031677, "total_cost": 0.088935, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731944758} +{"event": "command_clear", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731944764} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 8350, "completion_tokens": 282, "total_tokens": 8632, "cost": 0.02928, "total_cost": 0.118215, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731944781} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731944931} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731944932} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731963466} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731963468} +{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731963471} +{"event": "command_ask", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731963501} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "ask", "prompt_tokens": 1825, "completion_tokens": 930, "total_tokens": 2755, "cost": 0.019425, "total_cost": 0.019425, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731963528} +{"event": "command_ask", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731963615} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "ask", "prompt_tokens": 2855, "completion_tokens": 407, "total_tokens": 3262, "cost": 0.014669999999999999, "total_cost": 0.034095, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731963624} +{"event": "command_ask", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731963692} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "ask", "prompt_tokens": 3282, "completion_tokens": 553, "total_tokens": 3835, "cost": 0.018141, "total_cost": 0.052236000000000005, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731963705} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 5983, "completion_tokens": 1033, "total_tokens": 7016, "cost": 0.033444, "total_cost": 0.08568, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731963755} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731963947} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731963950} +{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731964943} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 5595, "completion_tokens": 0, "total_tokens": 5595, "cost": 0.016785, "total_cost": 0.016785, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731964967} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 5645, "completion_tokens": 278, "total_tokens": 5923, "cost": 0.021105000000000002, "total_cost": 0.03789000000000001, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731964974} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731965068} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731965069} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731965289} diff --git a/aider/website/docs/config/adv-model-settings.md b/aider/website/docs/config/adv-model-settings.md index 0f4fe386c..3ebf763ee 100644 --- a/aider/website/docs/config/adv-model-settings.md +++ b/aider/website/docs/config/adv-model-settings.md @@ -1057,7 +1057,7 @@ cog.out("```\n") name: openai/o1-mini reminder: user send_undo_reply: false - streaming: false + streaming: true use_repo_map: true use_system_prompt: false use_temperature: false @@ -1073,7 +1073,7 @@ cog.out("```\n") name: azure/o1-mini reminder: user send_undo_reply: false - streaming: false + streaming: true use_repo_map: true use_system_prompt: false use_temperature: false @@ -1089,7 +1089,7 @@ cog.out("```\n") name: o1-mini reminder: user send_undo_reply: false - streaming: false + streaming: true use_repo_map: true use_system_prompt: false use_temperature: false @@ -1105,7 +1105,7 @@ cog.out("```\n") name: openai/o1-preview reminder: user send_undo_reply: false - streaming: false + streaming: true use_repo_map: true use_system_prompt: false use_temperature: false @@ -1121,7 +1121,7 @@ cog.out("```\n") name: azure/o1-preview reminder: user send_undo_reply: false - streaming: false + streaming: true use_repo_map: true use_system_prompt: false use_temperature: false @@ -1137,7 +1137,7 @@ cog.out("```\n") name: o1-preview reminder: user send_undo_reply: false - streaming: false + streaming: true use_repo_map: true use_system_prompt: false use_temperature: false @@ -1153,7 +1153,7 @@ cog.out("```\n") name: openrouter/openai/o1-mini reminder: user send_undo_reply: false - streaming: false + streaming: true use_repo_map: true use_system_prompt: false use_temperature: false @@ -1169,7 +1169,7 @@ cog.out("```\n") name: openrouter/openai/o1-preview reminder: user send_undo_reply: false - streaming: false + streaming: true use_repo_map: true use_system_prompt: false use_temperature: false From 3c9c6eef6ea1595f73253c137018d6224dca7076 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Mon, 18 Nov 2024 13:37:02 -0800 Subject: [PATCH 041/407] feat: Add URL validation and Content Security Policy to share page --- aider/website/share/index.md | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/aider/website/share/index.md b/aider/website/share/index.md index f4a5d7248..95e755f26 100644 --- a/aider/website/share/index.md +++ b/aider/website/share/index.md @@ -2,6 +2,12 @@ nav_exclude: true --- + + # Shared aider chat transcript A user has shared the following transcript of a pair programming chat session @@ -38,10 +44,20 @@ print("goodbye") + From 06a5fec6129306256cceb1edcdb21c62c9f31d82 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Mon, 18 Nov 2024 13:45:50 -0800 Subject: [PATCH 043/407] feat: Include .md files from aider/website/share/ in blame statistics --- scripts/blame.py | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/blame.py b/scripts/blame.py index 2700b7eec..13ad5d650 100755 --- a/scripts/blame.py +++ b/scripts/blame.py @@ -25,6 +25,7 @@ def blame(start_tag, end_tag=None): for f in files if f.endswith((".py", ".scm", ".sh", "Dockerfile", "Gemfile")) or (f.startswith(".github/workflows/") and f.endswith(".yml")) + or (f.startswith("aider/website/share/") and f.endswith(".md")) ] files = [f for f in files if not f.endswith("prompts.py")] From 21a28623ca1ab2e6586eaea6bf209b67f011cd8f Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Mon, 18 Nov 2024 13:46:43 -0800 Subject: [PATCH 044/407] feat: Explicitly include specific markdown files in blame script --- scripts/blame.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/blame.py b/scripts/blame.py index 13ad5d650..41b14aaa0 100755 --- a/scripts/blame.py +++ b/scripts/blame.py @@ -25,7 +25,8 @@ def blame(start_tag, end_tag=None): for f in files if f.endswith((".py", ".scm", ".sh", "Dockerfile", "Gemfile")) or (f.startswith(".github/workflows/") and f.endswith(".yml")) - or (f.startswith("aider/website/share/") and f.endswith(".md")) + or f == "aider/website/share/index.md" + or f == "aider/website/docs/leaderboards/index.md" ] files = [f for f in files if not f.endswith("prompts.py")] From ab5a8b24a53c1dd4b9a9869228d8c483ec2d5209 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Mon, 18 Nov 2024 13:56:46 -0800 Subject: [PATCH 045/407] updated blame --- aider/website/HISTORY.md | 2 +- aider/website/_data/blame.yml | 134 +++++++++++++++++++++------------- 2 files changed, 85 insertions(+), 51 deletions(-) diff --git a/aider/website/HISTORY.md b/aider/website/HISTORY.md index 44f8da599..dc0248b1c 100644 --- a/aider/website/HISTORY.md +++ b/aider/website/HISTORY.md @@ -12,7 +12,7 @@ description: Release notes and stats on aider writing its own code. The above [stats are based on the git commit history](/docs/faq.html#how-are-the-aider-wrote-xx-of-code-stats-computed) -in the aider repo. +of the aider repo. -November 11, 2024. +November 20, 2024.

From 788956e86d1ae5322e6bc2111dd9dc89b9351025 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 07:56:28 -0800 Subject: [PATCH 123/407] refactor: Update cache TTL in ModelInfoManager even on download failure --- aider/models.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/aider/models.py b/aider/models.py index b5cd9cd9f..73ed42300 100644 --- a/aider/models.py +++ b/aider/models.py @@ -754,6 +754,12 @@ class ModelInfoManager: pass except Exception as ex: print(str(ex)) + finally: + # Touch the cache file to update its mtime even if download failed + try: + self.cache_file.touch() + except OSError: + pass def get_model_from_cached_json_db(self, model): if not self.content: From aac45097ca64e52ba1a7c871fedfa2597efb6d54 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 07:57:56 -0800 Subject: [PATCH 124/407] fix: Save empty dict to cache file on download failure --- aider/models.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/aider/models.py b/aider/models.py index 73ed42300..32f640675 100644 --- a/aider/models.py +++ b/aider/models.py @@ -754,10 +754,9 @@ class ModelInfoManager: pass except Exception as ex: print(str(ex)) - finally: - # Touch the cache file to update its mtime even if download failed try: - self.cache_file.touch() + # Save empty dict to cache file on failure + self.cache_file.write_text("{}") except OSError: pass From 3bb8b163b8427e9130f36074df6d88e3dc37ea2f Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 08:09:53 -0800 Subject: [PATCH 125/407] feat: Update HISTORY.md with new release notes entries --- HISTORY.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/HISTORY.md b/HISTORY.md index 6b6cbd6dd..510102adb 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -10,6 +10,9 @@ - Architect mode now asks to add files suggested by the LLM. - Fixed bug in fuzzy model name matching. - Added Timeout exception to handle API provider timeouts. +- Added `--show-release-notes` to control release notes display on first run. +- Improved release notes display logic and user interaction flow. +- Save empty dict to cache file on model metadata download failure. - Improved error handling and code formatting. - Aider wrote 53% of the code in this release. From 2ac077603bd2312bf1188e64c8ccd1ca8599a3fd Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 08:16:55 -0800 Subject: [PATCH 126/407] feat: Update add_to_input_history to immediately update prompt session history --- aider/io.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/aider/io.py b/aider/io.py index cbbbd944a..0967b0da7 100644 --- a/aider/io.py +++ b/aider/io.py @@ -478,8 +478,8 @@ class InputOutput: return FileHistory(self.input_history_file).append_string(inp) # Also add to the in-memory history if it exists - if hasattr(self, "session") and hasattr(self.session, "history"): - self.session.history.append_string(inp) + if self.prompt_session and self.prompt_session.history: + self.prompt_session.history.append_string(inp) def get_input_history(self): if not self.input_history_file: From 18a88596a6675067eca41d5469f8d1b97a86ed32 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Wed, 20 Nov 2024 11:33:16 -0800 Subject: [PATCH 127/407] Added gpt-4o-2024-11-20 --- aider/website/_data/edit_leaderboard.yml | 25 +++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/aider/website/_data/edit_leaderboard.yml b/aider/website/_data/edit_leaderboard.yml index 754bc52a8..51df6569f 100644 --- a/aider/website/_data/edit_leaderboard.yml +++ b/aider/website/_data/edit_leaderboard.yml @@ -1840,4 +1840,27 @@ date: 2024-11-20 versions: 0.63.3.dev seconds_per_case: 24.9 - total_cost: 3.2334 \ No newline at end of file + total_cost: 3.2334 + +- dirname: 2024-11-20-19-28-30--gpt-4o-2024-11-20 + test_cases: 133 + model: openai/gpt-4o-2024-11-20 + edit_format: diff + commit_hash: 2ac0776-dirty + pass_rate_1: 58.6 + pass_rate_2: 71.4 + percent_cases_well_formed: 99.2 + error_outputs: 1 + num_malformed_responses: 1 + num_with_malformed_responses: 1 + user_asks: 4 + lazy_comments: 0 + syntax_errors: 0 + indentation_errors: 0 + exhausted_context_windows: 0 + test_timeouts: 5 + command: aider --model openai/gpt-4o-2024-11-20 + date: 2024-11-20 + versions: 0.63.3.dev + seconds_per_case: 6.0 + total_cost: 0.0000 \ No newline at end of file From a06a9ed7d81c2c1fac1954e791e25bfa6e1d84fc Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Wed, 20 Nov 2024 15:31:32 -0800 Subject: [PATCH 128/407] show the /editor message --- aider/commands.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/aider/commands.py b/aider/commands.py index 37441390a..35a3ed9b5 100644 --- a/aider/commands.py +++ b/aider/commands.py @@ -1371,7 +1371,8 @@ class Commands: "Open an editor to write a prompt" user_input = pipe_editor(initial_content, suffix="md") - self.io.display_user_input(user_input) + self.io.user_input(user_input, log_only=False) + self.io.add_to_input_history(user_input) return user_input From 1aaa3d9279869a76f076ea4e5b14929c40a9fa4c Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Wed, 20 Nov 2024 15:31:47 -0800 Subject: [PATCH 129/407] gpt-4o-2024-11-20 --- aider/models.py | 16 ++++++++++++++++ aider/website/_data/edit_leaderboard.yml | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/aider/models.py b/aider/models.py index 32f640675..8faf9c061 100644 --- a/aider/models.py +++ b/aider/models.py @@ -161,6 +161,22 @@ MODEL_SETTINGS = [ lazy=True, reminder="sys", ), + ModelSettings( + "gpt-4o-2024-11-20", + "diff", + weak_model_name="gpt-4o-mini", + use_repo_map=True, + lazy=True, + reminder="sys", + ), + ModelSettings( + "openai/gpt-4o-2024-11-20", + "diff", + weak_model_name="gpt-4o-mini", + use_repo_map=True, + lazy=True, + reminder="sys", + ), ModelSettings( "gpt-4o", "diff", diff --git a/aider/website/_data/edit_leaderboard.yml b/aider/website/_data/edit_leaderboard.yml index 51df6569f..5bb33236d 100644 --- a/aider/website/_data/edit_leaderboard.yml +++ b/aider/website/_data/edit_leaderboard.yml @@ -1844,7 +1844,7 @@ - dirname: 2024-11-20-19-28-30--gpt-4o-2024-11-20 test_cases: 133 - model: openai/gpt-4o-2024-11-20 + model: gpt-4o-2024-11-20 edit_format: diff commit_hash: 2ac0776-dirty pass_rate_1: 58.6 From c93f3faed91af9efe415373b939c2d1d4534c4aa Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Wed, 20 Nov 2024 15:33:00 -0800 Subject: [PATCH 130/407] cleanup openrouter/qwen/qwen-2.5-coder-32b-instruct in resources --- HISTORY.md | 6 +++--- aider/resources/model-metadata.json | 11 ----------- 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/HISTORY.md b/HISTORY.md index 510102adb..4dcd0035e 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -4,15 +4,15 @@ ### main branch - Added [`/editor` command](https://aider.chat/docs/usage/commands.html) to open system editor for writing prompts, by @thehunmonkgroup. +- Full support for `gpt-4o-2024-11-20`. - Stream o1 models by default. - Added support for [optional multiline input tags](https://aider.chat/docs/usage/commands.html#entering-multi-line-chat-messages) with matching closing tags. - Improved [model settings configuration](https://aider.chat/docs/config/adv-model-settings.html#global-extra-params) with support for global `extra_params` for `litellm.completion()`. - Architect mode now asks to add files suggested by the LLM. - Fixed bug in fuzzy model name matching. - Added Timeout exception to handle API provider timeouts. -- Added `--show-release-notes` to control release notes display on first run. -- Improved release notes display logic and user interaction flow. -- Save empty dict to cache file on model metadata download failure. +- Added `--show-release-notes` to control release notes display on first run of new version. +- Save empty dict to cache file on model metadata download failure, to delay retry. - Improved error handling and code formatting. - Aider wrote 53% of the code in this release. diff --git a/aider/resources/model-metadata.json b/aider/resources/model-metadata.json index a2fd02b12..e69de29bb 100644 --- a/aider/resources/model-metadata.json +++ b/aider/resources/model-metadata.json @@ -1,11 +0,0 @@ -{ - "openrouter/qwen/qwen-2.5-coder-32b-instruct": { - "max_tokens": 33792, - "max_input_tokens": 33792, - "max_output_tokens": 33792, - "input_cost_per_token": 0.00000018, - "output_cost_per_token": 0.00000018, - "litellm_provider": "openrouter", - "mode": "chat", - }, -} From 3a28e74d897ebfa0f5b40ce29814e7e31c33ad42 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Wed, 20 Nov 2024 16:03:51 -0800 Subject: [PATCH 131/407] copy --- aider/website/HISTORY.md | 3 + aider/website/assets/sample-analytics.jsonl | 88 +++++++++---------- .../website/docs/config/adv-model-settings.md | 32 +++++++ aider/website/docs/more/infinite-output.md | 7 +- 4 files changed, 85 insertions(+), 45 deletions(-) diff --git a/aider/website/HISTORY.md b/aider/website/HISTORY.md index 78e8f9c08..ee08a959f 100644 --- a/aider/website/HISTORY.md +++ b/aider/website/HISTORY.md @@ -28,12 +28,15 @@ cog.out(text) ### main branch - Added [`/editor` command](https://aider.chat/docs/usage/commands.html) to open system editor for writing prompts, by @thehunmonkgroup. +- Full support for `gpt-4o-2024-11-20`. - Stream o1 models by default. - Added support for [optional multiline input tags](https://aider.chat/docs/usage/commands.html#entering-multi-line-chat-messages) with matching closing tags. - Improved [model settings configuration](https://aider.chat/docs/config/adv-model-settings.html#global-extra-params) with support for global `extra_params` for `litellm.completion()`. - Architect mode now asks to add files suggested by the LLM. - Fixed bug in fuzzy model name matching. - Added Timeout exception to handle API provider timeouts. +- Added `--show-release-notes` to control release notes display on first run of new version. +- Save empty dict to cache file on model metadata download failure, to delay retry. - Improved error handling and code formatting. - Aider wrote 53% of the code in this release. diff --git a/aider/website/assets/sample-analytics.jsonl b/aider/website/assets/sample-analytics.jsonl index 58d4137fd..fbdb76b30 100644 --- a/aider/website/assets/sample-analytics.jsonl +++ b/aider/website/assets/sample-analytics.jsonl @@ -1,47 +1,3 @@ -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730754107} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730754113} -{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730754114} -{"event": "command_help", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730754114} -{"event": "interactive help", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730754114} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "help", "prompt_tokens": 4369, "completion_tokens": 162, "total_tokens": 4531, "cost": 0.015537, "total_cost": 0.015537, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730754131} -{"event": "command_help", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730754139} -{"event": "interactive help", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730754139} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "help", "prompt_tokens": 7756, "completion_tokens": 141, "total_tokens": 7897, "cost": 0.025383, "total_cost": 0.04092, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730754149} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730754160} -{"event": "cli session", "properties": {"main_model": "openrouter/anthropic/claude-3.5-sonnet", "weak_model": "openrouter/REDACTED", "editor_model": "openrouter/anthropic/claude-3.5-sonnet", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730754162} -{"event": "message_send", "properties": {"main_model": "openrouter/anthropic/claude-3.5-sonnet", "weak_model": "openrouter/REDACTED", "editor_model": "openrouter/anthropic/claude-3.5-sonnet", "edit_format": "diff", "prompt_tokens": 4597, "completion_tokens": 43, "total_tokens": 4640, "cost": 0.014436000000000001, "total_cost": 0.014436000000000001, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730754166} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730754174} -{"event": "cli session", "properties": {"main_model": "openrouter/REDACTED", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "openrouter/REDACTED", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730754176} -{"event": "message_send", "properties": {"main_model": "openrouter/REDACTED", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "openrouter/REDACTED", "edit_format": "whole", "prompt_tokens": 593, "completion_tokens": 53, "total_tokens": 646, "cost": 0.000858, "total_cost": 0.000858, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730754179} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730818364} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730818452} -{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730818452} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730818654} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730818656} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 4733, "completion_tokens": 745, "total_tokens": 5478, "cost": 0.025374, "total_cost": 0.025374, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730818718} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.61.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730818841} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.61.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730818842} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730818882} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730818884} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 4657, "completion_tokens": 83, "total_tokens": 4740, "cost": 0.015216, "total_cost": 0.015216, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730818900} -{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730818904} -{"event": "command_clear", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730818907} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 5113, "completion_tokens": 1484, "total_tokens": 6597, "cost": 0.037599, "total_cost": 0.052815, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730818940} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 6654, "completion_tokens": 435, "total_tokens": 7089, "cost": 0.026487, "total_cost": 0.079302, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730819050} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825144} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825234} -{"event": "cli session", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825235} -{"event": "message_send", "properties": {"main_model": "gpt-4o-mini", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-mini", "edit_format": "whole", "prompt_tokens": 674, "completion_tokens": 23, "total_tokens": 697, "cost": 0.00011489999999999999, "total_cost": 0.00011489999999999999, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825238} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825250} -{"event": "cli session", "properties": {"main_model": "None", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "None", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825252} -{"event": "message_send", "properties": {"main_model": "None", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "None", "edit_format": "diff", "prompt_tokens": 2185, "completion_tokens": 56, "total_tokens": 2241, "cost": 0.0024649999999999997, "total_cost": 0.0024649999999999997, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825255} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825273} -{"event": "cli session", "properties": {"main_model": "None", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "None", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825275} -{"event": "message_send", "properties": {"main_model": "None", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "None", "edit_format": "diff", "prompt_tokens": 4601, "completion_tokens": 0, "total_tokens": 4601, "cost": 0.004601, "total_cost": 0.004601, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825277} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825280} -{"event": "command_reset", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825329} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825344} -{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825345} {"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825356} {"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825371} {"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 12023, "completion_tokens": 494, "total_tokens": 12517, "cost": 0.043479000000000004, "total_cost": 0.122781, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825392} @@ -998,3 +954,47 @@ {"event": "cli session", "properties": {"main_model": "openrouter/mistralai/mistral-large", "weak_model": "openrouter/mistralai/mistral-large", "editor_model": "openrouter/mistralai/mistral-large", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732113633} {"event": "message_send", "properties": {"main_model": "openrouter/mistralai/mistral-large", "weak_model": "openrouter/mistralai/mistral-large", "editor_model": "openrouter/mistralai/mistral-large", "edit_format": "whole", "prompt_tokens": 407, "completion_tokens": 33, "total_tokens": 440, "cost": 0.0040479999999999995, "total_cost": 0.0040479999999999995, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732113636} {"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732115374} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732115650} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732115651} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732118126} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732118129} +{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732118132} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 12601, "completion_tokens": 334, "total_tokens": 12935, "cost": 0.042813000000000004, "total_cost": 0.042813000000000004, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732118186} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 13031, "completion_tokens": 349, "total_tokens": 13380, "cost": 0.044328000000000006, "total_cost": 0.08714100000000001, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732118274} +{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732118294} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732118349} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732118349} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732118579} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732118581} +{"event": "command_run", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732118588} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 32104, "completion_tokens": 304, "total_tokens": 32408, "cost": 0.100872, "total_cost": 0.100872, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732118617} +{"event": "command_undo", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732118643} +{"event": "command_editor", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732118656} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 14796, "completion_tokens": 157, "total_tokens": 14953, "cost": 0.04674300000000001, "total_cost": 0.147615, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732118706} +{"event": "command_undo", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732118724} +{"event": "command_clear", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732118792} +{"event": "command_run", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732118799} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732118841} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732118843} +{"event": "command_run", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732118849} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 32116, "completion_tokens": 410, "total_tokens": 32526, "cost": 0.102498, "total_cost": 0.102498, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732118887} +{"event": "command_undo", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732118905} +{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732118909} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732118933} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732118935} +{"event": "command_run", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732118951} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 32134, "completion_tokens": 539, "total_tokens": 32673, "cost": 0.104487, "total_cost": 0.104487, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732118973} +{"event": "command_editor", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732119025} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 14935, "completion_tokens": 0, "total_tokens": 14935, "cost": 0.044805000000000005, "total_cost": 0.149292, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732119135} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732119138} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732119140} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732119368} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732119370} +{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732119374} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 8871, "completion_tokens": 276, "total_tokens": 9147, "cost": 0.030753000000000003, "total_cost": 0.030753000000000003, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732119413} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732130811} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732130813} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732130833} +{"event": "message_send", "properties": {"main_model": "openai/REDACTED", "weak_model": "openai/REDACTED", "editor_model": "openai/REDACTED", "edit_format": "diff", "prompt_tokens": 1569, "completion_tokens": 9, "total_tokens": 1578, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732130836} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732145592} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732145592} diff --git a/aider/website/docs/config/adv-model-settings.md b/aider/website/docs/config/adv-model-settings.md index 7947ea758..74ca85cc2 100644 --- a/aider/website/docs/config/adv-model-settings.md +++ b/aider/website/docs/config/adv-model-settings.md @@ -265,6 +265,38 @@ cog.out("```\n") use_system_prompt: true use_temperature: true weak_model_name: gpt-4o-mini +- cache_control: false + caches_by_default: false + edit_format: diff + editor_edit_format: null + editor_model_name: null + examples_as_sys_msg: false + extra_params: null + lazy: true + name: gpt-4o-2024-11-20 + reminder: sys + send_undo_reply: false + streaming: true + use_repo_map: true + use_system_prompt: true + use_temperature: true + weak_model_name: gpt-4o-mini +- cache_control: false + caches_by_default: false + edit_format: diff + editor_edit_format: null + editor_model_name: null + examples_as_sys_msg: false + extra_params: null + lazy: true + name: openai/gpt-4o-2024-11-20 + reminder: sys + send_undo_reply: false + streaming: true + use_repo_map: true + use_system_prompt: true + use_temperature: true + weak_model_name: gpt-4o-mini - cache_control: false caches_by_default: false edit_format: diff diff --git a/aider/website/docs/more/infinite-output.md b/aider/website/docs/more/infinite-output.md index f590d0791..33e84188b 100644 --- a/aider/website/docs/more/infinite-output.md +++ b/aider/website/docs/more/infinite-output.md @@ -57,7 +57,6 @@ cog.out(model_list) ]]]--> - anthropic.claude-3-5-haiku-20241022-v1:0 - anthropic.claude-3-5-sonnet-20241022-v2:0 -- anthropic/claude-3-5-sonnet-20241022 - claude-3-5-haiku-20241022 - claude-3-5-sonnet-20240620 - claude-3-5-sonnet-20241022 @@ -91,11 +90,17 @@ cog.out(model_list) - openrouter/anthropic/claude-3.5-sonnet - us.anthropic.claude-3-5-haiku-20241022-v1:0 - us.anthropic.claude-3-5-sonnet-20241022-v2:0 +- vertex_ai/claude-3-5-haiku - vertex_ai/claude-3-5-haiku@20241022 +- vertex_ai/claude-3-5-sonnet +- vertex_ai/claude-3-5-sonnet-v2 - vertex_ai/claude-3-5-sonnet-v2@20241022 - vertex_ai/claude-3-5-sonnet@20240620 +- vertex_ai/claude-3-haiku - vertex_ai/claude-3-haiku@20240307 +- vertex_ai/claude-3-opus - vertex_ai/claude-3-opus@20240229 +- vertex_ai/claude-3-sonnet - vertex_ai/claude-3-sonnet@20240229 From 539a6cde634780e690cc02e20f7ef4c65082bac9 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Wed, 20 Nov 2024 16:22:01 -0800 Subject: [PATCH 132/407] feat: Enhance analytics opt-in logic with user sampling and explicit control --- aider/analytics.py | 17 +++++++++++++++-- aider/args.py | 4 ++-- aider/main.py | 4 ++-- tests/basic/test_analytics.py | 13 ++++++++++--- 4 files changed, 29 insertions(+), 9 deletions(-) diff --git a/aider/analytics.py b/aider/analytics.py index 5a0ace4b3..464f98f57 100644 --- a/aider/analytics.py +++ b/aider/analytics.py @@ -62,8 +62,21 @@ class Analytics: self.permanently_disable = True self.save_data() - def need_to_ask(self): - return not self.asked_opt_in and not self.permanently_disable + def need_to_ask(self, args_analytics): + if args_analytics is False: + return False + + could_ask = not self.asked_opt_in and not self.permanently_disable + if not could_ask: + return False + + if args_analytics is True: + return True + + assert args_analytics is None, args_analytics + + # ask 1/16 of the users + return self.user_id < "1" def get_data_file_path(self): data_file = Path.home() / ".aider" / "analytics.json" diff --git a/aider/args.py b/aider/args.py index 2a266f303..ec2545c8c 100644 --- a/aider/args.py +++ b/aider/args.py @@ -562,8 +562,8 @@ def get_parser(default_config_files, git_root): group.add_argument( "--analytics", action=argparse.BooleanOptionalAction, - default=False, - help="Enable/disable analytics for one session (default: False)", + default=None, + help="Enable/disable analytics for current session (default: random)", ) group.add_argument( "--analytics-log", diff --git a/aider/main.py b/aider/main.py index 89d01d72c..d38f3cc20 100644 --- a/aider/main.py +++ b/aider/main.py @@ -506,8 +506,8 @@ def main(argv=None, input=None, output=None, force_git_root=None, return_coder=F io.tool_warning("Terminal does not support pretty output (UnicodeDecodeError)") analytics = Analytics(logfile=args.analytics_log, permanently_disable=args.analytics_disable) - if args.analytics: - if analytics.need_to_ask(): + if args.analytics is not False: + if analytics.need_to_ask(args.analytics): io.tool_output( "Aider respects your privacy and never collects your code, chat messages, keys or" " personal info." diff --git a/tests/basic/test_analytics.py b/tests/basic/test_analytics.py index 11071cf50..baeb21ddc 100644 --- a/tests/basic/test_analytics.py +++ b/tests/basic/test_analytics.py @@ -91,10 +91,17 @@ def test_system_info(temp_data_dir): def test_need_to_ask(temp_data_dir): analytics = Analytics() - assert analytics.need_to_ask() is True + assert analytics.need_to_ask(True) is True + assert analytics.need_to_ask(False) is False + + analytics.user_id = "111" + assert analytics.need_to_ask(None) is False + + analytics.user_id = "000" + assert analytics.need_to_ask(None) is True analytics.asked_opt_in = True - assert analytics.need_to_ask() is False + assert analytics.need_to_ask(True) is False analytics.permanently_disable = True - assert analytics.need_to_ask() is False + assert analytics.need_to_ask(True) is False From ded60036cbd988ae47c120efb62ec06f58fe5b4a Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Wed, 20 Nov 2024 17:43:51 -0800 Subject: [PATCH 133/407] copy --- aider/website/assets/sample-analytics.jsonl | 6 ++-- aider/website/assets/sample.aider.conf.yml | 4 +-- aider/website/assets/sample.env | 4 +-- aider/website/docs/config/aider_conf.md | 4 +-- aider/website/docs/config/dotenv.md | 4 +-- aider/website/docs/config/options.md | 3 +- aider/website/docs/more/analytics.md | 32 ++++++++++++++------- 7 files changed, 34 insertions(+), 23 deletions(-) diff --git a/aider/website/assets/sample-analytics.jsonl b/aider/website/assets/sample-analytics.jsonl index fbdb76b30..5894250f8 100644 --- a/aider/website/assets/sample-analytics.jsonl +++ b/aider/website/assets/sample-analytics.jsonl @@ -1,6 +1,3 @@ -{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825356} -{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825371} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 12023, "completion_tokens": 494, "total_tokens": 12517, "cost": 0.043479000000000004, "total_cost": 0.122781, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825392} {"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825584} {"event": "model warning", "properties": {"main_model": "openrouter/REDACTED", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "openrouter/REDACTED", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825586} {"event": "cli session", "properties": {"main_model": "openrouter/REDACTED", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "openrouter/REDACTED", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825588} @@ -998,3 +995,6 @@ {"event": "message_send", "properties": {"main_model": "openai/REDACTED", "weak_model": "openai/REDACTED", "editor_model": "openai/REDACTED", "edit_format": "diff", "prompt_tokens": 1569, "completion_tokens": 9, "total_tokens": 1578, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732130836} {"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732145592} {"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732145592} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732147482} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732147483} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732148511} diff --git a/aider/website/assets/sample.aider.conf.yml b/aider/website/assets/sample.aider.conf.yml index e72459a2d..01956252f 100644 --- a/aider/website/assets/sample.aider.conf.yml +++ b/aider/website/assets/sample.aider.conf.yml @@ -271,8 +271,8 @@ ############ # Analytics: -## Enable/disable analytics for one session (default: False) -#analytics: false +## Enable/disable analytics for current session (default: random) +#analytics: xxx ## Specify a file to log analytics events #analytics-log: xxx diff --git a/aider/website/assets/sample.env b/aider/website/assets/sample.env index 61c7078c4..5c10ea14f 100644 --- a/aider/website/assets/sample.env +++ b/aider/website/assets/sample.env @@ -270,8 +270,8 @@ ############ # Analytics: -## Enable/disable analytics for one session (default: False) -#AIDER_ANALYTICS=false +## Enable/disable analytics for current session (default: random) +#AIDER_ANALYTICS= ## Specify a file to log analytics events #AIDER_ANALYTICS_LOG= diff --git a/aider/website/docs/config/aider_conf.md b/aider/website/docs/config/aider_conf.md index 13278a206..a6bc78fcc 100644 --- a/aider/website/docs/config/aider_conf.md +++ b/aider/website/docs/config/aider_conf.md @@ -327,8 +327,8 @@ cog.outl("```") ############ # Analytics: -## Enable/disable analytics for one session (default: False) -#analytics: false +## Enable/disable analytics for current session (default: random) +#analytics: xxx ## Specify a file to log analytics events #analytics-log: xxx diff --git a/aider/website/docs/config/dotenv.md b/aider/website/docs/config/dotenv.md index 2c33707e9..b484ebc72 100644 --- a/aider/website/docs/config/dotenv.md +++ b/aider/website/docs/config/dotenv.md @@ -312,8 +312,8 @@ cog.outl("```") ############ # Analytics: -## Enable/disable analytics for one session (default: False) -#AIDER_ANALYTICS=false +## Enable/disable analytics for current session (default: random) +#AIDER_ANALYTICS= ## Specify a file to log analytics events #AIDER_ANALYTICS_LOG= diff --git a/aider/website/docs/config/options.md b/aider/website/docs/config/options.md index a9ab64349..fd4eef894 100644 --- a/aider/website/docs/config/options.md +++ b/aider/website/docs/config/options.md @@ -511,8 +511,7 @@ Environment variable: `AIDER_TEST` ## Analytics: ### `--analytics` -Enable/disable analytics for one session (default: False) -Default: False +Enable/disable analytics for current session (default: random) Environment variable: `AIDER_ANALYTICS` Aliases: - `--analytics` diff --git a/aider/website/docs/more/analytics.md b/aider/website/docs/more/analytics.md index b44bcec63..24bd4910b 100644 --- a/aider/website/docs/more/analytics.md +++ b/aider/website/docs/more/analytics.md @@ -31,7 +31,7 @@ features and commands are most used. It also helps uncover bugs that users are experiencing, so that they can be fixed in upcoming releases. -## Enabling & disabling analytics +## Disabling analytics You can opt out of analytics forever by running this command one time: @@ -39,10 +39,27 @@ You can opt out of analytics forever by running this command one time: aider --analytics-disable ``` -To enable analytics for a single session, you can run aider with `--analytics`. -This will *not* have any effect if you have permanently disabled analytics with the previous command. +## Enabling analytics -The first time, you will need to agree to opt-in. +The `--[no-]analytics` switch controls whether analytics are enabled for the +current session: + +- `--analytics` will turn on analytics for the current session. +This will *not* have any effect if you have permanently disabled analytics +with `--analytics-disable`. +If this is the first time you have enabled analytics, aider +will confirm you wish to opt-in to analytics. +- `--no-analytics` will turn off analytics for the current session. +- By default, if you don't provide `--analytics` or `--no-analytics`, +aider will enable analytics for a random subset of users. +This will never happen if you have permanently disabled analytics +with `--analytics-disable`. +Randomly selected users will be asked if they wish to opt-in to analytics. + + +## Opting in + +The first time analytics are enabled, you will need to agree to opt-in. ``` aider --analytics @@ -53,13 +70,8 @@ For more info: https://aider.chat/docs/more/analytics.html Allow collection of anonymous analytics to help improve aider? (Y)es/(N)o [Yes]: ``` -If you've added `analytics: true` to your -[yaml config file](/docs/config/aider_conf.html), -you can disable analytics for a single session, you can run: +If you say "no", analytics will be permanently disabled. -``` -aider --no-analytics -``` ## Details about data being collected From 6e076a40a92734a10390e3f07ad2c85d64fb1dff Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Wed, 20 Nov 2024 17:52:50 -0800 Subject: [PATCH 134/407] refactor: Modify analytics sampling logic to use 1% of users --- aider/analytics.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/aider/analytics.py b/aider/analytics.py index 464f98f57..e702b8f41 100644 --- a/aider/analytics.py +++ b/aider/analytics.py @@ -75,8 +75,11 @@ class Analytics: assert args_analytics is None, args_analytics - # ask 1/16 of the users - return self.user_id < "1" + if not self.user_id: + return False + + # ask 1% of users + return self.user_id < "03" def get_data_file_path(self): data_file = Path.home() / ".aider" / "analytics.json" From 75f52a132406ac877401695da30f27344926b708 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 17:52:52 -0800 Subject: [PATCH 135/407] refactor: Improve user sampling logic with configurable percentage --- aider/analytics.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/aider/analytics.py b/aider/analytics.py index e702b8f41..537da259e 100644 --- a/aider/analytics.py +++ b/aider/analytics.py @@ -78,8 +78,11 @@ class Analytics: if not self.user_id: return False - # ask 1% of users - return self.user_id < "03" + # Define percentage of users to ask + PERCENT = 1 + # Convert percentage to hex threshold (1% = "03", 10% = "1a", etc) + threshold = format(int(256 * PERCENT / 100), "02x") + return self.user_id < threshold def get_data_file_path(self): data_file = Path.home() / ".aider" / "analytics.json" From 82187f6a71bda8864e6b49d578dc69d174664d70 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 17:54:16 -0800 Subject: [PATCH 136/407] refactor: Extract UUID percentage testing logic into a separate method with tests --- aider/analytics.py | 23 ++++++++++++++++++++--- tests/basic/test_analytics.py | 30 ++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 3 deletions(-) diff --git a/aider/analytics.py b/aider/analytics.py index 537da259e..02f6b1f92 100644 --- a/aider/analytics.py +++ b/aider/analytics.py @@ -78,11 +78,28 @@ class Analytics: if not self.user_id: return False - # Define percentage of users to ask PERCENT = 1 + return self.is_uuid_in_percentage(self.user_id, PERCENT) + + def is_uuid_in_percentage(self, uuid_str, percent): + """Check if a UUID string falls within the first X percent of the UUID space. + + Args: + uuid_str: UUID string to test + percent: Percentage threshold (0-100) + + Returns: + bool: True if UUID falls within the first X percent + """ + if not (0 <= percent <= 100): + raise ValueError("Percentage must be between 0 and 100") + + if not uuid_str: + return False + # Convert percentage to hex threshold (1% = "03", 10% = "1a", etc) - threshold = format(int(256 * PERCENT / 100), "02x") - return self.user_id < threshold + threshold = format(int(256 * percent / 100), "02x") + return uuid_str < threshold def get_data_file_path(self): data_file = Path.home() / ".aider" / "analytics.json" diff --git a/tests/basic/test_analytics.py b/tests/basic/test_analytics.py index baeb21ddc..9d7df7167 100644 --- a/tests/basic/test_analytics.py +++ b/tests/basic/test_analytics.py @@ -105,3 +105,33 @@ def test_need_to_ask(temp_data_dir): analytics.permanently_disable = True assert analytics.need_to_ask(True) is False + + +def test_is_uuid_in_percentage(): + analytics = Analytics() + + # Test basic percentage thresholds + assert analytics.is_uuid_in_percentage("00", 1) is True + assert analytics.is_uuid_in_percentage("02", 1) is True + assert analytics.is_uuid_in_percentage("03", 1) is False + assert analytics.is_uuid_in_percentage("ff", 1) is False + + assert analytics.is_uuid_in_percentage("00", 10) is True + assert analytics.is_uuid_in_percentage("19", 10) is True + assert analytics.is_uuid_in_percentage("1a", 10) is False + assert analytics.is_uuid_in_percentage("ff", 10) is False + + # Test edge cases + assert analytics.is_uuid_in_percentage("00", 0) is False + assert analytics.is_uuid_in_percentage("00", 100) is True + assert analytics.is_uuid_in_percentage("ff", 100) is True + + # Test invalid inputs + with pytest.raises(ValueError): + analytics.is_uuid_in_percentage("00", -1) + with pytest.raises(ValueError): + analytics.is_uuid_in_percentage("00", 101) + + # Test empty/None UUID + assert analytics.is_uuid_in_percentage("", 50) is False + assert analytics.is_uuid_in_percentage(None, 50) is False From 95c9863d0aa707937a9bfb5883e5cefd3ac1d042 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 17:54:22 -0800 Subject: [PATCH 137/407] style: Fix linter formatting in analytics module --- aider/analytics.py | 8 ++++---- tests/basic/test_analytics.py | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/aider/analytics.py b/aider/analytics.py index 02f6b1f92..737cae701 100644 --- a/aider/analytics.py +++ b/aider/analytics.py @@ -83,20 +83,20 @@ class Analytics: def is_uuid_in_percentage(self, uuid_str, percent): """Check if a UUID string falls within the first X percent of the UUID space. - + Args: uuid_str: UUID string to test percent: Percentage threshold (0-100) - + Returns: bool: True if UUID falls within the first X percent """ if not (0 <= percent <= 100): raise ValueError("Percentage must be between 0 and 100") - + if not uuid_str: return False - + # Convert percentage to hex threshold (1% = "03", 10% = "1a", etc) threshold = format(int(256 * percent / 100), "02x") return uuid_str < threshold diff --git a/tests/basic/test_analytics.py b/tests/basic/test_analytics.py index 9d7df7167..ef2ba884a 100644 --- a/tests/basic/test_analytics.py +++ b/tests/basic/test_analytics.py @@ -109,29 +109,29 @@ def test_need_to_ask(temp_data_dir): def test_is_uuid_in_percentage(): analytics = Analytics() - + # Test basic percentage thresholds assert analytics.is_uuid_in_percentage("00", 1) is True assert analytics.is_uuid_in_percentage("02", 1) is True assert analytics.is_uuid_in_percentage("03", 1) is False assert analytics.is_uuid_in_percentage("ff", 1) is False - + assert analytics.is_uuid_in_percentage("00", 10) is True assert analytics.is_uuid_in_percentage("19", 10) is True assert analytics.is_uuid_in_percentage("1a", 10) is False assert analytics.is_uuid_in_percentage("ff", 10) is False - + # Test edge cases assert analytics.is_uuid_in_percentage("00", 0) is False assert analytics.is_uuid_in_percentage("00", 100) is True assert analytics.is_uuid_in_percentage("ff", 100) is True - + # Test invalid inputs with pytest.raises(ValueError): analytics.is_uuid_in_percentage("00", -1) with pytest.raises(ValueError): analytics.is_uuid_in_percentage("00", 101) - + # Test empty/None UUID assert analytics.is_uuid_in_percentage("", 50) is False assert analytics.is_uuid_in_percentage(None, 50) is False From 1a1cb0d3f1adf8d70ce7ded2b9249f03cfc0e14b Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 17:55:40 -0800 Subject: [PATCH 138/407] fix: Correct percentage calculation in UUID sampling method --- aider/analytics.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/aider/analytics.py b/aider/analytics.py index 737cae701..baae92ae4 100644 --- a/aider/analytics.py +++ b/aider/analytics.py @@ -97,8 +97,9 @@ class Analytics: if not uuid_str: return False - # Convert percentage to hex threshold (1% = "03", 10% = "1a", etc) - threshold = format(int(256 * percent / 100), "02x") + # Convert percentage to hex threshold (1% = "04", 10% = "1a", etc) + # Using first 2 hex digits (0-ff) means each digit is 1/256 of the space + threshold = format(int(255 * percent / 100), "02x") return uuid_str < threshold def get_data_file_path(self): From 6b703244ecb44cd4bcfd8cedfbe3e09ccb92f955 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 17:56:07 -0800 Subject: [PATCH 139/407] fix: Correct percentage calculation in is_uuid_in_percentage method --- aider/analytics.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aider/analytics.py b/aider/analytics.py index baae92ae4..453879097 100644 --- a/aider/analytics.py +++ b/aider/analytics.py @@ -100,7 +100,7 @@ class Analytics: # Convert percentage to hex threshold (1% = "04", 10% = "1a", etc) # Using first 2 hex digits (0-ff) means each digit is 1/256 of the space threshold = format(int(255 * percent / 100), "02x") - return uuid_str < threshold + return uuid_str <= threshold def get_data_file_path(self): data_file = Path.home() / ".aider" / "analytics.json" From fa85bdceeda7b7d5a07d899c32473f69799f13a9 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Wed, 20 Nov 2024 17:58:16 -0800 Subject: [PATCH 140/407] fix: Correct sampling logic by changing <= to < in UUID comparison --- aider/analytics.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aider/analytics.py b/aider/analytics.py index 453879097..baae92ae4 100644 --- a/aider/analytics.py +++ b/aider/analytics.py @@ -100,7 +100,7 @@ class Analytics: # Convert percentage to hex threshold (1% = "04", 10% = "1a", etc) # Using first 2 hex digits (0-ff) means each digit is 1/256 of the space threshold = format(int(255 * percent / 100), "02x") - return uuid_str <= threshold + return uuid_str < threshold def get_data_file_path(self): data_file = Path.home() / ".aider" / "analytics.json" From 1a8949eea3fc37b982722d01959240b4a8b7a57f Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 17:58:18 -0800 Subject: [PATCH 141/407] fix: Correct UUID percentage calculation in analytics method --- aider/analytics.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/aider/analytics.py b/aider/analytics.py index baae92ae4..a1887e4a2 100644 --- a/aider/analytics.py +++ b/aider/analytics.py @@ -99,8 +99,10 @@ class Analytics: # Convert percentage to hex threshold (1% = "04", 10% = "1a", etc) # Using first 2 hex digits (0-ff) means each digit is 1/256 of the space + if percent == 0: + return False threshold = format(int(255 * percent / 100), "02x") - return uuid_str < threshold + return uuid_str[:2] <= threshold def get_data_file_path(self): data_file = Path.home() / ".aider" / "analytics.json" From 59f4a3bcc77b5a5f8489c93c338cc1ef302dd7ce Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Wed, 20 Nov 2024 17:58:50 -0800 Subject: [PATCH 142/407] test: Update UUID percentage threshold test case --- tests/basic/test_analytics.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/basic/test_analytics.py b/tests/basic/test_analytics.py index ef2ba884a..2d7f25e57 100644 --- a/tests/basic/test_analytics.py +++ b/tests/basic/test_analytics.py @@ -112,7 +112,7 @@ def test_is_uuid_in_percentage(): # Test basic percentage thresholds assert analytics.is_uuid_in_percentage("00", 1) is True - assert analytics.is_uuid_in_percentage("02", 1) is True + assert analytics.is_uuid_in_percentage("01999", 1) is True assert analytics.is_uuid_in_percentage("03", 1) is False assert analytics.is_uuid_in_percentage("ff", 1) is False From ec39f018e27ebf33837be58e2e15233efe503412 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 17:58:52 -0800 Subject: [PATCH 143/407] test: Update test_is_uuid_in_percentage with full-length UUIDs --- tests/basic/test_analytics.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/tests/basic/test_analytics.py b/tests/basic/test_analytics.py index 2d7f25e57..18194b1e8 100644 --- a/tests/basic/test_analytics.py +++ b/tests/basic/test_analytics.py @@ -111,26 +111,26 @@ def test_is_uuid_in_percentage(): analytics = Analytics() # Test basic percentage thresholds - assert analytics.is_uuid_in_percentage("00", 1) is True - assert analytics.is_uuid_in_percentage("01999", 1) is True - assert analytics.is_uuid_in_percentage("03", 1) is False - assert analytics.is_uuid_in_percentage("ff", 1) is False + assert analytics.is_uuid_in_percentage("00000000000000000000000000000000", 1) is True + assert analytics.is_uuid_in_percentage("01999000000000000000000000000000", 1) is True + assert analytics.is_uuid_in_percentage("03000000000000000000000000000000", 1) is False + assert analytics.is_uuid_in_percentage("ff000000000000000000000000000000", 1) is False - assert analytics.is_uuid_in_percentage("00", 10) is True - assert analytics.is_uuid_in_percentage("19", 10) is True - assert analytics.is_uuid_in_percentage("1a", 10) is False - assert analytics.is_uuid_in_percentage("ff", 10) is False + assert analytics.is_uuid_in_percentage("00000000000000000000000000000000", 10) is True + assert analytics.is_uuid_in_percentage("19000000000000000000000000000000", 10) is True + assert analytics.is_uuid_in_percentage("1a000000000000000000000000000000", 10) is False + assert analytics.is_uuid_in_percentage("ff000000000000000000000000000000", 10) is False # Test edge cases - assert analytics.is_uuid_in_percentage("00", 0) is False - assert analytics.is_uuid_in_percentage("00", 100) is True - assert analytics.is_uuid_in_percentage("ff", 100) is True + assert analytics.is_uuid_in_percentage("00000000000000000000000000000000", 0) is False + assert analytics.is_uuid_in_percentage("00000000000000000000000000000000", 100) is True + assert analytics.is_uuid_in_percentage("ffffffffffffffffffffffffffffffff", 100) is True # Test invalid inputs with pytest.raises(ValueError): - analytics.is_uuid_in_percentage("00", -1) + analytics.is_uuid_in_percentage("00000000000000000000000000000000", -1) with pytest.raises(ValueError): - analytics.is_uuid_in_percentage("00", 101) + analytics.is_uuid_in_percentage("00000000000000000000000000000000", 101) # Test empty/None UUID assert analytics.is_uuid_in_percentage("", 50) is False From e9e51db9c7b1f75e7e4c08a632491994fa65384d Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Wed, 20 Nov 2024 18:00:17 -0800 Subject: [PATCH 144/407] improve precision, tests --- aider/analytics.py | 8 ++++---- tests/basic/test_analytics.py | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/aider/analytics.py b/aider/analytics.py index a1887e4a2..6295f9e3f 100644 --- a/aider/analytics.py +++ b/aider/analytics.py @@ -97,12 +97,12 @@ class Analytics: if not uuid_str: return False - # Convert percentage to hex threshold (1% = "04", 10% = "1a", etc) - # Using first 2 hex digits (0-ff) means each digit is 1/256 of the space + # Convert percentage to hex threshold (1% = "04...", 10% = "1a...", etc) + # Using first 6 hex digits if percent == 0: return False - threshold = format(int(255 * percent / 100), "02x") - return uuid_str[:2] <= threshold + threshold = format(int(0xFFFFFF * percent / 100), "06x") + return uuid_str[:6] <= threshold def get_data_file_path(self): data_file = Path.home() / ".aider" / "analytics.json" diff --git a/tests/basic/test_analytics.py b/tests/basic/test_analytics.py index 18194b1e8..dd25e12c8 100644 --- a/tests/basic/test_analytics.py +++ b/tests/basic/test_analytics.py @@ -113,6 +113,8 @@ def test_is_uuid_in_percentage(): # Test basic percentage thresholds assert analytics.is_uuid_in_percentage("00000000000000000000000000000000", 1) is True assert analytics.is_uuid_in_percentage("01999000000000000000000000000000", 1) is True + assert analytics.is_uuid_in_percentage("02000000000000000000000000000000", 1) is True + assert analytics.is_uuid_in_percentage("02910000000000000000000000000001", 1) is False assert analytics.is_uuid_in_percentage("03000000000000000000000000000000", 1) is False assert analytics.is_uuid_in_percentage("ff000000000000000000000000000000", 1) is False From 35115f5707d818fef5a601d82c6ff6632b08d7f2 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 18:30:09 -0800 Subject: [PATCH 145/407] feat: Add orange color for Claude 3 Sonnet models in benchmark visualization --- benchmark/over_time.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/benchmark/over_time.py b/benchmark/over_time.py index 931b7e1d2..455a07ccb 100644 --- a/benchmark/over_time.py +++ b/benchmark/over_time.py @@ -12,6 +12,9 @@ def get_model_color(model): if model == "gpt-4o-mini": return default + if "claude-3-sonnet" in model.lower(): + return "orange" + if "-4o" in model: return "purple" @@ -73,8 +76,9 @@ def plot_over_time(yaml_file): purple_points = [(d, r) for d, r, c in zip(dates, pass_rates, colors) if c == "purple"] red_points = [(d, r) for d, r, c in zip(dates, pass_rates, colors) if c == "red"] green_points = [(d, r) for d, r, c in zip(dates, pass_rates, colors) if c == "green"] + orange_points = [(d, r) for d, r, c in zip(dates, pass_rates, colors) if c == "orange"] - # Plot lines for purple, red, and green points + # Plot lines for purple, red, green and orange points if purple_points: purple_dates, purple_rates = zip(*sorted(purple_points)) ax.plot(purple_dates, purple_rates, c="purple", alpha=0.5, linewidth=1) @@ -84,6 +88,9 @@ def plot_over_time(yaml_file): if green_points: green_dates, green_rates = zip(*sorted(green_points)) ax.plot(green_dates, green_rates, c="green", alpha=0.5, linewidth=1) + if orange_points: + orange_dates, orange_rates = zip(*sorted(orange_points)) + ax.plot(orange_dates, orange_rates, c="orange", alpha=0.5, linewidth=1) # Plot all points ax.scatter(dates, pass_rates, c=colors, alpha=0.5, s=120) From 16b319174b44a81ce4907e22eb471e5d15f29cfa Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Wed, 20 Nov 2024 18:31:44 -0800 Subject: [PATCH 146/407] refactor: Simplify model color detection logic for Sonnet models --- benchmark/over_time.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/over_time.py b/benchmark/over_time.py index 455a07ccb..98d206794 100644 --- a/benchmark/over_time.py +++ b/benchmark/over_time.py @@ -12,7 +12,7 @@ def get_model_color(model): if model == "gpt-4o-mini": return default - if "claude-3-sonnet" in model.lower(): + if "sonnet" in model.lower(): return "orange" if "-4o" in model: From 8f1dcfda07fbbc278dc791d30e4afe01a64b48d3 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 18:31:46 -0800 Subject: [PATCH 147/407] feat: Add brown color for DeepSeek models in benchmark visualization --- benchmark/over_time.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/benchmark/over_time.py b/benchmark/over_time.py index 98d206794..42a15eaa3 100644 --- a/benchmark/over_time.py +++ b/benchmark/over_time.py @@ -12,6 +12,9 @@ def get_model_color(model): if model == "gpt-4o-mini": return default + if "deepseek" in model.lower(): + return "brown" + if "sonnet" in model.lower(): return "orange" @@ -77,8 +80,9 @@ def plot_over_time(yaml_file): red_points = [(d, r) for d, r, c in zip(dates, pass_rates, colors) if c == "red"] green_points = [(d, r) for d, r, c in zip(dates, pass_rates, colors) if c == "green"] orange_points = [(d, r) for d, r, c in zip(dates, pass_rates, colors) if c == "orange"] + brown_points = [(d, r) for d, r, c in zip(dates, pass_rates, colors) if c == "brown"] - # Plot lines for purple, red, green and orange points + # Plot lines for purple, red, green, orange and brown points if purple_points: purple_dates, purple_rates = zip(*sorted(purple_points)) ax.plot(purple_dates, purple_rates, c="purple", alpha=0.5, linewidth=1) @@ -91,6 +95,9 @@ def plot_over_time(yaml_file): if orange_points: orange_dates, orange_rates = zip(*sorted(orange_points)) ax.plot(orange_dates, orange_rates, c="orange", alpha=0.5, linewidth=1) + if brown_points: + brown_dates, brown_rates = zip(*sorted(brown_points)) + ax.plot(brown_dates, brown_rates, c="brown", alpha=0.5, linewidth=1) # Plot all points ax.scatter(dates, pass_rates, c=colors, alpha=0.5, s=120) From 093540507ed93d3ceff9bb0f4017cf70ea24042b Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 18:33:54 -0800 Subject: [PATCH 148/407] feat: Add pink color and line for Haiku models in benchmark visualization --- benchmark/over_time.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/benchmark/over_time.py b/benchmark/over_time.py index 42a15eaa3..afae1d26e 100644 --- a/benchmark/over_time.py +++ b/benchmark/over_time.py @@ -12,6 +12,9 @@ def get_model_color(model): if model == "gpt-4o-mini": return default + if "haiku" in model.lower(): + return "pink" + if "deepseek" in model.lower(): return "brown" @@ -81,6 +84,7 @@ def plot_over_time(yaml_file): green_points = [(d, r) for d, r, c in zip(dates, pass_rates, colors) if c == "green"] orange_points = [(d, r) for d, r, c in zip(dates, pass_rates, colors) if c == "orange"] brown_points = [(d, r) for d, r, c in zip(dates, pass_rates, colors) if c == "brown"] + pink_points = [(d, r) for d, r, c in zip(dates, pass_rates, colors) if c == "pink"] # Plot lines for purple, red, green, orange and brown points if purple_points: @@ -98,6 +102,9 @@ def plot_over_time(yaml_file): if brown_points: brown_dates, brown_rates = zip(*sorted(brown_points)) ax.plot(brown_dates, brown_rates, c="brown", alpha=0.5, linewidth=1) + if pink_points: + pink_dates, pink_rates = zip(*sorted(pink_points)) + ax.plot(pink_dates, pink_rates, c="pink", alpha=0.5, linewidth=1) # Plot all points ax.scatter(dates, pass_rates, c=colors, alpha=0.5, s=120) From 2b55707738d83775d22812eab6ae86bee28ab783 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 18:35:25 -0800 Subject: [PATCH 149/407] feat: Add purple color and line for Qwen models in visualization --- benchmark/over_time.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/benchmark/over_time.py b/benchmark/over_time.py index afae1d26e..7195d52c3 100644 --- a/benchmark/over_time.py +++ b/benchmark/over_time.py @@ -12,6 +12,9 @@ def get_model_color(model): if model == "gpt-4o-mini": return default + if "qwen" in model.lower(): + return "purple" + if "haiku" in model.lower(): return "pink" @@ -85,6 +88,7 @@ def plot_over_time(yaml_file): orange_points = [(d, r) for d, r, c in zip(dates, pass_rates, colors) if c == "orange"] brown_points = [(d, r) for d, r, c in zip(dates, pass_rates, colors) if c == "brown"] pink_points = [(d, r) for d, r, c in zip(dates, pass_rates, colors) if c == "pink"] + qwen_points = [(d, r) for d, r, c in zip(dates, pass_rates, colors) if c == "purple"] # Plot lines for purple, red, green, orange and brown points if purple_points: @@ -105,6 +109,9 @@ def plot_over_time(yaml_file): if pink_points: pink_dates, pink_rates = zip(*sorted(pink_points)) ax.plot(pink_dates, pink_rates, c="pink", alpha=0.5, linewidth=1) + if qwen_points: + qwen_dates, qwen_rates = zip(*sorted(qwen_points)) + ax.plot(qwen_dates, qwen_rates, c="purple", alpha=0.5, linewidth=1) # Plot all points ax.scatter(dates, pass_rates, c=colors, alpha=0.5, s=120) From bd2b9a12ed2ac3a0ce427e985be1619492b4f8af Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Wed, 20 Nov 2024 18:38:04 -0800 Subject: [PATCH 150/407] style: Change Qwen model color from purple to darkblue --- benchmark/over_time.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/benchmark/over_time.py b/benchmark/over_time.py index 7195d52c3..4e5b6a8cf 100644 --- a/benchmark/over_time.py +++ b/benchmark/over_time.py @@ -13,7 +13,7 @@ def get_model_color(model): return default if "qwen" in model.lower(): - return "purple" + return "darkblue" if "haiku" in model.lower(): return "pink" @@ -88,7 +88,7 @@ def plot_over_time(yaml_file): orange_points = [(d, r) for d, r, c in zip(dates, pass_rates, colors) if c == "orange"] brown_points = [(d, r) for d, r, c in zip(dates, pass_rates, colors) if c == "brown"] pink_points = [(d, r) for d, r, c in zip(dates, pass_rates, colors) if c == "pink"] - qwen_points = [(d, r) for d, r, c in zip(dates, pass_rates, colors) if c == "purple"] + qwen_points = [(d, r) for d, r, c in zip(dates, pass_rates, colors) if c == "darkblue"] # Plot lines for purple, red, green, orange and brown points if purple_points: @@ -111,7 +111,7 @@ def plot_over_time(yaml_file): ax.plot(pink_dates, pink_rates, c="pink", alpha=0.5, linewidth=1) if qwen_points: qwen_dates, qwen_rates = zip(*sorted(qwen_points)) - ax.plot(qwen_dates, qwen_rates, c="purple", alpha=0.5, linewidth=1) + ax.plot(qwen_dates, qwen_rates, c="darkblue", alpha=0.5, linewidth=1) # Plot all points ax.scatter(dates, pass_rates, c=colors, alpha=0.5, s=120) From 7d9b986c04b627029c30d843b78bd0a415c9e3ee Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 18:38:06 -0800 Subject: [PATCH 151/407] feat: Add cyan color and line for Mistral models in visualization --- benchmark/over_time.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/benchmark/over_time.py b/benchmark/over_time.py index 4e5b6a8cf..78937242b 100644 --- a/benchmark/over_time.py +++ b/benchmark/over_time.py @@ -15,6 +15,9 @@ def get_model_color(model): if "qwen" in model.lower(): return "darkblue" + if "mistral" in model.lower(): + return "cyan" + if "haiku" in model.lower(): return "pink" @@ -89,6 +92,7 @@ def plot_over_time(yaml_file): brown_points = [(d, r) for d, r, c in zip(dates, pass_rates, colors) if c == "brown"] pink_points = [(d, r) for d, r, c in zip(dates, pass_rates, colors) if c == "pink"] qwen_points = [(d, r) for d, r, c in zip(dates, pass_rates, colors) if c == "darkblue"] + mistral_points = [(d, r) for d, r, c in zip(dates, pass_rates, colors) if c == "cyan"] # Plot lines for purple, red, green, orange and brown points if purple_points: @@ -112,6 +116,9 @@ def plot_over_time(yaml_file): if qwen_points: qwen_dates, qwen_rates = zip(*sorted(qwen_points)) ax.plot(qwen_dates, qwen_rates, c="darkblue", alpha=0.5, linewidth=1) + if mistral_points: + mistral_dates, mistral_rates = zip(*sorted(mistral_points)) + ax.plot(mistral_dates, mistral_rates, c="cyan", alpha=0.5, linewidth=1) # Plot all points ax.scatter(dates, pass_rates, c=colors, alpha=0.5, s=120) From 062dc43c87ccbde0465f7bdde310ed1c6c6d057e Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 18:43:18 -0800 Subject: [PATCH 152/407] style: Make graph aspect ratio square --- benchmark/over_time.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/over_time.py b/benchmark/over_time.py index 78937242b..11b26eca8 100644 --- a/benchmark/over_time.py +++ b/benchmark/over_time.py @@ -74,7 +74,7 @@ def plot_over_time(yaml_file): rc("font", **{"family": "sans-serif", "sans-serif": ["Helvetica"], "size": 10}) plt.rcParams["text.color"] = "#444444" - fig, ax = plt.subplots(figsize=(12, 6)) # Increase figure size for better visibility + fig, ax = plt.subplots(figsize=(10, 10)) # Make figure square print("Debug: Figure created. Plotting data...") ax.grid(axis="y", zorder=0, lw=0.2) From ddc538cdfad3b20aa8a21b0d30770d7c9b5bc129 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Wed, 20 Nov 2024 18:47:28 -0800 Subject: [PATCH 153/407] refactor: Adjust plot figure size and y-axis limits for better visualization --- benchmark/over_time.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/benchmark/over_time.py b/benchmark/over_time.py index 11b26eca8..5899ba05b 100644 --- a/benchmark/over_time.py +++ b/benchmark/over_time.py @@ -74,7 +74,7 @@ def plot_over_time(yaml_file): rc("font", **{"family": "sans-serif", "sans-serif": ["Helvetica"], "size": 10}) plt.rcParams["text.color"] = "#444444" - fig, ax = plt.subplots(figsize=(10, 10)) # Make figure square + fig, ax = plt.subplots(figsize=(12, 8)) # Make figure square print("Debug: Figure created. Plotting data...") ax.grid(axis="y", zorder=0, lw=0.2) @@ -138,7 +138,7 @@ def plot_over_time(yaml_file): "Aider code editing benchmark,\npercent completed correctly", fontsize=18, color="#555" ) ax.set_title("LLM code editing skill by model release date", fontsize=20) - ax.set_ylim(0, 100) # Adjust y-axis limit to accommodate higher values + ax.set_ylim(30, 90) # Adjust y-axis limit to accommodate higher values plt.xticks(fontsize=14, rotation=45, ha="right") # Rotate x-axis labels for better readability plt.tight_layout(pad=3.0) From 370993cbed148bbdd44e0e35bab5bff995969584 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 18:47:30 -0800 Subject: [PATCH 154/407] style: Rotate point labels by 45 degrees in benchmark plot --- benchmark/over_time.py | 1 + 1 file changed, 1 insertion(+) diff --git a/benchmark/over_time.py b/benchmark/over_time.py index 5899ba05b..3ad060c8d 100644 --- a/benchmark/over_time.py +++ b/benchmark/over_time.py @@ -131,6 +131,7 @@ def plot_over_time(yaml_file): alpha=0.75, xytext=(5, 5), textcoords="offset points", + rotation=45, ) ax.set_xlabel("Model release date", fontsize=18, color="#555") From 9b5a703307b8e2a749259e0e40d414fe4cd7a150 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Wed, 20 Nov 2024 19:40:59 -0800 Subject: [PATCH 155/407] updated models-over-time --- aider/website/_data/edit_leaderboard.yml | 45 +- aider/website/assets/models-over-time.png | Bin 87658 -> 158447 bytes aider/website/assets/models-over-time.svg | 1247 ++++++++++++--------- benchmark/over_time.py | 2 +- 4 files changed, 740 insertions(+), 554 deletions(-) diff --git a/aider/website/_data/edit_leaderboard.yml b/aider/website/_data/edit_leaderboard.yml index 5bb33236d..c4d600ce0 100644 --- a/aider/website/_data/edit_leaderboard.yml +++ b/aider/website/_data/edit_leaderboard.yml @@ -274,7 +274,7 @@ - dirname: 2024-05-03-22-24-48--openrouter--llama3-diff-examples-sys-msg test_cases: 132 model: llama3-70b-8192 - released: 2024-04-18 + _released: 2024-04-18 edit_format: diff commit_hash: b5bb453 pass_rate_1: 38.6 @@ -297,7 +297,7 @@ - dirname: 2024-05-06-18-31-08--command-r-plus-whole-final test_cases: 133 model: command-r-plus - released: 2024-04-04 + _released: 2024-04-04 edit_format: whole commit_hash: fc3a43e-dirty pass_rate_1: 21.8 @@ -671,7 +671,7 @@ commit_hash: f7ce78b-dirty pass_rate_1: 46.6 pass_rate_2: 63.9 - released: 2024-07-23 + _released: 2024-07-23 percent_cases_well_formed: 92.5 error_outputs: 84 num_malformed_responses: 19 @@ -691,6 +691,7 @@ - dirname: 2024-07-24-06-30-29--llama-405b-whole test_cases: 133 model: llama-3.1-405b-instruct (whole) + released: 2024-07-23 edit_format: whole commit_hash: a362dea-dirty pass_rate_1: 48.9 @@ -698,7 +699,6 @@ percent_cases_well_formed: 100.0 error_outputs: 0 num_malformed_responses: 0 - released: 2024-07-23 num_with_malformed_responses: 0 user_asks: 0 lazy_comments: 0 @@ -770,7 +770,7 @@ percent_cases_well_formed: 100.0 error_outputs: 27 num_malformed_responses: 0 - released: 2024-07-23 + _released: 2024-07-23 num_with_malformed_responses: 0 user_asks: 23 lazy_comments: 8 @@ -796,7 +796,7 @@ num_malformed_responses: 0 num_with_malformed_responses: 0 user_asks: 0 - released: 2024-07-23 + _released: 2024-07-23 lazy_comments: 0 syntax_errors: 0 indentation_errors: 0 @@ -946,7 +946,7 @@ versions: 0.54.13.dev seconds_per_case: 8.3 total_cost: 0.0000 - released: 2024-09-04 + _released: 2024-09-04 - dirname: 2024-09-04-16-17-33--yi-coder-9b-chat-q4_0-whole test_cases: 133 @@ -973,6 +973,7 @@ - dirname: 2024-09-05-14-50-11--deepseek-sep5-no-shell test_cases: 133 + released: 2024-09-05 model: DeepSeek V2.5 edit_format: diff commit_hash: 1279c86 @@ -1112,6 +1113,7 @@ - dirname: 2024-09-21-16-45-11--o1-preview-flex-sr-markers test_cases: 133 model: o1-preview + released: 2024-09-12 edit_format: diff commit_hash: 5493654-dirty pass_rate_1: 57.9 @@ -1477,6 +1479,7 @@ - dirname: 2024-10-04-16-30-08--chatgpt-4o-latest-diff-oct4 test_cases: 133 model: openai/chatgpt-4o-latest + released: 2024-10-04 edit_format: diff commit_hash: af10953 pass_rate_1: 56.4 @@ -1592,6 +1595,7 @@ - dirname: 2024-10-22-17-45-28--sonnet-1022-diff-fixed-model-settings test_cases: 133 model: claude-3-5-sonnet-20241022 + released: 2024-10-22 edit_format: diff commit_hash: 3b14eb9 pass_rate_1: 69.2 @@ -1615,6 +1619,7 @@ - dirname: 2024-11-04-19-19-32--haiku35-diff-ex-as-sys-false test_cases: 133 model: claude-3-5-haiku-20241022 + released: 2024-10-22 edit_format: diff commit_hash: 03bbdb0-dirty pass_rate_1: 61.7 @@ -1773,32 +1778,10 @@ seconds_per_case: 18.3 total_cost: 0.0000 -- dirname: 2024-11-09-10-57-11--Qwen2.5-Coder-32B-Instruct - test_cases: 133 - model: Qwen2.5-Coder-32B-Instruct (whole) - edit_format: whole - commit_hash: ec9982a - pass_rate_1: 60.9 - pass_rate_2: 73.7 - percent_cases_well_formed: 100.0 - error_outputs: 1 - num_malformed_responses: 0 - num_with_malformed_responses: 0 - user_asks: 1 - lazy_comments: 0 - syntax_errors: 0 - indentation_errors: 0 - exhausted_context_windows: 1 - test_timeouts: 1 - command: aider --model openai/Qwen2.5-Coder-32B-Instruct - date: 2024-11-09 - versions: 0.59.2.dev - seconds_per_case: 26.6 - total_cost: 0.0000 - - dirname: 2024-11-09-11-09-15--Qwen2.5-Coder-32B-Instruct test_cases: 133 model: Qwen2.5-Coder-32B-Instruct (diff) + released: 2024-11-12 edit_format: diff commit_hash: ec9982a pass_rate_1: 59.4 @@ -1822,6 +1805,7 @@ - dirname: 2024-11-20-14-57-11--mistral-2411-direct-diff test_cases: 133 model: Mistral Large (2411) + released: 2024-11-18 edit_format: diff commit_hash: dba844c pass_rate_1: 46.6 @@ -1845,6 +1829,7 @@ - dirname: 2024-11-20-19-28-30--gpt-4o-2024-11-20 test_cases: 133 model: gpt-4o-2024-11-20 + released: 2024-11-20 edit_format: diff commit_hash: 2ac0776-dirty pass_rate_1: 58.6 diff --git a/aider/website/assets/models-over-time.png b/aider/website/assets/models-over-time.png index eaed94a53d03e3b2056d23bd149269f28dad82fd..143feb7c66de334450d84a72a8d651ff90b248d0 100644 GIT binary patch literal 158447 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 {N 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

    vMJl+Ycs3&d&=Cm1u4RY1C`qQ$ zOvCDl{dWV{4tayyBIXoaaFDfpxNa5LTcv;T9DWUGs5e8<2;GD)h)2*4Agt;k+W{ko zS?fZCXh>Z4*igS27UUg`j zxp1AJ1VC8-13i3$5b!|_iQ@!s#C0gS2%>{a=DV%)j;Q@+=hUb4?B-`ck@t!(obV1^j9)xSnQ}b@-B}PKd4g+7Rh#*^!wO|w`ve5OW1JK#p&UyEV6^t4KHN(zSVe&BOB?@{ic z4}6$>kO1Sc&{~X@V3);$De(Do@0V>;3zHh>_=J>%ol9hArmHf02rC@)TRVX$^kjQd+#1rt8I#PIf+|iuP^nAR}F;~`ba3uGaPndJ%AS9 zwGRZ(ipb^fR6G|X`ukIss#Kf%6vyrarjt~u#la~aKB^}cNqRl%UQoHUHM}kbv@wC2 zj~xpIEb?zp>ev)JGcaTs+xr(4RB>4m(W!Zgt*;o`&oz?pXXG<{*-NNH8fuNaPPV^E$bV1W~m>rO=jRf&R2r zuU2O^O8Ep8z?QcmaI6?y?Tdo?&dHPIt+!>>c;Cxc3K8$Wer3hH^Yox@EjDCA8Cvzc z`_oaf5}vB!pZ(VAs-(DhQSyeqk)g)DuTy_m`TryvrPI?Bge&1t|R%+$T}yF(?rsU57|H;3w7(z}s8kFXM80>q~X@)?Wj9c=C-00)mN1Vuy~jjNqk z;f3*~w(Qev7nPI+S7zs^&TYJAa8&CXzKfJzH^^5m^By z?Q+NwFz6844RhCT1Z17ZeuoJ?XK?)IPsjrn**jPlo_C)PTz-k+ry8Tbd4C94J}^}a zZW8NT9(JJcX`(O%ng~esDBcSc``Ik7SHmc`@9i z_uUq~_noGN(3?jzobjo>+or$!%=q23;OT}9niPY6(FqKvws`*OtB^|Oglw1iMr0Kg z>Ea*UCQ{IHCQ0m@foDlb1XMAfA#fvD90VAq*K>C_I&ny1w+AMHvljas1nmG?e|Pk( zeuUP7{6Au<#gRm=4+uKF}mUWX8P3rP3L2us;oU5H)|SDEOGdV?AUla?VC5fKX_KM-f^7nqw|W+ zyD_r^FwA2&wLZl(&;mYC69Lv zI{%2ttd#CMm92IzyG1Ivn_i>j+`4(&6Ymt{iXxu84sqxgb60&n9W#1+lk?!WUu&CM zM!d0UfDX3C6Le<-`)8ORq`;N|og=~y;P@Rb2#G`w%{{yuhrZu1xH)EVZ*uMzC~<;~ zPc1AMLF@!H_U89b8{uRjR1pb%122aTij!c*ZWA097Y~ex3J^{KN_yM&XG%s$(@sg5 z+JS*@`m@4p*yxx&j5-QeBOVS#1;$zFE|4)}FP;bFT*69=p_ttNK#YL?DS+X^_1BBU zL#+RY07MXjIDYU_a7DykBN|b=h0k1uUcES!gI6zvsCn@U|L&73cJKtUNLq=p|Nchp z6uO@yQa_|%pa9Ybu@b2+M;0+f8iEShw?2zr){iJ_$8iK@8K_{WH&A}S?^|fZn^YD&0acZaK{kac2JIk7Q@rM|Eexu?Q(Iu!W z5G>1*hq6ib2!;E#Dv8{bDKXM6B}Wb%aAeR*^-xdt{j`_4lg`Xf7}pU#b7D9qF$lN> z(6jwA)g{dSidl0C?7oG`&;K;lM?@Oo=6mroV#@L8*XU#VhqYihR^Ta@G4YdI@4k!a z<(7Tz47JyKB{Bz+dx}<5Fydf+B*syQ68A!*Kx$;bfI<4q>0FQJ4k410z2oCuFYhO? zDLHIt`ILXIoOMOKTNs$I^Iv2lm`5ow#$k2?epF5D?B@?2_^TJP7(4 zWs>Z)n)Y`o4fqU(2Be<>FZr>7Nx&-_K?u-14bLqpY)wn~Gy6&sY^EP>0Mb{F%Wb0I z1x{gN)xzPT7=P8f5;*KNMB)=7Pp^~$qooucCm>m{xB^H);SDFq6|D8xT-gpA*T>n@ zxKO*eE%&RQ_Td)3qRhWH<5SH=VeP26FRvt@EXN@gjcf z`Hfcs0??(PH&_03B;Mih;ZD=wxsdSvD@7w_bm#k@UH)DWTA!fi|1cuD6@954o$FFJ zUPi?L!t4M$u_5e(C`L(}Hg?FI!4&GQ4!Syhia%3!l|y00ryhpJJ!={}e7}S)c!PHo zWt-1cG0}*Jz?q+6^w^54oygP>0FIIe+{T39!-u)f6O;n3$ed3c{uSQE#l_g@hhKx1xd_2p&P=hXJ_u1Md<(BdCTCwy8+%8rg1T?EQR= zwF8Znqp}Heoo8QR~AWi^kxJvZeK z4(utO@KtD4>oi?io*QedYjIv|xo&}Vz-A*?X!JQm(ZL%9D?wT^Yn8nNfXR^3IsnFq^)PeV92I4FaQ1^+-eXM+d|NVV_*lFB-?r3S#{ zb979i`It(w@mHN$RkKMxIzO#bs@CbMyQk)d6Dym`LaKphVhpm+ej?{2nWb4(w9;mj zFmH!dVQMZ!$FW@BME5)Y!BF?^3x{&p%U8}EFf!T=LE~Pv>o?Fv2-F>^cq9ZF3Kn?N zfN(Ql*oN7OBt~E)gFA~DV4d_?6^l3j5+9Qp9*c3}&8zfreZLY~axWr+9XBQ3lj&EI zD{JxPxlad20eAuN^&Qgg!R%I@0U|s?CK7mM0QFWgO00J5xFVqQQc_j@fM*=#-z3}v zyD!dD(gu#mWg`R-FiqYxtk4fqS#w0NcZ6rHMlq(PFSQZ*FC=wq^K5oM*tLu6%-;@N zR_u6Gq9OYx>4EN`o-_qWK@6M zV(ARPrHDH{1B!RD3law_vKG$cT;vZ)>e^8ir%i$N8v2f%scIcB&5eK{5)vA_a$mV$ z$NMB&2|8?Zm{y_p0#t%s4-9lEm=EmknAR;KRyvBgT)1z%eInNyDb?J*L+(Jy-juw2 zX=CG#lGKJvijVusuhs7SmMJ3|InVX_`E%~c{pbfM(KMq*aqc>6`XRZtyV(nf{2;a>a!;B`rJC5p*YU6%G-6FzOoI6T`s zusdPHyls{yH5elZuRe*?oe6sO+rZr1g$lAH&_qJU^_(OMq@$P&a2TBd3V?S5^$wH5 zXOOf&l~+sgtYOt99H6n5kp(CJGlq%4FOB7Vs`e$kp&ox9s=pesd3NDZ2yJ%u zW6o$5>8O+A_jlr(N4euJB=XD1(BhmSKFDX!K4G1KsDc}umEsg92TQV&{^qk2ne&a_TWI$WE@5R;> zywC05Xkz{((xj#)H}=@_TyX5^$@iCL#92GTKL;xq7d%^7f+Rn}nO>#J-P<=LVeJgRQwA znK>Y$4mnO}i;IhMDEd4&yDu$hsqvjoG|PL#ivdrq-pRhoZv&ol=(exD(Br>+LpVW6 zy9YEmq;me<;*T95D8j^@g#p0FV%f)OO0tt69|jPOnqlHFCf2+xldl}|VlFku)hTAB zD95gqKRagrt-jBm0AW@h%UTo|f=KoXK+J5nZp1XA37*ty`5 z?)OjTnwRnhr{^p9)LUIQc)QSSS!ZzLeO0ja=%%KoPL`o2)AJW@H^e1GDW0~Aui#?T zpX9a8K3b{1uRSegc$6RC;nfTW#*~H~AeRBokuw&uD#-OncmvijR_tZ?Rbje#cH!mG zAWd(-?;jaQx*dK#dvf2rIG1me3ir?7zZ!3jA6NNl5{{8!j<*?L~GVtJI6)Vqa(?rSMp+&pd zaE_oI$40M|oTNsKNTkQfEsBa8102L4XT>W?dZhvW!sPTFuUfw@%17~w;ce+38M&u@ zzz8@i?m5)5S?xF`c_4Dh=1nvs*rWo7@%GcHK%H9q?1}7xVEmZuo#FJDJh7~L=~6lQ z!olJ{!}pyAwczRO3=!v~gFhd${9f+qn>OU@=ND3vOQYi3{wh;N_?Lsj9p@Q@go}xX z;bzBFPWDe!$l*BL24W*vY>gR>f@?qi;ErKF-dFRqN!{P$RIf71$UNQ^qQb{G>h0|k zC3HRG{6-T;)?CfM-J&kdwQt-c52&m2siftu9CSUD8YhT*25*EuK-~u%63=liQ9W+; zMamGu$;kr`{~Vss$-AA*cFg{?Dk{BWX?rJ69z4h=(WWVL;Z<;?Gb5vl-LD;1=UGK8 zjy6=(iAWFW9X(Y$)HvzZL*cBo^-)q1e+Ny{$d5CmY7@yGi2D5sSsM!r3&BZo3T9l6 z{xkbk5kLviByw|$=S4k@9sm`_|9o!K5#vM8zU&+Sete(h+Et#nzFXqf##MOx7qf4i zP&mFn%Co~?jW>a@y-l`1=8wZ$H(VN{_dCQ|M1~_zl_;;+r*j4A>JB& zt8bi)%v%nai*SZk89<9bk&bMUN?o;1<022tLvdEV{ZE+(#|1C<6kd&HLD1>cw2RQ` zg;(rh7vz@hY=Ulg7GBFZuRq*%JN5bYPj#VO+qL|)=jRu;=5u5{j*squnHE7e#O?@d z1t1xWjiaNcQY?8u)GLr0?~Tj|;27lE_dT_nCgt4VZyU%S=r`srv6TLqjn`BPILxN)UAMg%9((Oykwg5H>e+3;4IH4an zPl2R(;t&KK5eU@FZE3a-%0Kkxv^^-1DbO2IZb%tA>n6ewwm#dZi#^DKAs??Q`wf3z zyumLt8G|AZ9JjxbQ26r3>o?RPKHr_2t4mz{E8h2&`|doU@+n%{{YxafS3gIPb#Va1 z5F{}HU)@KPs@;Xx6LT5h#cyY3Ff0QR+J!QGFROP!qQ7ixa&Nqz^o@!-%=Rtk z;^Hq)ac47wF=Pdl6x^RyiohF))(ln7y)p6dFoY}3KsYaI+gt4e7u(}sm51uSU!KgBUF$JC6c+8;_+;H>-raiJkLL)o zVLSl;gc~+e7jc=8bA*x_0NuZHx;dYtpywk*E&^`Ib%|xlLMIa%1Jss%Zgv#jUK|v= zMiAdlu8}b^Z}%#8DOa85VqYGUAEKG!s~hacBgJpX8+iJ84G|0exCM<>+dX|Q_Mcvn)9}B@0rCVIsLZr?n_)Q za`h1=S80FgXvn-NOyE;flhd)weN`-aJWKaV#;fH_iM{^`5}iQ{P(UBL8(0neYa{~% zn*^q$GThBady%h^li3gM~CGKx;e*1(EUJ0@|kI=h^lA zVxgv~96oIimMAY#847Pxn77?NcNYJn&CYSXq(R^7xr=d=XW{nFred9kGcL$M+R66~l|_XYHfLj3%(x_TXa3V7&1hJg#)feT#-o;hgi%(PlZ zHMl24yep*xH>HyRbI2nm?mA@Z?8KKyn!zE2oATHF;|;r)Uwa+=G9;g>=hh4(>8@-a ze=><#Ai6_s_bvVtZkpQ#{Cw@rB_t(}J1R_XTuc8*+^3!O)#2wkV_N%5^7Fk){zf!h zdVlbI{SGJQplXAH+)tO4Dcjl_=j;nVHR~A4sJDt;@}&*j4C6ggjWKPYag7-v`%wQQ z#(FQr$dDHipSjlejLi*)+-R~ikK00>EH?kg+WOI(sOyz_pO}CBbl%Rl$nnL6K2mY1 zW^8gWR5$0I28CS0W8_aXrs+yTMO=;MhB`?37n{@ED=-g3NQnyq30yrq$x>`tlG|o^ zM4AQHJh}gHb6$FI^&zbN= zBcnOzR@6rmh}wAP&I{1AVY~i;i2w>5;0aLXkwYsp21r3W{Ww+GKr9e2@@)P348b2! z@oe5~n7oDl@zf?(*3%e*i1&erQZPn?mV?Hn^w&To;k5y${Y4kiTkM1%7GFx|UA6(5 ze+<_;l^!U?z#%Exg`v(9CPE$E7aI&7U$D~Bv|KSa3A&LY`G@(|t#&nwx4EHfm@O?I z=WS;Fs`f%9d6#&*Jm>Iu*1T=uR-WJ|51m|(R4lpd+wYT-B6i98a?-NDHrMB0F>vf5 z#`Av;D){*zzenl?;@!B##5#C%uI!IoOXjTjnc_HBVNRK)m#^eoFS@oqj~-HX+&20~ zYM4u@ASmjfAsd7)5x@z;bH;j-Ft%4L-hkm%$D#?68IDx9Rw6B9yu&8 z%*r2T5^%2KC%Q#GjlVp9J)E>(8%BAe$Yo@DSt0L)OaqF^?Wl z;J{c`%Xew>PB&dP5(@9@a!iF22q){kN(f7JNM2DdY)zQ3!< zIqc3B@R+;@6&-u_LJhSrFnWoS592|%Ykf063=|ooC24fPK0H+_a zD@nv2P`(E{Pdvuk&FjLZxcSE0P4*WjEdCKBBcZl^ETTJZsFI!}bY?*_; zn3$k4IYhqa-2|i~0Y0ZEUqmDAo#L`5r4nU~l*a`7NG76hk(=WTe;+!xaWoIK>zr}t zooNcVNju&+@TLhtl~n(r%n!+hkcyHNJVF-YZDtbGW88WCQP1Di1(JnETo;G8BZbd` zCKY%bLduuw6YqQbN$~{7ifOtrSy(&V>D7~cWNZD%oj)WuDOo$8YteW8j`{EH0?hOr z8HTnn zkozC@%lpy#t&wT47MB`fnfe1-7%9HS<9jc>%sHj%n)c&|R!Pt5PoP|l z?H74Qt{7S!jBuTwZ=9*_)?wL|oD@H^&2p_~%jDbat#Q#t*AJa;P*XZCRWA@e`~-Xr z-u`ddW?Oj`BMp!gXu*{Xohl#!0qs2IunRY;+0xy4J|w^CQ~n{7`t^I@;oPLJ@G@3c0!L`aa!#%=s$i&NV8Y!tpn2T;8=&2bCVz zTmSfV^K%?KGsujG{1%`Ic*y&%4|?x43{2=@ilKm2w$rf21# z3Dg{AdP0!mUeM6^b~=HVfn#IXh3TjQyOD{g+@YGdR{2v;&u25!M{@l9S^D*oOV>Ix z={tpMuhP;sDyHU)i`Ld+<}J9+aP_80iYBcelYIX)=GXRPs;{!=BR#0${HnIx*VElw8w!`=3a`D8Gd$Fo=REco|siA)7I!d%kl9J+8 zuUJhkONP%bX>Gj6$oM#VZ*W=9D$m-Wva(#A?ryH6Jilv)w`U|vFh1W=KeYFY@ZM)N zxFrw>ikVFx$J8wd4#^#f*jKNMCcH8__LW1;tY^}W{Tk1`0*#08^|LhPe!05wVTZd0*=xo7Omz83fH-B!87|F|b*lTOI zFAS(8NBxX0)ALMw=e@EVqqxiDZ|-#?-h1q;tB=CgdaUe+uB&nS7*fi~I-_#`&q`!| z7ggM^)dodJ*O58Lo=Bh5S}|2svZ5Xnd(T|aWnX#cb}QbfadBp0Yx>n>RmzD1#j( z5>F~>YGp{SrenefVzbKIbi6+5y&t4ZX7)D7v^uOcrM7=pZCZ*lb@N>BcZzO~+)QQ{ zK1N1S&{WX{n$;jS&YWAQrMRu%dr*p!nW=N!WbpPTuLR16RKmT26AwPHEO1Dx*HgR1 zSslm&a1UA+ zM?781`@6@V)VGXG2-*(*kdxFp_v4cR6OXOL8wEX6{+*(BR=<*t*q)djqf<|NUtm8~ z_qX#UJ4~v8d@H}cd8j93C$P6}si142{=QtZnx3u0(|6aC_t_uYD3{=3`#$c%n(LKv zIvS!8+~N}S+1ZUJ4%_qJ_LHxZd6c89!nIaYMyAmrkR#;e%&hr-EwF+klCV=_IF#Tsxa1)$Pp~vFzJQi_QfVl8V*23uvi~Es3e^$4UfgZ zcd646FHhh2DH^;j0VePypYAJL)-@eFbu~`au>Nam>pA_WPmg9eScn1|SJ%B*+Ee1F zrkh0(?kUb4n7rJz7!hD=&`3_5uhZUP21Icl0eX$>uMbdoW3C~V7{{xqrN0a1 z5+$JTJl=1o%2-dQ-a(kvd7t+7`4t-};hLJy-goKQj*M1iDRVN5yP+t3qsYmV3pyY9 zZM$mhPV$~xDzMh?TLf7VKtAHc8B(0L*NRP|Is%xV!a}I=A7g=mxXeD zXQADrmflTWe_j}5iuvx#)`XMz>Mc`2xkOcoJ=1#ioafJDQ{y}^u^LoSQ}g)v5x1p? z=5_2lxhcPHS2oI!y4ocuot&q^B6yLi zqRHSbuR%ue<;4k-R5Sp)s-xJ_kU2d zuwN6rwk5@DvV_jjk&pd{rAXCw#_xl&5wpAgvRS^YphrG-s9r|aLE9@HR_w|Kn-esb ztpMMLJSnwu-*eB5J(1oZ<9vl6W|^(JMKf<(PN|*~kL5UXw?Lhysf#N%a^A@K%C~Ept?|(*oiJ56eW2!&0JaFu>%dnnlSE!3`)9ZJ!V69oh`f#4%=j1dynpf?3 zWQ(S4Y@-7UzfzwwzjjpKU0svisnAD$vi2}0{THH_KX(@|e)!;&sVBW@e!f_&-HtVV z1K;zcJ()K|9{--(uP4QuHKy!rTAA-%*tmyQ0COl&hUDKgDqK~A*03M6kx4keKyk>c zrT0g}^eQ*}?xRb59Gso`O#6V$@usHp?32UBCVKN(&zaZJc)wcbFEiayaP^z%ildvG zR?t34-Dzcpb%mFG=jKB%KN8;Fu_|!jX>8G!gYPcg6%Ly)kGkMsm60f+ESE4kw~=yO z=$9E}>ZLsz7)asP82{bdA5uj#c%*Tqvyye^E+NK6K9ncF zb#>&xQ1^g?{Y$)TO#c$)D(fezrS5^7>?&E!UAVodzKq^>klv)Tj_&aP+U-1e^Wqr;byK z3&ghga|>PZO}$#ESG|Q#|Lm*6In%Uf_we%X2oK+DGt#U+c|fXbHPXk2Sx6M0yxb89 zH%*rjyWGYL=K}9sE03SddwVE+uXL*Y6E(wx*)TbK`7fEm^H zzzO&kMMQL{FXpF+4f$QUK^Dd<*`}Lub^>Wk<;~$$p&uh_75h>~(ZZi{rY7bY z;*$e|S@3ReV3*x-n2r0_XMIY^gGvtdB4d1U2^F7SUJUy_*ev4ep!@jopMnC}t~(xU z_&w{xJ+wS|qFG*3Wl0HJ=ZXw7OzljMo(XTe=2CH7T`%t3It_2SSL#>4ZSg;R-CXEA zyZLU-wKU${@87v00*85*$C!lKhY$tct{sNLiCl3J5wn+K9(C^*cv3|3cgpXLSxK+L z1s*;Y#RH*d%HJrko0*uHG3%;w-;3guG0cA0I6b#{&977v;QoIxMYvUHTstyu<*m6n zb?W)g_rKv8)Bx{9td4MABUe}iL-rfXg6LqpQ_lpp;3%&ic6y@Z&%vLRF!rVHZR>)w znVFVG;n9eXXC>sH&c-S3`X>eIcjKmZWa2JMV&EJ7ykY9y;xx^~{F8jDBAPGGT!Q0l z#ilRz4=7?=Zh1lsy-AZ(Wz)DEzdSocGNb0G)vgh; z;ksG)`Kz1$9mn-0CEq=eEn(J(tnzh zt^04!h9!?htob#s=<)dyH1#l8K-oi0v30AFtzzoSrYf&ySNSmhLgWxJ09XZB5k3^s zW_}g{h<`bxwYEP;4AqOvz2m=B6K=M)v}Brm<-vCXD4<+FBi(L9-BNdxHcS`+#x&^*< zC!FFQ)ju;3wyh>g4?tskgoQI}Tw>d!qZu*e969B-C$GS>@+yDGytS~12n6>(5G+R1 zON0Sn%N^P4u3&mnxqsX#9kAG~XJW@##0tAzYYtO{osYeIQg4m7myOhVmC;_0?mwLi zl({A}re1BHcTHIB=r9J^!;u#5w0Y;wFHof-|EnBwtYRHSFx3bf0bfB)(i|Gj?IQoX zk&W%!ghO%hB*!L`42{>wLt7b#o*Gy@>_PbK5L-lHZD$v6)#KW1$BgI0t9LC{fL97- zA^Vxsieg`%m%9`$`L~SrpjUL<>*mHqwjKLdERLR*sSuRje~_v6MbOEccKFaXZ?fCJ zH^&dT8n_v_0fS00op?A`shoGaca;5XY?Il`R`AxNR06e=6n5Ky{Iw_VUF&nsMB zJ$E<*DjJ0Np#G%Cft?rqFXZh7Aw;j`!Ilp?j zuXKI<`Q(n^oFPiuQbx`P^Kt1Hj^*y4e&F^ZU<*Bm7l%>*DuJ_!!WInj^xLSFpOH*X z$RL^Y`0Gk2RhTn=gBEY>a|^4vadP$dbs`A7y_QuYU61nJJBvARVpPa;Jp%^{qRILz zpagwAFlv4~KLStFESH>IFF26)BUL`1s>c*&CV$+3gt40=(scvE&_-`e(@LyQ-E!Z5 zuXOd&rDV+3^Y6ZLzVnmeg$^;(qetgKNTO;}7PEvCPr$|P(7m2Ol?k-Q+Ds% z51-XQ7Aac%M0ohm?Bzd*fk9&eY+&$N?Lj;X2nzx-gVQ)q=EAlgH;BkUNxSnyk#i6? z_iwvv)lmXl;-9>;Kk^Q z{DQ=wYM5L^i_&V(YJVd~Z1w9TZ>y4!SOl8w-DBdW<}@TU z`_r15w!h?f8Y(}OuEKZkZE9Q=NBzQVP=j$VER4=7rh#Rg&aRBxY0B@&TI5&G#n<&n zw^vdBX1wKf_gUHhGcf*lyp`?mOs@9r<>H(pX}NTQUDANAYB-n>=z!zle$PYbCn^;E~H z8MxC@Zp7P_OP6v*7Y1@x9M5%Z7*L^Sggg{@#lqE==SN>R7^8m)QH+$Nr+MM317a9< zA}?i^`|lVn1`T`~oWq7ruH}L5G&4VBxmuc&>zlamX-G?>)50f#4Pmyv7kFftT%5a- z9+?Q8-*~5mK2<)n_uHWnkz=`HjQzWY7A=mJcNeF-<~FVIrP9`pcW7yrH7OKxJf*@S zpv9A2cqHJ&x7JsE97pf7nv9rtyAypYm#B)hbbVp{j_4xI&ofAaGORnso6B(dp9uRl zD#j93+wX7DkV(ZcK$N9olSMwrPJx?t*p7i=-HMI9{r7-lYkK<{-d^(WDAzn8L|xS? z=WpV0*06K1hXb zgwv-$IgVU)DA72N9NC=T8PVQ;a&~;|Be>zy2`)=-*acP2sIJN7r(2>p9dss{f}_Z` z*C(2y-|`)ecO-Ifrb+xIlluqPsPw|c%D>}&%u|3Ht z8hbu!U)?PMV8!wGVqL;)SAT@wp;J@0zBAC;*yw-SXG|BcCCRjm%oX!OCAlpcU8b7; zmk>g`8(#%n)1(lBa69mKV9`z7X%F z#q)D9D|IK^y3PU1Jt_qh7@SENc{Lwuj=P=!{g&MIOsTDDI5uk z)G2?$ckKb&#wk_R;ViWc7tRUGg;KlaISxvBNm=__TJ*c8efGNXw(ThgJ<$szuJz*e z5>Z%|DMr??ZQhLh@1fR`ReQgMC>TLWw|9m9ZbT>{^9Ghk|CO3YHpno-|FsBd9;x8u z3H~(+PZ1C?yFYqj+pbyi{`a9+v-->MTUr-N7gca=`=C{k(yRBW_RhhQCtO9M!cMiH zy`M2Vecar+eEQQL1+krFmpm(|vKi~^X)H~x)fY5=C1vj}gxeWrN|?2f2lWwwTzm%( z5OXK`55i%l1}wQanw<7b%<)alQbM9^9pb=LRS(a65plccKb9Y|Mo?;P?wMqMQJoWr zOa4GkyVO1D(AVuU&WDL3T=%jW6ejTKGZp^@hySZZ%j(wx$T>vY6MYpJ0K|U->cpI9 zQH=~j9k;n=OFkVGW&L~LHFpQg`fh+Hy;o`kx!}S^2l*ezX4gjf#hvS$x|T@ceQI|C zT|t4|kMRZhF$M;jnvJg`C~QPTm+#U@zzxZ77L!ja-c{C|pR6^jq_O9X=Bsre_qTZB zinj$HL_l1yW+NTB2a)4MfijIv$a!E*`&@klzJiBs=6%iT18eE6o%<`NUq5@qPpA2n zT1$Py3#v2qzdm~*`yhOs211P7)sJ}rxQ4&02Arp?ygb5VAuX@J5e9JxX)FaHUGO^O zzh8;Q``oF-+f&vfw8vz8f@(#FpQDsnNG>!*L^i)el<+`fH>XH2xU z(|fu-!w{-GzEY^e^p2yq>E?Btlo4<2Oypew3lBwhEuPCuV8jt%&UNHS2v%_<5WI&k z_5{LO;if?r zroK*&<{Xg-9?1#05UoHL$Etcht;P zgQdUD$A&ygq4lnfGwR|id<1IMkNWPtiqVraJ>;835)Blb$5Q+gPumNY_RZfZOY&q<;MP5-1z7 z=+3P@3NJu9NKII`D*vvO{0+rRalkl1iWBK!@Do6Qi>8@81R?O3k>x3O5v>}LH+obO|4@DJSY%l zuanp+ZxDY@eb-|~vq7n3V?0@GwCm|&DK{1X4t92#V4qow80FufXyx&OfQu!G%}@@e z)(9gk3^6jKEC5NuchAO+#I`WFh(P`gRnruX`w)=6q?ieBDk;8%f}6BtL8zmorPa}V z5ydY!QH(ZjrE6$-6w14;uxDKurM9s2z6hrwu^|4JBm5%gR#58w=vAM0CjSsd6UJ4y8Sk&+8;h zZYvn|XSenj`Z^g>*?L_q{Yw!=J>^cPhMsO+fExxW%1ulF0x^5s3vhY2=3Zfh5I|pgp{;IfGK$ zMG!nSgVvCp9)BrsEe>w(>|%FXnWI6kW8vtO5U0!)3))qRlr_R$$9oNX|5D66YNQ!2 ze0dMw%H~t0rhW)qpoAhh4aMbdb%U7FoZv8}KpKH7mjx?5e4rNWJ}_eAxP$@(@r6S0 z`Vs38B+;A+MGv83LN-T->wnh($D>c@orc)y*Wa!VjY*$+njz+yx#@zhwKCfk{dLiB&7tG6CIM$h{=Bo(2Zoh=xFf z-hZqs8x-_I=-d*}%%UgN2Y3;Y`-CJ;DW_}y?(_PM{r$b6CAY6va_*(g%#2?cx2xx+ zd$1~`C;DI;wXCd!Ts*TK3s11BiIUZmFYWAwj{R5u%kn@0Mvk+`^!F;V!(o(UVP@8o z->bTB6C8w))qg>T#6y6oi$hVB)njVxC(&#QRlb2Rni=z7h^g0p%h-M48MD5Kw+D;H ze!7>`$8eS3;pC@dppjtQt(Wa%?@-nl*;8h5cUC~!C>9;=h^xRwNNk86e+G6TOq!X6 z#T&O1vKn9>X7j|oj`bfdu`(3w!F-BF3|NQ8`s4mPl>JzkDg3vVKiHkoy) z?nmiV@40-f_dXJ0L)47iuGs}DKi*v?P0A!-4P}}Hj=J-9CN=9FNC#N{KjHc&IcO~eh12Q5> zGU1RSYm1;3eq}}%(l)2z=J7*0FDhpd!vWY9sh#&;-mw>Z zuEkxqKcQIFBz=e0(X5F*Ev>Df?a&Y;^3U6aP_WhowfHAUGQhE82yPFy1i-_j{o#z0 zQ=Y{(|BA+!fmf93OPA)h9T#o?wKPUOHEnzAXQkdLxwTkGbgd{}JmN}uNwJZB#@?&f zgh;?}*N{SWq#07HoHv7a6K4kG6Ocvap`r)^F+j4Yl)ML~0k$~Y#^l~4amposSKa7- zk*^AiFfl%REQWeq!>)uWp>=-oe_ChAg5Y{#W@Gz=g-&c{injPJB-$in=K!SM_j@ncJIwTM zprGK0;wIFh0$uKLUlybw6d5=aOo_oSUUc$I7q&LM_8N7uR`JR$+~n09fNU~Ulx4yV zi{%SeO=iq%_+r!XwIOLU|7bN6;z$5CVwv9tr;2B4^ds#9R(rH{3RJ6dELzvDReozA zE4h<>SJZ=eI@?EQk_Dn^txqTIWTU>#^`({8`&9^RQMlIwbXP{zQJCqD<3a>=FJe!L zY#M@p1Rj(89b%Vy5fMRr#(;Tt;~YUB?jyJmatjZlj^LojqWmfPof{$|h1tl$A}$9+_qJywAE{&+nh#^Ljn^U-x}o_tnMc^Er?6INry5cz${?Mx#P= zWtpL`L%RHjbA9XAxHoSiiQWO)Xv}ADxg;KR5Ndh2NyN(k50g%eE~`&F;}zf0xib}+ zSjed(d4EtLKnC`ITZHvgmfRE(7`F8H3)C2#cSC>r7T;EHZ3d8OY@NXf^3@*5($9uYhCHmHwRq_$^%0kH#T`) zAlG2rLia`mIxI3Al3-{75CV~G;QTVKUi}sXU{nV@IOcYBw!)4evID?bwv5}hI=L2P zDD6ugZWm%0AfbiK0P$mJ;h;P1?d?@TY6U!xNLo5%=Qu6EF#vM7y4{cE+_YM!S^1QN z=j*@}jXbsthY2^M7jQ*nQ3%9r|y!eJVRYpwD^Z9UWP*O_P@g_h9uKqmGh~!$YwPnw@(D`4BlD zuqp3v)H9_s1J3W?x2ItptYy$d4C!0a1zs<0-Az23z}rngSP`0k{2YW`kD-ISXmI4A za)aB94W#!1gi+#tWS&$2;TNIQ6yNM*7lVgl&y53#0(vF>XAY*{n8B0Sh z45fRAhrLuA*9LT(v~zoPv@V@Q!Vy&906o=UR}X6kv?E!tMg?X8`j-tJEv&b43`+Dk zUNDj8Q)hsE#VZ1H4(BhbFx3~jDc0y^h;abS&j>zn-~a^? zDSwW^vaYkUh*!MkT;MI+p%)pOWjad^G~BOf-Kq0`QM?nw!-zK68WNK3Eg=1PV6ggu z!PWR=Y5wN$@EQVQl$rhLf7r{o*4HUA$*sTCHEwItMY9c0FUB3BP)BqJWZpUrRx2?IxuX@z zDO(Qe5@8}jAo@qid!CD@(M@3GkHq0;>}nEU6Qy;__ z^v(MJZ!d zu)0enCcYm&wR_jT5%d_pG%j2F7OfNPS6|><2bFa%EjJEvHX5}$iXWa-XQfqU^*Y+Y ze(uw?N$c+K&WmG*E(Mc7h*YYMX<2CJmSeLhz3LED9k`H^{W*_U0+C+U=5 zi!OBJY=fv9CNEQfJbuD};!$a7>G3?Q(IKGeq#1nq$`(yG1@FG&r51?an6#w}i#;Yf z+vbEsMJGZQL>ZceVEvR`tEhrzPAZB>0PXGVVQ?-ECO(OOKxHK$uYv-XS{QQDb0wS_ zeO-Sz6Mww^5x$Q1SsD?fJAGokfKnz?qqbX}IoVd>77>OdE({ z5e$Zz1p^y52~R{1fT5VgufS0N@;v%>1Chp4FFyYMe*5w&mO146Z80)-Tqzn%y%@Kd zHIy&5k@ryl0cBQ)3`b+#dG1B~HK74&#S+37l&z2J7NKvm06@#qlx(^0x2HqCFgSV2nyR+q*zo zAsN(Z>{sAmaD`uu#AYf-SPxvxCVF^W;&4x4l8InLaf!tBi+d%SNoZ&G3g`J^08mq0uHpZ_~qI(&A6~`z-U*yXam* zl;v3XbJgFBEwH%AvJqzKBd%v~cM>;6==P{~?b$biLq`XPcgXy*YauZ%nJso?D-N^-Axcx|u%TtZ{-Pj*Ar@hUf$^s)lS zpWvgm#_kPb83dF(l6H*AHVoxggSQ2enPEpt;R@7iW-AlIV^n^vWq2!oitxm3`yEO7toz6)82N$0J9PsvzV6y6IE|;9Wq|IGco9L9 z;hb&+^96J4<~~2s#dw6rOHk7XyH9y#FV2Sw%SEh_$_vPQ!ROzoiob`C`K4hR1Zi1F z9VLO@FjT3=mJg!H4x1dD?58jeBf-fpeXSs6sG9<3a#^wlPhqdP5XNc z#~=D~l;-o8z?b2;X3D0fjzqZx06&AM&SuIY(gQwzj>_Uhvi< zsY+nx-^ECS2cmlHSg^#4DDvAf6s3*|y?o63T}^xL5B+0owy@?Bhro&0l#7Z2fTs|v zC0G%|{tWKaVUT{HPlE1;1d$NS1MC_yQS1j!=FrFR%ZBAd?dd*CJKtG7aavE02&n-- zx@>wng_{9(**Kc%MsLdRZc_n1)=RX`&}^FH<^rD$UfC)D7C>L1W#&3UL7ZQQ zND}WIw2c(aNb##((1M_)lbd#40XU4(MjAU9m^-@vS;=Zaveu|O!z5MOg$(zd2&g39 zSs-DNs}Rmnz!TsJVUgEHB?Eyz&XSnY@{ktU#NlG;>+c6G=lv-yg~lFFrmNpW#wBX9 zJ|%n-lsen|^oiV~L0VIFP{PTxGO3@S)(7AW-tTS9`t6Or#>{5O|D43y?F2yP9yfys zDtsAT8t@juz^@X>;Xbp}oCP(3bO3df?@<%IA6Bhu~6)o(4}6R>b%rh)4^C z3Fk!(35)nU#9#~tSAVyNv455ZxRRfBonIHXiI@I0|A)~}Y0neWga6}K+EjT-LNlJ1 z^7pxPlIIfZyO1Q|iQ0JB)%8{O{xcrvshn43z~q9k(#b6f(v_k~kU z=)>EyKV5+`a0v-M~W+J1&&|Ak-(kdsKA@Y%l%pfA|}z8>(=6 z0Q`g^K~^WlvuTdlmVo$(mJiqFhYJ}+Qj_BvhBex!SKID`$|m1Ym_ha?V@ z5R&bA`SRtLZDXiKD7eB1&w>LV@r*&@n(Vy2-=J?wthIN4sW4|ajlHg1|4t#Nn&h4r zyH_;17R){!+&~-uXT$@>qCmXG@XyEi%(ZYYn{{Mb(ql737~N=0U)Nu`4(V^<&vzU| zMF({|ai-8s)&FAYv);=T$Sq`*qyq~+qJo70qBSt?l7<@$DR_?zz)X`c9m$V~2sXTi z=nt)jWB%S)gF(Z`ReG&&=&u#=*=ar>Er^o<_yK!j{8~sK?FG`S`l8-kJQ9tlHAplF zzw+COqE*H1eFqa&qx zWt=ETctMH4hz2*Bv%Z~iadBrp4?AXXe&c>6*c%&8vorG36O*W5Z+nhVCGP6(GL!j{ z4Rq){Qyh&WCy3)T1()#%Tw~D^Q%`=9sBO%;%?E~#S7j-y zjE?0^Sn{iF2V@H3FgawC=u~>ayTTuT&fXr`bHtVlGug`)JKRf%7Dl&e0}BMwWn3OP z(^cNl;bZn({I2ymG1+A1{1Hxxj0OG42QV#t!OB`ZvzE#}x_#AJW^RwOM=625=3JdA*xO-oQn>mFU3tJxT-Fg3#si&|wz_Hg zuy%tBp;krh#1EDU{Ip&gC1(ykdh+BGxTd6uKqXgb)%6ykz*o)CXT&kQ#)hUM^)bB~ z=1+W&7U)rsG)Dbr&Hg=5*5S;c4B$WVGj%G6;$Y+E1|0znYFwl3`E%!-er#h6r~CU% zLX-D1q*=4hawbZm_R5iUMJ*R_+n>>?Y;Q{GLTE;izgnqgcU0&obby~g z?<1bsNXrWhLe@fmi-3|B4k|?uPAskscFvi_FR8C1Z1pYCa{!DXa}*?iE&nVRL1hjC(Bk&Z@jxf%-Cyh?F&^tMi(v!VJFxJf+kAr6|Cg`=aU$Hnnu*5@I5GhRgJd-sP`II~}vP||DP*@$hyTG{%# zW$y0qzHSCXV=B7?l)KmX&beiO43LVdm>biR@y-qVaG!qf`LDdrC4x9GO}L+QQ^H@w z`aUMUz~o-W0VH{6x+z8dVX3&J3mh(Bn8P!g0#8?#&B+6qdXI>dY0YR<0KGrI8gUo} z2bF{X0WaHM7<=!YGU_hAA<__nU5<^F3hq#B3=ua*2Y2_gg0&=)kX26gR?MK z1DzbTzK=d;WH{)PO&7jHe4oG%D46poPH@)6f}U*oVJ0N3|I#0rEm^1_r-7s_Z9Vqq zk$ID4s#IbsmD;rfrcOnEU7?mT)Tac^c16>NOUgw2+DAk0yr#*de6PlcS58=k_46=0 z+(Bh~3v4kuHICUn&3mN}^PH&f-vzjRB(MF)Uy}YLjF+L@rxA~+YkAxw`cD^pR|0-TDh79+&6Tk+*}Wm8JG^?CgDL0xdk^ckC&nh++XHrS-fXH`>MarEJWZ1w zApU&)MzJlASSr3cCp4usG`yPnuoKrui|3C>&+>9Fhr_qgUw91TzD~bu{ib>m*MBu$ z962*ExIk2E^7JE9-`~$&3fA!*nIsOG^BZ2GIaq=r*mra+hr;+_xBV7&bivoJ(_=@| zPp|Zg3Q!*Uo1ZY!S^LQ&^|DC0SE^6-IY?!p{8N#hr$2mCJ_m@yvhUHghM z(etS2H2rI86@TYHzlOaYF7MiP&TM(XuD!z;DIJFji`+aek?;I(D~R@^Bx7uMxO&Xx zDK*raAx&;m{1_c1@q}&Nx-u0Og$hW~$KRxp4)ZcnK2iy53~T0?*rmRmg)?6@^A#07m=JZ}(w#->!X;g_x~ls&IC8#yYrsh}NwLjUqiN}DyFbUIS+(T~UAa1RY3ZlFYrdn1CaS_<+k!DA zB@bVCrsvP^+;YAsox~-A7_E?=nL@1YN`BWk;&Q=F4J*?Os>z2XOLW+jl4KazB73E3 zu_U8NknmHW+?}1B*n6>Jvy2_4ixfGx3=9l|PQB95^qkqm%=!a68(HVOXA^~d#c>mv6+js;B+?Kr-v`B|%qe>Ma zJ5;2*f?>1;FenhlzBQV=H!zL5%fSr?Q9tAvp!Y=~z|QV=lrm}S1}AK_0^$81L&@=W zoPU>8SP1*X+nAHW__wJc8}Bi;#wc7ALYTqU&*F+@lRiEq{A;YNtxuSm)?y=8Nt5HA zwPqi4UBeoaRg*J=IcCr4RPPSkOh+?0(tZjr2%d&Pn&gcjWln*F)r(5k&OH6D}B6VRUtA zBrVSqjtKyfU?uYt2|OpYwYxR9c8Xy8fWvw`6np-?QF6YYa7$z9HlA_(u$Y84EN%rQ}oM+;Anb2`~AaXVtiF7LJA5+8ddqmlndxWjQ2a7&0k-doRP6p zNa!{|@=VwZ!6}2BMD%KL2zrW6?^S(#{d(0gnv>+rkW47K!d&ElpS@ZbP+^lDulr}Z z*(kyq*ya{_Pcc+RymxF6NInS3RKayr2`gLF7?97NRLi#Al>c`lX?<{Sus)-lRyE$d zxbe4@0cya2&sCF*ouF`I5Sj)Q5rxo`f18`{nN{30rSSDH==h8a6xJlxDE!-%7o}Tv zG~@*DvU9gnTxHeVW*t3z$<~bZ?oCVgM(Oi%m(q;+LMRbk#<>Qk8$Z5?{b7+;ovOc1 zRa?6&(ta0S(`h`Hea_zx>2xKsio<=MJ92J6a+OS?j|-`-mx>C;0vE$B4K%#d96&{G zm6^q1jC?zXwgT9!hgT}k@}TPF3Gc3vNkg!VxVb$Hjq?87=f4RQ3#|;p+O_V*b2Z(k z7U%2m5YWcrI>m9v?SQESyt0y^V)D80&hYhnE2m!{9B^_gFpzq>*t;P39wzlp8?J(r z%ZJTYP}u=AKse91{OSA==!5A?2HC2zJLI}S zO@|9E%8NYdArus%fxcK|w!ELF66j`M?cB<~AWSp(%bMILk*101X9+pTl8gCUF#lh%`0ZXqo04;75p(J zB?WH$#VKPWBO~7FDjokR+<-6X@Z~YAks;C&M`|AEBmcifaUyb-Jl06U_eq5DXYm|06G&eM8pE#kc zqtn2g-GnBHR@sxX!7<`Z1E`2|%>}$#BO;h(!7bxQyut-wrXz zB_y0@x+%nA>@QymU^4;dkXSu&QI6%-T&&;XF>_Q_j0@QEkkk)wTQiF0w&GHHB7Z3i zqZfhP+Q!g`f)jxN_RrQ)+iSzg_a<+)H7jmz%@xIVAv787FHnRqZhu6hjkF;`PXveI zc=Y~C5Fvkm_9#{XGz9jPB1}02Vc%*2$`q!~8THsjI)iIoY?6;kyQz+-#Il%BX|B5L zpW#1Ux{s4ae1}=(345_MRd#7ZrDNO~Qj(7h3Z!o5@0ZY0lzlKb7*jpbq$qGoFr2sw z1L?pH{E<}J{O#=wfns7azuEN>7h;B;?Y!$9dYDXM9VR@1?{FOPw^TFK(b)j1 zJ-$U$61->^krS>iE`OtZFfh(Hbj3`@9Ztw#k;=)gt!>Owv&U?Pwsu7?@#rch|Lg<%%--&; z7hHApM^iXsTlilukWJVx?~LWVRpM8xvvtX)@)I~FK+^&7!UDqY2LQ(H{Qu3nR5Q}l z2T6V2=r9)W$F*U|75av!8jB?84J$CT=fu|ueEYGNOQ{_=UY8JBhj^ks7QbIKg#GE5 z7_-YYW9~&Haofjyhc^yD4Vj_-y+54cV7@e@<#+HOvl-IHJ0M6<3I9D~bsw@UhvE)0 zZd*OBF*zJ1@wTmg6Nyj7EiMM9Uu4JwGwj7ypGY);JCeZ)MCp6{H>-I3jA%0)RKw!3 zHhtPOIlaom*l|8lW5aG7&@~^_cCkE;$_SU6Xhj}gxy{J@Q1#HSF_Rkf3>Ed_~{=M(IH<$dP184cquh2iQ z$BKdeb$54*3`p&Vod*SU27U~AB}4AuL^>gwO|H}H1vM@4C1#gA(W%PXwL5Ux&!Ur;KYPoZnzWuQ^6VHE3EuDBoPULblb zck?~$$sqKnLb@d|bi!L80U9+nC=<|ASOGvIggRhP5wNfX%Y}hy_;=yq<(QiBM9Fj6 zD*i0z=uK8m0(tU!^}x7*iCyZ`^~1NHIy(=o&=24;fG^IC>)c)pSW}YFHop~l5cY|U z8EOM@{Un49N5920BF6dr5rs^Fb-fEq=Q_daQc^16FyWE1(+|xvHZfT%6L>DK7h*8L zlVqQVEzKsXRPLs)Uk_qDf?pdo1?U3Ob;!vCN`m+e0TdeCfJje{md)T-!^a}yDE{}X zc$U68t^B*WTVmB36|YxGb6A9#hH@*Y!#o`;09rb_%uCZY=(D|DTQitxQyj^bsBi;)ya;v_WTph7$M=r_vz~{C7+E67D*@~taBb#` z=ZhSYEEITOMaCCyeW1=T!*RDPC0B|g_HtNdOLn-hq2!hG_2u5eo{j0xpI^l?goNNi z#s?}la5HLFpt`V@Myau?xUmlFlrK$9O=-*PXqA5@C~}pC@ef^74+`UV8!AcPg6B#(Z;K?`$H`SB>R;ELftsN(K zZ2+fvJbgYTDXHhW(h|B85z;@I0hyKVaL1gJYFZKlK=~)e{0_G>3Ta9@XU|DWpR7L_ zbUN#M^2Hr>e5`u2H7*>uQ!~+e0>Z)h1=$wiTNn4U zQk}`zy0PnjevCfAKG+Ey8+?NVrG)C0z%0Zl8Y_7s#xBL4jYL1-t{<9HRG5Ta1mqwc zrOhM7r^7}y(v2@5>dEev;XYiF8+c;J&pe&4=^6s|u$EKCztOf5eIWjaiDwU8Q-*0M z2$+z_Tt-YMwu^-Iftf-u{NtrNj@(+T=sP}19q&<<3JL}oDYN)VPq4`Rgd?(4Hw0{qfv{np0b^m(Y<`< zS*7ZEN$Kq$)(c*}MG2({sA}4{PM)Kdr*`-zjj$6S3xolTRq1F8nf>Ms3`6L^Ho@?|vxr}rgTpcT^2SSIJ%?;oZ z{3dK;BuVoCg5nO$w@?n?gFA%tekwt;2lf%T56?ah`Mh!jou${o*q8t}AO&%j<#Th* z<+a>&S*|0n5R=kKHc#pc|nz-^)d31=hr zMl1Qn;GO~vToa3pSf4p|Fi^k;#?l&<6YWPfUNQlMaaJ+!P24M%ud{-BEbcjTp+Z@A zXPZL)gq6XM(tz!A6QUNsocw;&h8|2C@9e%ST#XA1Vv0Mk4}$sz2Mj5%@6oj1xO1lu zgc5SGO!&?hfIqelya3E~qRC#Xebh}k2bhp(W$Lqk_5O~~;h-^)?Z=;^4R z$eJHEImjG;$m_5>!|^xYZxy`bQj6H-Ap9dpg2yb=;E{yY@#|wqh>{riMnE3=~`E!PU_KiDE4@cKSF4jW5a>R+l zbK{tu)XlUr)9*i}S`0Uc31~8m-J?D<_WK(sATa8JZs!JmH>`*dEV%3Hal_G>k(Hs+Y+1(lE+Uhu{bo7E%D1KNhI6?~yw?`3;4n zOTt)(`vm038)(9i9hqN_tv$y-{DsSVCyCm!C=A|SQoW0^8!~YNB)@pcK=3?Cn9pk z3{J6UDrS1*n8vB{o~^DuX(70+fwfhoh>c8!@urEgYZHW6-%vL=81FxXkBKZn;mnTy zlvs$MDONeV^(K+0f@23>Piwr)CwwTtxk#uHlu{0|(NrlpHTR~~)2>k*wUfLGROgL- zeHAd#29?G2M4tWrbLwlS?~AB&ERs2X_8_C6S4Dn2!ovtU3ib*~+XXxhehoU79uP2? ziFfsm9apj4{@&B`rRVi_Cv2Hb>wvgm937ou)WwB?03|BUOUW>1hYb2)7(YI0DCeId zO9~AiI?{=xt;SfX!fajuRSX|`s_w|1JiWiSUV8NyGwlm?t$5vJ=Mx>qJ2pB-OYcZn zj~Bn;UoXGqeQR>u<;}km0u}SCuP0?>R8?2s2LFyK-$ofJ*=0u*2n(ca<_lZ5qeVBv}u&8#OZBP!L>YFuWpaRwwrc~T~nxj~opN^yb~ z{Y%0Z<1m4$sgGn`06qqokW_!m1*BF`Vza$wZPDFU0Oze2$%%z5r4~q4+p4tmohNT~ zm>8eoGISfzig>)I#we-a;1xaEReCDd=g~Z=2}Z=&Icu{g;vY%Zc&X5jv0_!ASL9aG1Q|8VK%iPnz*M-f;00Oltm}zS&>d(#!Lm;%N=s{nhS=qoam4wITfb_6^1a9v-WvGd40Jz2=!*yB@rtD!`j4jd(|WseOu& zk3yM6*`M}cw~aB*^26BzN)yfirE03Yjr7VqJ~QjEO&C5&0ri{3pWH!cx7ue{4i4Ng zNYnzcfQAs8jJ``oT>otE88?MpW%Zi1dgJ=?4nd5!!FZc2W)HNL1;!#_H!~zPHjE(Ew|Y(--(+r z9M4+$WR>;O-F{PJV;WL~Rqaye6?n3jJtToeV<8W1%UURh$}u-Zg0@V8?)UHCTF`ME z`Wdihiia`}fwX_6I28nBJYcHvT^XkrrN*?_$8{I?PeR}0ao#W9lv&XDIXaDaJ)K%f zE-b{Xn?=!oBOVaP8`?JN%okPDWd7p;zuMMvn_`BX_1TL<^61t7fO8x;(> z0|h1yv0QU+&HyN;B_5+gU-41POLA)lKT!{QLv_E!wQVe%X-Af@guIiCmVn}i@O+`A zuAhG_&wQ5J+PZaICG>v}V0Lr-I45l_U2yXr>5expJ8@?2O?RO`rtkLdTI2?)mnc25<*^^bPK|9Ze(1?SkVpO`r&6Q7jV^_6Zt#I29>okJZ~!#;w}tx$d5#G zgC(T*oSpA%iYc+Wzzs!JWw+!u(u7(1T_D|R(60c(4onF_i3l|8yw8=5HeTt}`z+yk_nqUqP~DZlHXpVBb-z1s&C9?%&!QzV zwpER=Cev$U|~D@fE^>dB7V2NWv(CyAKCTXn|J9 zHwWlRj13iE!<N2v3WAB@D1ZnIe~Ww?g*ck2^PqRs+G1ASI6Ts( zpDl3v-I3M*BVT&FGF^O`x*TBte*^K`@*K%m3fd|VR)8{ZHTNiQIl3?`qc_ODEamT} zpcaNqc65l?!Z$;>j=yF6deMS?(qD}w53u(Z5fF!pW!47d(bk;fWxn=Hap&ovt2 zp81kEF0XYkB`2Kkuk&hgiWs@^I`j(jsRh1`eTu$~Q zoo3y-0GQBVMh<;0iZP!k+p0m_IJU=3 z(!b2IlrBSET@zBi;M=#ucE)VE726f9pk3tKqyv-o|G{Mre$4mMX z0C|9IdqeHMzzH3lD=_?Z$OD%qz%b1QY;&@G#1;?c0ubetXzkovdK8nXauoaJ;O@PX zHsz-IIyDK$-q6xrdTD1MJU;HR!kfE1KR1$5l8~ItRL~J(lJNrCUMJeuB!ww|l=^E+@2X%+&G%c3be3HZdu~J6qrs}TEUM3RyNuT+V~K>2&7d#mVDNYo z8^86CW}wakPb1s797AjmVar3-f?&WnoG}8`sz>>&Xoe@C4nkXpLM-R)$XLoYdnpb= zIs#&hY-%BVCdC?KxZ21T7_JkXPC-CA8%9yIzU|2mMWNLHzU zdu4nlgckcVO2`wC|Mr+EZh?XJxa!4O)elNSFTkLJ2$r~IV8})5$%-%8EcL^;6TAhVf6EGB1nOHJ@;HqGY!1$h9vh2Y!pD{svf)Zo4<1 z*3eiDVG%*TC}4L0a3!5kie82d_zGad62be)B-bCHM>8UJY|4}|P>gq`U}^)|`L4{D zyvWH32UD#WSHd)+<8$9i;Zre(W*EC<(?1J(u+k`KXu>o=XtI8|E3le1^l&vDq>C}s z+EgLZZCbS?^riF5=%=<1JQ6GKKYYFaZHKp`hZY$LuDH)h?ONeXxv=Y(V&590{=UAK zP#b|ndebE1EG{cFeVbDnnMxr;d4qlqWTiq}KIDXgkS%UrPK&j(n!U}g6!*S2Oj|w6 zQksw`;NyC8dLZS}%$F?*nv5eCdDZ@Zq3UBd`o@3?@-I6ueI&{A!1alsjnMZ5!-ucg zgIjZHET@?w1MwLcfIDgx=G%?)a?pt5;wH9#ldg1bDKv8ZdaQ+4YqC*xT>{XR*e1m)2>PvQUQ7bEJRyB$DeAhJ0fi5 zD!FT8h<6F-8NeDppr-|}O@3<-l%Jsz;Q&hfF_9Y^78MgHj~$A_D&GHQT#CZ4NZVSp8OH576 zDbZ5D^m#7+enJ2@06nrn%X0MS zdmou>dTmR#2C2Y;rh6}a{A(zJ!gk=Z{vXPs_Cl8@ywY_V{hXc}`XtU&EkskHukLjV(@qBtXRb{$?Ns;_yiLK-AaO@lxvpSC&uwhLMZVo0m64Ut`;tX~LFG(z0L8Zevuf;!BN~({O)1>{{2?k!G#loaB z3FGrlcb<5*tTm0Z5GQuVgix9&m{b?%Habt5t=qku3e1iz;mN(JK57wfn(EXK!}5c= zy+KgtW61nHDYd6xEZ$mWezC1z|Fqftb+fCpa~W_dELL7R_a1o{!sV@Xx)JA=n}1ov zeyeCfq-qaKng8BHf2mLl%Fqj|y%9Os($g-=^C$->Z2nI5CMXz|i^j&m85xe(Uwl9(G@rV#CE=sdT>pZYWs@d4 z5ggh0moM+4LSU@`a0&%IEIRrasIs++i=$k0jmHGo!uW|c7z9Y1ENBG@)fFQc@hk(u z1#Bf}`+|*XfgcUU&Xm?Nj7y6|dfzojbI-N=&|7}h*5=aW7r8 z?M9L0&!;`K3gn&< zqPvvcH~-@=EO8G<3+O0;RmgLBl8OTMe93^jkf0!<$9Vy4z(53@2nO59Nhh*nxwuRI zK)L)|Pn%y7Mrj2fivxWwUtD2Z#lC9qj*Cq9OzwUEq3hWV>17r+WM?yPqvI?uFUQzx zi6)8I!2ww%%d_I?=!qL8RLZRRS{LXZOuS3wQTD0c2j`?ffQwK#ppArv?h_WLkHoE+ zaH`79#M)1!pD>6Zma-5kmI0E)J_w7mN@8{nlRrSTyu7^r_!{aO8Y-$qON7(yr7g3S z5AXRl#@bC|*h~hq#s({MlpsMtL;ZY7gu?sm@A_=};%UpBkv$L;yPQtBo9h1Yahuq% zQC;$%$Y$i2Kz#AiL5?2xBK_5a5!P?==@7T*{2oW!V`80x625BGDg zCL@}iQ~v}-a$!$@im^8_x&jG+veflwnFl*Act4Rbzq&{1@xLBzl?`VNdUR>$ zj1tH#xTxb#CK2`_&~k9)6qjdCt@J9byk##0^`hJ&6L@_v*7IIP+~7x;j2H1Tu-v&- zRHw`QMf7R&)-Sd>@Nrm+YKy@J1383ctDb%N+1asc*RIlYk^sg5la<+Ie`#<31hU7a zzI&>ZKb=24B?R}54r8OX{q?rjk`1*}O1r9lx>4R-d>*5vRD)_39xlW-IaB!ilf-S~ zr@4){jyx|+iM-5ol{)97^6A@jeja)cEH;5gU%qFynzE@Bp$3sM&f7soz-j_m+yBe) zSBB0M)Rg&#ci3KFtxRZw&;-ewV(*WsCR8 zpDnNuTJc?&sQ6VOw!?x+c_FTI{3&m{E;=yq(O|N*m4}B1Ee|;BJ@MDMx5LD#Yw3qH zk!KTD1p0dz{o|!tf%HSdbMJp}RXtsd?(*e6l`;0j4-}Vu@7ktqXQiS6miNGa`S4wIwqQ)pTuER>4480Vzc1Whie2W@bT-?e2>eih* zRw&QJiV>0^5NrW_Dl9P%o&7(WNDrCmF=gi|D_J@BKDLehmESA(zRvITdT*7hp}&JM zy1Ik@x1{n-q=*bmrtr21yrZ+~B2I!0X(c`_|{|0`redI??cCaQG^+h^vLQ|1CO(as$$LqSK zk!hMX>DxZ6`kfL#s-Zoi%(MEVW1nW&jzq;D3=Tty7-;{g$X7}4~&DQ{e8ll~wM9w-u|X1kyBXqO4yu7v-; z@sFwg{Xaf);jZ#fEHFvZ2D=oVzRb!X#U=dVs`x;bEAs0~^Xal%);Lww zkG)cSI7wR^ujv!J9RwnQ*9Idc7l0j`9(5BW5{{yQ1UYc~3gGnfn=JkZZ;64eeE?PKE`MVB^$4k|RH5ZkLy^vJ=WqcF+g@n%{C+bYtm(p(rfqX%AiX&$ zvHrj&o_6|x8V=hK<>f=F4ykQ}qpb-#g6voY_4I@cmy*F6AQV9tDDY5%-^VXFtP+b1 zhexMH)9w8`)`sVV+zMLh?3Q|&+!G$YFVp52A#M)DXz=rPj|X{(2=3_Izxm_iR;Qxd zhsGfx%d7r1v~PO=EEvkUSmRgD{3T6r1}5P-xj&cp5%ak-_RGGLK|C)pz@xlIPiTZ4!b%%$^be@6cDNTrpLlj;9Vch|?V?Q!)SJUs zTha&j%bo8szgS`QS?|dJ3%g%;N@2#i+#5R*4%U)u{O#KyaAqlFJacn9{QTrU#c4la zHvv)6P*DAWTLo}Dth*7(hzGOo15-GCX{FQj6SX~u&C=-KYHOS1Q4Vm>x<%F*dbQc? zFUTcsVkRabANo9x{#QS=Mafs*^zu(Syi_nlj~_phrYlFIN8|g(OfH-5V+vQUiWrm zc1K91?;`K{sG5*t5sXb2oHsVoW3U;&k$BLP1AuDbY||N>N*U8rND&3av7w=%XSWG> zLBv;M(JJ!NiRgHboR-$VoUFsD_pEN>BLez$JL>kXwmq(~bNm&=Mgvw#7-jF@y-Vp{ zqpJYzJct}bw2!qc;XUu&oB7aNgyCR`O?rUDpC3otJ6oodFR(R4QycFZEIHA4Bv-|9 zE&mej9kpog72W1sNYU?tn!~0g|HWM3JQ!5i?V)8}cV|NL0*6jhz>zV1DbLLtc?yQX z{(2(g90;3P=-$vp1G1a-EaEkiNXP16yCmdTnlH0Y8OoHFk58r3MN{wMB z+0p83p4xhQsj6Sw4rT24rXu94O4q|p+RE)0%{q=?;Q4Fogl3WCYeRwqm~x?9CuFAwj|Eo`wt#bTeVaD_}xv9->C#~A57ua|1EIEd%otD zL6)%GpR_OMkXuCtd$3^4#kOE?Zv$>K?0)cN9W*mDyS{vwP6We@W|nLOwV=aA=JR`~ z!Z|!$BeZme7%Vk9qg{&nP%e_k)X&6}W4YV> z?9ASf`TeV%@PNV&KJT5*5Nei!&)gSJkJG)Y_zkXI6G(KVW$~E&S@=7w)`3`X!({Dd zXz0#u+XAq>9q`6n3b9c43LX2%a4XrNBnYh5QrLIr{m~5W^Vo)UPmJHnh`M$poB4jr zt^1ZRZvR zFW0h@L8!Vp4y_~70G=Y3@X&~AI z_$8N#9-J7B3nHLgo+_i~p%Ba_%c-YaB=0oTn1H)9(Vr4q6jY$k^C%QVN6Cm3Um(Ni zg`U+a9$V-4&F75D8JeNyud>GOTctNkzq=lMR%dco!$)5wwUdLZx(eUG@(H=i*H8c; zkf^}~f6mU1ADlc8`rBV>xwvGzYzlf$&j-XJQJz-T&*@X{$<7v)EgwYUC5`=G?qJO{ zGHUa>#jkvt>(%43=GF3Eik`$21!TCJw{AVfRn)aImq+&87@4U<*xm4s<>%X76gnTS z-kkgm0@1syEXY@TTXRgFf5R2}n_C9f3NJg<90d&Tx7gN&Cjl=1$)4*x?%!ikp!i7(YZUrEUi6+Qs^a3S*E%|ufFJV72n(`Jv|ty90Kq+)emkAJl^>EY5igNg>y>8 zeYCIBSv+%CCi&IY)5wE?dTpM;iHEjEk1N|}e@|g^hlXb*Kq_W0Xk(QWn;714ZA8( zT^7>YY_*t%dwR+U!U0f1u5bbbFW8j4g)R;rhoZ!K1@Md&nhN9n(#m4PcjP(e#d_bq zbBUXz$X)bs!Y&TY-aXDoccyF@FJ7g;bub=EN+NID3;87obJ)C;p;x_nunfkOX!=mw zp*KirM9ji2QBiu%>LfY7DI;)+EE~pIGpR-Xus@zI^Ozkk!JU>rlfdk$o%a)Z0g5%6%ytAw^@IDbQL1 z`bm*FtKabvW;qntr3{@sL$HqStD8;Cu(yd8xF)?dnEd%fUF{F|EZ3wx%CBQWqgX=M z`aF23TB3PF@yZ_AGr#J8D%~@MzehbbuP>yFXzS^d8ZRR4ZTej2{p5k4gQx!}3N&PB9ZpxA>j6X>D*|UHKC$@p9 ztulJj4>pP}MWNWxqKir9RIcFd;$}3VB4cY_+a*MG6Gc%sgDo?U;**4ggtaNWKmxD_ zq$0j*z+AsiOmvO;*q+bK@|ry?Vw`OL^ZOQo zj0_AI4?s3*pBJs@v!6moM`vuS!MeY9V7w~q*N#HT;T>RgeS45|v*gLI)tiMxzp~Uf zGv?K;Ov5#nI0m9!1kWEU6!dy$XG=*-gZG9O9XpusxK2rgJ%C8G1Wi#dP+lp;=fy_5 zcs&()`J|1mTwA^C*yi(TinSq@)`@rC*3pJMKd~+_FOP*6Uqj;(v+`+nki*0a`JbIxUBIC`any}wz&#$ssw(+Y(ailx>#pQBmyd(ah0 zGZ>E?h!LJEs6M0!#X*lWG>us3ZT$_XDFE6$C=ukLk>d1CkgPM;DbT7yy4z1>2)TJ` zeWYT`6$@nD>k1-4h=bao4E=Lr#!9eqp!F`(929VHfwTN$qGb!tS&Mt;HABM{7&+Av z4N;}s-Cg1uFEVbM(KdZ|a$p(aNjjjx@(o0mbFPw)0~g$X&A)$jxEyrL=YfIcs0snv zL2gAsRRHY8kkASkg|OIqyN4ZsrCpRg%>qjTZ~Kkk)M?ofR?+e# zCvD624R{uo>6@qrjgQ=FUztza#*j}_T3`vSAsBG1Cr<`~DoKnXFfM_Difm2ig)Ds~ zC2<5{FR`T)7#V_AF-X+klNWQ^1Ni98TO99wxghU%_~H4)5vQ|^q~l08oyT?;pLQ-> zfr$RGgG?duxBM>Q%}O+i!0m3`?ER3d4f^To&Niox9#~QewxvKALkL0?K~|TYcSE-H z?k?f`7}^!^%SeH%fdKUFVpFH)9Of>YTw*cGZaKMW9Ig!j6$|vLkoW>P9{{DRzKf`)Y22BnM z`hut#USNP83PBKqoqB^*IkuyI1j>Yo^FVuNG{&X<3?0XKu9o|WC@Ikp*nn7S-5#eX ze_6E7Sb&-L1ZIM*e6}YLb0UygQcBJ5VbE6J+F`uF>!Ue+x%JNum;cQ^K1~pYA3HlN zM(+Tr1tkCtQ`?D%11yTjVTGMNrVg(Su=UZ5dXJe9 z@ONg%+QAy!!K2e3B-OMnN$q6l%@7$iHEup5iRXShSg#GP|3G0a$yq5=w8`LBBtsXJ zsXfs*kSp$$EY;PPY5 znY{5(l=X8V)!6xcSV6P<_uv?8MvcMY;Edi|SrA6tbC46Z={@A~_V;gyru^~*9jB7$&m zpR)#7xp5H|F0+*~xEcL><}E0RZN$2#JYx#&FTcZ@wcR6di6gA3;~Tme&v$)cym6HiZKa)0w-o2t;07DGnQA}{~w&#c7$zd$i`Q1#0&Q_ z<~!*}o1oe`*8SUMGr{R0&4zu21lnY<^aY`q$N^xQ3}#B{!VY4~o`nc8mrh6EncqM4i3zQR1>4D!#DV}+{WGA|Ks65>^Q~=(DQ#|5)HXQhQP3_nip|xO^M~c zYXbj{ng)-Wh-lD9Lu=auvUVHH350QkG=xRqbxD9(h`JK2Cz$5K(fTE<5g|FroA_lZ z=Y178KIiV;h9c7nNBFLt3sZU2iFE42>3RrNzz8U4TYbjaAnqln#2PPFp(6oxhOtt- z7yEAXT))4T&gk;*a}dH6w0(95w*xYlGZ?!GB%7E*1_VgKZ=6rE-J4Bj-DW2hPtZGr z33C)-45Z4F8&79!9{og-2YDVC^gM-V{3I#m%A57(0WP9>3VZNQP{3g5_6piwG@N0Z z=};NM$-!X&i)W7Q8?dd`uUlt;DvpA2^qULxI)aTHwXeN}qbRRkkF+S6F=YDkLj7SN zlFz9FoOfY%F*r>{o<9lM0_-8kX%4?DEM?dhAr8R{{uUH5G~+lJFz=<#C~;*wZ-nrj zaaqufeWKZgK(qseROz+S+Dha{tOZ*xhYgt^U;*-sLygVgTs5t?sTdEryfx!jw?Y3DsJ%;WAak~d-gL7}iZ`g^+ z0|0ZZ8@zZ~>gnEfZs_Sj32U@K_$qqhMVfkM% z=8pMsj?^`e>1l3^36pu>WcVQQ%Ya$$Au#6%iN?pLyOnsCLL&wTZx88c$cywQ&mlkHc?IY6B@)j^)CEH(N?{W?`YFRQMR&G@#hyHDHQ0rt0UdE-d%eu zvDsJZKR&6ele;*Xy{pwv|(={J&OSB6Gida2(M}c?aDQ#M#$o zxwaUD8kl{M0;*$q$qBiq@TPh6vgWrUpji=g~%E*B%9A=y5CYPQybaXS^`!Niq%++e6qs`ccRHyRYMm~wlR#XS6Wln%c@UxX)+x={A^vrn8RKBLcblv!Uo?k&I zUNL)Z0>BvB{JSt!iKKUMkp*URYWa_y(P%pGG>mQAR1CoYM#bcY*Zx{G$d)nh2&qEW z|1S+x$Y_~VKjL{Phd0pC5oc-y6gaC#Xj=w`gwUPFFaKs(lhrcG-?TC_1OI0u>`cG} zW?uKdB=p*UG3HNLyAU6T;RDG_eQZj8hTznQqd>vYh$RAqQ5Lv7=~>_=SFKq?ro@8( zhGav{v-_dW5gb^n$qfr+o^}xJ*Lh#HPWMlti>oWVO~|l8NRE+XLuCUU1ksCwY}y3G z-XBsiZ=}bN#Ze%M7%B0|u}e-?JGIE~Y1VWRz}XgWpGDVb7IMEGO)$FjIVc-}8-|7U zzeB++oyGALkd^ZiuR98)*Ex|_SU^z0k?iCw>u0z$9V^!6*Z~sWiq76%M@ftI;y1(p z2dh_RKGS|ir|o0S&qze0Dg>oC-^I~mwldzVFM@-gf^LOUp|T0im?dg z$7giyT5WZ;M~!h5r1EFQuP6%Z{d>e5`M!={s>8+AVA!H)Wy>3(|jB@}yG*51COWro6PYY9X`4;KSvD`Hoz;J}38Mx2wIJ zO+^D(_(E;&l-Q(=@733zdkv=kD-fAqhHY0VTTs`^i~W-R1myI~Z^m)8-9tm=$a==d z$H_1#)GTEBS;e(TSX5!P0=)%>h8=*3K*Y>Ym{EDtC{jHOvI72Xdgo7f#us&W(%b(L zy5RjQNVjRpdKTaUzn~x=sJ;|<4*8#b#wS2Hco*0g8aEZGxCePk7p)iG|f+yR-l;5KeA* z1vt03IS4aBx3r(-?szfZ{|q(U_L1G2@p&unO3e}Zv=*!14W`7&2K`!iA`@48%$Gy? z=!xWjsO?eL;(U*QAOcVkPNo-zyYGp2{o%xc8%VNTA2hk|?09>n(RXR4VFr#{OGN-8 z!H9(893KcO2ovxCr6GanINR5xeEQ}Dmm&{P{Q1CDs=?thD7@vug zbIf>+nm+qd+Px69c9lxhVQ6W05A~M+dhqqr!spqqvD6X&f|){JKR*&s0LK&46?%GN z%JIf+!4aU-+iMjNP{Atf1OhZIM4e7KeYxiIJ)O-9B=uLPM1yR)#pi#CV&N`6 z{@WQ4_Gm!XhW!h-SxyW?!ddy=U@zu@0seZSuqgabz zM(Fobc0MkP9!UVP(QJML8yJw9$G-Vz|4(!*yZMb3tQ>WL0mWbuh91#|Y5B_ynEjXp6ol{e%F`!KPEA5|RivKv(f2ef@})fo}KKf5;!Zv5`*z#AI0 zd{^Nthw_2gtpoHw%x)$9|5COD`395JYClq|?u!))b)8=vdWKeKuRAheFT8*Mewd?R zY=$k2;{i3nvg@y_BWUkvr<7vA6b|hjAjae0{%6Y;>rlD=N}U{~D)?7+_VknyLP3wi zf{s2G@oj6q#nBWthIx`0<6&WfO?9|>R1`gzCZZbd| z;XCSpU%~q99CcsVaP;=xKgv+db9tt+7V(4@sL!U)x0-$s{TKjNB~Y}5_D}>fI9Y-5 zv6F)HhH!_|(~l8P1w>v)9&LKi@~4;bZZRTY64L>8y($k-MFd*Tr|#6`933=&qY z+^PRx48NJYOP(a&mZAmYjgBS_L8svkSv`PGXbPEZjj4b{i%P~A1N}nZ+o_=u**ry~ z@P-il>~dq>H-0!BqrmZC^4aAynRp=r)LvkYlU2cDfn(|1gOHnm`DLdj zL($8FGTX*N-2LT`iG|mzxafm$H1H5Z-{33?h1%b_oFG5I>nP^Un;N0ww=E;H(ek*T zS!uk*T~fBJW>%J~^$$1?o}|^g)&2Gj&_J=J2`@5A7RI>U@EFEY_yJpSBx9)Sp>l%l zF(WZ1L^2Bg4+y#QD&u9B-%Jg}3Neamp;>kZj(lmv>0|G@wixsYP>&GSwNr+hYkK*N zL4BKXhq_4c_Pe9e3LLuz1z-A06nwgJmL)PP)2}Fae$NnZQfx$ggk+0ayb5`qNFUz- zQ75yDz(|0cb}wezgFb~kAh-n-wdu7a^&uV9Zk&Z_?8IW#{c%mwnZLm~blrt3l!WU(`xLbM01*ZzVE&gw)-ix!8#^^Dw`Q(@B$Y zgeQn`Jp*(wn%lD<{3`ynXU5+!0DdK~x+D(!IJ^xJb7s5wk<42r{HXobJ6yq->-eCo zS6Zhb+&q~ISbFX4QTu)cc;3o`s_1Fx4w)eV;j6@!gV47_tL`_fBi)-U z5DlMUiX+hvfF-$Ebo#j+!%}jHdz+Md%7W~lOB)v-%BI`o4)YJ(8^D6v&3q#0Vb`{a zT9*~i)dNdg*xO^^M{(x<8E2CM%in?K>HLcI3U~8Lf_*=#AKUk*WJSQV7ckEyoW{wK+-Yg-S8vor3)xm{t9~<$9(sPX4<^QmiGpQ zts6W-1>-C)iV^1(kRi~cA=Gk=xWoVe88W61_Sca)wAUz${*sXt4_q0wBG(f_ucJ6#50@w2enSY-d4Kyx)C;T1{q$NW^5fUa)DTRmM zf^{;h6isnysi*#*pF4lgx4RrtGQ$38j$VShN}TC~(`4Bz$|GvwyDJL9lSY}^*B3su4D+_iKXJMkE3+z9 zy-ADcKcd&mXdW~F>NXf%9ba-V&SI4l_iu(5;UCY^OL+rL$Ce|QBp_*$-2=T-@Oa&ty;d@G78Oj^`1)gkUrxHMKqqWY4ujX zzvP=EpMHq7cQ&= zWu^~Kx9n&%0s|-dDtK>(R;o8PUc7xZK&jzfsX>9E{NI@j z=)vj~-Ut9`4BQn+^kFh=`IUYgwx2nHE?hVetK;~AAjl`lA1;05btzL@NYUl?7Pobm zLM|atSmvfe==1#279jy4os^u5K~}A9a6nx5VdQK2w=OeJSP8(x!zo|i!<7=?8xX`H z^#1nu)uP|ecCGmzk~jV@j*Vb}!r|aKW{sksOEjweH+H>7)I5KFHT11vXy)Re>cS`~ z*f}B`kZEt2KQKKPafV8@Am&+^Ef^cZAaONH-O5P{$NjF;q%jm67`O+Rsm+o$5l8G` zi&)*Y;-zZvJ?Z$%roU9m0?Q6r9*(J3k&fH<@=VAb%P%YISmRKpu>@4oOHiXnN^!+ zQWp0+)!*BwYTh0sX`QyV-0yQ&uj5oe6&CC5YGvY@1MCLOGix|{Q&0t1elNN9mh?za zmykJ=m;gCj--}){!Tv$%{0nQLDEEWgmjVI%03tV!!hK9sKW@R46YpbmJ6{M6yD_Ft)y ze%L2O?^}C8(*@~C%&j)AA1oBpzKC`1e1v#JJ!3jaKsOk8l6ys~*3r46s>(}$Y0}@k zqmW2?i31RX`f&6eQ*tGC1;9`$Z|>Q&24f3?m(@6ZfnQCbd?ri>Scl}*%OO+$JAFsh zgaUq_My4q}ih)1q)(KKb`$OaHHCjMBWV*?)lJ@Ot{hS1ylWw|^wMRY~ty64Q6r?ri zY54VG*Q+nHEc5R2j*7^qQgjn?&smspzbN?<$g?tEbH#?ht7nr{I;Q72?0wYuYz=AC zr5_%v-dz8zQ`waw^H&l7YK5R_JqHDrhwt&kFnD|~KYzx@WAB%q4}Jhbku?IUsOm98 z>0R5{@6QYvkkOapokSImRuv7Y41`0C-IU=6*s;()>r7BaVD3M1?2P`?~OPzFO1c2ehxYwzlGE1N)pnB*Zcszz?D`YF%`7 zp+Z@;YPyKijhkDoF|{ftD(Yb=^W%L-Yf`iGpo#}b!|S06+2v_d(?N@Dx8Gf!MEVbT z+lZ1jLAt$J+iZ77AaFNln4rm$=Dz5HGQX{d(wH|^Se{+9XaQUpNkkt+goK%Z9NFpn zag6%_iKBH|0|JY;KU%v49)A`Gi%WMF8^!y=?1i73Y+eSIO-$!cz1M=X+#UNn7mgi# zShSMxLD-~A);=@p^9?p`9TkaKe8W*3RdT`18qf466 z%KGJwcDGVV)gCv-<@SK-yIc0I5BJ&P;;Xm){OQvQif@JV%DR>2Zs51OH`-JEQ`=f|oO)Y%oqE45 zR^;?CME2+(u4&!em$0Ap0{x|ZS~;e^tOMW^0m^s*C?Xk%M4R_YdiU=8qKm-XN0y~9bTiYM(_#E@@9sF;s;3>VMz6el9vDWypdM$Im=c>m6s961 zyl>xuGjF)BIH-0cI&Y?oYl+@=HNN3B@tR3Y`}4EQ=hsMv*y>(+GGjRABofLPTGGS-$)$}Imc#X80XZ|4)@XL_%YI_QdLpuPe@Er!llO@~=3(?bEuNnCP0P#kp`TVUvR7?EcJH z$IUV-+Sk*VzbfUuhK^Aqwkd&gYjjLZh+|vA2UUgYc=;H4sLM)q^Al=gu)H_%2fMX?jVJq$EJTXvINII zRezfSjisX&@+~QpP)fx+gZpc;nTFr1g?e&w{`&SsQLn_tEssmD@XW1wI9#YID1-rG zviP2M2FFDmHU+PLdGzK}zfbe{%aCW|-gK;_KhSE%tm{Jo!;!s8*{!ucKj|sOTmrf6 zCa{mtD!|A$A0H~f$pov8!oiNBBCSkQHny;$9uV&T1UUoTm=O zA_13x(yxxp($H$sExeJ#8t*zgij{;$aUq%aV9`<7=H}#&UTXr{;JL%;<^1p{o6SXG zJdZ2=MrWW7OH1*BUn@75IhX@Nol-E8GZZXGF5 zpzfWTyXv)d>oJEPhQR`t&uNeHufrPl6Pk!Ekk~IKrjNl92{1I$8gc>J=mH?clqp#y z5X3Ff-<@|jxwz`U0dZ(^Xo^P(p4)YQ&oAo}{Fu0FXk=stdv~o2;}<$S{y6xH;*fJ0 zQH5a@pfuKA;DEi|kJ)ZS+ThUPHcNs)6X=p7g^54u)pf$bPu0W}iE12YJ>7P_)Kav= z;42brvC5-~%gNWwXkL!#n^4@($;)#>i`$vErz|Nhnib@4q2vb~l~`*_XRKbrL+?jl zc1fuITT#Hg#EjvoqIm_S1koYEc)JC1dz6j3aftWx`;l#j4&OU$sC{+Z!l`%27mpjv(GFWqm#g)Q;DyZ)`_tSI_Rkl;7 z^tjZLszJAU84xf~sB44p!jF_v_r}C$jHDKgZPF-mFMvHNJt&zn3Hhz5gUf4IuZ~X} zFO~7P%pEu=8!VhDmrCY_i$cfHoPYhTR+f2ui)EgyyeRc$kX$T)trU_$0XC?`Ge^j> ziboY}s-SW>+HgRBsxMCVqLHr1wI@rMNjn6;+&ef-e%T9C0VKtNuarBQ zJA^@HDi*A2SL}y1Ze6RAdtPp6KUE>x5JPKsj>b6XM3sdWgTo3abvueWL~rCDgcWQf z&YC0y1VQWaN=7Sl3Z=SUwW71S>j=L2oYc89D(XG9IlpXkGPo^+*JKSHUOhi_LGwlX z^)b=Kne3tlu1R@P&Ch?Vsmx{Z$>KAf1JqjA2nlHviAF6*9a zPbTSN2LpD7HcbawDrWCn$yQ#Aro5_#MqFY_t~A-LKyMw;f_cgyAdTEptnbBQ2o|>@ zw`RJ0TW)4`W|N~&XlNbzYP%2DE$eFg58BK|!C7NgcMG0zXB!Bwzc5~iM{lIPKpV5Z z6+@rZFfeXQEN7Ri&EC^=X#Tc4-gZOSnLE>%+$V{)a|0}oBGHAqclU0b!%&GEyS9IM ze`2aqhU3V8Xj$6T{B;{O={%j5e{Y}^%L}x(#PDyq@`Su=_Rt$j@*)%GGD~su)8+b0 zN+hJCpW7L}g9g`f4yV;Tc1u z&}m|o0uYrl^X@1nftk!>yJXy$vu$%<7lV8}u@2A*J9O@-jBin;kldBOD*58*4T)VK?m=FOZYOu<{p?F(^D5N%I4lvzYT!A~V2 zwzRv=>ara?=n@uB)mYw`;nLE7celC~y-fI;N!Tn{OGphB}Z)pXbDp zuB%NQZPSL|?;|g-CIq;6R6(Wy$iOa{v7fSd@!VQxEdQLn(!io`{IeY@}3Y z*sQ6?)Bzhq9Vt+zt9Jej z`*0((e|?1O&bi-nCK$>@A{+je0Os*xEnLt2k#)4hm^yf1etu{XFo$o9+*99FUMGfC zlpq!c-4#P9abFs0zUDKMD=1PsfBqgT_T8_HAvM|YfY4C=R0}M^(-nwDFN1@VaV2G` zQ5Vmi{PaapDdy7^N&C+6OHX(6Ngzd60e27`>E40f=7fk3(Y%Eh8e?Qj`CaVSKHXh+ z#_#jh5sJr@WF(it`E%zuxVdG~Lfk-0o7~g{--vpIoJ@?Vqe9x*=-|aDv|ozaeh_zD z|E;P@9!-m;uDj>X3tH_H*jV%W?g&6u_3A>m!S;f@l%ge{W}6s}o4;ZmK$KH)beuWV1Vdxkr@v*Da$A^5 zo^>Rf|7wM}_;!WS+Qz4QeAN_V%spk0V&;MsC;&(1)vHzoIekw2_HF-SpV)-7EO)g< zHZ{U|HRXhrX34JZ0f`{mD^Ca}nyi&64ab0LOp%DkG=PS3Gy0u7hh9iBD{5)I20_=p z=KRih{UY}bn>YK1hN4B6o?%qQ>^4;)SoY-$jOaqid|jM`4Kl8k=S@u$)U!5HC}C=b zJxXU@OfM^+{4((J_DWX$j=`ZE9VHjP4e9BbF7mg%y%^OT9kY0H`}aS^$ega0HZViJ zG7hWX+$fC4fBqrY;$zHqtKlocWAq(JbfCT zByZ(X{r&u6z>?I1rZmo>;Q8|{B+jdbo^l(U7N$NGJWin)t2}xXJuGr4`!px-^71`D z)&q0DFND8WLRVP9Lq%_2G*jxIjt729VMPdV^%3Vc3I+G|vG%rPMU(suaU{U#0j2iHo6*AGhbSWGITZVe5AQDr-OzB@3D{4ZOMivXW3Arp@j~>;6 zhs|$Tw!OCqOZ9|$$pxXg+BZ+iZof>GH++#`DsFp)Q_|3|S0$w>AxGuUaz{nP2ezUz zaXE|z^>hq#-+g6zads`W&1tQG!Re@!cM*?+DyN3hFW|(h?Uyicn{9J)Xdd;J;d#?T zeR>pJRs|E2csRuMjEz~9Pc;g1*5Sn{e);PEEJ~FwYjSqsjWt!dimJ2C2gGqyqX)t6XE8#ts^#Lm4)OUj=Vi;c8(KkP44JEvWYOCoQ$5oSj?^hXEV z7XC0^T0<$0$Lm!)n-CYLfI}Ehk$(I3Ujx1Pw4jd34N>0dWm3&%%1T;7lVwek8>UnL zEMLFp>%T3;v$k%dfUD!}vNE05rwY89v#oju4z8e7cOq9XLqgu1cIgf(j#PvqoJR$i ztc`l!2M1Od5THikoP_~UkhDOoj0e~iU(S>Ft;BC79ub3oqHV2XY~)P&n#VF+8#R{P zm5P`3FZWxkShhrH_AHBev9cSPwdc2OprzK0WY4N;XtWiz&`_#h36#;ONl4r$I|8+z ziuUO5W!}R$rx3HA;p~b5L2`BwLWf{IBV3B~#f$Yw@M3Fgm5BY^sZ&pn9m7qJsj2B{ zzM2&M?3A1!lv-BCC8;~Nu=x8`sF#Wsr>|e|Qtd~HtKB6kZWHIzFJJz^Z=of)deyk- zc1pFqK(1a|QqsjLk*Oyj?z5tffZ|REXzD!nNVgvQ@#AV3wOj*(A1aWaLGZoQ;kc$* z)QI_;@<<52;G8X5UQ7kZ7Ymk0kfTZyI{!9}sjKm3qjGe7&vTX@lF(PBPyJ_0dugim zWTi+rSVbr!iyBIuHET%t$Z(8R+UMZsFE$A}*mL_yVT{(9pl~jEpFDmL+l%hT!M%pdI#hd#Ew|gxts6ER~7?8Wu zdv|0{PHpW5w?7liBkjTQQa+dY?TxpSW8(DFG>=U1>!oVJOc>zNYxvaBp`YFEl1Qc+ zqe=^xTb-0^j#umm2oeO z)h&3PZX0hnrCb%-ur4ZQhw;qtDsp8rsw(wA|2$T?XT0|4m*^!9g7T$$)Pi z+*_@0%DmsOS52;WRHTCK7Cle=I~CL2oU0q$eVDASK2g+ZRdky(e3a{iG(Tm4Q>>`O zZ8s~0LXF0Q;VJxm89Pn}qwKPX7;+a;I{t zVSn`FEy0-g@igoJ6Tz}^aOcLWIarY%)tJmVcHvd9zR-s9D)gd$JdJ0JR@Kte95-!C zsFCd)wcX9F>77I!QWh{(Ir(%?)5EXLD=2a2ab%Mt9v<1XDATAg09QocS`B$ps~0BO zYXC)PL`YWE(MckiPT9*t4ldkRo)Cv)l0JLaC#v&)E-4uV%4L^YSLo)7Ex{oqq=|t) z8RUoNmZlpk@vKhp$;H+mSDK{y+D=A)_*qt?p?aWAmnZ&%%8u;)S{J&wO+%*J9wYxW zTl#a3jooPI5m&Bpbr=UpAt|Xw0dE5?mdU`Lryp!se^>`754j+zZ3LXHG}N}i>@70d zMRe&9S6*R)K}XI;L%~+-JB)OmAfp|SDyyt)L@sXx&}1;H#WK^?E)@i11CVviNEy4iq4yrWRYH)y-!)2dI5e18!x zf9gl%aSL(#?x$_^jNgLSte~9O^EB5(wF8+q>(|o0>7%O2@CwrSCmrm*^rWWD*OOWy zxBxuuZb~kv8p5nuB@cy?e@lI58mK)6Ep{Nyj3i~7G^GT4dwXwZVM*P{^DeB>VRo#8 zSIQy83i%AB&;QW|{~g@YwSL?txxc*Wa)1A%Yc<(|NHRG{(}-@Cg=<^oOUt(QrPM*WKK}bqYOyE5A@i^WF#kf8{ z*Fyk|cZQqMWfc_-2*hlv&zwpA2!;sCSrqf}@Nt5RHs_He3h?%P8LHpbyX(~nn+W&c zU28`=iu5;&{Yit1xU$8uSSlBHiZF%YtB94{_+#N*?wJE0R_sAhD_H={bXI>k_|&ZD)!J1r9t0QogI-;Gi_a(nQQGtE%$HPQWOK z8*X!#@d~S7?!JQ3^UUJ-$1}8y-?e<$OTP^KlDk8pe2+&!1mTix;7M<0f)=}|Xj@j3 z(+S26w1&($dnhnKq@SOzD`?J{ddHKO^j6}DaXDGXaciHZc+fL2BtWbK08e-2noV&I zZ3)*CX;xNQjNXE2EGej9rdJR5irhpmrke%VFzOgN|K~A-i@iO!y9d=DE4( z`SFjs!j4G_1d|nYZM;!xiq}5M(DuDIA))~;3z11lNy;hyfq{um?blM)^P4N4qyb1O-Fn!1==3$=rJnA7;inds-Tp{jPVV98yU5L- zx$ven0f3WJ(FA9Lw5)8y+0CL+SVoCXW9_C`8yGd<`{G472vP&clGSZ&-hd!&5B6u% zKqiaDii%9K3Fodh+-a^{DC5KE(Jj*1)ZT$~xL zsQokd(6r`*zF=FuWJTbDD_PD#vxl!dnXo@l*@yvvRCr2|{3|nMC-wrs2Mws-lk0}^ zXPV7mhHwwHcp@R7J$mpU&ZYokCkhru^T_T2opO4%Xt`~OhyB+~1ir7&a&bOVEB$Kd zr9S7^B;H}_IkQ1D3xNNEawn8CJ->`mt{L~OA ziK^cG=)x=SNJRiEm2_%z@JAeaiDMh~75&hQB~J}u#TDnh(~;13^Nq+f^D_QDo&{L9 z()PrwBqoZ-{aTKV8cK#W#xTlY5OdE*EQEU=0I=Hn4sj;$c~ZWzhDk*N-GPhK9cVe%daa$FuH{R>*0eUk$61 z&|EGXus20w(BRkbnHGmxV+-^$YGe6R&%lv!X&%|QabqUb&nW3|PM&cvJ%G!~F9inj znveYqooDoJzIl#g$G($7IqWNmxLAOPJwGZYdr&7zS(*lN29=5l%$)(|4-&&t&clc6 z|0!tY3eVdrDR~nDAJFfCTWgsWtdHnh;`15a>gGKgiu9VnCttvlIlFJ4``=Vg_BBoh zmzm*1v31vLkCmIgTFQhDwvV0dhXm^G}^as*%AidA|_E66_`4BM*%w= zfPq3ipp@&icB1fPqOHA#Z>kSIDq+^hSd(tJfb^D2Hkg4+U%zia5D$)8cC2KVyx<4z z2E+Qs_HS;cdS@80Q5^^Rbv=e!oqOkA_+0V$y=#p^3uXd01#X8_Gj)+^9L zx>$$R@7!2rLvq)%<+#XB+4S^Bq@0?Zl5uFUD5%ew8W=l8i|5pMUA36(Vqh|v;6gHq zI9JzIVDEeQpL9N=Zr3}kblSsfG&eEy-;$kjnwG(B#SpN!(Fj#cz{)H|>XPd)6azmI z=Qsy^*SOlm#DLa2>(u7VjWx7_(+UdDQ^|6n$b};tz+cILqbva?P+QkLoT^^CYE>Lo zErW=28hS=?DDF3B5u~rZWLG4M`-!NY^3BG@9v5T-YR{iKMJF$a6T3d5W_ubo0loqIx)U6LWNsD@JoijjZ zY#ew#*5M>4nE`YVvsdI|l`*Tm1}Ce))h}D{1a(Jya5cs9^gH|pK5ljz`10b0u9L14 zb(Bf3uMb~qdtz7SYRc)e6Ii*RHLB?8jV`rds{_k%*qMwHUG%#!K7fD6?%nq=^=Fl@ zpPKRf^eNMh!qEdWvm-6B_*x{U(h2#jFBDN#)$^wE7@!IR3ZIhG%b@E%2Y;*$lh%p& zkm^^%E&juufk|GpReeI9qhGAw~DWX#QKP;797JcF9_Psumfl zmoM)Z+=N|u%bB_^32aMcw5%HOut<~HSa-rflL2D_9CDC+ONrLBQj22`3!dp>;Ypf2e# zEjfERj+E8kT^}r9t`TVWIx-@?C9RYXO+j|L?Fvak82^lvU^A{N`@7Mj1iP>KWo zX3PAmleUpei!@kptH{YTN8XUM1CGuNM+`hbln|*GAN#mx58mnO>(`@66x+S~JQ_8Y zNacDo#Y*Mb4fS!1!HYj>C?!u0F$E3d7W)QOb<)b4$Bc#;Bp->GBlPImvn)Gx3MKYE z!T%BG*_(6hVo9K7!m{+I*`MrPBx z-fw-en9b-xFpQ{O4ypeU8X`0RWzk^V5wOP(jSb<4$d-d!r8tFncuQYnnOq_x&NT5t=srA z4bDU$IMmAuQWcEjmNhMkNE|s~eHzDa0}?QFmZK0zaUHUt?m=f$=hWdAOAv7kMXQx$ zabrcUqrW%^(z^`0<U6*J9DugCB22?2niiCPL0>cA_kRmify+q;$ARBB! zx3aHap-%OKNrk|*Z@aKs%S2}rj>a_K9mAg2>yuqEbneWVGXTS%Anis{br_MWj2u-I zj|v?g?4?1TBO41?>=O(3Cl?5kkA8^?5(i(m*aGtk+%gBA9#+Q>n1e7;={ z!OYhrlmQBmpZS06s)l+c1?)ETXH2j{0pvCz8fU-(Ul*x7{zx(~adFPR#`%G(W5^~x zW2M>ZJu4^YPP9QX&?*D|`fcY~>Rr~*d5zd5U}V{?z}Y+PR)vN@pLO<2V* zU%iS$i;9*>SOxtiU-ascK5gH+b-#c4=Lbj+8FuX)KwJr{IdS8Jyj5Y2Y;-jJ>!Xol zCXdy{3ceTj*h(ej-x$Z70Dv;ytbmpe9XN1yX=#aEDULjXY)Rz~CL|JwcGm6$Bi$ox z5B?((1_+IaURc{gGCq+a`5M)F&=TRM!jizBM$mHhNQ zDuHX8Zz@_My;(Gz$U8*?R23jNs|k)+7wB980z~06k@^k5b3g%^2*Dp=tB#IGJnGwq z4Qks{aUdQ(Xk)eiRVy8CM1r24$8G6)`f;mMF^_pi!(?~{6uNs{VRAKkJ%MzE>38f% zK)@hdmL#mu&zgX04si8(-9SA$eXLS|9MM=&Mrb6*B@$o3X&xHN-~$v|_h{6%z5g4S zj-Nko`1+(%HXZY~I#u=03Hn73d>WB=SEHJB82*0ro~Nf7#)6yHMBF3U6Ph77lLow_ z5R**MP@1m`U1E)&*U=Cw5P6=rk>+%FF_z5-4HDU%gVA>=psM8qr*l{sDKI;%Csm7f z59+KGWc>QbYwPhxnE6KFsc0ape6FJTivikJRJo+`kn+8km=K}bu&hR(NqS$MZXD$8 z7AFpOghmQ>v>q(?M#7OQ?6^s^Cl~!CW&FRVyE~G^Otke0@(Uq!1TakKuqs7gxB?T} z&dlsy)^|AsD=>ej(>`Py9!=kK1!P0r{Gy&Q1rE#)<#8RUR5yv?~S};$J zqF{)`>7k;fm4I^V^Cyh_dVh!Xu6S~OZG|Sn6+sE*FQS$*@)*zAEjXW7i;>KtxckXb zt-?PZgwZfR>s6hcJ!88wHHw9I2s0IHu~YDwoaN~xjRbp+>C_Dk@9n7n@E?GMUjS@N zdY2^9pO=&zQZJhK6+bI4`g$XtFYn*QUK~j>m+3mu=0ef4-K9>AUtU1l#qfQPt?`a-o(g{ zC5MP=OC=mui;j&o!)qm{o$Dgv2_6C$0Boj{j`cVl*rf<4f}wFBd~uM%7-75)v!46}Qw0-Cnd#*5x?m?YUOg#H zHVIur%MeBS`p8kLadfnP=I}3PD^IV_buc42SBLvTvTI(#Px^m8>e8wmxOaxT<%SvN znvWWjgd#3|Y>u7U;-oZL^FTCA2O5fr>RALD(0?Xr%;!HuWj z9fgO7y{?EnTTxFh#C5x$iqIKX@K!~$J9xVj zg2%^8CM8b_P1}SuTCyA(JyxuQEk!IeaAmkQBn4!9!6;Jz+G&KLywFGl9kLrybcwuU z$IkNkC;d}chDfb#N(Q&hf442~Z=$jPz#X)sMYl5!bCsuO!0HclvP57Qu(eb_ecA&N zroQOrP3rIu<=XhMy&4Yj`;eu8HuI!tMx0Pv&_^0ua-|M7Fr2Us12Dl4lP`*Pu3ocd5CfW@TIP)$N5mdL5#%kW zo9}&Y0x#&`BN{({OggFtZD!|e2WrOG#|$444g#DO2r-8c5Nz%2M88YpS-nODIQ@C& zSHL*D^gA3?)OG2(A*>5N(Jux@97*_K%)}}MY24)OtW%ZiXGR=@ow2_iJI|y32dRb! zsQ>{c(WOIRSvh&0@Hp# zsUlQNpWycRYLOg7yW+<-JH>h5++22F?BTsxLw*W%?Cd1SzPh$w*%}&=dL%D2eZzpK zmvKmkn$wZ@_4M_%G?U`{$`d*k9>5!}XoJ>26)fRo{p4-vfF7hI4tg9A83dNKvFZl4 z3QP)Jz>C;ffM#B>;v@K^u%qJsb097M6QRw3eyKnZqbv~+(Xh-L{Lmq&*LvatVNE@3 z6HJ#I)W)%6;x=A+vUO`ZNOzXL{wxZya*{6tT~$D|z?)J>B??@a#Lq#H2*{R%au2Ps zKvvbto2r>Qm%SbF#P}o(uHORj`Vfj9OlAHe<%J2jct~;0=|~ncjcb0steW){`*Q|# zLxW61_N83(7OYcn;Jo?y-0$#@l<{$zxdkIMX0>Ge4%cvJxBe`QoWw>0&qoW*7Y>9{ zkRZWkWjJ-?o#!kH$L}`2ign^E$~WFv7|AAZUtY0_qGC8;FyJy!6JG=rpPaSy-&mO7 zFC}tw9X^~<)P;BHx--faGx&M@=?44G7{%uvcj6>9=l; zfUMRz_XloyecbCnY44xiv;BaU>RudJTVGVuUT2DAg67}DJUl4TF~^k^6}3NqdTCZ4*M*cv8+r{fW$+eYC>x1> z1ue6P2Ec*0;FE~F!x7qfLt+JXcG&tvh9~-}`JCL`$fiNfsU2;LH*LT168)FtHJeAn zKzvL9NCK!R{5~ka7%)%DWA7+D&RG$49ZtlS;gW28lE*gEF1Z16K2P-Y)Gcu)c&Vg^x{3{0qJ9VnekCW)rUeDS)& ze?JZf5daZ=H>xj=7}7HAF15?BHN5}fLqtQYd^l3!Fkh}&Gf+oKPK8a4;_#Je)yFt4 zyt0npF<4dA=MX}MNc;smWPWxmb$IwPlPCk69Yq-gI2D*qN*odq(IJ#?WDh8I5-i4S zb6AfKZa@Yp_BX@hS44?{%pOabj}YUcW3$y%RC3TRQge6rJ8spU1W<+45vWrOz-?8u zaNU4YAT0dv!EGD?fC%t4D9IYhqOMPPa;|#NG3)SnM&2V&6WlCvE_$PmdhB!X240IX z#~*X7j_PyRt7fIo4r3#o^*QL!=&L@XgrgHp4Ts<3mt;dv>7q;@r6&IKmyDl~Ea8Ow z_MQG_Em`)_QNQBS(sbP2>F#;1HR&wAfPbiJ3;t6^erd{noa-nWWzn)@$de_Vo{1@W z2e+0ndW}f2m2f0@&fo$%CAa_WALd{~yDf~Y0JY@|(~0Mak2W0eJbNr=vPdnNhTmLc z&r_BTP4uk>fwxtJ1n*^G@nm*3$apO{t9bcx1XO<8@$um4l2R4XI;33yD_6?fFySCy z@pW#DsM1$J`*5?N(axa?!EB_22f*l14m`eZa@HxA#VO|r2qq508sW$YVqkW|d1~pM zRyJKNK{2e;Lf2|<2JTJRNk?eNT7H2ySf_3E*$fo6!A9=~Smis}r!Qi4c6>zIVRQ`3(%9g@`V`SlX2hD~$7Pr!d9YGLbHq_{}| zpYopc-^gnoyR>*9(@Z_4 ztjv`6GWvg3`p?AAF4|WJwEeQ56u=MjGvBbo!#0k>zjhcaSVW|F=Q#SUz9w>YLY%d# zcImFjprEZIt=DyymQLkPRTd65@qReVjU^wqr+k<4)S|zQo|LRCO0$=-f#j{7K}~dO z!911J2h-F0=YDHUQXR^Aj&bs&D7?K^IM~3Yqa5=o&S}hAUT`OcqHT@ks8DRWpOBEP zm&(5#uDwrNin?qdB&oonWeb5>U%l#0PkKEjy$;CkCzR~sD-s`eJ|*QI#}8~)bh_+4?LB8dR_<)Qxf!IIym{*CbDcY06B zf*`;C&jv(ja-m@PSN{{Q=h)h>s1a1#w2bV5;&Y2rBi+;|NOtX!roZZsC;d8yGk=a1BWz ze(|p>SD~G{Rr=}kX99kLvq~Btm`2p@no63;5KsPJ?VV{@*5%grD=YVI@=47(sX)mg z5dlXAOU+1-QV=l)Q$f8EMFyD!D%+X~k&sLxm?;RTD4>W;riLjXlSndXhJb*8%*gou z7FO!s`@?g*U*0co$I(9auI+u_|LcEU>ssqv=Xow^@(K(4@YOY@z;mO6qpuNTkUy#C1g**|g*cOrPm|2^{Jd(j%smp|w{)mK4 z)c*NXo(rx0IeSls=2}Cn;f^(Y};)QNo}|T(w}bbO-ZDOi<6#Ne+7guql8*tZWD7-nCtl$9SWSRjvL zcK}BRMbOy3>(b^?4R<|M5|2!X4~w%b*`$hm3Fg>QfCgGtZ@HfMwb1genclBOmUlO* zH75?9Q{rb(zbL$2dAY~l^*Lml+U3t{zJ(+~CR~$S?nQ=r$8rSFIYojk1bN9QnX8eJ ztd#PwYJU+(NSg4Ib*&7QPf|Kil3D4^Tm2L0m)4eB=1}k)-!w;47ngf4y#b_n*@T2by+L%|aY+Rb+v?NjVF>z;yq~G;j?)Akx#j%e}AC z7D19*)MxvOkP`Uoi%{84!lk08Bdjyq!bn3Aa<%QT>iIy3f}1mXw+R&t_w}}zcg*uIOjXNESa0M>AuR#~AxPJV9{_peVeg&_B{CV2d7MTvD}1TB zFq+75*eH=|kM^YDAd~-5+X^~d$9Kmyol;+$DLTPd%ihUl7<{piyQaA%{!<>kZg8?J z0Bio%;_kiCX}=bFty8EqKOcNaXde7!`Q4I#Jo;h(i+H?Y;o0g7$&Sh9;hTxqMR^$! z^SWG~nce^C`47@6mfTFfa`me8av;#ZmldyF9`<1lN%fthJ->BB06K>9>gvV!=IS+t z>$w0P@fr53Qj2q6?M?B#cYExMjcy)!mj^j7e)i=vbGLV%giC&eC0zoT3d^lGMQUnf> zRKI{?GZNoN7Z%%^pl)z)O4_}OXFWbS|COD*Jbd;xFe*bt8k$(_&_2p2 zpzN=-pWQihYaoYTv=R3xxIW1Z*Ky9#Du(sodtSnGtn)nP0_y!3oeR z713hUBG^b%W}q^xFR8pXc0Fxqs+5gDkV3yVp{=m%;?JktUX#KRvW|l4Abj)3KP~Rx ztk&hyotIHOq|3!4|MH;rJH!5Q=C^q3J=4-!mszh{cMnc%K8W~HX+$9>EXJ4j2*w3F zFGu_Ws6_yPS$qMrbZKL{2o2IeoYs~^f<~T-z zI!|W=QV8{#I+~`Y)h~}#3d*wPg2<-VzMjC51D`Hdrw{ho=&X1Hc#>}Yy&Z-C0=rg~ zbdH<1EgRO>#g&29Q?q8!o6_WN$Q*U6+F6Tjz;|Gr_x()}#;E;;_wq7I_w<$P@=QN@ z$62*DeW5ez%YQlAm<4WYD2ql>UyG06J{1`0ANdQU1`BBepC~FQqMe)!+n(q%GHaxv7Z;CgDCGl zB6iNmoIaz1`gH;@G>!8Z_ztvf0foj#__tmfW^@mWBV!=-hKznMPwaF3M}2BPG5ulH zSbQTS)S`bn1ef$Dg2{s^c5jM+6uQ*1%F5}*R^B>|9SIBjH!JVu=+906?&_aM2px;JSLR-KJo3Y&p(^~vDs(uV~&!A7bHrvnY zT1@)5>~Nh@4yZ8m{Z1c0MI-Wr9CtoetT!4e5nV-sYg8TDGYy6mKHMFnAhIRc-}zwe zE2^(|cQm?0d{Puyn-(4ta%E)M+>&$7u{Zg9UKW9vE${e;gi?tIZM zWmZgmr)Je%HB4H%;z%Td6E!ujry^3x z48H24{LVYshO^4=Mq4}>!)h|&>k?V1&U&X0R<-HoUcKsIrI?PGx5L`p;GjoWZeC1> zqsa=`{liZ!{j#t8(WXvP8n_R?-1+{qFR$Ok-6X$a;#+T>$9wr)IVEm<>s#-0#)VGcL)a zHhemoI8{Yjt2xr#{!6;3O?Mkyjf=K+Bt-OPvz9HG(OenFu}Lf~YJH(Y{*N@y+e&U_ z{=VsUi-~u2Wo5|a@gCW7t}zqZ&-3`z??`%-6QuF(2d-RKsUt3oo&)y<*DLij_qG|r zNs_2VFI0m`BQw*}(`~@Qt1A5Twhh^Rylc^!+CjaStTrg2FrVn{QK50A1+Q}TX+c?p z+KbqVWqImL`~S4I()I`M4;wyw9bnx3AJdvr6LfTqdfsTK%{}Y2T^C;&HU0ekvgE?$ zDZe`}4XS}+usXf-584CjJckV`{wjEQ)488idlj=G*lV~x_+2q<{wxz2Dp#gD2&dM2 zX8j+}W3-4|TzX#HJ!cig7PaYEEq~n>mb?x3%=prgMn4T?L64r;()(V;mtEvx>(@!3 z;bpSFS9})k@4rTze4w&TDFnq3JDYR!l87PlviFm~Bo{~Mc$^U)yx2_ZFIi&ytHp!K z>;2cGpvZ<5;G0z$)BdkJm#)lUWbWFz&b8~{yKf|08+)wxR^+tH)w_c>_B6O;Xz<{k zqX!3#4l|1cD70bHpK4Bdyhq38j{XRwP`KBrW5~au*+n%gH+Pn>kBK{9@7g7K0bF6H z4bOl|T)fA6*FjZ`!<8CJ3DbM%-Kgs_CqVF)eosuWT|qGPxM6J(wQo=v^1{ z?aLf#Wy%1H=)+_CgktJ#4WdP5rBE19LyJD zd&k@`K42Ga;_}U$rl7_cHJk0P#~K%}ZRIA^2(s7~!V7{udKJZ7Xu!_?4l-xS0a6-k z6A2BDWa<$`Bh8It>OA@`?H#RmU{+K#IUioQ;8J+xoZe%fAL>qtmV14_F z_4}*2O6PSn4>MYWCbz)ex80%I!6z^Gwp!`&9%;Ka&BOOG+B?>tw=?4S+fmJ*?KqEsK4svhMT7wxP!4+_=J8oCu!Y5dZ( zQ7NACSn9&Xk!^mu$V`9ipSz7zR=i%0&ztT(}6IHlTE?6VYzd!1_u2!#u zMd3(uE>lN>;EELG(TdEcK5>1u(@(jw*Y5m}{Z26L>)5b}pry9tbS!?({r7f`-JHj; zQz>)ERrL#C%T+qf6(Y!xq~B8ZMhz6Ht6aD~y;IDmk~a;n zemdsieEgUbKU?058r?Via&?IE5}x-_jT-@xgzkxHU7Yu~y5l#@4xCf2IxbXYtxxxk zl`%c5x6K~c&~J!xP};J>KHzb0Fm2L_ooM^8xze3{iXSCHrWm%s__CK9-w)?4bno3* z&LpThj&~tmDq18*qJigT+}FA`(q#0<1vo<_GO2Pv=0Ldq-79=p%WXBFu@2y=uK)cL*JLbuVv1o(Hf6N0`aYMbjHcEE%bEqqKr0m<*%69y-0)q%~^i1FWE$JJvKUfXpV?Djb^*(dl;?1wuufq=5=808J^6vMl zsIFem;gDw$Wd(j+TA9YV0kS)WpA3C>-qLg;`$PLa@4pu3Vx>a}oD4_Ft?5!y)r2Yh z^q85+otVHo?m)~w!!hf)?7OJ~xyW{jPGgT6n3;uOdgde7 zV$IEjC`K1*2}p3-d=CkcT~fJC*iuzb?Yw8+U9F`aw*BTK#74QWOC73CA*#X-{r5q~ z$S6@{?U#~j@OanrXd^SXQ@3W0S_}2o5V^g2Wb?vjRV&v0to!)U>vAb83~<$lv1CgP z<7q(75?iV8Q75s);kk6w0;M6>XT7x2aJZ_K#2JYg*DZ;XvnH1>(O6s<@WR&?p^FN>PK9dL3Z(Wi_MPZDHRll8|%Xub7B zfQgwJ+b{-4d3%7D4FcWpbORqQ5yl34c&A0m?QE?*ORAj`3(Sg%7y2aP@t0h*q|_*sH}W( z)Y@z!ib0%ZTK173O9jcbKp2z;M%m1=$e}G;R@zWx-u-MP4RduTqLo_ zU1-RMK;I4p>moHK@J-a#E@S*-D3Y2Ggn3tV7CjR*^trY@&)snQEI; z1U^1Br`wu9OVacW44mS+F}S-1t(_e&lL8C?G7b4VC!()awGjNb5H!05_HPl>i`*10 zUrgM=kMnu*$8m*8^<4-7Mgtqoj%HvBnf@^f0!RzU@tC!f8~co%yPHBMZuDlyk!#oh z;k;Vts`ks3uRNcK$aR~#T-W+MWG5R^=;yG!n+Jks;>NWiSqvqPQFgvK?2R|9Q3Pdk z|LB~WH$UKmXX~_oxe~;UN^IAgak`i*&lk4*LuS@_6s#r9*h^k#4uXwG;-xfgGDqe< z{KUBDIStlgPgKKel7Kgd$JmirK6Y#T>L+rK_IahcUf?gXX-Fl}gXVBltNY$QnV5K; z!Phr>mEZoNYtg^|2;@;42|?Jn6Yw0qUS*Q6#txDI1G(lhHlJsc%;MMW?tZy}3q5;6 zkog)~`36X?aDq=++S4SZL)^O zasX=~+aJFA*@ZD{5tcdup~Z4iXksjb{*GirMIRW)oqsGWWioYJVS9 z1*F{l^sk6D1?q->BI5ysM6VDAT3`tgS;PV?$prlY3%CU+bgxr6Nl%H{AxmK)NS8>g z4~Q~3%TxY%}%JyDN%a0UnjGV<*REXdEi=^m=%xa_ikNXESQ3utDp80fx7ov zq+i_8qr&-?$O;4KC?EoU=)GH>Irw?giFrl`I)C1N_t)3W0xSEzKi;+a#N6G^Sf||8 zeJG4C+Cbvt!ueS$mN?K@bP|*;zj_p@mV3N9ZuTca(;A^>c?>a73{;rRQTofcqsWWl zzWjtF5dROCNK*^veS$)Y`X2za2w-;q_NI^LCR7v_7n?4tyz-R_1Q<_LO+%b8C~=Ip zf9`Se+CFc;?yVXp2+Lg02uN<4~`s{|4+x-tjJrQ-BgZAw^LWVaPFq`1eP)YTe zN23o|*4VC>zQo7=Wf|83_w7qIdIkHe7!v+T@4WK?I*eruz}azsN7B=GYOe2_p4&~l zIL(D*;qSiq-1tiqzOMd~isDT@FLTOz#f@Vj-Gf}vbI{6oFxqpvX|F>9+CsWiWxXqx zFZ?UTkv0QY`FydoLl+6Xsg z>KKaQj|}GPXpYRhR^iAGf}*yZOie24uOHva^fkV0`6Mmp#J^sYVU^+yJZ$JtDHYgJ zRXCC!zj=1+Pn;(Is$r^cX=VmX@yD8C-xj0DVn5m<1lYh>8@*rzwl9_r-txg;k8ozo z?aflvCT%XyX7J767SXw)&b%Svcf5{!FafbVZ8H}Wa< zZqiJqd2QV?%dyI!!hUu()xm0Hruu<9D+-rBzNPC1|F;zrH;a6NY#%9(gnMvQvlZ4U z=p+l_@;lOllrnepS|9xEH3UpMHFeKaqx1jylZ{v)^~VdevAq6f!sS%D%T;iAr!zd| z(7-igV-vaiyYFU}r?||bp?Xoj)Y!V4o}HBFOVrZtdfi8UFSW*|_?A7_zpf~JB4f>c zl~mXX7K%#e>N9^Q4rWQ457Z!~;KJcC01){v+O2sD()PcS+_RL7xK#MzwfyDcj>a8vm>diQ+-KMYHPs~0h4XW zjwC6PjEtl(R7?vS`ZENMI>WWl5U^7;--)8dQ*^)99!`ClIJ$d`?p~P^9r#a{G zvPJ6<2e~1pOOX8MYp=~rSf6{My^|`&ms}V_yFJp8$}usukRB8}?1&k1KRPmTXZqM? za*M|vn69~KTtxfZk8@HbFszzGUsN7>a^Yy#M$!z5L_FUxXOVzcW)`?0@HCw6$pPPg zzj`xL8wR)83cwZaUOS0djMg-vvjzB)%{VRP{tTd!#w!-hqnv!`(Omt!9-8RushcXmfHP2E#VttiYuO6qr$HD`NH>f!>1kmaT}j4Qb{_1oP$cs zbZ$6dKTvBegSsrV`s3mu<+OEHTz6}-ntt9;5|AWa5qte{WlF!w-%HPHHu%nj6v z^l3q}SRp1b_UdyWC6$Rp3*vF;ishcCo?c>I-X+(g_B#_=3+H{`!`&mG=&teZM@yPt zczHxHYbGH$fbPQghMSE4Ok|H+sii*niU5+@e055LwTT(vd)cPaGdVksw|G5uq*nFI z%{kI>wboG8zL>Y<*953I-^=?s?LPXI0=e+e=53@P>xuc~tT|TZZYTDtN(HMfA3lFZ0z2O$D#Vd{--`~ z(lcS>AF~aw_B>*@{NFI;axNDNnQ{FztQ&`DKlq}%kztXdanq~cHsClh)$ETx4@w+% zZCgR+WYsgyw^H4zd$xDn_RgT00dKQI%su%h&dz^$iNzhkw0Y%cV|K(;w19^%2iD*9 z8C0GzQ-q|Q_YF6DgU^l6GQ2!>k}xVDLltauz=v}dG*iv#LY~xIBjyw%Rm99%#PjK}f6fl?AiZ zkIL{lS=+>UzwWW0e+O+{rGf8QhIHVDaF3{a@urQTC7^m-s(ld`(s_my79=J6a$PGF z&APp<%k6HZn$d?B{U4R1@MQ2~Z2qBCqLw(H3>bZi1QOi)5Vl^cO1;sBidune-vr$> zs8l3OfQ>ZqF~FU3arja@4w?HOyH!!dIHp1S5&%XB64)Xrciryqy{#DbZ6lOy(WO9i z5j$MSLLx`zaIhA3JUdXi$|NoKAEy@hh=#EtrEP7&VjEnnf&({cBKUfTQfJ(VEc zpVtsRY~Dw}!cvKerz$dQsEL=5)t*bWCr+NePnIho1lpv!%EeWh)^^ zlv-?yCFF|YqvwQ~#kr&q z=BB1kaqShUr0B=}r9;#4<`9c%K@2Wa(-#>fb79cD*#k--(cXYlUW0y>H+8(3xDtH- z_JUSCHC9l`?ZaLjEJ*~KhQZU{FSru4vuIydWdXOSGXRCaI!I*Wr^*UaIQSnH%X2PI zOyz5J9U-Nr`mg1NLAOj%82hsYvTHi9%ruMg^!%qs{_^yOM%uYMa47!?&Yg=6dQB!)x3 zMaI-)<8XIc@PXJV#I(cKK+htQO1amvT#QFFH~JsGIwyQ-HQ4(;6+`HaIBclu=u(+T z{{S=!!tqwMMy|7l)Rv{RgO6uc+X31fzM32x6XqJd-f&SkpS(HW4tlZh1r6Z)>{XFTAF4VHfP)<6;v*^MPj52)JhKUwwake6Os#)?|H z-g!aR@8Zr^1y`~*3*=TevrC^!rZ#P+Nqu2-y9;kkHD|9$KuonQW)IY`rWJE3=mKci zy2W0zjbo-WJBAAR(v{lwB_JCpohYMgGkC#7M1 zp}#NS>m?3W&$&!24Lhnxq5IHbaaXat&Al3>@$Wy_-DE$GK3(bb!m-J)w)!1E%ynka zwx(nlASW(XV^$uC%y&dPE7#)@vWI@U^LsIFJV^DF9@kG-aThi+1XF!-ljn|9H$35J~8Z9MPa1xIhV#0{MU`x9;)hG zCIGd;G^n8?nh#DdDIDQ(BUBb?-S99@k+S`huC42qd3mMN(p>5`$$|_0QI#X+ zEYS{!I+xGcYP@V;%GefopMTu{-u?^&F?u5gZ zYF8G1T_II5rzJMWIOrCRazt9QPy(UB%$6p+ko%%B^ZH z_pm5{2gVh12Yy{&?70R(g3c(dq@hk*{OAqG z_p80MH8j7n-0BllF|c*OSREBaY==Wlq#cd3UyLamHcyvejddBg87iX$Bd$6Q(D98v=VFMa3tNit3 zOqQ-H8WV~oaYTX=8wPSiH2jgaIt~?|!YYZt5i^P4OGO16Hadu4$~8P z2=Ik_;{3gAS%Lnr_+saX3CW9-LE4SS9;q~xH0`KT;KQ1;n^E`;xN)8zG~}b0)cxi~ z6TVnhY3=2W@lTm|e`9}N95VTeK94`EJr#Wcw{u;PF~z{}5f>{gOT@=tlB}sc(d>Z2+lY-8No!H2^c-!PBPoa!^59Vo)~9>Nf({u1 z8ePzD(KV?dzm|knF|1AvnFpZ2Qs26c`!|=1%na(?#*TP#2!s?E3NA?!s7x|PqbP=V zCU-3|wr>A)DWt~CaX9QzN)4~WaB(Wl6HRRd1YoZkBU1CYrlwGm371NAGAAWelEkapYc^`Sdut7Y{4q2NOefVQhr33=sK>=q`aE5>5>q|*-+^MH? zE2!0vtD0hFVoWrkERYPFXPsT+kW8&3p(k!ds{iE0D6E)80#T%uE3gL79~c>*Ag~^& zPsp>Pw&&miESZB0LxKk+ih07LDB`8YCI`Rf-e1Q=PE(90z7cahtX)=7Bh1J=3ZNh; z5^avV0)kV#Th!=~ufd$`~?0!$q-HLG9&hOzQ4Q(PKv$X&<;z7EG1@m4{X7cEa&{jEDw zPZFVn3)O_a>r1b^BB+@p0=WB!Yp$tv+MHZDg2*QvqylbT1TjTNuz|p=2$R0~zCp$} ztRp5!pHRAqvd`%Mu?{94mRsg<^L)`eAbl<)Q9b;qRKZMRA&@C)*vrZ*QddG(0g+|U ztSTBnZj5MnqlETmr$P{!O$)@}K>o7y)i3*BE42RlBmZA9%S!w|R2_HgJ$v}LYr&>t R7v+uUFIu|r#0RUt`ah5F(_a7p literal 87658 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%0DSx7aUQQ~uFK2uj1B<4RuzqHK7tZhTZO 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 - + - 2024-08-15T09:51:56.911643 + 2024-11-20T19:38:35.573483 image/svg+xml @@ -21,8 +21,8 @@ - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + - - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -474,12 +477,12 @@ z - + - + @@ -493,12 +496,12 @@ z - + - + @@ -512,12 +515,12 @@ z - + - + @@ -528,9 +531,28 @@ z - + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - + - - - + + + - - - + + + - + - + - + - - - + + + - + - + + + + + + + + + + + + + + + + + + - + - - - + + + - + - + + + + + + + + + + + + + + + + + + - + - - + + + - + - + - - - - + + + + - - + - + - + - + + - - + + - - + + + + + + + + + + + + + + + + + - - - - - + - + - + - + @@ -1433,9 +1502,9 @@ z - + - + - + - + @@ -1488,9 +1557,9 @@ z - + - + @@ -1511,9 +1580,9 @@ z - + - + - + - + @@ -1577,9 +1646,9 @@ z - + - + @@ -1592,9 +1661,9 @@ z - + - + @@ -1615,9 +1684,9 @@ z - + - + @@ -1642,48 +1711,156 @@ z - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1946,65 +1975,37 @@ z + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -2029,9 +2030,9 @@ z - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + @@ -2135,31 +2083,284 @@ z - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -2209,8 +2410,8 @@ z - - + + diff --git a/benchmark/over_time.py b/benchmark/over_time.py index 3ad060c8d..cff9f9a1b 100644 --- a/benchmark/over_time.py +++ b/benchmark/over_time.py @@ -131,7 +131,7 @@ def plot_over_time(yaml_file): alpha=0.75, xytext=(5, 5), textcoords="offset points", - rotation=45, + rotation=30, ) ax.set_xlabel("Model release date", fontsize=18, color="#555") From 7cf3d9f3ce30d0e820cad0658f1b3d914f170bb1 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Wed, 20 Nov 2024 19:45:42 -0800 Subject: [PATCH 156/407] style: Increase annotation font size in benchmark plot --- benchmark/over_time.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/over_time.py b/benchmark/over_time.py index cff9f9a1b..9206a26b1 100644 --- a/benchmark/over_time.py +++ b/benchmark/over_time.py @@ -127,7 +127,7 @@ def plot_over_time(yaml_file): ax.annotate( model, (dates[i], pass_rates[i]), - fontsize=8, + fontsize=12, alpha=0.75, xytext=(5, 5), textcoords="offset points", From 1c62ecd1b56d042e9db1905d017d53bb87aa8718 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Wed, 20 Nov 2024 19:59:36 -0800 Subject: [PATCH 157/407] style: Adjust x-axis label rotation angle for better readability --- benchmark/over_time.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/over_time.py b/benchmark/over_time.py index 9206a26b1..5d7bf3c95 100644 --- a/benchmark/over_time.py +++ b/benchmark/over_time.py @@ -131,7 +131,7 @@ def plot_over_time(yaml_file): alpha=0.75, xytext=(5, 5), textcoords="offset points", - rotation=30, + rotation=15, ) ax.set_xlabel("Model release date", fontsize=18, color="#555") From 8edf9540d5beeb98490b6e4a7156131e2148d9f0 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 19:59:38 -0800 Subject: [PATCH 158/407] feat: Add legend to plot and remove point labels --- benchmark/over_time.py | 41 +++++++++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/benchmark/over_time.py b/benchmark/over_time.py index 5d7bf3c95..cedd2a0ec 100644 --- a/benchmark/over_time.py +++ b/benchmark/over_time.py @@ -120,19 +120,23 @@ def plot_over_time(yaml_file): mistral_dates, mistral_rates = zip(*sorted(mistral_points)) ax.plot(mistral_dates, mistral_rates, c="cyan", alpha=0.5, linewidth=1) - # Plot all points - ax.scatter(dates, pass_rates, c=colors, alpha=0.5, s=120) - - for i, model in enumerate(models): - ax.annotate( - model, - (dates[i], pass_rates[i]), - fontsize=12, - alpha=0.75, - xytext=(5, 5), - textcoords="offset points", - rotation=15, - ) + # Create legend handles + legend_handles = [] + legend_labels = [] + + # Plot points and collect unique model types for legend + seen_colors = {} + for i, (date, rate, color, model) in enumerate(zip(dates, pass_rates, colors, models)): + if color not in seen_colors: + # First time seeing this color, add to legend + scatter = ax.scatter([date], [rate], c=[color], alpha=0.5, s=120) + legend_handles.append(scatter) + # Use the first model name of each color as the legend label + legend_labels.append(model) + seen_colors[color] = True + else: + # Just plot the point without adding to legend + ax.scatter([date], [rate], c=[color], alpha=0.5, s=120) ax.set_xlabel("Model release date", fontsize=18, color="#555") ax.set_ylabel( @@ -141,7 +145,16 @@ def plot_over_time(yaml_file): ax.set_title("LLM code editing skill by model release date", fontsize=20) ax.set_ylim(30, 90) # Adjust y-axis limit to accommodate higher values plt.xticks(fontsize=14, rotation=45, ha="right") # Rotate x-axis labels for better readability - plt.tight_layout(pad=3.0) + # Add legend + ax.legend( + legend_handles, + legend_labels, + loc='center left', + bbox_to_anchor=(1, 0.5), + fontsize=10 + ) + + plt.tight_layout(pad=3.0, rect=[0, 0, 0.85, 1]) # Adjust layout to make room for legend print("Debug: Saving figures...") plt.savefig("tmp_over_time.png") From 4b3dd7f4ea8cf73b09e13c3ef8982b195c302910 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 19:59:43 -0800 Subject: [PATCH 159/407] style: Apply linter formatting to over_time.py --- benchmark/over_time.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/benchmark/over_time.py b/benchmark/over_time.py index cedd2a0ec..a872d184a 100644 --- a/benchmark/over_time.py +++ b/benchmark/over_time.py @@ -123,7 +123,7 @@ def plot_over_time(yaml_file): # Create legend handles legend_handles = [] legend_labels = [] - + # Plot points and collect unique model types for legend seen_colors = {} for i, (date, rate, color, model) in enumerate(zip(dates, pass_rates, colors, models)): @@ -147,13 +147,9 @@ def plot_over_time(yaml_file): plt.xticks(fontsize=14, rotation=45, ha="right") # Rotate x-axis labels for better readability # Add legend ax.legend( - legend_handles, - legend_labels, - loc='center left', - bbox_to_anchor=(1, 0.5), - fontsize=10 + legend_handles, legend_labels, loc="center left", bbox_to_anchor=(1, 0.5), fontsize=10 ) - + plt.tight_layout(pad=3.0, rect=[0, 0, 0.85, 1]) # Adjust layout to make room for legend print("Debug: Saving figures...") From 5504ac535b76c3dc6310f9991d195f67686fcf7d Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 20:02:48 -0800 Subject: [PATCH 160/407] feat: Add simplified model names for legend labels --- benchmark/over_time.py | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/benchmark/over_time.py b/benchmark/over_time.py index a872d184a..d2a744ca7 100644 --- a/benchmark/over_time.py +++ b/benchmark/over_time.py @@ -6,6 +6,28 @@ from matplotlib import rc from aider.dump import dump # noqa: 401 +def get_legend_label(model): + model = model.lower() + if "claude-3-opus" in model: + return "Opus" + if "claude-3-sonnet" in model: + return "Sonnet" + if "gpt-3.5" in model: + return "GPT-3.5 Turbo" + if "gpt-4-" in model and "-4o" not in model: + return "GPT-4" + if "qwen" in model: + return "Qwen" + if "-4o" in model: + return "GPT-4o" + if "haiku" in model: + return "Haiku" + if "deepseek" in model: + return "DeepSeek" + if "mistral" in model: + return "Mistral" + return model + def get_model_color(model): default = "lightblue" @@ -131,8 +153,8 @@ def plot_over_time(yaml_file): # First time seeing this color, add to legend scatter = ax.scatter([date], [rate], c=[color], alpha=0.5, s=120) legend_handles.append(scatter) - # Use the first model name of each color as the legend label - legend_labels.append(model) + # Use simplified name for legend label + legend_labels.append(get_legend_label(model)) seen_colors[color] = True else: # Just plot the point without adding to legend From b3e29ab20ecf117b00b3d7bee7317d8b9513d92d Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 20:02:52 -0800 Subject: [PATCH 161/407] style: Apply linter formatting to benchmark code --- benchmark/over_time.py | 1 + 1 file changed, 1 insertion(+) diff --git a/benchmark/over_time.py b/benchmark/over_time.py index d2a744ca7..3955c563a 100644 --- a/benchmark/over_time.py +++ b/benchmark/over_time.py @@ -28,6 +28,7 @@ def get_legend_label(model): return "Mistral" return model + def get_model_color(model): default = "lightblue" From 2e00307190d0470167818533ef1bbbefe9e43a12 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 20:03:49 -0800 Subject: [PATCH 162/407] feat: Add color and legend label for o1-preview models --- benchmark/over_time.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/benchmark/over_time.py b/benchmark/over_time.py index 3955c563a..3d0bb9ae4 100644 --- a/benchmark/over_time.py +++ b/benchmark/over_time.py @@ -26,6 +26,8 @@ def get_legend_label(model): return "DeepSeek" if "mistral" in model: return "Mistral" + if "o1-preview" in model: + return "o1-preview" return model @@ -50,6 +52,9 @@ def get_model_color(model): if "sonnet" in model.lower(): return "orange" + if "o1-preview" in model.lower(): + return "magenta" + if "-4o" in model: return "purple" From 03206ad90e5c474d9fe9385c87564f282fb6e7b4 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 20:05:18 -0800 Subject: [PATCH 163/407] feat: Add line labels directly on first points instead of using legend --- benchmark/over_time.py | 77 +++++++++++++++++++++++++++++------------- 1 file changed, 53 insertions(+), 24 deletions(-) diff --git a/benchmark/over_time.py b/benchmark/over_time.py index 3d0bb9ae4..176759ead 100644 --- a/benchmark/over_time.py +++ b/benchmark/over_time.py @@ -122,49 +122,83 @@ def plot_over_time(yaml_file): qwen_points = [(d, r) for d, r, c in zip(dates, pass_rates, colors) if c == "darkblue"] mistral_points = [(d, r) for d, r, c in zip(dates, pass_rates, colors) if c == "cyan"] - # Plot lines for purple, red, green, orange and brown points + # Create a mapping of colors to first points and labels + color_to_first_point = {} + color_to_label = {} + + for date, rate, color, model in zip(dates, pass_rates, colors, models): + if color not in color_to_first_point: + color_to_first_point[color] = (date, rate) + color_to_label[color] = get_legend_label(model) + + # Plot lines and add labels at first points if purple_points: purple_dates, purple_rates = zip(*sorted(purple_points)) ax.plot(purple_dates, purple_rates, c="purple", alpha=0.5, linewidth=1) + if "purple" in color_to_first_point: + date, rate = color_to_first_point["purple"] + ax.annotate(color_to_label["purple"], (date, rate), xytext=(10, 5), + textcoords='offset points', color="purple", alpha=0.8) + if red_points: red_dates, red_rates = zip(*sorted(red_points)) ax.plot(red_dates, red_rates, c="red", alpha=0.5, linewidth=1) + if "red" in color_to_first_point: + date, rate = color_to_first_point["red"] + ax.annotate(color_to_label["red"], (date, rate), xytext=(10, 5), + textcoords='offset points', color="red", alpha=0.8) + if green_points: green_dates, green_rates = zip(*sorted(green_points)) ax.plot(green_dates, green_rates, c="green", alpha=0.5, linewidth=1) + if "green" in color_to_first_point: + date, rate = color_to_first_point["green"] + ax.annotate(color_to_label["green"], (date, rate), xytext=(10, 5), + textcoords='offset points', color="green", alpha=0.8) + if orange_points: orange_dates, orange_rates = zip(*sorted(orange_points)) ax.plot(orange_dates, orange_rates, c="orange", alpha=0.5, linewidth=1) + if "orange" in color_to_first_point: + date, rate = color_to_first_point["orange"] + ax.annotate(color_to_label["orange"], (date, rate), xytext=(10, 5), + textcoords='offset points', color="orange", alpha=0.8) + if brown_points: brown_dates, brown_rates = zip(*sorted(brown_points)) ax.plot(brown_dates, brown_rates, c="brown", alpha=0.5, linewidth=1) + if "brown" in color_to_first_point: + date, rate = color_to_first_point["brown"] + ax.annotate(color_to_label["brown"], (date, rate), xytext=(10, 5), + textcoords='offset points', color="brown", alpha=0.8) + if pink_points: pink_dates, pink_rates = zip(*sorted(pink_points)) ax.plot(pink_dates, pink_rates, c="pink", alpha=0.5, linewidth=1) + if "pink" in color_to_first_point: + date, rate = color_to_first_point["pink"] + ax.annotate(color_to_label["pink"], (date, rate), xytext=(10, 5), + textcoords='offset points', color="pink", alpha=0.8) + if qwen_points: qwen_dates, qwen_rates = zip(*sorted(qwen_points)) ax.plot(qwen_dates, qwen_rates, c="darkblue", alpha=0.5, linewidth=1) + if "darkblue" in color_to_first_point: + date, rate = color_to_first_point["darkblue"] + ax.annotate(color_to_label["darkblue"], (date, rate), xytext=(10, 5), + textcoords='offset points', color="darkblue", alpha=0.8) + if mistral_points: mistral_dates, mistral_rates = zip(*sorted(mistral_points)) ax.plot(mistral_dates, mistral_rates, c="cyan", alpha=0.5, linewidth=1) + if "cyan" in color_to_first_point: + date, rate = color_to_first_point["cyan"] + ax.annotate(color_to_label["cyan"], (date, rate), xytext=(10, 5), + textcoords='offset points', color="cyan", alpha=0.8) - # Create legend handles - legend_handles = [] - legend_labels = [] - - # Plot points and collect unique model types for legend - seen_colors = {} - for i, (date, rate, color, model) in enumerate(zip(dates, pass_rates, colors, models)): - if color not in seen_colors: - # First time seeing this color, add to legend - scatter = ax.scatter([date], [rate], c=[color], alpha=0.5, s=120) - legend_handles.append(scatter) - # Use simplified name for legend label - legend_labels.append(get_legend_label(model)) - seen_colors[color] = True - else: - # Just plot the point without adding to legend - ax.scatter([date], [rate], c=[color], alpha=0.5, s=120) + # Plot points without legend + for date, rate, color in zip(dates, pass_rates, colors): + ax.scatter([date], [rate], c=[color], alpha=0.5, s=120) ax.set_xlabel("Model release date", fontsize=18, color="#555") ax.set_ylabel( @@ -173,12 +207,7 @@ def plot_over_time(yaml_file): ax.set_title("LLM code editing skill by model release date", fontsize=20) ax.set_ylim(30, 90) # Adjust y-axis limit to accommodate higher values plt.xticks(fontsize=14, rotation=45, ha="right") # Rotate x-axis labels for better readability - # Add legend - ax.legend( - legend_handles, legend_labels, loc="center left", bbox_to_anchor=(1, 0.5), fontsize=10 - ) - - plt.tight_layout(pad=3.0, rect=[0, 0, 0.85, 1]) # Adjust layout to make room for legend + plt.tight_layout(pad=1.0) # Adjust layout since we don't need room for legend anymore print("Debug: Saving figures...") plt.savefig("tmp_over_time.png") From dd3bfaee014aa48c0b9edd12b31d8366f7eff6fa Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 20:05:24 -0800 Subject: [PATCH 164/407] style: Format code with consistent indentation and line breaks --- benchmark/over_time.py | 96 +++++++++++++++++++++++++++++++----------- 1 file changed, 72 insertions(+), 24 deletions(-) diff --git a/benchmark/over_time.py b/benchmark/over_time.py index 176759ead..8eef15cfa 100644 --- a/benchmark/over_time.py +++ b/benchmark/over_time.py @@ -125,7 +125,7 @@ def plot_over_time(yaml_file): # Create a mapping of colors to first points and labels color_to_first_point = {} color_to_label = {} - + for date, rate, color, model in zip(dates, pass_rates, colors, models): if color not in color_to_first_point: color_to_first_point[color] = (date, rate) @@ -137,64 +137,112 @@ def plot_over_time(yaml_file): ax.plot(purple_dates, purple_rates, c="purple", alpha=0.5, linewidth=1) if "purple" in color_to_first_point: date, rate = color_to_first_point["purple"] - ax.annotate(color_to_label["purple"], (date, rate), xytext=(10, 5), - textcoords='offset points', color="purple", alpha=0.8) - + ax.annotate( + color_to_label["purple"], + (date, rate), + xytext=(10, 5), + textcoords="offset points", + color="purple", + alpha=0.8, + ) + if red_points: red_dates, red_rates = zip(*sorted(red_points)) ax.plot(red_dates, red_rates, c="red", alpha=0.5, linewidth=1) if "red" in color_to_first_point: date, rate = color_to_first_point["red"] - ax.annotate(color_to_label["red"], (date, rate), xytext=(10, 5), - textcoords='offset points', color="red", alpha=0.8) - + ax.annotate( + color_to_label["red"], + (date, rate), + xytext=(10, 5), + textcoords="offset points", + color="red", + alpha=0.8, + ) + if green_points: green_dates, green_rates = zip(*sorted(green_points)) ax.plot(green_dates, green_rates, c="green", alpha=0.5, linewidth=1) if "green" in color_to_first_point: date, rate = color_to_first_point["green"] - ax.annotate(color_to_label["green"], (date, rate), xytext=(10, 5), - textcoords='offset points', color="green", alpha=0.8) - + ax.annotate( + color_to_label["green"], + (date, rate), + xytext=(10, 5), + textcoords="offset points", + color="green", + alpha=0.8, + ) + if orange_points: orange_dates, orange_rates = zip(*sorted(orange_points)) ax.plot(orange_dates, orange_rates, c="orange", alpha=0.5, linewidth=1) if "orange" in color_to_first_point: date, rate = color_to_first_point["orange"] - ax.annotate(color_to_label["orange"], (date, rate), xytext=(10, 5), - textcoords='offset points', color="orange", alpha=0.8) - + ax.annotate( + color_to_label["orange"], + (date, rate), + xytext=(10, 5), + textcoords="offset points", + color="orange", + alpha=0.8, + ) + if brown_points: brown_dates, brown_rates = zip(*sorted(brown_points)) ax.plot(brown_dates, brown_rates, c="brown", alpha=0.5, linewidth=1) if "brown" in color_to_first_point: date, rate = color_to_first_point["brown"] - ax.annotate(color_to_label["brown"], (date, rate), xytext=(10, 5), - textcoords='offset points', color="brown", alpha=0.8) - + ax.annotate( + color_to_label["brown"], + (date, rate), + xytext=(10, 5), + textcoords="offset points", + color="brown", + alpha=0.8, + ) + if pink_points: pink_dates, pink_rates = zip(*sorted(pink_points)) ax.plot(pink_dates, pink_rates, c="pink", alpha=0.5, linewidth=1) if "pink" in color_to_first_point: date, rate = color_to_first_point["pink"] - ax.annotate(color_to_label["pink"], (date, rate), xytext=(10, 5), - textcoords='offset points', color="pink", alpha=0.8) - + ax.annotate( + color_to_label["pink"], + (date, rate), + xytext=(10, 5), + textcoords="offset points", + color="pink", + alpha=0.8, + ) + if qwen_points: qwen_dates, qwen_rates = zip(*sorted(qwen_points)) ax.plot(qwen_dates, qwen_rates, c="darkblue", alpha=0.5, linewidth=1) if "darkblue" in color_to_first_point: date, rate = color_to_first_point["darkblue"] - ax.annotate(color_to_label["darkblue"], (date, rate), xytext=(10, 5), - textcoords='offset points', color="darkblue", alpha=0.8) - + ax.annotate( + color_to_label["darkblue"], + (date, rate), + xytext=(10, 5), + textcoords="offset points", + color="darkblue", + alpha=0.8, + ) + if mistral_points: mistral_dates, mistral_rates = zip(*sorted(mistral_points)) ax.plot(mistral_dates, mistral_rates, c="cyan", alpha=0.5, linewidth=1) if "cyan" in color_to_first_point: date, rate = color_to_first_point["cyan"] - ax.annotate(color_to_label["cyan"], (date, rate), xytext=(10, 5), - textcoords='offset points', color="cyan", alpha=0.8) + ax.annotate( + color_to_label["cyan"], + (date, rate), + xytext=(10, 5), + textcoords="offset points", + color="cyan", + alpha=0.8, + ) # Plot points without legend for date, rate, color in zip(dates, pass_rates, colors): From 72c46ccec6cb1a48b9774c7e5c5410b379ed1fb1 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 20:06:04 -0800 Subject: [PATCH 165/407] feat: Add labels for Claude 3 Opus, Sonnet, and O1 Preview models --- benchmark/over_time.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/benchmark/over_time.py b/benchmark/over_time.py index 8eef15cfa..91ed11d89 100644 --- a/benchmark/over_time.py +++ b/benchmark/over_time.py @@ -9,9 +9,11 @@ from aider.dump import dump # noqa: 401 def get_legend_label(model): model = model.lower() if "claude-3-opus" in model: - return "Opus" + return "Claude 3 Opus" if "claude-3-sonnet" in model: - return "Sonnet" + return "Claude 3 Sonnet" + if "o1-preview" in model: + return "O1 Preview" if "gpt-3.5" in model: return "GPT-3.5 Turbo" if "gpt-4-" in model and "-4o" not in model: From c2c7ee1047af31df0890e282b04759c8a9613e0f Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 20:06:48 -0800 Subject: [PATCH 166/407] feat: Change Opus label to "Opus" in legend --- benchmark/over_time.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/over_time.py b/benchmark/over_time.py index 91ed11d89..f5312b833 100644 --- a/benchmark/over_time.py +++ b/benchmark/over_time.py @@ -9,7 +9,7 @@ from aider.dump import dump # noqa: 401 def get_legend_label(model): model = model.lower() if "claude-3-opus" in model: - return "Claude 3 Opus" + return "Opus" if "claude-3-sonnet" in model: return "Claude 3 Sonnet" if "o1-preview" in model: From c15ac341e29e0202691e7debc84fff65322373d2 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 20:07:52 -0800 Subject: [PATCH 167/407] refactor: Remove Opus and Llama model variants from legend labels --- benchmark/over_time.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/benchmark/over_time.py b/benchmark/over_time.py index f5312b833..d6617429d 100644 --- a/benchmark/over_time.py +++ b/benchmark/over_time.py @@ -8,8 +8,6 @@ from aider.dump import dump # noqa: 401 def get_legend_label(model): model = model.lower() - if "claude-3-opus" in model: - return "Opus" if "claude-3-sonnet" in model: return "Claude 3 Sonnet" if "o1-preview" in model: From 8b860615b8839cabb6297cf476768a0462dea80e Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 20:10:40 -0800 Subject: [PATCH 168/407] style: Increase font size for scatter plot dot labels --- benchmark/over_time.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/benchmark/over_time.py b/benchmark/over_time.py index d6617429d..10b769b97 100644 --- a/benchmark/over_time.py +++ b/benchmark/over_time.py @@ -144,6 +144,7 @@ def plot_over_time(yaml_file): textcoords="offset points", color="purple", alpha=0.8, + fontsize=12, ) if red_points: @@ -158,6 +159,7 @@ def plot_over_time(yaml_file): textcoords="offset points", color="red", alpha=0.8, + fontsize=12, ) if green_points: @@ -172,6 +174,7 @@ def plot_over_time(yaml_file): textcoords="offset points", color="green", alpha=0.8, + fontsize=12, ) if orange_points: @@ -186,6 +189,7 @@ def plot_over_time(yaml_file): textcoords="offset points", color="orange", alpha=0.8, + fontsize=12, ) if brown_points: @@ -200,6 +204,7 @@ def plot_over_time(yaml_file): textcoords="offset points", color="brown", alpha=0.8, + fontsize=12, ) if pink_points: @@ -214,6 +219,7 @@ def plot_over_time(yaml_file): textcoords="offset points", color="pink", alpha=0.8, + fontsize=12, ) if qwen_points: @@ -228,6 +234,7 @@ def plot_over_time(yaml_file): textcoords="offset points", color="darkblue", alpha=0.8, + fontsize=12, ) if mistral_points: @@ -242,6 +249,7 @@ def plot_over_time(yaml_file): textcoords="offset points", color="cyan", alpha=0.8, + fontsize=12, ) # Plot points without legend From eb5317f8e507ca88646340bfa243c69641b2f7b4 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Wed, 20 Nov 2024 20:13:30 -0800 Subject: [PATCH 169/407] fix: Adjust annotation vertical offset for brown color in over_time plot --- benchmark/over_time.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/over_time.py b/benchmark/over_time.py index 10b769b97..0419c8a96 100644 --- a/benchmark/over_time.py +++ b/benchmark/over_time.py @@ -200,7 +200,7 @@ def plot_over_time(yaml_file): ax.annotate( color_to_label["brown"], (date, rate), - xytext=(10, 5), + xytext=(10, -5), textcoords="offset points", color="brown", alpha=0.8, From 1c85afa32029018b71fe4cfa9b44492b2f8a998b Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 20:13:33 -0800 Subject: [PATCH 170/407] feat: Add LABEL_FONT_SIZE constant for dot label font size --- benchmark/over_time.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/benchmark/over_time.py b/benchmark/over_time.py index 0419c8a96..eeb34b0d0 100644 --- a/benchmark/over_time.py +++ b/benchmark/over_time.py @@ -5,6 +5,8 @@ from matplotlib import rc from aider.dump import dump # noqa: 401 +LABEL_FONT_SIZE = 12 # Font size for scatter plot dot labels + def get_legend_label(model): model = model.lower() @@ -144,7 +146,7 @@ def plot_over_time(yaml_file): textcoords="offset points", color="purple", alpha=0.8, - fontsize=12, + fontsize=LABEL_FONT_SIZE, ) if red_points: @@ -159,7 +161,7 @@ def plot_over_time(yaml_file): textcoords="offset points", color="red", alpha=0.8, - fontsize=12, + fontsize=LABEL_FONT_SIZE, ) if green_points: @@ -174,7 +176,7 @@ def plot_over_time(yaml_file): textcoords="offset points", color="green", alpha=0.8, - fontsize=12, + fontsize=LABEL_FONT_SIZE, ) if orange_points: @@ -189,7 +191,7 @@ def plot_over_time(yaml_file): textcoords="offset points", color="orange", alpha=0.8, - fontsize=12, + fontsize=LABEL_FONT_SIZE, ) if brown_points: @@ -219,7 +221,7 @@ def plot_over_time(yaml_file): textcoords="offset points", color="pink", alpha=0.8, - fontsize=12, + fontsize=LABEL_FONT_SIZE, ) if qwen_points: @@ -234,7 +236,7 @@ def plot_over_time(yaml_file): textcoords="offset points", color="darkblue", alpha=0.8, - fontsize=12, + fontsize=LABEL_FONT_SIZE, ) if mistral_points: @@ -249,7 +251,7 @@ def plot_over_time(yaml_file): textcoords="offset points", color="cyan", alpha=0.8, - fontsize=12, + fontsize=LABEL_FONT_SIZE, ) # Plot points without legend From c797af020a48fced1e8a190cc97cecbb5211977e Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 20 Nov 2024 20:13:46 -0800 Subject: [PATCH 171/407] refactor: Update fontsize to use LABEL_FONT_SIZE constant in over_time.py --- benchmark/over_time.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/over_time.py b/benchmark/over_time.py index eeb34b0d0..4474ca4be 100644 --- a/benchmark/over_time.py +++ b/benchmark/over_time.py @@ -206,7 +206,7 @@ def plot_over_time(yaml_file): textcoords="offset points", color="brown", alpha=0.8, - fontsize=12, + fontsize=LABEL_FONT_SIZE, ) if pink_points: From 8302e9d0dda58b7e238e3f9518a3fe2e6e4043d5 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Wed, 20 Nov 2024 20:16:25 -0800 Subject: [PATCH 172/407] improved over time plot --- aider/website/_data/edit_leaderboard.yml | 6 +- aider/website/assets/models-over-time.png | Bin 158447 -> 101141 bytes aider/website/assets/models-over-time.svg | 1502 ++++++++------------- benchmark/over_time.py | 8 +- 4 files changed, 540 insertions(+), 976 deletions(-) diff --git a/aider/website/_data/edit_leaderboard.yml b/aider/website/_data/edit_leaderboard.yml index c4d600ce0..adc13d9e5 100644 --- a/aider/website/_data/edit_leaderboard.yml +++ b/aider/website/_data/edit_leaderboard.yml @@ -1,7 +1,7 @@ - dirname: 2024-05-01-20-05-59--direct-opus-filenames-outside-fence test_cases: 133 model: claude-3-opus-20240229 - released: 2024-02-29 + _released: 2024-02-29 edit_format: diff commit_hash: f4b1797-dirty, f4b1797 pass_rate_1: 53.4 @@ -623,7 +623,7 @@ commit_hash: d31eef3-dirty pass_rate_1: 40.6 pass_rate_2: 55.6 - released: 2024-07-18 + _released: 2024-07-18 percent_cases_well_formed: 100.0 error_outputs: 1 num_malformed_responses: 0 @@ -691,7 +691,7 @@ - dirname: 2024-07-24-06-30-29--llama-405b-whole test_cases: 133 model: llama-3.1-405b-instruct (whole) - released: 2024-07-23 + _released: 2024-07-23 edit_format: whole commit_hash: a362dea-dirty pass_rate_1: 48.9 diff --git a/aider/website/assets/models-over-time.png b/aider/website/assets/models-over-time.png index 143feb7c66de334450d84a72a8d651ff90b248d0..56836db19a6c8f444d4aa885e471c4e755444a4f 100644 GIT binary patch literal 101141 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℘E@y%=a*}beL%WK3IL!_0Fb7B-_-<-8%P0b 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 literal 158447 zcmeEuhhNWY|9?qHsc=Z4tc;{kN;{jRNJ~*E?Y;M)5|WUFrl@F2Q#+L?Eotx4-h0>g zc{%qv&foBR{LbUyKKDVN&wE_g>-Ai(>;7e_bL-Z!tfio!Sa;$4X&DNNl^-Z5sCKMb zh2P<6^EOwM03r=VcCNq$kj6N}KLproL@t(f?p#OCP`OP4_P`O4dr~tt&BldLz5H>4i@8 zmH3d_O$XM>P*a|GCP+tj)ya9pKY{T?{0h75*ne$IWIVZM zr`zBE6Y3{3Jwfrm{~*78oQ>wgpZ`1^x0mwypTFKywI^r8pC8VAwNmlVe}yXeP+a`? zgHKNAZBV26=W9;hQ@ON)^WXnkQxSE+h5gUh*d6=-Uy3L9|KQ^d-Dut7$bU6Ls&goP zIIG8y->C8H&-Yhf3R-e(ZE$-G>4i15!YOwXcj-8oVe`9*nZdg zz1ZVME$v>R>~PYSZm| z`d_|%yZ`tx!L2`;NA@6G}=f=e${|#lvJKM|$Sy8-iF}7*F0Sot>XI@B4Xxe!Jl5Q>Uo7xVX9< zGmhnaG}<>88?RA#)M}vCv)QQkM;PagvG1KnJ{qFty-nNQK5t-ZM4u0NSzuUybBu9t$qj`7fxF{b#zXDCn7jHJ_ zLwEQ6y^niNU%9eg)p_w)L$cwU*RLskCEWe}l|7o1r>3Svj(^U&z=66F>StzRvO_@N z<#r*f4~7kVTHjw(bZW#@DJ;%UXAkshXeGS7uNC0X5Y8Z@9>cpeH|VBFfMEEf$M4pjzS)jR`Jc;Dh|yxeP5sKj#iAn z^X8nl`r$1j)6?1uGoy`m{V{LD!bb6h`^!v^OxTG;$;YU7mj*t2{`^OM{e!5egRZOA zspGNjVQ0Vbb4f{AdA5UX`D>7f{pI(v!b>w9-(MZ06}K(HcYLQ}5H`6opDDZ7=YEoY z%~&3T*ku`+I}%~Ljvs$-FO(M+Oqg%qlPOTc(xa$(k)M zPE&o*so2HpFp^9AC~r;xi&~>8%@WW5PMO$p!0vO8%4=)y1qZY7w>a>mG+Ax6va)*S z>pMEz9cJXrK?NJ!O@YK-)I{x6IVv-DCMnNw?-DHTYLfoV;%|!3ch0I(K@W2 zf6r*}P5MyQyb;I2gV#RZqOoo?U42j?_Ez5AbSzd#h>70xL0W8)7YnZ6MD@%WYTWX# zoZD0ZqK+)~_V%AYe|{lsdlY|~{;s$E!?vsE%3{_>Gl*U+dOtohvM$(_}T#ZYL#XKhnTwVK|fHHVUHZd_PP z+u)#MX>zc`7!8}_#1)UOfK8h=IZQWM<7IXP&<5z=#Pu#L4m(GLg`N2nlbrk<@8g4U zi>MRY5s%$Ok9l&!UADnZOiWj=U;iF{$v<_r%b#0UxT>mZVazZ4*RO9r+l|D`yXb_h zhi+k0e)s41KF4bNR(YO>#cN@<%vt_(6ne;kHaTe>BcraD+Cc){LY50NrjOXfO7U?v zqXkU9WizR!9W#YuODE8U@IeDdbM#bw1#HKDd9v1EAJ2>jFE_TCo3!WCEaCq?_VX*8 z=&iJEb7#V5$`8fG#%gtZ@fv7I@kRrl4lp?#S2OM*ws0He#VR#3Jp68ABJYnMKeimx z`zw2{Do$|S0TuhfW7To0Ep5p^e#nT<5Aeuby~=#_)_K1|jd(?y`N5QHNqTY~4N*~1 z@A2W-1$*}G8*el(yCE)Yh@-O|*wOwG*52pAhPL&Yv^ zFYuiGChcT)rA+zqD!thw4O@J7cD_oZP03dnHK|qoi6z%KhDS zThF4+lv~lW3Ry*uy)id6J(8Q7+r6;;TEIn>oxpVkPknqU^pbie?eI)Lbv{=vwf$c4 z=G^<}=#}*=qGP#2x$@QHM?TYX?`Nt;L92u%3+TegyYo|bP@dZ15x?vO_ke(HyLRs;OP8z9 zrZh;T7@wuk*w|>(^V;K?XMUiN_1I`38w&1hx7hMG^g|(8-x%c-DVjL6e#KOiop{*j z=O1vr00$-&atiWs8DnerNeAWQA)=}H&CJ+r+qUi9yLW0Oua2Q{#+!9Y+@;@MgwHBV z=l1!QPrgyJvov^dKs(S$JCNC8ORQg1O-kc)co)pL)m0$Bq5^21sJk^_@A{sHq68t}exxjXPsx z1p(jOeUoXAhqK9s+l$KdB~iC>WMV>gg(039+3!G?CT3>pqwNKBY@*xHSfql4zeUPL zVRbPEJ1+?U`!!nD+-R~Z#hp9hB7c;Z|6Ueo!YIo5w~m^k?qNyL78MoEkb7uZno6N> z3$8Qh3iDG5jgMc?#KiQR^BU0K3O+tQSvk3Qr$w@h-oJa-8fe|z2E3p7F-9t)qs)1U z=hCH1D_5_^g-w^osfuxKrbX{?nCx9=HAG}RI~G!u+zfv?8QN2T|-0792ZJX zrNnzqi*ps&@$&MU$wi}%3okE>XG~TrySckt&Wofrjt}<7WtXB|#U~_m#HJ7J5)fcs zy?Qn3S6!B)5Vl(wxeDV3@Lg+qQ?e`qo@ma-k9~Q>8+~0V#S?Ybt~^wX|eZRizabw_t%MCMR=j ziXIvo+P<`{rq==h>WE=IFX=h7{xB3H3%L zM|8L|;^H~%s}(`J_K1jVcLAx0%X61KeR}2n`}aW%p4HbY$;T*#tyENXnq>#=pjhbQ z&+Z-3ch=F_4-oeYpj8u~Df&kGbM)FHI^{b;V%jyZp(rF@9(C6ac9f@y!fV=s66K7R zRQ5jhV?7=Y`gCo5{TL{P)r;mW8#bJjk=Xz`M(&mrng*lvn1-vCk&%%zc!N|q=-Fj> zukRa~wr!J?l%%7fp&{4tIyLo$Wq-A4e@w~>Lpkx`jB$F3wzjs6rMdp?;X!n)!Y|6p zFE^u)7jr};K8FaWqbJT>KVl)bBjzh&Tqp^Z)ISXPjzdO<>>9i6&uq%9A{U@n95 zId*peld7!fL9zL|GBA+RGv2*=TX?kSfO<1zD9NolIAm;CtEsJ>U_WgXX1WY+b^hYT zH=jPe1lLrIXF}aWZ*PX>g>ErZGc%bl6KLrH=zJ_X^U)b7nAly{ z>$o^L9^k_1*+joLXW9#`RP^UJ?gFNx5C-4*9xSH%iF?l;H(=H~ckax9T-0JC6ZF-d zf1l!KRn-B?-p4yn&Gf4-M@mMlrJ>omb0;M?H+L4migF* z8#df~`0!UuN^?8zc%V6R{?1iq?z2~~ZbZZBju2by6_|D$FX5N4ne6g6wpybJ&ciHX z$LoweUJFP^_7NV*fV|5n{+#T3S=ql(l_fkPKVr8XF={;i{E+flUEKrNB0(F{#FZc4 z8hkl}zGn48iFxzpvsfhrC)Q>=FAF#a4K$_urKJf{1UWCw(sx&mjF_OKqJ`K$Gnog1 zUtPbV)KAsvWp%YYet$NPZK=FX_y=J9S#Q=74R4XNhK7gO97axfv<^6MO*<%Gy?P4W zodS0uEfl~{7OkMgeh%LU$MmZKq|Rw*>;{h3Nm5EwIusilThx)6nJE;YJZUEqmpR3< z+0*@6g4QUQoAu0zz2F(Ye%)eqUN9w{3l~w>+kJjb#k?Zt=7(o@6FwXv6}W5f-n$H9 z3y-O3Hy^g>x!mdT5OfiA?wPqgzAHI7IRizxwyy4ocIh_MZTqpybARc!bAfmVOzz_5 z;qk$vv`8&ekKa%EeA3jfNO1B?LqmF{(@tF7_W*&b%(RK_tD+R*R_!=)B)<650>0~m z*@-lxCc(}ra5{B9f1nRe<>Y|?iGxW>B_B15(*ovF)C<;97^U@wbJ?3Wp-3MW6tuF5 zNzYXxSC-Nt!K0LDkatw#6y|&_ zt7&`oiOpW{hIT&(81Lw{Ix5gPvk+Yzz?N@{qoc&W^)} zFZUMyVAe1DJXLa+GOV6SaJf`aNGQRgR|fa)8W$I5Hovqu4;4ecxuZ0Ba&l5GE5&|# zXz;M(TZO84~w{I*7)Mt5gc&qx1*Jar9Bqb%`B1a)`SSwv>B+S*^K1|I2 z1J>Ed2zIR%A?i8vMkvs->QKR13dpG6fZ zGIko@D!F%~t*!0P>gpBC`j48JwY9a`)jr-;b&-ib;xIE}&J`XbEG&%nG$N2vQ(cYC zNmZ_CLmg73=bOC^ura#0aPh_D$)j9cLm8LqV<_dNq#pg)S1ic>qp2wnnBMA>;e2_I zQZMH-3c(3xedjivK$*VY-a5@;CSQrFPWO@7nYlR*CJR6mQAl;$?YvGj^rwRkN>Q!Q zp^a0q?cBsp@rvI#NQS0nYkpy&HFL(wl`9!HZlns4l|7-{8J5IQ2Qqb-#cO+V!YW0G zCNgun*P~0bcm`b`$2RNtKU?FP8!|DDCU&Ki?P|DW@7O#T<{Md2@Lf8eZz~su=Qp6W zLK}-{(Bpk2C8n|0=R)0*LpSuVFv*v{7uD%AXDscOipt6qoGgyF)Pk-1PR9#rBn0^z z7#jMPNo&_jZ#BqndHZ&c=)%Y;ptDRVs!g5+Cyk7ZBIXTR82Z6w`UM;rC?N$DVDAdL z-M60_psW`iA9Rh0{nA)pFLC0;2|sWBVY9N7_3PI=%(QusU)v+!*C#Apqq69Ux7=CX z!FpKDWrKwEm$}*Fj&lmW&Kjdzt8G$hC56?{r+ztx&^yPLN@bITz2 zU!~I*A4fz)$ef@wEV&c2ihi3-bN2_8kZV-@WjTit%HLlWObr#>*(mT0vn0|G40v22S1Wi{`yop9dERJoXVwBr(DOD zvD-AEiEf{JGWm8q=F2L>7SHeBznhEt`|Q0$M1>v;LA2WF=zK-A3$hblT&$}5yk<}= z>IQXDpsq7(YB~3}>T&Ul7iqD5fuZ*|sP+h#*J*zU4L$juaiP_fVFtgrjyDeltxk)I z+Qi%t{3gg@?3>YG6yE+&jSjDs{iqw8!mtvymyfUS8CzQcUtiw2TKkBir$=^;@=_2fQSetszBP z*Zi>Vk3G-1RZC|^J9LeV!o$McQ=08)QQw|(-LSi`slVNs_&@hV38XM+&UlFx07|Xv z;NT!Ad+WwfpX(r%ORT)$fTW{i=2#0;UxRw)4!$jPFC_P}Y~AXs`ccS#tU^Wm>aBV) zYwILc(?JIo78b5P1*<4%dDm~;@U5vVDCo@a&VKQ@RpL`^Sba>C`;8uvw4XUW@rA5! zRI{BNAdNtLgXUC>3hZmb2f$O8pv_}F)F>6vc1^V(Pv>z^kkqwn%)yRR%+PdN*s)ZE zRI8{LxX=)-Fi-N; zM5F}i{rK@Hn2ln()gegiwY7?yxvtl~*1j<>rjZtvesxV;{_GUwq6NUcUs#{r0rP_c z18W!SLT$Itiu}#mkusXv+RFn9t33-c>1qR zn;>h&EYz0Q8LTiJ{oi{6?Z+o!r{&;rUHhO$dF|S@00Hw=D4xA$olJRxzN?Q9bJzOi z309To=2C9m>Q7&0{yJz^;G%ohB5znkkX>Y+#miU=YuolI4Sxai@E;euPDbB!vz)&u z5ZfG{e%mi8emv~O5sg(mTHhhp27}Z+e)8mml@%Yj7*x=)VdrIkjlxHxV8DS1F%n_z z73bJAO9KRi(eQtDcaMWrKy>^?D=&6~wz@AQRxx5{Z9{|gnjY}$E&N6SA2)P#c#Az! zijfaz*t=)X^~0QfG)!xqV!A13RCj1Da;f&rt2@Tj>tj0t4yMUlSsF>$oo*RNkogcuk`FKZ~pJP*6* zX9i&U^vRQ4bfK@`zwhDaXM&q>_UtNVX66OJbcM~V@s9*{?YbkjH0s^NVy;jXDrWVm zyJ2C$0ek!c+Uu35Dpa1s&=FRwSg~f^I`*SSpQ3AwK(x2e7aqJO7JT8t1@ckD)qI(w z_J{JlIM~_UAyvRvcpno}P*?X79sIG6&nZA>m>Rox?!4_dKQ%g8qne{1f_jxUJZr39s1dBHC@7$YEL~?HI&7ZYk{oqptJfD#l_$dv_1-ZsghHncw=2)@ z?F{T4NVVJAZ}0G0Ls!geKxPus2GEQ-WIPRCmJ8C--Py~F+|<<6 zS8*vPKin5&a|cMh*`{M1gp?}%&GHtVCo4muulfl3uMma;4K4T-5Ifc?Fs8|`uj@Or znnM?@ z_~7#N_S#ldS>R=|Y9%lm8yl-QFHTAoPIjnR1jZ*Nu^&0|1dJ)S1)sN85$op`ik!78V!NLM6C<{W`pZT_D}~deog%$TA>Z#)R$cKX`CACnp_jEY8gr zy_ZFP+3mj6=*}4G{Xza(XIGaD3c0NM^`VIqA$io=+E*o_vlhlKq8dkXQa3wQeVmw> z;7TEQ^WZ^R@dK}ulak~<-$S*xzV-=NPykxBK+5!Ri|VXpx+B#AQNP~$-CK9j59`ts_S z{tPjb#yX43K9yBhKZoc$PPEIEz~iRv0fk9%oXpT8er(*&!;_$#Ssa_pHf^L|hQiz8 zSt@_+p_iB3+`+-dPd-iQ)*44&5)ag@pe(3-Nmy-Ntss8qS=l$RTHoQgV~3Ah4Q#Q? z%qkufn$Mb&|b*4jAekbXUI;Q3KT4G*~w!t1N_O~+zGFtkn494vHs}W-W*Hnf# zeJ2BMIv#=;S32)n0Kdfst75iS+Bs5EHS2M)NQ+XoYe%8?u-WLHSQT&D_@TJBZ+~T6 z-K7wxQUVX{JF1q`g~}RtMukVmKFCK^!P&Ze`LZ}Fqh6AdF7073VC=mAnK%%+hCqw< zO1{WJ%PN6V4x!0sq>tk>Ij6Y4)|(!!DwZ{X0BM+K&?=Mqj^E6!)sSleq;A7_vXIfcvK z>uq@WN9ScHykqX#J!vBSwNUWhM?as@kdu>hz|(HSgK zH|Y9R@5WZ0d1Tqi<@4>QuB(A(!DsCHVOlBQeo44IfXvZKNs+~a4bt!Xq{=>^q;h0F zBVL6CbJ~rA+GRl^+LM=~ev?IRA^oqhGVh-?SP#~R4QT)R`b6Z1Sj<7N+x#zIR^WAr zS=0^dEH5oeoKc!zdsKf*&Cj1dHC@aBIHl|v-^+4n7JMPAp2h5>@<_IBrX3bL}NVLJ9#$Mlcc#vtW?|FNBUmsapLDkpa zUzcvpjVe<#oeEbImu!?ZtA*FJW+849EcC6=q_&AVD9)N+dQ-u;Z5!vM`naPcF4Hay z-xrsa-YRxuv4EFswg&46f#{@t^dT!bjvP6nV34#+KR5!|iliT`-?}?TLG?nX?`kpy#Z?Y(#{Lrdvw!4jm)jJdujab?R#N$ahw8_kLj70CtyI9|NwTOJAfr#sl0 zHB-eKRwC_Y&dWodC;)b5L_8|8kdAurVC~X~hnR)!3476M#)P+T-JmsI2B@u=Pu&7< z^vWa6!TO{Hi016jL7qO{Fg4UvOqeI0&^=ezyfecMX>N%saouQ(V%-VY;a|m;XQe|9 zWqiCF-3{=Ti%1D=;tiXi;c@er4Ak9j+4WsrT^x&^s~A|LCG+Nv=(}L87eG>@OzjQ# zk8RiCE`b6`lbG4%ywJf`MnmuU;DHTSf<1qJI=F>Y>ev4u7UQ0;}q#q>-s>riWWEEXU%#rs+Ub^z5wacIL+s7+sZ$=uavtD;i*~>O7T&j` zve#l^(Aasmm>8Q*zjpNvKl`jCDM#r`m*nJm69w%i_Gd42atq0NU2}dIuP5f~ge#Pl zmEFIXiVVcNmEq_UO9I`uU%g^cv1y}*{Efxg20gs5>k948*k{k4{RK4S49t=@-Qp}Q zA+dHOJ17P)hbX{kh}JXnO8|?Y+f6DaC$BUAph9&keUp_H1nqqBj(37o;7mNEF^=r| zfU@1*!Y6HPW~kZt;euDk-e_oBj(Y}@Y?MC8m$f*hJT*|4cf-2rjDv$PHezGrb(Cs~ z7lM|09y@gKXV^0@e*Tn&&GH4%hm*HP*4c69}<90X-kZ@Qw$>c*dO@$HW2Jv+S-6eKpmZUZJh#9hnI+53~!5k zHF@wLhx-6|LMnUDOG`&2CHaD*!K*4V@}{YOWgQV79$M3HJJ%aQnRaZj$4pVx1Ko|d zHgH#k8e3p_5cLyEJ6GQ^uzdTJ3B#Q{vnnF267o23|`S;{}QN-V^OM$k$LSDfUgU4 zHQ8Og5y6P^+(!|9_3qt%2#@b#V%T@@rh-xluA-P}Hz`oIecQJ0+)kskC{*ltgQ?I< z?|XR_KqW#}?1_($Yn{Q_sH!plmW6O-uOD&G4qOd??CV=VunO=_Eh;QlDgghL%a=o< zCzv*D_)J95%oeVmzHHk<4#_Gf>Z~Ui5|x6i z1Xu2;?bi=*x09a+n3T?79T+l?ke#wgyW`|ptTNuHZd89jSOU^rmbBF zgz>ecq(D6$@H+?oU?shV6G8wsc=yEABBBLB`@Fo*P`Qut@c5Q%SA?Enn$)1W-aKms zt8D=wtz5AG=@~78Dea#EHIs@sF^JzVAy3LV~s_Cof3CGb~=KV9%opmy%zV z(qbjB@jhS`q7`+MhaVgJh+y)b9-S3bRPW>B_My@~f4&)-r?>FfSKImXYj?(Gz#bYK zAHSAtz>GbEKnQ|hQfNTv;|17Q@FiZodZlAva0^)$ilUZf;+z<9Gwz9{vrPh?Ww`I{ zU6_~Wipud*Z*tSH>-g8*-mODJrSOf;BD0omH7GM=ZepT_AD1|D8{%0z5uI&I3dP9 z+!ySy0bq)(M`(f86&mSqV>YA?CO6o0c=3Pz_N}*EBNk%FLZ3pmOr&?(QBWqL9EKcX z?2U20hVS+u1qaU#t0a(T(rTnN_czZ>{AN#Fn5;Pt?#zh|STw&nI}fy_kn)A%qpPFS z!<%y_xdyA#3+>wz`^>zQ8T)3TohduDRp0R#Nsb|^I06oTMM0saEd$}LVz^p11M!7i zdP?u)qdI*RRN4SxHL--@QC{G}dtw^_YPb98oVCZJbo+%I*PVn<%GR~Ua zy9{^y{H04_1lCo>;9em5utAOJnd(=w6zFb1yC!RG1l-OKtP@WCyGDMHa;&5;E|gR- zn8ZNow~5##=2@5H&dE;j7M;5Xa86JAm!hgSYJv}9A+F$B=A~4ST8MNZVd>A<-WM4g z`^A6{tIRVna62qk-ebqw`uZMxyY>0j(VND`-uT@X=VcN64CnRK$H)ngZZw$E5*t8e z*B@M1!{d8Kkb3P-x0xr16Vh)xF0QG`4jT$74Wtw7a)b7OSZ))vIR8?w2Vq6{R4MWo z5><|)&!Ui=gLRAdED`5Ndt?jUHUTp?AagaO&L$@_cOB$C+3@of_zCidt}1b0qMrBe z-J>swD(gnjASukAQ+p!aEb-qzCPZWu`pK5lM4p55lA)_C3V{YS>^kZ$i+|#>Vep zhX)QG%+uj*9~zQ^qnq-1cS7CwC%ez>-@l)tp2KIu#*IR<27%s5N1RTapafyTLSWpq zscLs_m3Qx?9m%vp7u8E*QB_riEc)z#qhB9-DIUu`xMHopez|35i@_ykT4)ARAu%s# zjiVzYJGi){dh4hSeQCf%c=`CAzIbuo!otF15SA99l^{}RXQ1Qv9z5uiXNv<6Mevgd zFIWUQIpXBI-aqo|kSR;iE)BRcmx%4Xar^eBoo+(F1TXIQ`9j2$hsi4)8F6sj68(w z1Kix&C|@EDd-(bO&cs)+>&G3^iCQwXuo##yC5sy^1#a(h!246}V~TmXsj0^i-AW2# zeT2ktMK@ORGvw7qe1aF;kk9;RJ*)y*5{sAzFAM$jE_c?<9TY|7-ZDMSqc3C6=WuZa z^O_E`KVlUrg79mKfUdA`0D-@b)&mh%ldSxpL)7E;2(d$r6tGgHk3Yhw&hI`T2dG zJfTdyVZNH0x~;40ER;2nM`vF>HJUg(hL?$Tv|GH+c9jMe1De!+GT#R=NEjh+EDjSe z2Oj$=1E;yl;4w6J5)R_gujWJ#Z@%f2iHBf%EWe-t&siKRlq3Zrq=S*uAz5MK(Gua< zof^(?(@ozCrn=A~^PsH46(h0_Vip@18FS!<+uP}otB%0TGZ29QLc_!Nf(g!`36M?>iDxKL`%TZaqwXJ=W|roMN&FN!@}i%= zB``oTf|W#PTB+EX`TR?e03Cx3@=Yck-y2H+EkTlfeSK*TlE^6|l5=Mv)r=Y&{q(h) zKl;!fHGoeQWe-HZ1XrHL-;NOTPc7cvw+zitjW(1Y9QAWu1~_S zU{7CBW)T}**mR>)`TFl`L~D8Nyu7r1?g8DliMfr~GG zuYijd7Q9H1FBd*#zliN~GO9{lTiXKx29WS>l9K53Q++qBO%P zGFx#Ka0W;SdYqy~V0q|UD>DxSwGL|RQeM!ut?qcXvjscF|H#mpSQ zC0J&>q|+SULiamU*=&36lWJ6zl}$!M0uQS6jiETWC3ACg^vj8fiPw`x$#cScbYrYR zJ81tM3FX;BN73joUV@5ANlXe57hI6CvNFIx;X`Jg!!IRCl1AC+6Es-$Cs`*sKG@w3 z3E4rie~|o&hz<@CeepSG8~AB1QZAV)Ep4OdqA;H@$xi}xAVLE~(}!D*tUxhERY2w$`xVUfTS-Y65;g^%OwiwI5mv`zgCl{^gj{|9%c+TfQvO!du|*U5gF?zD=@Iz|Q2RLHb7k8%Qn$YB>lZ9SiThi3tld z%)2QmDHExE9eZ;6sG;oT$2mJ zHC!miFNLhRfC@#9IheY?6 z(*`pk0(cduUA6UAV$Q<&L0|!e(f$97KHZCY1CwaeLHTl|_R$s4!S_Ho08&6CGcHVEM=9bwV1X1{_o)MeW9qfZ_`ew=ardNO8$2^MNF9N1zA zHEvM3q5XD6|Eisv{+;)--y~ z^X63~hYmrE;z!8hs+}T#=G#m!U5lVqQecvOFN=nh07e51fdts_qYqh*Js|TKXm*u= zF~IG=W5{682u_LEu4!lSS^Hbw&yj=|@EUqBw(qq}J8~De zrze4dUMg{`Tagpq#m-Lc0=R;hh26lG(`8ToGlQo9BWKl8&D-rEiHXl3t88FpEybr@ zkdngSfNyj(=U(X`l0)`g8%48mFVypotjy^>BLA83%a_v_G*3d$K#JxhHaR*ss@Ik4 z*XdkXSV2?XavsA1Ia-KCv4a{O1+5KbSRbeOuY9nB^eQ+uMtWJPt7z59P~e zcUrRMAi3)Bvh3Qm>qAP)zJmunXUDrYvavB(L^p2W=lai3py?TaHFlGatFD28QwYOY zhe6|c!DsIiUtjmLZ*Jz_TkkMcr%jRi>C+MCC5O9o%%QS|G&k9U{|qEvUk?z8SOrum zJl62EG$ooObXSUzkrDBzDkQ?c0UZ%NK0JICRz8FdyO}kojoJS*02zA^A+%?4G0WJySp1!iY8F zo}KOdcV{Ez^)wsG?brGweO)l{Z%^6rOuuU-{78s|utZ1{B17w$nJ@f}*z@!A88PWa zvb#`jzyLlL?yC93znSKP5#w0F=KpO^Qvr+z)FMNQc&KEc;3nmUM?Pu56X%e`rKF?; zIzt0l<$4>N7jqvgA=||E*!&Wl{<7=p8ux!oz6ww#Z%!>#s+@Y|ExmF-!^)R(RMH+3Zxo3vq04_OLNc5OA~(| zPnjh69&Ho2ldF~kN~hb!mG8SZ_}?t@YCzSViCG3fX0R%mkaW`s%6mvf+Z0#0f|?tiJ2*a>0Qa`O!oaQhKbTcI{H(gua_C_<80 zB)C3`cU65V8&&Ra^_JZE*FOs()?6#$8chh)Cw%?6bLWs`$3F%b-+(-f6@WArf{^Qh zFagehgG59ecK+waV--+!Qq$5xxY}9Tup0^gr{dON$!tZe=KO^Vxfm(Hg2G@e1l3M-SM=b~ zS`BZk@Y#tem%QLK|-f6nN5TlUXz zxuaWBMOvM~7ad+R%oBEIp(H#-gUrkn!Q=&*>v|{4fp>|b1^Qi4UhX0v7b=|gmefy8! z$&25g)Sdb8D3bAWXg%uo9j8h(YaPB(9`T znHfYT7!jE`E+o{^-CYAnkl*>_fZIQ7el8ki6yDcGM5~Twma4~3jJ)Ft{&q_p7BG>B z1Y%)xB3f;SGV-mcXxE`bUMP}3P}zu@HrUwIR2Q$YngYOPgUbE>JAWQuj}HbFe5)ow zpC5t20s9X3-n_wwK)RRLIwZr0WPoX9ba)iaUr_!!F-}4_5UOoxXy^-3N5QRp1|eV% zxIiQn&poimWGkjzo7t%_5clSBO$iaEFQTz$({_x>21w4Flcpv8; zZ39kxEzM_XtfQj_7Y04l7x3K7++4u4eI-J(AZ=>;`WG=ZEg&EOWMqyJtG1z`=E}Uy z?UDb%mYGUO$z$CMFHTgFVVcwD&iTB2c|RqEUoh|yw4=^=xU=D?zdinPig;lN<06tu zoMX7%=06lgoZTBxb; zqzP^SAAl^0Ns@iLcCB#1cp4PDN}p5NoGe~iRk<&Zv+=_nq`DrmWSz#6) zG|1j=%l~$dsS0}8ZV{0{>|-jQZ*CAo>*}t35<`p+(`6qK%I?I1m;5__Nw<|Rdf#0~ zr!RZo72mBE{O}_8EG^fSkii9(OA(b2f6gK)02A%uR{lr8&Z-?Jrk#ERjX!Kaqz_mJ z`}j?j9s;(Z7*lsak``L{S?moOdU~iHE=Ypy-&uvM5GG-}Q5V@UZ4D9>B>d34_h8!u z*YQlMS4EWL%R>p~tK;^JFjE;FDUVh41GR$T6_%F90_uRK89Q6<-edTin|(|CyDf*N z9N^$+$H-*4xBfi;4b=XNfO zg$Pw_me-{cH>|M=E}%Q49TFB9!*cMJ=*pHA9KHIMM}DKcKU6SQ0MlT&6XKq45p_6D zXgSIqIxJ?!kNwIUO?e&0(x_gxE?id6 zWJGuVoby^Khh{6~@&S5Z#gq4z|1g{UV`yQ2>u+1pC@2YiQP!$W@iY}4e@;DVk38z%@XBv1-70t}z)NSMs)+E2 zoDswi3Ia?qF$Xd6#Zk?**mGZ+n}eXv@L=ZaXP>AEjlCU{;zPBl!6iP9O||oh)QWds zMe+0Pocka;GRXA5RbNp9Kcb?skuGGVG-Mx?g2yjkUO=!8H9i9KYLElLDgn)K-B(mq z8N{(V$v8ct2qIS7msTfMMTJWFd3W$7DH2qk-l^9-c=Cpzz!|}n2`}HbUd9T zrizga{*Q{{)+_YrPh7NAw&@gPZ0r#4sLQNc<6oR>c{ug7%4FNx3a0m*oAm=jQ-cBp zE!R3bF9)&S{kvkc3y#5;46V{*#uyaLFeI#rWww9X7<2U)-bTat(K`jz$T*s_*0*}q zJAtuf*Qf-wVd~QLm&ewSYEzw<@MEa$SaH?_`p9(*L8in zOjZ}bTB%@BV(Y_=QX6Xg1ik$uhJq=`Bqee#NGz<_fjSNIno=$1O^;8TZvoxpr^^ch zzcT3M8gh=T+%@b$Ddrkd$9Q}rop#RUh;90QNxQq`b-q$h+l;U{4L&+`PxNd!BTTj5 z_m&z0xCYhGt&!16>MQbk_i(7SRr-bxwY9bo zQk)H=%A9KNC>Jl7Y+bp?rq>_L?$-0{PbVzJw8aC0C68!)fdMWhFTWY9ly1A=GlV&i z;j7T$1x^QwFGhEvp`*KnT?u;k_}R03k?BUL0H&kgV=h}qA4=8Z)T51T?8r6mnT=Q- zX?SHin=P@~M31NNk!F0K%M;Z@Yfrnc{eGxiX|>f*s}SYq;T5Zg^{o`!>t#+}G`;qR z5SglwQR#vLcYGlfcksQ?*jRd;D*-u^3SbimBnhj3GBtU-)~$xpE^uArx5ox`s|sjvsJ>%>K6%cY!L13s!{+F0;4Qo5iGW6(1IngZJNes1oFkPr$nF|ie{ zclLZwmFl$+gzRMV>&ZD2Q`0siQ;2#X`HGi@XhV7Z<9}W#CAi*d%xUit6imw-1Uf>Z zp2`FhVNgh&iqdqmKN9&)4n9e4jqIeWwZAiLGqPoc6<1TU*D<%q zcke<%L+`-kf`N14(j{=ehp6NTEt*|cMzEtRa9{KcN3UW@%WeE@4yTIMFZd5hGaCW?XUGtR*O^Brbs=pb|VJ_)}`-At%rop}$L@rgCvLF?>5c48@Y1%mZ5; z@&&O12vUOg0gW>UjTqRiwX3UoK6|U9+n;-Kog0-+Mu9^g`ddO`t;54*pt3X!48xzOdgxEB3lO0@)?2Q`pya&f1^tkzn!RaBr~j*0z_*xeTX9)I z!2=p60=|Dv2)023xs2%w}4u@qmroBNrlP0uF`vXR8xY1t-!YDV1xYn=n{%I zS%!LQUkwefQdcplF8)}WJo-`+@niy4}$QUmb0+d}xvb*FI zB>MShBay>|?n3L%2Q^A^G)8h)OK41y;!>kx@5P2 zsH_Ob%1K0li7SaSXvk3xkR_0y;J9goW(AmoO~lbqn4eDuOGryVS+W1MC6@m`7aqOn zZUesn2ZV$}`+=1R0RRWQNUy<}NqA=1aUZa)aDZ4DQNObs=Ry7Y+IIK26|A@vX1K0S zKOskbrQiNF%5+>*;*Ppe3rWU03??`Tg#=H~3y@M?1N=$~!$VdP7Fhd05Ess$ {N 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

      rGaBv3% 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 z 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 P!^!SZ{4I9Zk+c5`wg@GJ literal 101141 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℘E@y%=a*}beL%WK3IL!_0Fb7B-_-<-8%P0b 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 diff --git a/aider/website/assets/models-over-time.svg b/aider/website/assets/models-over-time.svg index b3e835840..228532907 100644 --- a/aider/website/assets/models-over-time.svg +++ b/aider/website/assets/models-over-time.svg @@ -6,7 +6,7 @@ - 2024-11-20T20:15:47.248634 + 2024-11-20T20:18:37.097598 image/svg+xml @@ -39,7 +39,7 @@ z - - - + + - - - + + - - + + - - + + - - - + + - - + + - - + + - - + + - - + + - - - + + - - - + + - - + + - - - + + - - - + + - - + + - - - + + - - + + - - + + - - - - - + + - - + + - - + + - - + + - - + + - - - - - - - + + - - + @@ -396,7 +378,7 @@ z - + @@ -443,7 +425,7 @@ z - + @@ -478,7 +460,7 @@ z - + @@ -529,7 +511,7 @@ z - + @@ -561,7 +543,7 @@ z - + @@ -601,7 +583,7 @@ z - + @@ -620,7 +602,7 @@ z - + @@ -639,7 +621,7 @@ z - + @@ -658,7 +640,7 @@ z - + @@ -677,7 +659,7 @@ z - + @@ -954,16 +936,16 @@ z +" clip-path="url(#pc4f5cb5018)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - - + @@ -978,11 +960,11 @@ L -3.5 0 +" clip-path="url(#pc4f5cb5018)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - + @@ -997,11 +979,11 @@ L 854 415.874582 +" clip-path="url(#pc4f5cb5018)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - + @@ -1016,11 +998,11 @@ L 854 338.779666 +" clip-path="url(#pc4f5cb5018)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - + @@ -1067,11 +1049,11 @@ z +" clip-path="url(#pc4f5cb5018)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - + @@ -1086,11 +1068,11 @@ L 854 184.589833 +" clip-path="url(#pc4f5cb5018)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - + @@ -1146,11 +1128,11 @@ z +" clip-path="url(#pc4f5cb5018)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - + @@ -1502,7 +1484,7 @@ z L 698.013294 173.796545 L 764.945771 167.628951 L 818.264864 173.796545 -" clip-path="url(#pcb3f3306f1)" style="fill: none; stroke: #800080; stroke-opacity: 0.5; stroke-linecap: square"/> +" clip-path="url(#pc4f5cb5018)" style="fill: none; stroke: #800080; stroke-opacity: 0.5; stroke-linecap: square"/> +" clip-path="url(#pc4f5cb5018)" style="fill: none; stroke: #ff0000; stroke-opacity: 0.5; stroke-linecap: square"/> +" clip-path="url(#pc4f5cb5018)" style="fill: none; stroke: #008000; stroke-opacity: 0.5; stroke-linecap: square"/> +" clip-path="url(#pc4f5cb5018)" style="fill: none; stroke: #ffa500; stroke-opacity: 0.5; stroke-linecap: square"/> +" clip-path="url(#pc4f5cb5018)" style="fill: none; stroke: #a52a2a; stroke-opacity: 0.5; stroke-linecap: square"/> +" clip-path="url(#pc4f5cb5018)" style="fill: none; stroke: #ffc0cb; stroke-opacity: 0.5; stroke-linecap: square"/> +" clip-path="url(#pc4f5cb5018)" style="fill: none; stroke: #00008b; stroke-opacity: 0.5; stroke-linecap: square"/> +" clip-path="url(#pc4f5cb5018)" style="fill: none; stroke: #00ffff; stroke-opacity: 0.5; stroke-linecap: square"/> - + - - - - - - - - - - - - - - - - + + + + + + @@ -1974,7 +1923,7 @@ z - + diff --git a/benchmark/over_time.py b/benchmark/over_time.py index 7da8f22c7..d154e4076 100644 --- a/benchmark/over_time.py +++ b/benchmark/over_time.py @@ -11,7 +11,7 @@ LABEL_FONT_SIZE = 16 # Font size for scatter plot dot labels def get_legend_label(model): model = model.lower() if "claude-3-sonnet" in model: - return "Claude 3 Sonnet" + return "Sonnet" if "o1-preview" in model: return "O1 Preview" if "gpt-3.5" in model: @@ -54,9 +54,6 @@ def get_model_color(model): if "sonnet" in model.lower(): return "orange" - if "o1-preview" in model.lower(): - return "magenta" - if "-4o" in model: return "purple" From 443acbe4b556d141108130e1507950ae8cdce575 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Thu, 21 Nov 2024 06:23:32 -0800 Subject: [PATCH 174/407] fix: Correct command output confirmation logic in base coder --- aider/coders/base_coder.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/aider/coders/base_coder.py b/aider/coders/base_coder.py index ebd36a941..8d0d6a265 100755 --- a/aider/coders/base_coder.py +++ b/aider/coders/base_coder.py @@ -2061,9 +2061,8 @@ class Coder: if output: accumulated_output += f"Output from {command}\n{output}\n" - if accumulated_output.strip() and not self.io.confirm_ask( + if accumulated_output.strip() and self.io.confirm_ask( "Add command output to the chat?", allow_never=True ): - accumulated_output = "" - - return accumulated_output + self.io.output("Added ## lines of output to the chat") # TODO + return accumulated_output From cbd35b0e87e699822ce3602f9391fc0cb9fc35fe Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Thu, 21 Nov 2024 06:23:34 -0800 Subject: [PATCH 175/407] feat: Implement line count for command output in chat --- aider/coders/base_coder.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/aider/coders/base_coder.py b/aider/coders/base_coder.py index 8d0d6a265..a3cd668fd 100755 --- a/aider/coders/base_coder.py +++ b/aider/coders/base_coder.py @@ -2064,5 +2064,6 @@ class Coder: if accumulated_output.strip() and self.io.confirm_ask( "Add command output to the chat?", allow_never=True ): - self.io.output("Added ## lines of output to the chat") # TODO + num_lines = len(accumulated_output.strip().splitlines()) + self.io.output(f"Added {num_lines} lines of output to the chat") return accumulated_output From f96cc035870aef10f32bff64b5a157b2dc5daf39 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Thu, 21 Nov 2024 06:25:10 -0800 Subject: [PATCH 176/407] feat: Add opt-in analytics and improve output logging method --- HISTORY.md | 3 ++- aider/coders/base_coder.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/HISTORY.md b/HISTORY.md index 4dcd0035e..d4c13422b 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -6,6 +6,7 @@ - Added [`/editor` command](https://aider.chat/docs/usage/commands.html) to open system editor for writing prompts, by @thehunmonkgroup. - Full support for `gpt-4o-2024-11-20`. - Stream o1 models by default. +- Ask 1% of users to opt-in to [analytics](). - Added support for [optional multiline input tags](https://aider.chat/docs/usage/commands.html#entering-multi-line-chat-messages) with matching closing tags. - Improved [model settings configuration](https://aider.chat/docs/config/adv-model-settings.html#global-extra-params) with support for global `extra_params` for `litellm.completion()`. - Architect mode now asks to add files suggested by the LLM. @@ -14,7 +15,7 @@ - Added `--show-release-notes` to control release notes display on first run of new version. - Save empty dict to cache file on model metadata download failure, to delay retry. - Improved error handling and code formatting. -- Aider wrote 53% of the code in this release. +- Aider wrote 63% of the code in this release. ### Aider v0.63.2 diff --git a/aider/coders/base_coder.py b/aider/coders/base_coder.py index a3cd668fd..9847aa823 100755 --- a/aider/coders/base_coder.py +++ b/aider/coders/base_coder.py @@ -2065,5 +2065,5 @@ class Coder: "Add command output to the chat?", allow_never=True ): num_lines = len(accumulated_output.strip().splitlines()) - self.io.output(f"Added {num_lines} lines of output to the chat") + self.io.tool_output(f"Added {num_lines} lines of output to the chat.") return accumulated_output From 28be59582f54af162a8f28632f99ae386251dee8 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Thu, 21 Nov 2024 06:28:41 -0800 Subject: [PATCH 177/407] refactor: Simplify cmd_run to use confirm_ask and add output to cur_messages --- aider/commands.py | 32 ++++++++------------------------ 1 file changed, 8 insertions(+), 24 deletions(-) diff --git a/aider/commands.py b/aider/commands.py index 35a3ed9b5..78dc7ca22 100644 --- a/aider/commands.py +++ b/aider/commands.py @@ -865,11 +865,10 @@ class Commands: return errors def cmd_run(self, args, add_on_nonzero_exit=False): - "Run a shell command and optionally add the output to the chat (alias: !)" + "Run a shell command and add the output to the chat (alias: !)" exit_status, combined_output = run_cmd( args, verbose=self.verbose, error_print=self.io.tool_error ) - instructions = None if combined_output is None: return @@ -877,36 +876,21 @@ class Commands: if add_on_nonzero_exit: add = exit_status != 0 else: - self.io.tool_output() - response = self.io.prompt_ask( - "Add the output to the chat?\n(Y)es/(n)o/message with instructions:", - ).strip() - self.io.tool_output() - - if response.lower() in ["yes", "y"]: - add = True - elif response.lower() in ["no", "n"]: - add = False - else: - add = True - instructions = response - if response.strip(): - self.io.user_input(response, log_only=True) - self.io.add_to_input_history(response) + add = self.io.confirm_ask("Add command output to the chat?") if add: - for line in combined_output.splitlines(): - self.io.tool_output(line, log_only=True) + num_lines = len(combined_output.strip().splitlines()) + self.io.tool_output(f"Added {num_lines} lines of output to the chat") msg = prompts.run_output.format( command=args, output=combined_output, ) - if instructions: - msg = instructions + "\n\n" + msg - - return msg + self.coder.cur_messages += [ + dict(role="user", content=msg), + dict(role="assistant", content="Ok."), + ] def cmd_exit(self, args): "Exit the application" From 2619b921315ec085c0e1ed7ba5a033be49dd76b5 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Thu, 21 Nov 2024 06:30:50 -0800 Subject: [PATCH 178/407] fix: Add period to output message for consistency --- aider/commands.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aider/commands.py b/aider/commands.py index 78dc7ca22..e93046dd9 100644 --- a/aider/commands.py +++ b/aider/commands.py @@ -880,7 +880,7 @@ class Commands: if add: num_lines = len(combined_output.strip().splitlines()) - self.io.tool_output(f"Added {num_lines} lines of output to the chat") + self.io.tool_output(f"Added {num_lines} lines of output to the chat.") msg = prompts.run_output.format( command=args, From 7aa4e44317dc022b7dca21e1e1fcb30bb03342dc Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Thu, 21 Nov 2024 06:30:52 -0800 Subject: [PATCH 179/407] fix: Correct line/lines pluralization in command output messages --- aider/coders/base_coder.py | 3 ++- aider/commands.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/aider/coders/base_coder.py b/aider/coders/base_coder.py index 9847aa823..df2813103 100755 --- a/aider/coders/base_coder.py +++ b/aider/coders/base_coder.py @@ -2065,5 +2065,6 @@ class Coder: "Add command output to the chat?", allow_never=True ): num_lines = len(accumulated_output.strip().splitlines()) - self.io.tool_output(f"Added {num_lines} lines of output to the chat.") + line_plural = "line" if num_lines == 1 else "lines" + self.io.tool_output(f"Added {num_lines} {line_plural} of output to the chat.") return accumulated_output diff --git a/aider/commands.py b/aider/commands.py index e93046dd9..fc2d40e65 100644 --- a/aider/commands.py +++ b/aider/commands.py @@ -880,7 +880,8 @@ class Commands: if add: num_lines = len(combined_output.strip().splitlines()) - self.io.tool_output(f"Added {num_lines} lines of output to the chat.") + line_plural = "line" if num_lines == 1 else "lines" + self.io.tool_output(f"Added {num_lines} {line_plural} of output to the chat.") msg = prompts.run_output.format( command=args, From b78f8abeb4568d0400b9b2b62d178dd78d38c97b Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Thu, 21 Nov 2024 06:34:08 -0800 Subject: [PATCH 180/407] copy --- HISTORY.md | 3 +- aider/commands.py | 2 +- aider/website/HISTORY.md | 4 +- aider/website/assets/sample-analytics.jsonl | 174 ++++++++++---------- 4 files changed, 93 insertions(+), 90 deletions(-) diff --git a/HISTORY.md b/HISTORY.md index d4c13422b..311e8bdda 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -6,7 +6,8 @@ - Added [`/editor` command](https://aider.chat/docs/usage/commands.html) to open system editor for writing prompts, by @thehunmonkgroup. - Full support for `gpt-4o-2024-11-20`. - Stream o1 models by default. -- Ask 1% of users to opt-in to [analytics](). +- `/run` and suggested shell commands are less mysterious and now confirm that they "Added XX lines of output to the chat." +- Ask 1% of users if they want to opt-in to [analytics](https://aider.chat/docs/more/analytics.html). - Added support for [optional multiline input tags](https://aider.chat/docs/usage/commands.html#entering-multi-line-chat-messages) with matching closing tags. - Improved [model settings configuration](https://aider.chat/docs/config/adv-model-settings.html#global-extra-params) with support for global `extra_params` for `litellm.completion()`. - Architect mode now asks to add files suggested by the LLM. diff --git a/aider/commands.py b/aider/commands.py index fc2d40e65..f846179e0 100644 --- a/aider/commands.py +++ b/aider/commands.py @@ -865,7 +865,7 @@ class Commands: return errors def cmd_run(self, args, add_on_nonzero_exit=False): - "Run a shell command and add the output to the chat (alias: !)" + "Run a shell command and optionally add the output to the chat (alias: !)" exit_status, combined_output = run_cmd( args, verbose=self.verbose, error_print=self.io.tool_error ) diff --git a/aider/website/HISTORY.md b/aider/website/HISTORY.md index ee08a959f..01afd21a6 100644 --- a/aider/website/HISTORY.md +++ b/aider/website/HISTORY.md @@ -30,6 +30,8 @@ cog.out(text) - Added [`/editor` command](https://aider.chat/docs/usage/commands.html) to open system editor for writing prompts, by @thehunmonkgroup. - Full support for `gpt-4o-2024-11-20`. - Stream o1 models by default. +- `/run` and suggested shell commands are less mysterious and now confirm that they "Added XX lines of output to the chat." +- Ask 1% of users if they want to opt-in to [analytics](https://aider.chat/docs/more/analytics.html). - Added support for [optional multiline input tags](https://aider.chat/docs/usage/commands.html#entering-multi-line-chat-messages) with matching closing tags. - Improved [model settings configuration](https://aider.chat/docs/config/adv-model-settings.html#global-extra-params) with support for global `extra_params` for `litellm.completion()`. - Architect mode now asks to add files suggested by the LLM. @@ -38,7 +40,7 @@ cog.out(text) - Added `--show-release-notes` to control release notes display on first run of new version. - Save empty dict to cache file on model metadata download failure, to delay retry. - Improved error handling and code formatting. -- Aider wrote 53% of the code in this release. +- Aider wrote 63% of the code in this release. ### Aider v0.63.2 diff --git a/aider/website/assets/sample-analytics.jsonl b/aider/website/assets/sample-analytics.jsonl index 5894250f8..84570ebd8 100644 --- a/aider/website/assets/sample-analytics.jsonl +++ b/aider/website/assets/sample-analytics.jsonl @@ -1,90 +1,3 @@ -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825584} -{"event": "model warning", "properties": {"main_model": "openrouter/REDACTED", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "openrouter/REDACTED", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825586} -{"event": "cli session", "properties": {"main_model": "openrouter/REDACTED", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "openrouter/REDACTED", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825588} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825603} -{"event": "message_send", "properties": {"main_model": "openrouter/REDACTED", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "openrouter/REDACTED", "edit_format": "whole", "prompt_tokens": 406, "completion_tokens": 57, "total_tokens": 463, "cost": 0.000691, "total_cost": 0.000691, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825607} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825613} -{"event": "message_send", "properties": {"main_model": "openrouter/anthropic/claude-3.5-sonnet", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "openrouter/anthropic/claude-3.5-sonnet", "edit_format": "diff", "prompt_tokens": 4608, "completion_tokens": 52, "total_tokens": 4660, "cost": 0.014603999999999999, "total_cost": 0.014603999999999999, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825618} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825641} -{"event": "model warning", "properties": {"main_model": "openrouter/REDACTED", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "openrouter/REDACTED", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825643} -{"event": "message_send", "properties": {"main_model": "openrouter/REDACTED", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "openrouter/REDACTED", "edit_format": "whole", "prompt_tokens": 406, "completion_tokens": 79, "total_tokens": 485, "cost": 0.0, "total_cost": 0.0, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825648} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825746} -{"event": "model warning", "properties": {"main_model": "openrouter/REDACTED", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "openrouter/REDACTED", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825748} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825774} -{"event": "model warning", "properties": {"main_model": "openrouter/REDACTED", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "openrouter/REDACTED", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730825775} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730826090} -{"event": "command_reset", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730826167} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730826833} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730826902} -{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730826902} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730835152} -{"event": "cli session", "properties": {"main_model": "deepseek/deepseek-coder", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "deepseek/deepseek-coder", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730835155} -{"event": "message_send", "properties": {"main_model": "deepseek/deepseek-coder", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "deepseek/deepseek-coder", "edit_format": "diff", "prompt_tokens": 4613, "completion_tokens": 147, "total_tokens": 4760, "cost": 0.0006869800000000001, "total_cost": 0.0006869800000000001, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730835165} -{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730835605} -{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730835621} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 7077, "completion_tokens": 131, "total_tokens": 7208, "cost": 0.023196, "total_cost": 0.145977, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730835629} -{"event": "command_reset", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730835647} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 4650, "completion_tokens": 79, "total_tokens": 4729, "cost": 0.015135000000000001, "total_cost": 0.161112, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730835652} -{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730835659} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 7216, "completion_tokens": 202, "total_tokens": 7418, "cost": 0.024678000000000002, "total_cost": 0.18579, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730835666} -{"event": "command_reset", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730835725} -{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730835729} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 7091, "completion_tokens": 179, "total_tokens": 7270, "cost": 0.023958, "total_cost": 0.20974800000000002, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730835748} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730835777} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730835846} -{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730835846} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730836461} -{"event": "command_reset", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730836569} -{"event": "command_reset", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730836572} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730837470} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730837568} -{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730837568} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730839181} -{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730839182} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730839281} -{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730839282} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730850606} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730850628} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730850671} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730952885} -{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1730952886} -{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731003938} -{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731003955} -{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731003977} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 22688, "completion_tokens": 350, "total_tokens": 23038, "cost": 0.073314, "total_cost": 0.28306200000000004, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731003989} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 23909, "completion_tokens": 208, "total_tokens": 24117, "cost": 0.074847, "total_cost": 0.35790900000000003, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731004012} -{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731004099} -{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731004134} -{"event": "command_drop", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731004203} -{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731004216} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 11315, "completion_tokens": 297, "total_tokens": 11612, "cost": 0.038400000000000004, "total_cost": 0.396309, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731004236} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 11339, "completion_tokens": 84, "total_tokens": 11423, "cost": 0.035276999999999996, "total_cost": 0.431586, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731007380} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731007384} -{"event": "model warning", "properties": {"main_model": "None", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "None", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731007387} -{"event": "cli session", "properties": {"main_model": "None", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "None", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731007391} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731007412} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731007458} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731007531} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731007542} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731007602} -{"event": "cli session", "properties": {"main_model": "gpt-4o-2024-08-06", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-2024-08-06", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731007604} -{"event": "message_send", "properties": {"main_model": "gpt-4o-2024-08-06", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "gpt-4o-2024-08-06", "edit_format": "diff", "prompt_tokens": 4630, "completion_tokens": 12, "total_tokens": 4642, "cost": 0.011695, "total_cost": 0.011695, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731007609} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731007614} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731007616} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 4637, "completion_tokens": 89, "total_tokens": 4726, "cost": 0.015246, "total_cost": 0.015246, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731007620} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731007631} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731007654} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731007655} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 2175, "completion_tokens": 75, "total_tokens": 2250, "cost": 0.0076500000000000005, "total_cost": 0.0076500000000000005, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731007660} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731007674} -{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731007733} -{"event": "command_drop", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731008017} -{"event": "command_reset", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731008018} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 4609, "completion_tokens": 118, "total_tokens": 4727, "cost": 0.015597000000000001, "total_cost": 0.44718300000000005, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731008044} -{"event": "command_reset", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731008050} -{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731008053} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 9093, "completion_tokens": 174, "total_tokens": 9267, "cost": 0.029889000000000002, "total_cost": 0.47707200000000005, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731008063} -{"event": "command_ask", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731008066} {"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "ask", "prompt_tokens": 7163, "completion_tokens": 149, "total_tokens": 7312, "cost": 0.023724000000000002, "total_cost": 0.500796, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731008071} {"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731008091} {"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731008122} @@ -998,3 +911,90 @@ {"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732147482} {"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732147483} {"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732148511} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732153487} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732153487} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732153933} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732153933} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 4554, "completion_tokens": 249, "total_tokens": 4803, "cost": 0.017397, "total_cost": 0.017397, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732153969} +{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732153997} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 5573, "completion_tokens": 931, "total_tokens": 6504, "cost": 0.030684000000000003, "total_cost": 0.048081, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732154054} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 7869, "completion_tokens": 328, "total_tokens": 8197, "cost": 0.028527, "total_cost": 0.076608, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732154137} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 8082, "completion_tokens": 250, "total_tokens": 8332, "cost": 0.027996, "total_cost": 0.104604, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732154165} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 8759, "completion_tokens": 0, "total_tokens": 8759, "cost": 0.026277000000000002, "total_cost": 0.130881, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732154209} +{"event": "command_run", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732154223} +{"event": "command_run", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732154236} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 10107, "completion_tokens": 283, "total_tokens": 10390, "cost": 0.034566, "total_cost": 0.165447, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732154294} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 8064, "completion_tokens": 681, "total_tokens": 8745, "cost": 0.034407, "total_cost": 0.199854, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732154329} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732154412} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732155671} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732155671} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732156129} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732156130} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 4355, "completion_tokens": 713, "total_tokens": 5068, "cost": 0.02376, "total_cost": 0.02376, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732156158} +{"event": "command_undo", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732156165} +{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732156173} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 24243, "completion_tokens": 702, "total_tokens": 24945, "cost": 0.083259, "total_cost": 0.107019, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732156208} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732156247} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732156248} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 25095, "completion_tokens": 783, "total_tokens": 25878, "cost": 0.08703000000000001, "total_cost": 0.19404900000000003, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732156303} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 24732, "completion_tokens": 772, "total_tokens": 25504, "cost": 0.08577599999999999, "total_cost": 0.279825, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732156432} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 24775, "completion_tokens": 836, "total_tokens": 25611, "cost": 0.086865, "total_cost": 0.36668999999999996, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732156523} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 24932, "completion_tokens": 490, "total_tokens": 25422, "cost": 0.082146, "total_cost": 0.44883599999999996, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732156683} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 25588, "completion_tokens": 105, "total_tokens": 25693, "cost": 0.07833899999999999, "total_cost": 0.527175, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732156997} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 25744, "completion_tokens": 99, "total_tokens": 25843, "cost": 0.078717, "total_cost": 0.605892, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732157247} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732160515} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732160516} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 24980, "completion_tokens": 376, "total_tokens": 25356, "cost": 0.08058000000000001, "total_cost": 0.686472, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732160614} +{"event": "command_undo", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732160629} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 25429, "completion_tokens": 739, "total_tokens": 26168, "cost": 0.087372, "total_cost": 0.773844, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732160740} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 25145, "completion_tokens": 124, "total_tokens": 25269, "cost": 0.077295, "total_cost": 0.851139, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732160756} +{"event": "command_undo", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732160758} +{"event": "command_clear", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732160763} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 23980, "completion_tokens": 899, "total_tokens": 24879, "cost": 0.085425, "total_cost": 0.936564, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732160801} +{"event": "command_undo", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732160830} +{"event": "command_undo", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732160837} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 24937, "completion_tokens": 496, "total_tokens": 25433, "cost": 0.082251, "total_cost": 1.018815, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732161575} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 25670, "completion_tokens": 684, "total_tokens": 26354, "cost": 0.08727, "total_cost": 1.106085, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732161766} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 25276, "completion_tokens": 847, "total_tokens": 26123, "cost": 0.088533, "total_cost": 1.194618, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732161827} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 24511, "completion_tokens": 1817, "total_tokens": 26328, "cost": 0.100788, "total_cost": 1.295406, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732161916} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 25012, "completion_tokens": 277, "total_tokens": 25289, "cost": 0.07919100000000001, "total_cost": 1.374597, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732161962} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 25379, "completion_tokens": 142, "total_tokens": 25521, "cost": 0.078267, "total_cost": 1.4528640000000002, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732162006} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 25584, "completion_tokens": 450, "total_tokens": 26034, "cost": 0.083502, "total_cost": 1.5363660000000001, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732162070} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 26434, "completion_tokens": 347, "total_tokens": 26781, "cost": 0.084507, "total_cost": 1.620873, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732162081} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732162206} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732162206} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 24794, "completion_tokens": 1029, "total_tokens": 25823, "cost": 0.08981700000000001, "total_cost": 0.08981700000000001, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732162238} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 25925, "completion_tokens": 1170, "total_tokens": 27095, "cost": 0.095325, "total_cost": 0.185142, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732162408} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 25286, "completion_tokens": 138, "total_tokens": 25424, "cost": 0.07792800000000001, "total_cost": 0.26307, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732162423} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732162577} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732162836} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732162837} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732198998} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732198999} +{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199001} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 17347, "completion_tokens": 137, "total_tokens": 17484, "cost": 0.054096000000000005, "total_cost": 0.054096000000000005, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199010} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199040} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199040} +{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199045} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199050} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199050} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 2181, "completion_tokens": 48, "total_tokens": 2229, "cost": 0.007263, "total_cost": 0.007263, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199056} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199075} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199075} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 2181, "completion_tokens": 49, "total_tokens": 2230, "cost": 0.007278, "total_cost": 0.007278, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199083} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199105} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199126} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199126} +{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199233} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 28023, "completion_tokens": 514, "total_tokens": 28537, "cost": 0.091779, "total_cost": 0.145875, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199292} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 28565, "completion_tokens": 570, "total_tokens": 29135, "cost": 0.09424500000000001, "total_cost": 0.24012, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199318} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199410} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199410} +{"event": "command_run", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199412} +{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199416} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 29119, "completion_tokens": 268, "total_tokens": 29387, "cost": 0.091377, "total_cost": 0.331497, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199448} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199454} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199454} +{"event": "command_run", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199458} +{"event": "command_run", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199462} +{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199469} From 2e4cf48e7e06fa953c330f26d755055965d879ae Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Thu, 21 Nov 2024 06:36:05 -0800 Subject: [PATCH 181/407] test: Update cmd_run test to check cur_messages instead of return value --- tests/basic/test_commands.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/basic/test_commands.py b/tests/basic/test_commands.py index be92049db..726235d7e 100644 --- a/tests/basic/test_commands.py +++ b/tests/basic/test_commands.py @@ -1068,8 +1068,10 @@ class TestCommands(TestCase): io.prompt_ask = lambda *args, **kwargs: "y" # Test the cmd_run method with a command that should not raise an error - result = commands.cmd_run("exit 1", add_on_nonzero_exit=True) - self.assertIn("I ran this command", result) + commands.cmd_run("exit 1", add_on_nonzero_exit=True) + + # Check that the output was added to cur_messages + self.assertTrue(any("exit 1" in msg["content"] for msg in coder.cur_messages)) def test_cmd_add_drop_untracked_files(self): with GitTemporaryDirectory(): From 9a7bdcb6db582286c3a37f71791b47b0a2fcb460 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Thu, 21 Nov 2024 06:36:11 -0800 Subject: [PATCH 182/407] style: Fix linter warnings in test_commands.py --- tests/basic/test_commands.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/basic/test_commands.py b/tests/basic/test_commands.py index 726235d7e..b4b0e304d 100644 --- a/tests/basic/test_commands.py +++ b/tests/basic/test_commands.py @@ -1069,7 +1069,7 @@ class TestCommands(TestCase): # Test the cmd_run method with a command that should not raise an error commands.cmd_run("exit 1", add_on_nonzero_exit=True) - + # Check that the output was added to cur_messages self.assertTrue(any("exit 1" in msg["content"] for msg in coder.cur_messages)) From 72d559a92cae358e93f528171f0f0af16496d1c6 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Thu, 21 Nov 2024 06:39:39 -0800 Subject: [PATCH 183/407] fix: Remove duplicate assert_newlines call on original lines --- aider/diffs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aider/diffs.py b/aider/diffs.py index 784745688..98185e0fe 100644 --- a/aider/diffs.py +++ b/aider/diffs.py @@ -51,7 +51,7 @@ def diff_partial_update(lines_orig, lines_updated, final=False, fname=None): # dump(lines_updated) assert_newlines(lines_orig) - assert_newlines(lines_orig) + assert_newlines(lines_updated) num_orig_lines = len(lines_orig) From b96b36d5eab138eb1ed094718307c2ff3f67b0cf Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Thu, 21 Nov 2024 06:42:04 -0800 Subject: [PATCH 184/407] refactor: Remove unnecessary assert_newlines check for updated lines --- aider/diffs.py | 1 - 1 file changed, 1 deletion(-) diff --git a/aider/diffs.py b/aider/diffs.py index 98185e0fe..46266ac67 100644 --- a/aider/diffs.py +++ b/aider/diffs.py @@ -51,7 +51,6 @@ def diff_partial_update(lines_orig, lines_updated, final=False, fname=None): # dump(lines_updated) assert_newlines(lines_orig) - assert_newlines(lines_updated) num_orig_lines = len(lines_orig) From d4e77b3be4945d7e31bf681d5d3665500f2ca71b Mon Sep 17 00:00:00 2001 From: Chad Phillips Date: Thu, 21 Nov 2024 09:43:39 -0500 Subject: [PATCH 185/407] add documentation for /editor configuration --- aider/website/_includes/multi-line.md | 2 +- aider/website/docs/config/editor.md | 121 ++++++++++++++++++++++++++ aider/website/docs/usage/commands.md | 2 +- 3 files changed, 123 insertions(+), 2 deletions(-) create mode 100644 aider/website/docs/config/editor.md diff --git a/aider/website/_includes/multi-line.md b/aider/website/_includes/multi-line.md index 116bfc257..ff5c707c4 100644 --- a/aider/website/_includes/multi-line.md +++ b/aider/website/_includes/multi-line.md @@ -4,7 +4,7 @@ You can send long, multi-line messages in the chat in a few ways: - Enter `{tag` (where "tag" is any sequence of letters/numbers) and end with `tag}`. This is useful when you need to include closing braces `}` in your message. - Use Meta-ENTER to start a new line without sending the message (Esc+ENTER in some environments). - Use `/paste` to paste text from the clipboard into the chat. - - Use the `/editor` command to open your editor to create the next chat message. + - Use the `/editor` command to open your editor to create the next chat message. *(see [Editor configuration](/docs/config/editor.html)) to customize the editor* Example with a tag: ``` diff --git a/aider/website/docs/config/editor.md b/aider/website/docs/config/editor.md new file mode 100644 index 000000000..f36d6aabe --- /dev/null +++ b/aider/website/docs/config/editor.md @@ -0,0 +1,121 @@ +--- +parent: Configuration +nav_order: 15 +description: How to configure a custom editor for aider's /editor command +--- + +# Editor configuration + +Aider allows you to configure your preferred text editor for use with the `/editor` command. The editor must be capable of running in "blocking mode", meaning the command line will wait until you close the editor before proceeding. + +## Environment variables + +Aider checks the following environment variables in order to determine which editor to use: + +1. `AIDER_EDITOR` +2. `VISUAL` +3. `EDITOR` + +## Default behavior + +If no editor is configured, aider will use these platform-specific defaults: + +- Windows: `notepad` +- macOS: `vim` +- Linux/Unix: `vi` + +## Using a custom editor + +You can set your preferred editor in your shell's configuration file (e.g., `.bashrc`, `.zshrc`): + +```bash +export AIDER_EDITOR=vim +``` + +## Popular Editors by Platform + +### macOS + +1. **vim** + ```bash + export AIDER_EDITOR=vim + ``` + +2. **Emacs** + ```bash + export AIDER_EDITOR=emacs + ``` + +3. **VSCode** + ```bash + export AIDER_EDITOR="code --wait" + ``` + +4. **Sublime Text** + ```bash + export AIDER_EDITOR="subl --wait" + ``` + +5. **BBEdit** + ```bash + export AIDER_EDITOR="bbedit --wait" + ``` + +### Linux + +1. **vim** + ```bash + export AIDER_EDITOR=vim + ``` + +2. **Emacs** + ```bash + export AIDER_EDITOR=emacs + ``` + +3. **nano** + ```bash + export AIDER_EDITOR=nano + ``` + +4. **VSCode** + ```bash + export AIDER_EDITOR="code --wait" + ``` + +5. **Sublime Text** + ```bash + export AIDER_EDITOR="subl --wait" + ``` + +### Windows + +1. **Notepad** + ```bat + set AIDER_EDITOR=notepad + ``` + +2. **VSCode** + ```bat + set AIDER_EDITOR="code --wait" + ``` + +3. **Notepad++** + ```bat + set AIDER_EDITOR="notepad++ -multiInst -notabbar -nosession -noPlugin -waitForClose" + ``` + +## Editor command arguments + +Some editors require specific command-line arguments to operate in blocking mode. The `--wait` flag (or equivalent) is commonly used to make the editor block until the file is closed. + +## Troubleshooting + +If you encounter issues with your editor not blocking (returning to the prompt immediately), verify that: + +1. Your editor supports blocking mode +2. You've included the necessary command-line arguments for blocking mode +3. The editor command is properly quoted if it contains spaces or special characters, e.g.: + ```bash + export AIDER_EDITOR="code --wait" + ``` diff --git a/aider/website/docs/usage/commands.md b/aider/website/docs/usage/commands.md index 344d45136..fc60deffc 100644 --- a/aider/website/docs/usage/commands.md +++ b/aider/website/docs/usage/commands.md @@ -24,7 +24,7 @@ cog.out(get_help_md()) | **/copy** | Copy the last assistant message to the clipboard | | **/diff** | Display the diff of changes since the last message | | **/drop** | Remove files from the chat session to free up context space | -| **/editor** | Open an editor to write a prompt | +| **/editor** | Open an editor to write a prompt *(see [Editor configuration](/docs/config/editor.html)) to customize the editor* | | **/exit** | Exit the application | | **/git** | Run a git command (output excluded from chat) | | **/help** | Ask questions about aider | From 1b9073b0858ca08ffea26fcd67c83ac88f4aad97 Mon Sep 17 00:00:00 2001 From: caetanominuzzo Date: Thu, 21 Nov 2024 14:19:39 -0300 Subject: [PATCH 186/407] fix: Correct typo in base_coder by removing duplicate 'in' This corrects a grammatical error in the system prompt within `base_coder.py`. The `language` variable was previously set as: language = "in the same language they are using" Which resulted in the prompt: "Always reply to the user IN IN the same language they are using." --- aider/coders/base_coder.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aider/coders/base_coder.py b/aider/coders/base_coder.py index df2813103..66af812d9 100755 --- a/aider/coders/base_coder.py +++ b/aider/coders/base_coder.py @@ -962,7 +962,7 @@ class Coder: if self.chat_language: language = self.chat_language else: - language = "in the same language they are using" + language = "the same language they are using" prompt = prompt.format( fence=self.fence, From 2a387707ef44166f6c2efe60682161b6fb1d88c1 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Thu, 21 Nov 2024 09:52:14 -0800 Subject: [PATCH 187/407] feat: Add --editor switch to specify editor for /editor command --- aider/args.py | 4 ++++ aider/commands.py | 13 +++++++++++-- aider/main.py | 8 +++++++- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/aider/args.py b/aider/args.py index ec2545c8c..0ea85182f 100644 --- a/aider/args.py +++ b/aider/args.py @@ -738,6 +738,10 @@ def get_parser(default_config_files, git_root): default=True, help="Enable/disable fancy input with history and completion (default: True)", ) + group.add_argument( + "--editor", + help="Specify which editor to use for the /editor command", + ) ########## group = parser.add_argument_group("Voice Settings") diff --git a/aider/commands.py b/aider/commands.py index f846179e0..401baebe1 100644 --- a/aider/commands.py +++ b/aider/commands.py @@ -46,7 +46,15 @@ class Commands: ) def __init__( - self, io, coder, voice_language=None, verify_ssl=True, args=None, parser=None, verbose=False + self, + io, + coder, + voice_language=None, + verify_ssl=True, + args=None, + parser=None, + verbose=False, + editor=None, ): self.io = io self.coder = coder @@ -61,6 +69,7 @@ class Commands: self.voice_language = voice_language self.help = None + self.editor = editor def cmd_model(self, args): "Switch to a new LLM" @@ -1355,7 +1364,7 @@ class Commands: def cmd_editor(self, initial_content=""): "Open an editor to write a prompt" - user_input = pipe_editor(initial_content, suffix="md") + user_input = pipe_editor(initial_content, suffix="md", editor=self.editor) self.io.user_input(user_input, log_only=False) self.io.add_to_input_history(user_input) return user_input diff --git a/aider/main.py b/aider/main.py index d38f3cc20..4c9206419 100644 --- a/aider/main.py +++ b/aider/main.py @@ -689,7 +689,13 @@ def main(argv=None, input=None, output=None, force_git_root=None, return_coder=F return 1 commands = Commands( - io, None, verify_ssl=args.verify_ssl, args=args, parser=parser, verbose=args.verbose + io, + None, + verify_ssl=args.verify_ssl, + args=args, + parser=parser, + verbose=args.verbose, + editor=args.editor, ) summarizer = ChatSummary( From 2a1d2ef294975e68a023b6be43e772471012d7f1 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Thu, 21 Nov 2024 09:55:15 -0800 Subject: [PATCH 188/407] refactor: Update editor discovery to support custom editor and remove AIDER_EDITOR --- aider/editor.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/aider/editor.py b/aider/editor.py index fcfdae2d9..4711eecfd 100644 --- a/aider/editor.py +++ b/aider/editor.py @@ -73,7 +73,6 @@ def get_environment_editor(default=None): This function checks the following environment variables in order to determine the user's preferred editor: - - AIDER_EDITOR - VISUAL - EDITOR @@ -82,13 +81,11 @@ def get_environment_editor(default=None): :return: The preferred editor as specified by environment variables or the default value. :rtype: str or None """ - editor = os.environ.get( - "AIDER_EDITOR", os.environ.get("VISUAL", os.environ.get("EDITOR", default)) - ) + editor = os.environ.get("VISUAL", os.environ.get("EDITOR", default)) return editor -def discover_editor(): +def discover_editor(editor_override=None): """ Discovers and returns the appropriate editor command as a list of arguments. @@ -105,7 +102,10 @@ def discover_editor(): default_editor = DEFAULT_EDITOR_OS_X else: default_editor = DEFAULT_EDITOR_NIX - editor = get_environment_editor(default_editor) + if editor_override: + editor = editor_override + else: + editor = get_environment_editor(default_editor) try: return shlex.split(editor) except ValueError as e: @@ -127,7 +127,7 @@ def file_editor(filepath): subprocess.call(command_parts) -def pipe_editor(input_data="", suffix=None): +def pipe_editor(input_data="", suffix=None, editor=None): """ Opens the system editor with optional input data and returns the edited content. @@ -143,7 +143,9 @@ def pipe_editor(input_data="", suffix=None): :rtype: str """ filepath = write_temp_file(input_data, suffix) - file_editor(filepath) + command_parts = discover_editor(editor) + command_parts.append(filepath) + subprocess.call(command_parts) with open(filepath, "r") as f: output_data = f.read() try: From 87654b698b9588f52c956829786a2c0288b46590 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Thu, 21 Nov 2024 09:58:35 -0800 Subject: [PATCH 189/407] test: Update tests for editor functionality changes --- tests/basic/test_editor.py | 50 ++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/tests/basic/test_editor.py b/tests/basic/test_editor.py index 186c6d892..fe28bf61e 100644 --- a/tests/basic/test_editor.py +++ b/tests/basic/test_editor.py @@ -29,12 +29,9 @@ def test_get_environment_editor(): with patch.dict(os.environ, {"EDITOR": "vim", "VISUAL": "code"}): assert get_environment_editor() == "code" - # Test AIDER_EDITOR overrides all - with patch.dict(os.environ, {"EDITOR": "vim", "VISUAL": "code", "AIDER_EDITOR": "emacs"}): - assert get_environment_editor() == "emacs" -def test_discover_editor(): +def test_discover_editor_defaults(): with patch("platform.system") as mock_system: # Test Windows default mock_system.return_value = "Windows" @@ -51,14 +48,6 @@ def test_discover_editor(): with patch.dict(os.environ, {}, clear=True): assert discover_editor() == [DEFAULT_EDITOR_NIX] - # Test editor with arguments - with patch.dict(os.environ, {"EDITOR": 'vim -c "set noswapfile"'}): - assert discover_editor() == ["vim", "-c", "set noswapfile"] - - # Test invalid editor command - with patch.dict(os.environ, {"EDITOR": 'vim "unclosed quote'}): - with pytest.raises(RuntimeError): - discover_editor() def test_write_temp_file(): @@ -93,15 +82,18 @@ def test_print_status_message(capsys): assert "Failed!" in captured.out -@patch("subprocess.call") -def test_file_editor(mock_call): - # Test basic editor call - with patch.dict(os.environ, {"EDITOR": "vim"}): - file_editor("test.txt") - mock_call.assert_called_once_with(["vim", "test.txt"]) +def test_discover_editor_override(): + # Test editor override + assert discover_editor("code") == ["code"] + assert discover_editor('vim -c "set noswapfile"') == ["vim", "-c", "set noswapfile"] + + # Test invalid editor command + with pytest.raises(RuntimeError): + discover_editor('vim "unclosed quote') def test_pipe_editor(): + # Test with default editor test_content = "Initial content" modified_content = "Modified content" @@ -118,12 +110,22 @@ def test_pipe_editor(): mock_file.__enter__.return_value.read.return_value = modified_content mock_open.return_value = mock_file - # Test successful edit - result = pipe_editor(test_content) - assert result == modified_content - mock_write.assert_called_once_with(test_content, None) - mock_editor.assert_called_once_with("temp.txt") - mock_remove.assert_called_once_with("temp.txt") + with patch("subprocess.call") as mock_subprocess: + # Test with default editor + result = pipe_editor(test_content) + assert result == modified_content + mock_write.assert_called_with(test_content, None) + mock_subprocess.assert_called() + + # Test with custom editor + result = pipe_editor(test_content, editor="code") + assert result == modified_content + mock_subprocess.assert_called() + + # Test with suffix + result = pipe_editor(test_content, suffix="md") + assert result == modified_content + mock_write.assert_called_with(test_content, "md") # Test cleanup on permission error mock_remove.side_effect = PermissionError From 5abadc31a31055b11dafeba7f2bc8b24b4489705 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Thu, 21 Nov 2024 09:58:39 -0800 Subject: [PATCH 190/407] style: Remove extra blank lines in test_editor.py --- tests/basic/test_editor.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/basic/test_editor.py b/tests/basic/test_editor.py index fe28bf61e..89fc775aa 100644 --- a/tests/basic/test_editor.py +++ b/tests/basic/test_editor.py @@ -30,7 +30,6 @@ def test_get_environment_editor(): assert get_environment_editor() == "code" - def test_discover_editor_defaults(): with patch("platform.system") as mock_system: # Test Windows default @@ -49,7 +48,6 @@ def test_discover_editor_defaults(): assert discover_editor() == [DEFAULT_EDITOR_NIX] - def test_write_temp_file(): # Test basic file creation content = "test content" From cd81c2619b775823f01a0056603d5772168c90ea Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Thu, 21 Nov 2024 09:58:53 -0800 Subject: [PATCH 191/407] refactor: Remove unused file_editor import and mock in test_editor.py --- tests/basic/test_editor.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/basic/test_editor.py b/tests/basic/test_editor.py index 89fc775aa..6af973bf6 100644 --- a/tests/basic/test_editor.py +++ b/tests/basic/test_editor.py @@ -8,7 +8,6 @@ from aider.editor import ( DEFAULT_EDITOR_OS_X, DEFAULT_EDITOR_WINDOWS, discover_editor, - file_editor, get_environment_editor, pipe_editor, print_status_message, @@ -98,7 +97,6 @@ def test_pipe_editor(): # Mock the file operations and editor call with ( patch("aider.editor.write_temp_file") as mock_write, - patch("aider.editor.file_editor") as mock_editor, patch("builtins.open") as mock_open, patch("os.remove") as mock_remove, ): From a43772b21d428235d3849a54b5ea942ca9dd0004 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Thu, 21 Nov 2024 10:01:08 -0800 Subject: [PATCH 192/407] refactor: Remove unused file_editor function from editor module --- aider/editor.py | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/aider/editor.py b/aider/editor.py index 4711eecfd..14473e5d2 100644 --- a/aider/editor.py +++ b/aider/editor.py @@ -112,21 +112,6 @@ def discover_editor(editor_override=None): raise RuntimeError(f"Invalid editor command format '{editor}': {e}") -def file_editor(filepath): - """ - Open the specified file in the system's configured editor. - - This function blocks until the editor is closed. - - :param filepath: Path to the file to edit - :type filepath: str - :raises RuntimeError: If the editor command is invalid - """ - command_parts = discover_editor() - command_parts.append(filepath) - subprocess.call(command_parts) - - def pipe_editor(input_data="", suffix=None, editor=None): """ Opens the system editor with optional input data and returns the edited content. From 0ec16d0eab867167d3ef8916e660759dc920138c Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Thu, 21 Nov 2024 10:07:01 -0800 Subject: [PATCH 193/407] copy --- aider/website/_includes/multi-line.md | 2 +- aider/website/assets/sample-analytics.jsonl | 80 ++++++++++----------- aider/website/assets/sample.aider.conf.yml | 3 + aider/website/assets/sample.env | 3 + aider/website/docs/config/aider_conf.md | 3 + aider/website/docs/config/dotenv.md | 3 + aider/website/docs/config/editor.md | 6 ++ aider/website/docs/config/options.md | 8 ++- aider/website/docs/usage/commands.md | 2 +- 9 files changed, 66 insertions(+), 44 deletions(-) diff --git a/aider/website/_includes/multi-line.md b/aider/website/_includes/multi-line.md index ff5c707c4..a3c224603 100644 --- a/aider/website/_includes/multi-line.md +++ b/aider/website/_includes/multi-line.md @@ -4,7 +4,7 @@ You can send long, multi-line messages in the chat in a few ways: - Enter `{tag` (where "tag" is any sequence of letters/numbers) and end with `tag}`. This is useful when you need to include closing braces `}` in your message. - Use Meta-ENTER to start a new line without sending the message (Esc+ENTER in some environments). - Use `/paste` to paste text from the clipboard into the chat. - - Use the `/editor` command to open your editor to create the next chat message. *(see [Editor configuration](/docs/config/editor.html)) to customize the editor* + - Use the `/editor` command to open your editor to create the next chat message. See [editor configuration docs](/docs/config/editor.html) for more info. Example with a tag: ``` diff --git a/aider/website/assets/sample-analytics.jsonl b/aider/website/assets/sample-analytics.jsonl index 84570ebd8..d7bf0b5b9 100644 --- a/aider/website/assets/sample-analytics.jsonl +++ b/aider/website/assets/sample-analytics.jsonl @@ -1,43 +1,3 @@ -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "ask", "prompt_tokens": 7163, "completion_tokens": 149, "total_tokens": 7312, "cost": 0.023724000000000002, "total_cost": 0.500796, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731008071} -{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731008091} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731008122} -{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731008124} -{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731008125} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731008135} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731008162} -{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731008163} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731008178} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731008738} -{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731008738} -{"event": "command_reset", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731008808} -{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731008815} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 4879, "completion_tokens": 279, "total_tokens": 5158, "cost": 0.018822000000000002, "total_cost": 0.519618, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731008851} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731008891} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731008957} -{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731008958} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731009346} -{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731009347} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731009380} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731009498} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731009531} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 5022, "completion_tokens": 98, "total_tokens": 5120, "cost": 0.016536, "total_cost": 0.016536, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731009544} -{"event": "command_reset", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731009984} -{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731010753} -{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731010767} -{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731010772} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 3609, "completion_tokens": 66, "total_tokens": 3675, "cost": 0.011817, "total_cost": 0.531435, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731010780} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 3798, "completion_tokens": 58, "total_tokens": 3856, "cost": 0.012263999999999999, "total_cost": 0.543699, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731010783} -{"event": "command_map-refresh", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731012301} -{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 4349, "completion_tokens": 215, "total_tokens": 4564, "cost": 0.016272, "total_cost": 0.559971, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.1.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731012326} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731012382} -{"event": "model warning", "properties": {"main_model": "claude-3-5-haiku-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-haiku-20241022", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731012382} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731012391} -{"event": "cli session", "properties": {"main_model": "claude-3-5-haiku-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-haiku-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731012392} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731012437} -{"event": "cli session", "properties": {"main_model": "claude-3-5-haiku-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-haiku-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731012437} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731012462} -{"event": "cli session", "properties": {"main_model": "claude-3-5-haiku-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-haiku-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731012462} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731012492} {"event": "cli session", "properties": {"main_model": "claude-3-5-haiku-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-haiku-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731012493} {"event": "message_send", "properties": {"main_model": "claude-3-5-haiku-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-haiku-20241022", "edit_format": "diff", "prompt_tokens": 2175, "completion_tokens": 0, "total_tokens": 2175, "cost": 0.002175, "total_cost": 0.002175, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731012494} {"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.62.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1731012809} @@ -998,3 +958,43 @@ {"event": "command_run", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199458} {"event": "command_run", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199462} {"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199469} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199695} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199696} +{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199705} +{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199733} +{"event": "command_editor", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199741} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 26376, "completion_tokens": 218, "total_tokens": 26594, "cost": 0.082398, "total_cost": 0.082398, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199763} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199834} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199835} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199976} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199987} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199988} +{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732199992} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 4242, "completion_tokens": 265, "total_tokens": 4507, "cost": 0.016701, "total_cost": 0.016701, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732200023} +{"event": "command_undo", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732200038} +{"event": "command_undo", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732200044} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732200118} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732211452} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732211452} +{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732211464} +{"event": "command_drop", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732211491} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 25786, "completion_tokens": 511, "total_tokens": 26297, "cost": 0.085023, "total_cost": 0.085023, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732211532} +{"event": "command_drop", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732211626} +{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732211631} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 5006, "completion_tokens": 583, "total_tokens": 5589, "cost": 0.023763, "total_cost": 0.108786, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732211713} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732211822} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732211823} +{"event": "command_editor", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732211827} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 4652, "completion_tokens": 89, "total_tokens": 4741, "cost": 0.015290999999999999, "total_cost": 0.015290999999999999, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732211831} +{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732211837} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732211841} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732211841} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732211845} +{"event": "cli session", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732211845} +{"event": "command_editor", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732211848} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 2179, "completion_tokens": 79, "total_tokens": 2258, "cost": 0.0077220000000000006, "total_cost": 0.0077220000000000006, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732211854} +{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732211856} +{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732211888} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 6457, "completion_tokens": 847, "total_tokens": 7304, "cost": 0.032076, "total_cost": 0.140862, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732211913} +{"event": "message_send", "properties": {"main_model": "claude-3-5-sonnet-20241022", "weak_model": "claude-3-5-haiku-20241022", "editor_model": "claude-3-5-sonnet-20241022", "edit_format": "diff", "prompt_tokens": 7452, "completion_tokens": 292, "total_tokens": 7744, "cost": 0.026736000000000003, "total_cost": 0.167598, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732211931} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.63.3.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732212065} diff --git a/aider/website/assets/sample.aider.conf.yml b/aider/website/assets/sample.aider.conf.yml index 01956252f..38fc80f6d 100644 --- a/aider/website/assets/sample.aider.conf.yml +++ b/aider/website/assets/sample.aider.conf.yml @@ -368,6 +368,9 @@ ## Enable/disable fancy input with history and completion (default: True) #fancy-input: true +## Specify which editor to use for the /editor command +#editor: xxx + ################# # Voice Settings: diff --git a/aider/website/assets/sample.env b/aider/website/assets/sample.env index 5c10ea14f..5e94af939 100644 --- a/aider/website/assets/sample.env +++ b/aider/website/assets/sample.env @@ -351,6 +351,9 @@ ## Enable/disable fancy input with history and completion (default: True) #AIDER_FANCY_INPUT=true +## Specify which editor to use for the /editor command +#AIDER_EDITOR= + ################# # Voice Settings: diff --git a/aider/website/docs/config/aider_conf.md b/aider/website/docs/config/aider_conf.md index a6bc78fcc..d5c4373c9 100644 --- a/aider/website/docs/config/aider_conf.md +++ b/aider/website/docs/config/aider_conf.md @@ -424,6 +424,9 @@ cog.outl("```") ## Enable/disable fancy input with history and completion (default: True) #fancy-input: true +## Specify which editor to use for the /editor command +#editor: xxx + ################# # Voice Settings: diff --git a/aider/website/docs/config/dotenv.md b/aider/website/docs/config/dotenv.md index b484ebc72..704c1eceb 100644 --- a/aider/website/docs/config/dotenv.md +++ b/aider/website/docs/config/dotenv.md @@ -393,6 +393,9 @@ cog.outl("```") ## Enable/disable fancy input with history and completion (default: True) #AIDER_FANCY_INPUT=true +## Specify which editor to use for the /editor command +#AIDER_EDITOR= + ################# # Voice Settings: diff --git a/aider/website/docs/config/editor.md b/aider/website/docs/config/editor.md index f36d6aabe..b09985c4e 100644 --- a/aider/website/docs/config/editor.md +++ b/aider/website/docs/config/editor.md @@ -8,6 +8,12 @@ description: How to configure a custom editor for aider's /editor command Aider allows you to configure your preferred text editor for use with the `/editor` command. The editor must be capable of running in "blocking mode", meaning the command line will wait until you close the editor before proceeding. +## Using `--editor` + +You can specify the text editor with the `--editor` switch or using +`editor:` in aider's +[yaml config file](https://aider.chat/docs/config/aider_conf.html). + ## Environment variables Aider checks the following environment variables in order to determine which editor to use: diff --git a/aider/website/docs/config/options.md b/aider/website/docs/config/options.md index fd4eef894..40fa85cba 100644 --- a/aider/website/docs/config/options.md +++ b/aider/website/docs/config/options.md @@ -73,8 +73,8 @@ usage: aider [-h] [--openai-api-key] [--anthropic-api-key] [--model] [--message-file] [--load] [--encoding] [-c] [--gui | --no-gui | --browser | --no-browser] [--suggest-shell-commands | --no-suggest-shell-commands] - [--fancy-input | --no-fancy-input] [--voice-format] - [--voice-language] + [--fancy-input | --no-fancy-input] [--editor] + [--voice-format] [--voice-language] ``` @@ -673,6 +673,10 @@ Aliases: - `--fancy-input` - `--no-fancy-input` +### `--editor VALUE` +Specify which editor to use for the /editor command +Environment variable: `AIDER_EDITOR` + ## Voice Settings: ### `--voice-format VOICE_FORMAT` diff --git a/aider/website/docs/usage/commands.md b/aider/website/docs/usage/commands.md index fc60deffc..344d45136 100644 --- a/aider/website/docs/usage/commands.md +++ b/aider/website/docs/usage/commands.md @@ -24,7 +24,7 @@ cog.out(get_help_md()) | **/copy** | Copy the last assistant message to the clipboard | | **/diff** | Display the diff of changes since the last message | | **/drop** | Remove files from the chat session to free up context space | -| **/editor** | Open an editor to write a prompt *(see [Editor configuration](/docs/config/editor.html)) to customize the editor* | +| **/editor** | Open an editor to write a prompt | | **/exit** | Exit the application | | **/git** | Run a git command (output excluded from chat) | | **/help** | Ask questions about aider | From d6ebdff28fa949c2f443bba2699401710e3ee581 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Thu, 21 Nov 2024 10:07:53 -0800 Subject: [PATCH 194/407] copy --- HISTORY.md | 2 +- aider/website/HISTORY.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/HISTORY.md b/HISTORY.md index 311e8bdda..37458038d 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -16,7 +16,7 @@ - Added `--show-release-notes` to control release notes display on first run of new version. - Save empty dict to cache file on model metadata download failure, to delay retry. - Improved error handling and code formatting. -- Aider wrote 63% of the code in this release. +- Aider wrote 66% of the code in this release. ### Aider v0.63.2 diff --git a/aider/website/HISTORY.md b/aider/website/HISTORY.md index 01afd21a6..324be4bbb 100644 --- a/aider/website/HISTORY.md +++ b/aider/website/HISTORY.md @@ -40,7 +40,7 @@ cog.out(text) - Added `--show-release-notes` to control release notes display on first run of new version. - Save empty dict to cache file on model metadata download failure, to delay retry. - Improved error handling and code formatting. -- Aider wrote 63% of the code in this release. +- Aider wrote 66% of the code in this release. ### Aider v0.63.2 From 59d0fe00c3241b74610af59e5f1b82721191ed67 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Thu, 21 Nov 2024 10:09:36 -0800 Subject: [PATCH 195/407] refactor: Improve multi-line input handling with strict closing tag validation --- aider/io.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/aider/io.py b/aider/io.py index 0967b0da7..625ee42dd 100644 --- a/aider/io.py +++ b/aider/io.py @@ -452,17 +452,18 @@ class InputOutput: multiline_tag = None inp += line[1:] + "\n" continue - elif line and line[-1] == "}" and multiline_input: + elif multiline_input and line.strip(): if multiline_tag: - # Check if the line ends with tag} - if line.endswith(f"{multiline_tag}}}"): - inp += line[: -len(multiline_tag) - 1] + "\n" + # Check if line is exactly "tag}" + if line.strip() == f"{multiline_tag}}}": break else: inp += line + "\n" - else: - inp += line[:-1] + "\n" + # Check if line is exactly "}" + elif line.strip() == "}": break + else: + inp += line + "\n" elif multiline_input: inp += line + "\n" else: From 614d297f2294e4a3339c74cefd59a948af0e873f Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Thu, 21 Nov 2024 10:10:14 -0800 Subject: [PATCH 196/407] fix: Use `strip("\r\n")` for precise line ending removal --- aider/io.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/aider/io.py b/aider/io.py index 625ee42dd..fbe4c2de6 100644 --- a/aider/io.py +++ b/aider/io.py @@ -455,12 +455,12 @@ class InputOutput: elif multiline_input and line.strip(): if multiline_tag: # Check if line is exactly "tag}" - if line.strip() == f"{multiline_tag}}}": + if line.strip("\r\n") == f"{multiline_tag}}}": break else: inp += line + "\n" # Check if line is exactly "}" - elif line.strip() == "}": + elif line.strip("\r\n") == "}": break else: inp += line + "\n" From 347b299bbc88e374923127d3890fa06ed422335f Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Thu, 21 Nov 2024 10:10:45 -0800 Subject: [PATCH 197/407] refactor: Enforce strict parsing of multiline input start with `{` or `{tag}` --- aider/io.py | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/aider/io.py b/aider/io.py index fbe4c2de6..9510bedb5 100644 --- a/aider/io.py +++ b/aider/io.py @@ -441,16 +441,25 @@ class InputOutput: self.tool_error(str(err)) return "" - if line and line[0] == "{" and not multiline_input: - multiline_input = True - # Check for optional tag after opening { - if len(line) > 1: - tag = "".join(c for c in line[1:] if c.isalnum()) - multiline_tag = tag - inp += line[len(tag) + 1 :] + "\n" - else: + if line.strip("\r\n") and not multiline_input: + stripped = line.strip("\r\n") + if stripped == "{": + multiline_input = True multiline_tag = None - inp += line[1:] + "\n" + inp += "" + elif stripped[0] == "{": + # Extract tag if it exists (only alphanumeric chars) + tag = "".join(c for c in stripped[1:] if c.isalnum()) + if stripped == "{" + tag: + multiline_input = True + multiline_tag = tag + inp += "" + else: + inp = line + break + else: + inp = line + break continue elif multiline_input and line.strip(): if multiline_tag: From 6f4ed00105b2170a3af331e6a7bb52c72d0e4318 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Thu, 21 Nov 2024 10:15:28 -0800 Subject: [PATCH 198/407] copy --- aider/website/_includes/multi-line.md | 2 +- aider/website/docs/usage/commands.md | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/aider/website/_includes/multi-line.md b/aider/website/_includes/multi-line.md index a3c224603..15de04da9 100644 --- a/aider/website/_includes/multi-line.md +++ b/aider/website/_includes/multi-line.md @@ -1,7 +1,7 @@ You can send long, multi-line messages in the chat in a few ways: - Paste a multi-line message directly into the chat. - Enter `{` alone on the first line to start a multiline message and `}` alone on the last line to end it. - - Enter `{tag` (where "tag" is any sequence of letters/numbers) and end with `tag}`. This is useful when you need to include closing braces `}` in your message. + - Or, start with `{tag` (where "tag" is any sequence of letters/numbers) and end with `tag}`. This is useful when you need to include closing braces `}` in your message. - Use Meta-ENTER to start a new line without sending the message (Esc+ENTER in some environments). - Use `/paste` to paste text from the clipboard into the chat. - Use the `/editor` command to open your editor to create the next chat message. See [editor configuration docs](/docs/config/editor.html) for more info. diff --git a/aider/website/docs/usage/commands.md b/aider/website/docs/usage/commands.md index 344d45136..8f445afb9 100644 --- a/aider/website/docs/usage/commands.md +++ b/aider/website/docs/usage/commands.md @@ -3,7 +3,14 @@ parent: Usage nav_order: 50 description: Control aider with in-chat commands like /add, /model, etc. --- + # In-chat commands +{: .no_toc } + +- TOC +{:toc} + +## Slash commands Aider supports commands from within the chat, which all start with `/`. From d7248b11e5f227871490a527cba66c373536df76 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Thu, 21 Nov 2024 10:21:39 -0800 Subject: [PATCH 199/407] feat: Add live search functionality to leaderboard tables --- aider/website/docs/leaderboards/index.md | 40 ++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/aider/website/docs/leaderboards/index.md b/aider/website/docs/leaderboards/index.md index 1593416a5..5056c8d20 100644 --- a/aider/website/docs/leaderboards/index.md +++ b/aider/website/docs/leaderboards/index.md @@ -31,6 +31,10 @@ This measures the LLM's coding ability, and whether it can write new code that integrates into existing code. The model also has to successfully apply all its changes to the source file without human intervention. + + + + @@ -132,6 +136,42 @@ The model also has to successfully apply all its changes to the source file with }); updateChart(); + // Add search functionality for edit table + document.getElementById('editSearchInput').addEventListener('keyup', function() { + var searchText = this.value.toLowerCase(); + var tableBody = document.querySelector('table:first-of-type tbody'); + var rows = tableBody.getElementsByTagName('tr'); + + for (var i = 0; i < rows.length; i++) { + var rowText = rows[i].textContent.toLowerCase(); + if (rowText.includes(searchText)) { + rows[i].style.display = ''; + } else { + rows[i].style.display = 'none'; + } + } + updateChart(); + }); + }); + + + + + The graph above compares 4 different versions of the Qwen 2.5 Coder 32B Instruct model, served both locally and from cloud providers. From a8296e5de5161b2c8f339de0acf71df8fba56d69 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Fri, 22 Nov 2024 07:29:50 -0800 Subject: [PATCH 262/407] copy --- aider/website/_data/quant.yml | 28 +++++++++++++++++-- .../website/_posts/2024-11-21-quantization.md | 21 +++++++------- 2 files changed, 37 insertions(+), 12 deletions(-) diff --git a/aider/website/_data/quant.yml b/aider/website/_data/quant.yml index 59b70c2e1..b852a1ea5 100644 --- a/aider/website/_data/quant.yml +++ b/aider/website/_data/quant.yml @@ -1,6 +1,6 @@ - dirname: 2024-11-09-11-09-15--Qwen2.5-Coder-32B-Instruct test_cases: 133 - model: HuggingFace weights via glhf.chat + model: HuggingFace BF16 via glhf.chat released: 2024-11-12 edit_format: diff commit_hash: ec9982a @@ -22,9 +22,32 @@ seconds_per_case: 22.5 total_cost: 0.0000 +- dirname: 2024-11-22-14-53-26--hyperbolic-qwen25coder32binstruct + test_cases: 133 + model: Hyperbolic Qwen2.5-Coder-32B-Instruct BF16 + edit_format: diff + commit_hash: f9ef161, 17aef7b-dirty + pass_rate_1: 57.9 + pass_rate_2: 69.2 + percent_cases_well_formed: 91.7 + error_outputs: 30 + num_malformed_responses: 29 + num_with_malformed_responses: 11 + user_asks: 9 + lazy_comments: 0 + syntax_errors: 4 + indentation_errors: 0 + exhausted_context_windows: 0 + test_timeouts: 2 + command: aider --model openai/Qwen/Qwen2.5-Coder-32B-Instruct --openai-api-base https://api.hyperbolic.xyz/v1/ + date: 2024-11-22 + versions: 0.64.2.dev + seconds_per_case: 33.2 + total_cost: 0.0000 + - dirname: 2024-11-20-15-17-37--qwen25-32b-or-diff test_cases: 133 - model: openrouter/qwen/qwen-2.5-coder-32b-instruct + model: openrouter/qwen/qwen-2.5-coder-32b-instruct (mixed quants) edit_format: diff commit_hash: e917424 pass_rate_1: 49.6 @@ -67,3 +90,4 @@ versions: 0.64.2.dev seconds_per_case: 86.7 total_cost: 0.0000 + diff --git a/aider/website/_posts/2024-11-21-quantization.md b/aider/website/_posts/2024-11-21-quantization.md index 18588e4df..087b6749c 100644 --- a/aider/website/_posts/2024-11-21-quantization.md +++ b/aider/website/_posts/2024-11-21-quantization.md @@ -24,6 +24,17 @@ and local model servers like Ollama. {% include quant-chart.js %} +The graph above compares 4 different versions of the Qwen 2.5 Coder 32B Instruct model, +served both locally and from cloud providers. + +- The [HuggingFace BF16 weights](https://huggingface.co/Qwen/Qwen2.5-Coder-32B-Instruct) served via [glhf.chat](https://glhf.chat). +- Hyperbolic labs API for [qwen2-5-coder-32b-instruct](https://app.hyperbolic.xyz/models/qwen2-5-coder-32b-instruct), which is using BF16. This result is probably within the expected variance of the HF result. +- The results from [OpenRouter's mix of providers](https://openrouter.ai/qwen/qwen-2.5-coder-32b-instruct/providers) which serve the model with different levels of quantization. +- Ollama locally serving [qwen2.5-coder:32b-instruct-q4_K_M)](https://ollama.com/library/qwen2.5-coder:32b-instruct-q4_K_M), which has `Q4_K_M` quantization. + +The best version of the model rivals GPT-4o, while the worst performer +is more like GPT-3.5 Turbo level. +
      @@ -84,16 +95,6 @@ document.getElementById('quantSearchInput').addEventListener('keyup', function() }); -The graph above compares 4 different versions of the Qwen 2.5 Coder 32B Instruct model, -served both locally and from cloud providers. - -- The [HuggingFace weights](https://huggingface.co/Qwen/Qwen2.5-Coder-32B-Instruct) served via [glhf.chat](https://glhf.chat). -- Hyperbolic labs API for [qwen2-5-coder-32b-instruct](https://app.hyperbolic.xyz/models/qwen2-5-coder-32b-instruct), which has BF16 quantization. -- The results from [OpenRouter's mix of providers](https://openrouter.ai/qwen/qwen-2.5-coder-32b-instruct/providers) which serve the model with different levels of quantization. -- Ollama locally serving [qwen2.5-coder:32b-instruct-q4_K_M)](https://ollama.com/library/qwen2.5-coder:32b-instruct-q4_K_M), which has `Q4_K_M` quantization. - -The best version of the model rivals GPT-4o, while the worst performer -is more like GPT-3.5 Turbo level. ## Choosing providers with OpenRouter From 070ce35b4450dfe92afef5ddefd38aeffdf43225 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Fri, 22 Nov 2024 07:32:00 -0800 Subject: [PATCH 263/407] copy --- aider/website/_data/quant.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aider/website/_data/quant.yml b/aider/website/_data/quant.yml index b852a1ea5..2172a87ea 100644 --- a/aider/website/_data/quant.yml +++ b/aider/website/_data/quant.yml @@ -16,7 +16,7 @@ indentation_errors: 0 exhausted_context_windows: 0 test_timeouts: 3 - command: aider --model openai/Qwen2.5-Coder-32B-Instruct + command: aider --model openai/Qwen2.5-Coder-32B-Instruct --openai-api-base https://glhf.chat/api/openai/v1 date: 2024-11-09 versions: 0.59.2.dev seconds_per_case: 22.5 From 0ccf04a2c5217881080cf69fe2f3bae3b81550ca Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Fri, 22 Nov 2024 07:32:25 -0800 Subject: [PATCH 264/407] copy --- aider/website/_data/quant.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aider/website/_data/quant.yml b/aider/website/_data/quant.yml index 2172a87ea..39e0a2558 100644 --- a/aider/website/_data/quant.yml +++ b/aider/website/_data/quant.yml @@ -16,7 +16,7 @@ indentation_errors: 0 exhausted_context_windows: 0 test_timeouts: 3 - command: aider --model openai/Qwen2.5-Coder-32B-Instruct --openai-api-base https://glhf.chat/api/openai/v1 + command: aider --model openai/hf:Qwen/Qwen2.5-Coder-32B-Instruct --openai-api-base https://glhf.chat/api/openai/v1 date: 2024-11-09 versions: 0.59.2.dev seconds_per_case: 22.5 From 6d53eb0aaa5cf069b671b90702ab05be0bfc04ae Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Fri, 22 Nov 2024 07:40:46 -0800 Subject: [PATCH 265/407] style: Increase canvas height for taller graph aspect ratio --- aider/website/_posts/2024-11-21-quantization.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aider/website/_posts/2024-11-21-quantization.md b/aider/website/_posts/2024-11-21-quantization.md index 087b6749c..a5c64948b 100644 --- a/aider/website/_posts/2024-11-21-quantization.md +++ b/aider/website/_posts/2024-11-21-quantization.md @@ -18,7 +18,7 @@ can strongly impact code editing skill. Heavily quantized models are often used by cloud API providers and local model servers like Ollama. - + +## Setting the context window size + +[Ollama uses a 2k context window by default](https://github.com/ollama/ollama/blob/main/docs/faq.md#how-can-i-specify-the-context-window-size), +which is very small for working with aider. + +You can set the Ollama server's context window with a +[`.aider.model.settings.yml` file](https://aider.chat/docs/config/adv-model-settings.html#model-settings) +like this: + +``` +- name: aider/extra_params + extra_params: + num_ctx: 65536 +``` + +That uses the special model name `aider/extra_params` to set it for *all* models. You should probably use a specific model name like: + +``` +- name: ollama/qwen2.5-coder:32b-instruct-fp16 + extra_params: + num_ctx: 65536 +``` ## Choosing providers with OpenRouter From 83d224188315617f2a83c009b643514718c7ee86 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Fri, 22 Nov 2024 16:40:47 -0800 Subject: [PATCH 274/407] copy --- aider/website/_data/quant.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aider/website/_data/quant.yml b/aider/website/_data/quant.yml index 8ebcdcd94..c84755dca 100644 --- a/aider/website/_data/quant.yml +++ b/aider/website/_data/quant.yml @@ -47,7 +47,7 @@ - dirname: 2024-11-22-17-53-35--qwen25-coder-32b-Instruct-4bit test_cases: 133 - model: mlx-community/Qwen2.5-Coder-32B-Instruct-4bit + model: mlx-community/Qwen2.5-Coder-32B-Instruct-4bit (whole) edit_format: whole commit_hash: 0ccf04a-dirty pass_rate_1: 57.1 From 307c23631ab3d2d5c8c38f8bd8fb277ea9a562c6 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Fri, 22 Nov 2024 17:20:38 -0800 Subject: [PATCH 275/407] copy --- aider/website/_data/quant.yml | 23 +++++++++++++++++++ .../website/_posts/2024-11-21-quantization.md | 7 ++++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/aider/website/_data/quant.yml b/aider/website/_data/quant.yml index c84755dca..baaefa658 100644 --- a/aider/website/_data/quant.yml +++ b/aider/website/_data/quant.yml @@ -22,6 +22,29 @@ seconds_per_case: 22.5 total_cost: 0.0000 +- dirname: 2024-11-22-18-56-13--ollama-qwen2.5-coder:32b-instruct-fp16 + test_cases: 132 + model: ollama/qwen2.5-coder:32b-instruct-fp16 (64k context) + edit_format: diff + commit_hash: f06452c-dirty, 6a0a97c-dirty, 4e9ae16-dirty, 5506d0f-dirty + pass_rate_1: 58.3 + pass_rate_2: 71.4 + percent_cases_well_formed: 90.2 + error_outputs: 27 + num_malformed_responses: 26 + num_with_malformed_responses: 13 + user_asks: 2 + lazy_comments: 0 + syntax_errors: 0 + indentation_errors: 0 + exhausted_context_windows: 0 + test_timeouts: 0 + command: aider --model ollama/qwen2.5-coder:32b-instruct-fp16 + date: 2024-11-22 + versions: 0.64.2.dev + seconds_per_case: 119.6 + total_cost: 0.0000 + - dirname: 2024-11-22-14-53-26--hyperbolic-qwen25coder32binstruct test_cases: 133 model: Hyperbolic BF16 diff --git a/aider/website/_posts/2024-11-21-quantization.md b/aider/website/_posts/2024-11-21-quantization.md index 3e4ba910c..2d8391ac5 100644 --- a/aider/website/_posts/2024-11-21-quantization.md +++ b/aider/website/_posts/2024-11-21-quantization.md @@ -18,17 +18,20 @@ can strongly impact code editing skill. Heavily quantized models are often used by cloud API providers and local model servers like Ollama. - + -The graph above compares 4 different versions of the Qwen 2.5 Coder 32B Instruct model, +The graph above compares different versions of the Qwen 2.5 Coder 32B Instruct model, served both locally and from cloud providers. - The [HuggingFace BF16 weights](https://huggingface.co/Qwen/Qwen2.5-Coder-32B-Instruct) served via [glhf.chat](https://glhf.chat). - Hyperbolic labs API for [qwen2-5-coder-32b-instruct](https://app.hyperbolic.xyz/models/qwen2-5-coder-32b-instruct), which is using BF16. This result is probably within the expected variance of the HF result. +- A [4bit quant for mlx](https://t.co/cwX3DYX35D). +This is the only model which was benchmarked using the "whole" [edit format](https://aider.chat/docs/more/edit-formats.html). +The rest were benchmarked with the much more practical and challenging "diff"edit format. - The results from [OpenRouter's mix of providers](https://openrouter.ai/qwen/qwen-2.5-coder-32b-instruct/providers) which serve the model with different levels of quantization. - Ollama locally serving [qwen2.5-coder:32b-instruct-q4_K_M)](https://ollama.com/library/qwen2.5-coder:32b-instruct-q4_K_M), which has `Q4_K_M` quantization, with Ollama's default 2k context window. From 488edc24ce7850771a34f14085d9a6220ac1a763 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Fri, 22 Nov 2024 19:42:11 -0800 Subject: [PATCH 276/407] gemini-exp-1121 --- aider/website/_data/edit_leaderboard.yml | 25 +++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/aider/website/_data/edit_leaderboard.yml b/aider/website/_data/edit_leaderboard.yml index cbf8169a1..6fb187bea 100644 --- a/aider/website/_data/edit_leaderboard.yml +++ b/aider/website/_data/edit_leaderboard.yml @@ -1898,4 +1898,27 @@ date: 2024-11-20 versions: 0.63.3.dev seconds_per_case: 40.7 - total_cost: 0.1497 \ No newline at end of file + total_cost: 0.1497 + +- dirname: 2024-11-21-17-46-36--gemini-exp-1121-diff + test_cases: 133 + model: gemini-exp-1121 + edit_format: diff + commit_hash: e94961a + pass_rate_1: 46.6 + pass_rate_2: 57.9 + percent_cases_well_formed: 83.5 + error_outputs: 101 + num_malformed_responses: 101 + num_with_malformed_responses: 22 + user_asks: 5 + lazy_comments: 0 + syntax_errors: 0 + indentation_errors: 2 + exhausted_context_windows: 0 + test_timeouts: 3 + command: aider --model gemini/gemini-exp-1121 + date: 2024-11-21 + versions: 0.63.3.dev + seconds_per_case: 60.3 + total_cost: 0.0000 \ No newline at end of file From 1234ad92e5466a728bceb643bdd1f5e2c18082c1 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Fri, 22 Nov 2024 19:43:26 -0800 Subject: [PATCH 277/407] gemini-exp-1114 --- aider/website/_data/edit_leaderboard.yml | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/aider/website/_data/edit_leaderboard.yml b/aider/website/_data/edit_leaderboard.yml index 6fb187bea..677592810 100644 --- a/aider/website/_data/edit_leaderboard.yml +++ b/aider/website/_data/edit_leaderboard.yml @@ -1921,4 +1921,26 @@ date: 2024-11-21 versions: 0.63.3.dev seconds_per_case: 60.3 - total_cost: 0.0000 \ No newline at end of file + total_cost: 0.0000 + +- dirname: 2024-11-15-20-33-31--gemini-exp-1114-diff + test_cases: 133 + model: gemini-exp-1114 + edit_format: diff + commit_hash: 0bf17a4 + pass_rate_1: 50.4 + pass_rate_2: 60.9 + percent_cases_well_formed: 85.7 + error_outputs: 70 + num_malformed_responses: 70 + num_with_malformed_responses: 19 + user_asks: 2 + lazy_comments: 0 + syntax_errors: 0 + indentation_errors: 0 + exhausted_context_windows: 0 + test_timeouts: 4 + command: aider --model gemini/gemini-exp-1114 + date: 2024-11-15 + versions: 0.63.2.dev + seconds_per_case: 38.6 \ No newline at end of file From 38a3cf98dd7f44d2c3bcbac6b25c1a3dfdfe78b1 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Fri, 22 Nov 2024 19:45:52 -0800 Subject: [PATCH 278/407] gemini --- aider/website/_data/edit_leaderboard.yml | 2 + aider/website/assets/models-over-time.png | Bin 102969 -> 105527 bytes aider/website/assets/models-over-time.svg | 357 +++++++++++++--------- 3 files changed, 211 insertions(+), 148 deletions(-) diff --git a/aider/website/_data/edit_leaderboard.yml b/aider/website/_data/edit_leaderboard.yml index 677592810..2ab3cee16 100644 --- a/aider/website/_data/edit_leaderboard.yml +++ b/aider/website/_data/edit_leaderboard.yml @@ -1903,6 +1903,7 @@ - dirname: 2024-11-21-17-46-36--gemini-exp-1121-diff test_cases: 133 model: gemini-exp-1121 + released: 2024-11-21 edit_format: diff commit_hash: e94961a pass_rate_1: 46.6 @@ -1926,6 +1927,7 @@ - dirname: 2024-11-15-20-33-31--gemini-exp-1114-diff test_cases: 133 model: gemini-exp-1114 + released: 2024-11-14 edit_format: diff commit_hash: 0bf17a4 pass_rate_1: 50.4 diff --git a/aider/website/assets/models-over-time.png b/aider/website/assets/models-over-time.png index 7cf60246cef54f742b5db0de392b447452d17e0c..36c9228bdea7fee210c204ebd044c11570d24c71 100644 GIT binary patch literal 105527 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

      J0G5W%F(vMXFl2Xv?RZg*_ij%NB?v0G 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 {H^DSrlFGyJM3E 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

      % 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 A5&!@I diff --git a/aider/website/assets/models-over-time.svg b/aider/website/assets/models-over-time.svg index b78517ae0..38c226633 100644 --- a/aider/website/assets/models-over-time.svg +++ b/aider/website/assets/models-over-time.svg @@ -6,7 +6,7 @@ - 2024-11-21T16:48:10.240884 + 2024-11-22T19:45:27.696738 image/svg+xml @@ -31,15 +31,15 @@ z - - - - - + + + + - - - - - + + + + - - - - - + + + + - - - - - - - + + + + + + - - - - - + + + + - - - - - - + + + + + - - - - + + + - - - - - + + + + - - - - + + + + + + + + + + + + - - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -559,12 +578,12 @@ z - + - + @@ -578,12 +597,12 @@ z - + - + @@ -597,12 +616,12 @@ z - + - + @@ -616,12 +635,12 @@ z - + - + @@ -634,7 +653,7 @@ z - + +L 761.849281 492.969498 +" clip-path="url(#pe22cc0aeec)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - - + @@ -916,12 +935,12 @@ L -3.5 0 +L 761.849281 415.874582 +" clip-path="url(#pe22cc0aeec)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - + @@ -935,12 +954,12 @@ L 854 415.874582 +L 761.849281 338.779666 +" clip-path="url(#pe22cc0aeec)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - + @@ -954,12 +973,12 @@ L 854 338.779666 +L 761.849281 261.684749 +" clip-path="url(#pe22cc0aeec)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - + @@ -1005,12 +1024,12 @@ z +L 761.849281 184.589833 +" clip-path="url(#pe22cc0aeec)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - + @@ -1024,12 +1043,12 @@ L 854 184.589833 +L 761.849281 107.494916 +" clip-path="url(#pe22cc0aeec)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - + @@ -1084,12 +1103,12 @@ z +L 761.849281 30.4 +" clip-path="url(#pe22cc0aeec)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - + @@ -1437,59 +1456,64 @@ z - + - + - + - + - + - + - + - + - + + + + - - + - + - + - + @@ -1701,7 +1725,7 @@ z - + - + @@ -1770,7 +1794,7 @@ z - + - + - + @@ -1844,8 +1868,45 @@ z + + + + + + + + + + + + + + + + + + + + + + + - + - + + From ca0b55fbbf73f892c0094d8104bc4bc3df445525 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sat, 23 Nov 2024 06:53:54 -0800 Subject: [PATCH 279/407] copy --- aider/website/docs/faq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aider/website/docs/faq.md b/aider/website/docs/faq.md index 868af6b19..003c61ecd 100644 --- a/aider/website/docs/faq.md +++ b/aider/website/docs/faq.md @@ -210,7 +210,7 @@ You can also refer to the ## How are the "aider wrote xx% of code" stats computed? [Aider is tightly integrated with git](/docs/git.html) so all -one of aider's code changes are committed to the repo with proper attribution. +of aider's code changes are committed to the repo with proper attribution. The [stats are computed](https://github.com/Aider-AI/aider/blob/main/scripts/blame.py) by doing something like `git blame` on the repo, From a57f81ba5f24ead33160d0a5bd9ab4c24787fbb7 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sat, 23 Nov 2024 07:02:58 -0800 Subject: [PATCH 280/407] copy --- aider/website/docs/config/adv-model-settings.md | 7 +++++++ aider/website/docs/troubleshooting/token-limits.md | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/aider/website/docs/config/adv-model-settings.md b/aider/website/docs/config/adv-model-settings.md index fdb6b9c55..31b2c21cc 100644 --- a/aider/website/docs/config/adv-model-settings.md +++ b/aider/website/docs/config/adv-model-settings.md @@ -11,6 +11,13 @@ description: Configuring advanced settings for LLMs. In most cases, you can safely ignore aider's warning about unknown context window size and model costs. +{: .note } +Aider never *enforces* token limits, it only *reports* token limit errors +from the API provider. +You probably don't need to +configure aider with the proper token limits +for unusual models. + But, you can register context window limits and costs for models that aren't known to aider. Create a `.aider.model.metadata.json` file in one of these locations: diff --git a/aider/website/docs/troubleshooting/token-limits.md b/aider/website/docs/troubleshooting/token-limits.md index 3e42f1a92..a3812475c 100644 --- a/aider/website/docs/troubleshooting/token-limits.md +++ b/aider/website/docs/troubleshooting/token-limits.md @@ -33,6 +33,13 @@ To reduce output tokens: For more info: https://aider.chat/docs/token-limits.html ``` +{: .note } +Aider never *enforces* token limits, it only *reports* token limit errors +from the API provider. +You probably don't need to +[configure aider with the proper token limits](http://0.0.0.0:4000/docs/config/adv-model-settings.html#context-window-size-and-token-costs) +for unusual models. + ## Input tokens & context window size The most common problem is trying to send too much data to a From 3a331e55dc2f8fef342d20caaa3f78c2447fcfab Mon Sep 17 00:00:00 2001 From: ivanfioravanti Date: Sat, 23 Nov 2024 17:32:08 +0100 Subject: [PATCH 281/407] mlx 4bit diff --- aider/website/_data/quant.yml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/aider/website/_data/quant.yml b/aider/website/_data/quant.yml index baaefa658..806eafa5a 100644 --- a/aider/website/_data/quant.yml +++ b/aider/website/_data/quant.yml @@ -70,25 +70,25 @@ - dirname: 2024-11-22-17-53-35--qwen25-coder-32b-Instruct-4bit test_cases: 133 - model: mlx-community/Qwen2.5-Coder-32B-Instruct-4bit (whole) - edit_format: whole - commit_hash: 0ccf04a-dirty - pass_rate_1: 57.1 - pass_rate_2: 69.2 - percent_cases_well_formed: 100.0 - error_outputs: 70 - num_malformed_responses: 0 - num_with_malformed_responses: 0 - user_asks: 0 + model: mlx-community/Qwen2.5-Coder-32B-Instruct-4bit + edit_format: diff + commit_hash: a16dcab-dirty + pass_rate_1: 60.2 + pass_rate_2: 72.2 + percent_cases_well_formed: 88.7 + error_outputs: 31 + num_malformed_responses: 30 + num_with_malformed_responses: 15 + user_asks: 6 lazy_comments: 0 syntax_errors: 0 indentation_errors: 0 - exhausted_context_windows: 0 + exhausted_context_windows: 1 test_timeouts: 0 command: aider --model openai/mlx-community/Qwen2.5-Coder-32B-Instruct-4bit - date: 2024-11-22 + date: 2024-11-23 versions: 0.64.2.dev - seconds_per_case: 173.7 + seconds_per_case: 53.4 total_cost: 0.0000 - dirname: 2024-11-20-15-17-37--qwen25-32b-or-diff From 100744a952bd61ed4bbfea4cca9994f902493b8d Mon Sep 17 00:00:00 2001 From: ivanfioravanti Date: Sat, 23 Nov 2024 17:34:01 +0100 Subject: [PATCH 282/407] Article updated to reflect change in mlx test --- aider/website/_posts/2024-11-21-quantization.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/aider/website/_posts/2024-11-21-quantization.md b/aider/website/_posts/2024-11-21-quantization.md index 2d8391ac5..3fff8dd62 100644 --- a/aider/website/_posts/2024-11-21-quantization.md +++ b/aider/website/_posts/2024-11-21-quantization.md @@ -16,7 +16,7 @@ aider's code editing benchmark, rivaling closed source frontier models. But pay attention to how your model is being quantized, as it can strongly impact code editing skill. Heavily quantized models are often used by cloud API providers -and local model servers like Ollama. +and local model servers like Ollama or MLX. @@ -29,9 +29,7 @@ served both locally and from cloud providers. - The [HuggingFace BF16 weights](https://huggingface.co/Qwen/Qwen2.5-Coder-32B-Instruct) served via [glhf.chat](https://glhf.chat). - Hyperbolic labs API for [qwen2-5-coder-32b-instruct](https://app.hyperbolic.xyz/models/qwen2-5-coder-32b-instruct), which is using BF16. This result is probably within the expected variance of the HF result. -- A [4bit quant for mlx](https://t.co/cwX3DYX35D). -This is the only model which was benchmarked using the "whole" [edit format](https://aider.chat/docs/more/edit-formats.html). -The rest were benchmarked with the much more practical and challenging "diff"edit format. +- A [4bit quant for mlx](https://t.co/cwX3DYX35D). - The results from [OpenRouter's mix of providers](https://openrouter.ai/qwen/qwen-2.5-coder-32b-instruct/providers) which serve the model with different levels of quantization. - Ollama locally serving [qwen2.5-coder:32b-instruct-q4_K_M)](https://ollama.com/library/qwen2.5-coder:32b-instruct-q4_K_M), which has `Q4_K_M` quantization, with Ollama's default 2k context window. From 6ac4993cf2a42f8756f65b38ee078dd0c71f8000 Mon Sep 17 00:00:00 2001 From: paul-gauthier <69695708+paul-gauthier@users.noreply.github.com> Date: Sat, 23 Nov 2024 09:36:26 -0800 Subject: [PATCH 283/407] Update modes.md --- aider/website/docs/usage/modes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aider/website/docs/usage/modes.md b/aider/website/docs/usage/modes.md index c68537625..8e3cf3fdd 100644 --- a/aider/website/docs/usage/modes.md +++ b/aider/website/docs/usage/modes.md @@ -1,7 +1,7 @@ --- parent: Usage nav_order: 60 -description: Using the chat, ask and help chat modes. +description: Using the code, ask and help chat modes. --- # Chat modes From 65d79576105f50a1f5558c34d0dc901147624ae9 Mon Sep 17 00:00:00 2001 From: paul-gauthier <69695708+paul-gauthier@users.noreply.github.com> Date: Sat, 23 Nov 2024 09:36:43 -0800 Subject: [PATCH 284/407] Update modes.md --- aider/website/docs/usage/modes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aider/website/docs/usage/modes.md b/aider/website/docs/usage/modes.md index 8e3cf3fdd..1818a9589 100644 --- a/aider/website/docs/usage/modes.md +++ b/aider/website/docs/usage/modes.md @@ -1,7 +1,7 @@ --- parent: Usage nav_order: 60 -description: Using the code, ask and help chat modes. +description: Using the code, architect, ask and help chat modes. --- # Chat modes From 324430a6965a6ee078bfc74a1f9d5e7cb9fc5c88 Mon Sep 17 00:00:00 2001 From: ivanfioravanti Date: Sat, 23 Nov 2024 19:51:48 +0100 Subject: [PATCH 285/407] quant.yml mlx-community/Qwen2.5-Coder-32B-Instruct-8bit added --- aider/website/_data/quant.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/aider/website/_data/quant.yml b/aider/website/_data/quant.yml index 806eafa5a..0d96c54b6 100644 --- a/aider/website/_data/quant.yml +++ b/aider/website/_data/quant.yml @@ -91,6 +91,29 @@ seconds_per_case: 53.4 total_cost: 0.0000 +- dirname: 2024-11-23-15-07-20--qwen25-coder-32b-Instruct-8bit + test_cases: 133 + model: mlx-community/Qwen2.5-Coder-32B-Instruct-8bit + edit_format: diff + commit_hash: a16dcab-dirty + pass_rate_1: 59.4 + pass_rate_2: 72.2 + percent_cases_well_formed: 92.5 + error_outputs: 20 + num_malformed_responses: 15 + num_with_malformed_responses: 10 + user_asks: 7 + lazy_comments: 0 + syntax_errors: 0 + indentation_errors: 0 + exhausted_context_windows: 5 + test_timeouts: 2 + command: aider --model openai/mlx-community/Qwen2.5-Coder-32B-Instruct-8bit + date: 2024-11-23 + versions: 0.64.2.dev + seconds_per_case: 98.4 + total_cost: 0.0000 + - dirname: 2024-11-20-15-17-37--qwen25-32b-or-diff test_cases: 133 model: OpenRouter (mixed) From baa13351a6193992ee8d20c4639be643278ad3bc Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sat, 23 Nov 2024 12:57:24 -0800 Subject: [PATCH 286/407] refactor: Improve model registration and settings handling --- aider/models.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/aider/models.py b/aider/models.py index dd608bb45..66ce2df0d 100644 --- a/aider/models.py +++ b/aider/models.py @@ -935,10 +935,11 @@ class Model(ModelSettings): and ("2.5" in model or "2-5" in model) and "32b" in model ): - "openrouter/qwen/qwen-2.5-coder-32b-instruct", self.edit_format = "diff" self.editor_edit_format = "editor-diff" self.use_repo_map = True + # if "ollama" in model: + # self.extra_params = dict(num_ctx = 64*1024) return # <-- # use the defaults @@ -1101,6 +1102,9 @@ def register_models(model_settings_fnames): if not os.path.exists(model_settings_fname): continue + if not Path(model_settings_fname).read_text().strip(): + continue + try: with open(model_settings_fname, "r") as model_settings_file: model_settings_list = yaml.safe_load(model_settings_file) From 12b789fc4e80adfb4882aece60c3961be93735f1 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Sat, 23 Nov 2024 14:14:11 -0800 Subject: [PATCH 287/407] fix: Handle Mixpanel connection errors by disabling tracking --- aider/analytics.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/aider/analytics.py b/aider/analytics.py index 6295f9e3f..c449a339a 100644 --- a/aider/analytics.py +++ b/aider/analytics.py @@ -5,7 +5,7 @@ import time import uuid from pathlib import Path -from mixpanel import Mixpanel +from mixpanel import Mixpanel, MixpanelException from posthog import Posthog from aider import __version__ @@ -182,7 +182,10 @@ class Analytics: properties["aider_version"] = __version__ if self.mp: - self.mp.track(self.user_id, event_name, dict(properties)) + try: + self.mp.track(self.user_id, event_name, dict(properties)) + except MixpanelException: + self.mp = None # Disable mixpanel on connection errors if self.ph: self.ph.capture(self.user_id, event_name, dict(properties)) From 91daea9e010e4bc66e3a50edffee147993a15172 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sat, 23 Nov 2024 14:15:36 -0800 Subject: [PATCH 288/407] simplify if --- aider/analytics.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aider/analytics.py b/aider/analytics.py index c449a339a..72b7801ba 100644 --- a/aider/analytics.py +++ b/aider/analytics.py @@ -159,7 +159,7 @@ class Analytics: return None def event(self, event_name, main_model=None, **kwargs): - if not (self.mp or self.ph) and not self.logfile: + if not self.mp and not self.ph and not self.logfile: return properties = {} From 14522dbbcd24f81404fa0d2d712cafee2dcd01b9 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sat, 23 Nov 2024 14:20:58 -0800 Subject: [PATCH 289/407] copy --- aider/website/docs/llms/ollama.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/aider/website/docs/llms/ollama.md b/aider/website/docs/llms/ollama.md index 25aa82460..5c4885ed7 100644 --- a/aider/website/docs/llms/ollama.md +++ b/aider/website/docs/llms/ollama.md @@ -28,3 +28,26 @@ See the [model warnings](warnings.html) section for information on warnings which will occur when working with models that aider is not familiar with. +## Setting the context window size + +[Ollama uses a 2k context window by default](https://github.com/ollama/ollama/blob/main/docs/faq.md#how-can-i-specify-the-context-window-size), +which is very small for working with aider. + +You can set the Ollama server's context window with a +[`.aider.model.settings.yml` file](https://aider.chat/docs/config/adv-model-settings.html#model-settings) +like this: + +``` +- name: aider/extra_params + extra_params: + num_ctx: 65536 +``` + +That uses the special model name `aider/extra_params` to set it for *all* models. You should probably use a specific model name like: + +``` +- name: ollama/qwen2.5-coder:32b-instruct-fp16 + extra_params: + num_ctx: 65536 +``` + From e63df83091ab7b3371c02190a6fb3bd328d3e96e Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Sat, 23 Nov 2024 14:23:26 -0800 Subject: [PATCH 290/407] refactor: Consolidate subprocess.call mock in test_pipe_editor --- tests/basic/test_editor.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/tests/basic/test_editor.py b/tests/basic/test_editor.py index 6af973bf6..c02d1d95d 100644 --- a/tests/basic/test_editor.py +++ b/tests/basic/test_editor.py @@ -99,6 +99,7 @@ def test_pipe_editor(): patch("aider.editor.write_temp_file") as mock_write, patch("builtins.open") as mock_open, patch("os.remove") as mock_remove, + patch("subprocess.call") as mock_subprocess, ): # Setup mocks mock_write.return_value = "temp.txt" @@ -106,22 +107,21 @@ def test_pipe_editor(): mock_file.__enter__.return_value.read.return_value = modified_content mock_open.return_value = mock_file - with patch("subprocess.call") as mock_subprocess: - # Test with default editor - result = pipe_editor(test_content) - assert result == modified_content - mock_write.assert_called_with(test_content, None) - mock_subprocess.assert_called() + # Test with default editor + result = pipe_editor(test_content) + assert result == modified_content + mock_write.assert_called_with(test_content, None) + mock_subprocess.assert_called() - # Test with custom editor - result = pipe_editor(test_content, editor="code") - assert result == modified_content - mock_subprocess.assert_called() + # Test with custom editor + result = pipe_editor(test_content, editor="code") + assert result == modified_content + mock_subprocess.assert_called() - # Test with suffix - result = pipe_editor(test_content, suffix="md") - assert result == modified_content - mock_write.assert_called_with(test_content, "md") + # Test with suffix + result = pipe_editor(test_content, suffix="md") + assert result == modified_content + mock_write.assert_called_with(test_content, "md") # Test cleanup on permission error mock_remove.side_effect = PermissionError From cf74dc9b486e05bfd1cca7ef946a3638e80e2770 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sat, 23 Nov 2024 15:30:28 -0800 Subject: [PATCH 291/407] copy --- aider/website/docs/llms/ollama.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/aider/website/docs/llms/ollama.md b/aider/website/docs/llms/ollama.md index 5c4885ed7..764fbe350 100644 --- a/aider/website/docs/llms/ollama.md +++ b/aider/website/docs/llms/ollama.md @@ -20,14 +20,26 @@ python -m pip install -U aider-chat export OLLAMA_API_BASE=http://127.0.0.1:11434 # Mac/Linux setx OLLAMA_API_BASE http://127.0.0.1:11434 # Windows, restart shell after setx -aider --model ollama/ +aider --model ollama_chat/ ``` +{: .note } +Using `ollama_chat/` is recommended over `ollama/`. + See the [model warnings](warnings.html) section for information on warnings which will occur when working with models that aider is not familiar with. +## API Key + +If you are using an ollama that requires an API key you can set `OLLAMA_API_KEY`: + +``` +export OLLAMA_API_KEY= # Mac/Linux +setx OLLAMA_API_KEY # Windows, restart shell after setx +``` + ## Setting the context window size [Ollama uses a 2k context window by default](https://github.com/ollama/ollama/blob/main/docs/faq.md#how-can-i-specify-the-context-window-size), From ff8c1aace91cb5bf83140c9636974e4876023aec Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sat, 23 Nov 2024 15:32:09 -0800 Subject: [PATCH 292/407] copy --- aider/website/docs/llms/ollama.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aider/website/docs/llms/ollama.md b/aider/website/docs/llms/ollama.md index 764fbe350..d2908dd2d 100644 --- a/aider/website/docs/llms/ollama.md +++ b/aider/website/docs/llms/ollama.md @@ -58,7 +58,7 @@ like this: That uses the special model name `aider/extra_params` to set it for *all* models. You should probably use a specific model name like: ``` -- name: ollama/qwen2.5-coder:32b-instruct-fp16 +- name: ollama_chat/qwen2.5-coder:32b-instruct-fp16 extra_params: num_ctx: 65536 ``` From 8d0ba40d677f8186993fe937f0fd8c83f7f4590c Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Sat, 23 Nov 2024 17:48:34 -0800 Subject: [PATCH 293/407] feat: Sort chart data by pass rate in descending order --- aider/website/_includes/quant-chart.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/aider/website/_includes/quant-chart.js b/aider/website/_includes/quant-chart.js index b89df4557..cee4bf5c4 100644 --- a/aider/website/_includes/quant-chart.js +++ b/aider/website/_includes/quant-chart.js @@ -19,6 +19,9 @@ document.addEventListener('DOMContentLoaded', function () { }); {% endfor %} + // Sort data by pass_rate_2 in descending order + allData.sort((a, b) => b.pass_rate_2 - a.pass_rate_2); + allData.forEach(function(row) { chartData.labels.push(row.model); chartData.datasets[0].data.push(row.pass_rate_2); From 92579243c56bdb9aca2383a38601fd125dd127ae Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sat, 23 Nov 2024 18:13:58 -0800 Subject: [PATCH 294/407] copy --- aider/website/_data/quant.yml | 37 +++++++++---------- .../website/_posts/2024-11-21-quantization.md | 24 ++++++++---- 2 files changed, 34 insertions(+), 27 deletions(-) diff --git a/aider/website/_data/quant.yml b/aider/website/_data/quant.yml index 0d96c54b6..cb5906334 100644 --- a/aider/website/_data/quant.yml +++ b/aider/website/_data/quant.yml @@ -24,7 +24,7 @@ - dirname: 2024-11-22-18-56-13--ollama-qwen2.5-coder:32b-instruct-fp16 test_cases: 132 - model: ollama/qwen2.5-coder:32b-instruct-fp16 (64k context) + model: Ollama fp16 edit_format: diff commit_hash: f06452c-dirty, 6a0a97c-dirty, 4e9ae16-dirty, 5506d0f-dirty pass_rate_1: 58.3 @@ -70,7 +70,7 @@ - dirname: 2024-11-22-17-53-35--qwen25-coder-32b-Instruct-4bit test_cases: 133 - model: mlx-community/Qwen2.5-Coder-32B-Instruct-4bit + model: mlx-community 4bit edit_format: diff commit_hash: a16dcab-dirty pass_rate_1: 60.2 @@ -93,7 +93,7 @@ - dirname: 2024-11-23-15-07-20--qwen25-coder-32b-Instruct-8bit test_cases: 133 - model: mlx-community/Qwen2.5-Coder-32B-Instruct-8bit + model: mlx-community 8bit edit_format: diff commit_hash: a16dcab-dirty pass_rate_1: 59.4 @@ -137,26 +137,25 @@ seconds_per_case: 40.7 total_cost: 0.1497 -- dirname: 2024-11-21-23-33-47--ollama-qwen25-coder +- dirname: 2024-11-23-21-08-53--ollama-qwen2.5-coder:32b-instruct-q4_K_M-8kctx test_cases: 133 - model: Ollama Q4_K_M + model: Ollama q4_K_M edit_format: diff - commit_hash: 488c88d-dirty - pass_rate_1: 44.4 - pass_rate_2: 53.4 - percent_cases_well_formed: 44.4 - error_outputs: 231 - num_malformed_responses: 183 - num_with_malformed_responses: 74 - user_asks: 79 + commit_hash: baa1335-dirty, e63df83-dirty, ff8c1aa-dirty + pass_rate_1: 54.9 + pass_rate_2: 66.9 + percent_cases_well_formed: 94.0 + error_outputs: 21 + num_malformed_responses: 21 + num_with_malformed_responses: 8 + user_asks: 5 lazy_comments: 0 - syntax_errors: 2 + syntax_errors: 0 indentation_errors: 0 exhausted_context_windows: 0 - test_timeouts: 2 + test_timeouts: 3 command: aider --model ollama/qwen2.5-coder:32b-instruct-q4_K_M - date: 2024-11-21 + date: 2024-11-23 versions: 0.64.2.dev - seconds_per_case: 86.7 - total_cost: 0.0000 - + seconds_per_case: 35.7 + total_cost: 0.0000 \ No newline at end of file diff --git a/aider/website/_posts/2024-11-21-quantization.md b/aider/website/_posts/2024-11-21-quantization.md index 3fff8dd62..3d9372194 100644 --- a/aider/website/_posts/2024-11-21-quantization.md +++ b/aider/website/_posts/2024-11-21-quantization.md @@ -18,7 +18,7 @@ can strongly impact code editing skill. Heavily quantized models are often used by cloud API providers and local model servers like Ollama or MLX. - + -## Setting the context window size +## Setting Ollama's context window size [Ollama uses a 2k context window by default](https://github.com/ollama/ollama/blob/main/docs/faq.md#how-can-i-specify-the-context-window-size), which is very small for working with aider. +All of the Ollama results above were collected with at least an 8k context window, which +is large enough to attempt all the coding problems in the benchmark. + You can set the Ollama server's context window with a [`.aider.model.settings.yml` file](https://aider.chat/docs/config/adv-model-settings.html#model-settings) like this: @@ -112,7 +115,7 @@ like this: ``` - name: aider/extra_params extra_params: - num_ctx: 65536 + num_ctx: 8192 ``` That uses the special model name `aider/extra_params` to set it for *all* models. You should probably use a specific model name like: @@ -120,7 +123,7 @@ That uses the special model name `aider/extra_params` to set it for *all* models ``` - name: ollama/qwen2.5-coder:32b-instruct-fp16 extra_params: - num_ctx: 65536 + num_ctx: 8192 ``` ## Choosing providers with OpenRouter @@ -130,3 +133,8 @@ OpenRouter allows you to ignore specific providers in your This can be effective to exclude highly quantized or otherwise undesirable providers. + +{: .note } +Earlier versions of this article included incorrect Ollama models, +and also included some Ollama results with the too small default 2k +context window. From bb78e2f57f26ea9fe739aad4485c7ec79c1dd58d Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sat, 23 Nov 2024 18:14:30 -0800 Subject: [PATCH 295/407] default Ollama num_ctx to 8k --- aider/models.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/aider/models.py b/aider/models.py index 66ce2df0d..0bca766c6 100644 --- a/aider/models.py +++ b/aider/models.py @@ -938,8 +938,8 @@ class Model(ModelSettings): self.edit_format = "diff" self.editor_edit_format = "editor-diff" self.use_repo_map = True - # if "ollama" in model: - # self.extra_params = dict(num_ctx = 64*1024) + if "ollama" in model: + self.extra_params = dict(num_ctx=8 * 1024) return # <-- # use the defaults From 757eac05791ed9f19abbc368a7846739d0ed16bb Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sat, 23 Nov 2024 18:39:20 -0800 Subject: [PATCH 296/407] copy --- aider/website/_data/quant.yml | 23 +++++++++++++++++++ .../website/_posts/2024-11-21-quantization.md | 1 + 2 files changed, 24 insertions(+) diff --git a/aider/website/_data/quant.yml b/aider/website/_data/quant.yml index cb5906334..ac177aa4f 100644 --- a/aider/website/_data/quant.yml +++ b/aider/website/_data/quant.yml @@ -158,4 +158,27 @@ date: 2024-11-23 versions: 0.64.2.dev seconds_per_case: 35.7 + total_cost: 0.0000 + +- dirname: 2024-11-24-02-23-32--deepinfra-qwen-diff + test_cases: 133 + model: Deepinfra (BF16) + edit_format: diff + commit_hash: bb78e2f + pass_rate_1: 58.6 + pass_rate_2: 72.2 + percent_cases_well_formed: 94.7 + error_outputs: 15 + num_malformed_responses: 13 + num_with_malformed_responses: 7 + user_asks: 3 + lazy_comments: 0 + syntax_errors: 0 + indentation_errors: 0 + exhausted_context_windows: 2 + test_timeouts: 3 + command: aider --model deepinfra/Qwen/Qwen2.5-Coder-32B-Instruct + date: 2024-11-24 + versions: 0.64.2.dev + seconds_per_case: 17.5 total_cost: 0.0000 \ No newline at end of file diff --git a/aider/website/_posts/2024-11-21-quantization.md b/aider/website/_posts/2024-11-21-quantization.md index 3d9372194..c059a892f 100644 --- a/aider/website/_posts/2024-11-21-quantization.md +++ b/aider/website/_posts/2024-11-21-quantization.md @@ -32,6 +32,7 @@ served both locally and from cloud providers. - [4bit and 8bit quants for mlx](https://t.co/cwX3DYX35D). - The results from [OpenRouter's mix of providers](https://openrouter.ai/qwen/qwen-2.5-coder-32b-instruct/providers) which serve the model with different levels of quantization. - Ollama locally serving different quantizations from the [Ollama model library](https://ollama.com/library/qwen2.5-coder:32b-instruct-q4_K_M). +- Other API providers. The best version of the model rivals GPT-4o, while the worst performer is more like GPT-4 level. From 73de0ea8beb15fc373c7bb722900bcfd3545e115 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sat, 23 Nov 2024 20:18:19 -0800 Subject: [PATCH 297/407] copy --- aider/website/_data/quant.yml | 25 ++++++++++++++++++- .../website/_posts/2024-11-21-quantization.md | 1 - 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/aider/website/_data/quant.yml b/aider/website/_data/quant.yml index ac177aa4f..3445144e9 100644 --- a/aider/website/_data/quant.yml +++ b/aider/website/_data/quant.yml @@ -181,4 +181,27 @@ date: 2024-11-24 versions: 0.64.2.dev seconds_per_case: 17.5 - total_cost: 0.0000 \ No newline at end of file + total_cost: 0.0000 + +- dirname: 2024-11-24-04-12-58--fireworks-qwen-diff + test_cases: 133 + model: Fireworks (unknown quant) + edit_format: diff + commit_hash: 757eac0 + pass_rate_1: 57.9 + pass_rate_2: 72.2 + percent_cases_well_formed: 94.0 + error_outputs: 23 + num_malformed_responses: 19 + num_with_malformed_responses: 8 + user_asks: 8 + lazy_comments: 0 + syntax_errors: 6 + indentation_errors: 0 + exhausted_context_windows: 4 + test_timeouts: 1 + command: aider --model fireworks_ai/accounts/fireworks/models/qwen2p5-coder-32b-instruct + date: 2024-11-24 + versions: 0.64.2.dev + seconds_per_case: 10.4 + total_cost: 0.5759 \ No newline at end of file diff --git a/aider/website/_posts/2024-11-21-quantization.md b/aider/website/_posts/2024-11-21-quantization.md index c059a892f..6f5104b94 100644 --- a/aider/website/_posts/2024-11-21-quantization.md +++ b/aider/website/_posts/2024-11-21-quantization.md @@ -28,7 +28,6 @@ The graph above compares different versions of the Qwen 2.5 Coder 32B Instruct m served both locally and from cloud providers. - The [HuggingFace BF16 weights](https://huggingface.co/Qwen/Qwen2.5-Coder-32B-Instruct) served via [glhf.chat](https://glhf.chat). -- Hyperbolic labs API for [qwen2-5-coder-32b-instruct](https://app.hyperbolic.xyz/models/qwen2-5-coder-32b-instruct), which is using BF16. This result is probably within the expected variance of the HF result. - [4bit and 8bit quants for mlx](https://t.co/cwX3DYX35D). - The results from [OpenRouter's mix of providers](https://openrouter.ai/qwen/qwen-2.5-coder-32b-instruct/providers) which serve the model with different levels of quantization. - Ollama locally serving different quantizations from the [Ollama model library](https://ollama.com/library/qwen2.5-coder:32b-instruct-q4_K_M). From 1d09e9612793cead5c48e600905d3d6bb0760cab Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sat, 23 Nov 2024 20:19:11 -0800 Subject: [PATCH 298/407] copy --- aider/website/_data/quant.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/aider/website/_data/quant.yml b/aider/website/_data/quant.yml index 3445144e9..c1b317b96 100644 --- a/aider/website/_data/quant.yml +++ b/aider/website/_data/quant.yml @@ -116,7 +116,7 @@ - dirname: 2024-11-20-15-17-37--qwen25-32b-or-diff test_cases: 133 - model: OpenRouter (mixed) + model: OpenRouter (multiple quants) edit_format: diff commit_hash: e917424 pass_rate_1: 49.6 @@ -162,7 +162,7 @@ - dirname: 2024-11-24-02-23-32--deepinfra-qwen-diff test_cases: 133 - model: Deepinfra (BF16) + model: Deepinfra BF16 edit_format: diff commit_hash: bb78e2f pass_rate_1: 58.6 From e56651e5c05c44afe10b64ec0158636b098d87df Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sat, 23 Nov 2024 20:27:43 -0800 Subject: [PATCH 299/407] copy --- aider/website/_posts/2024-11-21-quantization.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/aider/website/_posts/2024-11-21-quantization.md b/aider/website/_posts/2024-11-21-quantization.md index 6f5104b94..1a39b79c4 100644 --- a/aider/website/_posts/2024-11-21-quantization.md +++ b/aider/website/_posts/2024-11-21-quantization.md @@ -1,6 +1,6 @@ --- title: Quantization matters -excerpt: Open source LLMs are becoming very powerful, but pay attention to how you (or your provider) is quantizing the model. It can strongly affect code editing skill. +excerpt: Open source LLMs are becoming very powerful, but pay attention to how you (or your provider) is quantizing the model. It can affect code editing skill. highlight_image: /assets/quantization.jpg draft: false nav_exclude: true @@ -14,7 +14,7 @@ nav_exclude: true Open source models like Qwen 2.5 32B Instruct are performing very well on aider's code editing benchmark, rivaling closed source frontier models. But pay attention to how your model is being quantized, as it -can strongly impact code editing skill. +can impact code editing skill. Heavily quantized models are often used by cloud API providers and local model servers like Ollama or MLX. From c2f184f5bb7162dd865acd20597545f5c8872812 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sun, 24 Nov 2024 06:21:58 -0800 Subject: [PATCH 300/407] copy --- aider/website/_data/quant.yml | 25 ++++++++++++++++++- .../website/_posts/2024-11-21-quantization.md | 2 +- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/aider/website/_data/quant.yml b/aider/website/_data/quant.yml index c1b317b96..e7075aa89 100644 --- a/aider/website/_data/quant.yml +++ b/aider/website/_data/quant.yml @@ -204,4 +204,27 @@ date: 2024-11-24 versions: 0.64.2.dev seconds_per_case: 10.4 - total_cost: 0.5759 \ No newline at end of file + total_cost: 0.5759 + +- dirname: 2024-11-24-02-04-59--ollama-qwen2.5-coder:32b-instruct-q2_K-8kctx + test_cases: 133 + model: Ollama q2_K + edit_format: diff + commit_hash: 757eac0, bb78e2f, 8d0ba40-dirty, 1d09e96 + pass_rate_1: 48.9 + pass_rate_2: 61.7 + percent_cases_well_formed: 91.7 + error_outputs: 32 + num_malformed_responses: 32 + num_with_malformed_responses: 11 + user_asks: 8 + lazy_comments: 0 + syntax_errors: 0 + indentation_errors: 0 + exhausted_context_windows: 0 + test_timeouts: 1 + command: aider --model ollama/qwen2.5-coder:32b-instruct-q2_K + date: 2024-11-24 + versions: 0.64.2.dev + seconds_per_case: 97.8 + total_cost: 0.0000 \ No newline at end of file diff --git a/aider/website/_posts/2024-11-21-quantization.md b/aider/website/_posts/2024-11-21-quantization.md index 1a39b79c4..abbf2b7d4 100644 --- a/aider/website/_posts/2024-11-21-quantization.md +++ b/aider/website/_posts/2024-11-21-quantization.md @@ -34,7 +34,7 @@ served both locally and from cloud providers. - Other API providers. The best version of the model rivals GPT-4o, while the worst performer -is more like GPT-4 level. +is more like GPT-4 Turbo level. {: .note } This article is being updated as additional benchmark runs complete. From 2ebf48ca717d9994ea298724df1127b0702814cc Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sun, 24 Nov 2024 07:06:39 -0800 Subject: [PATCH 301/407] feat: Update quant.yml with refined model descriptions and new test results --- aider/website/_data/quant.yml | 68 +++++++++++++++++++++++++++++------ 1 file changed, 57 insertions(+), 11 deletions(-) diff --git a/aider/website/_data/quant.yml b/aider/website/_data/quant.yml index e7075aa89..c3de293f4 100644 --- a/aider/website/_data/quant.yml +++ b/aider/website/_data/quant.yml @@ -1,6 +1,6 @@ - dirname: 2024-11-09-11-09-15--Qwen2.5-Coder-32B-Instruct test_cases: 133 - model: HuggingFace BF16 via GLHF + model: HuggingFace via GLHF: BF16 released: 2024-11-12 edit_format: diff commit_hash: ec9982a @@ -24,7 +24,7 @@ - dirname: 2024-11-22-18-56-13--ollama-qwen2.5-coder:32b-instruct-fp16 test_cases: 132 - model: Ollama fp16 + model: Ollama: fp16 edit_format: diff commit_hash: f06452c-dirty, 6a0a97c-dirty, 4e9ae16-dirty, 5506d0f-dirty pass_rate_1: 58.3 @@ -47,7 +47,7 @@ - dirname: 2024-11-22-14-53-26--hyperbolic-qwen25coder32binstruct test_cases: 133 - model: Hyperbolic BF16 + model: Hyperbolic: BF16 edit_format: diff commit_hash: f9ef161, 17aef7b-dirty pass_rate_1: 57.9 @@ -70,7 +70,7 @@ - dirname: 2024-11-22-17-53-35--qwen25-coder-32b-Instruct-4bit test_cases: 133 - model: mlx-community 4bit + model: mlx-community: 4bit edit_format: diff commit_hash: a16dcab-dirty pass_rate_1: 60.2 @@ -93,7 +93,7 @@ - dirname: 2024-11-23-15-07-20--qwen25-coder-32b-Instruct-8bit test_cases: 133 - model: mlx-community 8bit + model: mlx-community: 8bit edit_format: diff commit_hash: a16dcab-dirty pass_rate_1: 59.4 @@ -116,7 +116,7 @@ - dirname: 2024-11-20-15-17-37--qwen25-32b-or-diff test_cases: 133 - model: OpenRouter (multiple quants) + model: OpenRouter: multiple edit_format: diff commit_hash: e917424 pass_rate_1: 49.6 @@ -139,7 +139,7 @@ - dirname: 2024-11-23-21-08-53--ollama-qwen2.5-coder:32b-instruct-q4_K_M-8kctx test_cases: 133 - model: Ollama q4_K_M + model: Ollama: q4_K_M edit_format: diff commit_hash: baa1335-dirty, e63df83-dirty, ff8c1aa-dirty pass_rate_1: 54.9 @@ -162,7 +162,7 @@ - dirname: 2024-11-24-02-23-32--deepinfra-qwen-diff test_cases: 133 - model: Deepinfra BF16 + model: Deepinfra: BF16 edit_format: diff commit_hash: bb78e2f pass_rate_1: 58.6 @@ -185,7 +185,7 @@ - dirname: 2024-11-24-04-12-58--fireworks-qwen-diff test_cases: 133 - model: Fireworks (unknown quant) + model: Fireworks: unknown edit_format: diff commit_hash: 757eac0 pass_rate_1: 57.9 @@ -208,7 +208,7 @@ - dirname: 2024-11-24-02-04-59--ollama-qwen2.5-coder:32b-instruct-q2_K-8kctx test_cases: 133 - model: Ollama q2_K + model: Ollama: q2_K edit_format: diff commit_hash: 757eac0, bb78e2f, 8d0ba40-dirty, 1d09e96 pass_rate_1: 48.9 @@ -227,4 +227,50 @@ date: 2024-11-24 versions: 0.64.2.dev seconds_per_case: 97.8 - total_cost: 0.0000 \ No newline at end of file + total_cost: 0.0000 + +- dirname: 2024-11-24-14-56-49--qwen25-32b-or-fireworks + test_cases: 133 + model: Fireworks via OpenRouter: unknown + edit_format: diff + commit_hash: c2f184f + pass_rate_1: 55.6 + pass_rate_2: 67.7 + percent_cases_well_formed: 94.0 + error_outputs: 39 + num_malformed_responses: 24 + num_with_malformed_responses: 8 + user_asks: 13 + lazy_comments: 0 + syntax_errors: 1 + indentation_errors: 1 + exhausted_context_windows: 7 + test_timeouts: 4 + command: aider --model openrouter/qwen/qwen-2.5-coder-32b-instruct + date: 2024-11-24 + versions: 0.64.2.dev + seconds_per_case: 16.1 + total_cost: 0.1391 + +- dirname: 2024-11-24-14-36-59--qwen25-32b-or-hyperbolic + test_cases: 133 + model: Hyperbolic via OpenRouter: BF16 + edit_format: diff + commit_hash: c2f184f + pass_rate_1: 40.6 + pass_rate_2: 46.6 + percent_cases_well_formed: 83.5 + error_outputs: 80 + num_malformed_responses: 73 + num_with_malformed_responses: 22 + user_asks: 56 + lazy_comments: 0 + syntax_errors: 15 + indentation_errors: 0 + exhausted_context_windows: 5 + test_timeouts: 0 + command: aider --model openrouter/qwen/qwen-2.5-coder-32b-instruct + date: 2024-11-24 + versions: 0.64.2.dev + seconds_per_case: 110.0 + total_cost: 0.1763 \ No newline at end of file From 3f16652d567e0ebb503d93ef151096a6ddaf5fbe Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Sun, 24 Nov 2024 07:06:41 -0800 Subject: [PATCH 302/407] feat: Escape colons in model names with quotes in YAML file --- aider/website/_data/quant.yml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/aider/website/_data/quant.yml b/aider/website/_data/quant.yml index c3de293f4..03ec2254d 100644 --- a/aider/website/_data/quant.yml +++ b/aider/website/_data/quant.yml @@ -1,6 +1,6 @@ - dirname: 2024-11-09-11-09-15--Qwen2.5-Coder-32B-Instruct test_cases: 133 - model: HuggingFace via GLHF: BF16 + model: "HuggingFace via GLHF: BF16" released: 2024-11-12 edit_format: diff commit_hash: ec9982a @@ -24,7 +24,7 @@ - dirname: 2024-11-22-18-56-13--ollama-qwen2.5-coder:32b-instruct-fp16 test_cases: 132 - model: Ollama: fp16 + model: "Ollama: fp16" edit_format: diff commit_hash: f06452c-dirty, 6a0a97c-dirty, 4e9ae16-dirty, 5506d0f-dirty pass_rate_1: 58.3 @@ -47,7 +47,7 @@ - dirname: 2024-11-22-14-53-26--hyperbolic-qwen25coder32binstruct test_cases: 133 - model: Hyperbolic: BF16 + model: "Hyperbolic: BF16" edit_format: diff commit_hash: f9ef161, 17aef7b-dirty pass_rate_1: 57.9 @@ -70,7 +70,7 @@ - dirname: 2024-11-22-17-53-35--qwen25-coder-32b-Instruct-4bit test_cases: 133 - model: mlx-community: 4bit + model: "mlx-community: 4bit" edit_format: diff commit_hash: a16dcab-dirty pass_rate_1: 60.2 @@ -93,7 +93,7 @@ - dirname: 2024-11-23-15-07-20--qwen25-coder-32b-Instruct-8bit test_cases: 133 - model: mlx-community: 8bit + model: "mlx-community: 8bit" edit_format: diff commit_hash: a16dcab-dirty pass_rate_1: 59.4 @@ -116,7 +116,7 @@ - dirname: 2024-11-20-15-17-37--qwen25-32b-or-diff test_cases: 133 - model: OpenRouter: multiple + model: "OpenRouter: multiple" edit_format: diff commit_hash: e917424 pass_rate_1: 49.6 @@ -139,7 +139,7 @@ - dirname: 2024-11-23-21-08-53--ollama-qwen2.5-coder:32b-instruct-q4_K_M-8kctx test_cases: 133 - model: Ollama: q4_K_M + model: "Ollama: q4_K_M" edit_format: diff commit_hash: baa1335-dirty, e63df83-dirty, ff8c1aa-dirty pass_rate_1: 54.9 @@ -162,7 +162,7 @@ - dirname: 2024-11-24-02-23-32--deepinfra-qwen-diff test_cases: 133 - model: Deepinfra: BF16 + model: "Deepinfra: BF16" edit_format: diff commit_hash: bb78e2f pass_rate_1: 58.6 @@ -185,7 +185,7 @@ - dirname: 2024-11-24-04-12-58--fireworks-qwen-diff test_cases: 133 - model: Fireworks: unknown + model: "Fireworks: unknown" edit_format: diff commit_hash: 757eac0 pass_rate_1: 57.9 @@ -208,7 +208,7 @@ - dirname: 2024-11-24-02-04-59--ollama-qwen2.5-coder:32b-instruct-q2_K-8kctx test_cases: 133 - model: Ollama: q2_K + model: "Ollama: q2_K" edit_format: diff commit_hash: 757eac0, bb78e2f, 8d0ba40-dirty, 1d09e96 pass_rate_1: 48.9 @@ -231,7 +231,7 @@ - dirname: 2024-11-24-14-56-49--qwen25-32b-or-fireworks test_cases: 133 - model: Fireworks via OpenRouter: unknown + model: "Fireworks via OpenRouter: unknown" edit_format: diff commit_hash: c2f184f pass_rate_1: 55.6 @@ -254,7 +254,7 @@ - dirname: 2024-11-24-14-36-59--qwen25-32b-or-hyperbolic test_cases: 133 - model: Hyperbolic via OpenRouter: BF16 + model: "Hyperbolic via OpenRouter: BF16" edit_format: diff commit_hash: c2f184f pass_rate_1: 40.6 @@ -273,4 +273,4 @@ date: 2024-11-24 versions: 0.64.2.dev seconds_per_case: 110.0 - total_cost: 0.1763 \ No newline at end of file + total_cost: 0.1763 From cebd9cabb3ff83c5a5129d83766de661e408b438 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Sun, 24 Nov 2024 07:12:39 -0800 Subject: [PATCH 303/407] feat: Add real-time filtering to chart based on search input --- aider/website/_includes/quant-chart.js | 116 ++++++++++++++----------- 1 file changed, 66 insertions(+), 50 deletions(-) diff --git a/aider/website/_includes/quant-chart.js b/aider/website/_includes/quant-chart.js index cee4bf5c4..7558dc738 100644 --- a/aider/website/_includes/quant-chart.js +++ b/aider/website/_includes/quant-chart.js @@ -1,16 +1,5 @@ document.addEventListener('DOMContentLoaded', function () { var ctx = document.getElementById('quantChart').getContext('2d'); - var chartData = { - labels: [], - datasets: [{ - label: 'Percent completed correctly', - data: [], - backgroundColor: 'rgba(54, 162, 235, 0.2)', - borderColor: 'rgba(54, 162, 235, 1)', - borderWidth: 1 - }] - }; - var allData = []; {% for row in site.data.quant %} allData.push({ @@ -22,51 +11,78 @@ document.addEventListener('DOMContentLoaded', function () { // Sort data by pass_rate_2 in descending order allData.sort((a, b) => b.pass_rate_2 - a.pass_rate_2); - allData.forEach(function(row) { - chartData.labels.push(row.model); - chartData.datasets[0].data.push(row.pass_rate_2); - }); + var chart; + + function updateChart(filterText) { + var filteredData = allData.filter(row => + row.model.toLowerCase().includes(filterText.toLowerCase()) + ); + + var chartData = { + labels: filteredData.map(row => row.model), + datasets: [{ + label: 'Percent completed correctly', + data: filteredData.map(row => row.pass_rate_2), + backgroundColor: 'rgba(54, 162, 235, 0.2)', + borderColor: 'rgba(54, 162, 235, 1)', + borderWidth: 1 + }] + }; - new Chart(ctx, { - type: 'bar', - data: chartData, - options: { - plugins: { - legend: { - display: false - }, - title: { - display: true, - text: 'Aider code editing benchmark', - font: { - size: 16 - } - } - }, - scales: { - y: { - beginAtZero: true, - title: { - display: true, - text: 'Percent completed correctly', - font: { - size: 14 + if (chart) { + chart.data = chartData; + chart.update(); + } else { + chart = new Chart(ctx, { + type: 'bar', + data: chartData, + options: { + plugins: { + legend: { + display: false + }, + title: { + display: true, + text: 'Aider code editing benchmark', + font: { + size: 16 + } } }, - ticks: { - font: { - size: 16 - } - } - }, - x: { - ticks: { - font: { - size: 16 + scales: { + y: { + beginAtZero: true, + title: { + display: true, + text: 'Percent completed correctly', + font: { + size: 14 + } + }, + ticks: { + font: { + size: 16 + } + } + }, + x: { + ticks: { + font: { + size: 16 + } + } } } } - } + }); } + } + + // Initial chart render + updateChart(''); + + // Connect search input to chart filtering + document.getElementById('quantSearchInput').addEventListener('keyup', function() { + updateChart(this.value); }); }); From c5504221688277994c60469db4499730c8442755 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Sun, 24 Nov 2024 07:13:14 -0800 Subject: [PATCH 304/407] feat: Add x-axis label "Provider: quantization" to chart --- aider/website/_includes/quant-chart.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/aider/website/_includes/quant-chart.js b/aider/website/_includes/quant-chart.js index 7558dc738..fa48d554d 100644 --- a/aider/website/_includes/quant-chart.js +++ b/aider/website/_includes/quant-chart.js @@ -70,6 +70,13 @@ document.addEventListener('DOMContentLoaded', function () { font: { size: 16 } + }, + title: { + display: true, + text: 'Provider: quantization', + font: { + size: 14 + } } } } From aee94a05841c439562bd6f50eee1e30ac1fb31fe Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sun, 24 Nov 2024 07:14:09 -0800 Subject: [PATCH 305/407] copy --- aider/website/_data/quant.yml | 23 +++++++++++++++++++ .../website/_posts/2024-11-21-quantization.md | 19 ++++++++++----- 2 files changed, 36 insertions(+), 6 deletions(-) diff --git a/aider/website/_data/quant.yml b/aider/website/_data/quant.yml index 03ec2254d..6c1687c54 100644 --- a/aider/website/_data/quant.yml +++ b/aider/website/_data/quant.yml @@ -274,3 +274,26 @@ versions: 0.64.2.dev seconds_per_case: 110.0 total_cost: 0.1763 + +- dirname: 2024-11-24-15-00-50--qwen25-32b-or-deepinfra + test_cases: 133 + model: "Deepinfra via OpenRouter: BF16" + edit_format: diff + commit_hash: c2f184f + pass_rate_1: 57.1 + pass_rate_2: 69.9 + percent_cases_well_formed: 89.5 + error_outputs: 35 + num_malformed_responses: 31 + num_with_malformed_responses: 14 + user_asks: 11 + lazy_comments: 0 + syntax_errors: 1 + indentation_errors: 1 + exhausted_context_windows: 4 + test_timeouts: 1 + command: aider --model openrouter/qwen/qwen-2.5-coder-32b-instruct + date: 2024-11-24 + versions: 0.64.2.dev + seconds_per_case: 28.5 + total_cost: 0.1390 \ No newline at end of file diff --git a/aider/website/_posts/2024-11-21-quantization.md b/aider/website/_posts/2024-11-21-quantization.md index abbf2b7d4..15056fe1c 100644 --- a/aider/website/_posts/2024-11-21-quantization.md +++ b/aider/website/_posts/2024-11-21-quantization.md @@ -18,11 +18,6 @@ can impact code editing skill. Heavily quantized models are often used by cloud API providers and local model servers like Ollama or MLX. - - - The graph above compares different versions of the Qwen 2.5 Coder 32B Instruct model, served both locally and from cloud providers. @@ -34,11 +29,23 @@ served both locally and from cloud providers. - Other API providers. The best version of the model rivals GPT-4o, while the worst performer -is more like GPT-4 Turbo level. +is worse than GPT-3.5 Turbo. + +Hyperbolic via OpenRouter in particular is confusing. +Their direct API produces excellent results, but the performance +through OpenRouter is very poor. +It's unclear why this is happening to just this provider. +The other providers available through OpenRouter perform similarly +when their API is accessed directly. {: .note } This article is being updated as additional benchmark runs complete. + + + From 4894914db18c50b9888a9af018929b586cca9356 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sun, 24 Nov 2024 07:50:19 -0800 Subject: [PATCH 306/407] copy --- aider/website/_posts/2024-11-21-quantization.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/aider/website/_posts/2024-11-21-quantization.md b/aider/website/_posts/2024-11-21-quantization.md index 15056fe1c..6b65658cf 100644 --- a/aider/website/_posts/2024-11-21-quantization.md +++ b/aider/website/_posts/2024-11-21-quantization.md @@ -137,9 +137,8 @@ That uses the special model name `aider/extra_params` to set it for *all* models OpenRouter allows you to ignore specific providers in your [preferences](https://openrouter.ai/settings/preferences). -This can be effective to exclude highly quantized or otherwise -undesirable providers. - +This can be used to limit your OpenRouter requests to be +served by only your preferred providers. {: .note } Earlier versions of this article included incorrect Ollama models, From dc8761763da4ff9cf3dfbad14c372279d5ace9e0 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sun, 24 Nov 2024 07:56:12 -0800 Subject: [PATCH 307/407] copy --- .../website/_posts/2024-11-21-quantization.md | 12 ++++++++++-- aider/website/assets/quantization.jpg | Bin 121393 -> 151649 bytes 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/aider/website/_posts/2024-11-21-quantization.md b/aider/website/_posts/2024-11-21-quantization.md index 6b65658cf..617c3fb9c 100644 --- a/aider/website/_posts/2024-11-21-quantization.md +++ b/aider/website/_posts/2024-11-21-quantization.md @@ -10,6 +10,7 @@ nav_exclude: true {% endif %} # Quantization matters +{: .no_toc } Open source models like Qwen 2.5 32B Instruct are performing very well on aider's code editing benchmark, rivaling closed source frontier models. @@ -18,8 +19,7 @@ can impact code editing skill. Heavily quantized models are often used by cloud API providers and local model servers like Ollama or MLX. - -The graph above compares different versions of the Qwen 2.5 Coder 32B Instruct model, +The graph and table below compares different versions of the Qwen 2.5 Coder 32B Instruct model, served both locally and from cloud providers. - The [HuggingFace BF16 weights](https://huggingface.co/Qwen/Qwen2.5-Coder-32B-Instruct) served via [glhf.chat](https://glhf.chat). @@ -38,9 +38,17 @@ It's unclear why this is happening to just this provider. The other providers available through OpenRouter perform similarly when their API is accessed directly. +### Sections +{: .no_toc } + +- TOC +{:toc} + {: .note } This article is being updated as additional benchmark runs complete. +## Benchmark results +

      vMJl+Ycs3&d&=Cm1u4RY1C`qQ$ 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 R7v+uUFIu|r#0RUt`ah5F(_a7p diff --git a/aider/website/assets/models-over-time.svg b/aider/website/assets/models-over-time.svg index 242302516..b3e835840 100644 --- a/aider/website/assets/models-over-time.svg +++ b/aider/website/assets/models-over-time.svg @@ -6,7 +6,7 @@ - 2024-11-20T19:38:35.573483 + 2024-11-20T20:15:47.248634 image/svg+xml @@ -30,18 +30,18 @@ z - - +" style="stroke: #ffa500; stroke-opacity: 0.5"/> - - + + - - + + + + + + + - - + + + + - - + + + + - - + + + + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + + + + - - + + + + + + + - - + + + + - - + + + + + + + - - + + + + + + + - - + + + + - - + + + + + + + - - + + + + - - + + + + - - + + + + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - - - - - - - - - - + + + + - - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -477,12 +620,12 @@ z - + - + @@ -496,12 +639,12 @@ z - + - + @@ -515,12 +658,12 @@ z - + - + @@ -534,12 +677,12 @@ z - + - + @@ -552,7 +695,7 @@ z - + - + - - + - + @@ -833,18 +976,18 @@ L -3.5 0 - + - + - + @@ -852,18 +995,18 @@ L 775.077623 402.541249 - + - + - + @@ -871,18 +1014,18 @@ L 775.077623 332.112999 - + - + - + - + - + - + @@ -941,18 +1084,18 @@ L 775.077623 191.256499 - + - + - + - + - + - + @@ -1020,7 +1163,7 @@ L 775.077623 50.4 - + - + - + - + - + - + - + - + - + - + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2094,130 +1812,38 @@ z - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - @@ -2294,33 +1897,11 @@ z - - - - - - - - - - - - - - - - - - - - - - - - - + + + @@ -2328,39 +1909,22 @@ z - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + @@ -2410,8 +1974,8 @@ z - - + + diff --git a/benchmark/over_time.py b/benchmark/over_time.py index 4474ca4be..7da8f22c7 100644 --- a/benchmark/over_time.py +++ b/benchmark/over_time.py @@ -5,7 +5,7 @@ from matplotlib import rc from aider.dump import dump # noqa: 401 -LABEL_FONT_SIZE = 12 # Font size for scatter plot dot labels +LABEL_FONT_SIZE = 16 # Font size for scatter plot dot labels def get_legend_label(model): @@ -128,7 +128,7 @@ def plot_over_time(yaml_file): color_to_first_point = {} color_to_label = {} - for date, rate, color, model in zip(dates, pass_rates, colors, models): + for date, rate, color, model in sorted(zip(dates, pass_rates, colors, models)): if color not in color_to_first_point: color_to_first_point[color] = (date, rate) color_to_label[color] = get_legend_label(model) @@ -202,7 +202,7 @@ def plot_over_time(yaml_file): ax.annotate( color_to_label["brown"], (date, rate), - xytext=(10, -5), + xytext=(10, -10), textcoords="offset points", color="brown", alpha=0.8, @@ -247,7 +247,7 @@ def plot_over_time(yaml_file): ax.annotate( color_to_label["cyan"], (date, rate), - xytext=(10, 5), + xytext=(10, -10), textcoords="offset points", color="cyan", alpha=0.8, From 1f0d26e8c719421feb61574efd27602d9cdf4423 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Wed, 20 Nov 2024 20:19:44 -0800 Subject: [PATCH 173/407] better over time plot --- aider/website/_data/edit_leaderboard.yml | 2 +- aider/website/assets/models-over-time.png | Bin 101141 -> 99368 bytes aider/website/assets/models-over-time.svg | 251 +++++++++------------- benchmark/over_time.py | 5 +- 4 files changed, 102 insertions(+), 156 deletions(-) diff --git a/aider/website/_data/edit_leaderboard.yml b/aider/website/_data/edit_leaderboard.yml index adc13d9e5..84cc814a3 100644 --- a/aider/website/_data/edit_leaderboard.yml +++ b/aider/website/_data/edit_leaderboard.yml @@ -1113,7 +1113,7 @@ - dirname: 2024-09-21-16-45-11--o1-preview-flex-sr-markers test_cases: 133 model: o1-preview - released: 2024-09-12 + _released: 2024-09-12 edit_format: diff commit_hash: 5493654-dirty pass_rate_1: 57.9 diff --git a/aider/website/assets/models-over-time.png b/aider/website/assets/models-over-time.png index 56836db19a6c8f444d4aa885e471c4e755444a4f..f4f7a4e2cc384956104eb988af0adaa31de7362e 100644 GIT binary patch literal 99368 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