diff --git a/.github/workflows/ubuntu-tests.yml b/.github/workflows/ubuntu-tests.yml index 41545cfb0..5efd26520 100644 --- a/.github/workflows/ubuntu-tests.yml +++ b/.github/workflows/ubuntu-tests.yml @@ -33,6 +33,11 @@ jobs: with: python-version: ${{ matrix.python-version }} + - name: Install system dependencies + run: | + sudo apt-get update + sudo apt-get install -y libportaudio2 + - name: Install dependencies run: | python -m pip install --upgrade pip diff --git a/HISTORY.md b/HISTORY.md index af6e5963a..0ab37213d 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -6,14 +6,16 @@ - Added `--voice-input-device` to select audio input device for voice recording, by @preynal. - Added `--timeout` option to configure API call timeouts. - Set cwd to repo root when running shell commands. +- Added Ctrl-Up/Down keyboard shortcuts for per-message history navigation. - Improved error handling for failed .gitignore file operations. - Improved error handling for input history file permissions. - Improved error handling for analytics file access. +- Removed spurious warning about disabling pretty in VSCode. - Removed broken support for Dart. - Bugfix when scraping URLs found in chat messages. - Better handling of __version__ import errors. - Improved `/drop` command to support substring matching for non-glob patterns. -- Aider wrote 79% of the code in this release. +- Aider wrote 82% of the code in this release. ### Aider v0.65.1 diff --git a/aider/io.py b/aider/io.py index b6d1617bc..eb4a68ad5 100644 --- a/aider/io.py +++ b/aider/io.py @@ -430,6 +430,16 @@ class InputOutput: "Ignore Ctrl when pressing space bar" event.current_buffer.insert_text(" ") + @kb.add("c-up") + def _(event): + "Navigate backward through history" + event.current_buffer.history_backward() + + @kb.add("c-down") + def _(event): + "Navigate forward through history" + event.current_buffer.history_forward() + @kb.add("escape", "c-m", eager=True) def _(event): event.current_buffer.insert_text("\n") diff --git a/aider/website/HISTORY.md b/aider/website/HISTORY.md index 40556eab5..3741fc80c 100644 --- a/aider/website/HISTORY.md +++ b/aider/website/HISTORY.md @@ -30,14 +30,16 @@ cog.out(text) - Added `--voice-input-device` to select audio input device for voice recording, by @preynal. - Added `--timeout` option to configure API call timeouts. - Set cwd to repo root when running shell commands. +- Added Ctrl-Up/Down keyboard shortcuts for per-message history navigation. - Improved error handling for failed .gitignore file operations. - Improved error handling for input history file permissions. - Improved error handling for analytics file access. +- Removed spurious warning about disabling pretty in VSCode. - Removed broken support for Dart. - Bugfix when scraping URLs found in chat messages. - Better handling of __version__ import errors. - Improved `/drop` command to support substring matching for non-glob patterns. -- Aider wrote 79% of the code in this release. +- Aider wrote 82% of the code in this release. ### Aider v0.65.1 diff --git a/aider/website/assets/sample-analytics.jsonl b/aider/website/assets/sample-analytics.jsonl index 1fec02162..d967c6e84 100644 --- a/aider/website/assets/sample-analytics.jsonl +++ b/aider/website/assets/sample-analytics.jsonl @@ -1,89 +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": "diff", "prompt_tokens": 9871, "completion_tokens": 390, "total_tokens": 10261, "cost": 0.035463, "total_cost": 0.9474720000000001, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732720166} -{"event": "command_clear", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732720204} -{"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": 9530, "completion_tokens": 212, "total_tokens": 9742, "cost": 0.03177, "total_cost": 0.9792420000000001, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732720237} -{"event": "command_clear", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732720241} -{"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": 9492, "completion_tokens": 1152, "total_tokens": 10644, "cost": 0.045756000000000005, "total_cost": 1.024998, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732720303} -{"event": "command_clear", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732720351} -{"event": "command_ask", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732720395} -{"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": 7094, "completion_tokens": 285, "total_tokens": 7379, "cost": 0.025557, "total_cost": 1.0505550000000001, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732720404} -{"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": 9457, "completion_tokens": 114, "total_tokens": 9571, "cost": 0.030081, "total_cost": 1.0806360000000002, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732720447} -{"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": 9446, "completion_tokens": 0, "total_tokens": 9446, "cost": 0.028338000000000002, "total_cost": 1.1089740000000001, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732720474} -{"event": "command_drop", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732720482} -{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732720488} -{"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": 9678, "completion_tokens": 133, "total_tokens": 9811, "cost": 0.031029, "total_cost": 1.140003, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732720524} -{"event": "command_drop", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732720571} -{"event": "command_drop", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732720578} -{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732720593} -{"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": 9618, "completion_tokens": 647, "total_tokens": 10265, "cost": 0.038559, "total_cost": 1.178562, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732720636} -{"event": "command_clear", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732720658} -{"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": 9208, "completion_tokens": 594, "total_tokens": 9802, "cost": 0.036534, "total_cost": 1.2150960000000002, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732720675} -{"event": "command_drop", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732720826} -{"event": "command_clear", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732720828} -{"event": "command_run", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732720863} -{"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": 7400, "completion_tokens": 261, "total_tokens": 7661, "cost": 0.026115, "total_cost": 1.2412110000000003, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732720897} -{"event": "command_undo", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732720921} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732721914} -{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732721914} -{"event": "command_clear", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732722371} -{"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": 7199, "completion_tokens": 0, "total_tokens": 7199, "cost": 0.021597, "total_cost": 1.2628080000000004, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732722388} -{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732722390} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732722465} -{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732722466} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732722618} -{"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.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732722618} -{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732722620} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732722634} -{"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.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732722637} -{"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": 2432, "completion_tokens": 278, "total_tokens": 2710, "cost": 0.011466, "total_cost": 0.011466, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732722666} -{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732722889} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732722911} -{"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.65.2.dev"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732722911} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732723217} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732723309} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732723352} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732723447} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732723470} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732723496} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732726774} -{"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.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732726775} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732727171} -{"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.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732727171} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732727181} -{"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.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732727181} -{"event": "command_ask", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732727219} -{"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": 3228, "completion_tokens": 818, "total_tokens": 4046, "cost": 0.021954, "total_cost": 0.021954, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732727236} -{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732727242} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732728382} -{"event": "repo", "properties": {"num_files": 389, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732728383} -{"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.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732728383} -{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732728387} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732728731} -{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732728741} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732728864} -{"event": "repo", "properties": {"num_files": 389, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732728864} -{"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": 24438, "completion_tokens": 236, "total_tokens": 24674, "cost": 0.076854, "total_cost": 0.076854, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732728874} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732729035} -{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732729035} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732749854} -{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732749855} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732750523} -{"event": "model warning", "properties": {"main_model": "glhf/REDACTED", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "glhf/REDACTED", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732750525} -{"event": "repo", "properties": {"num_files": 389, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732750526} -{"event": "cli session", "properties": {"main_model": "glhf/REDACTED", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "glhf/REDACTED", "edit_format": "diff", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732750526} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732751693} -{"event": "repo", "properties": {"num_files": 389, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732751693} -{"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.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732751693} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732751705} -{"event": "repo", "properties": {"num_files": 390, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732751705} -{"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.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732751705} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732752201} -{"event": "model warning", "properties": {"main_model": "hyperbolic/REDACTED", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "hyperbolic/REDACTED", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732752203} -{"event": "repo", "properties": {"num_files": 390, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732752207} -{"event": "cli session", "properties": {"main_model": "hyperbolic/REDACTED", "weak_model": "claude-3-5-sonnet-20241022", "editor_model": "hyperbolic/REDACTED", "edit_format": "whole", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732752207} -{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732752619} -{"event": "repo", "properties": {"num_files": 390, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732752619} -{"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.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732752620} -{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732752644} {"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732752674} {"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732752677} {"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev62+gf44e5ae5"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1732752683} @@ -998,3 +912,89 @@ {"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": 20044, "completion_tokens": 441, "total_tokens": 20485, "cost": 0.066747, "total_cost": 0.066747, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733004111} {"event": "exit", "properties": {"reason": "Completed --message", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733004111} {"event": "exit", "properties": {"reason": "Completed main CLI coder.run", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733004294} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733010028} +{"event": "repo", "properties": {"num_files": 389, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733010028} +{"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.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733010029} +{"event": "message_send_starting", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733010052} +{"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": 4531, "completion_tokens": 906, "total_tokens": 5437, "cost": 0.027183, "total_cost": 0.027183, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733010070} +{"event": "message_send_starting", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733010092} +{"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": 7253, "completion_tokens": 115, "total_tokens": 7368, "cost": 0.023484, "total_cost": 0.050667000000000004, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733010097} +{"event": "message_send_starting", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733010121} +{"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": 10779, "completion_tokens": 369, "total_tokens": 11148, "cost": 0.037871999999999996, "total_cost": 0.088539, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733010130} +{"event": "command_run", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733010141} +{"event": "message_send_starting", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733010151} +{"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": 15484, "completion_tokens": 340, "total_tokens": 15824, "cost": 0.051552, "total_cost": 0.14009100000000002, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733010160} +{"event": "message_send_starting", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733010182} +{"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": 10547, "completion_tokens": 242, "total_tokens": 10789, "cost": 0.035271000000000004, "total_cost": 0.17536200000000002, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733010188} +{"event": "message_send_starting", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733010194} +{"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": 5735, "completion_tokens": 82, "total_tokens": 5817, "cost": 0.018435, "total_cost": 0.19379700000000002, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733010197} +{"event": "exit", "properties": {"reason": "Control-C", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733010204} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733010292} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733010292} +{"event": "exit", "properties": {"reason": "GUI session ended", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733010292} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019525} +{"event": "repo", "properties": {"num_files": 390, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019525} +{"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.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019525} +{"event": "command_help", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019532} +{"event": "interactive help", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019532} +{"event": "message_send_starting", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019544} +{"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": 3658, "completion_tokens": 103, "total_tokens": 3761, "cost": 0.012519, "total_cost": 0.012519, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019549} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019557} +{"event": "repo", "properties": {"num_files": 390, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019558} +{"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.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019558} +{"event": "exit", "properties": {"reason": "Control-C", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019577} +{"event": "exit", "properties": {"reason": "Completed main CLI coder.run", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019681} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019683} +{"event": "repo", "properties": {"num_files": 390, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019684} +{"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.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019684} +{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019686} +{"event": "message_send_starting", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019697} +{"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": 9097, "completion_tokens": 303, "total_tokens": 9400, "cost": 0.031836, "total_cost": 0.031836, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019705} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019714} +{"event": "repo", "properties": {"num_files": 390, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019715} +{"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.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019715} +{"event": "exit", "properties": {"reason": "Control-C", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019736} +{"event": "exit", "properties": {"reason": "Completed main CLI coder.run", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019737} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019772} +{"event": "repo", "properties": {"num_files": 390, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019773} +{"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.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019773} +{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019782} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019796} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019797} +{"event": "exit", "properties": {"reason": "GUI session ended", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019797} +{"event": "message_send_starting", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019804} +{"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": 4628, "completion_tokens": 328, "total_tokens": 4956, "cost": 0.018804, "total_cost": 0.018804, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733019812} +{"event": "command_exit", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733020744} +{"event": "exit", "properties": {"reason": "/exit", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733020745} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733022859} +{"event": "repo", "properties": {"num_files": 390, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733022859} +{"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.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733022859} +{"event": "command_ask", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733022864} +{"event": "message_send_starting", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733022864} +{"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": 3176, "completion_tokens": 905, "total_tokens": 4081, "cost": 0.023103, "total_cost": 0.023103, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733022884} +{"event": "message_send_starting", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733022886} +{"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": 6138, "completion_tokens": 1401, "total_tokens": 7539, "cost": 0.039429, "total_cost": 0.062532, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733022914} +{"event": "message_send_starting", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733022931} +{"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": 9598, "completion_tokens": 304, "total_tokens": 9902, "cost": 0.033354, "total_cost": 0.095886, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733022938} +{"event": "message_send_starting", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733022949} +{"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": 9092, "completion_tokens": 330, "total_tokens": 9422, "cost": 0.032226000000000005, "total_cost": 0.128112, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733022957} +{"event": "exit", "properties": {"reason": "Control-C", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733023128} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733023182} +{"event": "gui session", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733023182} +{"event": "exit", "properties": {"reason": "GUI session ended", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733023182} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733061765} +{"event": "no-repo", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733061765} +{"event": "message_send_starting", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733061766} +{"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": 20318, "completion_tokens": 452, "total_tokens": 20770, "cost": 0.067734, "total_cost": 0.067734, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733061779} +{"event": "exit", "properties": {"reason": "Completed --message", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733061779} +{"event": "launched", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733061892} +{"event": "repo", "properties": {"num_files": 390, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733061893} +{"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.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733061893} +{"event": "command_add", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733061896} +{"event": "command_ask", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733061931} +{"event": "message_send_starting", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733061931} +{"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": 1502, "completion_tokens": 378, "total_tokens": 1880, "cost": 0.010176000000000001, "total_cost": 0.010176000000000001, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733061939} +{"event": "message_send_starting", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733061956} +{"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": 4057, "completion_tokens": 190, "total_tokens": 4247, "cost": 0.015021, "total_cost": 0.025197, "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733061961} +{"event": "command_diff", "properties": {"python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733061965} +{"event": "exit", "properties": {"reason": "Control-C", "python_version": "3.12.6", "os_platform": "Darwin", "os_release": "23.6.0", "machine": "x86_64", "aider_version": "0.65.2.dev104+g295040c9.d20241130"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1733061968} diff --git a/aider/website/docs/troubleshooting/token-limits.md b/aider/website/docs/troubleshooting/token-limits.md index a3812475c..0e68b5491 100644 --- a/aider/website/docs/troubleshooting/token-limits.md +++ b/aider/website/docs/troubleshooting/token-limits.md @@ -37,7 +37,7 @@ For more info: https://aider.chat/docs/token-limits.html 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) +[configure aider with the proper token limits](https://aider.chat/docs/config/adv-model-settings.html#context-window-size-and-token-costs) for unusual models. ## Input tokens & context window size diff --git a/aider/website/docs/usage/commands.md b/aider/website/docs/usage/commands.md index 8f445afb9..8cb144a11 100644 --- a/aider/website/docs/usage/commands.md +++ b/aider/website/docs/usage/commands.md @@ -77,8 +77,10 @@ The interactive prompt is built with [prompt-toolkit](https://github.com/prompt- ### Emacs -- `Up Arrow` : Scroll back through previously sent messages. -- `Down Arrow` : Scroll forward through previously sent messages. +- `Up Arrow` : Move up one line in the current message. +- `Down Arrow` : Move down one line in the current message. +- `Ctrl-Up` : Scroll back through previously sent messages. +- `Ctrl-Down` : Scroll forward through previously sent messages. - `Ctrl-A` : Move cursor to the start of the line. - `Ctrl-B` : Move cursor back one character. - `Ctrl-D` : Delete the character under the cursor. @@ -95,8 +97,10 @@ The interactive prompt is built with [prompt-toolkit](https://github.com/prompt- To use vi/vim keybindings, run aider with the `--vim` switch. -- `Up Arrow` : Scroll back through previously sent messages. -- `Down Arrow` : Scroll forward through previously sent messages. +- `Up Arrow` : Move up one line in the current message. +- `Down Arrow` : Move down one line in the current message. +- `Ctrl-Up` : Scroll back through previously sent messages. +- `Ctrl-Down` : Scroll forward through previously sent messages. - `Esc` : Switch to command mode. - `i` : Switch to insert mode. - `a` : Move cursor one character to the right and switch to insert mode. diff --git a/tests/basic/test_voice.py b/tests/basic/test_voice.py index c87e48944..00ec1d79d 100644 --- a/tests/basic/test_voice.py +++ b/tests/basic/test_voice.py @@ -1,6 +1,6 @@ import os import queue -from unittest.mock import patch +from unittest.mock import MagicMock, patch import numpy as np import pytest @@ -8,19 +8,21 @@ import pytest from aider.voice import SoundDeviceError, Voice +# Mock the entire sounddevice module @pytest.fixture def mock_sounddevice(): - with patch("sounddevice.query_devices") as mock_query: - mock_query.return_value = [ - {"name": "test_device", "max_input_channels": 2}, - {"name": "another_device", "max_input_channels": 1}, - ] - yield mock_query + mock_sd = MagicMock() + mock_sd.query_devices.return_value = [ + {"name": "test_device", "max_input_channels": 2}, + {"name": "another_device", "max_input_channels": 1}, + ] + with patch.dict("sys.modules", {"sounddevice": mock_sd}): + yield mock_sd @pytest.fixture def mock_soundfile(): - with patch("soundfile.SoundFile") as mock_sf: + with patch("aider.voice.sf") as mock_sf: yield mock_sf @@ -28,11 +30,13 @@ def test_voice_init_default_device(mock_sounddevice): voice = Voice() assert voice.device_id is None assert voice.audio_format == "wav" + assert voice.sd == mock_sounddevice def test_voice_init_specific_device(mock_sounddevice): voice = Voice(device_name="test_device") assert voice.device_id == 0 + assert voice.sd == mock_sounddevice def test_voice_init_invalid_device(mock_sounddevice): @@ -43,54 +47,57 @@ def test_voice_init_invalid_device(mock_sounddevice): def test_voice_init_invalid_format(): - with pytest.raises(ValueError) as exc: - Voice(audio_format="invalid") - assert "Unsupported audio format" in str(exc.value) + with patch("aider.voice.sf", MagicMock()): # Need to mock sf to avoid SoundDeviceError + with pytest.raises(ValueError) as exc: + Voice(audio_format="invalid") + assert "Unsupported audio format" in str(exc.value) def test_callback_processing(): - voice = Voice() - voice.q = queue.Queue() + with patch("aider.voice.sf", MagicMock()): # Need to mock sf to avoid SoundDeviceError + voice = Voice() + voice.q = queue.Queue() - # Test with silence (low amplitude) - test_data = np.zeros((1000, 1)) - voice.callback(test_data, None, None, None) - assert voice.pct == 0.5 # When range is too small (<=0.001), pct is set to 0.5 + # Test with silence (low amplitude) + test_data = np.zeros((1000, 1)) + voice.callback(test_data, None, None, None) + assert voice.pct == 0.5 # When range is too small (<=0.001), pct is set to 0.5 - # Test with loud signal (high amplitude) - test_data = np.ones((1000, 1)) - voice.callback(test_data, None, None, None) - assert voice.pct > 0.9 + # Test with loud signal (high amplitude) + test_data = np.ones((1000, 1)) + voice.callback(test_data, None, None, None) + assert voice.pct > 0.9 - # Verify data is queued - assert not voice.q.empty() + # Verify data is queued + assert not voice.q.empty() def test_get_prompt(): - voice = Voice() - voice.start_time = voice.start_time = os.times().elapsed - voice.pct = 0.5 # 50% volume level + with patch("aider.voice.sf", MagicMock()): # Need to mock sf to avoid SoundDeviceError + voice = Voice() + voice.start_time = os.times().elapsed + voice.pct = 0.5 # 50% volume level - prompt = voice.get_prompt() - assert "Recording" in prompt - assert "sec" in prompt - assert "█" in prompt # Should contain some filled blocks - assert "░" in prompt # Should contain some empty blocks + prompt = voice.get_prompt() + assert "Recording" in prompt + assert "sec" in prompt + assert "█" in prompt # Should contain some filled blocks + assert "░" in prompt # Should contain some empty blocks -@patch("sounddevice.InputStream") -def test_record_and_transcribe_keyboard_interrupt(mock_stream): - voice = Voice() - mock_stream.side_effect = KeyboardInterrupt() - - result = voice.record_and_transcribe() - assert result is None +def test_record_and_transcribe_keyboard_interrupt(): + with patch("aider.voice.sf", MagicMock()): + voice = Voice() + with patch.object(voice, "raw_record_and_transcribe", side_effect=KeyboardInterrupt()): + result = voice.record_and_transcribe() + assert result is None -@patch("sounddevice.InputStream") -def test_record_and_transcribe_device_error(mock_stream): - voice = Voice() - mock_stream.side_effect = SoundDeviceError("Test error") - - result = voice.record_and_transcribe() - assert result is None +def test_record_and_transcribe_device_error(): + with patch("aider.voice.sf", MagicMock()): + voice = Voice() + with patch.object( + voice, "raw_record_and_transcribe", side_effect=SoundDeviceError("Test error") + ): + result = voice.record_and_transcribe() + assert result is None