From e8fa5c36c244dbd0318f8db2262ef1d7a5e16b89 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Sat, 30 Nov 2024 18:21:47 -0800 Subject: [PATCH 01/11] feat: add ctrl-up/down bindings for history navigation --- aider/io.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/aider/io.py b/aider/io.py index df6e71317..5cfdd2f18 100644 --- a/aider/io.py +++ b/aider/io.py @@ -418,6 +418,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") From 7b193d693f65893b5a95330345ccaaf5d640079c Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Sat, 30 Nov 2024 18:23:34 -0800 Subject: [PATCH 02/11] docs: clarify Control-Up/Down for message history navigation --- aider/website/docs/usage/commands.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) 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. From 1a8d1120552360cbe11a13aedd2dce265ddafa9a Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sat, 30 Nov 2024 18:38:40 -0800 Subject: [PATCH 03/11] copy --- aider/website/docs/troubleshooting/token-limits.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 From 49c78f2797b8f3d9b08a9ac49242014d941164c5 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Sat, 30 Nov 2024 19:15:16 -0800 Subject: [PATCH 04/11] test: update voice tests to mock audio dependencies properly --- tests/basic/test_voice.py | 98 ++++++++++++++++++--------------------- 1 file changed, 46 insertions(+), 52 deletions(-) diff --git a/tests/basic/test_voice.py b/tests/basic/test_voice.py index c87e48944..e367f54ae 100644 --- a/tests/basic/test_voice.py +++ b/tests/basic/test_voice.py @@ -1,39 +1,37 @@ import os import queue -from unittest.mock import patch +from unittest.mock import patch, MagicMock import numpy as np 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 = [ + with patch('aider.voice.sounddevice') as mock_sd: + mock_sd.query_devices.return_value = [ {"name": "test_device", "max_input_channels": 2}, {"name": "another_device", "max_input_channels": 1}, ] - yield mock_query - + 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 - 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): with pytest.raises(ValueError) as exc: @@ -41,56 +39,52 @@ def test_voice_init_invalid_device(mock_sounddevice): assert "Device" in str(exc.value) assert "not found" in str(exc.value) - 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 - - # Verify data is queued - assert not voice.q.empty() + # 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() 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 +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_keyboard_interrupt(mock_stream): - voice = Voice() - mock_stream.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 From 03c29643645e58f90a48c392dd18960158ea7a05 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Sat, 30 Nov 2024 19:15:20 -0800 Subject: [PATCH 05/11] style: Format code with black and sort imports --- tests/basic/test_voice.py | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/tests/basic/test_voice.py b/tests/basic/test_voice.py index e367f54ae..7dc288a43 100644 --- a/tests/basic/test_voice.py +++ b/tests/basic/test_voice.py @@ -1,52 +1,59 @@ import os import queue -from unittest.mock import patch, MagicMock +from unittest.mock import MagicMock, patch import numpy as np import pytest from aider.voice import SoundDeviceError, Voice + # Mock the entire sounddevice module @pytest.fixture def mock_sounddevice(): - with patch('aider.voice.sounddevice') as mock_sd: + with patch("aider.voice.sounddevice") as mock_sd: mock_sd.query_devices.return_value = [ {"name": "test_device", "max_input_channels": 2}, {"name": "another_device", "max_input_channels": 1}, ] yield mock_sd + @pytest.fixture def mock_soundfile(): - with patch('aider.voice.sf') as mock_sf: + with patch("aider.voice.sf") as mock_sf: yield mock_sf + 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): with pytest.raises(ValueError) as exc: Voice(device_name="nonexistent_device") assert "Device" in str(exc.value) assert "not found" in str(exc.value) + def test_voice_init_invalid_format(): - with patch('aider.voice.sf', MagicMock()): # Need to mock sf to avoid SoundDeviceError + 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(): - with patch('aider.voice.sf', MagicMock()): # Need to mock sf to avoid SoundDeviceError + with patch("aider.voice.sf", MagicMock()): # Need to mock sf to avoid SoundDeviceError voice = Voice() voice.q = queue.Queue() @@ -63,8 +70,9 @@ def test_callback_processing(): # Verify data is queued assert not voice.q.empty() + def test_get_prompt(): - with patch('aider.voice.sf', MagicMock()): # Need to mock sf to avoid SoundDeviceError + 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 @@ -75,16 +83,20 @@ def test_get_prompt(): assert "█" in prompt # Should contain some filled blocks assert "░" in prompt # Should contain some empty blocks + def test_record_and_transcribe_keyboard_interrupt(): - with patch('aider.voice.sf', MagicMock()): + with patch("aider.voice.sf", MagicMock()): voice = Voice() - with patch.object(voice, 'raw_record_and_transcribe', side_effect=KeyboardInterrupt()): + with patch.object(voice, "raw_record_and_transcribe", side_effect=KeyboardInterrupt()): result = voice.record_and_transcribe() assert result is None + def test_record_and_transcribe_device_error(): - with patch('aider.voice.sf', MagicMock()): + with patch("aider.voice.sf", MagicMock()): voice = Voice() - with patch.object(voice, 'raw_record_and_transcribe', side_effect=SoundDeviceError("Test error")): + with patch.object( + voice, "raw_record_and_transcribe", side_effect=SoundDeviceError("Test error") + ): result = voice.record_and_transcribe() assert result is None From 9304b80b6911a17e5172bf52b6bc569df1f63b48 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Sat, 30 Nov 2024 19:15:40 -0800 Subject: [PATCH 06/11] fix: update sounddevice mocking in voice tests --- tests/basic/test_voice.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/basic/test_voice.py b/tests/basic/test_voice.py index 7dc288a43..cfdc643ba 100644 --- a/tests/basic/test_voice.py +++ b/tests/basic/test_voice.py @@ -11,12 +11,13 @@ from aider.voice import SoundDeviceError, Voice # Mock the entire sounddevice module @pytest.fixture def mock_sounddevice(): - with patch("aider.voice.sounddevice") as mock_sd: + with patch("sounddevice") as mock_sd: mock_sd.query_devices.return_value = [ {"name": "test_device", "max_input_channels": 2}, {"name": "another_device", "max_input_channels": 1}, ] - yield mock_sd + with patch.dict("sys.modules", {"sounddevice": mock_sd}): + yield mock_sd @pytest.fixture From b671db7108c3d6a230f4ece1038ac9cc44d7a92d Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Sat, 30 Nov 2024 19:15:58 -0800 Subject: [PATCH 07/11] fix: correct sounddevice module mocking in voice tests --- tests/basic/test_voice.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/basic/test_voice.py b/tests/basic/test_voice.py index cfdc643ba..00ec1d79d 100644 --- a/tests/basic/test_voice.py +++ b/tests/basic/test_voice.py @@ -11,13 +11,13 @@ from aider.voice import SoundDeviceError, Voice # Mock the entire sounddevice module @pytest.fixture def mock_sounddevice(): - with patch("sounddevice") as mock_sd: - 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 + 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 From 36b59ba617c98042642f275ee3578d35e00a583e Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sun, 1 Dec 2024 06:04:49 -0800 Subject: [PATCH 08/11] copy --- HISTORY.md | 3 +- aider/website/HISTORY.md | 3 +- aider/website/assets/sample-analytics.jsonl | 150 ++++++++++---------- 3 files changed, 79 insertions(+), 77 deletions(-) diff --git a/HISTORY.md b/HISTORY.md index af6e5963a..6f382d50a 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -6,6 +6,7 @@ - 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. @@ -13,7 +14,7 @@ - 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/HISTORY.md b/aider/website/HISTORY.md index 40556eab5..badac74ba 100644 --- a/aider/website/HISTORY.md +++ b/aider/website/HISTORY.md @@ -30,6 +30,7 @@ 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. @@ -37,7 +38,7 @@ cog.out(text) - 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..c1d79dc18 100644 --- a/aider/website/assets/sample-analytics.jsonl +++ b/aider/website/assets/sample-analytics.jsonl @@ -1,78 +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} @@ -998,3 +923,78 @@ {"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} From 1271c037ef2e87f83251a7c885d88f2df8e5d16d Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Sun, 1 Dec 2024 06:06:03 -0800 Subject: [PATCH 09/11] ci: add PortAudio system dependency for Ubuntu tests --- .github/workflows/ubuntu-tests.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/ubuntu-tests.yml b/.github/workflows/ubuntu-tests.yml index 41545cfb0..efa580117 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 portaudio19-dev + - name: Install dependencies run: | python -m pip install --upgrade pip From b0e138952e07f0e5f5bc0b46896a6b91dc789379 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sun, 1 Dec 2024 06:06:42 -0800 Subject: [PATCH 10/11] libportaudio2 --- .github/workflows/ubuntu-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ubuntu-tests.yml b/.github/workflows/ubuntu-tests.yml index efa580117..5efd26520 100644 --- a/.github/workflows/ubuntu-tests.yml +++ b/.github/workflows/ubuntu-tests.yml @@ -36,7 +36,7 @@ jobs: - name: Install system dependencies run: | sudo apt-get update - sudo apt-get install -y portaudio19-dev + sudo apt-get install -y libportaudio2 - name: Install dependencies run: | From 16af1751a67e231eeac7fcb2e061ddad26a04363 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sun, 1 Dec 2024 06:09:11 -0800 Subject: [PATCH 11/11] copy --- HISTORY.md | 1 + aider/website/HISTORY.md | 1 + aider/website/assets/sample-analytics.jsonl | 22 ++++++++++----------- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/HISTORY.md b/HISTORY.md index 6f382d50a..0ab37213d 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -10,6 +10,7 @@ - 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. diff --git a/aider/website/HISTORY.md b/aider/website/HISTORY.md index badac74ba..3741fc80c 100644 --- a/aider/website/HISTORY.md +++ b/aider/website/HISTORY.md @@ -34,6 +34,7 @@ cog.out(text) - 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. diff --git a/aider/website/assets/sample-analytics.jsonl b/aider/website/assets/sample-analytics.jsonl index c1d79dc18..d967c6e84 100644 --- a/aider/website/assets/sample-analytics.jsonl +++ b/aider/website/assets/sample-analytics.jsonl @@ -1,14 +1,3 @@ -{"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 +987,14 @@ {"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}