diff --git a/.gitignore b/.gitignore index 8ad33fd3c..fd1fa9a4d 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,5 @@ aider/_version.py .venv/ .#* .gitattributes -tmp.benchmarks/ \ No newline at end of file +tmp.benchmarks/ +.docker_bash_history \ No newline at end of file diff --git a/HISTORY.md b/HISTORY.md index 6a560a5f0..d113d0adf 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,6 +1,96 @@ # Release history -### main branch +### Aider v0.86.0 + +- Expanded GPT-5 model support across family variants and providers (OpenAI, Azure, OpenRouter), including dated and chat/mini/nano variants. +- Aider wrote 88% of the code in this release. + +### Aider v0.85.5 + +- Enforced diff edit format for GPT-5 models. +- Added support for the reasoning_effort setting for GPT-5 models. +- Fixed model detection to correctly apply GPT-5 settings to versioned names (gpt-5 and gpt-5-2025-08-07). + +### Aider v0.85.4 + +- Added support for openai/gpt-5 +- Fixed analytics to support the latest PostHog SDK event-capture API. +- Disabled temperature when using GPT-5 models for more deterministic outputs. + +### Aider v0.85.3 + +- Bumped dependencies to pick up latest litellm==1.75.0. + +### Aider v0.85.2 + +- Added support for Grok-4 via `xai/grok-4` and `openrouter/x-ai/grok-4` model names. +- Added support for `gemini/gemini-2.5-flash-lite-preview-06-17` model, by Tamir Zahavi-Brunner. +- `/clear` now prints β€œAll chat history cleared.” so you know it worked, by Zexin Yuan. +- `/undo` output now shows only the first line of each commit message, making it easier to read. +- Fixed an issue where new settings for an existing model didn't replace the old ones, by Andrew Grigorev. +- Added support for `openrouter/moonshotai/kimi-k2` model, by Jack Harrington. + +### Aider v0.85.1 + +- Display model announcements with no-arg `/model` command. + +### Aider v0.85.0 + +- Support for Responses API models like o1-pro, o3-pro. +- Updated pricing for o3. +- Added support for new Gemini models including `gemini-2.5-pro`, `gemini-2.5-flash`, and `gemini-2.5-pro-preview-06-05` with thinking tokens support. +- Updated model aliases: `flash` now points to `gemini-2.5-flash` and `gemini` now points to `gemini-2.5-pro`. +- Added `--add-gitignore-files` flag to enable adding files listed in .gitignore to Aider's editing scope, by omarcinkonis. +- Added `--commit-language` option to specify the language for commit messages, by Kyosuke Takayama. +- Enhanced thinking tokens support: can now be disabled by setting to 0, and improved help text with examples. +- Added MATLAB language support for repository maps, by Matthew Tofano. +- Added support for OpenAI o3-pro model across multiple providers. +- Improved GitHub Copilot token handling with better validation and error messages, by Vincent Taverna and Sebastian Estrella. +- Fixed encoding issues in git diff output and LLM history logging. +- Enhanced commit message generation to use system prompt prefixes, by Luke Reeves. +- Improved inline code rendering in Rich markdown output, by Vamsi Talupula. +- Fixed Vertex AI model name prefixes in settings, by Wietse Venema. +- Improved `/read-only` command to resolve literal paths correctly, by Matteo Landi. +- Skip expensive file tracking operations when `--skip-sanity-check-repo` is enabled for better performance, by Makar Ivashko. +- Ensure pip is available before package installation. +- Auto-create parent directories for chat history files to prevent startup errors, by contributor. +- Fixed search block regex to accept optional closing tags when working with HTML content, by Mathis Beer. +- Co-authored-by attribution is now enabled by default for commit messages. +- Added Clojure language support for repository maps, by Garrett Hopper. +- Added custom PostHog analytics configuration options with `--analytics-posthog-host` and `--analytics-posthog-project-api-key` flags, by Vasil Markoukin. +- Optimized chat history summarization performance, by jayeshthk. +- Improved kebab-case identifier recognition in repository maps for better code analysis. +- Increased max tokens for Deepseek models to 65536 for better performance. +- Aider wrote 21% of the code in this release. + +### Aider v0.84.0 + +- Added support for new Claude models including the Sonnet 4 and Opus 4 series (e.g., `claude-sonnet-4-20250514`, +`claude-opus-4-20250514`) across various providers. The default `sonnet` and `opus` aliases were updated to these newer +versions. +- Added support for the `vertex_ai/gemini-2.5-flash-preview-05-20` model. +- Fixed OpenRouter token cost calculation for improved accuracy. +- Updated default OpenRouter models during onboarding to `deepseek/deepseek-r1:free` for the free tier and +`anthropic/claude-sonnet-4` for paid tiers. +- Automatically refresh GitHub Copilot tokens when used as OpenAI API keys, by Lih Chen. +- Aider wrote 79% of the code in this release. + +### Aider v0.83.2 + +- Bumped configargparse to 1.7.1 as 1.7 was pulled. +- Added shell tab completion for file path arguments (by saviour) and for `--edit-format`/`--editor-edit-format` options. +- Improved OpenRouter model metadata handling by introducing a local cache, increasing reliability and performance. +- The `/settings` command now displays detailed metadata for active main, editor, and weak models. +- Fixed an issue where files explicitly added via the command line were not correctly ignored if listed in `.gitignore`. +- Improved automatic commit messages by providing more context during their generation, by wangboxue. + +### Aider v0.83.1 + +- Improved user language detection by correctly normalizing hyphenated language codes (e.g., `en-US` to `en`) and enhancing the validation of locale results. +- Prevented Aider from instructing the LLM to reply in 'C' or 'POSIX' when these are detected as the system locale. +- Displayed a spinner with the model name when generating commit messages. + +### Aider v0.83.0 - Added support for `gemini-2.5-pro-preview-05-06` models. - Added support for `qwen3-235b` models. @@ -404,7 +494,7 @@ - [Aider works with LLM web chat UIs](https://aider.chat/docs/usage/copypaste.html). - New `--copy-paste` mode. - New `/copy-context` command. -- [Set API keys and other environment variables for all providers from command line or yaml conf file](https://aider.chat/docs/config/aider_conf.html#storing-llm-keys). +- [Set API keys and other environment variables for all providers from command line or YAML conf file](https://aider.chat/docs/config/aider_conf.html#storing-llm-keys). - New `--api-key provider=key` setting. - New `--set-env VAR=value` setting. - Added bash and zsh support to `--watch-files`. @@ -572,7 +662,7 @@ ### Aider v0.59.1 -- Check for obsolete `yes: true` in yaml config, show helpful error. +- Check for obsolete `yes: true` in YAML config, show helpful error. - Model settings for openrouter/anthropic/claude-3.5-sonnet:beta ### Aider v0.59.0 @@ -582,7 +672,7 @@ - Still auto-completes the full paths of the repo files like `/add`. - Now supports globs like `src/**/*.py` - Renamed `--yes` to `--yes-always`. - - Now uses `AIDER_YES_ALWAYS` env var and `yes-always:` yaml key. + - Now uses `AIDER_YES_ALWAYS` env var and `yes-always:` YAML key. - Existing YAML and .env files will need to be updated. - Can still abbreviate to `--yes` on the command line. - Config file now uses standard YAML list syntax with ` - list entries`, one per line. @@ -789,7 +879,7 @@ - Use `--map-refresh ` to configure. - Improved cost estimate logic for caching. - Improved editing performance on Jupyter Notebook `.ipynb` files. -- Show which config yaml file is loaded with `--verbose`. +- Show which config YAML file is loaded with `--verbose`. - Bumped dependency versions. - Bugfix: properly load `.aider.models.metadata.json` data. - Bugfix: Using `--msg /ask ...` caused an exception. diff --git a/README.md b/README.md index d4677b58c..c04b775f6 100644 --- a/README.md +++ b/README.md @@ -27,13 +27,13 @@ cog.out(text) GitHub Stars PyPI Downloads +src="https://img.shields.io/badge/πŸ“¦%20Installs-4.1M-2ecc71?style=flat-square&labelColor=555555"/> Tokens per week OpenRouter Ranking Singularity +src="https://img.shields.io/badge/πŸ”„%20Singularity-88%25-e74c3c?style=flat-square&labelColor=555555"/>

@@ -136,43 +136,45 @@ See the [installation instructions](https://aider.chat/docs/install.html) and [u - [LLM Leaderboards](https://aider.chat/docs/leaderboards/) - [GitHub Repository](https://github.com/Aider-AI/aider) - [Discord Community](https://discord.gg/Y7X7bhMQFV) +- [Release notes](https://aider.chat/HISTORY.html) - [Blog](https://aider.chat/blog/) ## Kind Words From Users -- *"My life has changed... There's finally an AI coding tool that's good enough to keep up with me... Aider... It's going to rock your world."* β€” [Eric S. Raymond](https://x.com/esrtweet/status/1910809356381413593) -- *"The best free open source AI coding assistant."* β€” [IndyDevDan](https://youtu.be/YALpX8oOn78) -- *"The best AI coding assistant so far."* β€” [Matthew Berman](https://www.youtube.com/watch?v=df8afeb1FY8) -- *"Aider ... has easily quadrupled my coding productivity."* β€” [SOLAR_FIELDS](https://news.ycombinator.com/item?id=36212100) -- *"It's a cool workflow... Aider's ergonomics are perfect for me."* β€” [qup](https://news.ycombinator.com/item?id=38185326) -- *"It's really like having your senior developer live right in your Git repo - truly amazing!"* β€” [rappster](https://github.com/Aider-AI/aider/issues/124) -- *"What an amazing tool. It's incredible."* β€” [valyagolev](https://github.com/Aider-AI/aider/issues/6#issue-1722897858) -- *"Aider is such an astounding thing!"* β€” [cgrothaus](https://github.com/Aider-AI/aider/issues/82#issuecomment-1631876700) -- *"It was WAY faster than I would be getting off the ground and making the first few working versions."* β€” [Daniel Feldman](https://twitter.com/d_feldman/status/1662295077387923456) -- *"THANK YOU for Aider! It really feels like a glimpse into the future of coding."* β€” [derwiki](https://news.ycombinator.com/item?id=38205643) -- *"It's just amazing. It is freeing me to do things I felt were out my comfort zone before."* β€” [Dougie](https://discord.com/channels/1131200896827654144/1174002618058678323/1174084556257775656) -- *"This project is stellar."* β€” [funkytaco](https://github.com/Aider-AI/aider/issues/112#issuecomment-1637429008) -- *"Amazing project, definitely the best AI coding assistant I've used."* β€” [joshuavial](https://github.com/Aider-AI/aider/issues/84) -- *"I absolutely love using Aider ... It makes software development feel so much lighter as an experience."* β€” [principalideal0](https://discord.com/channels/1131200896827654144/1133421607499595858/1229689636012691468) -- *"I have been recovering from multiple shoulder surgeries ... and have used aider extensively. It has allowed me to continue productivity."* β€” [codeninja](https://www.reddit.com/r/OpenAI/s/nmNwkHy1zG) -- *"I am an aider addict. I'm getting so much more work done, but in less time."* β€” [dandandan](https://discord.com/channels/1131200896827654144/1131200896827654149/1135913253483069470) -- *"After wasting $100 on tokens trying to find something better, I'm back to Aider. It blows everything else out of the water hands down, there's no competition whatsoever."* β€” [SystemSculpt](https://discord.com/channels/1131200896827654144/1131200896827654149/1178736602797846548) -- *"Aider is amazing, coupled with Sonnet 3.5 it's quite mind blowing."* β€” [Josh Dingus](https://discord.com/channels/1131200896827654144/1133060684540813372/1262374225298198548) -- *"Hands down, this is the best AI coding assistant tool so far."* β€” [IndyDevDan](https://www.youtube.com/watch?v=MPYFPvxfGZs) -- *"[Aider] changed my daily coding workflows. It's mind-blowing how a single Python application can change your life."* β€” [maledorak](https://discord.com/channels/1131200896827654144/1131200896827654149/1258453375620747264) -- *"Best agent for actual dev work in existing codebases."* β€” [Nick Dobos](https://twitter.com/NickADobos/status/1690408967963652097?s=20) -- *"One of my favorite pieces of software. Blazing trails on new paradigms!"* β€” [Chris Wall](https://x.com/chris65536/status/1905053299251798432) -- *"Aider has been revolutionary for me and my work."* β€” [Starry Hope](https://x.com/starryhopeblog/status/1904985812137132056) -- *"Try aider! One of the best ways to vibe code."* β€” [Chris Wall](https://x.com/Chris65536/status/1905053418961391929) -- *"Aider is hands down the best. And it's free and opensource."* β€” [AriyaSavakaLurker](https://www.reddit.com/r/ChatGPTCoding/comments/1ik16y6/whats_your_take_on_aider/mbip39n/) -- *"Aider is also my best friend."* β€” [jzn21](https://www.reddit.com/r/ChatGPTCoding/comments/1heuvuo/aider_vs_cline_vs_windsurf_vs_cursor/m27dcnb/) -- *"Try Aider, it's worth it."* β€” [jorgejhms](https://www.reddit.com/r/ChatGPTCoding/comments/1heuvuo/aider_vs_cline_vs_windsurf_vs_cursor/m27cp99/) -- *"I like aider :)"* β€” [Chenwei Cui](https://x.com/ccui42/status/1904965344999145698) -- *"Aider is the precision tool of LLM code gen... Minimal, thoughtful and capable of surgical changes to your codebase all while keeping the developer in control."* β€” [Reilly Sweetland](https://x.com/rsweetland/status/1904963807237259586) -- *"Cannot believe aider vibe coded a 650 LOC feature across service and cli today in 1 shot."* - [autopoietist](https://discord.com/channels/1131200896827654144/1131200896827654149/1355675042259796101) -- *"Oh no the secret is out! Yes, Aider is the best coding tool around. I highly, highly recommend it to anyone."* β€” [Joshua D Vander Hook](https://x.com/jodavaho/status/1911154899057795218) -- *"thanks to aider, i have started and finished three personal projects within the last two days"* β€” [joseph stalzyn](https://x.com/anitaheeder/status/1908338609645904160) -- *"Been using aider as my daily driver for over a year ... I absolutely love the tool, like beyond words."* β€” [koleok](https://discord.com/channels/1131200896827654144/1273248471394291754/1356727448372252783) -- *"Aider ... is the tool to benchmark against."* β€” [BeetleB](https://news.ycombinator.com/item?id=43930201) -- *"aider is really cool"* β€” [kache (@yacineMTB)](https://x.com/yacineMTB/status/1911224442430124387) +- *"My life has changed... Aider... It's going to rock your world."* β€” [Eric S. Raymond on X](https://x.com/esrtweet/status/1910809356381413593) +- *"The best free open source AI coding assistant."* β€” [IndyDevDan on YouTube](https://youtu.be/YALpX8oOn78) +- *"The best AI coding assistant so far."* β€” [Matthew Berman on YouTube](https://www.youtube.com/watch?v=df8afeb1FY8) +- *"Aider ... has easily quadrupled my coding productivity."* β€” [SOLAR_FIELDS on Hacker News](https://news.ycombinator.com/item?id=36212100) +- *"It's a cool workflow... Aider's ergonomics are perfect for me."* β€” [qup on Hacker News](https://news.ycombinator.com/item?id=38185326) +- *"It's really like having your senior developer live right in your Git repo - truly amazing!"* β€” [rappster on GitHub](https://github.com/Aider-AI/aider/issues/124) +- *"What an amazing tool. It's incredible."* β€” [valyagolev on GitHub](https://github.com/Aider-AI/aider/issues/6#issue-1722897858) +- *"Aider is such an astounding thing!"* β€” [cgrothaus on GitHub](https://github.com/Aider-AI/aider/issues/82#issuecomment-1631876700) +- *"It was WAY faster than I would be getting off the ground and making the first few working versions."* β€” [Daniel Feldman on X](https://twitter.com/d_feldman/status/1662295077387923456) +- *"THANK YOU for Aider! It really feels like a glimpse into the future of coding."* β€” [derwiki on Hacker News](https://news.ycombinator.com/item?id=38205643) +- *"It's just amazing. It is freeing me to do things I felt were out my comfort zone before."* β€” [Dougie on Discord](https://discord.com/channels/1131200896827654144/1174002618058678323/1174084556257775656) +- *"This project is stellar."* β€” [funkytaco on GitHub](https://github.com/Aider-AI/aider/issues/112#issuecomment-1637429008) +- *"Amazing project, definitely the best AI coding assistant I've used."* β€” [joshuavial on GitHub](https://github.com/Aider-AI/aider/issues/84) +- *"I absolutely love using Aider ... It makes software development feel so much lighter as an experience."* β€” [principalideal0 on Discord](https://discord.com/channels/1131200896827654144/1133421607499595858/1229689636012691468) +- *"I have been recovering from ... surgeries ... aider ... has allowed me to continue productivity."* β€” [codeninja on Reddit](https://www.reddit.com/r/OpenAI/s/nmNwkHy1zG) +- *"I am an aider addict. I'm getting so much more work done, but in less time."* β€” [dandandan on Discord](https://discord.com/channels/1131200896827654144/1131200896827654149/1135913253483069470) +- *"Aider... blows everything else out of the water hands down, there's no competition whatsoever."* β€” [SystemSculpt on Discord](https://discord.com/channels/1131200896827654144/1131200896827654149/1178736602797846548) +- *"Aider is amazing, coupled with Sonnet 3.5 it's quite mind blowing."* β€” [Josh Dingus on Discord](https://discord.com/channels/1131200896827654144/1133060684540813372/1262374225298198548) +- *"Hands down, this is the best AI coding assistant tool so far."* β€” [IndyDevDan on YouTube](https://www.youtube.com/watch?v=MPYFPvxfGZs) +- *"[Aider] changed my daily coding workflows. It's mind-blowing how ...(it)... can change your life."* β€” [maledorak on Discord](https://discord.com/channels/1131200896827654144/1131200896827654149/1258453375620747264) +- *"Best agent for actual dev work in existing codebases."* β€” [Nick Dobos on X](https://twitter.com/NickADobos/status/1690408967963652097?s=20) +- *"One of my favorite pieces of software. Blazing trails on new paradigms!"* β€” [Chris Wall on X](https://x.com/chris65536/status/1905053299251798432) +- *"Aider has been revolutionary for me and my work."* β€” [Starry Hope on X](https://x.com/starryhopeblog/status/1904985812137132056) +- *"Try aider! One of the best ways to vibe code."* β€” [Chris Wall on X](https://x.com/Chris65536/status/1905053418961391929) +- *"Freaking love Aider."* β€” [hztar on Hacker News](https://news.ycombinator.com/item?id=44035015) +- *"Aider is hands down the best. And it's free and opensource."* β€” [AriyaSavakaLurker on Reddit](https://www.reddit.com/r/ChatGPTCoding/comments/1ik16y6/whats_your_take_on_aider/mbip39n/) +- *"Aider is also my best friend."* β€” [jzn21 on Reddit](https://www.reddit.com/r/ChatGPTCoding/comments/1heuvuo/aider_vs_cline_vs_windsurf_vs_cursor/m27dcnb/) +- *"Try Aider, it's worth it."* β€” [jorgejhms on Reddit](https://www.reddit.com/r/ChatGPTCoding/comments/1heuvuo/aider_vs_cline_vs_windsurf_vs_cursor/m27cp99/) +- *"I like aider :)"* β€” [Chenwei Cui on X](https://x.com/ccui42/status/1904965344999145698) +- *"Aider is the precision tool of LLM code gen... Minimal, thoughtful and capable of surgical changes ... while keeping the developer in control."* β€” [Reilly Sweetland on X](https://x.com/rsweetland/status/1904963807237259586) +- *"Cannot believe aider vibe coded a 650 LOC feature across service and cli today in 1 shot."* - [autopoietist on Discord](https://discord.com/channels/1131200896827654144/1131200896827654149/1355675042259796101) +- *"Oh no the secret is out! Yes, Aider is the best coding tool around. I highly, highly recommend it to anyone."* β€” [Joshua D Vander Hook on X](https://x.com/jodavaho/status/1911154899057795218) +- *"thanks to aider, i have started and finished three personal projects within the last two days"* β€” [joseph stalzyn on X](https://x.com/anitaheeder/status/1908338609645904160) +- *"Been using aider as my daily driver for over a year ... I absolutely love the tool, like beyond words."* β€” [koleok on Discord](https://discord.com/channels/1131200896827654144/1273248471394291754/1356727448372252783) +- *"Aider ... is the tool to benchmark against."* β€” [BeetleB on Hacker News](https://news.ycombinator.com/item?id=43930201) +- *"aider is really cool"* β€” [kache on X](https://x.com/yacineMTB/status/1911224442430124387) diff --git a/aider/__init__.py b/aider/__init__.py index 1e9327789..00b338056 100644 --- a/aider/__init__.py +++ b/aider/__init__.py @@ -1,6 +1,6 @@ from packaging import version -__version__ = "0.83.1.dev" +__version__ = "0.86.2.dev" safe_version = __version__ try: diff --git a/aider/analytics.py b/aider/analytics.py index d5c37c10a..f3eb071c3 100644 --- a/aider/analytics.py +++ b/aider/analytics.py @@ -70,9 +70,17 @@ class Analytics: # ephemeral logfile = None - def __init__(self, logfile=None, permanently_disable=False): + def __init__( + self, + logfile=None, + permanently_disable=False, + posthog_host=None, + posthog_project_api_key=None, + ): self.logfile = logfile self.get_or_create_uuid() + self.custom_posthog_host = posthog_host + self.custom_posthog_project_api_key = posthog_project_api_key if self.permanently_disable or permanently_disable or not self.asked_opt_in: self.disable(permanently_disable) @@ -92,8 +100,8 @@ class Analytics: # self.mp = Mixpanel(mixpanel_project_token) self.ph = Posthog( - project_api_key=posthog_project_api_key, - host=posthog_host, + project_api_key=self.custom_posthog_project_api_key or posthog_project_api_key, + host=self.custom_posthog_host or posthog_host, on_error=self.posthog_error, enable_exception_autocapture=True, super_properties=self.get_system_info(), # Add system info to all events @@ -229,7 +237,7 @@ class Analytics: self.mp = None # Disable mixpanel on connection errors if self.ph: - self.ph.capture(self.user_id, event_name, dict(properties)) + self.ph.capture(event_name, distinct_id=self.user_id, properties=dict(properties)) if self.logfile: log_entry = { diff --git a/aider/args.py b/aider/args.py index 1543bb07e..5b3fdf07f 100644 --- a/aider/args.py +++ b/aider/args.py @@ -40,10 +40,22 @@ def get_parser(default_config_files, git_root): config_file_parser_class=configargparse.YAMLConfigFileParser, auto_env_var_prefix="AIDER_", ) + # List of valid edit formats for argparse validation & shtab completion. + # Dynamically gather them from the registered coder classes so the list + # stays in sync if new formats are added. + from aider import coders as _aider_coders + + edit_format_choices = sorted( + { + c.edit_format + for c in _aider_coders.__all__ + if hasattr(c, "edit_format") and c.edit_format is not None + } + ) group = parser.add_argument_group("Main model") group.add_argument( "files", metavar="FILE", nargs="*", help="files to edit with an LLM (optional)" - ) + ).complete = shtab.FILE group.add_argument( "--model", metavar="MODEL", @@ -110,13 +122,13 @@ def get_parser(default_config_files, git_root): metavar="MODEL_SETTINGS_FILE", default=".aider.model.settings.yml", help="Specify a file with aider model settings for unknown models", - ) + ).complete = shtab.FILE group.add_argument( "--model-metadata-file", metavar="MODEL_METADATA_FILE", default=".aider.model.metadata.json", help="Specify a file with context window and costs for unknown models", - ) + ).complete = shtab.FILE group.add_argument( "--alias", action="append", @@ -131,7 +143,10 @@ def get_parser(default_config_files, git_root): group.add_argument( "--thinking-tokens", type=str, - help="Set the thinking token budget for models that support it (default: not set)", + help=( + "Set the thinking token budget for models that support it. Use 0 to disable. (default:" + " not set)" + ), ) group.add_argument( "--verify-ssl", @@ -149,6 +164,7 @@ def get_parser(default_config_files, git_root): "--edit-format", "--chat-mode", metavar="EDIT_FORMAT", + choices=edit_format_choices, default=None, help="Specify what edit format the LLM should use (default depends on model)", ) @@ -183,6 +199,7 @@ def get_parser(default_config_files, git_root): group.add_argument( "--editor-edit-format", metavar="EDITOR_EDIT_FORMAT", + choices=edit_format_choices, default=None, help="Specify the edit format for the editor model (default: depends on editor model)", ) @@ -262,13 +279,13 @@ def get_parser(default_config_files, git_root): metavar="INPUT_HISTORY_FILE", default=default_input_history_file, help=f"Specify the chat input history file (default: {default_input_history_file})", - ) + ).complete = shtab.FILE group.add_argument( "--chat-history-file", metavar="CHAT_HISTORY_FILE", default=default_chat_history_file, help=f"Specify the chat history file (default: {default_chat_history_file})", - ) + ).complete = shtab.FILE group.add_argument( "--restore-chat-history", action=argparse.BooleanOptionalAction, @@ -280,7 +297,7 @@ def get_parser(default_config_files, git_root): metavar="LLM_HISTORY_FILE", default=None, help="Log the conversation with the LLM to this file (for example, .aider.llm.history)", - ) + ).complete = shtab.FILE ########## group = parser.add_argument_group("Output settings") @@ -396,6 +413,12 @@ def get_parser(default_config_files, git_root): default=True, help="Enable/disable adding .aider* to .gitignore (default: True)", ) + group.add_argument( + "--add-gitignore-files", + action=argparse.BooleanOptionalAction, + default=False, + help="Enable/disable the addition of files listed in .gitignore to Aider's editing scope.", + ) default_aiderignore_file = ( os.path.join(git_root, ".aiderignore") if git_root else ".aiderignore" ) @@ -406,7 +429,7 @@ def get_parser(default_config_files, git_root): type=lambda path_str: resolve_aiderignore_path(path_str, git_root), default=default_aiderignore_file, help="Specify the aider ignore file (default: .aiderignore in git root)", - ) + ).complete = shtab.FILE group.add_argument( "--subtree-only", action="store_true", @@ -458,10 +481,10 @@ def get_parser(default_config_files, git_root): group.add_argument( "--attribute-co-authored-by", action=argparse.BooleanOptionalAction, - default=False, + default=True, help=( "Attribute aider edits using the Co-authored-by trailer in the commit message" - " (default: False). If True, this takes precedence over default --attribute-author and" + " (default: True). If True, this takes precedence over default --attribute-author and" " --attribute-committer behavior unless they are explicitly set to True." ), ) @@ -552,13 +575,23 @@ def get_parser(default_config_files, git_root): "--analytics-log", metavar="ANALYTICS_LOG_FILE", help="Specify a file to log analytics events", - ) + ).complete = shtab.FILE group.add_argument( "--analytics-disable", action="store_true", help="Permanently disable analytics", default=False, ) + group.add_argument( + "--analytics-posthog-host", + metavar="ANALYTICS_POSTHOG_HOST", + help="Send analytics to custom PostHog instance", + ) + group.add_argument( + "--analytics-posthog-project-api-key", + metavar="ANALYTICS_POSTHOG_PROJECT_API_KEY", + help="Send analytics to custom PostHog project", + ) ######### group = parser.add_argument_group("Upgrading") @@ -619,7 +652,7 @@ def get_parser(default_config_files, git_root): "Specify a file containing the message to send the LLM, process reply, then exit" " (disables chat mode)" ), - ) + ).complete = shtab.FILE group.add_argument( "--gui", "--browser", @@ -637,7 +670,7 @@ def get_parser(default_config_files, git_root): "--apply", metavar="FILE", help="Apply the changes from the given file instead of running the chat (debug)", - ) + ).complete = shtab.FILE group.add_argument( "--apply-clipboard-edits", action="store_true", @@ -698,13 +731,13 @@ def get_parser(default_config_files, git_root): action="append", metavar="FILE", help="specify a file to edit (can be used multiple times)", - ) + ).complete = shtab.FILE group.add_argument( "--read", action="append", metavar="FILE", help="specify a read-only file (can be used multiple times)", - ) + ).complete = shtab.FILE group.add_argument( "--vim", action="store_true", @@ -717,6 +750,12 @@ def get_parser(default_config_files, git_root): default=None, help="Specify the language to use in the chat (default: None, uses system settings)", ) + group.add_argument( + "--commit-language", + metavar="COMMIT_LANGUAGE", + default=None, + help="Specify the language to use in the commit message (default: None, user language)", + ) group.add_argument( "--yes-always", action="store_true", @@ -734,7 +773,7 @@ def get_parser(default_config_files, git_root): "--load", metavar="LOAD_FILE", help="Load and execute /commands from a file on launch", - ) + ).complete = shtab.FILE group.add_argument( "--encoding", default="utf-8", @@ -755,7 +794,7 @@ def get_parser(default_config_files, git_root): "Specify the config file (default: search for .aider.conf.yml in git root, cwd" " or home directory)" ), - ) + ).complete = shtab.FILE # This is a duplicate of the argument in the preparser and is a no-op by this time of # argument parsing, but it's here so that the help is displayed as expected. group.add_argument( @@ -763,7 +802,7 @@ def get_parser(default_config_files, git_root): metavar="ENV_FILE", default=default_env_file(git_root), help="Specify the .env file to load (default: .env in git root)", - ) + ).complete = shtab.FILE group.add_argument( "--suggest-shell-commands", action=argparse.BooleanOptionalAction, diff --git a/aider/args_formatter.py b/aider/args_formatter.py index c7672ccba..fc4c3efac 100644 --- a/aider/args_formatter.py +++ b/aider/args_formatter.py @@ -96,7 +96,7 @@ class YamlHelpFormatter(argparse.HelpFormatter): # Place in your home dir, or at the root of your git repo. ########################################################## -# Note: You can only put OpenAI and Anthropic API keys in the yaml +# Note: You can only put OpenAI and Anthropic API keys in the YAML # config file. Keys for all APIs can be stored in a .env file # https://aider.chat/docs/config/dotenv.html diff --git a/aider/coders/ask_prompts.py b/aider/coders/ask_prompts.py index c8c2fb4ea..347466bcf 100644 --- a/aider/coders/ask_prompts.py +++ b/aider/coders/ask_prompts.py @@ -8,8 +8,7 @@ class AskPrompts(CoderPrompts): Answer questions about the supplied code. Always reply to the user in {language}. -Describe code changes however you like, but elide unchanging code. -Don't use SEARCH/REPLACE blocks or return huge swaths of unchanging code. +If you need to describe code changes, do so *briefly*. """ example_messages = [] diff --git a/aider/coders/base_coder.py b/aider/coders/base_coder.py index fc40d818e..b824e9286 100755 --- a/aider/coders/base_coder.py +++ b/aider/coders/base_coder.py @@ -118,6 +118,7 @@ class Coder: detect_urls = True ignore_mentions = None chat_language = None + commit_language = None file_watcher = None @classmethod @@ -301,6 +302,7 @@ class Coder: io, repo=None, fnames=None, + add_gitignore_files=False, read_only_fnames=None, show_diffs=False, auto_commits=True, @@ -328,6 +330,7 @@ class Coder: num_cache_warming_pings=0, suggest_shell_commands=True, chat_language=None, + commit_language=None, detect_urls=True, ignore_mentions=None, total_tokens_sent=0, @@ -341,6 +344,7 @@ class Coder: self.event = self.analytics.event self.chat_language = chat_language + self.commit_language = commit_language self.commit_before_message = [] self.aider_commit_hashes = set() self.rejected_urls = set() @@ -386,6 +390,7 @@ class Coder: self.verbose = verbose self.abs_fnames = set() self.abs_read_only_fnames = set() + self.add_gitignore_files = add_gitignore_files if cur_messages: self.cur_messages = cur_messages @@ -443,8 +448,9 @@ class Coder: for fname in fnames: fname = Path(fname) - if self.repo and self.repo.git_ignored_file(fname): + if self.repo and self.repo.git_ignored_file(fname) and not self.add_gitignore_files: self.io.tool_warning(f"Skipping {fname} that matches gitignore spec.") + continue if self.repo and self.repo.ignored_file(fname): self.io.tool_warning(f"Skipping {fname} that matches aiderignore spec.") @@ -1049,6 +1055,9 @@ class Coder: if not lang_code: return None + if lang_code.upper() in ("C", "POSIX"): + return None + # Probably already a language name if ( len(lang_code) > 3 @@ -1079,7 +1088,8 @@ class Coder: "ko": "Korean", "ru": "Russian", } - return fallback.get(lang_code.split("_")[0].lower(), lang_code) + primary_lang_code = lang_code.replace("-", "_").split("_")[0].lower() + return fallback.get(primary_lang_code, lang_code) def get_user_language(self): """ @@ -1090,6 +1100,7 @@ class Coder: 2. ``locale.getlocale()`` 3. ``LANG`` / ``LANGUAGE`` / ``LC_ALL`` / ``LC_MESSAGES`` environment variables """ + # Explicit override if self.chat_language: return self.normalize_language(self.chat_language) @@ -1098,9 +1109,11 @@ class Coder: try: lang = locale.getlocale()[0] if lang: - return self.normalize_language(lang) + lang = self.normalize_language(lang) + if lang: + return lang except Exception: - pass # pragma: no cover + pass # Environment variables for env_var in ("LANG", "LANGUAGE", "LC_ALL", "LC_MESSAGES"): @@ -1182,10 +1195,10 @@ class Coder: ) rename_with_shell = "" - if self.chat_language: - language = self.chat_language + if user_lang: # user_lang is the result of self.get_user_language() + language = user_lang else: - language = "the same language they are using" + language = "the same language they are using" # Default if no specific lang detected if self.fence[0] == "`" * 4: quad_backtick_reminder = ( diff --git a/aider/coders/editblock_coder.py b/aider/coders/editblock_coder.py index d8f85da52..37d40d97c 100644 --- a/aider/coders/editblock_coder.py +++ b/aider/coders/editblock_coder.py @@ -383,7 +383,7 @@ def do_replace(fname, content, before_text, after_text, fence=None): return new_content -HEAD = r"^<{5,9} SEARCH\s*$" +HEAD = r"^<{5,9} SEARCH>?\s*$" DIVIDER = r"^={5,9}\s*$" UPDATED = r"^>{5,9} REPLACE\s*$" diff --git a/aider/coders/editblock_prompts.py b/aider/coders/editblock_prompts.py index f6baaeb5f..fc494af4f 100644 --- a/aider/coders/editblock_prompts.py +++ b/aider/coders/editblock_prompts.py @@ -12,8 +12,6 @@ Respect and use existing conventions, libraries, etc that are already present in Take requests for changes to the supplied code. If the request is ambiguous, ask questions. -Always reply to the user in {language}. - Once you understand the request you MUST: 1. Decide if you need to propose *SEARCH/REPLACE* edits to any files that haven't been added to the chat. You can create new files without asking! diff --git a/aider/coders/patch_prompts.py b/aider/coders/patch_prompts.py index 690a08884..66832ee16 100644 --- a/aider/coders/patch_prompts.py +++ b/aider/coders/patch_prompts.py @@ -15,8 +15,6 @@ Respect and use existing conventions, libraries, etc that are already present in Take requests for changes to the supplied code. If the request is ambiguous, ask questions. -Always reply to the user in {language}. - Once you understand the request you MUST: 1. Decide if you need to propose edits to any files that haven't been added to the chat. You can create new files without asking! diff --git a/aider/coders/search_replace.py b/aider/coders/search_replace.py index f31e97799..320ff3ec7 100755 --- a/aider/coders/search_replace.py +++ b/aider/coders/search_replace.py @@ -109,7 +109,7 @@ class RelativeIndenter: """ if self.marker in text: - raise ValueError("Text already contains the outdent marker: {self.marker}") + raise ValueError(f"Text already contains the outdent marker: {self.marker}") lines = text.splitlines(keepends=True) diff --git a/aider/coders/udiff_prompts.py b/aider/coders/udiff_prompts.py index 5201b8d89..23d2d8f73 100644 --- a/aider/coders/udiff_prompts.py +++ b/aider/coders/udiff_prompts.py @@ -13,8 +13,6 @@ Respect and use existing conventions, libraries, etc that are already present in Take requests for changes to the supplied code. If the request is ambiguous, ask questions. -Always reply to the user in {language}. - For each file that needs to be changed, write out the changes similar to a unified diff like `diff -U0` would produce. """ diff --git a/aider/coders/wholefile_prompts.py b/aider/coders/wholefile_prompts.py index 6b6795833..2f3868d6b 100644 --- a/aider/coders/wholefile_prompts.py +++ b/aider/coders/wholefile_prompts.py @@ -7,9 +7,6 @@ class WholeFilePrompts(CoderPrompts): main_system = """Act as an expert software developer. Take requests for changes to the supplied code. If the request is ambiguous, ask questions. - -Always reply to the user in {language}. - {final_reminders} Once you understand the request you MUST: 1. Determine if any code changes are needed. diff --git a/aider/commands.py b/aider/commands.py index 7a7a738c3..b9a3d3c2a 100644 --- a/aider/commands.py +++ b/aider/commands.py @@ -88,6 +88,11 @@ class Commands: "Switch the Main Model to a new LLM" model_name = args.strip() + if not model_name: + announcements = "\n".join(self.coder.get_announcements()) + self.io.tool_output(announcements) + return + model = models.Model( model_name, editor_model=self.coder.main_model.editor_model.name, @@ -346,7 +351,7 @@ class Commands: return commit_message = args.strip() if args else None - self.coder.repo.commit(message=commit_message) + self.coder.repo.commit(message=commit_message, coder=self.coder) def cmd_lint(self, args="", fnames=None): "Lint and fix in-chat files or all dirty files if none in chat" @@ -407,6 +412,7 @@ class Commands: "Clear the chat history" self._clear_chat_history() + self.io.tool_output("All chat history cleared.") def _drop_all_files(self): self.coder.abs_fnames = set() @@ -563,6 +569,7 @@ class Commands: last_commit_hash = self.coder.repo.get_head_commit_sha(short=True) last_commit_message = self.coder.repo.get_head_commit_message("(unknown)").strip() + last_commit_message = (last_commit_message.splitlines() or [""])[0] if last_commit_hash not in self.coder.aider_commit_hashes: self.io.tool_error("The last commit was not made by aider in this chat session.") self.io.tool_output( @@ -641,6 +648,7 @@ class Commands: # Get the current HEAD after undo current_head_hash = self.coder.repo.get_head_commit_sha(short=True) current_head_message = self.coder.repo.get_head_commit_message("(unknown)").strip() + current_head_message = (current_head_message.splitlines() or [""])[0] self.io.tool_output(f"Now at: {current_head_hash} {current_head_message}") if self.coder.main_model.send_undo_reply: @@ -844,7 +852,11 @@ class Commands: ) continue - if self.coder.repo and self.coder.repo.git_ignored_file(matched_file): + if ( + self.coder.repo + and self.coder.repo.git_ignored_file(matched_file) + and not self.coder.add_gitignore_files + ): self.io.tool_error(f"Can't add {matched_file} which is in gitignore") continue @@ -1312,12 +1324,23 @@ class Commands: # First collect all expanded paths for pattern in filenames: expanded_pattern = expanduser(pattern) - if os.path.isabs(expanded_pattern): - # For absolute paths, glob it - matches = list(glob.glob(expanded_pattern)) + path_obj = Path(expanded_pattern) + is_abs = path_obj.is_absolute() + if not is_abs: + path_obj = Path(self.coder.root) / path_obj + + matches = [] + # Check for literal path existence first + if path_obj.exists(): + matches = [path_obj] else: - # For relative paths and globs, use glob from the root directory - matches = list(Path(self.coder.root).glob(expanded_pattern)) + # If literal path doesn't exist, try globbing + if is_abs: + # For absolute paths, glob it + matches = [Path(p) for p in glob.glob(expanded_pattern)] + else: + # For relative paths and globs, use glob from the root directory + matches = list(Path(self.coder.root).glob(expanded_pattern)) if not matches: self.io.tool_error(f"No matches found for: {pattern}") @@ -1392,7 +1415,30 @@ class Commands: "Print out the current settings" settings = format_settings(self.parser, self.args) announcements = "\n".join(self.coder.get_announcements()) + + # Build metadata for the active models (main, editor, weak) + model_sections = [] + active_models = [ + ("Main model", self.coder.main_model), + ("Editor model", getattr(self.coder.main_model, "editor_model", None)), + ("Weak model", getattr(self.coder.main_model, "weak_model", None)), + ] + for label, model in active_models: + if not model: + continue + info = getattr(model, "info", {}) or {} + if not info: + continue + model_sections.append(f"{label} ({model.name}):") + for k, v in sorted(info.items()): + model_sections.append(f" {k}: {v}") + model_sections.append("") # blank line between models + + model_metadata = "\n".join(model_sections) + output = f"{announcements}\n{settings}" + if model_metadata: + output += "\n" + model_metadata self.io.tool_output(output) def completions_raw_load(self, document, complete_event): @@ -1514,7 +1560,7 @@ class Commands: return self.cmd_editor(args) def cmd_think_tokens(self, args): - "Set the thinking token budget (supports formats like 8096, 8k, 10.5k, 0.5M)" + """Set the thinking token budget, eg: 8096, 8k, 10.5k, 0.5M, or 0 to disable.""" model = self.coder.main_model if not args.strip(): @@ -1532,10 +1578,16 @@ class Commands: value = args.strip() model.set_thinking_tokens(value) - formatted_budget = model.get_thinking_tokens() - budget = model.get_raw_thinking_tokens() + # Handle the special case of 0 to disable thinking tokens + if value == "0": + self.io.tool_output("Thinking tokens disabled.") + else: + formatted_budget = model.get_thinking_tokens() + budget = model.get_raw_thinking_tokens() + self.io.tool_output( + f"Set thinking token budget to {budget:,} tokens ({formatted_budget})." + ) - self.io.tool_output(f"Set thinking token budget to {budget:,} tokens ({formatted_budget}).") self.io.tool_output() # Output announcements diff --git a/aider/exceptions.py b/aider/exceptions.py index a81a058e0..c2d0feb3b 100644 --- a/aider/exceptions.py +++ b/aider/exceptions.py @@ -20,6 +20,7 @@ EXCEPTIONS = [ "The API provider is not able to authenticate you. Check your API key.", ), ExInfo("AzureOpenAIError", True, None), + ExInfo("BadGatewayError", True, "The API provider's servers are down or overloaded."), ExInfo("BadRequestError", False, None), ExInfo("BudgetExceededError", True, None), ExInfo( @@ -28,6 +29,8 @@ EXCEPTIONS = [ "The API provider has refused the request due to a safety policy about the content.", ), ExInfo("ContextWindowExceededError", False, None), # special case handled in base_coder + ExInfo("ErrorEventError", True, None), + ExInfo("ImageFetchError", False, "The API provider was unable to fetch one or more images."), ExInfo("InternalServerError", True, "The API provider's servers are down or overloaded."), ExInfo("InvalidRequestError", True, None), ExInfo("JSONSchemaValidationError", True, None), diff --git a/aider/history.py b/aider/history.py index a4727b941..8d0bce7b3 100644 --- a/aider/history.py +++ b/aider/history.py @@ -63,37 +63,37 @@ class ChatSummary: if split_index <= min_split: return self.summarize_all(messages) - head = messages[:split_index] + # Split head and tail tail = messages[split_index:] - sized = sized[:split_index] - head.reverse() - sized.reverse() + # Only size the head once + sized_head = sized[:split_index] + + # Precompute token limit (fallback to 4096 if undefined) + model_max_input_tokens = self.models[0].info.get("max_input_tokens") or 4096 + model_max_input_tokens -= 512 # reserve buffer for safety + keep = [] total = 0 - # These sometimes come set with value = None - model_max_input_tokens = self.models[0].info.get("max_input_tokens") or 4096 - model_max_input_tokens -= 512 - - for i in range(split_index): - total += sized[i][0] + # Iterate in original order, summing tokens until limit + for tokens, msg in sized_head: + total += tokens if total > model_max_input_tokens: break - keep.append(head[i]) - - keep.reverse() + keep.append(msg) + # No need to reverse lists back and forth summary = self.summarize_all(keep) - tail_tokens = sum(tokens for tokens, msg in sized[split_index:]) + # If the combined summary and tail still fits, return directly summary_tokens = self.token_count(summary) - - result = summary + tail + tail_tokens = sum(tokens for tokens, _ in sized[split_index:]) if summary_tokens + tail_tokens < self.max_tokens: - return result + return summary + tail - return self.summarize_real(result, depth + 1) + # Otherwise recurse with increased depth + return self.summarize_real(summary + tail, depth + 1) def summarize_all(self, messages): content = "" diff --git a/aider/io.py b/aider/io.py index f28a1c86d..ed6f22d51 100644 --- a/aider/io.py +++ b/aider/io.py @@ -308,6 +308,12 @@ class InputOutput: self.yes = yes self.input_history_file = input_history_file + if self.input_history_file: + try: + Path(self.input_history_file).parent.mkdir(parents=True, exist_ok=True) + except (PermissionError, OSError) as e: + self.tool_warning(f"Could not create directory for input history: {e}") + self.input_history_file = None self.llm_history_file = llm_history_file if chat_history_file is not None: self.chat_history_file = Path(chat_history_file) @@ -749,9 +755,14 @@ class InputOutput: if not self.llm_history_file: return timestamp = datetime.now().isoformat(timespec="seconds") - with open(self.llm_history_file, "a", encoding=self.encoding) as log_file: - log_file.write(f"{role.upper()} {timestamp}\n") - log_file.write(content + "\n") + try: + Path(self.llm_history_file).parent.mkdir(parents=True, exist_ok=True) + with open(self.llm_history_file, "a", encoding="utf-8") as log_file: + log_file.write(f"{role.upper()} {timestamp}\n") + log_file.write(content + "\n") + except (PermissionError, OSError) as err: + self.tool_warning(f"Unable to write to llm history file {self.llm_history_file}: {err}") + self.llm_history_file = None def display_user_input(self, inp): if self.pretty and self.user_input_color: @@ -1001,7 +1012,11 @@ class InputOutput: self.console.print(*messages, style=style) def get_assistant_mdstream(self): - mdargs = dict(style=self.assistant_output_color, code_theme=self.code_theme) + mdargs = dict( + style=self.assistant_output_color, + code_theme=self.code_theme, + inline_code_lexer="text", + ) mdStream = MarkdownStream(mdargs=mdargs) return mdStream @@ -1112,6 +1127,7 @@ class InputOutput: text += "\n" if self.chat_history_file is not None: try: + self.chat_history_file.parent.mkdir(parents=True, exist_ok=True) with self.chat_history_file.open("a", encoding=self.encoding, errors="ignore") as f: f.write(text) except (PermissionError, OSError) as err: diff --git a/aider/main.py b/aider/main.py index ea344f0ba..afb3f8366 100644 --- a/aider/main.py +++ b/aider/main.py @@ -633,7 +633,12 @@ def main(argv=None, input=None, output=None, force_git_root=None, return_coder=F ) os.environ["OPENAI_ORGANIZATION"] = args.openai_organization_id - analytics = Analytics(logfile=args.analytics_log, permanently_disable=args.analytics_disable) + analytics = Analytics( + logfile=args.analytics_log, + permanently_disable=args.analytics_disable, + posthog_host=args.analytics_posthog_host, + posthog_project_api_key=args.analytics_posthog_project_api_key, + ) if args.analytics is not False: if analytics.need_to_ask(args.analytics): io.tool_output( @@ -921,8 +926,9 @@ def main(argv=None, input=None, output=None, force_git_root=None, return_coder=F analytics.event("exit", reason="Repository sanity check failed") return 1 - if repo: - analytics.event("repo", num_files=len(repo.get_tracked_files())) + if repo and not args.skip_sanity_check_repo: + num_files = len(repo.get_tracked_files()) + analytics.event("repo", num_files=num_files) else: analytics.event("no-repo") @@ -993,9 +999,11 @@ def main(argv=None, input=None, output=None, force_git_root=None, return_coder=F num_cache_warming_pings=args.cache_keepalive_pings, suggest_shell_commands=args.suggest_shell_commands, chat_language=args.chat_language, + commit_language=args.commit_language, detect_urls=args.detect_urls, auto_copy_context=args.copy_paste, auto_accept_architect=args.auto_accept_architect, + add_gitignore_files=args.add_gitignore_files, ) except UnknownEditFormat as err: io.tool_error(str(err)) diff --git a/aider/models.py b/aider/models.py index d69ae2d5a..db0c28d1e 100644 --- a/aider/models.py +++ b/aider/models.py @@ -8,6 +8,7 @@ import platform import sys import time from dataclasses import dataclass, fields +from datetime import datetime from pathlib import Path from typing import Optional, Union @@ -15,8 +16,10 @@ import json5 import yaml from PIL import Image +from aider import __version__ from aider.dump import dump # noqa: F401 from aider.llm import litellm +from aider.openrouter import OpenRouterModelManager from aider.sendchat import ensure_alternating_roles, sanity_check_messages from aider.utils import check_pip_install_extra @@ -69,6 +72,8 @@ claude-3-opus-20240229 claude-3-sonnet-20240229 claude-3-5-sonnet-20240620 claude-3-5-sonnet-20241022 +claude-sonnet-4-20250514 +claude-opus-4-20250514 """ ANTHROPIC_MODELS = [ln.strip() for ln in ANTHROPIC_MODELS.splitlines() if ln.strip()] @@ -76,9 +81,9 @@ ANTHROPIC_MODELS = [ln.strip() for ln in ANTHROPIC_MODELS.splitlines() if ln.str # Mapping of model aliases to their canonical names MODEL_ALIASES = { # Claude models - "sonnet": "anthropic/claude-3-7-sonnet-20250219", + "sonnet": "anthropic/claude-sonnet-4-20250514", "haiku": "claude-3-5-haiku-20241022", - "opus": "claude-3-opus-20240229", + "opus": "claude-opus-4-20250514", # GPT models "4": "gpt-4-0613", "4o": "gpt-4o", @@ -88,11 +93,13 @@ MODEL_ALIASES = { "3": "gpt-3.5-turbo", # Other models "deepseek": "deepseek/deepseek-chat", - "flash": "gemini/gemini-2.5-flash-preview-04-17", + "flash": "gemini/gemini-2.5-flash", + "flash-lite": "gemini/gemini-2.5-flash-lite", "quasar": "openrouter/openrouter/quasar-alpha", "r1": "deepseek/deepseek-reasoner", - "gemini-2.5-pro": "gemini/gemini-2.5-pro-preview-05-06", - "gemini": "gemini/gemini-2.5-pro-preview-05-06", + "gemini-2.5-pro": "gemini/gemini-2.5-pro", + "gemini-3-pro-preview": "gemini/gemini-3-pro-preview", + "gemini": "gemini/gemini-3-pro-preview", "gemini-exp": "gemini/gemini-2.5-pro-exp-03-25", "grok3": "xai/grok-3-beta", "optimus": "openrouter/openrouter/optimus-alpha", @@ -149,8 +156,13 @@ class ModelInfoManager: self.verify_ssl = True self._cache_loaded = False + # Manager for the cached OpenRouter model database + self.openrouter_manager = OpenRouterModelManager() + def set_verify_ssl(self, verify_ssl): self.verify_ssl = verify_ssl + if hasattr(self, "openrouter_manager"): + self.openrouter_manager.set_verify_ssl(verify_ssl) def _load_cache(self): if self._cache_loaded: @@ -232,6 +244,12 @@ class ModelInfoManager: return litellm_info if not cached_info and model.startswith("openrouter/"): + # First try using the locally cached OpenRouter model database + openrouter_info = self.openrouter_manager.get_model_info(model) + if openrouter_info: + return openrouter_info + + # Fallback to legacy web-scraping if the API cache does not contain the model openrouter_info = self.fetch_openrouter_model_info(model) if openrouter_info: return openrouter_info @@ -420,6 +438,14 @@ class Model(ModelSettings): self.examples_as_sys_msg = False return # <-- + last_segment = model.split("/")[-1] + if last_segment in ("gpt-5", "gpt-5-2025-08-07"): + self.use_temperature = False + self.edit_format = "diff" + if "reasoning_effort" not in self.accepts_settings: + self.accepts_settings.append("reasoning_effort") + return # <-- + if "/o1-mini" in model: self.use_repo_map = True self.use_temperature = False @@ -778,6 +804,7 @@ class Model(ModelSettings): """ Set the thinking token budget for models that support it. Accepts formats: 8096, "8k", "10.5k", "0.5M", "10K", etc. + Pass "0" to disable thinking tokens. """ if value is not None: num_tokens = self.parse_token_value(value) @@ -789,9 +816,17 @@ class Model(ModelSettings): if self.name.startswith("openrouter/"): if "extra_body" not in self.extra_params: self.extra_params["extra_body"] = {} - self.extra_params["extra_body"]["reasoning"] = {"max_tokens": num_tokens} + if num_tokens > 0: + self.extra_params["extra_body"]["reasoning"] = {"max_tokens": num_tokens} + else: + if "reasoning" in self.extra_params["extra_body"]: + del self.extra_params["extra_body"]["reasoning"] else: - self.extra_params["thinking"] = {"type": "enabled", "budget_tokens": num_tokens} + if num_tokens > 0: + self.extra_params["thinking"] = {"type": "enabled", "budget_tokens": num_tokens} + else: + if "thinking" in self.extra_params: + del self.extra_params["thinking"] def get_raw_thinking_tokens(self): """Get formatted thinking token budget if available""" @@ -861,6 +896,57 @@ class Model(ModelSettings): def is_ollama(self): return self.name.startswith("ollama/") or self.name.startswith("ollama_chat/") + def github_copilot_token_to_open_ai_key(self, extra_headers): + # check to see if there's an openai api key + # If so, check to see if it's expire + openai_api_key = "OPENAI_API_KEY" + + if openai_api_key not in os.environ or ( + int(dict(x.split("=") for x in os.environ[openai_api_key].split(";"))["exp"]) + < int(datetime.now().timestamp()) + ): + import requests + + class GitHubCopilotTokenError(Exception): + """Custom exception for GitHub Copilot token-related errors.""" + + pass + + # Validate GitHub Copilot token exists + if "GITHUB_COPILOT_TOKEN" not in os.environ: + raise KeyError("GITHUB_COPILOT_TOKEN environment variable not found") + + github_token = os.environ["GITHUB_COPILOT_TOKEN"] + if not github_token.strip(): + raise KeyError("GITHUB_COPILOT_TOKEN environment variable is empty") + + headers = { + "Authorization": f"Bearer {os.environ['GITHUB_COPILOT_TOKEN']}", + "Editor-Version": extra_headers["Editor-Version"], + "Copilot-Integration-Id": extra_headers["Copilot-Integration-Id"], + "Content-Type": "application/json", + } + + url = "https://api.github.com/copilot_internal/v2/token" + res = requests.get(url, headers=headers) + if res.status_code != 200: + safe_headers = {k: v for k, v in headers.items() if k != "Authorization"} + token_preview = github_token[:5] + "..." if len(github_token) >= 5 else github_token + safe_headers["Authorization"] = f"Bearer {token_preview}" + raise GitHubCopilotTokenError( + f"GitHub Copilot API request failed (Status: {res.status_code})\n" + f"URL: {url}\n" + f"Headers: {json.dumps(safe_headers, indent=2)}\n" + f"JSON: {res.text}" + ) + + response_data = res.json() + token = response_data.get("token") + if not token: + raise GitHubCopilotTokenError("Response missing 'token' field") + + os.environ[openai_api_key] = token + def send_completion(self, messages, functions, stream, temperature=None): if os.environ.get("AIDER_SANITY_CHECK_TURNS"): sanity_check_messages(messages) @@ -902,6 +988,16 @@ class Model(ModelSettings): dump(kwargs) kwargs["messages"] = messages + # Are we using github copilot? + if "GITHUB_COPILOT_TOKEN" in os.environ: + if "extra_headers" not in kwargs: + kwargs["extra_headers"] = { + "Editor-Version": f"aider/{__version__}", + "Copilot-Integration-Id": "vscode-chat", + } + + self.github_copilot_token_to_open_ai_key(kwargs["extra_headers"]) + res = litellm.completion(**kwargs) return hash_object, res @@ -966,12 +1062,10 @@ def register_models(model_settings_fnames): for model_settings_dict in model_settings_list: model_settings = ModelSettings(**model_settings_dict) - existing_model_settings = next( - (ms for ms in MODEL_SETTINGS if ms.name == model_settings.name), None - ) - if existing_model_settings: - MODEL_SETTINGS.remove(existing_model_settings) + # Remove all existing settings for this model name + MODEL_SETTINGS[:] = [ms for ms in MODEL_SETTINGS if ms.name != model_settings.name] + # Add the new settings MODEL_SETTINGS.append(model_settings) except Exception as e: raise Exception(f"Error loading model settings from {model_settings_fname}: {e}") diff --git a/aider/onboarding.py b/aider/onboarding.py index 0321c0d63..9b6abd54b 100644 --- a/aider/onboarding.py +++ b/aider/onboarding.py @@ -55,9 +55,9 @@ def try_to_select_default_model(): # Check if the user is on a free tier is_free_tier = check_openrouter_tier(openrouter_key) if is_free_tier: - return "openrouter/google/gemini-2.5-pro-exp-03-25:free" + return "openrouter/deepseek/deepseek-r1:free" else: - return "openrouter/anthropic/claude-3.7-sonnet" + return "openrouter/anthropic/claude-sonnet-4" # Select model based on other available API keys model_key_pairs = [ diff --git a/aider/openrouter.py b/aider/openrouter.py new file mode 100644 index 000000000..6517cb152 --- /dev/null +++ b/aider/openrouter.py @@ -0,0 +1,128 @@ +""" +OpenRouter model metadata caching and lookup. + +This module keeps a local cached copy of the OpenRouter model list +(downloaded from ``https://openrouter.ai/api/v1/models``) and exposes a +helper class that returns metadata for a given model in a format compatible +with litellm’s ``get_model_info``. +""" +from __future__ import annotations + +import json +import time +from pathlib import Path +from typing import Dict + +import requests + + +def _cost_per_token(val: str | None) -> float | None: + """Convert a price string (USD per token) to a float.""" + if val in (None, "", "0"): + return 0.0 if val == "0" else None + try: + return float(val) + except Exception: # noqa: BLE001 + return None + + +class OpenRouterModelManager: + MODELS_URL = "https://openrouter.ai/api/v1/models" + CACHE_TTL = 60 * 60 * 24 # 24 h + + def __init__(self) -> None: + self.cache_dir = Path.home() / ".aider" / "caches" + self.cache_file = self.cache_dir / "openrouter_models.json" + self.content: Dict | None = None + self.verify_ssl: bool = True + self._cache_loaded = False + + # ------------------------------------------------------------------ # + # Public API # + # ------------------------------------------------------------------ # + def set_verify_ssl(self, verify_ssl: bool) -> None: + """Enable/disable SSL verification for API requests.""" + self.verify_ssl = verify_ssl + + def get_model_info(self, model: str) -> Dict: + """ + Return metadata for *model* or an empty ``dict`` when unknown. + + ``model`` should use the aider naming convention, e.g. + ``openrouter/nousresearch/deephermes-3-mistral-24b-preview:free``. + """ + self._ensure_content() + if not self.content or "data" not in self.content: + return {} + + route = self._strip_prefix(model) + + # Consider both the exact id and id without any β€œ:suffix”. + candidates = {route} + if ":" in route: + candidates.add(route.split(":", 1)[0]) + + record = next((item for item in self.content["data"] if item.get("id") in candidates), None) + if not record: + return {} + + context_len = ( + record.get("top_provider", {}).get("context_length") + or record.get("context_length") + or None + ) + + pricing = record.get("pricing", {}) + return { + "max_input_tokens": context_len, + "max_tokens": context_len, + "max_output_tokens": context_len, + "input_cost_per_token": _cost_per_token(pricing.get("prompt")), + "output_cost_per_token": _cost_per_token(pricing.get("completion")), + "litellm_provider": "openrouter", + } + + # ------------------------------------------------------------------ # + # Internal helpers # + # ------------------------------------------------------------------ # + def _strip_prefix(self, model: str) -> str: + return model[len("openrouter/") :] if model.startswith("openrouter/") else model + + def _ensure_content(self) -> None: + self._load_cache() + if not self.content: + self._update_cache() + + def _load_cache(self) -> None: + if self._cache_loaded: + return + try: + self.cache_dir.mkdir(parents=True, exist_ok=True) + if self.cache_file.exists(): + cache_age = time.time() - self.cache_file.stat().st_mtime + if cache_age < self.CACHE_TTL: + try: + self.content = json.loads(self.cache_file.read_text()) + except json.JSONDecodeError: + self.content = None + except OSError: + # Cache directory might be unwritable; ignore. + pass + + self._cache_loaded = True + + def _update_cache(self) -> None: + try: + response = requests.get(self.MODELS_URL, timeout=10, verify=self.verify_ssl) + if response.status_code == 200: + self.content = response.json() + try: + self.cache_file.write_text(json.dumps(self.content, indent=2)) + except OSError: + pass # Non-fatal if we can’t write the cache + except Exception as ex: # noqa: BLE001 + print(f"Failed to fetch OpenRouter model list: {ex}") + try: + self.cache_file.write_text("{}") + except OSError: + pass diff --git a/aider/prompts.py b/aider/prompts.py index aecf29a9e..912bc02c6 100644 --- a/aider/prompts.py +++ b/aider/prompts.py @@ -19,9 +19,6 @@ Ensure the commit message:{language_instruction} - Does not exceed 72 characters. Reply only with the one-line commit message, without any additional text, explanations, or line breaks. - -Reply only with the one-line commit message, without any additional text, explanations, \ -or line breaks. """ # COMMANDS diff --git a/aider/queries/tree-sitter-language-pack/clojure-tags.scm b/aider/queries/tree-sitter-language-pack/clojure-tags.scm new file mode 100644 index 000000000..4b2bfa172 --- /dev/null +++ b/aider/queries/tree-sitter-language-pack/clojure-tags.scm @@ -0,0 +1,7 @@ +(list_lit + meta: _* + . (sym_lit name: (sym_name) @ignore) + . (sym_lit name: (sym_name) @name.definition.method) + (#match? @ignore "^def.*")) + +(sym_lit name: (sym_name) @name.reference.call) diff --git a/aider/queries/tree-sitter-language-pack/matlab-tags.scm b/aider/queries/tree-sitter-language-pack/matlab-tags.scm new file mode 100644 index 000000000..66f12527f --- /dev/null +++ b/aider/queries/tree-sitter-language-pack/matlab-tags.scm @@ -0,0 +1,10 @@ +(class_definition + name: (identifier) @name.definition.class) @definition.class + +(function_definition + name: (identifier) @name.definition.function) @definition.function + +(function_call + name: (identifier) @name.reference.call) @reference.call + +(command (command_name) @name.reference.call) @reference.call \ No newline at end of file diff --git a/aider/queries/tree-sitter-languages/README.md b/aider/queries/tree-sitter-languages/README.md index 12e1d5ee8..59e7219ca 100644 --- a/aider/queries/tree-sitter-languages/README.md +++ b/aider/queries/tree-sitter-languages/README.md @@ -21,3 +21,4 @@ tree-sitter language implementations: * [https://github.com/tree-sitter/tree-sitter-ruby](https://github.com/tree-sitter/tree-sitter-ruby) β€” licensed under the MIT License. * [https://github.com/tree-sitter/tree-sitter-rust](https://github.com/tree-sitter/tree-sitter-rust) β€” licensed under the MIT License. * [https://github.com/tree-sitter/tree-sitter-typescript](https://github.com/tree-sitter/tree-sitter-typescript) β€” licensed under the MIT License. +* [https://github.com/starelmanma/tree-sitter-fortran](https://github.com/starelmanma/tree-sitter-fortran) β€” licensed under the MIT License. diff --git a/aider/queries/tree-sitter-languages/fortran-tags.scm b/aider/queries/tree-sitter-languages/fortran-tags.scm new file mode 100644 index 000000000..c0bb260e8 --- /dev/null +++ b/aider/queries/tree-sitter-languages/fortran-tags.scm @@ -0,0 +1,15 @@ +;; derived from: https://github.com/stadelmanma/tree-sitter-fortran +;; License: MIT + +(module_statement + (name) @name.definition.class) @definition.class + +(function_statement + name: (name) @name.definition.function) @definition.function + +(subroutine_statement + name: (name) @name.definition.function) @definition.function + +(module_procedure_statement + name: (name) @name.definition.function) @definition.function + \ No newline at end of file diff --git a/aider/queries/tree-sitter-languages/haskell-tags.scm b/aider/queries/tree-sitter-languages/haskell-tags.scm new file mode 100644 index 000000000..f5c073750 --- /dev/null +++ b/aider/queries/tree-sitter-languages/haskell-tags.scm @@ -0,0 +1,3 @@ +(function (variable) @name.definition.function) +(bind (variable) @name.definition.function) +(signature (variable) @name.definition.type) diff --git a/aider/queries/tree-sitter-languages/julia-tags.scm b/aider/queries/tree-sitter-languages/julia-tags.scm new file mode 100644 index 000000000..b7d33d93b --- /dev/null +++ b/aider/queries/tree-sitter-languages/julia-tags.scm @@ -0,0 +1,60 @@ +;; derived from: https://github.com/tree-sitter/tree-sitter-julia +;; License: MIT + +(module + name: (identifier) @name.definition.module) @definition.module + +(module + name: (scoped_identifier) @name.definition.module) @definition.module + +(struct_definition + name: (type_identifier) @name.definition.class) @definition.class + +(mutable_struct_definition + name: (type_identifier) @name.definition.class) @definition.class + +(abstract_type_declaration + name: (type_identifier) @name.definition.class) @definition.class + +(constant_assignment + left: (identifier) @name.definition.class) @definition.class + +(function_definition + name: (identifier) @name.definition.function) @definition.function + +(function_definition + name: (scoped_identifier) @name.definition.function) @definition.function + +(assignment + left: (call_expression + function: (identifier) @name.definition.function)) @definition.function + +(method_definition + name: (identifier) @name.definition.method) @definition.method + +(macro_definition + name: (identifier) @name.definition.macro) @definition.macro + +(macro_call + name: (identifier) @name.reference.call) @reference.call + +(call_expression + function: (identifier) @name.reference.call) @reference.call + +(call_expression + function: (scoped_identifier) @name.reference.call) @reference.call + +(type_expression + name: (type_identifier) @name.reference.type) @reference.type + +(constant_assignment + left: (identifier) @name.definition.constant) @definition.constant + +(export_statement + (identifier) @name.reference.export) @reference.export + +(using_statement + (identifier) @name.reference.module) @reference.module + +(import_statement + (identifier) @name.reference.module) @reference.module diff --git a/aider/queries/tree-sitter-languages/matlab-tags.scm b/aider/queries/tree-sitter-languages/matlab-tags.scm new file mode 100644 index 000000000..66f12527f --- /dev/null +++ b/aider/queries/tree-sitter-languages/matlab-tags.scm @@ -0,0 +1,10 @@ +(class_definition + name: (identifier) @name.definition.class) @definition.class + +(function_definition + name: (identifier) @name.definition.function) @definition.function + +(function_call + name: (identifier) @name.reference.call) @reference.call + +(command (command_name) @name.reference.call) @reference.call \ No newline at end of file diff --git a/aider/queries/tree-sitter-languages/zig-tags.scm b/aider/queries/tree-sitter-languages/zig-tags.scm new file mode 100644 index 000000000..c02028ea8 --- /dev/null +++ b/aider/queries/tree-sitter-languages/zig-tags.scm @@ -0,0 +1,3 @@ +(FnProto) @name.definition.function +(VarDecl "const" @name.definition.constant) +(VarDecl "var" @name.definition.variable) diff --git a/aider/repo.py b/aider/repo.py index 0723c6c14..e4597c8e4 100644 --- a/aider/repo.py +++ b/aider/repo.py @@ -21,6 +21,7 @@ import pathspec from aider import prompts, utils from .dump import dump # noqa: F401 +from .waiting import WaitingSpinner ANY_GIT_ERROR += [ OSError, @@ -164,7 +165,7 @@ class GitRepo: - --attribute-author: Modify Author name to "User Name (aider)". - --attribute-committer: Modify Committer name to "User Name (aider)". - --attribute-co-authored-by: Add - "Co-authored-by: aider () " trailer to commit message. + "Co-authored-by: aider () " trailer to commit message. Behavior Summary: @@ -209,7 +210,9 @@ class GitRepo: else: user_language = None if coder: - user_language = coder.get_user_language() + user_language = coder.commit_language + if not user_language: + user_language = coder.get_user_language() commit_message = self.get_commit_message(diffs, context, user_language) # Retrieve attribute settings, prioritizing coder.args if available @@ -246,9 +249,7 @@ class GitRepo: model_name = "unknown-model" if coder and hasattr(coder, "main_model") and coder.main_model.name: model_name = coder.main_model.name - commit_message_trailer = ( - f"\n\nCo-authored-by: aider ({model_name}) " - ) + commit_message_trailer = f"\n\nCo-authored-by: aider ({model_name}) " # Determine if author/committer names should be modified # Author modification applies only to aider edits. @@ -331,25 +332,35 @@ class GitRepo: content += diffs system_content = self.commit_prompt or prompts.commit_system + language_instruction = "" if user_language: language_instruction = f"\n- Is written in {user_language}." system_content = system_content.format(language_instruction=language_instruction) - messages = [ - dict(role="system", content=system_content), - dict(role="user", content=content), - ] - commit_message = None for model in self.models: - num_tokens = model.token_count(messages) - max_tokens = model.info.get("max_input_tokens") or 0 - if max_tokens and num_tokens > max_tokens: - continue - commit_message = model.simple_send_with_retries(messages) - if commit_message: - break + spinner_text = f"Generating commit message with {model.name}" + with WaitingSpinner(spinner_text): + if model.system_prompt_prefix: + current_system_content = model.system_prompt_prefix + "\n" + system_content + else: + current_system_content = system_content + + messages = [ + dict(role="system", content=current_system_content), + dict(role="user", content=content), + ] + + num_tokens = model.token_count(messages) + max_tokens = model.info.get("max_input_tokens") or 0 + + if max_tokens and num_tokens > max_tokens: + continue + + commit_message = model.simple_send_with_retries(messages) + if commit_message: + break # Found a model that could generate the message if not commit_message: self.io.tool_error("Failed to generate commit message!") @@ -386,14 +397,20 @@ class GitRepo: try: if current_branch_has_commits: args = ["HEAD", "--"] + list(fnames) - diffs += self.repo.git.diff(*args) + diffs += self.repo.git.diff(*args, stdout_as_string=False).decode( + self.io.encoding, "replace" + ) return diffs wd_args = ["--"] + list(fnames) index_args = ["--cached"] + wd_args - diffs += self.repo.git.diff(*index_args) - diffs += self.repo.git.diff(*wd_args) + diffs += self.repo.git.diff(*index_args, stdout_as_string=False).decode( + self.io.encoding, "replace" + ) + diffs += self.repo.git.diff(*wd_args, stdout_as_string=False).decode( + self.io.encoding, "replace" + ) return diffs except ANY_GIT_ERROR as err: @@ -407,7 +424,9 @@ class GitRepo: args += ["--color=never"] args += [from_commit, to_commit] - diffs = self.repo.git.diff(*args) + diffs = self.repo.git.diff(*args, stdout_as_string=False).decode( + self.io.encoding, "replace" + ) return diffs diff --git a/aider/repomap.py b/aider/repomap.py index 6328a701f..23eee239f 100644 --- a/aider/repomap.py +++ b/aider/repomap.py @@ -19,7 +19,7 @@ from tqdm import tqdm from aider.dump import dump from aider.special import filter_important_files -from aider.utils import Spinner +from aider.waiting import Spinner # tree_sitter is throwing a FutureWarning warnings.simplefilter("ignore", category=FutureWarning) @@ -468,10 +468,11 @@ class RepoMap: mul = 1.0 is_snake = ("_" in ident) and any(c.isalpha() for c in ident) + is_kebab = ("-" in ident) and any(c.isalpha() for c in ident) is_camel = any(c.isupper() for c in ident) and any(c.islower() for c in ident) if ident in mentioned_idents: mul *= 10 - if (is_snake or is_camel) and len(ident) >= 8: + if (is_snake or is_kebab or is_camel) and len(ident) >= 8: mul *= 10 if ident.startswith("_"): mul *= 0.1 diff --git a/aider/resources/model-metadata.json b/aider/resources/model-metadata.json index 72c394730..64c480e55 100644 --- a/aider/resources/model-metadata.json +++ b/aider/resources/model-metadata.json @@ -1,16 +1,32 @@ { - "deepseek-reasoner": { - "max_tokens": 8192, - "max_input_tokens": 64000, - "max_output_tokens": 8192, - "input_cost_per_token": 0.00000055, - "input_cost_per_token_cache_hit": 0.00000014, - "cache_read_input_token_cost": 0.00000014, + "deepseek/deepseek-reasoner": { + "max_tokens": 64000, + "max_input_tokens": 128000, + "max_output_tokens": 64000, + "input_cost_per_token": 0.00000028, + "input_cost_per_token_cache_hit": 0.000000028, + "cache_read_input_token_cost": 0.000000028, "cache_creation_input_token_cost": 0.0, - "output_cost_per_token": 0.00000219, + "output_cost_per_token": 0.00000042, "litellm_provider": "deepseek", "mode": "chat", - //"supports_function_calling": true, + //"supports_function_calling": true, + "supports_assistant_prefill": true, + "supports_tool_choice": false, + "supports_prompt_caching": true + }, + "deepseek/deepseek-chat": { + "max_tokens": 8192, + "max_input_tokens": 128000, + "max_output_tokens": 8192, + "input_cost_per_token": 0.00000028, + "input_cost_per_token_cache_hit": 0.000000028, + "cache_read_input_token_cost": 0.000000028, + "cache_creation_input_token_cost": 0.0, + "output_cost_per_token": 0.00000042, + "litellm_provider": "deepseek", + "mode": "chat", + //"supports_function_calling": true, "supports_assistant_prefill": true, //"supports_tool_choice": true, "supports_prompt_caching": true @@ -49,7 +65,7 @@ }, "openrouter/deepseek/deepseek-chat-v3-0324": { "max_tokens": 8192, - "max_input_tokens": 64000, + "max_input_tokens": 131072, "max_output_tokens": 8192, "input_cost_per_token": 0.00000055, "input_cost_per_token_cache_hit": 0.00000014, @@ -276,6 +292,61 @@ "supports_tool_choice": true, "source": "https://cloud.google.com/vertex-ai/generative-ai/pricing" }, + "vertex_ai/gemini-2.5-pro": { + "max_tokens": 65536, + "max_input_tokens": 1048576, + "max_output_tokens": 65536, + "max_images_per_prompt": 3000, + "max_videos_per_prompt": 10, + "max_video_length": 1, + "max_audio_length_hours": 8.4, + "max_audio_per_prompt": 1, + "max_pdf_size_mb": 20, + "input_cost_per_token": 0.00000125, + "input_cost_per_token_above_200k_tokens": 0.0000025, + "output_cost_per_token": 0.00001, + "output_cost_per_token_above_200k_tokens": 0.000015, + "litellm_provider": "vertex_ai-language-models", + "mode": "chat", + "rpm": 2000, + "tpm": 8000000, + "supports_system_messages": true, + "supports_function_calling": true, + "supports_vision": true, + "supports_response_schema": true, + "supports_audio_output": false, + "supports_tool_choice": true, + "supported_modalities": ["text", "image", "audio", "video"], + "supported_output_modalities": ["text"], + "source": "https://cloud.google.com/vertex-ai/generative-ai/pricing" + }, + "vertex_ai/gemini-2.5-flash": { + "max_tokens": 65536, + "max_input_tokens": 1048576, + "max_output_tokens": 65536, + "max_images_per_prompt": 3000, + "max_videos_per_prompt": 10, + "max_video_length": 1, + "max_audio_length_hours": 8.4, + "max_audio_per_prompt": 1, + "max_pdf_size_mb": 20, + "input_cost_per_token": 0.0000003, + "input_cost_per_audio_token": 0.000001, + "output_cost_per_token": 0.0000025, + "litellm_provider": "vertex_ai-language-models", + "mode": "chat", + "rpm": 10000, + "tpm": 8000000, + "supports_system_messages": true, + "supports_function_calling": true, + "supports_vision": true, + "supports_response_schema": true, + "supports_audio_output": false, + "supports_tool_choice": true, + "supported_modalities": ["text", "image", "audio", "video"], + "supported_output_modalities": ["text"], + "source": "https://cloud.google.com/vertex-ai/generative-ai/pricing" + }, "openrouter/google/gemini-2.5-pro-preview-03-25": { "max_tokens": 8192, "max_input_tokens": 1048576, @@ -348,6 +419,42 @@ "supports_tool_choice": true, "source": "https://cloud.google.com/vertex-ai/generative-ai/pricing" }, + "openrouter/google/gemini-2.5": { + "max_tokens": 8192, + "max_input_tokens": 1048576, + "max_output_tokens": 64000, + "max_images_per_prompt": 3000, + "max_videos_per_prompt": 10, + "max_video_length": 1, + "max_audio_length_hours": 8.4, + "max_audio_per_prompt": 1, + "max_pdf_size_mb": 30, + "input_cost_per_image": 0, + "input_cost_per_video_per_second": 0, + "input_cost_per_audio_per_second": 0, + "input_cost_per_token": 0, + "input_cost_per_character": 0, + "input_cost_per_token_above_128k_tokens": 0, + "input_cost_per_character_above_128k_tokens": 0, + "input_cost_per_image_above_128k_tokens": 0, + "input_cost_per_video_per_second_above_128k_tokens": 0, + "input_cost_per_audio_per_second_above_128k_tokens": 0, + "output_cost_per_token": 0, + "output_cost_per_character": 0, + "output_cost_per_token_above_128k_tokens": 0, + "output_cost_per_character_above_128k_tokens": 0, + "litellm_provider": "openrouter", + "mode": "chat", + "supports_system_messages": true, + "supports_function_calling": true, + "supports_vision": true, + "supports_audio_input": true, + "supports_video_input": true, + "supports_pdf_input": true, + "supports_response_schema": true, + "supports_tool_choice": true, + "source": "https://cloud.google.com/vertex-ai/generative-ai/pricing" + }, "openrouter/x-ai/grok-3-beta": { "max_tokens": 131072, "max_input_tokens": 131072, @@ -432,6 +539,35 @@ "supported_output_modalities": ["text"], "source": "https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview" }, + "gemini-2.5-pro-preview-06-05": { + "max_tokens": 65536, + "max_input_tokens": 1048576, + "max_output_tokens": 65536, + "max_images_per_prompt": 3000, + "max_videos_per_prompt": 10, + "max_video_length": 1, + "max_audio_length_hours": 8.4, + "max_audio_per_prompt": 1, + "max_pdf_size_mb": 30, + "input_cost_per_audio_token": 0.00000125, + "input_cost_per_token": 0.00000125, + "input_cost_per_token_above_200k_tokens": 0.0000025, + "output_cost_per_token": 0.00001, + "output_cost_per_token_above_200k_tokens": 0.000015, + "litellm_provider": "vertex_ai-language-models", + "mode": "chat", + "supports_reasoning": true, + "supports_system_messages": true, + "supports_function_calling": true, + "supports_vision": true, + "supports_response_schema": true, + "supports_audio_output": false, + "supports_tool_choice": true, + "supported_endpoints": ["/v1/chat/completions", "/v1/completions", "/v1/batch"], + "supported_modalities": ["text", "image", "audio", "video"], + "supported_output_modalities": ["text"], + "source": "https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview" + }, "gemini/gemini-2.5-pro-preview-05-06": { "max_tokens": 65536, "max_input_tokens": 1048576, @@ -461,6 +597,117 @@ "supported_output_modalities": ["text"], "source": "https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-pro-preview" }, + "gemini/gemini-2.5-pro-preview-06-05": { + "max_tokens": 65536, + "max_input_tokens": 1048576, + "max_output_tokens": 65536, + "max_images_per_prompt": 3000, + "max_videos_per_prompt": 10, + "max_video_length": 1, + "max_audio_length_hours": 8.4, + "max_audio_per_prompt": 1, + "max_pdf_size_mb": 30, + "input_cost_per_audio_token": 0.0000007, + "input_cost_per_token": 0.00000125, + "input_cost_per_token_above_200k_tokens": 0.0000025, + "output_cost_per_token": 0.00001, + "output_cost_per_token_above_200k_tokens": 0.000015, + "litellm_provider": "gemini", + "mode": "chat", + "rpm": 10000, + "tpm": 10000000, + "supports_system_messages": true, + "supports_function_calling": true, + "supports_vision": true, + "supports_response_schema": true, + "supports_audio_output": false, + "supports_tool_choice": true, + "supported_modalities": ["text", "image", "audio", "video"], + "supported_output_modalities": ["text"], + "source": "https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-pro-preview" + }, + "gemini/gemini-2.5-pro": { + "max_tokens": 65536, + "max_input_tokens": 1048576, + "max_output_tokens": 65536, + "max_images_per_prompt": 3000, + "max_videos_per_prompt": 10, + "max_video_length": 1, + "max_audio_length_hours": 8.4, + "max_audio_per_prompt": 1, + "max_pdf_size_mb": 20, + "input_cost_per_token": 0.00000125, + "input_cost_per_token_above_200k_tokens": 0.0000025, + "output_cost_per_token": 0.00001, + "output_cost_per_token_above_200k_tokens": 0.000015, + "litellm_provider": "gemini", + "mode": "chat", + "rpm": 2000, + "tpm": 8000000, + "supports_system_messages": true, + "supports_function_calling": true, + "supports_vision": true, + "supports_response_schema": true, + "supports_audio_output": false, + "supports_tool_choice": true, + "supported_modalities": ["text", "image", "audio", "video"], + "supported_output_modalities": ["text"], + "source": "https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-pro" + }, + "gemini/gemini-2.5-flash": { + "max_tokens": 65536, + "max_input_tokens": 1048576, + "max_output_tokens": 65536, + "max_images_per_prompt": 3000, + "max_videos_per_prompt": 10, + "max_video_length": 1, + "max_audio_length_hours": 8.4, + "max_audio_per_prompt": 1, + "max_pdf_size_mb": 20, + "input_cost_per_token": 0.00000035, + "input_cost_per_audio_token": 0.000001, + "output_cost_per_token": 0.0000025, + "litellm_provider": "gemini", + "mode": "chat", + "rpm": 10000, + "tpm": 8000000, + "supports_system_messages": true, + "supports_function_calling": true, + "supports_vision": true, + "supports_response_schema": true, + "supports_audio_output": false, + "supports_tool_choice": true, + "supported_modalities": ["text", "image", "audio", "video"], + "supported_output_modalities": ["text"], + "source": "https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-flash" + }, + "gemini/gemini-2.5-flash-lite-preview-06-17": { + "max_tokens": 64000, + "max_input_tokens": 1000000, + "max_output_tokens": 64000, + "max_images_per_prompt": 3000, + "max_videos_per_prompt": 10, + "max_video_length": 1, + "max_audio_length_hours": 8.4, + "max_audio_per_prompt": 1, + "max_pdf_size_mb": 20, + "input_cost_per_token": 0.00000001, + "input_cost_per_audio_token": 0.0000005, + "output_cost_per_token": 0.0000004, + "litellm_provider": "gemini", + "mode": "chat", + "rpm": 30000, + "tpm": 30000000, + "supports_system_messages": true, + "supports_function_calling": true, + "supports_vision": true, + "supports_response_schema": true, + "supports_audio_output": false, + "supports_tool_choice": true, + "supported_modalities": ["text", "image", "audio", "video"], + "supported_output_modalities": ["text"], + "source": "https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-flash-lite" + }, "together_ai/Qwen/Qwen3-235B-A22B-fp8-tput": { "input_cost_per_token": 0.0000002, "output_cost_per_token": 0.0000006, diff --git a/aider/resources/model-settings.yml b/aider/resources/model-settings.yml index 5b00a0f0d..9052c668e 100644 --- a/aider/resources/model-settings.yml +++ b/aider/resources/model-settings.yml @@ -315,7 +315,7 @@ editor_edit_format: editor-diff accepts_settings: ["thinking_tokens"] -- name: vertex_ai-anthropic_models/vertex_ai/claude-3-7-sonnet@20250219 +- name: vertex_ai/claude-3-7-sonnet@20250219 overeager: true edit_format: diff weak_model_name: vertex_ai/claude-3-5-haiku@20241022 @@ -323,7 +323,7 @@ examples_as_sys_msg: true extra_params: max_tokens: 64000 - editor_model_name: vertex_ai-anthropic_models/vertex_ai/claude-3-7-sonnet@20250219 + editor_model_name: vertex_ai/claude-3-7-sonnet@20250219 editor_edit_format: editor-diff accepts_settings: ["thinking_tokens"] @@ -533,28 +533,10 @@ edit_format: diff-fenced use_repo_map: true -- name: gemini/gemini-1.5-pro-exp-0827 - edit_format: diff-fenced - use_repo_map: true - - name: gemini/gemini-exp-1206 edit_format: diff use_repo_map: true -- name: gemini/gemini-exp-1114 - edit_format: diff - use_repo_map: true - -- name: gemini/gemini-exp-1121 - edit_format: diff - use_repo_map: true - -- name: vertex_ai/gemini-pro-experimental - edit_format: diff-fenced - use_repo_map: true - -- name: gemini/gemini-1.5-flash-exp-0827 - - name: gemini/gemini-2.0-flash-exp edit_format: diff use_repo_map: true @@ -603,7 +585,7 @@ use_repo_map: true examples_as_sys_msg: true extra_params: - max_tokens: 8192 + max_tokens: 64000 caches_by_default: true use_temperature: false editor_model_name: deepseek/deepseek-chat @@ -674,7 +656,7 @@ reminder: sys examples_as_sys_msg: true extra_params: - max_tokens: 8192 + max_tokens: 65536 caches_by_default: true - name: openrouter/openai/gpt-4o @@ -818,6 +800,13 @@ editor_model_name: openrouter/deepseek/deepseek-chat editor_edit_format: editor-diff +- name: openrouter/moonshotai/kimi-k2 + edit_format: diff + use_repo_map: true + examples_as_sys_msg: true + extra_params: + temperature: 0.6 + - name: fireworks_ai/accounts/fireworks/models/deepseek-r1 edit_format: diff weak_model_name: fireworks_ai/accounts/fireworks/models/deepseek-v3 @@ -978,16 +967,16 @@ - name: vertex_ai/gemini-2.5-pro-exp-03-25 edit_format: diff-fenced use_repo_map: true - weak_model_name: vertex_ai-language-models/gemini-2.5-flash-preview-04-17 + weak_model_name: vertex_ai/gemini-2.5-flash-preview-04-17 overeager: true - editor_model_name: vertex_ai-language-models/gemini-2.5-flash-preview-04-17 + editor_model_name: vertex_ai/gemini-2.5-flash-preview-04-17 - name: vertex_ai/gemini-2.5-pro-preview-03-25 edit_format: diff-fenced use_repo_map: true - weak_model_name: vertex_ai-language-models/gemini-2.5-flash-preview-04-17 + weak_model_name: vertex_ai/gemini-2.5-flash-preview-04-17 overeager: true - editor_model_name: vertex_ai-language-models/gemini-2.5-flash-preview-04-17 + editor_model_name: vertex_ai/gemini-2.5-flash-preview-04-17 - name: openrouter/openrouter/quasar-alpha use_repo_map: true @@ -1007,9 +996,6 @@ edit_format: whole accepts_settings: - reasoning_effort - #extra_params: - # extra_body: - # reasoning_effort: high - name: openai/o4-mini edit_format: diff @@ -1021,9 +1007,6 @@ system_prompt_prefix: "Formatting re-enabled. " accepts_settings: ["reasoning_effort"] examples_as_sys_msg: true - #extra_params: - # extra_body: - # reasoning_effort: high - name: openrouter/openai/o4-mini edit_format: diff @@ -1035,9 +1018,6 @@ system_prompt_prefix: "Formatting re-enabled. " accepts_settings: ["reasoning_effort"] examples_as_sys_msg: true - #extra_params: - # extra_body: - # reasoning_effort: high - name: azure/o4-mini edit_format: diff @@ -1049,18 +1029,24 @@ system_prompt_prefix: "Formatting re-enabled. " accepts_settings: ["reasoning_effort"] examples_as_sys_msg: true - #extra_params: - # extra_body: - # reasoning_effort: high + +- name: xai/grok-4 + use_repo_map: true + edit_format: diff + accepts_settings: + - reasoning_effort + +- name: openrouter/x-ai/grok-4 + use_repo_map: true + edit_format: diff + accepts_settings: + - reasoning_effort - name: xai/grok-3-mini-beta use_repo_map: true edit_format: whole accepts_settings: - reasoning_effort - #extra_params: - # extra_body: - # reasoning_effort: low - name: openrouter/x-ai/grok-3-fast-beta use_repo_map: true @@ -1153,9 +1139,17 @@ system_prompt_prefix: "Formatting re-enabled. " accepts_settings: ["reasoning_effort"] examples_as_sys_msg: true - #extra_params: - # extra_body: - # reasoning_effort: high + +- name: o3-pro + streaming: false + edit_format: diff + weak_model_name: gpt-4.1-mini + use_repo_map: true + editor_model_name: gpt-4.1 + editor_edit_format: editor-diff + system_prompt_prefix: "Formatting re-enabled. " + accepts_settings: ["reasoning_effort"] + examples_as_sys_msg: true - name: openai/o4-mini edit_format: diff @@ -1167,9 +1161,6 @@ system_prompt_prefix: "Formatting re-enabled. " accepts_settings: ["reasoning_effort"] examples_as_sys_msg: true - #extra_params: - # extra_body: - # reasoning_effort: high - name: openrouter/openai/o4-mini edit_format: diff @@ -1181,9 +1172,6 @@ system_prompt_prefix: "Formatting re-enabled. " accepts_settings: ["reasoning_effort"] examples_as_sys_msg: true - #extra_params: - # extra_body: - # reasoning_effort: high - name: azure/o4-mini edit_format: diff @@ -1195,9 +1183,6 @@ system_prompt_prefix: "Formatting re-enabled. " accepts_settings: ["reasoning_effort"] examples_as_sys_msg: true - #extra_params: - # extra_body: - # reasoning_effort: high - name: openai/o3 streaming: false @@ -1209,9 +1194,17 @@ system_prompt_prefix: "Formatting re-enabled. " accepts_settings: ["reasoning_effort"] examples_as_sys_msg: true - #extra_params: - # extra_body: - # reasoning_effort: high + +- name: openai/o3-pro + streaming: false + edit_format: diff + weak_model_name: openai/gpt-4.1-mini + use_repo_map: true + editor_model_name: openai/gpt-4.1 + editor_edit_format: editor-diff + system_prompt_prefix: "Formatting re-enabled. " + accepts_settings: ["reasoning_effort"] + examples_as_sys_msg: true - name: openai/o4-mini edit_format: diff @@ -1223,9 +1216,6 @@ system_prompt_prefix: "Formatting re-enabled. " accepts_settings: ["reasoning_effort"] examples_as_sys_msg: true - #extra_params: - # extra_body: - # reasoning_effort: high - name: openrouter/openai/o4-mini edit_format: diff @@ -1237,9 +1227,6 @@ system_prompt_prefix: "Formatting re-enabled. " accepts_settings: ["reasoning_effort"] examples_as_sys_msg: true - #extra_params: - # extra_body: - # reasoning_effort: high - name: azure/o4-mini edit_format: diff @@ -1251,9 +1238,6 @@ system_prompt_prefix: "Formatting re-enabled. " accepts_settings: ["reasoning_effort"] examples_as_sys_msg: true - #extra_params: - # extra_body: - # reasoning_effort: high - name: openrouter/openai/o3 streaming: false @@ -1265,9 +1249,17 @@ system_prompt_prefix: "Formatting re-enabled. " accepts_settings: ["reasoning_effort"] examples_as_sys_msg: true - #extra_params: - # extra_body: - # reasoning_effort: high + +- name: openrouter/openai/o3-pro + streaming: false + edit_format: diff + weak_model_name: openrouter/openai/gpt-4.1-mini + use_repo_map: true + editor_model_name: openrouter/openai/gpt-4.1 + editor_edit_format: editor-diff + system_prompt_prefix: "Formatting re-enabled. " + accepts_settings: ["reasoning_effort"] + examples_as_sys_msg: true - name: openai/o4-mini edit_format: diff @@ -1279,9 +1271,6 @@ system_prompt_prefix: "Formatting re-enabled. " accepts_settings: ["reasoning_effort"] examples_as_sys_msg: true - #extra_params: - # extra_body: - # reasoning_effort: high - name: openrouter/openai/o4-mini edit_format: diff @@ -1293,9 +1282,6 @@ system_prompt_prefix: "Formatting re-enabled. " accepts_settings: ["reasoning_effort"] examples_as_sys_msg: true - #extra_params: - # extra_body: - # reasoning_effort: high - name: azure/o4-mini edit_format: diff @@ -1307,9 +1293,6 @@ system_prompt_prefix: "Formatting re-enabled. " accepts_settings: ["reasoning_effort"] examples_as_sys_msg: true - #extra_params: - # extra_body: - # reasoning_effort: high - name: azure/o3 streaming: false @@ -1321,9 +1304,17 @@ system_prompt_prefix: "Formatting re-enabled. " accepts_settings: ["reasoning_effort"] examples_as_sys_msg: true - #extra_params: - # extra_body: - # reasoning_effort: high + +- name: azure/o3-pro + streaming: false + edit_format: diff + weak_model_name: azure/gpt-4.1-mini + use_repo_map: true + editor_model_name: azure/gpt-4.1 + editor_edit_format: editor-diff + system_prompt_prefix: "Formatting re-enabled. " + accepts_settings: ["reasoning_effort"] + examples_as_sys_msg: true - name: openai/o4-mini edit_format: diff @@ -1368,9 +1359,6 @@ system_prompt_prefix: "Formatting re-enabled. " accepts_settings: ["reasoning_effort"] examples_as_sys_msg: true - #extra_params: - # extra_body: - # reasoning_effort: high - name: gemini/gemini-2.5-flash-preview-04-17 edit_format: diff @@ -1382,7 +1370,7 @@ use_repo_map: true accepts_settings: ["reasoning_effort", "thinking_tokens"] -- name: vertex_ai-language-models/gemini-2.5-flash-preview-04-17 +- name: vertex_ai/gemini-2.5-flash-preview-04-17 edit_format: diff use_repo_map: true accepts_settings: ["reasoning_effort", "thinking_tokens"] @@ -1399,19 +1387,126 @@ use_repo_map: true weak_model_name: gemini/gemini-2.5-flash-preview-04-17 +- name: gemini/gemini-2.5-pro-preview-06-05 + overeager: true + edit_format: diff-fenced + use_repo_map: true + weak_model_name: gemini/gemini-2.5-flash-preview-04-17 + accepts_settings: ["thinking_tokens"] + +- name: gemini/gemini-2.5-flash + overeager: true + edit_format: diff-fenced + use_repo_map: true + use_temperature: false + accepts_settings: ["thinking_tokens"] + +- name: gemini/gemini-2.5-pro + overeager: true + edit_format: diff-fenced + use_repo_map: true + weak_model_name: gemini/gemini-2.5-flash + use_temperature: false + accepts_settings: ["thinking_tokens"] + +- name: gemini/gemini-2.5-flash-lite-preview-06-17 + overeager: true + edit_format: diff-fenced + use_repo_map: true + use_temperature: false + accepts_settings: ["thinking_tokens"] + - name: vertex_ai/gemini-2.5-pro-preview-05-06 edit_format: diff-fenced use_repo_map: true - weak_model_name: vertex_ai-language-models/gemini-2.5-flash-preview-04-17 + weak_model_name: vertex_ai/gemini-2.5-flash-preview-04-17 overeager: true - editor_model_name: vertex_ai-language-models/gemini-2.5-flash-preview-04-17 + editor_model_name: vertex_ai/gemini-2.5-flash-preview-04-17 + +- name: vertex_ai/gemini-2.5-pro-preview-06-05 + edit_format: diff-fenced + use_repo_map: true + weak_model_name: vertex_ai/gemini-2.5-flash-preview-04-17 + overeager: true + editor_model_name: vertex_ai/gemini-2.5-flash-preview-04-17 + accepts_settings: ["thinking_tokens"] + +- name: vertex_ai/gemini-2.5-pro + edit_format: diff-fenced + use_repo_map: true + weak_model_name: vertex_ai/gemini-2.5-flash + overeager: true + editor_model_name: vertex_ai/gemini-2.5-flash + accepts_settings: ["thinking_tokens"] + +- name: vertex_ai/gemini-2.5-flash + overeager: true + edit_format: diff-fenced + use_repo_map: true + accepts_settings: ["thinking_tokens"] - name: openrouter/google/gemini-2.5-pro-preview-05-06 overeager: true edit_format: diff-fenced use_repo_map: true weak_model_name: openrouter/google/gemini-2.0-flash-001 - + +- name: openrouter/google/gemini-2.5-pro-preview-06-05 + overeager: true + edit_format: diff-fenced + use_repo_map: true + weak_model_name: openrouter/google/gemini-2.0-flash-001 + accepts_settings: ["thinking_tokens"] + +- name: openrouter/google/gemini-2.5-pro + overeager: true + edit_format: diff-fenced + use_repo_map: true + weak_model_name: openrouter/google/gemini-2.5-flash + accepts_settings: ["thinking_tokens"] + +- name: gemini/gemini-3-pro-preview + overeager: true + edit_format: diff-fenced + use_repo_map: true + weak_model_name: gemini/gemini-2.5-flash + use_temperature: false + accepts_settings: ["thinking_tokens"] + +- name: vertex_ai/gemini-3-pro-preview + edit_format: diff-fenced + use_repo_map: true + weak_model_name: vertex_ai/gemini-2.5-flash + overeager: true + editor_model_name: vertex_ai/gemini-2.5-flash + accepts_settings: ["thinking_tokens"] + +- name: openrouter/google/gemini-3-pro-preview + overeager: true + edit_format: diff-fenced + use_repo_map: true + weak_model_name: openrouter/google/gemini-2.5-flash + accepts_settings: ["thinking_tokens"] + +- name: gemini/gemini-3-flash-preview + overeager: true + edit_format: diff-fenced + use_repo_map: true + use_temperature: false + accepts_settings: ["thinking_tokens"] + +- name: vertex_ai/gemini-3-flash-preview + overeager: true + edit_format: diff-fenced + use_repo_map: true + accepts_settings: ["thinking_tokens"] + +- name: openrouter/google/gemini-3-flash-preview + overeager: true + edit_format: diff-fenced + use_repo_map: true + accepts_settings: ["thinking_tokens"] + #- name: openrouter/qwen/qwen3-235b-a22b # system_prompt_prefix: "/no_think" # use_temperature: 0.7 @@ -1435,4 +1530,869 @@ # top_k: 20 # min_p: 0.0 # temperature: 0.7 - \ No newline at end of file + + +- name: claude-sonnet-4-20250514 + edit_format: diff + weak_model_name: claude-3-5-haiku-20241022 + use_repo_map: true + examples_as_sys_msg: false + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 64000 + cache_control: true + editor_model_name: claude-sonnet-4-20250514 + editor_edit_format: editor-diff + accepts_settings: ["thinking_tokens"] + +- name: anthropic/claude-sonnet-4-20250514 + edit_format: diff + weak_model_name: anthropic/claude-3-5-haiku-20241022 + use_repo_map: true + examples_as_sys_msg: false + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 64000 + cache_control: true + editor_model_name: anthropic/claude-sonnet-4-20250514 + editor_edit_format: editor-diff + accepts_settings: ["thinking_tokens"] + +- name: bedrock/anthropic.claude-sonnet-4-20250514-v1:0 + edit_format: diff + weak_model_name: bedrock/anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + examples_as_sys_msg: false + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 64000 + cache_control: true + editor_model_name: bedrock/anthropic.claude-sonnet-4-20250514-v1:0 + editor_edit_format: editor-diff + accepts_settings: ["thinking_tokens"] + +- name: bedrock/us.anthropic.claude-sonnet-4-20250514-v1:0 + edit_format: diff + weak_model_name: bedrock/us.anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + examples_as_sys_msg: false + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 64000 + cache_control: true + editor_model_name: bedrock/us.anthropic.claude-sonnet-4-20250514-v1:0 + editor_edit_format: editor-diff + accepts_settings: ["thinking_tokens"] + +- name: bedrock/global.anthropic.claude-sonnet-4-5-20250929-v1:0 + edit_format: diff + weak_model_name: bedrock/anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + examples_as_sys_msg: false + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 64000 + cache_control: true + editor_model_name: bedrock/global.anthropic.claude-sonnet-4-5-20250929-v1:0 + editor_edit_format: editor-diff + accepts_settings: ["thinking_tokens"] + +- name: bedrock_converse/anthropic.claude-sonnet-4-20250514-v1:0 + edit_format: diff + weak_model_name: bedrock_converse/anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + examples_as_sys_msg: false + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 64000 + cache_control: true + editor_model_name: bedrock_converse/anthropic.claude-sonnet-4-20250514-v1:0 + editor_edit_format: editor-diff + accepts_settings: ["thinking_tokens"] + +- name: bedrock_converse/us.anthropic.claude-sonnet-4-20250514-v1:0 + edit_format: diff + weak_model_name: bedrock_converse/us.anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + examples_as_sys_msg: false + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 64000 + cache_control: true + editor_model_name: bedrock_converse/us.anthropic.claude-sonnet-4-20250514-v1:0 + editor_edit_format: editor-diff + accepts_settings: ["thinking_tokens"] + +- name: vertex_ai/claude-sonnet-4@20250514 + edit_format: diff + weak_model_name: vertex_ai/claude-3-5-haiku@20241022 + use_repo_map: true + examples_as_sys_msg: false + extra_params: + max_tokens: 64000 + editor_model_name: vertex_ai/claude-sonnet-4@20250514 + editor_edit_format: editor-diff + accepts_settings: ["thinking_tokens"] + +- name: vertex_ai/claude-sonnet-4@20250514 + edit_format: diff + weak_model_name: vertex_ai/claude-3-5-haiku@20241022 + use_repo_map: true + examples_as_sys_msg: false + extra_params: + max_tokens: 64000 + editor_model_name: vertex_ai/claude-sonnet-4@20250514 + editor_edit_format: editor-diff + accepts_settings: ["thinking_tokens"] + +- name: openrouter/anthropic/claude-sonnet-4 + edit_format: diff + weak_model_name: openrouter/anthropic/claude-3-5-haiku + use_repo_map: true + examples_as_sys_msg: false + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 64000 + cache_control: true + editor_model_name: openrouter/anthropic/claude-sonnet-4 + editor_edit_format: editor-diff + accepts_settings: ["thinking_tokens"] + +- name: anthropic.claude-sonnet-4-20250514-v1:0 + edit_format: diff + weak_model_name: anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + examples_as_sys_msg: false + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 64000 + cache_control: true + editor_model_name: anthropic.claude-sonnet-4-20250514-v1:0 + editor_edit_format: editor-diff + accepts_settings: ["thinking_tokens"] + +- name: bedrock_converse/eu.anthropic.claude-sonnet-4-20250514-v1:0 + edit_format: diff + weak_model_name: bedrock_converse/eu.anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + examples_as_sys_msg: false + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 64000 + cache_control: true + editor_model_name: bedrock_converse/eu.anthropic.claude-sonnet-4-20250514-v1:0 + editor_edit_format: editor-diff + accepts_settings: ["thinking_tokens"] + +- name: eu.anthropic.claude-sonnet-4-20250514-v1:0 + edit_format: diff + weak_model_name: eu.anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + examples_as_sys_msg: false + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 64000 + cache_control: true + editor_model_name: eu.anthropic.claude-sonnet-4-20250514-v1:0 + editor_edit_format: editor-diff + accepts_settings: ["thinking_tokens"] + +- name: us.anthropic.claude-sonnet-4-20250514-v1:0 + edit_format: diff + weak_model_name: us.anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + examples_as_sys_msg: false + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 64000 + cache_control: true + editor_model_name: us.anthropic.claude-sonnet-4-20250514-v1:0 + editor_edit_format: editor-diff + accepts_settings: ["thinking_tokens"] + +- name: claude-opus-4-20250514 + edit_format: diff + weak_model_name: claude-3-5-haiku-20241022 + use_repo_map: true + examples_as_sys_msg: false + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 32000 + cache_control: true + editor_model_name: claude-sonnet-4-20250514 + editor_edit_format: editor-diff + accepts_settings: ["thinking_tokens"] + +- name: anthropic/claude-opus-4-20250514 + edit_format: diff + weak_model_name: anthropic/claude-3-5-haiku-20241022 + use_repo_map: true + examples_as_sys_msg: false + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 32000 + cache_control: true + editor_model_name: anthropic/claude-sonnet-4-20250514 + editor_edit_format: editor-diff + accepts_settings: ["thinking_tokens"] + +- name: anthropic.claude-opus-4-20250514-v1:0 + edit_format: diff + weak_model_name: anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + examples_as_sys_msg: false + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 32000 + cache_control: true + editor_model_name: anthropic.claude-sonnet-4-20250514-v1:0 + editor_edit_format: editor-diff + accepts_settings: ["thinking_tokens"] + +- name: bedrock_converse/anthropic.claude-opus-4-20250514-v1:0 + edit_format: diff + weak_model_name: bedrock_converse/anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + examples_as_sys_msg: false + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 32000 + cache_control: true + editor_model_name: bedrock_converse/anthropic.claude-sonnet-4-20250514-v1:0 + editor_edit_format: editor-diff + accepts_settings: ["thinking_tokens"] + +- name: bedrock_converse/us.anthropic.claude-opus-4-20250514-v1:0 + edit_format: diff + weak_model_name: bedrock_converse/us.anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + examples_as_sys_msg: false + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 32000 + cache_control: true + editor_model_name: bedrock_converse/us.anthropic.claude-sonnet-4-20250514-v1:0 + editor_edit_format: editor-diff + accepts_settings: ["thinking_tokens"] + +- name: bedrock_converse/eu.anthropic.claude-opus-4-20250514-v1:0 + edit_format: diff + weak_model_name: bedrock_converse/eu.anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + examples_as_sys_msg: false + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 32000 + cache_control: true + editor_model_name: bedrock_converse/eu.anthropic.claude-sonnet-4-20250514-v1:0 + editor_edit_format: editor-diff + accepts_settings: ["thinking_tokens"] + +- name: eu.anthropic.claude-opus-4-20250514-v1:0 + edit_format: diff + weak_model_name: eu.anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + examples_as_sys_msg: false + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 32000 + cache_control: true + editor_model_name: eu.anthropic.claude-sonnet-4-20250514-v1:0 + editor_edit_format: editor-diff + accepts_settings: ["thinking_tokens"] + +- name: us.anthropic.claude-opus-4-20250514-v1:0 + edit_format: diff + weak_model_name: us.anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + examples_as_sys_msg: false + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 32000 + cache_control: true + editor_model_name: us.anthropic.claude-sonnet-4-20250514-v1:0 + editor_edit_format: editor-diff + accepts_settings: ["thinking_tokens"] + +- name: vertex_ai/claude-opus-4@20250514 + edit_format: diff + weak_model_name: vertex_ai/claude-3-5-haiku@20241022 + use_repo_map: true + examples_as_sys_msg: false + extra_params: + max_tokens: 32000 + editor_model_name: vertex_ai/claude-sonnet-4@20250514 + editor_edit_format: editor-diff + accepts_settings: ["thinking_tokens"] + +- name: vertex_ai/claude-opus-4@20250514 + edit_format: diff + weak_model_name: vertex_ai/claude-3-5-haiku@20241022 + use_repo_map: true + examples_as_sys_msg: false + extra_params: + max_tokens: 32000 + editor_model_name: vertex_ai/claude-sonnet-4@20250514 + editor_edit_format: editor-diff + accepts_settings: ["thinking_tokens"] + +- name: vertex_ai/gemini-2.5-flash-preview-05-20 + edit_format: diff + use_repo_map: true + accepts_settings: ["reasoning_effort", "thinking_tokens"] + +- name: openrouter/anthropic/claude-opus-4 + edit_format: diff + weak_model_name: openrouter/anthropic/claude-3-5-haiku + use_repo_map: true + examples_as_sys_msg: false + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 32000 + cache_control: true + editor_model_name: openrouter/anthropic/claude-sonnet-4 + editor_edit_format: editor-diff + accepts_settings: ["thinking_tokens"] + +# GPT-5 family +- name: gpt-5 + edit_format: diff + weak_model_name: gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + overeager: true + +- name: gpt-5-pro + streaming: false + edit_format: diff + weak_model_name: gpt-5-mini + use_repo_map: true + editor_model_name: gpt-5 + editor_edit_format: editor-diff + system_prompt_prefix: "Formatting re-enabled. " + accepts_settings: ["reasoning_effort"] + examples_as_sys_msg: true + use_temperature: false + +- name: gpt-5-2025-08-07 + edit_format: diff + weak_model_name: gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: gpt-5.1 + edit_format: diff + weak_model_name: gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + overeager: true + +- name: gpt-5.1-2025-11-13 + edit_format: diff + weak_model_name: gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: gpt-5.2-pro + streaming: false + edit_format: diff + weak_model_name: gpt-5-mini + use_repo_map: true + editor_model_name: gpt-5.2 + editor_edit_format: editor-diff + system_prompt_prefix: "Formatting re-enabled. " + accepts_settings: ["reasoning_effort"] + examples_as_sys_msg: true + use_temperature: false + +- name: gpt-5.2 + edit_format: diff + weak_model_name: gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + overeager: true + +- name: gpt-5.2-2025-12-11 + edit_format: diff + weak_model_name: gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: gpt-5-mini + edit_format: diff + weak_model_name: gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: gpt-5-mini-2025-08-07 + edit_format: diff + weak_model_name: gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: gpt-5-nano + edit_format: diff + weak_model_name: gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: gpt-5-nano-2025-08-07 + edit_format: diff + weak_model_name: gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: gpt-5-chat + edit_format: diff + weak_model_name: gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: gpt-5-chat-latest + edit_format: diff + weak_model_name: gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: gpt-5.1-chat + edit_format: diff + weak_model_name: gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: gpt-5.1-chat-latest + edit_format: diff + weak_model_name: gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: gpt-5.2-chat-latest + edit_format: diff + weak_model_name: gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: gpt-5-codex + edit_format: diff + weak_model_name: gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: gpt-5.1-codex + edit_format: diff + weak_model_name: gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: azure/gpt-5 + edit_format: diff + weak_model_name: azure/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: azure/gpt-5-pro + streaming: false + edit_format: diff + weak_model_name: azure/gpt-5-mini + use_repo_map: true + editor_model_name: azure/gpt-5 + editor_edit_format: editor-diff + system_prompt_prefix: "Formatting re-enabled. " + accepts_settings: ["reasoning_effort"] + examples_as_sys_msg: true + use_temperature: false + +- name: azure/gpt-5-2025-08-07 + edit_format: diff + weak_model_name: azure/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: azure/gpt-5.1 + edit_format: diff + weak_model_name: azure/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: azure/gpt-5.1-2025-11-13 + edit_format: diff + weak_model_name: azure/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: azure/gpt-5.2 + edit_format: diff + weak_model_name: azure/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: azure/gpt-5.2-2025-12-11 + edit_format: diff + weak_model_name: azure/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: azure/gpt-5-mini + edit_format: diff + weak_model_name: azure/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: azure/gpt-5-mini-2025-08-07 + edit_format: diff + weak_model_name: azure/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: azure/gpt-5-nano + edit_format: diff + weak_model_name: azure/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: azure/gpt-5-nano-2025-08-07 + edit_format: diff + weak_model_name: azure/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: azure/gpt-5-chat + edit_format: diff + weak_model_name: azure/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: azure/gpt-5-chat-latest + edit_format: diff + weak_model_name: azure/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: azure/gpt-5.1-chat + edit_format: diff + weak_model_name: azure/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: azure/gpt-5.1-chat-latest + edit_format: diff + weak_model_name: azure/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: azure/gpt-5.2-chat-latest + edit_format: diff + weak_model_name: azure/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openai/gpt-5 + edit_format: diff + weak_model_name: openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openai/gpt-5-pro + streaming: false + edit_format: diff + weak_model_name: openai/gpt-5-mini + use_repo_map: true + editor_model_name: openai/gpt-5 + editor_edit_format: editor-diff + system_prompt_prefix: "Formatting re-enabled. " + accepts_settings: ["reasoning_effort"] + examples_as_sys_msg: true + use_temperature: false + +- name: openai/gpt-5-2025-08-07 + edit_format: diff + weak_model_name: openai/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openai/gpt-5.1 + edit_format: diff + weak_model_name: openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openai/gpt-5.1-2025-11-13 + edit_format: diff + weak_model_name: openai/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openai/gpt-5.2-pro + streaming: false + edit_format: diff + weak_model_name: openai/gpt-5-mini + use_repo_map: true + editor_model_name: openai/gpt-5.2 + editor_edit_format: editor-diff + system_prompt_prefix: "Formatting re-enabled. " + accepts_settings: ["reasoning_effort"] + examples_as_sys_msg: true + use_temperature: false + +- name: openai/gpt-5.2 + edit_format: diff + weak_model_name: openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openai/gpt-5.2-2025-12-11 + edit_format: diff + weak_model_name: openai/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openai/gpt-5-mini + edit_format: diff + weak_model_name: openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openai/gpt-5-mini-2025-08-07 + edit_format: diff + weak_model_name: openai/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openai/gpt-5-nano + edit_format: diff + weak_model_name: openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openai/gpt-5-nano-2025-08-07 + edit_format: diff + weak_model_name: openai/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openai/gpt-5-chat + edit_format: diff + weak_model_name: openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openai/gpt-5-chat-latest + edit_format: diff + weak_model_name: openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openai/gpt-5.1-chat + edit_format: diff + weak_model_name: openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openai/gpt-5.1-chat-latest + edit_format: diff + weak_model_name: openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openai/gpt-5.2-chat-latest + edit_format: diff + weak_model_name: openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openrouter/openai/gpt-5 + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openrouter/openai/gpt-5-pro + streaming: false + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-mini + use_repo_map: true + editor_model_name: openrouter/openai/gpt-5 + editor_edit_format: editor-diff + system_prompt_prefix: "Formatting re-enabled. " + accepts_settings: ["reasoning_effort"] + examples_as_sys_msg: true + use_temperature: false + +- name: openrouter/openai/gpt-5-2025-08-07 + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openrouter/openai/gpt-5.1 + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openrouter/openai/gpt-5.1-2025-11-13 + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openrouter/openai/gpt-5.2-pro + streaming: false + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-mini + use_repo_map: true + editor_model_name: openrouter/openai/gpt-5.2 + editor_edit_format: editor-diff + system_prompt_prefix: "Formatting re-enabled. " + accepts_settings: ["reasoning_effort"] + examples_as_sys_msg: true + use_temperature: false + +- name: openrouter/openai/gpt-5.2 + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openrouter/openai/gpt-5.2-2025-12-11 + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openrouter/openai/gpt-5-mini + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openrouter/openai/gpt-5-mini-2025-08-07 + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openrouter/openai/gpt-5-nano + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openrouter/openai/gpt-5-nano-2025-08-07 + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openrouter/openai/gpt-5-chat + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openrouter/openai/gpt-5-chat-latest + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openrouter/openai/gpt-5.1-chat + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openrouter/openai/gpt-5.1-chat-latest + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openrouter/openai/gpt-5.2-chat-latest + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] diff --git a/aider/utils.py b/aider/utils.py index 80cb0f38e..834ffa195 100644 --- a/aider/utils.py +++ b/aider/utils.py @@ -3,13 +3,12 @@ import platform import subprocess import sys import tempfile -import time from pathlib import Path import oslex -from rich.console import Console from aider.dump import dump # noqa: F401 +from aider.waiting import Spinner IMAGE_EXTENSIONS = {".png", ".jpg", ".jpeg", ".gif", ".bmp", ".tiff", ".webp", ".pdf"} @@ -212,6 +211,13 @@ def run_install(cmd): print() print("Installing:", printable_shell_command(cmd)) + # First ensure pip is available + ensurepip_cmd = [sys.executable, "-m", "ensurepip", "--upgrade"] + try: + subprocess.run(ensurepip_cmd, capture_output=True, check=False) + except Exception: + pass # Continue even if ensurepip fails + try: output = [] process = subprocess.Popen( @@ -251,154 +257,6 @@ def run_install(cmd): return False, output -class Spinner: - """ - Minimal spinner that scans a single marker back and forth across a line. - - The animation is pre-rendered into a list of frames. If the terminal - cannot display unicode the frames are converted to plain ASCII. - """ - - last_frame_idx = 0 # Class variable to store the last frame index - - def __init__(self, text: str, width: int = 7): - self.text = text - self.start_time = time.time() - self.last_update = 0.0 - self.visible = False - self.is_tty = sys.stdout.isatty() - self.console = Console() - - # Pre-render the animation frames using pure ASCII so they will - # always display, even on very limited terminals. - ascii_frames = [ - "#= ", # C1 C2 space(8) - "=# ", # C2 C1 space(8) - " =# ", # space(1) C2 C1 space(7) - " =# ", # space(2) C2 C1 space(6) - " =# ", # space(3) C2 C1 space(5) - " =# ", # space(4) C2 C1 space(4) - " =# ", # space(5) C2 C1 space(3) - " =# ", # space(6) C2 C1 space(2) - " =# ", # space(7) C2 C1 space(1) - " =#", # space(8) C2 C1 - " #=", # space(8) C1 C2 - " #= ", # space(7) C1 C2 space(1) - " #= ", # space(6) C1 C2 space(2) - " #= ", # space(5) C1 C2 space(3) - " #= ", # space(4) C1 C2 space(4) - " #= ", # space(3) C1 C2 space(5) - " #= ", # space(2) C1 C2 space(6) - " #= ", # space(1) C1 C2 space(7) - ] - - self.unicode_palette = "β–‘β–ˆ" - xlate_from, xlate_to = ("=#", self.unicode_palette) - - # If unicode is supported, swap the ASCII chars for nicer glyphs. - if self._supports_unicode(): - translation_table = str.maketrans(xlate_from, xlate_to) - frames = [f.translate(translation_table) for f in ascii_frames] - self.scan_char = xlate_to[xlate_from.find("#")] - else: - frames = ascii_frames - self.scan_char = "#" - - # Bounce the scanner back and forth. - self.frames = frames - self.frame_idx = Spinner.last_frame_idx # Initialize from class variable - self.width = len(frames[0]) - 2 # number of chars between the brackets - self.animation_len = len(frames[0]) - self.last_display_len = 0 # Length of the last spinner line (frame + text) - - def _supports_unicode(self) -> bool: - if not self.is_tty: - return False - try: - out = self.unicode_palette - out += "\b" * len(self.unicode_palette) - out += " " * len(self.unicode_palette) - out += "\b" * len(self.unicode_palette) - sys.stdout.write(out) - sys.stdout.flush() - return True - except UnicodeEncodeError: - return False - except Exception: - return False - - def _next_frame(self) -> str: - frame = self.frames[self.frame_idx] - self.frame_idx = (self.frame_idx + 1) % len(self.frames) - Spinner.last_frame_idx = self.frame_idx # Update class variable - return frame - - def step(self, text: str = None) -> None: - if text is not None: - self.text = text - - if not self.is_tty: - return - - now = time.time() - if not self.visible and now - self.start_time >= 0.5: - self.visible = True - self.last_update = 0.0 - if self.is_tty: - self.console.show_cursor(False) - - if not self.visible or now - self.last_update < 0.1: - return - - self.last_update = now - frame_str = self._next_frame() - - # Determine the maximum width for the spinner line - # Subtract 2 as requested, to leave a margin or prevent cursor wrapping issues - max_spinner_width = self.console.width - 2 - if max_spinner_width < 0: # Handle extremely narrow terminals - max_spinner_width = 0 - - current_text_payload = f" {self.text}" - line_to_display = f"{frame_str}{current_text_payload}" - - # Truncate the line if it's too long for the console width - if len(line_to_display) > max_spinner_width: - line_to_display = line_to_display[:max_spinner_width] - - len_line_to_display = len(line_to_display) - - # Calculate padding to clear any remnants from a longer previous line - padding_to_clear = " " * max(0, self.last_display_len - len_line_to_display) - - # Write the spinner frame, text, and any necessary clearing spaces - sys.stdout.write(f"\r{line_to_display}{padding_to_clear}") - self.last_display_len = len_line_to_display - - # Calculate number of backspaces to position cursor at the scanner character - scan_char_abs_pos = frame_str.find(self.scan_char) - - # Total characters written to the line (frame + text + padding) - total_chars_written_on_line = len_line_to_display + len(padding_to_clear) - - # num_backspaces will be non-positive if scan_char_abs_pos is beyond - # total_chars_written_on_line (e.g., if the scan char itself was truncated). - # (e.g., if the scan char itself was truncated). - # In such cases, (effectively) 0 backspaces are written, - # and the cursor stays at the end of the line. - num_backspaces = total_chars_written_on_line - scan_char_abs_pos - sys.stdout.write("\b" * num_backspaces) - sys.stdout.flush() - - def end(self) -> None: - if self.visible and self.is_tty: - clear_len = self.last_display_len # Use the length of the last displayed content - sys.stdout.write("\r" + " " * clear_len + "\r") - sys.stdout.flush() - self.console.show_cursor(True) - self.visible = False - - def find_common_root(abs_fnames): try: if len(abs_fnames) == 1: @@ -485,20 +343,3 @@ def printable_shell_command(cmd_list): str: Shell-escaped command string. """ return oslex.join(cmd_list) - - -def main(): - spinner = Spinner("Running spinner...") - try: - for _ in range(100): - time.sleep(0.15) - spinner.step() - print("Success!") - except KeyboardInterrupt: - print("\nInterrupted by user.") - finally: - spinner.end() - - -if __name__ == "__main__": - main() diff --git a/aider/waiting.py b/aider/waiting.py index 8068551bb..9c2f72bc7 100644 --- a/aider/waiting.py +++ b/aider/waiting.py @@ -13,10 +13,159 @@ Use it like: spinner.stop() """ +import sys import threading import time -from aider.utils import Spinner +from rich.console import Console + + +class Spinner: + """ + Minimal spinner that scans a single marker back and forth across a line. + + The animation is pre-rendered into a list of frames. If the terminal + cannot display unicode the frames are converted to plain ASCII. + """ + + last_frame_idx = 0 # Class variable to store the last frame index + + def __init__(self, text: str, width: int = 7): + self.text = text + self.start_time = time.time() + self.last_update = 0.0 + self.visible = False + self.is_tty = sys.stdout.isatty() + self.console = Console() + + # Pre-render the animation frames using pure ASCII so they will + # always display, even on very limited terminals. + ascii_frames = [ + "#= ", # C1 C2 space(8) + "=# ", # C2 C1 space(8) + " =# ", # space(1) C2 C1 space(7) + " =# ", # space(2) C2 C1 space(6) + " =# ", # space(3) C2 C1 space(5) + " =# ", # space(4) C2 C1 space(4) + " =# ", # space(5) C2 C1 space(3) + " =# ", # space(6) C2 C1 space(2) + " =# ", # space(7) C2 C1 space(1) + " =#", # space(8) C2 C1 + " #=", # space(8) C1 C2 + " #= ", # space(7) C1 C2 space(1) + " #= ", # space(6) C1 C2 space(2) + " #= ", # space(5) C1 C2 space(3) + " #= ", # space(4) C1 C2 space(4) + " #= ", # space(3) C1 C2 space(5) + " #= ", # space(2) C1 C2 space(6) + " #= ", # space(1) C1 C2 space(7) + ] + + self.unicode_palette = "β–‘β–ˆ" + xlate_from, xlate_to = ("=#", self.unicode_palette) + + # If unicode is supported, swap the ASCII chars for nicer glyphs. + if self._supports_unicode(): + translation_table = str.maketrans(xlate_from, xlate_to) + frames = [f.translate(translation_table) for f in ascii_frames] + self.scan_char = xlate_to[xlate_from.find("#")] + else: + frames = ascii_frames + self.scan_char = "#" + + # Bounce the scanner back and forth. + self.frames = frames + self.frame_idx = Spinner.last_frame_idx # Initialize from class variable + self.width = len(frames[0]) - 2 # number of chars between the brackets + self.animation_len = len(frames[0]) + self.last_display_len = 0 # Length of the last spinner line (frame + text) + + def _supports_unicode(self) -> bool: + if not self.is_tty: + return False + try: + out = self.unicode_palette + out += "\b" * len(self.unicode_palette) + out += " " * len(self.unicode_palette) + out += "\b" * len(self.unicode_palette) + sys.stdout.write(out) + sys.stdout.flush() + return True + except UnicodeEncodeError: + return False + except Exception: + return False + + def _next_frame(self) -> str: + frame = self.frames[self.frame_idx] + self.frame_idx = (self.frame_idx + 1) % len(self.frames) + Spinner.last_frame_idx = self.frame_idx # Update class variable + return frame + + def step(self, text: str = None) -> None: + if text is not None: + self.text = text + + if not self.is_tty: + return + + now = time.time() + if not self.visible and now - self.start_time >= 0.5: + self.visible = True + self.last_update = 0.0 + if self.is_tty: + self.console.show_cursor(False) + + if not self.visible or now - self.last_update < 0.1: + return + + self.last_update = now + frame_str = self._next_frame() + + # Determine the maximum width for the spinner line + # Subtract 2 as requested, to leave a margin or prevent cursor wrapping issues + max_spinner_width = self.console.width - 2 + if max_spinner_width < 0: # Handle extremely narrow terminals + max_spinner_width = 0 + + current_text_payload = f" {self.text}" + line_to_display = f"{frame_str}{current_text_payload}" + + # Truncate the line if it's too long for the console width + if len(line_to_display) > max_spinner_width: + line_to_display = line_to_display[:max_spinner_width] + + len_line_to_display = len(line_to_display) + + # Calculate padding to clear any remnants from a longer previous line + padding_to_clear = " " * max(0, self.last_display_len - len_line_to_display) + + # Write the spinner frame, text, and any necessary clearing spaces + sys.stdout.write(f"\r{line_to_display}{padding_to_clear}") + self.last_display_len = len_line_to_display + + # Calculate number of backspaces to position cursor at the scanner character + scan_char_abs_pos = frame_str.find(self.scan_char) + + # Total characters written to the line (frame + text + padding) + total_chars_written_on_line = len_line_to_display + len(padding_to_clear) + + # num_backspaces will be non-positive if scan_char_abs_pos is beyond + # total_chars_written_on_line (e.g., if the scan char itself was truncated). + # (e.g., if the scan char itself was truncated). + # In such cases, (effectively) 0 backspaces are written, + # and the cursor stays at the end of the line. + num_backspaces = total_chars_written_on_line - scan_char_abs_pos + sys.stdout.write("\b" * num_backspaces) + sys.stdout.flush() + + def end(self) -> None: + if self.visible and self.is_tty: + clear_len = self.last_display_len # Use the length of the last displayed content + sys.stdout.write("\r" + " " * clear_len + "\r") + sys.stdout.flush() + self.console.show_cursor(True) + self.visible = False class WaitingSpinner: @@ -30,8 +179,8 @@ class WaitingSpinner: def _spin(self): while not self._stop_event.is_set(): - time.sleep(self.delay) self.spinner.step() + time.sleep(self.delay) self.spinner.end() def start(self): @@ -43,7 +192,7 @@ class WaitingSpinner: """Request the spinner to stop and wait briefly for the thread to exit.""" self._stop_event.set() if self._thread.is_alive(): - self._thread.join(timeout=0.1) + self._thread.join(timeout=self.delay) self.spinner.end() # Allow use as a context-manager @@ -53,3 +202,20 @@ class WaitingSpinner: def __exit__(self, exc_type, exc_val, exc_tb): self.stop() + + +def main(): + spinner = Spinner("Running spinner...") + try: + for _ in range(100): + time.sleep(0.15) + spinner.step() + print("Success!") + except KeyboardInterrupt: + print("\nInterrupted by user.") + finally: + spinner.end() + + +if __name__ == "__main__": + main() diff --git a/aider/website/HISTORY.md b/aider/website/HISTORY.md index 90e914e3a..d32a1215a 100644 --- a/aider/website/HISTORY.md +++ b/aider/website/HISTORY.md @@ -24,7 +24,97 @@ cog.out(text) ]]]--> -### main branch +### Aider v0.86.0 + +- Expanded GPT-5 model support across family variants and providers (OpenAI, Azure, OpenRouter), including dated and chat/mini/nano variants. +- Aider wrote 88% of the code in this release. + +### Aider v0.85.5 + +- Enforced diff edit format for GPT-5 models. +- Added support for the reasoning_effort setting for GPT-5 models. +- Fixed model detection to correctly apply GPT-5 settings to versioned names (gpt-5 and gpt-5-2025-08-07). + +### Aider v0.85.4 + +- Added support for openai/gpt-5 +- Fixed analytics to support the latest PostHog SDK event-capture API. +- Disabled temperature when using GPT-5 models for more deterministic outputs. + +### Aider v0.85.3 + +- Bumped dependencies to pick up latest litellm==1.75.0. + +### Aider v0.85.2 + +- Added support for Grok-4 via `xai/grok-4` and `openrouter/x-ai/grok-4` model names. +- Added support for `gemini/gemini-2.5-flash-lite-preview-06-17` model, by Tamir Zahavi-Brunner. +- `/clear` now prints β€œAll chat history cleared.” so you know it worked, by Zexin Yuan. +- `/undo` output now shows only the first line of each commit message, making it easier to read. +- Fixed an issue where new settings for an existing model didn't replace the old ones, by Andrew Grigorev. +- Added support for `openrouter/moonshotai/kimi-k2` model, by Jack Harrington. + +### Aider v0.85.1 + +- Display model announcements with no-arg `/model` command. + +### Aider v0.85.0 + +- Support for Responses API models like o1-pro, o3-pro. +- Updated pricing for o3. +- Added support for new Gemini models including `gemini-2.5-pro`, `gemini-2.5-flash`, and `gemini-2.5-pro-preview-06-05` with thinking tokens support. +- Updated model aliases: `flash` now points to `gemini-2.5-flash` and `gemini` now points to `gemini-2.5-pro`. +- Added `--add-gitignore-files` flag to enable adding files listed in .gitignore to Aider's editing scope, by omarcinkonis. +- Added `--commit-language` option to specify the language for commit messages, by Kyosuke Takayama. +- Enhanced thinking tokens support: can now be disabled by setting to 0, and improved help text with examples. +- Added MATLAB language support for repository maps, by Matthew Tofano. +- Added support for OpenAI o3-pro model across multiple providers. +- Improved GitHub Copilot token handling with better validation and error messages, by Vincent Taverna and Sebastian Estrella. +- Fixed encoding issues in git diff output and LLM history logging. +- Enhanced commit message generation to use system prompt prefixes, by Luke Reeves. +- Improved inline code rendering in Rich markdown output, by Vamsi Talupula. +- Fixed Vertex AI model name prefixes in settings, by Wietse Venema. +- Improved `/read-only` command to resolve literal paths correctly, by Matteo Landi. +- Skip expensive file tracking operations when `--skip-sanity-check-repo` is enabled for better performance, by Makar Ivashko. +- Ensure pip is available before package installation. +- Auto-create parent directories for chat history files to prevent startup errors, by contributor. +- Fixed search block regex to accept optional closing tags when working with HTML content, by Mathis Beer. +- Co-authored-by attribution is now enabled by default for commit messages. +- Added Clojure language support for repository maps, by Garrett Hopper. +- Added custom PostHog analytics configuration options with `--analytics-posthog-host` and `--analytics-posthog-project-api-key` flags, by Vasil Markoukin. +- Optimized chat history summarization performance, by jayeshthk. +- Improved kebab-case identifier recognition in repository maps for better code analysis. +- Increased max tokens for Deepseek models to 65536 for better performance. +- Aider wrote 21% of the code in this release. + +### Aider v0.84.0 + +- Added support for new Claude models including the Sonnet 4 and Opus 4 series (e.g., `claude-sonnet-4-20250514`, +`claude-opus-4-20250514`) across various providers. The default `sonnet` and `opus` aliases were updated to these newer +versions. +- Added support for the `vertex_ai/gemini-2.5-flash-preview-05-20` model. +- Fixed OpenRouter token cost calculation for improved accuracy. +- Updated default OpenRouter models during onboarding to `deepseek/deepseek-r1:free` for the free tier and +`anthropic/claude-sonnet-4` for paid tiers. +- Automatically refresh GitHub Copilot tokens when used as OpenAI API keys, by Lih Chen. +- Aider wrote 79% of the code in this release. + +### Aider v0.83.2 + +- Bumped configargparse to 1.7.1 as 1.7 was pulled. +- Added shell tab completion for file path arguments (by saviour) and for `--edit-format`/`--editor-edit-format` options. +- Improved OpenRouter model metadata handling by introducing a local cache, increasing reliability and performance. +- The `/settings` command now displays detailed metadata for active main, editor, and weak models. +- Fixed an issue where files explicitly added via the command line were not correctly ignored if listed in `.gitignore`. +- Improved automatic commit messages by providing more context during their generation, by wangboxue. + +### Aider v0.83.1 + +- Improved user language detection by correctly normalizing hyphenated language codes (e.g., `en-US` to `en`) and enhancing the validation of locale results. +- Prevented Aider from instructing the LLM to reply in 'C' or 'POSIX' when these are detected as the system locale. +- Displayed a spinner with the model name when generating commit messages. + +### Aider v0.83.0 - Added support for `gemini-2.5-pro-preview-05-06` models. - Added support for `qwen3-235b` models. @@ -428,7 +518,7 @@ cog.out(text) - [Aider works with LLM web chat UIs](https://aider.chat/docs/usage/copypaste.html). - New `--copy-paste` mode. - New `/copy-context` command. -- [Set API keys and other environment variables for all providers from command line or yaml conf file](https://aider.chat/docs/config/aider_conf.html#storing-llm-keys). +- [Set API keys and other environment variables for all providers from command line or YAML conf file](https://aider.chat/docs/config/aider_conf.html#storing-llm-keys). - New `--api-key provider=key` setting. - New `--set-env VAR=value` setting. - Added bash and zsh support to `--watch-files`. @@ -596,7 +686,7 @@ cog.out(text) ### Aider v0.59.1 -- Check for obsolete `yes: true` in yaml config, show helpful error. +- Check for obsolete `yes: true` in YAML config, show helpful error. - Model settings for openrouter/anthropic/claude-3.5-sonnet:beta ### Aider v0.59.0 @@ -606,7 +696,7 @@ cog.out(text) - Still auto-completes the full paths of the repo files like `/add`. - Now supports globs like `src/**/*.py` - Renamed `--yes` to `--yes-always`. - - Now uses `AIDER_YES_ALWAYS` env var and `yes-always:` yaml key. + - Now uses `AIDER_YES_ALWAYS` env var and `yes-always:` YAML key. - Existing YAML and .env files will need to be updated. - Can still abbreviate to `--yes` on the command line. - Config file now uses standard YAML list syntax with ` - list entries`, one per line. @@ -813,7 +903,7 @@ cog.out(text) - Use `--map-refresh ` to configure. - Improved cost estimate logic for caching. - Improved editing performance on Jupyter Notebook `.ipynb` files. -- Show which config yaml file is loaded with `--verbose`. +- Show which config YAML file is loaded with `--verbose`. - Bumped dependency versions. - Bugfix: properly load `.aider.models.metadata.json` data. - Bugfix: Using `--msg /ask ...` caused an exception. diff --git a/aider/website/_data/blame.yml b/aider/website/_data/blame.yml index a5d280d60..2d302504e 100644 --- a/aider/website/_data/blame.yml +++ b/aider/website/_data/blame.yml @@ -1,5 +1,5 @@ -- aider_percentage: 29.08 - aider_total: 41 +- aider_percentage: 31.33 + aider_total: 47 end_date: '2023-06-15' end_tag: v0.6.0 file_counts: @@ -17,44 +17,44 @@ Paul Gauthier: 6 Paul Gauthier (aider): 1 aider/utils.py: - Paul Gauthier: 22 - Paul Gauthier (aider): 17 + Paul Gauthier: 25 + Paul Gauthier (aider): 21 setup.py: Paul Gauthier: 7 Paul Gauthier (aider): 7 tests/test_utils.py: - Paul Gauthier (aider): 7 + Paul Gauthier (aider): 9 grand_total: - Paul Gauthier: 100 - Paul Gauthier (aider): 41 + Paul Gauthier: 103 + Paul Gauthier (aider): 47 start_tag: v0.5.0 - total_lines: 141 -- aider_percentage: 15.99 - aider_total: 224 + total_lines: 150 +- aider_percentage: 14.36 + aider_total: 209 end_date: '2023-06-25' end_tag: v0.7.0 file_counts: .github/workflows/release.yml: Paul Gauthier: 2 - Paul Gauthier (aider): 25 + Paul Gauthier (aider): 29 aider/__init__.py: Paul Gauthier: 1 aider/coders/__init__.py: Paul Gauthier: 6 aider/coders/base_coder.py: - Paul Gauthier: 305 + Paul Gauthier: 314 aider/coders/editblock_coder.py: - Paul Gauthier: 32 + Paul Gauthier: 35 aider/coders/wholefile_coder.py: - Paul Gauthier: 86 + Paul Gauthier: 115 Paul Gauthier (aider): 3 aider/coders/wholefile_func_coder.py: - Paul Gauthier: 116 + Paul Gauthier: 120 Paul Gauthier (aider): 11 aider/commands.py: Paul Gauthier: 28 aider/diffs.py: - Paul Gauthier: 17 + Paul Gauthier: 18 aider/io.py: Paul Gauthier: 16 aider/main.py: @@ -77,22 +77,22 @@ tests/test_commands.py: Paul Gauthier: 3 tests/test_editblock.py: - Paul Gauthier: 24 + Paul Gauthier: 28 tests/test_main.py: Paul Gauthier: 8 tests/test_models.py: Paul Gauthier: 21 Paul Gauthier (aider): 7 tests/test_wholefile.py: - Paul Gauthier: 67 - Paul Gauthier (aider): 84 + Paul Gauthier: 86 + Paul Gauthier (aider): 65 grand_total: - Paul Gauthier: 1177 - Paul Gauthier (aider): 224 + Paul Gauthier: 1246 + Paul Gauthier (aider): 209 start_tag: v0.6.0 - total_lines: 1401 -- aider_percentage: 8.21 - aider_total: 142 + total_lines: 1455 +- aider_percentage: 7.94 + aider_total: 139 end_date: '2023-07-06' end_tag: v0.8.0 file_counts: @@ -100,21 +100,21 @@ Paul Gauthier: 5 .github/workflows/windows-tests.yml: Paul Gauthier: 13 - Paul Gauthier (aider): 25 + Paul Gauthier (aider): 15 aider/__init__.py: Paul Gauthier: 1 aider/coders/__init__.py: Paul Gauthier: 10 aider/coders/base_coder.py: - Paul Gauthier: 159 + Paul Gauthier: 161 Paul Gauthier (aider): 5 aider/coders/editblock_coder.py: Paul Gauthier: 14 aider/coders/editblock_func_coder.py: - Paul Gauthier: 123 + Paul Gauthier: 131 Paul Gauthier (aider): 8 aider/coders/single_wholefile_func_coder.py: - Paul Gauthier: 45 + Paul Gauthier: 49 aider/coders/wholefile_coder.py: Paul Gauthier: 24 aider/coders/wholefile_func_coder.py: @@ -137,7 +137,7 @@ benchmark/Dockerfile: Paul Gauthier: 7 benchmark/benchmark.py: - Paul Gauthier: 446 + Paul Gauthier: 447 Paul Gauthier (aider): 29 benchmark/docker.sh: Paul Gauthier: 11 @@ -149,16 +149,16 @@ benchmark/rungrid.py: Paul Gauthier: 60 benchmark/test_benchmark.py: - Paul Gauthier: 34 - Paul Gauthier (aider): 13 + Paul Gauthier: 35 + Paul Gauthier (aider): 12 tests/test_coder.py: - Paul Gauthier: 87 - Paul Gauthier (aider): 24 + Paul Gauthier: 101 + Paul Gauthier (aider): 32 tests/test_commands.py: - Paul Gauthier: 14 + Paul Gauthier: 21 Paul Gauthier (aider): 17 tests/test_editblock.py: - Paul Gauthier: 94 + Paul Gauthier: 86 tests/test_io.py: Paul Gauthier: 3 Paul Gauthier (aider): 6 @@ -167,22 +167,22 @@ tests/test_repomap.py: Paul Gauthier: 26 tests/test_wholefile.py: - Paul Gauthier: 193 + Paul Gauthier: 189 grand_total: - Paul Gauthier: 1582 - Paul Gauthier (aider): 142 + Paul Gauthier: 1607 + Paul Gauthier (aider): 139 kwmiebach: 5 start_tag: v0.7.0 - total_lines: 1729 -- aider_percentage: 17.67 - aider_total: 144 + total_lines: 1751 +- aider_percentage: 18.95 + aider_total: 170 end_date: '2023-07-16' end_tag: v0.9.0 file_counts: aider/__init__.py: Paul Gauthier: 1 aider/coders/base_coder.py: - Paul Gauthier: 74 + Paul Gauthier: 75 aider/coders/editblock_coder.py: Paul Gauthier: 8 aider/coders/single_wholefile_func_coder.py: @@ -192,72 +192,72 @@ aider/coders/wholefile_func_coder.py: Paul Gauthier: 1 aider/commands.py: - Paul Gauthier: 86 + Paul Gauthier: 87 Paul Gauthier (aider): 4 aider/io.py: - Paul Gauthier: 7 + Paul Gauthier: 8 aider/main.py: - Paul Gauthier: 126 - Paul Gauthier (aider): 59 + Paul Gauthier: 162 + Paul Gauthier (aider): 57 aider/repomap.py: - Paul Gauthier: 36 + Paul Gauthier: 37 aider/utils.py: Paul Gauthier: 8 benchmark/benchmark.py: Paul Gauthier: 3 scripts/versionbump.py: Paul Gauthier: 15 - Paul Gauthier (aider): 10 + Paul Gauthier (aider): 13 setup.py: Paul Gauthier (aider): 1 tests/test_coder.py: Paul Gauthier: 110 - Paul Gauthier (aider): 23 + Paul Gauthier (aider): 30 tests/test_commands.py: Paul Gauthier: 36 - Paul Gauthier (aider): 43 + Paul Gauthier (aider): 61 tests/test_editblock.py: Paul Gauthier: 1 tests/test_io.py: Paul Gauthier: 1 tests/test_main.py: - Paul Gauthier: 12 + Paul Gauthier: 20 tests/test_repomap.py: Paul Gauthier: 13 Paul Gauthier (aider): 1 tests/test_wholefile.py: - Paul Gauthier: 42 + Paul Gauthier: 50 tests/utils.py: Paul Gauthier: 43 Paul Gauthier (aider): 3 grand_total: - Paul Gauthier: 671 - Paul Gauthier (aider): 144 + Paul Gauthier: 727 + Paul Gauthier (aider): 170 start_tag: v0.8.0 - total_lines: 815 -- aider_percentage: 11.34 - aider_total: 33 + total_lines: 897 +- aider_percentage: 12.26 + aider_total: 39 end_date: '2023-07-22' end_tag: v0.10.0 file_counts: aider/__init__.py: Paul Gauthier: 1 aider/coders/base_coder.py: - Paul Gauthier: 23 + Paul Gauthier: 24 aider/coders/editblock_coder.py: Paul Gauthier: 11 aider/coders/single_wholefile_func_coder.py: - Paul Gauthier: 1 + Paul Gauthier: 2 aider/coders/wholefile_coder.py: - Paul Gauthier: 1 + Paul Gauthier: 2 aider/coders/wholefile_func_coder.py: - Paul Gauthier: 1 + Paul Gauthier: 2 aider/commands.py: - Amer Amayreh: 8 - Paul Gauthier (aider): 4 + Amer Amayreh: 4 + Paul Gauthier (aider): 12 aider/io.py: - Paul Gauthier: 3 - Paul Gauthier (aider): 6 + Paul Gauthier: 4 + Paul Gauthier (aider): 5 aider/main.py: Paul Gauthier: 62 aider/versioncheck.py: @@ -268,32 +268,32 @@ scripts/versionbump.py: Paul Gauthier (aider): 2 tests/test_coder.py: - Paul Gauthier: 35 + Paul Gauthier: 43 tests/test_commands.py: - Paul Gauthier: 22 - Paul Gauthier (aider): 13 + Paul Gauthier: 31 + Paul Gauthier (aider): 12 tests/test_editblock.py: - Paul Gauthier: 17 + Paul Gauthier: 20 tests/test_main.py: Paul Gauthier: 44 Paul Gauthier (aider): 3 tests/utils.py: Paul Gauthier: 6 grand_total: - Amer Amayreh: 8 - Paul Gauthier: 250 - Paul Gauthier (aider): 33 + Amer Amayreh: 4 + Paul Gauthier: 275 + Paul Gauthier (aider): 39 start_tag: v0.9.0 - total_lines: 291 -- aider_percentage: 6.62 - aider_total: 49 + total_lines: 318 +- aider_percentage: 6.63 + aider_total: 55 end_date: '2023-08-02' end_tag: v0.11.0 file_counts: aider/__init__.py: Paul Gauthier: 1 aider/coders/base_coder.py: - Paul Gauthier: 104 + Paul Gauthier: 119 aider/coders/wholefile_coder.py: Paul Gauthier: 2 aider/commands.py: @@ -306,34 +306,34 @@ Paul Gauthier: 86 Paul Gauthier (aider): 3 aider/repo.py: - Paul Gauthier: 113 - Paul Gauthier (aider): 7 + Paul Gauthier: 133 + Paul Gauthier (aider): 13 aider/sendchat.py: Paul Gauthier: 64 scripts/versionbump.py: Paul Gauthier: 4 tests/test_coder.py: - Paul Gauthier: 26 + Paul Gauthier: 35 tests/test_commands.py: Paul Gauthier: 53 Paul Gauthier (aider): 6 tests/test_main.py: - Paul Gauthier: 24 + Paul Gauthier: 30 Paul Gauthier (aider): 1 tests/test_repo.py: - Paul Gauthier: 56 + Paul Gauthier: 75 Paul Gauthier (aider): 5 tests/test_sendchat.py: - Paul Gauthier: 11 + Paul Gauthier: 25 tests/utils.py: Paul Gauthier: 6 grand_total: - Paul Gauthier: 691 - Paul Gauthier (aider): 49 + Paul Gauthier: 774 + Paul Gauthier (aider): 55 start_tag: v0.10.0 - total_lines: 740 -- aider_percentage: 4.71 - aider_total: 24 + total_lines: 829 +- aider_percentage: 5.21 + aider_total: 28 end_date: '2023-08-11' end_tag: v0.12.0 file_counts: @@ -343,13 +343,13 @@ Arseniy Pavlenko: 3 Paul Gauthier: 4 aider/coders/editblock_coder.py: - Paul Gauthier: 123 + Paul Gauthier: 124 aider/commands.py: Joshua Vial: 2 Paul Gauthier: 17 Paul Gauthier (aider): 3 aider/history.py: - Paul Gauthier: 6 + Paul Gauthier: 10 aider/io.py: Paul Gauthier: 10 aider/main.py: @@ -364,27 +364,27 @@ Paul Gauthier: 77 Paul Gauthier (aider): 8 benchmark/benchmark.py: - Paul Gauthier: 57 + Paul Gauthier: 60 scripts/versionbump.py: Paul Gauthier: 1 tests/test_coder.py: Paul Gauthier: 1 - Paul Gauthier (aider): 13 + Paul Gauthier (aider): 17 tests/test_commands.py: - Paul Gauthier: 19 + Paul Gauthier: 22 tests/test_editblock.py: - Paul Gauthier: 43 + Paul Gauthier: 52 tests/test_repo.py: - Paul Gauthier: 55 + Paul Gauthier: 58 grand_total: Arseniy Pavlenko: 3 Joshua Vial: 2 - Paul Gauthier: 481 - Paul Gauthier (aider): 24 + Paul Gauthier: 504 + Paul Gauthier (aider): 28 start_tag: v0.11.0 - total_lines: 510 -- aider_percentage: 4.32 - aider_total: 23 + total_lines: 537 +- aider_percentage: 4.18 + aider_total: 24 end_date: '2023-08-22' end_tag: v0.13.0 file_counts: @@ -395,7 +395,7 @@ aider/__init__.py: Paul Gauthier: 1 aider/coders/base_coder.py: - Paul Gauthier: 89 + Paul Gauthier: 93 Paul Gauthier (aider): 2 aider/coders/editblock_coder.py: Paul Gauthier: 6 @@ -410,31 +410,31 @@ aider/commands.py: Paul Gauthier: 34 aider/io.py: - Paul Gauthier: 7 + Paul Gauthier: 8 aider/main.py: Paul Gauthier: 2 - Paul Gauthier (aider): 19 + Paul Gauthier (aider): 20 aider/repo.py: - Paul Gauthier: 56 + Paul Gauthier: 59 aider/voice.py: - Paul Gauthier: 24 + Paul Gauthier: 26 setup.py: Paul Gauthier (aider): 1 tests/test_coder.py: - Paul Gauthier: 255 + Paul Gauthier: 277 Paul Gauthier (aider): 1 tests/test_main.py: Paul Gauthier: 1 tests/test_repo.py: - Paul Gauthier: 9 + Paul Gauthier: 17 tests/test_wholefile.py: Paul Gauthier: 1 grand_total: - Paul Gauthier: 510 - Paul Gauthier (aider): 23 + Paul Gauthier: 550 + Paul Gauthier (aider): 24 start_tag: v0.12.0 - total_lines: 533 -- aider_percentage: 0.55 + total_lines: 574 +- aider_percentage: 0.53 aider_total: 1 end_date: '2023-09-08' end_tag: v0.14.0 @@ -442,7 +442,7 @@ aider/__init__.py: Paul Gauthier: 1 aider/coders/base_coder.py: - Joshua Vial: 19 + Joshua Vial: 20 Paul Gauthier: 4 aider/commands.py: JV: 1 @@ -453,10 +453,10 @@ JV: 1 Joshua Vial: 1 aider/models/__init__.py: - JV: 2 - Paul Gauthier: 13 + JV: 1 + Paul Gauthier: 14 aider/models/model.py: - JV: 21 + JV: 27 Joshua Vial: 4 Paul Gauthier: 8 aider/models/openai.py: @@ -484,14 +484,14 @@ Joshua Vial: 22 Paul Gauthier: 13 grand_total: - JV: 62 - Joshua Vial: 59 - Paul Gauthier: 60 + JV: 67 + Joshua Vial: 60 + Paul Gauthier: 61 Paul Gauthier (aider): 1 start_tag: v0.13.0 - total_lines: 182 -- aider_percentage: 11.28 - aider_total: 38 + total_lines: 189 +- aider_percentage: 10.57 + aider_total: 41 end_date: '2023-10-20' end_tag: v0.15.0 file_counts: @@ -508,15 +508,15 @@ Paul Gauthier: 49 aider/main.py: Paul Gauthier: 29 - Paul Gauthier (aider): 21 - Thinh Nguyen: 6 + Paul Gauthier (aider): 24 + Thinh Nguyen: 7 aider/repo.py: Paul Gauthier: 26 Paul Gauthier (aider): 2 aider/repomap.py: Paul Gauthier: 11 aider/voice.py: - Paul Gauthier: 8 + Paul Gauthier: 9 benchmark/Dockerfile: Joshua Vial: 1 benchmark/benchmark.py: @@ -526,20 +526,20 @@ scripts/versionbump.py: Paul Gauthier: 2 tests/test_commands.py: - Paul Gauthier: 95 + Paul Gauthier: 123 tests/test_main.py: Paul Gauthier: 17 tests/test_repo.py: - Paul Gauthier: 20 + Paul Gauthier: 38 grand_total: Alexander Kjeldaas (aider): 1 Joshua Vial: 2 - Paul Gauthier: 289 - Paul Gauthier (aider): 37 - Thinh Nguyen: 8 + Paul Gauthier: 336 + Paul Gauthier (aider): 40 + Thinh Nguyen: 9 start_tag: v0.14.0 - total_lines: 337 -- aider_percentage: 1.76 + total_lines: 388 +- aider_percentage: 1.71 aider_total: 16 end_date: '2023-10-29' end_tag: v0.16.0 @@ -587,7 +587,7 @@ aider/queries/tree-sitter-typescript-tags.scm: Paul Gauthier: 23 aider/repomap.py: - Paul Gauthier: 187 + Paul Gauthier: 193 Paul Gauthier (aider): 2 benchmark/Dockerfile: Paul Gauthier: 4 @@ -597,26 +597,28 @@ Paul Gauthier: 2 Paul Gauthier (aider): 2 tests/test_coder.py: - Paul Gauthier: 19 + Paul Gauthier: 21 tests/test_commands.py: - Paul Gauthier: 5 + Paul Gauthier: 10 + paul-gauthier: 1 tests/test_editblock.py: - Paul Gauthier: 44 + Paul Gauthier: 55 tests/test_repomap.py: Paul Gauthier: 5 grand_total: - Paul Gauthier: 894 + Paul Gauthier: 918 Paul Gauthier (aider): 16 + paul-gauthier: 1 start_tag: v0.15.0 - total_lines: 910 -- aider_percentage: 5.35 - aider_total: 13 + total_lines: 935 +- aider_percentage: 7.91 + aider_total: 22 end_date: '2023-11-06' end_tag: v0.17.0 file_counts: .github/workflows/docker-build-test.yml: - Paul Gauthier: 7 - Paul Gauthier (aider): 7 + Paul Gauthier: 11 + Paul Gauthier (aider): 16 .github/workflows/release.yml: Paul Gauthier: 4 aider/__init__.py: @@ -632,9 +634,9 @@ aider/io.py: Paul Gauthier: 1 aider/main.py: - Paul Gauthier: 1 + Paul Gauthier: 3 aider/models/openai.py: - Paul Gauthier: 8 + Paul Gauthier: 9 aider/queries/tree-sitter-elisp-tags.scm: Paul Gauthier: 3 aider/repomap.py: @@ -649,29 +651,29 @@ Jack Hallam: 3 Paul Gauthier: 10 tests/test_commands.py: - Paul Gauthier: 51 + Paul Gauthier: 65 tests/test_editblock.py: - Paul Gauthier: 21 + Paul Gauthier: 23 tests/test_io.py: Paul Gauthier: 24 tests/utils.py: - Paul Gauthier: 3 + Paul Gauthier: 6 grand_total: Jack Hallam: 3 Omri Bloch: 1 - Paul Gauthier: 226 - Paul Gauthier (aider): 13 + Paul Gauthier: 252 + Paul Gauthier (aider): 22 start_tag: v0.16.0 - total_lines: 243 -- aider_percentage: 39.3 - aider_total: 90 + total_lines: 278 +- aider_percentage: 38.49 + aider_total: 107 end_date: '2023-11-17' end_tag: v0.18.0 file_counts: aider/__init__.py: Paul Gauthier: 1 aider/coders/base_coder.py: - Paul Gauthier: 27 + Paul Gauthier: 33 aider/commands.py: Paul Gauthier: 12 Paul Gauthier (aider): 3 @@ -683,27 +685,27 @@ Paul Gauthier: 10 benchmark/benchmark.py: Paul Gauthier: 22 - Paul Gauthier (aider): 33 + Paul Gauthier (aider): 50 benchmark/rungrid.py: Paul Gauthier: 16 scripts/versionbump.py: Paul Gauthier (aider): 41 tests/test_coder.py: - Paul Gauthier: 14 + Paul Gauthier: 25 tests/test_commands.py: - Paul Gauthier: 10 + Paul Gauthier: 19 tests/test_main.py: - Paul Gauthier: 3 + Paul Gauthier: 4 Paul Gauthier (aider): 13 tests/test_repomap.py: - Paul Gauthier: 8 + Paul Gauthier: 13 grand_total: - Paul Gauthier: 139 - Paul Gauthier (aider): 90 + Paul Gauthier: 171 + Paul Gauthier (aider): 107 start_tag: v0.17.0 - total_lines: 229 -- aider_percentage: 0.72 - aider_total: 13 + total_lines: 278 +- aider_percentage: 0.75 + aider_total: 14 end_date: '2023-12-19' end_tag: v0.19.0 file_counts: @@ -712,13 +714,13 @@ aider/coders/__init__.py: Paul Gauthier: 2 aider/coders/base_coder.py: - Paul Gauthier: 54 + Paul Gauthier: 66 aider/coders/editblock_coder.py: Paul Gauthier: 2 aider/coders/search_replace.py: - Paul Gauthier: 767 + Paul Gauthier: 769 aider/coders/udiff_coder.py: - Paul Gauthier: 389 + Paul Gauthier: 395 aider/coders/wholefile_coder.py: Paul Gauthier: 2 aider/commands.py: @@ -726,9 +728,9 @@ aider/history.py: Paul Gauthier: 3 aider/main.py: - Paul Gauthier: 41 + Paul Gauthier: 44 Your Name: 3 - Your Name (aider): 13 + Your Name (aider): 14 aider/models/__init__.py: Paul Gauthier: 3 aider/models/model.py: @@ -742,11 +744,11 @@ aider/sendchat.py: Paul Gauthier: 15 aider/utils.py: - Paul Gauthier: 15 + Paul Gauthier: 28 aider/voice.py: Paul Gauthier: 7 benchmark/benchmark.py: - Paul Gauthier: 175 + Paul Gauthier: 200 benchmark/refactor_tools.py: Paul Gauthier: 209 tests/test_coder.py: @@ -757,9 +759,9 @@ Paul Gauthier: 1 tests/test_main.py: Paul Gauthier: 10 - Your Name: 16 + Your Name: 18 tests/test_models.py: - Paul Gauthier: 8 + Paul Gauthier: 10 tests/test_repo.py: Paul Gauthier: 1 tests/test_repomap.py: @@ -769,13 +771,13 @@ tests/test_wholefile.py: Paul Gauthier: 10 grand_total: - Paul Gauthier: 1780 - Your Name: 19 - Your Name (aider): 13 + Paul Gauthier: 1843 + Your Name: 21 + Your Name (aider): 14 start_tag: v0.18.0 - total_lines: 1812 -- aider_percentage: 11.38 - aider_total: 38 + total_lines: 1878 +- aider_percentage: 11.49 + aider_total: 40 end_date: '2024-01-04' end_tag: v0.20.0 file_counts: @@ -784,8 +786,8 @@ aider/__init__.py: Paul Gauthier: 1 aider/coders/base_coder.py: - Joshua Vial: 26 - Paul Gauthier: 23 + Joshua Vial: 28 + Paul Gauthier: 25 aider/coders/search_replace.py: Paul Gauthier: 2 aider/coders/udiff_coder.py: @@ -795,9 +797,9 @@ Christopher Toth: 2 Joshua Vial: 16 Paul Gauthier: 2 - Paul Gauthier (aider): 6 + Paul Gauthier (aider): 7 aider/io.py: - Joshua Vial: 14 + Joshua Vial: 15 aider/models/model.py: Joshua Vial: 43 aider/models/openrouter.py: @@ -813,22 +815,22 @@ benchmark/benchmark.py: Joshua Vial: 16 tests/test_commands.py: - Paul Gauthier: 17 - Paul Gauthier (aider): 20 + Paul Gauthier: 21 + Paul Gauthier (aider): 24 tests/test_models.py: Joshua Vial: 13 tests/test_udiff.py: - Paul Gauthier: 63 - Paul Gauthier (aider): 10 + Paul Gauthier: 66 + Paul Gauthier (aider): 7 grand_total: Christopher Toth: 7 - Joshua Vial: 170 - Paul Gauthier: 119 - Paul Gauthier (aider): 38 + Joshua Vial: 173 + Paul Gauthier: 128 + Paul Gauthier (aider): 40 start_tag: v0.19.0 - total_lines: 334 -- aider_percentage: 19.32 - aider_total: 17 + total_lines: 348 +- aider_percentage: 19.78 + aider_total: 18 end_date: '2024-01-08' end_tag: v0.21.0 file_counts: @@ -841,18 +843,18 @@ aider/coders/udiff_coder.py: Paul Gauthier: 22 aider/main.py: - Paul Gauthier (aider): 9 + Paul Gauthier (aider): 10 aider/versioncheck.py: Paul Gauthier (aider): 8 setup.py: Paul Gauthier: 2 tests/test_udiff.py: - Paul Gauthier: 44 + Paul Gauthier: 46 grand_total: - Paul Gauthier: 71 - Paul Gauthier (aider): 17 + Paul Gauthier: 73 + Paul Gauthier (aider): 18 start_tag: v0.20.0 - total_lines: 88 + total_lines: 91 - aider_percentage: 0.0 aider_total: 0 end_date: '2024-01-22' @@ -865,14 +867,14 @@ aider/coders/udiff_coder.py: Paul Gauthier: 5 aider/commands.py: - Paul Gauthier: 44 + Paul Gauthier: 48 aider/main.py: Paul Gauthier: 2 grand_total: - Paul Gauthier: 54 + Paul Gauthier: 58 start_tag: v0.21.0 - total_lines: 54 -- aider_percentage: 1.16 + total_lines: 58 +- aider_percentage: 1.11 aider_total: 2 end_date: '2024-02-03' end_tag: v0.23.0 @@ -882,25 +884,25 @@ aider/coders/base_coder.py: Paul Gauthier: 10 aider/commands.py: - Paul Gauthier: 2 + Paul Gauthier: 5 aider/main.py: - Paul Gauthier: 13 - Zachary Vorhies: 6 + Paul Gauthier: 15 + Zachary Vorhies: 7 aider/mdstream.py: Paul Gauthier: 120 Paul Gauthier (aider): 2 aider/models/openai.py: Paul Gauthier: 3 benchmark/benchmark.py: - Paul Gauthier: 16 + Paul Gauthier: 17 grand_total: - Paul Gauthier: 165 + Paul Gauthier: 171 Paul Gauthier (aider): 2 - Zachary Vorhies: 6 + Zachary Vorhies: 7 start_tag: v0.22.0 - total_lines: 173 -- aider_percentage: 6.68 - aider_total: 25 + total_lines: 180 +- aider_percentage: 5.07 + aider_total: 19 end_date: '2024-02-10' end_tag: v0.24.0 file_counts: @@ -920,19 +922,19 @@ aider/models/openai.py: Paul Gauthier: 135 aider/scrape.py: - Paul Gauthier: 170 - Paul Gauthier (aider): 17 + Paul Gauthier: 176 + Paul Gauthier (aider): 11 aider/utils.py: - Paul Gauthier: 7 + Paul Gauthier: 8 tests/test_models.py: Paul Gauthier: 8 grand_total: - Paul Gauthier: 349 - Paul Gauthier (aider): 25 + Paul Gauthier: 356 + Paul Gauthier (aider): 19 start_tag: v0.23.0 - total_lines: 374 -- aider_percentage: 5.79 - aider_total: 7 + total_lines: 375 +- aider_percentage: 6.02 + aider_total: 8 end_date: '2024-03-04' end_tag: v0.25.0 file_counts: @@ -944,7 +946,7 @@ Paul Gauthier: 5 aider/main.py: Paul Gauthier: 4 - Paul Gauthier (aider): 7 + Paul Gauthier (aider): 8 aider/models/openai.py: Paul Gauthier: 1 aider/repo.py: @@ -952,14 +954,14 @@ aider/scrape.py: Paul Gauthier: 1 tests/test_coder.py: - Paul Gauthier: 22 + Paul Gauthier: 28 tests/test_commands.py: - Paul Gauthier: 23 + Paul Gauthier: 28 grand_total: - Paul Gauthier: 114 - Paul Gauthier (aider): 7 + Paul Gauthier: 125 + Paul Gauthier (aider): 8 start_tag: v0.24.0 - total_lines: 121 + total_lines: 133 - aider_percentage: 0.0 aider_total: 0 end_date: '2024-03-08' @@ -970,11 +972,11 @@ aider/coders/base_coder.py: Paul Gauthier: 8 aider/main.py: - Paul Gauthier: 26 + Paul Gauthier: 30 grand_total: - Paul Gauthier: 35 + Paul Gauthier: 39 start_tag: v0.25.0 - total_lines: 35 + total_lines: 39 - aider_percentage: 0.0 aider_total: 0 end_date: '2024-03-22' @@ -987,20 +989,20 @@ aider/main.py: Paul Gauthier: 14 aider/queries/tree-sitter-typescript-tags.scm: - Ryan Freckleton: 21 + Ryan Freckleton: 32 aider/repomap.py: Paul Gauthier: 6 benchmark/benchmark.py: - Paul Gauthier: 91 + Paul Gauthier: 111 tests/test_commands.py: Paul Gauthier: 3 tests/test_repomap.py: - Ryan Freckleton: 48 + Ryan Freckleton: 59 grand_total: - Paul Gauthier: 125 - Ryan Freckleton: 69 + Paul Gauthier: 145 + Ryan Freckleton: 91 start_tag: v0.26.0 - total_lines: 194 + total_lines: 236 - aider_percentage: 0.0 aider_total: 0 end_date: '2024-04-09' @@ -1009,12 +1011,12 @@ aider/__init__.py: Paul Gauthier: 1 aider/models/openai.py: - Paul Gauthier: 3 + Paul Gauthier: 10 grand_total: - Paul Gauthier: 4 + Paul Gauthier: 11 start_tag: v0.27.0 - total_lines: 4 -- aider_percentage: 5.69 + total_lines: 11 +- aider_percentage: 5.47 aider_total: 35 end_date: '2024-04-21' end_tag: v0.29.0 @@ -1041,9 +1043,9 @@ aider/history.py: Paul Gauthier: 6 aider/main.py: - Paul Gauthier: 68 + Paul Gauthier: 81 aider/models.py: - Paul Gauthier: 216 + Paul Gauthier: 219 Paul Gauthier (aider): 33 aider/repo.py: Paul Gauthier: 19 @@ -1065,7 +1067,7 @@ tests/test_models.py: Paul Gauthier: 13 tests/test_repo.py: - Paul Gauthier: 17 + Paul Gauthier: 26 tests/test_repomap.py: Paul Gauthier: 13 tests/test_sendchat.py: @@ -1074,10 +1076,10 @@ Paul Gauthier: 14 grand_total: Aloha: 1 - Paul Gauthier: 579 + Paul Gauthier: 604 Paul Gauthier (aider): 35 start_tag: v0.28.0 - total_lines: 615 + total_lines: 640 - aider_percentage: 0.0 aider_total: 0 end_date: '2024-04-23' @@ -1090,9 +1092,9 @@ aider/history.py: Paul Gauthier: 2 aider/main.py: - Paul Gauthier: 26 + Paul Gauthier: 27 aider/models.py: - Paul Gauthier: 154 + Paul Gauthier: 171 aider/sendchat.py: Paul Gauthier: 3 aider/voice.py: @@ -1114,9 +1116,9 @@ tests/test_wholefile.py: Paul Gauthier: 1 grand_total: - Paul Gauthier: 213 + Paul Gauthier: 231 start_tag: v0.29.0 - total_lines: 213 + total_lines: 231 - aider_percentage: 0.16 aider_total: 2 end_date: '2024-05-02' @@ -1127,7 +1129,7 @@ aider/args.py: Paul Gauthier: 375 aider/coders/base_coder.py: - Paul Gauthier: 120 + Paul Gauthier: 131 aider/commands.py: Paul Gauthier: 45 aider/gui.py: @@ -1144,17 +1146,17 @@ tests/test_coder.py: Paul Gauthier: 16 tests/test_commands.py: - Paul Gauthier: 8 + Paul Gauthier: 10 tests/test_editblock.py: Paul Gauthier: 4 tests/test_wholefile.py: Paul Gauthier: 1 grand_total: - Paul Gauthier: 1247 + Paul Gauthier: 1260 Paul Gauthier (aider): 2 start_tag: v0.30.0 - total_lines: 1249 -- aider_percentage: 3.29 + total_lines: 1262 +- aider_percentage: 3.0 aider_total: 8 end_date: '2024-05-07' end_tag: v0.32.0 @@ -1166,9 +1168,9 @@ aider/coders/__init__.py: Paul Gauthier: 2 aider/coders/base_coder.py: - Paul Gauthier: 54 + Paul Gauthier: 55 aider/coders/editblock_coder.py: - Paul Gauthier: 3 + Paul Gauthier: 4 aider/coders/editblock_fenced_coder.py: Paul Gauthier: 11 aider/gui.py: @@ -1177,25 +1179,25 @@ Paul Gauthier: 5 Paul Gauthier (aider): 3 aider/models.py: - Paul Gauthier: 45 + Paul Gauthier: 54 aider/sendchat.py: Paul Gauthier: 10 aider/utils.py: Paul Gauthier: 1 benchmark/benchmark.py: - Paul Gauthier: 78 + Paul Gauthier: 81 Paul Gauthier (aider): 5 benchmark/plots.py: - Paul Gauthier: 3 + Paul Gauthier: 5 tests/test_main.py: - Paul Gauthier: 10 + Paul Gauthier: 18 tests/test_sendchat.py: Paul Gauthier: 4 grand_total: - Paul Gauthier: 235 + Paul Gauthier: 259 Paul Gauthier (aider): 8 start_tag: v0.31.0 - total_lines: 243 + total_lines: 267 - aider_percentage: 0.0 aider_total: 0 end_date: '2024-05-08' @@ -1212,15 +1214,15 @@ aider/main.py: Paul Gauthier: 1 aider/models.py: - Paul Gauthier: 3 + Paul Gauthier: 9 aider/sendchat.py: Paul Gauthier: 1 aider/voice.py: Paul Gauthier: 2 grand_total: - Paul Gauthier: 21 + Paul Gauthier: 27 start_tag: v0.32.0 - total_lines: 21 + total_lines: 27 - aider_percentage: 0.0 aider_total: 0 end_date: '2024-05-10' @@ -1235,18 +1237,18 @@ aider/main.py: Paul Gauthier: 9 aider/models.py: - Paul Gauthier: 7 + Paul Gauthier: 14 aider/repomap.py: Paul Gauthier: 3 aider/sendchat.py: - Paul Gauthier: 6 + Paul Gauthier: 7 tests/test_sendchat.py: Paul Gauthier: 4 grand_total: - Paul Gauthier: 54 + Paul Gauthier: 62 start_tag: v0.33.0 - total_lines: 54 -- aider_percentage: 6.8 + total_lines: 62 +- aider_percentage: 6.42 aider_total: 17 end_date: '2024-05-13' end_tag: v0.35.0 @@ -1254,36 +1256,36 @@ aider/__init__.py: Paul Gauthier: 1 aider/args.py: - Paul Gauthier: 15 + Paul Gauthier: 18 Paul Gauthier (aider): 5 aider/coders/base_coder.py: Paul Gauthier: 22 Paul Gauthier (aider): 1 aider/coders/editblock_coder.py: - Paul Gauthier: 82 + Paul Gauthier: 84 Paul Gauthier (aider): 10 aider/history.py: Paul Gauthier: 20 aider/io.py: - Paul Gauthier: 7 + Paul Gauthier: 8 aider/main.py: Paul Gauthier: 1 Paul Gauthier (aider): 1 aider/models.py: - Paul Gauthier: 18 + Paul Gauthier: 25 aider/sendchat.py: - Paul Gauthier: 6 + Paul Gauthier: 8 aider/utils.py: Paul Gauthier: 51 aider/versioncheck.py: Paul Gauthier: 10 grand_total: - Paul Gauthier: 233 + Paul Gauthier: 248 Paul Gauthier (aider): 17 start_tag: v0.34.0 - total_lines: 250 -- aider_percentage: 15.38 - aider_total: 92 + total_lines: 265 +- aider_percentage: 14.64 + aider_total: 89 end_date: '2024-05-22' end_tag: v0.36.0 file_counts: @@ -1292,15 +1294,15 @@ aider/__init__.py: Paul Gauthier: 1 aider/args.py: - Paul Gauthier: 37 - Paul Gauthier (aider): 3 + Paul Gauthier: 42 + Paul Gauthier (aider): 1 aider/coders/base_coder.py: - Paul Gauthier: 110 + Paul Gauthier: 113 Paul Gauthier (aider): 3 aider/coders/wholefile_coder.py: Paul Gauthier (aider): 2 aider/commands.py: - Paul Gauthier: 45 + Paul Gauthier: 49 aider/io.py: Paul Gauthier: 9 aider/linter.py: @@ -1319,8 +1321,8 @@ benchmark/benchmark.py: Paul Gauthier: 5 benchmark/over_time.py: - Paul Gauthier: 29 - Paul Gauthier (aider): 28 + Paul Gauthier: 30 + Paul Gauthier (aider): 27 scripts/jekyll_build.sh: Paul Gauthier: 1 Paul Gauthier (aider): 3 @@ -1328,11 +1330,11 @@ Paul Gauthier: 1 Paul Gauthier (aider): 3 grand_total: - Paul Gauthier: 506 - Paul Gauthier (aider): 92 + Paul Gauthier: 519 + Paul Gauthier (aider): 89 start_tag: v0.35.0 - total_lines: 598 -- aider_percentage: 19.06 + total_lines: 608 +- aider_percentage: 18.65 aider_total: 113 end_date: '2024-06-04' end_tag: v0.37.0 @@ -1340,7 +1342,7 @@ aider/__init__.py: Paul Gauthier: 1 aider/coders/base_coder.py: - Paul Gauthier: 71 + Paul Gauthier: 73 Paul Gauthier (aider): 3 aider/coders/editblock_coder.py: Paul Gauthier: 1 @@ -1349,14 +1351,14 @@ Aleksandr Bobrov (aider): 1 Paul Gauthier: 24 aider/io.py: - Paul Gauthier: 6 + Paul Gauthier: 7 Paul Gauthier (aider): 1 aider/linter.py: Paul Gauthier: 4 aider/litellm.py: Paul Gauthier: 1 aider/repomap.py: - Paul Gauthier: 113 + Paul Gauthier: 115 aider/sendchat.py: Paul Gauthier: 2 aider/voice.py: @@ -1364,23 +1366,23 @@ benchmark/over_time.py: Paul Gauthier (aider): 7 benchmark/swe_bench.py: - Paul Gauthier: 99 - Paul Gauthier (aider): 24 + Paul Gauthier: 101 + Paul Gauthier (aider): 30 scripts/blame.py: - Paul Gauthier: 153 - Paul Gauthier (aider): 59 + Paul Gauthier: 159 + Paul Gauthier (aider): 53 tests/test_io.py: Paul Gauthier: 4 Paul Gauthier (aider): 14 grand_total: Aleksandr Bobrov: 1 Aleksandr Bobrov (aider): 1 - Paul Gauthier: 479 + Paul Gauthier: 492 Paul Gauthier (aider): 112 start_tag: v0.36.0 - total_lines: 593 -- aider_percentage: 9.53 - aider_total: 53 + total_lines: 606 +- aider_percentage: 8.96 + aider_total: 50 end_date: '2024-06-16' end_tag: v0.38.0 file_counts: @@ -1399,13 +1401,13 @@ Paul Gauthier: 1 aider/args.py: Krazer: 4 - Paul Gauthier: 57 + Paul Gauthier: 58 develmusa: 1 aider/args_formatter.py: - Paul Gauthier: 116 - Paul Gauthier (aider): 20 + Paul Gauthier: 119 + Paul Gauthier (aider): 17 aider/coders/base_coder.py: - Paul Gauthier: 77 + Paul Gauthier: 78 aider/commands.py: Paul Gauthier: 29 aider/gui.py: @@ -1440,13 +1442,13 @@ Paul Gauthier: 4 grand_total: Krazer: 28 - Paul Gauthier: 474 - Paul Gauthier (aider): 53 + Paul Gauthier: 479 + Paul Gauthier (aider): 50 develmusa: 1 start_tag: v0.37.0 - total_lines: 556 -- aider_percentage: 15.56 - aider_total: 47 + total_lines: 558 +- aider_percentage: 17.1 + aider_total: 59 end_date: '2024-06-20' end_tag: v0.39.0 file_counts: @@ -1456,13 +1458,13 @@ Paul Gauthier (aider): 4 aider/args.py: Daniel Vainsencher: 6 - John-Mason P. Shackelford: 14 - Paul Gauthier: 14 + John-Mason P. Shackelford: 18 + Paul Gauthier: 23 aider/args_formatter.py: Paul Gauthier: 24 - Paul Gauthier (aider): 9 + Paul Gauthier (aider): 15 aider/coders/base_coder.py: - Daniel Vainsencher: 4 + Daniel Vainsencher: 5 Daniel Vainsencher (aider): 2 Paul Gauthier: 2 aider/commands.py: @@ -1473,7 +1475,7 @@ Daniel Vainsencher: 1 John-Mason P. Shackelford: 14 aider/models.py: - Paul Gauthier: 14 + Paul Gauthier: 18 aider/repo.py: Paul Gauthier: 23 aider/scrape.py: @@ -1481,29 +1483,29 @@ aider/tests/test_commands.py: Paul Gauthier: 6 aider/tests/test_main.py: - John-Mason P. Shackelford: 80 + John-Mason P. Shackelford: 88 aider/tests/test_repo.py: - Paul Gauthier: 19 - Paul Gauthier (aider): 21 + Paul Gauthier: 24 + Paul Gauthier (aider): 24 aider/urls.py: Nicolas Perez: 1 Paul Gauthier: 1 aider/utils.py: Daniel Vainsencher: 7 - Daniel Vainsencher (aider): 11 + Daniel Vainsencher (aider): 14 John-Mason P. Shackelford: 7 scripts/update-docs.sh: Paul Gauthier: 1 grand_total: - Daniel Vainsencher: 32 - Daniel Vainsencher (aider): 13 - John-Mason P. Shackelford: 115 + Daniel Vainsencher: 33 + Daniel Vainsencher (aider): 16 + John-Mason P. Shackelford: 127 Nicolas Perez: 2 - Paul Gauthier: 106 - Paul Gauthier (aider): 34 + Paul Gauthier: 124 + Paul Gauthier (aider): 43 start_tag: v0.38.0 - total_lines: 302 -- aider_percentage: 6.42 + total_lines: 345 +- aider_percentage: 5.82 aider_total: 21 end_date: '2024-06-24' end_tag: v0.40.0 @@ -1512,34 +1514,34 @@ Paul Gauthier: 1 aider/args.py: Krazer: 6 - Paul Gauthier: 27 + Paul Gauthier: 33 aider/coders/base_coder.py: Paul Gauthier: 28 aider/coders/editblock_coder.py: Paul Gauthier: 64 aider/linter.py: - Paul Gauthier: 23 + Paul Gauthier: 24 Paul Gauthier (aider): 21 aider/main.py: - Krazer: 32 + Krazer: 36 Paul Gauthier: 23 aider/models.py: - Dustin Miller: 13 + Dustin Miller: 14 Krazer: 31 - Paul Gauthier: 16 + Paul Gauthier: 28 aider/repo.py: Paul Gauthier: 26 aider/tests/test_editblock.py: - Paul Gauthier: 16 + Paul Gauthier: 26 grand_total: - Dustin Miller: 13 - Krazer: 69 - Paul Gauthier: 224 + Dustin Miller: 14 + Krazer: 73 + Paul Gauthier: 253 Paul Gauthier (aider): 21 start_tag: v0.39.0 - total_lines: 327 -- aider_percentage: 4.74 - aider_total: 11 + total_lines: 361 +- aider_percentage: 5.86 + aider_total: 15 end_date: '2024-07-01' end_tag: v0.41.0 file_counts: @@ -1548,26 +1550,26 @@ aider/__init__.py: Paul Gauthier: 1 aider/args.py: - Paul Gauthier: 5 - Paul Gauthier (aider): 5 + Paul Gauthier: 10 + Paul Gauthier (aider): 6 aider/coders/base_coder.py: - Paul Gauthier: 122 + Paul Gauthier: 125 Paul Gauthier (aider): 2 aider/coders/wholefile_coder.py: - Paul Gauthier: 2 + Paul Gauthier: 3 aider/commands.py: - Amir Elaguizy (aider): 3 + Amir Elaguizy (aider): 6 Paul Gauthier: 1 aider/gui.py: Paul Gauthier: 4 aider/main.py: - Paul Gauthier: 10 + Paul Gauthier: 11 Paul Gauthier (aider): 1 aider/mdstream.py: Paul Gauthier: 1 aider/models.py: Mitsuki Ogasahara: 3 - Paul Gauthier: 28 + Paul Gauthier: 38 aider/repo.py: Paul Gauthier: 7 aider/repomap.py: @@ -1585,12 +1587,12 @@ setup.py: Paul Gauthier: 3 grand_total: - Amir Elaguizy (aider): 3 + Amir Elaguizy (aider): 6 Mitsuki Ogasahara: 3 - Paul Gauthier: 218 - Paul Gauthier (aider): 8 + Paul Gauthier: 238 + Paul Gauthier (aider): 9 start_tag: v0.40.0 - total_lines: 232 + total_lines: 256 - aider_percentage: 2.29 aider_total: 7 end_date: '2024-07-04' @@ -1636,8 +1638,8 @@ Paul Gauthier (aider): 7 start_tag: v0.41.0 total_lines: 306 -- aider_percentage: 10.61 - aider_total: 40 +- aider_percentage: 9.82 + aider_total: 38 end_date: '2024-07-07' end_tag: v0.43.0 file_counts: @@ -1658,11 +1660,11 @@ aider/coders/__init__.py: Paul Gauthier: 2 aider/coders/base_coder.py: - Paul Gauthier: 44 + Paul Gauthier: 45 aider/coders/help_coder.py: - Paul Gauthier: 15 + Paul Gauthier: 17 aider/commands.py: - Paul Gauthier: 63 + Paul Gauthier: 69 Paul Gauthier (aider): 5 aider/help.py: Paul Gauthier: 114 @@ -1672,14 +1674,14 @@ aider/llm.py: Paul Gauthier: 1 aider/main.py: - Paul Gauthier: 35 + Paul Gauthier: 36 aider/repomap.py: Paul Gauthier: 14 aider/tests/test_commands.py: Paul Gauthier: 1 aider/tests/test_help.py: - Paul Gauthier: 5 - Paul Gauthier (aider): 26 + Paul Gauthier: 7 + Paul Gauthier (aider): 24 aider/versioncheck.py: Paul Gauthier: 2 scripts/jekyll_run.sh: @@ -1690,12 +1692,12 @@ Paul Gauthier: 6 Paul Gauthier (aider): 3 grand_total: - Paul Gauthier: 337 - Paul Gauthier (aider): 40 + Paul Gauthier: 349 + Paul Gauthier (aider): 38 start_tag: v0.42.0 - total_lines: 377 -- aider_percentage: 27.02 - aider_total: 157 + total_lines: 387 +- aider_percentage: 27.04 + aider_total: 159 end_date: '2024-07-16' end_tag: v0.44.0 file_counts: @@ -1706,7 +1708,7 @@ aider/__init__.py: Paul Gauthier: 1 aider/args.py: - Paul Gauthier: 4 + Paul Gauthier: 5 aider/args_formatter.py: Paul Gauthier: 1 aider/coders/base_coder.py: @@ -1719,16 +1721,16 @@ aider/help.py: Paul Gauthier: 20 aider/main.py: - Paul Gauthier: 20 + Paul Gauthier: 22 aider/models.py: Paul Gauthier: 11 aider/scrape.py: - Paul Gauthier: 53 + Paul Gauthier: 54 aider/utils.py: Paul Gauthier: 78 Paul Gauthier (aider): 16 aider/versioncheck.py: - Paul Gauthier: 27 + Paul Gauthier: 28 aider/voice.py: Paul Gauthier: 6 benchmark/Dockerfile: @@ -1751,19 +1753,19 @@ Paul Gauthier (aider): 37 tests/browser/test_browser.py: Paul Gauthier: 13 - Paul Gauthier (aider): 16 + Paul Gauthier (aider): 18 tests/help/test_help.py: Paul Gauthier: 23 tests/scrape/test_scrape.py: Paul Gauthier: 16 Paul Gauthier (aider): 26 grand_total: - Paul Gauthier: 424 - Paul Gauthier (aider): 157 + Paul Gauthier: 429 + Paul Gauthier (aider): 159 start_tag: v0.43.0 - total_lines: 581 -- aider_percentage: 44.93 - aider_total: 93 + total_lines: 588 +- aider_percentage: 48.43 + aider_total: 123 end_date: '2024-07-18' end_tag: v0.45.0 file_counts: @@ -1779,29 +1781,29 @@ Paul Gauthier: 1 Paul Gauthier (aider): 5 aider/models.py: - Paul Gauthier: 7 + Paul Gauthier: 16 aider/repomap.py: Paul Gauthier: 1 aider/scrape.py: - Paul Gauthier: 8 + Paul Gauthier: 9 aider/versioncheck.py: Paul Gauthier: 14 tests/basic/test_coder.py: Paul Gauthier: 15 - Paul Gauthier (aider): 21 + Paul Gauthier (aider): 25 tests/basic/test_commands.py: - Paul Gauthier: 15 - Paul Gauthier (aider): 55 + Paul Gauthier: 22 + Paul Gauthier (aider): 81 tests/basic/test_main.py: Paul Gauthier: 27 Paul Gauthier (aider): 5 grand_total: - Paul Gauthier: 114 - Paul Gauthier (aider): 93 + Paul Gauthier: 131 + Paul Gauthier (aider): 123 start_tag: v0.44.0 - total_lines: 207 -- aider_percentage: 52.87 - aider_total: 313 + total_lines: 254 +- aider_percentage: 53.3 + aider_total: 339 end_date: '2024-07-29' end_tag: v0.46.0 file_counts: @@ -1816,7 +1818,7 @@ Your Name: 9 aider/coders/base_coder.py: Paul Gauthier: 17 - Paul Gauthier (aider): 43 + Paul Gauthier (aider): 45 Your Name: 27 Your Name (aider): 6 aider/coders/editblock_coder.py: @@ -1832,19 +1834,19 @@ Your Name (aider): 2 aider/commands.py: Paul Gauthier: 43 - Your Name: 26 - Your Name (aider): 25 + Your Name: 28 + Your Name (aider): 34 aider/io.py: Paul Gauthier: 3 aider/llm.py: - Paul Gauthier: 10 + Paul Gauthier: 11 aider/main.py: Paul Gauthier: 3 Paul Gauthier (aider): 8 Your Name: 6 Your Name (aider): 1 aider/models.py: - Paul Gauthier: 9 + Paul Gauthier: 24 aider/queries/tree-sitter-elm-tags.scm: Charles Joachim: 4 aider/repomap.py: @@ -1864,37 +1866,37 @@ Paul Gauthier (aider): 13 tests/basic/test_repomap.py: Paul Gauthier: 70 - Paul Gauthier (aider): 10 + Paul Gauthier (aider): 25 tests/scrape/test_scrape.py: Paul Gauthier: 14 Paul Gauthier (aider): 73 grand_total: Charles Joachim: 4 - Paul Gauthier: 204 - Paul Gauthier (aider): 272 - Your Name: 71 - Your Name (aider): 41 + Paul Gauthier: 220 + Paul Gauthier (aider): 289 + Your Name: 73 + Your Name (aider): 50 start_tag: v0.45.0 - total_lines: 592 -- aider_percentage: 56.98 - aider_total: 355 + total_lines: 636 +- aider_percentage: 58.42 + aider_total: 392 end_date: '2024-07-31' end_tag: v0.47.0 file_counts: .github/workflows/docker-release.yml: - Paul Gauthier (aider): 20 + Paul Gauthier (aider): 35 .github/workflows/release.yml: Paul Gauthier (aider): 2 aider/__init__.py: Paul Gauthier: 1 aider/args.py: - Paul Gauthier: 4 + Paul Gauthier: 6 Paul Gauthier (aider): 5 aider/coders/base_coder.py: Paul Gauthier: 8 Paul Gauthier (aider): 3 aider/commands.py: - Paul Gauthier: 20 + Paul Gauthier: 23 Paul Gauthier (aider): 4 aider/history.py: Paul Gauthier: 16 @@ -1906,7 +1908,7 @@ Paul Gauthier: 14 Paul Gauthier (aider): 1 aider/main.py: - Paul Gauthier: 3 + Paul Gauthier: 9 Paul Gauthier (aider): 1 aider/queries/tree-sitter-ocaml-tags.scm: Paul Gauthier: 12 @@ -1927,34 +1929,34 @@ Paul Gauthier (aider): 12 docker/Dockerfile: Paul Gauthier: 19 - Paul Gauthier (aider): 18 + Paul Gauthier (aider): 21 scripts/blame.py: - Paul Gauthier: 65 - Paul Gauthier (aider): 99 + Paul Gauthier: 64 + Paul Gauthier (aider): 110 scripts/update-blame.sh: Paul Gauthier: 6 scripts/update-docs.sh: Paul Gauthier: 1 tests/basic/test_coder.py: - Paul Gauthier: 32 + Paul Gauthier: 33 Paul Gauthier (aider): 4 tests/basic/test_commands.py: Paul Gauthier: 11 - Paul Gauthier (aider): 25 + Paul Gauthier (aider): 30 tests/basic/test_history.py: Paul Gauthier (aider): 109 tests/basic/test_repo.py: Paul Gauthier: 4 - Paul Gauthier (aider): 9 + Paul Gauthier (aider): 12 tests/basic/test_repomap.py: Paul Gauthier: 1 grand_total: - Paul Gauthier: 268 - Paul Gauthier (aider): 355 + Paul Gauthier: 279 + Paul Gauthier (aider): 392 start_tag: v0.46.0 - total_lines: 623 -- aider_percentage: 45.67 - aider_total: 269 + total_lines: 671 +- aider_percentage: 45.1 + aider_total: 276 end_date: '2024-08-06' end_tag: v0.48.0 file_counts: @@ -1974,7 +1976,7 @@ aider/history.py: Paul Gauthier: 2 aider/main.py: - Paul Gauthier: 20 + Paul Gauthier: 21 Paul Gauthier (aider): 30 aider/models.py: Paul Gauthier: 9 @@ -1984,8 +1986,8 @@ Paul Gauthier: 42 Paul Gauthier (aider): 23 aider/repomap.py: - Paul Gauthier: 60 - Paul Gauthier (aider): 3 + Paul Gauthier: 62 + Paul Gauthier (aider): 2 aider/sendchat.py: Paul Gauthier: 26 Paul Gauthier (aider): 2 @@ -1995,71 +1997,71 @@ scripts/blame.py: Paul Gauthier (aider): 2 tests/basic/test_coder.py: - Paul Gauthier: 10 + Paul Gauthier: 13 tests/basic/test_commands.py: Paul Gauthier: 19 - Paul Gauthier (aider): 14 + Paul Gauthier (aider): 18 tests/basic/test_history.py: Paul Gauthier: 2 tests/basic/test_main.py: - Paul Gauthier: 15 - Paul Gauthier (aider): 39 + Paul Gauthier: 25 + Paul Gauthier (aider): 42 tests/basic/test_repo.py: Paul Gauthier: 8 - Paul Gauthier (aider): 35 + Paul Gauthier (aider): 36 tests/basic/test_scripting.py: Paul Gauthier (aider): 39 grand_total: - Paul Gauthier: 318 - Paul Gauthier (aider): 269 + Paul Gauthier: 334 + Paul Gauthier (aider): 276 Thinh Nguyen: 1 paul-gauthier: 1 start_tag: v0.47.0 - total_lines: 589 -- aider_percentage: 59.83 - aider_total: 429 + total_lines: 612 +- aider_percentage: 59.65 + aider_total: 473 end_date: '2024-08-10' end_tag: v0.49.0 file_counts: aider/__init__.py: Paul Gauthier: 1 aider/args.py: - Paul Gauthier: 7 - Paul Gauthier (aider): 9 + Paul Gauthier: 9 + Paul Gauthier (aider): 13 aider/coders/base_coder.py: - Paul Gauthier: 81 - Paul Gauthier (aider): 41 + Paul Gauthier: 91 + Paul Gauthier (aider): 44 aider/commands.py: Paul Gauthier: 34 - Paul Gauthier (aider): 105 + Paul Gauthier (aider): 108 aider/io.py: Paul Gauthier: 7 - Paul Gauthier (aider): 23 + Paul Gauthier (aider): 24 aider/llm.py: Paul Gauthier (aider): 5 aider/main.py: Paul Gauthier: 1 Paul Gauthier (aider): 4 aider/models.py: - Paul Gauthier: 17 + Paul Gauthier: 34 Paul Gauthier (aider): 3 aider/repo.py: Paul Gauthier: 8 - Paul Gauthier (aider): 12 + Paul Gauthier (aider): 13 aider/repomap.py: Paul Gauthier: 11 Paul Gauthier (aider): 23 aider/scrape.py: Paul Gauthier (aider): 17 aider/sendchat.py: - Paul Gauthier: 20 + Paul Gauthier: 21 aider/urls.py: Paul Gauthier: 1 aider/utils.py: Paul Gauthier (aider): 11 aider/versioncheck.py: Paul Gauthier: 3 - Paul Gauthier (aider): 9 + Paul Gauthier (aider): 11 aider/website/docs/leaderboards/index.md: Paul Gauthier: 11 Paul Gauthier (aider): 11 @@ -2067,28 +2069,28 @@ Paul Gauthier: 5 Paul Gauthier (aider): 2 tests/basic/test_coder.py: - Paul Gauthier (aider): 5 + Paul Gauthier (aider): 7 tests/basic/test_commands.py: Paul Gauthier: 35 - Paul Gauthier (aider): 83 + Paul Gauthier (aider): 93 tests/basic/test_editblock.py: Paul Gauthier (aider): 1 tests/basic/test_main.py: - Paul Gauthier (aider): 28 + Paul Gauthier (aider): 33 tests/basic/test_sendchat.py: - Paul Gauthier: 45 + Paul Gauthier: 47 tests/basic/test_wholefile.py: Paul Gauthier (aider): 1 tests/scrape/test_scrape.py: Paul Gauthier: 1 - Paul Gauthier (aider): 36 + Paul Gauthier (aider): 49 grand_total: - Paul Gauthier: 288 - Paul Gauthier (aider): 429 + Paul Gauthier: 320 + Paul Gauthier (aider): 473 start_tag: v0.48.0 - total_lines: 717 -- aider_percentage: 65.23 - aider_total: 182 + total_lines: 793 +- aider_percentage: 65.52 + aider_total: 209 end_date: '2024-08-13' end_tag: v0.50.0 file_counts: @@ -2097,14 +2099,14 @@ aider/__init__.py: Paul Gauthier: 1 aider/args.py: - Paul Gauthier (aider): 8 + Paul Gauthier (aider): 10 aider/coders/base_coder.py: Paul Gauthier: 24 - Paul Gauthier (aider): 30 + Paul Gauthier (aider): 32 aider/commands.py: - Amir Elaguizy (aider): 11 - Paul Gauthier: 26 - Paul Gauthier (aider): 15 + Amir Elaguizy (aider): 13 + Paul Gauthier: 28 + Paul Gauthier (aider): 18 aider/io.py: Paul Gauthier: 1 aider/main.py: @@ -2127,24 +2129,24 @@ Paul Gauthier (aider): 34 tests/basic/test_coder.py: Paul Gauthier: 3 - Paul Gauthier (aider): 16 + Paul Gauthier (aider): 19 tests/basic/test_commands.py: - Paul Gauthier: 7 - Paul Gauthier (aider): 27 + Paul Gauthier: 18 + Paul Gauthier (aider): 41 tests/basic/test_main.py: Paul Gauthier: 1 - Paul Gauthier (aider): 7 + Paul Gauthier (aider): 8 tests/help/test_help.py: Paul Gauthier: 7 grand_total: - Amir Elaguizy (aider): 11 + Amir Elaguizy (aider): 13 Branch Vincent: 2 - Paul Gauthier: 95 - Paul Gauthier (aider): 171 + Paul Gauthier: 108 + Paul Gauthier (aider): 196 start_tag: v0.49.0 - total_lines: 279 -- aider_percentage: 56.95 - aider_total: 582 + total_lines: 319 +- aider_percentage: 62.86 + aider_total: 689 end_date: '2024-08-20' end_tag: v0.51.0 file_counts: @@ -2152,14 +2154,14 @@ Paul Gauthier: 1 aider/args.py: Paul Gauthier: 2 - Paul Gauthier (aider): 8 + Paul Gauthier (aider): 10 aider/coders/__init__.py: - Paul Gauthier: 3 + Paul Gauthier: 4 aider/coders/base_coder.py: - Paul Gauthier: 168 - Paul Gauthier (aider): 45 + Paul Gauthier: 172 + Paul Gauthier (aider): 51 aider/coders/single_wholefile_func_coder.py: - Paul Gauthier: 28 + Paul Gauthier: 29 aider/commands.py: Paul Gauthier: 3 Paul Gauthier (aider): 5 @@ -2167,23 +2169,23 @@ Paul Gauthier: 2 aider/main.py: Paul Gauthier: 6 - Paul Gauthier (aider): 13 + Paul Gauthier (aider): 16 aider/models.py: - Paul Gauthier: 35 - Paul Gauthier (aider): 4 + Paul Gauthier: 45 + Paul Gauthier (aider): 2 aider/repomap.py: - Paul Gauthier: 11 - Paul Gauthier (aider): 55 + Paul Gauthier: 16 + Paul Gauthier (aider): 58 aider/sendchat.py: Paul Gauthier: 3 aider/utils.py: Paul Gauthier (aider): 6 aider/website/_includes/code-in-json-benchmark.js: - Paul Gauthier: 101 - Paul Gauthier (aider): 64 + Paul Gauthier: 24 + Paul Gauthier (aider): 141 aider/website/_includes/code-in-json-syntax.js: - Paul Gauthier: 23 - Paul Gauthier (aider): 116 + Paul Gauthier: 42 + Paul Gauthier (aider): 97 aider/website/docs/leaderboards/index.md: Paul Gauthier: 1 benchmark/benchmark.py: @@ -2198,18 +2200,18 @@ tests/basic/test_commands.py: Paul Gauthier: 5 tests/basic/test_main.py: - Paul Gauthier: 4 - Paul Gauthier (aider): 92 + Paul Gauthier: 6 + Paul Gauthier (aider): 125 tests/basic/test_repomap.py: - Paul Gauthier: 13 - Paul Gauthier (aider): 100 + Paul Gauthier: 15 + Paul Gauthier (aider): 104 grand_total: - Paul Gauthier: 440 - Paul Gauthier (aider): 582 + Paul Gauthier: 407 + Paul Gauthier (aider): 689 start_tag: v0.50.0 - total_lines: 1022 -- aider_percentage: 67.74 - aider_total: 485 + total_lines: 1096 +- aider_percentage: 66.9 + aider_total: 479 end_date: '2024-08-23' end_tag: v0.52.0 file_counts: @@ -2219,22 +2221,23 @@ Paul Gauthier: 2 Paul Gauthier (aider): 6 aider/coders/base_coder.py: - Paul Gauthier: 77 - Paul Gauthier (aider): 25 + Paul Gauthier: 80 + Paul Gauthier (aider): 23 aider/coders/chat_chunks.py: - Paul Gauthier (aider): 53 + Paul Gauthier: 1 + Paul Gauthier (aider): 3 aider/coders/editblock_coder.py: - Paul Gauthier: 42 - Paul Gauthier (aider): 67 + Paul Gauthier: 45 + Paul Gauthier (aider): 68 aider/coders/wholefile_coder.py: Paul Gauthier: 1 aider/commands.py: Paul Gauthier: 5 - Paul Gauthier (aider): 40 + Paul Gauthier (aider): 42 pcamp: 1 aider/io.py: - Paul Gauthier: 41 - Paul Gauthier (aider): 40 + Paul Gauthier: 40 + Paul Gauthier (aider): 41 aider/main.py: Paul Gauthier: 2 aider/models.py: @@ -2254,7 +2257,7 @@ scripts/blame.py: Paul Gauthier: 1 tests/basic/test_commands.py: - Paul Gauthier (aider): 74 + Paul Gauthier (aider): 100 tests/basic/test_editblock.py: Paul Gauthier (aider): 1 tests/basic/test_find_or_blocks.py: @@ -2264,17 +2267,17 @@ Paul Gauthier (aider): 32 tests/basic/test_main.py: Paul Gauthier: 2 - Paul Gauthier (aider): 27 + Paul Gauthier (aider): 43 tests/basic/test_wholefile.py: Paul Gauthier: 8 grand_total: - Paul Gauthier: 230 - Paul Gauthier (aider): 485 + Paul Gauthier: 236 + Paul Gauthier (aider): 479 pcamp: 1 start_tag: v0.51.0 total_lines: 716 -- aider_percentage: 62.36 - aider_total: 434 +- aider_percentage: 62.33 + aider_total: 455 end_date: '2024-08-27' end_tag: v0.53.0 file_counts: @@ -2284,7 +2287,7 @@ Paul Gauthier: 2 Paul Gauthier (aider): 10 aider/coders/base_coder.py: - Paul Gauthier: 55 + Paul Gauthier: 57 Paul Gauthier (aider): 18 aider/coders/chat_chunks.py: Paul Gauthier (aider): 9 @@ -2292,7 +2295,7 @@ Paul Gauthier: 44 Paul Gauthier (aider): 6 aider/commands.py: - Paul Gauthier: 18 + Paul Gauthier: 19 aider/history.py: Paul Gauthier (aider): 3 aider/io.py: @@ -2313,7 +2316,7 @@ Paul Gauthier: 7 Paul Gauthier (aider): 11 aider/utils.py: - Paul Gauthier: 9 + Paul Gauthier: 12 Paul Gauthier (aider): 9 aider/versioncheck.py: Paul Gauthier: 2 @@ -2321,13 +2324,13 @@ scripts/versionbump.py: Paul Gauthier: 1 tests/basic/test_commands.py: - Paul Gauthier: 6 + Paul Gauthier: 12 tests/basic/test_editblock.py: - Paul Gauthier: 5 - Paul Gauthier (aider): 27 + Paul Gauthier: 6 + Paul Gauthier (aider): 26 tests/basic/test_io.py: Paul Gauthier: 2 - Paul Gauthier (aider): 44 + Paul Gauthier (aider): 66 tests/basic/test_main.py: Paul Gauthier: 2 tests/basic/test_models.py: @@ -2344,12 +2347,12 @@ tests/fixtures/sample-code-base/sample.py: Paul Gauthier (aider): 68 grand_total: - Paul Gauthier: 262 - Paul Gauthier (aider): 434 + Paul Gauthier: 275 + Paul Gauthier (aider): 455 start_tag: v0.52.0 - total_lines: 696 -- aider_percentage: 67.4 - aider_total: 184 + total_lines: 730 +- aider_percentage: 70.0 + aider_total: 224 end_date: '2024-08-28' end_tag: v0.54.0 file_counts: @@ -2363,7 +2366,7 @@ Paul Gauthier: 1 aider/args.py: Paul Gauthier: 1 - Paul Gauthier (aider): 10 + Paul Gauthier (aider): 12 aider/coders/base_coder.py: Paul Gauthier: 25 Paul Gauthier (aider): 12 @@ -2374,37 +2377,37 @@ Paul Gauthier: 28 aider/main.py: Paul Gauthier: 2 - Paul Gauthier (aider): 4 + Paul Gauthier (aider): 6 aider/models.py: - Paul Gauthier (aider): 7 + Paul Gauthier (aider): 11 aider/run_cmd.py: - Paul Gauthier: 3 - Paul Gauthier (aider): 66 + Paul Gauthier: 2 + Paul Gauthier (aider): 70 aider/utils.py: - Paul Gauthier (aider): 14 + Paul Gauthier (aider): 15 aider/versioncheck.py: Paul Gauthier: 1 - Paul Gauthier (aider): 9 + Paul Gauthier (aider): 13 aider/website/docs/leaderboards/index.md: Paul Gauthier: 1 tests/basic/test_coder.py: - Paul Gauthier: 6 - Paul Gauthier (aider): 43 + Paul Gauthier: 14 + Paul Gauthier (aider): 49 tests/basic/test_io.py: Paul Gauthier: 4 tests/basic/test_main.py: Antti Kaihola: 4 - Paul Gauthier (aider): 12 + Paul Gauthier (aider): 29 tests/scrape/test_scrape.py: Paul Gauthier: 1 grand_total: Antti Kaihola: 4 - Paul Gauthier: 85 - Paul Gauthier (aider): 184 + Paul Gauthier: 92 + Paul Gauthier (aider): 224 start_tag: v0.53.0 - total_lines: 273 -- aider_percentage: 52.82 - aider_total: 759 + total_lines: 320 +- aider_percentage: 52.4 + aider_total: 787 end_date: '2024-09-04' end_tag: v0.55.0 file_counts: @@ -2414,8 +2417,8 @@ aider/args.py: Paul Gauthier (aider): 7 aider/coders/base_coder.py: - Paul Gauthier: 62 - Paul Gauthier (aider): 39 + Paul Gauthier: 63 + Paul Gauthier (aider): 42 aider/coders/editblock_coder.py: Nikolay Sedelnikov: 8 aider/coders/editblock_func_coder.py: @@ -2426,15 +2429,15 @@ Paul Gauthier: 16 aider/commands.py: Antti Kaihola: 7 - Paul Gauthier: 74 - Paul Gauthier (aider): 25 + Paul Gauthier: 83 + Paul Gauthier (aider): 27 aider/format_settings.py: Paul Gauthier (aider): 2 aider/gui.py: Paul Gauthier: 4 aider/io.py: - Paul Gauthier: 56 - Paul Gauthier (aider): 11 + Paul Gauthier: 57 + Paul Gauthier (aider): 13 aider/linter.py: Paul Gauthier: 5 aider/llm.py: @@ -2468,7 +2471,7 @@ Paul Gauthier: 31 Paul Gauthier (aider): 29 aider/versioncheck.py: - Paul Gauthier: 22 + Paul Gauthier: 32 Paul Gauthier (aider): 6 aider/voice.py: Paul Gauthier: 7 @@ -2476,23 +2479,23 @@ aider/website/docs/leaderboards/index.md: Paul Gauthier: 1 scripts/versionbump.py: - Paul Gauthier: 7 + Paul Gauthier: 9 tests/basic/test_coder.py: Paul Gauthier: 3 - Paul Gauthier (aider): 96 + Paul Gauthier (aider): 105 tests/basic/test_editblock.py: Antti Kaihola: 3 - Nikolay Sedelnikov: 23 + Nikolay Sedelnikov: 37 tests/basic/test_io.py: Paul Gauthier: 2 - Paul Gauthier (aider): 14 + Paul Gauthier (aider): 15 tests/basic/test_main.py: Paul Gauthier: 2 Paul Gauthier (aider): 10 tests/basic/test_models.py: Paul Gauthier (aider): 4 tests/basic/test_repomap.py: - Paul Gauthier (aider): 31 + Paul Gauthier (aider): 42 tests/basic/test_run_cmd.py: Paul Gauthier (aider): 11 tests/basic/test_special.py: @@ -2502,13 +2505,13 @@ Paul Gauthier (aider): 11 grand_total: Antti Kaihola: 12 - Nikolay Sedelnikov: 31 - Paul Gauthier: 635 - Paul Gauthier (aider): 759 + Nikolay Sedelnikov: 45 + Paul Gauthier: 658 + Paul Gauthier (aider): 787 start_tag: v0.54.0 - total_lines: 1437 -- aider_percentage: 56.23 - aider_total: 149 + total_lines: 1502 +- aider_percentage: 55.4 + aider_total: 154 end_date: '2024-09-09' end_tag: v0.56.0 file_counts: @@ -2528,15 +2531,15 @@ aider/linter.py: Paul Gauthier: 6 Paul Gauthier (aider): 4 - fry69: 9 + fry69: 12 aider/main.py: - Paul Gauthier: 32 - Paul Gauthier (aider): 49 + Paul Gauthier: 35 + Paul Gauthier (aider): 48 aider/models.py: Paul Gauthier: 2 fry69: 3 aider/repo.py: - Paul Gauthier: 14 + Paul Gauthier: 16 aider/repomap.py: Paul Gauthier: 13 aider/report.py: @@ -2551,15 +2554,15 @@ Paul Gauthier (aider): 51 tests/basic/test_main.py: Paul Gauthier: 2 - Paul Gauthier (aider): 3 + Paul Gauthier (aider): 9 grand_total: - Paul Gauthier: 104 - Paul Gauthier (aider): 149 - fry69: 12 + Paul Gauthier: 109 + Paul Gauthier (aider): 154 + fry69: 15 start_tag: v0.55.0 - total_lines: 265 -- aider_percentage: 70.27 - aider_total: 390 + total_lines: 278 +- aider_percentage: 70.36 + aider_total: 406 end_date: '2024-09-21' end_tag: v0.57.0 file_counts: @@ -2570,10 +2573,10 @@ Paul Gauthier (aider): 1 aider/coders/base_coder.py: Krazer: 1 - Paul Gauthier: 14 + Paul Gauthier: 17 Paul Gauthier (aider): 2 aider/coders/chat_chunks.py: - Paul Gauthier: 4 + Paul Gauthier: 5 aider/coders/editblock_coder.py: Paul Gauthier (aider): 27 aider/commands.py: @@ -2581,21 +2584,22 @@ Paul Gauthier: 1 Paul Gauthier (aider): 34 aider/io.py: - Krazer: 23 + Krazer: 27 Paul Gauthier: 8 Paul Gauthier (aider): 42 aider/main.py: + Krazer: 2 Paul Gauthier: 5 Paul Gauthier (aider): 8 aider/models.py: Jay Alammar: 1 Jay Alammar (aider): 13 - Paul Gauthier: 48 - Paul Gauthier (aider): 30 + Paul Gauthier: 43 + Paul Gauthier (aider): 46 aider/repo.py: Paul Gauthier: 3 aider/run_cmd.py: - Paul Gauthier: 7 + Paul Gauthier: 8 Paul Gauthier (aider): 33 aider/sendchat.py: Paul Gauthier: 3 @@ -2626,35 +2630,37 @@ Christian Clauss: 2 Jay Alammar: 1 Jay Alammar (aider): 13 - Krazer: 27 + Krazer: 33 Paul Gauthier: 134 - Paul Gauthier (aider): 377 + Paul Gauthier (aider): 393 start_tag: v0.56.0 - total_lines: 555 -- aider_percentage: 44.68 - aider_total: 600 + total_lines: 577 +- aider_percentage: 48.74 + aider_total: 658 end_date: '2024-09-29' end_tag: v0.58.0 file_counts: .github/workflows/docker-build-test.yml: Paul Gauthier: 1 - Paul Gauthier (aider): 5 + Paul Gauthier (aider): 11 aider/__init__.py: Paul Gauthier: 1 aider/args.py: Mike Bailey: 7 Paul Gauthier: 8 - Paul Gauthier (aider): 51 + Paul Gauthier (aider): 55 Stein Martin Hustad: 17 fry69: 2 aider/coders/__init__.py: Paul Gauthier: 6 + Paul Gauthier (aider): 2 aider/coders/architect_coder.py: Paul Gauthier: 40 Paul Gauthier (aider): 3 aider/coders/base_coder.py: + Jonathan Ellis: 1 Paul Gauthier: 32 - Paul Gauthier (aider): 4 + Paul Gauthier (aider): 8 aider/coders/editor_editblock_coder.py: Paul Gauthier: 6 Paul Gauthier (aider): 1 @@ -2665,8 +2671,8 @@ aider/commands.py: Jonathan Ellis: 1 Mike Bailey: 1 - Paul Gauthier: 17 - Paul Gauthier (aider): 77 + Paul Gauthier: 15 + Paul Gauthier (aider): 78 fry69: 2 aider/help.py: Paul Gauthier: 27 @@ -2674,12 +2680,12 @@ aider/history.py: Paul Gauthier: 1 aider/io.py: - Paul Gauthier: 38 + Paul Gauthier: 39 Paul Gauthier (aider): 62 Stein Martin Hustad: 5 - fry69: 9 + fry69: 10 aider/linter.py: - Paul Gauthier: 5 + Paul Gauthier: 6 aider/main.py: Paul Gauthier: 13 Paul Gauthier (aider): 6 @@ -2688,7 +2694,7 @@ rti: 1 aider/models.py: Paul Gauthier: 58 - Paul Gauthier (aider): 79 + Paul Gauthier (aider): 85 aider/repo.py: Paul Gauthier: 16 Paul Gauthier (aider): 2 @@ -2706,26 +2712,26 @@ aider/voice.py: Mike Bailey: 17 Paul Gauthier: 2 - Paul Gauthier (aider): 6 + Paul Gauthier (aider): 10 aider/website/docs/leaderboards/index.md: - Paul Gauthier: 152 + Paul Gauthier: 92 benchmark/benchmark.py: Paul Gauthier: 25 Paul Gauthier (aider): 29 fry69: 3 scripts/issues.py: Paul Gauthier: 5 - Paul Gauthier (aider): 43 + Paul Gauthier (aider): 45 scripts/update-docs.sh: Paul Gauthier: 1 scripts/yank-old-versions.py: Paul Gauthier (aider): 51 tests/basic/test_commands.py: Paul Gauthier: 2 - Paul Gauthier (aider): 82 + Paul Gauthier (aider): 98 tests/basic/test_io.py: Paul Gauthier: 2 - Paul Gauthier (aider): 84 + Paul Gauthier (aider): 97 tests/basic/test_main.py: Paul Gauthier: 2 tests/basic/test_models.py: @@ -2733,19 +2739,19 @@ tests/basic/test_sanity_check_repo.py: fry69: 179 tests/basic/test_wholefile.py: - Paul Gauthier: 9 + Paul Gauthier: 16 grand_total: - Jonathan Ellis: 1 + Jonathan Ellis: 2 Mike Bailey: 25 - Paul Gauthier: 494 - Paul Gauthier (aider): 600 + Paul Gauthier: 441 + Paul Gauthier (aider): 658 Stein Martin Hustad: 26 - fry69: 196 + fry69: 197 rti: 1 start_tag: v0.57.0 - total_lines: 1343 -- aider_percentage: 68.72 - aider_total: 123 + total_lines: 1350 +- aider_percentage: 72.14 + aider_total: 145 end_date: '2024-10-04' end_tag: v0.59.0 file_counts: @@ -2764,7 +2770,7 @@ Paul Gauthier: 1 aider/commands.py: Paul Gauthier: 3 - Paul Gauthier (aider): 47 + Paul Gauthier (aider): 49 aider/gui.py: Paul Gauthier: 2 aider/main.py: @@ -2787,7 +2793,7 @@ Paul Gauthier: 2 tests/basic/test_commands.py: Paul Gauthier: 4 - Paul Gauthier (aider): 33 + Paul Gauthier (aider): 53 tests/basic/test_models.py: Paul Gauthier: 1 Paul Gauthier (aider): 18 @@ -2797,11 +2803,11 @@ Paul Gauthier: 1 grand_total: Paul Gauthier: 56 - Paul Gauthier (aider): 123 + Paul Gauthier (aider): 145 start_tag: v0.58.0 - total_lines: 179 -- aider_percentage: 57.2 - aider_total: 139 + total_lines: 201 +- aider_percentage: 51.47 + aider_total: 140 end_date: '2024-10-22' end_tag: v0.60.0 file_counts: @@ -2831,9 +2837,9 @@ Paul Gauthier: 20 Paul Gauthier (aider): 39 aider/models.py: - Paul Gauthier: 9 + Paul Gauthier: 18 Sven Grunewaldt: 10 - fry69: 5 + fry69: 16 aider/resources/__init__.py: Paul Gauthier: 3 aider/sendchat.py: @@ -2841,22 +2847,22 @@ aider/website/docs/leaderboards/index.md: Paul Gauthier: 1 tests/basic/test_editblock.py: - Paul Gauthier: 15 + Paul Gauthier: 23 tests/basic/test_main.py: Paul Gauthier: 1 tests/help/test_help.py: Paul Gauthier: 4 - Paul Gauthier (aider): 45 + Paul Gauthier (aider): 46 grand_total: Jonathan Ellis: 10 - Paul Gauthier: 77 - Paul Gauthier (aider): 139 + Paul Gauthier: 94 + Paul Gauthier (aider): 140 Sven Grunewaldt: 10 - fry69: 7 + fry69: 18 start_tag: v0.59.0 - total_lines: 243 -- aider_percentage: 67.04 - aider_total: 781 + total_lines: 272 +- aider_percentage: 65.31 + aider_total: 804 end_date: '2024-11-01' end_tag: v0.61.0 file_counts: @@ -2866,31 +2872,31 @@ Paul Gauthier: 75 Paul Gauthier (aider): 89 aider/args.py: - Paul Gauthier: 9 - Paul Gauthier (aider): 21 + Paul Gauthier: 6 + Paul Gauthier (aider): 28 aider/coders/base_coder.py: - Paul Gauthier: 55 + Paul Gauthier: 56 Paul Gauthier (aider): 43 aider/coders/editblock_coder.py: Paul Gauthier: 14 aider/commands.py: - Paul Gauthier: 12 - Paul Gauthier (aider): 88 + Paul Gauthier: 14 + Paul Gauthier (aider): 86 aider/io.py: Paul Gauthier: 12 Paul Gauthier (aider): 32 aider/linter.py: Paul Gauthier: 6 aider/main.py: - Paul Gauthier: 46 - Paul Gauthier (aider): 12 + Paul Gauthier: 48 + Paul Gauthier (aider): 10 aider/models.py: - Paul Gauthier: 22 - Paul Gauthier (aider): 54 + Paul Gauthier: 40 + Paul Gauthier (aider): 63 kAIto47802: 4 aider/repomap.py: - Paul Gauthier: 8 - Paul Gauthier (aider): 54 + Paul Gauthier: 12 + Paul Gauthier (aider): 52 aider/sendchat.py: Paul Gauthier: 23 Paul Gauthier (aider): 23 @@ -2909,11 +2915,12 @@ Paul Gauthier: 1 Paul Gauthier (aider): 99 tests/basic/test_commands.py: - Konstantin L: 10 - Paul Gauthier: 80 - Paul Gauthier (aider): 197 + Konstantin L: 16 + Paul Gauthier: 91 + Paul Gauthier (aider): 212 tests/basic/test_io.py: - Paul Gauthier (aider): 6 + Paul Gauthier: 2 + Paul Gauthier (aider): 4 tests/basic/test_main.py: Paul Gauthier (aider): 3 tests/basic/test_models.py: @@ -2924,38 +2931,38 @@ tests/basic/test_sendchat.py: Paul Gauthier (aider): 8 grand_total: - Konstantin L: 10 - Paul Gauthier: 370 - Paul Gauthier (aider): 781 + Konstantin L: 16 + Paul Gauthier: 407 + Paul Gauthier (aider): 804 kAIto47802: 4 start_tag: v0.60.0 - total_lines: 1165 -- aider_percentage: 77.78 - aider_total: 56 + total_lines: 1231 +- aider_percentage: 80.49 + aider_total: 66 end_date: '2024-11-04' end_tag: v0.62.0 file_counts: aider/__init__.py: Paul Gauthier: 1 aider/args.py: - Paul Gauthier (aider): 12 + Paul Gauthier (aider): 14 aider/coders/editblock_coder.py: Paul Gauthier: 6 aider/main.py: Paul Gauthier (aider): 4 aider/models.py: Paul Gauthier: 5 - Paul Gauthier (aider): 28 + Paul Gauthier (aider): 36 aider/website/docs/leaderboards/index.md: Paul Gauthier: 4 Paul Gauthier (aider): 12 grand_total: Paul Gauthier: 16 - Paul Gauthier (aider): 56 + Paul Gauthier (aider): 66 start_tag: v0.61.0 - total_lines: 72 -- aider_percentage: 55.21 - aider_total: 350 + total_lines: 82 +- aider_percentage: 54.99 + aider_total: 369 end_date: '2024-11-13' end_tag: v0.63.0 file_counts: @@ -2980,13 +2987,13 @@ Paul Gauthier: 9 Paul Gauthier (aider): 9 aider/models.py: - Logan Attwood: 13 - Paul Gauthier: 37 - Paul Gauthier (aider): 4 + Logan Attwood: 17 + Paul Gauthier: 50 + Paul Gauthier (aider): 7 aider/repo.py: Paul Gauthier: 7 aider/repomap.py: - Paul Gauthier: 3 + Paul Gauthier: 4 aider/sendchat.py: Paul Gauthier: 17 Paul Gauthier (aider): 4 @@ -2994,11 +3001,11 @@ Paul Gauthier: 1 scripts/issues.py: Paul Gauthier: 4 - Paul Gauthier (aider): 179 + Paul Gauthier (aider): 183 tests/basic/test_coder.py: Paul Gauthier: 2 tests/basic/test_commands.py: - Paul Gauthier (aider): 13 + Paul Gauthier (aider): 16 tests/basic/test_editblock.py: Paul Gauthier: 41 tests/basic/test_exceptions.py: @@ -3010,17 +3017,17 @@ Paul Gauthier (aider): 2 tests/basic/test_sendchat.py: Paul Gauthier: 8 - Paul Gauthier (aider): 46 + Paul Gauthier (aider): 55 tests/scrape/test_scrape.py: Paul Gauthier: 1 grand_total: - Logan Attwood: 13 - Paul Gauthier: 271 - Paul Gauthier (aider): 350 + Logan Attwood: 17 + Paul Gauthier: 285 + Paul Gauthier (aider): 369 start_tag: v0.62.0 - total_lines: 634 -- aider_percentage: 73.55 - aider_total: 865 + total_lines: 671 +- aider_percentage: 72.99 + aider_total: 873 end_date: '2024-11-21' end_tag: v0.64.0 file_counts: @@ -3031,7 +3038,7 @@ Paul Gauthier (aider): 21 aider/args.py: Paul Gauthier: 2 - Paul Gauthier (aider): 9 + Paul Gauthier (aider): 10 aider/coders/base_coder.py: Paul Gauthier: 15 Paul Gauthier (aider): 3 @@ -3041,8 +3048,8 @@ Paul Gauthier: 5 Paul Gauthier (aider): 19 aider/editor.py: - Chad Phillips: 135 - Paul Gauthier (aider): 11 + Chad Phillips: 133 + Paul Gauthier (aider): 13 aider/exceptions.py: Paul Gauthier: 5 aider/help_pats.py: @@ -3052,22 +3059,22 @@ Paul Gauthier (aider): 41 mw: 21 aider/main.py: - Paul Gauthier: 18 - Paul Gauthier (aider): 35 + Paul Gauthier: 21 + Paul Gauthier (aider): 37 aider/models.py: - Paul Gauthier: 31 - Paul Gauthier (aider): 34 + Paul Gauthier: 41 + Paul Gauthier (aider): 33 aider/repo.py: Paul Gauthier (aider): 5 aider/urls.py: Paul Gauthier: 1 aider/website/_includes/edit-leaderboard.js: - Paul Gauthier (aider): 96 + Paul Gauthier (aider): 97 aider/website/_includes/quant-chart.js: Paul Gauthier: 3 - Paul Gauthier (aider): 65 + Paul Gauthier (aider): 66 aider/website/_includes/refactor-leaderboard.js: - Paul Gauthier (aider): 89 + Paul Gauthier (aider): 90 aider/website/docs/leaderboards/index.md: Paul Gauthier: 1 Paul Gauthier (aider): 10 @@ -3075,7 +3082,7 @@ Paul Gauthier (aider): 29 benchmark/over_time.py: Paul Gauthier: 11 - Paul Gauthier (aider): 162 + Paul Gauthier (aider): 159 scripts/blame.py: Paul Gauthier: 1 Paul Gauthier (aider): 2 @@ -3083,7 +3090,7 @@ Paul Gauthier: 5 Paul Gauthier (aider): 12 scripts/versionbump.py: - Paul Gauthier: 5 + Paul Gauthier: 7 tests/basic/test_analytics.py: Paul Gauthier: 12 Paul Gauthier (aider): 30 @@ -3092,20 +3099,20 @@ tests/basic/test_editor.py: Paul Gauthier (aider): 129 tests/basic/test_main.py: - Paul Gauthier (aider): 5 + Paul Gauthier (aider): 8 tests/basic/test_models.py: - Paul Gauthier: 4 - Paul Gauthier (aider): 54 + Paul Gauthier: 3 + Paul Gauthier (aider): 55 grand_total: - Chad Phillips: 148 - Paul Gauthier: 141 - Paul Gauthier (aider): 865 + Chad Phillips: 146 + Paul Gauthier: 155 + Paul Gauthier (aider): 873 caetanominuzzo: 1 mw: 21 start_tag: v0.63.0 - total_lines: 1176 -- aider_percentage: 81.19 - aider_total: 544 + total_lines: 1196 +- aider_percentage: 81.11 + aider_total: 584 end_date: '2024-11-26' end_tag: v0.65.0 file_counts: @@ -3115,7 +3122,7 @@ Paul Gauthier: 2 Paul Gauthier (aider): 5 aider/args.py: - Paul Gauthier (aider): 10 + Paul Gauthier (aider): 12 aider/coders/base_coder.py: Paul Gauthier: 1 Paul Gauthier (aider): 31 @@ -3125,13 +3132,13 @@ Paul Gauthier: 3 Paul Gauthier (aider): 9 aider/main.py: - Paul Gauthier: 13 + Paul Gauthier: 15 Paul Gauthier (aider): 19 aider/models.py: Paul Gauthier: 9 Paul Gauthier (aider): 17 aider/queries/tree-sitter-dart-tags.scm: - malkoG: 83 + malkoG: 91 aider/urls.py: Paul Gauthier (aider): 1 aider/website/_includes/quant-chart.js: @@ -3151,24 +3158,24 @@ Paul Gauthier: 8 Paul Gauthier (aider): 64 tests/basic/test_coder.py: - Paul Gauthier (aider): 70 + Paul Gauthier (aider): 81 tests/basic/test_editor.py: - Paul Gauthier (aider): 12 + Paul Gauthier (aider): 16 tests/basic/test_main.py: Paul Gauthier: 1 - Paul Gauthier (aider): 19 + Paul Gauthier (aider): 42 tests/basic/test_models.py: Paul Gauthier (aider): 30 tests/basic/test_repomap.py: Paul Gauthier (aider): 13 grand_total: - Paul Gauthier: 43 - Paul Gauthier (aider): 544 - malkoG: 83 + Paul Gauthier: 45 + Paul Gauthier (aider): 584 + malkoG: 91 start_tag: v0.64.0 - total_lines: 670 -- aider_percentage: 86.17 - aider_total: 841 + total_lines: 720 +- aider_percentage: 86.35 + aider_total: 854 end_date: '2024-12-01' end_tag: v0.66.0 file_counts: @@ -3195,7 +3202,7 @@ Philippe de Reynal: 6 aider/coders/base_coder.py: Paul Gauthier: 15 - Paul Gauthier (aider): 39 + Paul Gauthier (aider): 41 aider/commands.py: Paul Gauthier: 5 Paul Gauthier (aider): 27 @@ -3223,12 +3230,12 @@ scripts/issues.py: Paul Gauthier: 3 scripts/update-history.py: - Paul Gauthier (aider): 58 + Paul Gauthier (aider): 59 tests/basic/test_coder.py: Paul Gauthier: 4 tests/basic/test_commands.py: - Paul Gauthier: 10 - Paul Gauthier (aider): 64 + Paul Gauthier: 12 + Paul Gauthier (aider): 72 tests/basic/test_main.py: Paul Gauthier (aider): 4 tests/basic/test_models.py: @@ -3263,8 +3270,7 @@ Paul Gauthier: 1 Paul Gauthier (aider): 25 tests/fixtures/languages/ocaml/test.ml: - Paul Gauthier: 2 - Paul Gauthier (aider): 17 + Paul Gauthier (aider): 19 tests/fixtures/languages/php/test.php: Paul Gauthier (aider): 5 tests/fixtures/languages/python/test.py: @@ -3282,12 +3288,12 @@ Paul Gauthier (aider): 3 grand_total: Paul Gauthier: 105 - Paul Gauthier (aider): 841 + Paul Gauthier (aider): 854 Philippe de Reynal: 30 start_tag: v0.65.0 - total_lines: 976 -- aider_percentage: 67.86 - aider_total: 437 + total_lines: 989 +- aider_percentage: 64.41 + aider_total: 429 end_date: '2024-12-06' end_tag: v0.67.0 file_counts: @@ -3300,14 +3306,14 @@ Paul Gauthier (aider): 7 aider/args.py: Paul Gauthier: 3 - Paul Gauthier (aider): 4 + Paul Gauthier (aider): 5 aider/coders/base_coder.py: Paul Gauthier: 15 aider/commands.py: Paul Gauthier: 11 aider/io.py: Paul Gauthier: 28 - Paul Gauthier (aider): 31 + Paul Gauthier (aider): 32 aider/llm.py: Paul Gauthier: 5 aider/main.py: @@ -3321,10 +3327,10 @@ Paul Gauthier: 7 Paul Gauthier (aider): 22 aider/watch.py: - Paul Gauthier: 51 - Paul Gauthier (aider): 221 + Paul Gauthier: 52 + Paul Gauthier (aider): 211 aider/website/_includes/qwq-chart.js: - Paul Gauthier: 30 + Paul Gauthier: 55 Paul Gauthier (aider): 47 aider/website/docs/leaderboards/index.md: Paul Gauthier: 1 @@ -3340,7 +3346,7 @@ tests/basic/test_main.py: Paul Gauthier: 1 tests/basic/test_models.py: - Paul Gauthier: 4 + Paul Gauthier: 8 Paul Gauthier (aider): 7 tests/basic/test_watch.py: Paul Gauthier: 10 @@ -3349,12 +3355,12 @@ Paul Gauthier: 2 Paul Gauthier (aider): 1 grand_total: - Paul Gauthier: 207 - Paul Gauthier (aider): 437 + Paul Gauthier: 237 + Paul Gauthier (aider): 429 start_tag: v0.66.0 - total_lines: 644 -- aider_percentage: 71.57 - aider_total: 428 + total_lines: 666 +- aider_percentage: 65.11 + aider_total: 418 end_date: '2024-12-10' end_tag: v0.68.0 file_counts: @@ -3365,21 +3371,21 @@ aider/analytics.py: Paul Gauthier: 2 aider/args.py: - Paul Gauthier: 30 - Paul Gauthier (aider): 15 + Paul Gauthier: 62 + Paul Gauthier (aider): 7 aider/coders/base_coder.py: Paul Gauthier: 12 - Paul Gauthier (aider): 10 + Paul Gauthier (aider): 12 aider/coders/editor_editblock_coder.py: Paul Gauthier: 1 aider/coders/editor_whole_coder.py: Paul Gauthier: 1 aider/commands.py: - Paul Gauthier: 24 - Paul Gauthier (aider): 25 + Paul Gauthier: 28 + Paul Gauthier (aider): 21 aider/copypaste.py: - Paul Gauthier: 4 - Paul Gauthier (aider): 68 + Paul Gauthier: 5 + Paul Gauthier (aider): 60 aider/exceptions.py: Paul Gauthier: 9 aider/history.py: @@ -3387,8 +3393,8 @@ aider/io.py: Paul Gauthier: 13 aider/main.py: - Paul Gauthier: 17 - Paul Gauthier (aider): 29 + Paul Gauthier: 34 + Paul Gauthier (aider): 26 aider/models.py: Paul Gauthier: 15 aider/repo.py: @@ -3419,11 +3425,11 @@ scripts/pip-compile.sh: Paul Gauthier: 2 tests/basic/test_commands.py: - Paul Gauthier (aider): 24 + Paul Gauthier (aider): 28 tests/basic/test_history.py: Paul Gauthier (aider): 3 tests/basic/test_main.py: - Paul Gauthier (aider): 46 + Paul Gauthier (aider): 53 tests/basic/test_repo.py: Paul Gauthier (aider): 3 tests/basic/test_sendchat.py: @@ -3432,12 +3438,12 @@ tests/basic/test_watch.py: Paul Gauthier: 1 grand_total: - Paul Gauthier: 170 - Paul Gauthier (aider): 428 + Paul Gauthier: 224 + Paul Gauthier (aider): 418 start_tag: v0.67.0 - total_lines: 598 -- aider_percentage: 67.87 - aider_total: 207 + total_lines: 642 +- aider_percentage: 68.65 + aider_total: 219 end_date: '2024-12-13' end_tag: v0.69.0 file_counts: @@ -3448,7 +3454,7 @@ aider/analytics.py: Paul Gauthier: 2 aider/args.py: - Mir Adnan ALI: 3 + Mir Adnan ALI: 5 Paul Gauthier: 1 aider/coders/base_coder.py: JeongJuhyeon: 1 @@ -3476,7 +3482,7 @@ scripts/blame.py: Paul Gauthier (aider): 1 scripts/issues.py: - Paul Gauthier (aider): 58 + Paul Gauthier (aider): 70 scripts/update-history.py: Paul Gauthier: 3 tests/basic/test_io.py: @@ -3486,13 +3492,13 @@ Paul Gauthier (aider): 68 grand_total: JeongJuhyeon: 1 - Mir Adnan ALI: 48 + Mir Adnan ALI: 50 Paul Gauthier: 49 - Paul Gauthier (aider): 207 + Paul Gauthier (aider): 219 start_tag: v0.68.0 - total_lines: 305 -- aider_percentage: 74.22 - aider_total: 875 + total_lines: 319 +- aider_percentage: 73.19 + aider_total: 871 end_date: '2024-12-26' end_tag: v0.70.0 file_counts: @@ -3500,13 +3506,13 @@ Paul Gauthier: 1 aider/analytics.py: Paul Gauthier: 6 - Paul Gauthier (aider): 41 + Paul Gauthier (aider): 42 aider/args.py: Evan Johnson: 2 aider/coders/search_replace.py: Paul Gauthier: 5 aider/commands.py: - Paul Gauthier (aider): 41 + Paul Gauthier (aider): 36 aider/help_pats.py: Paul Gauthier: 3 aider/io.py: @@ -3518,7 +3524,7 @@ apaz-cli: 3 mdk: 6 aider/models.py: - Paul Gauthier: 29 + Paul Gauthier: 38 aider/repo.py: Paul Gauthier: 14 aider/utils.py: @@ -3536,8 +3542,8 @@ Paul Gauthier: 8 Paul Gauthier (aider): 43 benchmark/benchmark.py: - Paul Gauthier: 69 - Paul Gauthier (aider): 153 + Paul Gauthier: 70 + Paul Gauthier (aider): 152 benchmark/clone-exercism.sh: Paul Gauthier: 2 Paul Gauthier (aider): 18 @@ -3552,8 +3558,8 @@ Paul Gauthier: 10 Paul Gauthier (aider): 3 benchmark/problem_stats.py: - Paul Gauthier: 35 - Paul Gauthier (aider): 318 + Paul Gauthier: 34 + Paul Gauthier (aider): 319 benchmark/rsync.sh: Paul Gauthier: 7 Paul Gauthier (aider): 26 @@ -3570,17 +3576,17 @@ tests/basic/test_main.py: Paul Gauthier (aider): 7 tests/basic/test_sanity_check_repo.py: - mdk: 28 + mdk: 34 grand_total: Evan Johnson: 2 - Paul Gauthier: 265 - Paul Gauthier (aider): 875 + Paul Gauthier: 274 + Paul Gauthier (aider): 871 apaz-cli: 3 - mdk: 34 + mdk: 40 start_tag: v0.69.0 - total_lines: 1179 -- aider_percentage: 60.36 - aider_total: 236 + total_lines: 1190 +- aider_percentage: 60.61 + aider_total: 237 end_date: '2025-01-10' end_tag: v0.71.0 file_counts: @@ -3598,7 +3604,7 @@ Paul Gauthier: 3 Paul Gauthier (aider): 16 aider/linter.py: - Aaron Weisberg: 5 + Aaron Weisberg: 6 aider/main.py: Paul Gauthier: 7 Paul Gauthier (aider): 13 @@ -3634,32 +3640,30 @@ Paul Gauthier (aider): 32 scripts/update-history.py: Paul Gauthier (aider): 1 - tests/basic/test_commands.py: - Paul Gauthier: 2 tests/basic/test_io.py: - Paul Gauthier (aider): 6 + Paul Gauthier (aider): 7 tests/basic/test_linter.py: Aaron Weisberg: 2 tests/basic/test_models.py: Paul Gauthier (aider): 25 grand_total: - Aaron Weisberg: 9 + Aaron Weisberg: 10 Josh Vera: 1 Krazer: 10 Nimesh Ghelani: 1 - Paul Gauthier: 104 - Paul Gauthier (aider): 236 + Paul Gauthier: 102 + Paul Gauthier (aider): 237 Paul Maunders: 12 apaz-cli: 18 start_tag: v0.70.0 total_lines: 391 -- aider_percentage: 48.76 - aider_total: 138 +- aider_percentage: 48.35 + aider_total: 161 end_date: '2025-01-20' end_tag: v0.72.0 file_counts: .github/workflows/docker-build-test.yml: - Paul Gauthier (aider): 38 + Paul Gauthier (aider): 58 .github/workflows/pages.yml: Paul Gauthier: 3 Paul Gauthier (aider): 1 @@ -3673,6 +3677,7 @@ Titusz Pan: 6 aider/coders/base_coder.py: Paul Gauthier: 11 + Paul Gauthier (aider): 2 aider/coders/single_wholefile_func_coder.py: Paul Gauthier: 1 aider/coders/wholefile_func_coder.py: @@ -3683,11 +3688,11 @@ Paul Gauthier: 7 aider/io.py: Paul Gauthier (aider): 14 - Titusz Pan: 2 + Titusz Pan: 6 aider/main.py: Titusz Pan: 1 aider/models.py: - Paul Gauthier: 16 + Paul Gauthier: 39 aider/queries/tree-sitter-kotlin-tags.scm: Paul Walker: 27 aider/repomap.py: @@ -3711,31 +3716,30 @@ scripts/update-docs.sh: Paul Gauthier: 2 tests/basic/test_io.py: - Paul Gauthier (aider): 39 + Paul Gauthier (aider): 40 tests/basic/test_repomap.py: Paul Walker: 1 tests/fixtures/languages/kotlin/test.kt: Paul Walker: 16 grand_total: - Paul Gauthier: 92 - Paul Gauthier (aider): 138 + Paul Gauthier: 115 + Paul Gauthier (aider): 161 Paul Walker: 44 - Titusz Pan: 9 + Titusz Pan: 13 start_tag: v0.71.0 - total_lines: 283 -- aider_percentage: 37.47 - aider_total: 284 + total_lines: 333 +- aider_percentage: 33.7 + aider_total: 307 end_date: '2025-01-31' end_tag: v0.73.0 file_counts: aider/__init__.py: Paul Gauthier: 1 aider/args.py: - Paul Gauthier: 3 - Paul Gauthier (aider): 2 + Paul Gauthier: 5 aider/coders/base_coder.py: - Paul Gauthier: 37 - Paul Gauthier (aider): 26 + Paul Gauthier: 38 + Paul Gauthier (aider): 29 aider/commands.py: xqyz: 1 aider/io.py: @@ -3745,14 +3749,14 @@ Paul Gauthier (aider): 15 aider/models.py: Paul Gauthier: 8 - Paul Gauthier (aider): 33 + Paul Gauthier (aider): 34 aider/resources/model-settings.yml: - Paul Gauthier: 334 - kennyfrc: 11 - xqyz: 4 + Paul Gauthier: 442 + kennyfrc: 17 + xqyz: 12 aider/sendchat.py: - Mir Adnan ALI: 28 - Paul Gauthier: 11 + Mir Adnan ALI: 26 + Paul Gauthier: 13 Paul Gauthier (aider): 6 aider/urls.py: Paul Gauthier: 1 @@ -3766,22 +3770,22 @@ benchmark/rsync.sh: Paul Gauthier: 2 tests/basic/test_coder.py: - Paul Gauthier: 10 - Paul Gauthier (aider): 39 + Paul Gauthier: 15 + Paul Gauthier (aider): 53 tests/basic/test_main.py: - Paul Gauthier (aider): 62 + Paul Gauthier (aider): 69 tests/basic/test_sendchat.py: Paul Gauthier (aider): 77 grand_total: - Mir Adnan ALI: 28 - Paul Gauthier: 430 - Paul Gauthier (aider): 284 - kennyfrc: 11 - xqyz: 5 + Mir Adnan ALI: 26 + Paul Gauthier: 548 + Paul Gauthier (aider): 307 + kennyfrc: 17 + xqyz: 13 start_tag: v0.72.0 - total_lines: 758 -- aider_percentage: 76.07 - aider_total: 604 + total_lines: 911 +- aider_percentage: 72.82 + aider_total: 635 end_date: '2025-02-06' end_tag: v0.74.0 file_counts: @@ -3799,27 +3803,27 @@ aider/commands.py: Paul Gauthier: 1 aider/exceptions.py: - Paul Gauthier: 4 - Paul Gauthier (aider): 6 + Paul Gauthier: 3 + Paul Gauthier (aider): 7 aider/history.py: Paul Gauthier (aider): 1 aider/io.py: Paul Gauthier: 4 - Paul Gauthier (aider): 18 + Paul Gauthier (aider): 20 aider/llm.py: Paul Gauthier: 3 aider/main.py: Paul Gauthier: 21 Paul Gauthier (aider): 25 aider/models.py: - Paul Gauthier: 83 + Paul Gauthier: 104 Paul Gauthier (aider): 77 aider/repo.py: Paul Gauthier: 1 Paul Gauthier (aider): 2 "Viktor Sz\xE9pe": 3 aider/resources/model-settings.yml: - Paul Gauthier: 11 + Paul Gauthier: 24 aider/watch.py: Paul Gauthier (aider): 45 benchmark/docker.sh: @@ -3828,31 +3832,31 @@ Paul Gauthier: 5 Paul Gauthier (aider): 4 tests/basic/test_editblock.py: - Paul Gauthier: 7 + Paul Gauthier: 21 tests/basic/test_history.py: Paul Gauthier (aider): 13 tests/basic/test_io.py: - Paul Gauthier (aider): 46 + Paul Gauthier (aider): 68 tests/basic/test_main.py: Paul Gauthier: 8 Paul Gauthier (aider): 1 tests/basic/test_models.py: - Paul Gauthier (aider): 297 + Paul Gauthier (aider): 298 tests/basic/test_repo.py: Paul Gauthier (aider): 11 tests/basic/test_sendchat.py: Paul Gauthier (aider): 7 tests/basic/test_watch.py: Paul Gauthier: 4 - Paul Gauthier (aider): 42 + Paul Gauthier (aider): 47 grand_total: - Paul Gauthier: 187 - Paul Gauthier (aider): 604 + Paul Gauthier: 234 + Paul Gauthier (aider): 635 "Viktor Sz\xE9pe": 3 start_tag: v0.73.0 - total_lines: 794 -- aider_percentage: 44.78 - aider_total: 163 + total_lines: 872 +- aider_percentage: 43.8 + aider_total: 166 end_date: '2025-02-24' end_tag: v0.75.0 file_counts: @@ -3874,7 +3878,7 @@ aider/linter.py: Paul Gauthier: 1 aider/main.py: - Paul Gauthier: 16 + Paul Gauthier: 20 aider/models.py: Paul Gauthier: 4 aider/queries/tree-sitter-language-pack/javascript-tags.scm: @@ -3888,7 +3892,7 @@ Paul Gauthier: 43 Paul Gauthier (aider): 11 aider/resources/model-settings.yml: - Paul Gauthier: 12 + Paul Gauthier: 20 aider/special.py: Lucas Shadler: 1 aider/website/docs/leaderboards/index.md: @@ -3902,9 +3906,9 @@ scripts/blame.py: Paul Gauthier (aider): 2 scripts/issues.py: - Paul Gauthier (aider): 17 + Paul Gauthier (aider): 19 tests/basic/test_coder.py: - Paul Gauthier (aider): 18 + Paul Gauthier (aider): 19 tests/basic/test_editor.py: Antti Kaihola: 1 Paul Gauthier (aider): 41 @@ -3918,40 +3922,40 @@ Antti Kaihola: 1 FeepingCreature (aider): 6 Lucas Shadler: 1 - Paul Gauthier: 125 - Paul Gauthier (aider): 157 + Paul Gauthier: 137 + Paul Gauthier (aider): 160 Warren Krewenki: 74 start_tag: v0.74.0 - total_lines: 364 -- aider_percentage: 84.75 - aider_total: 1589 + total_lines: 379 +- aider_percentage: 82.52 + aider_total: 1667 end_date: '2025-03-10' end_tag: v0.76.0 file_counts: aider/__init__.py: Paul Gauthier: 1 aider/args.py: - Paul Gauthier: 2 + Paul Gauthier: 5 Paul Gauthier (aider): 25 aider/args_formatter.py: Paul Gauthier: 4 Paul Gauthier (aider): 3 aider/coders/base_coder.py: - Paul Gauthier: 54 - Paul Gauthier (aider): 29 + Paul Gauthier: 57 + Paul Gauthier (aider): 30 aider/deprecated.py: - Paul Gauthier (aider): 107 + Paul Gauthier (aider): 125 aider/io.py: Paul Gauthier: 7 - Paul Gauthier (aider): 127 + Paul Gauthier (aider): 130 aider/main.py: Akira Komamura: 2 Mattias: 1 Paul Gauthier: 4 Paul Gauthier (aider): 16 aider/models.py: - Paul Gauthier: 6 - Paul Gauthier (aider): 68 + Paul Gauthier: 11 + Paul Gauthier (aider): 72 aider/queries/tree-sitter-language-pack/csharp-tags.scm: Paul Gauthier: 14 Paul Gauthier (aider): 12 @@ -3960,13 +3964,13 @@ Paul Gauthier (aider): 68 aider/repo.py: Akira Komamura: 1 - Paul Gauthier (aider): 4 + Paul Gauthier (aider): 5 aider/repomap.py: Paul Gauthier: 9 aider/resources/model-settings.yml: - Paul Gauthier: 61 - Paul Gauthier (aider): 32 - gmoz22: 4 + Paul Gauthier: 105 + Paul Gauthier (aider): 51 + gmoz22: 12 aider/website/_includes/leaderboard.js: Paul Gauthier (aider): 48 aider/website/docs/leaderboards/index.md: @@ -3980,7 +3984,7 @@ scripts/blame.py: Paul Gauthier: 1 scripts/pip-compile.sh: - Claudia Pellegrino: 10 + Claudia Pellegrino: 12 Paul Gauthier: 6 Paul Gauthier (aider): 11 scripts/update-history.py: @@ -3990,49 +3994,49 @@ Paul Gauthier (aider): 64 tests/basic/test_deprecated.py: Paul Gauthier: 10 - Paul Gauthier (aider): 130 + Paul Gauthier (aider): 125 tests/basic/test_io.py: Paul Gauthier (aider): 54 tests/basic/test_main.py: - Paul Gauthier: 1 - Paul Gauthier (aider): 93 + Paul Gauthier: 2 + Paul Gauthier (aider): 97 tests/basic/test_model_info_manager.py: - Paul Gauthier (aider): 72 + Paul Gauthier (aider): 80 tests/basic/test_models.py: - Paul Gauthier: 27 - Paul Gauthier (aider): 34 + Paul Gauthier: 31 + Paul Gauthier (aider): 38 tests/basic/test_reasoning.py: - Paul Gauthier: 36 - Paul Gauthier (aider): 525 + Paul Gauthier: 33 + Paul Gauthier (aider): 534 tests/basic/test_repomap.py: Paul Gauthier: 2 tests/basic/test_ssl_verification.py: - Paul Gauthier (aider): 65 + Paul Gauthier (aider): 77 grand_total: Akira Komamura: 3 - Claudia Pellegrino: 10 + Claudia Pellegrino: 12 Mattias: 1 - Paul Gauthier: 268 - Paul Gauthier (aider): 1589 - gmoz22: 4 + Paul Gauthier: 325 + Paul Gauthier (aider): 1667 + gmoz22: 12 start_tag: v0.75.0 - total_lines: 1875 -- aider_percentage: 71.93 - aider_total: 1399 + total_lines: 2020 +- aider_percentage: 68.94 + aider_total: 1447 end_date: '2025-03-13' end_tag: v0.77.0 file_counts: aider/__init__.py: Paul Gauthier: 1 aider/args.py: - Paul Gauthier (aider): 5 + Paul Gauthier (aider): 7 aider/coders/architect_coder.py: Paul Gauthier (aider): 2 aider/coders/base_coder.py: Paul Gauthier (aider): 14 aider/commands.py: Paul Gauthier: 4 - Paul Gauthier (aider): 71 + Paul Gauthier (aider): 73 aider/deprecated.py: Paul Gauthier: 2 aider/io.py: @@ -4060,25 +4064,25 @@ Paul Gauthier: 9 Paul Gauthier (aider): 17 aider/queries/tree-sitter-language-pack/dart-tags.scm: - Paul Gauthier: 42 + Paul Gauthier: 65 Paul Gauthier (aider): 19 aider/queries/tree-sitter-language-pack/elisp-tags.scm: - Paul Gauthier: 1 + Paul Gauthier: 3 Paul Gauthier (aider): 2 aider/queries/tree-sitter-language-pack/elixir-tags.scm: - Paul Gauthier: 10 + Paul Gauthier: 35 Paul Gauthier (aider): 8 aider/queries/tree-sitter-language-pack/elm-tags.scm: Paul Gauthier: 8 - Paul Gauthier (aider): 11 + Paul Gauthier (aider): 6 aider/queries/tree-sitter-language-pack/gleam-tags.scm: Paul Gauthier: 26 Paul Gauthier (aider): 15 aider/queries/tree-sitter-language-pack/go-tags.scm: - Paul Gauthier: 14 - Paul Gauthier (aider): 14 + Paul Gauthier: 28 + Paul Gauthier (aider): 10 aider/queries/tree-sitter-language-pack/java-tags.scm: - Paul Gauthier: 10 + Paul Gauthier: 13 Paul Gauthier (aider): 7 aider/queries/tree-sitter-language-pack/lua-tags.scm: Paul Gauthier: 25 @@ -4099,10 +4103,10 @@ Paul Gauthier: 10 Paul Gauthier (aider): 2 aider/queries/tree-sitter-language-pack/ruby-tags.scm: - Paul Gauthier: 23 + Paul Gauthier: 52 Paul Gauthier (aider): 12 aider/queries/tree-sitter-language-pack/rust-tags.scm: - Paul Gauthier: 41 + Paul Gauthier: 46 Paul Gauthier (aider): 14 aider/queries/tree-sitter-language-pack/solidity-tags.scm: Paul Gauthier: 30 @@ -4114,7 +4118,7 @@ Paul Gauthier: 15 Paul Gauthier (aider): 5 aider/resources/model-settings.yml: - Paul Gauthier: 9 + Paul Gauthier: 12 aider/watch.py: Yutaka Matsubara: 4 aider/website/docs/leaderboards/index.md: @@ -4126,21 +4130,23 @@ scripts/tsl_pack_langs.py: Paul Gauthier (aider): 145 scripts/versionbump.py: + Paul Gauthier: 1 Paul Gauthier (aider): 1 tests/basic/test_coder.py: - Paul Gauthier (aider): 104 + Paul Gauthier: 1 + Paul Gauthier (aider): 109 tests/basic/test_commands.py: Paul Gauthier: 2 - Paul Gauthier (aider): 190 + Paul Gauthier (aider): 222 tests/basic/test_models.py: - Paul Gauthier (aider): 44 + Paul Gauthier (aider): 45 tests/basic/test_repomap.py: Paul Gauthier: 1 - Paul Gauthier (aider): 125 + Paul Gauthier (aider): 132 tests/fixtures/languages/arduino/test.ino: Paul Gauthier (aider): 21 tests/fixtures/languages/c/test.c: - Paul Gauthier (aider): 12 + Paul Gauthier (aider): 15 tests/fixtures/languages/chatito/test.chatito: Paul Gauthier (aider): 20 tests/fixtures/languages/commonlisp/test.lisp: @@ -4150,7 +4156,7 @@ tests/fixtures/languages/dart/test.dart: Paul Gauthier (aider): 21 tests/fixtures/languages/elm/test.elm: - Paul Gauthier (aider): 16 + Paul Gauthier (aider): 21 tests/fixtures/languages/gleam/test.gleam: Paul Gauthier (aider): 10 tests/fixtures/languages/lua/test.lua: @@ -4170,11 +4176,11 @@ tests/fixtures/languages/udev/test.rules: Paul Gauthier (aider): 22 grand_total: - Paul Gauthier: 542 - Paul Gauthier (aider): 1399 + Paul Gauthier: 648 + Paul Gauthier (aider): 1447 Yutaka Matsubara: 4 start_tag: v0.76.0 - total_lines: 1945 + total_lines: 2099 - aider_percentage: 91.82 aider_total: 2682 end_date: '2025-03-21' @@ -4500,3 +4506,391 @@ Paul Gauthier (aider): 1567 start_tag: v0.81.0 total_lines: 1706 +- aider_percentage: 66.89 + aider_total: 1735 + end_date: '2025-05-09' + end_tag: v0.83.0 + file_counts: + .github/workflows/check_pypi_version.yml: + Paul Gauthier (aider): 1 + .github/workflows/pre-commit.yml: + MDW: 48 + .github/workflows/ubuntu-tests.yml: + Paul Gauthier (aider): 1 + .github/workflows/windows-tests.yml: + Paul Gauthier (aider): 1 + .github/workflows/windows_check_pypi_version.yml: + Paul Gauthier (aider): 1 + aider/__init__.py: + Paul Gauthier: 1 + aider/args.py: + Andrew Grigorev: 5 + Andrew Grigorev (aider): 21 + Paul Gauthier (aider): 38 + aider/coders/__init__.py: + Paul Gauthier (aider): 2 + aider/coders/base_coder.py: + Andrew Grigorev (aider): 2 + Paul Gauthier: 60 + Paul Gauthier (aider): 104 + aider/coders/editblock_coder.py: + Paul Gauthier: 10 + Paul Gauthier (aider): 7 + zjy1412: 2 + aider/coders/editblock_fenced_coder.py: + MDW: 1 + aider/coders/help_coder.py: + MDW: 1 + aider/coders/patch_coder.py: + Paul Gauthier (aider): 38 + aider/coders/shell.py: + Paul Gauthier: 37 + aider/coders/udiff_coder.py: + Paul Gauthier: 2 + Paul Gauthier (aider): 9 + aider/coders/udiff_simple.py: + Paul Gauthier (aider): 14 + aider/commands.py: + Andrew Grigorev (aider): 10 + Paul Gauthier: 7 + Paul Gauthier (aider): 1 + aider/gui.py: + Jon Keys: 2 + aider/io.py: + Kay Gosho: 1 + Paul Gauthier (aider): 5 + aider/linter.py: + Paul Gauthier: 1 + Titusz Pan: 1 + aider/main.py: + Paul Gauthier (aider): 9 + aider/mdstream.py: + Paul Gauthier (aider): 11 + aider/models.py: + Paul Gauthier: 4 + Paul Gauthier (aider): 66 + Stefan Hladnik: 4 + Stefan Hladnik (aider): 41 + aider/queries/tree-sitter-language-pack/ocaml_interface-tags.scm: + Andrey Popp: 98 + aider/queries/tree-sitter-languages/ocaml_interface-tags.scm: + Andrey Popp: 98 + aider/repo.py: + Andrew Grigorev (aider): 136 + Paul Gauthier: 6 + Paul Gauthier (aider): 33 + aider/repomap.py: + Paul Gauthier: 5 + Paul Gauthier (aider): 6 + aider/resources/model-settings.yml: + Paul Gauthier: 183 + Paul Gauthier (aider): 175 + cantalupo555: 1 + aider/scrape.py: + Jon Keys: 12 + aider/utils.py: + Paul Gauthier: 13 + Paul Gauthier (aider): 131 + Titusz Pan: 1 + aider/waiting.py: + Paul Gauthier: 1 + Paul Gauthier (aider): 54 + aider/watch.py: + Paul Gauthier: 6 + Paul Gauthier (aider): 7 + aider/website/_includes/leaderboard_table.js: + Paul Gauthier: 2 + Paul Gauthier (aider): 18 + aider/website/docs/leaderboards/index.md: + Paul Gauthier: 1 + Paul Gauthier (aider): 2 + aider/website/index.html: + Paul Gauthier: 13 + benchmark/benchmark.py: + Paul Gauthier: 3 + Paul Gauthier (aider): 42 + benchmark/docker.sh: + Paul Gauthier: 2 + benchmark/refactor_tools.py: + MDW: 1 + scripts/30k-image.py: + MDW: 1 + scripts/clean_metadata.py: + Paul Gauthier (aider): 258 + scripts/update-history.py: + Paul Gauthier: 2 + Paul Gauthier (aider): 7 + tests/basic/test_coder.py: + Paul Gauthier (aider): 3 + tests/basic/test_commands.py: + Paul Gauthier: 2 + Paul Gauthier (aider): 90 + tests/basic/test_editblock.py: + Paul Gauthier: 10 + zjy1412: 52 + tests/basic/test_io.py: + Paul Gauthier (aider): 132 + tests/basic/test_linter.py: + Paul Gauthier: 22 + Titusz Pan: 10 + tests/basic/test_repo.py: + Andrew Grigorev: 1 + Andrew Grigorev (aider): 139 + Paul Gauthier: 79 + Paul Gauthier (aider): 6 + tests/basic/test_repomap.py: + Andrey Popp: 7 + tests/basic/test_watch.py: + MDW: 1 + tests/fixtures/languages/ocaml_interface/test.mli: + Andrey Popp: 14 + tests/scrape/test_playwright_disable.py: + Andrew Grigorev (aider): 111 + Paul Gauthier: 25 + Paul Gauthier (aider): 3 + grand_total: + Andrew Grigorev: 6 + Andrew Grigorev (aider): 419 + Andrey Popp: 217 + Jon Keys: 14 + Kay Gosho: 1 + MDW: 53 + Paul Gauthier: 497 + Paul Gauthier (aider): 1275 + Stefan Hladnik: 4 + Stefan Hladnik (aider): 41 + Titusz Pan: 12 + cantalupo555: 1 + zjy1412: 54 + start_tag: v0.82.0 + total_lines: 2594 +- aider_percentage: 78.92 + aider_total: 655 + end_date: '2025-05-30' + end_tag: v0.84.0 + file_counts: + aider/__init__.py: + Paul Gauthier: 1 + aider/args.py: + Paul Gauthier (aider): 27 + saviour: 2 + aider/args_formatter.py: + Paul Gauthier: 1 + aider/coders/base_coder.py: + Paul Gauthier: 4 + Paul Gauthier (aider): 10 + aider/commands.py: + Paul Gauthier (aider): 23 + wangboxue: 1 + aider/models.py: + Lih Chen: 15 + Paul Gauthier: 16 + Paul Gauthier (aider): 12 + aider/onboarding.py: + Paul Gauthier: 2 + aider/openrouter.py: + Paul Gauthier (aider): 120 + aider/repo.py: + Paul Gauthier: 1 + Paul Gauthier (aider): 10 + aider/repomap.py: + Paul Gauthier (aider): 1 + aider/resources/model-settings.yml: + Paul Gauthier: 71 + Paul Gauthier (aider): 193 + Trung Dinh: 11 + aider/utils.py: + Paul Gauthier (aider): 1 + aider/waiting.py: + Paul Gauthier: 2 + Paul Gauthier (aider): 6 + aider/website/docs/leaderboards/index.md: + Paul Gauthier: 1 + aider/website/index.html: + Paul Gauthier: 43 + scripts/update-history.py: + Paul Gauthier: 2 + tests/basic/test_coder.py: + Paul Gauthier: 2 + Paul Gauthier (aider): 144 + tests/basic/test_main.py: + Paul Gauthier (aider): 28 + tests/basic/test_models.py: + Paul Gauthier (aider): 2 + tests/basic/test_onboarding.py: + Paul Gauthier (aider): 5 + tests/basic/test_openrouter.py: + Paul Gauthier (aider): 73 + grand_total: + Lih Chen: 15 + Paul Gauthier: 146 + Paul Gauthier (aider): 655 + Trung Dinh: 11 + saviour: 2 + wangboxue: 1 + start_tag: v0.83.0 + total_lines: 830 +- aider_percentage: 22.79 + aider_total: 139 + end_date: '2025-06-27' + end_tag: v0.85.0 + file_counts: + aider/__init__.py: + Paul Gauthier: 1 + aider/analytics.py: + Paul Gauthier: 5 + Vasil Markoukin (aider): 6 + aider/args.py: + Kyosuke Takayama: 6 + Paul Gauthier: 5 + Paul Gauthier (aider): 2 + Vasil Markoukin (aider): 9 + omarcinkonis: 6 + aider/coders/base_coder.py: + Kyosuke Takayama: 3 + omarcinkonis: 3 + aider/coders/editblock_coder.py: + Mathis Beer (aider): 1 + aider/coders/search_replace.py: + Emmanuel Ferdman: 1 + aider/commands.py: + Ali Ayas (claude-sonnet-4-20250514): 6 + Matteo Landi: 16 + Paul Gauthier: 4 + omarcinkonis: 5 + aider/history.py: + jayeshthk: 18 + aider/io.py: + Paul Gauthier: 1 + Paul Gauthier (aider): 14 + Vamsi Talupula: 5 + aider/main.py: + Kyosuke Takayama: 1 + Makar Ivashko: 1 + Paul Gauthier: 3 + Vasil Markoukin (aider): 5 + omarcinkonis: 1 + aider/models.py: + Ali Ayas (claude-sonnet-4-20250514): 11 + Nimesh Ghelani: 3 + Paul Gauthier: 1 + Sebastian Estrella: 11 + Vincent Taverna: 32 + aider/queries/tree-sitter-language-pack/clojure-tags.scm: + Garrett Hopper: 7 + aider/queries/tree-sitter-language-pack/matlab-tags.scm: + Matthew Tofano: 4 + aider/queries/tree-sitter-languages/matlab-tags.scm: + Matthew Tofano: 4 + aider/repo.py: + Kyosuke Takayama: 3 + Luke Reeves: 13 + Paul Gauthier: 2 + muravvv: 12 + aider/repomap.py: + Garrett Hopper: 2 + aider/resources/model-settings.yml: + Andrew Grigorev: 7 + Leon Mergen: 20 + Nimesh Ghelani: 15 + Paul Gauthier: 1 + Paul Gauthier (aider): 21 + Trung Dinh: 8 + Wietse Venema: 9 + therealmarv: 14 + aider/utils.py: + Paul Gauthier (aider): 7 + aider/website/docs/leaderboards/index.md: + Paul Gauthier: 1 + aider/website/index.html: + Paul Gauthier: 8 + Paul Gauthier (aider): 1 + benchmark/benchmark.py: + Paul Gauthier: 1 + tests/basic/test_commands.py: + Matteo Landi: 22 + tests/basic/test_history.py: + Paul Gauthier: 15 + tests/basic/test_main.py: + Kyosuke Takayama: 10 + Paul Gauthier: 3 + Paul Gauthier (aider): 64 + omarcinkonis: 41 + tests/basic/test_repo.py: + Luke Reeves: 31 + Paul Gauthier: 2 + muravvv: 22 + tests/basic/test_repomap.py: + Matthew Tofano: 3 + Paul Gauthier (aider): 3 + tests/fixtures/languages/clojure/test.clj: + Paul Gauthier (aider): 6 + tests/fixtures/languages/matlab/test.m: + Matthew Tofano: 42 + grand_total: + Ali Ayas (claude-sonnet-4-20250514): 17 + Andrew Grigorev: 7 + Emmanuel Ferdman: 1 + Garrett Hopper: 9 + Kyosuke Takayama: 23 + Leon Mergen: 20 + Luke Reeves: 44 + Makar Ivashko: 1 + Mathis Beer (aider): 1 + Matteo Landi: 38 + Matthew Tofano: 53 + Nimesh Ghelani: 18 + Paul Gauthier: 53 + Paul Gauthier (aider): 118 + Sebastian Estrella: 11 + Trung Dinh: 8 + Vamsi Talupula: 5 + Vasil Markoukin (aider): 20 + Vincent Taverna: 32 + Wietse Venema: 9 + jayeshthk: 18 + muravvv: 34 + omarcinkonis: 56 + therealmarv: 14 + start_tag: v0.84.0 + total_lines: 610 +- aider_percentage: 87.75 + aider_total: 222 + end_date: '2025-08-09' + end_tag: v0.86.0 + file_counts: + aider/__init__.py: + Paul Gauthier: 1 + aider/analytics.py: + Paul Gauthier (aider): 1 + aider/commands.py: + Paul Gauthier (aider): 7 + Zexin Yuan: 1 + aider/models.py: + Andrew Grigorev (aider): 3 + Paul Gauthier: 3 + Paul Gauthier (aider): 5 + aider/resources/model-settings.yml: + Jack Harrington: 7 + Paul Gauthier: 6 + Paul Gauthier (aider): 199 + Tamir Zahavi-Brunner: 7 + aider/website/_includes/leaderboard_table.js: + Paul Gauthier: 1 + aider/website/docs/leaderboards/index.md: + Paul Gauthier: 1 + aider/website/index.html: + Paul Gauthier: 3 + scripts/blame.py: + Paul Gauthier (aider): 7 + scripts/update-history.py: + Paul Gauthier: 1 + grand_total: + Andrew Grigorev (aider): 3 + Jack Harrington: 7 + Paul Gauthier: 16 + Paul Gauthier (aider): 219 + Tamir Zahavi-Brunner: 7 + Zexin Yuan: 1 + start_tag: v0.85.0 + total_lines: 253 diff --git a/aider/website/_data/polyglot_leaderboard.yml b/aider/website/_data/polyglot_leaderboard.yml index 92cac000a..1ddb905c4 100644 --- a/aider/website/_data/polyglot_leaderboard.yml +++ b/aider/website/_data/polyglot_leaderboard.yml @@ -1093,32 +1093,6 @@ seconds_per_case: 12.0 total_cost: 0.4281 -- dirname: 2025-04-16-21-20-55--o3-high-diff-temp0-exsys - test_cases: 225 - model: o3 (high) - edit_format: diff - commit_hash: 24805ff-dirty - pass_rate_1: 36.9 - pass_rate_2: 79.6 - pass_num_1: 83 - pass_num_2: 179 - percent_cases_well_formed: 95.1 - error_outputs: 11 - num_malformed_responses: 11 - num_with_malformed_responses: 11 - user_asks: 110 - lazy_comments: 0 - syntax_errors: 0 - indentation_errors: 0 - exhausted_context_windows: 0 - test_timeouts: 2 - total_tests: 225 - command: aider --model o3 - date: 2025-04-16 - versions: 0.82.1.dev - seconds_per_case: 113.8 - total_cost: 111.0325 - - dirname: 2025-04-16-22-01-58--o4-mini-high-diff-exsys test_cases: 225 model: o4-mini (high) @@ -1145,34 +1119,6 @@ seconds_per_case: 176.5 total_cost: 19.6399 -- dirname: 2025-04-17-01-20-35--o3-mini-high-diff-arch - test_cases: 225 - model: o3 (high) + gpt-4.1 - edit_format: architect - commit_hash: 80909e1-dirty - editor_model: gpt-4.1 - editor_edit_format: editor-diff - pass_rate_1: 36.0 - pass_rate_2: 82.7 - pass_num_1: 81 - pass_num_2: 186 - percent_cases_well_formed: 100.0 - error_outputs: 9 - num_malformed_responses: 0 - num_with_malformed_responses: 0 - user_asks: 166 - lazy_comments: 0 - syntax_errors: 0 - indentation_errors: 0 - exhausted_context_windows: 0 - test_timeouts: 0 - total_tests: 225 - command: aider --model o3 --architect - date: 2025-04-17 - versions: 0.82.2.dev - seconds_per_case: 110.0 - total_cost: 69.2921 - - dirname: 2025-04-19-14-43-04--o4-mini-patch test_cases: 225 model: openhands-lm-32b-v0.1 @@ -1279,30 +1225,632 @@ seconds_per_case: 372.2 total_cost: 0.7603 -- dirname: 2025-05-08-03-22-37--qwen3-235b-defaults +- dirname: 2025-05-09-17-02-02--qwen3-235b-a22b.unthink_16k_diff test_cases: 225 - model: Qwen3 235B A22B + model: Qwen3 235B A22B diff, no think, Alibaba API edit_format: diff - commit_hash: aaacee5-dirty - pass_rate_1: 17.3 - pass_rate_2: 49.8 - pass_num_1: 39 - pass_num_2: 112 + commit_hash: 91d7fbd-dirty + pass_rate_1: 28.9 + pass_rate_2: 59.6 + pass_num_1: 65 + pass_num_2: 134 + percent_cases_well_formed: 92.9 + error_outputs: 22 + num_malformed_responses: 22 + num_with_malformed_responses: 16 + user_asks: 111 + lazy_comments: 0 + syntax_errors: 0 + indentation_errors: 0 + exhausted_context_windows: 0 + prompt_tokens: 2816192 + completion_tokens: 342062 + test_timeouts: 1 + total_tests: 225 + command: aider --model openai/qwen3-235b-a22b + date: 2025-05-09 + versions: 0.82.4.dev + seconds_per_case: 45.4 + total_cost: 0.0000 + +- dirname: 2025-05-24-21-17-54--sonnet4-diff-exuser + test_cases: 225 + model: claude-sonnet-4-20250514 (no thinking) + edit_format: diff + commit_hash: ef3f8bb-dirty + pass_rate_1: 20.4 + pass_rate_2: 56.4 + pass_num_1: 46 + pass_num_2: 127 + percent_cases_well_formed: 98.2 + error_outputs: 6 + num_malformed_responses: 4 + num_with_malformed_responses: 4 + user_asks: 129 + lazy_comments: 0 + syntax_errors: 0 + indentation_errors: 0 + exhausted_context_windows: 1 + prompt_tokens: 3460663 + completion_tokens: 433373 + test_timeouts: 7 + total_tests: 225 + command: aider --model claude-sonnet-4-20250514 + date: 2025-05-24 + versions: 0.83.3.dev + seconds_per_case: 29.8 + total_cost: 15.8155 + +- dirname: 2025-05-24-22-10-36--sonnet4-diff-exuser-think32k + test_cases: 225 + model: claude-sonnet-4-20250514 (32k thinking) + edit_format: diff + commit_hash: e3cb907 + thinking_tokens: 32000 + pass_rate_1: 25.8 + pass_rate_2: 61.3 + pass_num_1: 58 + pass_num_2: 138 + percent_cases_well_formed: 97.3 + error_outputs: 10 + num_malformed_responses: 10 + num_with_malformed_responses: 6 + user_asks: 111 + lazy_comments: 0 + syntax_errors: 0 + indentation_errors: 0 + exhausted_context_windows: 0 + prompt_tokens: 2863068 + completion_tokens: 1271074 + test_timeouts: 6 + total_tests: 225 + command: aider --model claude-sonnet-4-20250514 + date: 2025-05-24 + versions: 0.83.3.dev + seconds_per_case: 79.9 + total_cost: 26.5755 + +- dirname: 2025-05-25-19-57-20--opus4-diff-exuser + test_cases: 225 + model: claude-opus-4-20250514 (no think) + edit_format: diff + commit_hash: 9ef3211 + pass_rate_1: 32.9 + pass_rate_2: 70.7 + pass_num_1: 74 + pass_num_2: 159 + percent_cases_well_formed: 98.7 + error_outputs: 3 + num_malformed_responses: 3 + num_with_malformed_responses: 3 + user_asks: 105 + lazy_comments: 0 + syntax_errors: 0 + indentation_errors: 0 + exhausted_context_windows: 0 + prompt_tokens: 2671437 + completion_tokens: 380717 + test_timeouts: 3 + total_tests: 225 + command: aider --model claude-opus-4-20250514 + date: 2025-05-25 + versions: 0.83.3.dev + seconds_per_case: 42.5 + total_cost: 68.6253 + +- dirname: 2025-05-25-20-40-51--opus4-diff-exuser + test_cases: 225 + model: claude-opus-4-20250514 (32k thinking) + edit_format: diff + commit_hash: 9ef3211 + thinking_tokens: 32000 + pass_rate_1: 37.3 + pass_rate_2: 72.0 + pass_num_1: 84 + pass_num_2: 162 + percent_cases_well_formed: 97.3 + error_outputs: 10 + num_malformed_responses: 6 + num_with_malformed_responses: 6 + user_asks: 97 + lazy_comments: 0 + syntax_errors: 0 + indentation_errors: 0 + exhausted_context_windows: 0 + prompt_tokens: 2567514 + completion_tokens: 363142 + test_timeouts: 4 + total_tests: 225 + command: aider --model claude-opus-4-20250514 + date: 2025-05-25 + versions: 0.83.3.dev + seconds_per_case: 44.1 + total_cost: 65.7484 + +- dirname: 2025-05-26-15-56-31--flash25-05-20-24k-think # dirname is misleading + test_cases: 225 + model: gemini-2.5-flash-preview-05-20 (no think) + edit_format: diff + commit_hash: 214b811-dirty + thinking_tokens: 0 # <-- no thinking + pass_rate_1: 20.9 + pass_rate_2: 44.0 + pass_num_1: 47 + pass_num_2: 99 + percent_cases_well_formed: 93.8 + error_outputs: 16 + num_malformed_responses: 16 + num_with_malformed_responses: 14 + user_asks: 79 + lazy_comments: 0 + syntax_errors: 0 + indentation_errors: 0 + exhausted_context_windows: 0 + prompt_tokens: 5512458 + completion_tokens: 514145 + test_timeouts: 4 + total_tests: 225 + command: aider --model gemini/gemini-2.5-flash-preview-05-20 + date: 2025-05-26 + versions: 0.83.3.dev + seconds_per_case: 12.2 + total_cost: 1.1354 + +- dirname: 2025-05-25-22-58-44--flash25-05-20-24k-think + test_cases: 225 + model: gemini-2.5-flash-preview-05-20 (24k think) + edit_format: diff + commit_hash: a8568c3-dirty + thinking_tokens: 24576 + pass_rate_1: 26.2 + pass_rate_2: 55.1 + pass_num_1: 59 + pass_num_2: 124 + percent_cases_well_formed: 95.6 + error_outputs: 15 + num_malformed_responses: 15 + num_with_malformed_responses: 10 + user_asks: 101 + lazy_comments: 0 + syntax_errors: 0 + indentation_errors: 0 + exhausted_context_windows: 0 + prompt_tokens: 3666792 + completion_tokens: 2703162 + test_timeouts: 4 + total_tests: 225 + command: aider --model gemini/gemini-2.5-flash-preview-05-20 + date: 2025-05-25 + versions: 0.83.3.dev + seconds_per_case: 53.9 + total_cost: 8.5625 + +- dirname: 2025-06-06-18-38-56--gemini0605-diff-fenced + test_cases: 225 + model: gemini-2.5-pro-preview-06-05 (default think) + edit_format: diff-fenced + commit_hash: 4c161f9-dirty + pass_rate_1: 44.9 + pass_rate_2: 79.1 + pass_num_1: 101 + pass_num_2: 178 + percent_cases_well_formed: 100.0 + error_outputs: 4 + num_malformed_responses: 0 + num_with_malformed_responses: 0 + user_asks: 105 + lazy_comments: 0 + syntax_errors: 0 + indentation_errors: 0 + exhausted_context_windows: 4 + prompt_tokens: 2751296 + completion_tokens: 4142197 + test_timeouts: 1 + total_tests: 225 + command: aider --model gemini/gemini-2.5-pro-preview-06-05 + date: 2025-06-06 + versions: 0.84.1.dev + seconds_per_case: 175.2 + total_cost: 45.5961 + +- dirname: 2025-06-06-16-36-21--gemini0605-32k-think-diff-fenced + test_cases: 225 + model: gemini-2.5-pro-preview-06-05 (32k think) + edit_format: diff-fenced + commit_hash: f827f22 + thinking_tokens: 32768 + pass_rate_1: 46.2 + pass_rate_2: 83.1 + pass_num_1: 104 + pass_num_2: 187 + percent_cases_well_formed: 99.6 + error_outputs: 1 + num_malformed_responses: 1 + num_with_malformed_responses: 1 + user_asks: 112 + lazy_comments: 0 + syntax_errors: 0 + indentation_errors: 0 + exhausted_context_windows: 0 + prompt_tokens: 2719961 + completion_tokens: 4648227 + test_timeouts: 0 + total_tests: 225 + command: aider --model gemini/gemini-2.5-pro-preview-06-05 --thinking-tokens 32k + date: 2025-06-06 + versions: 0.84.1.dev + seconds_per_case: 200.3 + total_cost: 49.8822 + +- dirname: 2025-06-06-16-47-07--r1-diff + test_cases: 224 + model: DeepSeek R1 (0528) + edit_format: diff + commit_hash: 4c161f9-dirty + pass_rate_1: 34.4 + pass_rate_2: 71.4 + pass_num_1: 77 + pass_num_2: 160 + percent_cases_well_formed: 94.6 + error_outputs: 28 + num_malformed_responses: 15 + num_with_malformed_responses: 12 + user_asks: 105 + lazy_comments: 0 + syntax_errors: 0 + indentation_errors: 0 + exhausted_context_windows: 0 + prompt_tokens: 2644169 + completion_tokens: 1842168 + test_timeouts: 2 + total_tests: 225 + command: aider --model deepseek/deepseek-reasoner + date: 2025-06-06 + versions: 0.84.1.dev + seconds_per_case: 716.6 + total_cost: 4.8016 + +- dirname: 2025-06-25-21-04-24--o3-price-reduction-high + test_cases: 225 + model: o3 (high) + edit_format: diff + commit_hash: c48fea6 + reasoning_effort: high + pass_rate_1: 40.0 + pass_rate_2: 81.3 + pass_num_1: 90 + pass_num_2: 183 + percent_cases_well_formed: 94.7 + error_outputs: 25 + num_malformed_responses: 23 + num_with_malformed_responses: 12 + user_asks: 116 + lazy_comments: 0 + syntax_errors: 0 + indentation_errors: 0 + exhausted_context_windows: 1 + prompt_tokens: 3148932 + completion_tokens: 2047615 + test_timeouts: 2 + total_tests: 225 + command: aider --model o3 --reasoning-effort high + date: 2025-06-25 + versions: 0.84.1.dev + seconds_per_case: 197.3 + total_cost: 21.2259 + +- dirname: 2025-06-25-20-30-16--o3-price-reduction + test_cases: 225 + model: o3 + edit_format: diff + commit_hash: c48fea6 + pass_rate_1: 40.9 + pass_rate_2: 76.9 + pass_num_1: 92 + pass_num_2: 173 + percent_cases_well_formed: 93.8 + error_outputs: 22 + num_malformed_responses: 22 + num_with_malformed_responses: 14 + user_asks: 108 + lazy_comments: 2 + syntax_errors: 0 + indentation_errors: 0 + exhausted_context_windows: 0 + prompt_tokens: 2893189 + completion_tokens: 1154767 + test_timeouts: 1 + total_tests: 225 + command: aider --model o3 + date: 2025-06-25 + versions: 0.84.1.dev + seconds_per_case: 101.7 + total_cost: 13.7517 + +- dirname: 2025-06-27-23-53-57--o3-mini-high-diff-arch + test_cases: 224 + model: o3 (high) + gpt-4.1 + edit_format: architect + commit_hash: 4f4f00f-dirty + editor_model: gpt-4.1 + editor_edit_format: editor-diff + reasoning_effort: high + pass_rate_1: 34.8 + pass_rate_2: 78.2 + pass_num_1: 78 + pass_num_2: 176 + percent_cases_well_formed: 100.0 + error_outputs: 18 + num_malformed_responses: 0 + num_with_malformed_responses: 0 + user_asks: 172 + lazy_comments: 0 + syntax_errors: 0 + indentation_errors: 0 + exhausted_context_windows: 1 + prompt_tokens: 1306877 + completion_tokens: 1327154 + test_timeouts: 1 + total_tests: 225 + command: aider --model o3 + date: 2025-06-27 + versions: 0.85.1.dev + seconds_per_case: 121.8 + total_cost: 17.5518 + +- dirname: 2025-06-28-00-38-18--o3-pro-high + test_cases: 225 + model: o3-pro (high) + edit_format: diff + commit_hash: 5318380 + reasoning_effort: high + pass_rate_1: 43.6 + pass_rate_2: 84.9 + pass_num_1: 98 + pass_num_2: 191 + percent_cases_well_formed: 97.8 + error_outputs: 20 + num_malformed_responses: 8 + num_with_malformed_responses: 5 + user_asks: 100 + lazy_comments: 0 + syntax_errors: 0 + indentation_errors: 0 + exhausted_context_windows: 0 + prompt_tokens: 2372636 + completion_tokens: 1235902 + test_timeouts: 1 + total_tests: 225 + command: aider --model o3-pro + date: 2025-06-28 + versions: 0.85.1.dev + seconds_per_case: 449.0 + total_cost: 146.3249 + +- dirname: 2025-07-11-19-37-40--xai-or-grok4-high + test_cases: 225 + model: grok-4 (high) + edit_format: diff + commit_hash: f7870b6-dirty + reasoning_effort: high + pass_rate_1: 40.9 + pass_rate_2: 79.6 + pass_num_1: 92 + pass_num_2: 179 + percent_cases_well_formed: 97.3 + error_outputs: 11 + num_malformed_responses: 8 + num_with_malformed_responses: 6 + user_asks: 133 + lazy_comments: 0 + syntax_errors: 0 + indentation_errors: 0 + exhausted_context_windows: 0 + prompt_tokens: 2815347 + completion_tokens: 3411480 + test_timeouts: 0 + total_tests: 225 + command: aider --model openrouter/x-ai/grok-4 + date: 2025-07-11 + versions: 0.85.2.dev + seconds_per_case: 403.2 + total_cost: 59.6182 + +- dirname: 2025-07-17-17-41-54--kimi-k2-diff-or-pricing + test_cases: 225 + model: Kimi K2 + edit_format: diff + commit_hash: 915ebff-dirty + pass_rate_1: 20.4 + pass_rate_2: 59.1 + pass_num_1: 46 + pass_num_2: 133 + percent_cases_well_formed: 92.9 + error_outputs: 19 + num_malformed_responses: 19 + num_with_malformed_responses: 16 + user_asks: 61 + lazy_comments: 0 + syntax_errors: 0 + indentation_errors: 0 + exhausted_context_windows: 0 + prompt_tokens: 2355141 + completion_tokens: 363846 + test_timeouts: 4 + total_tests: 225 + command: aider --model openrouter/moonshotai/kimi-k2 + date: 2025-07-17 + versions: 0.85.3.dev + seconds_per_case: 67.6 + total_cost: 1.2357 + +- dirname: 2025-08-06-04-54-48--gpt-oss-120b-high-polyglot + test_cases: 225 + model: gpt-oss-120b (high) + edit_format: diff + commit_hash: 1af0e59 + pass_rate_1: 13.8 + pass_rate_2: 41.8 + pass_num_1: 31 + pass_num_2: 94 + percent_cases_well_formed: 79.1 + error_outputs: 95 + num_malformed_responses: 77 + num_with_malformed_responses: 47 + user_asks: 142 + lazy_comments: 0 + syntax_errors: 0 + indentation_errors: 0 + exhausted_context_windows: 0 + prompt_tokens: 3123768 + completion_tokens: 856495 + test_timeouts: 4 + total_tests: 225 + command: aider --model openrouter/openai/gpt-oss-120b --reasoning-effort high + date: 2025-08-06 + versions: 0.85.3.dev + seconds_per_case: 35.5 + total_cost: 0.7406 + +- dirname: 2025-08-23-15-47-21--gpt-5-high + test_cases: 225 + model: gpt-5 (high) + edit_format: diff + commit_hash: 32faf82 + reasoning_effort: high + pass_rate_1: 52.0 + pass_rate_2: 88.0 + pass_num_1: 117 + pass_num_2: 198 percent_cases_well_formed: 91.6 - error_outputs: 58 - num_malformed_responses: 29 + error_outputs: 23 + num_malformed_responses: 22 num_with_malformed_responses: 19 + user_asks: 96 + lazy_comments: 3 + syntax_errors: 0 + indentation_errors: 0 + exhausted_context_windows: 0 + prompt_tokens: 2675561 + completion_tokens: 2623429 + test_timeouts: 3 + total_tests: 225 + command: aider --model openai/gpt-5 + date: 2025-08-23 + versions: 0.86.2.dev + seconds_per_case: 194.0 + total_cost: 29.0829 + +- dirname: 2025-08-25-13-23-27--gpt-5-medium + test_cases: 225 + model: gpt-5 (medium) + edit_format: diff + commit_hash: 32faf82 + reasoning_effort: medium + pass_rate_1: 49.8 + pass_rate_2: 86.7 + pass_num_1: 112 + pass_num_2: 195 + percent_cases_well_formed: 88.4 + error_outputs: 40 + num_malformed_responses: 40 + num_with_malformed_responses: 26 user_asks: 102 lazy_comments: 0 syntax_errors: 0 indentation_errors: 0 exhausted_context_windows: 0 - prompt_tokens: 0 - completion_tokens: 0 + prompt_tokens: 2827261 + completion_tokens: 1468799 + test_timeouts: 0 + total_tests: 225 + command: aider --model openai/gpt-5 + date: 2025-08-25 + versions: 0.86.2.dev + seconds_per_case: 118.7 + total_cost: 17.6930 + +- dirname: 2025-08-25-14-16-37--gpt-5-low + test_cases: 225 + model: gpt-5 (low) + edit_format: diff + commit_hash: 32faf82 + reasoning_effort: low + pass_rate_1: 43.1 + pass_rate_2: 81.3 + pass_num_1: 97 + pass_num_2: 183 + percent_cases_well_formed: 86.7 + error_outputs: 46 + num_malformed_responses: 46 + num_with_malformed_responses: 30 + user_asks: 113 + lazy_comments: 1 + syntax_errors: 0 + indentation_errors: 0 + exhausted_context_windows: 0 + prompt_tokens: 2534059 + completion_tokens: 779568 test_timeouts: 1 total_tests: 225 - command: aider --model openrouter/qwen/qwen3-235b-a22b - date: 2025-05-08 - versions: 0.82.4.dev - seconds_per_case: 428.1 - total_cost: 1.8037 \ No newline at end of file + command: aider --model openai/gpt-5 + date: 2025-08-25 + versions: 0.86.2.dev + seconds_per_case: 62.4 + total_cost: 10.3713 + +- dirname: 2025-10-03-09-45-34--deepseek-v3.2-reasoner + test_cases: 225 + model: DeepSeek-V3.2-Exp (Reasoner) + edit_format: diff + commit_hash: cbb5376 + pass_rate_1: 39.6 + pass_rate_2: 74.2 + pass_num_1: 89 + pass_num_2: 167 + percent_cases_well_formed: 97.3 + error_outputs: 8 + num_malformed_responses: 6 + num_with_malformed_responses: 6 + user_asks: 67 + lazy_comments: 0 + syntax_errors: 0 + indentation_errors: 0 + exhausted_context_windows: 1 + prompt_tokens: 2191446 + completion_tokens: 1645129 + test_timeouts: 1 + total_tests: 225 + command: aider --model deepseek/deepseek-reasoner + date: 2025-10-03 + versions: 0.86.2.dev + seconds_per_case: 291.2 + total_cost: 1.3045 + +- dirname: 2025-10-03-09-21-36--deepseek-v3.2-chat + test_cases: 225 + model: DeepSeek-V3.2-Exp (Chat) + edit_format: diff + commit_hash: cbb5376 + pass_rate_1: 38.7 + pass_rate_2: 70.2 + pass_num_1: 87 + pass_num_2: 158 + percent_cases_well_formed: 98.2 + error_outputs: 6 + num_malformed_responses: 4 + num_with_malformed_responses: 4 + user_asks: 60 + lazy_comments: 0 + syntax_errors: 0 + indentation_errors: 0 + exhausted_context_windows: 1 + prompt_tokens: 2266868 + completion_tokens: 573477 + test_timeouts: 4 + total_tests: 225 + command: aider --model deepseek/deepseek-chat + date: 2025-10-03 + versions: 0.86.2.dev + seconds_per_case: 104.0 + total_cost: 0.8756 diff --git a/aider/website/_data/qwen3_leaderboard.yml b/aider/website/_data/qwen3_leaderboard.yml index 2e9eac1fc..68233c26f 100644 --- a/aider/website/_data/qwen3_leaderboard.yml +++ b/aider/website/_data/qwen3_leaderboard.yml @@ -213,3 +213,60 @@ versions: 0.82.4.dev seconds_per_case: 635.2 total_cost: 0.0000 + + +- dirname: 2025-05-09-17-02-02--qwen3-235b-a22b.unthink_16k_diff + test_cases: 225 + model: Qwen3 235B A22B diff, no think, via official Alibaba API + edit_format: diff + commit_hash: 91d7fbd-dirty + pass_rate_1: 28.9 + pass_rate_2: 59.6 + pass_num_1: 65 + pass_num_2: 134 + percent_cases_well_formed: 92.9 + error_outputs: 22 + num_malformed_responses: 22 + num_with_malformed_responses: 16 + user_asks: 111 + lazy_comments: 0 + syntax_errors: 0 + indentation_errors: 0 + exhausted_context_windows: 0 + prompt_tokens: 2816192 + completion_tokens: 342062 + test_timeouts: 1 + total_tests: 225 + command: aider --model openai/qwen3-235b-a22b + date: 2025-05-09 + versions: 0.82.4.dev + seconds_per_case: 45.4 + total_cost: 0.0000 + +- dirname: 2025-05-09-23-01-22--qwen3-235b-a22b.unthink_16k_whole + test_cases: 225 + model: Qwen3 235B A22B whole, no think, via official Alibaba API + edit_format: whole + commit_hash: 425fb6d + pass_rate_1: 26.7 + pass_rate_2: 61.8 + pass_num_1: 60 + pass_num_2: 139 + percent_cases_well_formed: 100.0 + error_outputs: 0 + num_malformed_responses: 0 + num_with_malformed_responses: 0 + user_asks: 175 + lazy_comments: 0 + syntax_errors: 0 + indentation_errors: 0 + exhausted_context_windows: 0 + prompt_tokens: 2768173 + completion_tokens: 384000 + test_timeouts: 1 + total_tests: 225 + command: aider --model openai/qwen3-235b-a22b + date: 2025-05-09 + versions: 0.82.4.dev + seconds_per_case: 50.8 + total_cost: 0.0000 \ No newline at end of file diff --git a/aider/website/_includes/footer_custom.html b/aider/website/_includes/footer_custom.html new file mode 100644 index 000000000..e69de29bb diff --git a/aider/website/_includes/head_custom.html b/aider/website/_includes/head_custom.html index 20f888728..364a5e1f8 100644 --- a/aider/website/_includes/head_custom.html +++ b/aider/website/_includes/head_custom.html @@ -32,6 +32,11 @@ .side-bar { background: linear-gradient(135deg, #ffffff 0%, rgba(20, 176, 20, 0.01) 25%, rgba(20, 176, 20, 0.04) 40%, rgba(220, 230, 255, 0.4) 60%, rgba(205, 218, 255, 0.4) 80%, #F5F6FA 100%); } + + @media (max-width: 50em) { + .ea-ad--sidebar { display: none; } + .ea-ad--mobile { display: block; } + } diff --git a/aider/website/_includes/leaderboard_table.js b/aider/website/_includes/leaderboard_table.js index 0dacbdbe7..039d6e121 100644 --- a/aider/website/_includes/leaderboard_table.js +++ b/aider/website/_includes/leaderboard_table.js @@ -1,7 +1,7 @@ document.addEventListener('DOMContentLoaded', function() { let currentMode = 'view'; // 'view', 'select', 'detail' let selectedRows = new Set(); // Store indices of selected rows - const MAX_DISPLAY_COST_CAP = 75; // Define the constant here + const MAX_DISPLAY_COST_CAP = 200; // Define the constant here const allMainRows = document.querySelectorAll('tr[id^="main-row-"]'); const allDetailsRows = document.querySelectorAll('tr[id^="details-"]'); diff --git a/aider/website/_posts/2024-05-13-models-over-time.md b/aider/website/_posts/2024-05-13-models-over-time.md index 7b2bbdf3e..57cc08f89 100644 --- a/aider/website/_posts/2024-05-13-models-over-time.md +++ b/aider/website/_posts/2024-05-13-models-over-time.md @@ -15,12 +15,12 @@ nav_exclude: true I recently wanted to draw a graph showing how LLM code editing skill has been changing over time as new models have been released by OpenAI, Anthropic and others. I have all the -[data in a yaml file](https://github.com/Aider-AI/aider/blob/main/website/_data/edit_leaderboard.yml) that is used to render +[data in a YAML file](https://github.com/Aider-AI/aider/blob/main/website/_data/edit_leaderboard.yml) that is used to render [aider's LLM leaderboards](https://aider.chat/docs/leaderboards/). Below is the aider chat transcript, which shows: -- I launch aider with the yaml file, a file with other plots I've done recently (so GPT can crib the style) and an empty file called `over_time.py`. +- I launch aider with the YAML file, a file with other plots I've done recently (so GPT can crib the style) and an empty file called `over_time.py`. - Then I ask GPT to draw the scatterplot I want. - I run the resulting script and share the error output with GPT so it can fix a small bug. - I ask it to color the points for GPT-4 and GPT-3.5 family models differently, to better see trends within those model families. @@ -28,7 +28,7 @@ Below is the aider chat transcript, which shows: - I work through a series of other small style changes, like changing fonts and the graph border. In the end I have the graph, but I also have the python code in my repo. -So I can update this graph easily whenever I add new entries to the yaml data file. +So I can update this graph easily whenever I add new entries to the YAML data file. ## Aider chat transcript diff --git a/aider/website/_posts/2025-05-08-qwen3.md b/aider/website/_posts/2025-05-08-qwen3.md index 474ee5852..80b580d1c 100644 --- a/aider/website/_posts/2025-05-08-qwen3.md +++ b/aider/website/_posts/2025-05-08-qwen3.md @@ -277,6 +277,31 @@ const LEADERBOARD_CUSTOM_TITLE = "Qwen3 results on the aider polyglot benchmark" +## No think, via official Alibaba API + +These results were obtained running against `https://dashscope.aliyuncs.com/compatible-mode/v1` +with no thinking. + +```bash +export OPENAI_API_BASE=https://dashscope.aliyuncs.com/compatible-mode/v1 +export OPENAI_API_KEY= +``` + +```yaml +- name: openai/qwen3-235b-a22b + use_temperature: 0.7 + streaming: false + extra_params: + stream: false + max_tokens: 16384 + top_p: 0.8 + top_k: 20 + temperature: 0.7 + enable_thinking: false + extra_body: + enable_thinking: false +``` + ## OpenRouter only TogetherAI, recommended /no_think settings These results were obtained with the diff --git a/aider/website/assets/sample-analytics.jsonl b/aider/website/assets/sample-analytics.jsonl index db51c4c31..b4560686c 100644 --- a/aider/website/assets/sample-analytics.jsonl +++ b/aider/website/assets/sample-analytics.jsonl @@ -1,1000 +1,1000 @@ -{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746743969} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746743969} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746743969} -{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746743969} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746743969} -{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746743969} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746743969} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746743969} -{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746743969} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746743969} -{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746743970} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746743970} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746743970} -{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746743970} -{"event": "command_add", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746743984} -{"event": "command_ask", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744009} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744009} -{"event": "message_send", "properties": {"main_model": "o3", "weak_model": "gemini/gemini-2.5-pro-exp-03-25", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "ask", "prompt_tokens": 24331, "completion_tokens": 1664, "total_tokens": 25995, "cost": 0.30987000000000003, "total_cost": 0.7573300000000001}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744032} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744069} -{"event": "message_send", "properties": {"main_model": "o3", "weak_model": "gemini/gemini-2.5-pro-exp-03-25", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "diff", "prompt_tokens": 27682, "completion_tokens": 1547, "total_tokens": 29229, "cost": 0.3387, "total_cost": 1.09603}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744090} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744094} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744095} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744095} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744095} -{"event": "message_send_exception", "properties": {"exception": "'EditBlockCoder' object has no attribute '_stop_waiting_spinner'"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744108} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744159} -{"event": "message_send", "properties": {"main_model": "o3", "weak_model": "gemini/gemini-2.5-pro-exp-03-25", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "diff", "prompt_tokens": 28471, "completion_tokens": 1850, "total_tokens": 30321, "cost": 0.35871000000000003, "total_cost": 1.4547400000000001}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744180} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744188} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744190} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744190} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744190} -{"event": "message_send", "properties": {"main_model": "o3", "weak_model": "gemini/gemini-2.5-pro-exp-03-25", "editor_model": "gpt-4.1", "edit_format": "diff", "prompt_tokens": 7494, "completion_tokens": 276, "total_tokens": 7770, "cost": 0.08598, "total_cost": 0.08598}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744195} -{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744195} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744208} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744210} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744210} -{"event": "cli session", "properties": {"main_model": "o3", "weak_model": "gemini/gemini-2.5-pro-exp-03-25", "editor_model": "gpt-4.1", "edit_format": "diff"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744210} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744256} -{"event": "command_clear", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744302} -{"event": "command_edit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744304} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744421} -{"event": "message_send", "properties": {"main_model": "o3", "weak_model": "gemini/gemini-2.5-pro-exp-03-25", "editor_model": "gpt-4.1", "edit_format": "diff", "prompt_tokens": 8987, "completion_tokens": 7646, "total_tokens": 16633, "cost": 0.39571, "total_cost": 0.39571}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744517} -{"event": "exit", "properties": {"reason": "Completed main CLI coder.run"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744547} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744591} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744640} -{"event": "message_send", "properties": {"main_model": "o3", "weak_model": "gemini/gemini-2.5-pro-exp-03-25", "editor_model": "gpt-4.1", "edit_format": "diff", "prompt_tokens": 10351, "completion_tokens": 2858, "total_tokens": 13209, "cost": 0.21783000000000002, "total_cost": 0.61354}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746744693} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745011} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745011} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745011} -{"event": "command_exit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745068} -{"event": "exit", "properties": {"reason": "/exit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745068} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745076} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-pro-exp-03-25", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 7804, "completion_tokens": 185, "total_tokens": 7989, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745082} -{"event": "exit", "properties": {"reason": "Completed lint/test/commit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745086} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745197} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745197} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745197} -{"event": "exit", "properties": {"reason": "Completed lint/test/commit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745253} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745253} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745254} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745254} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-flash-preview-04-17", "weak_model": "gemini/gemini-2.5-pro-exp-03-25", "editor_model": "gemini/gemini-2.5-flash-preview-04-17", "edit_format": "diff"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745254} -{"event": "command_exit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745257} -{"event": "exit", "properties": {"reason": "/exit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745257} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745302} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745304} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745304} -{"event": "cli session", "properties": {"main_model": "o3", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gpt-4.1", "edit_format": "diff"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745304} -{"event": "command_add", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745308} -{"event": "command_add", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745311} -{"event": "command_ask", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745329} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745329} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745367} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745367} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745367} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745367} -{"event": "command_ask", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745368} -{"event": "message_send", "properties": {"main_model": "o3", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gpt-4.1", "edit_format": "ask", "prompt_tokens": 22843, "completion_tokens": 1684, "total_tokens": 24527, "cost": 0.29579, "total_cost": 0.29579}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745376} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745384} -{"event": "command_ask", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745444} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745444} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "ask", "prompt_tokens": 6977, "completion_tokens": 1526, "total_tokens": 8503, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745473} -{"event": "command_exit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745513} -{"event": "exit", "properties": {"reason": "/exit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745513} -{"event": "message_send", "properties": {"main_model": "o3", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gpt-4.1", "edit_format": "ask", "prompt_tokens": 23524, "completion_tokens": 4435, "total_tokens": 27959, "cost": 0.41264, "total_cost": 0.70843}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745514} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745539} -{"event": "message_send", "properties": {"main_model": "o3", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gpt-4.1", "edit_format": "diff", "prompt_tokens": 27062, "completion_tokens": 4657, "total_tokens": 31719, "cost": 0.4569000000000001, "total_cost": 1.16533}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746745601} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746382} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746382} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746382} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746382} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 5471, "completion_tokens": 285, "total_tokens": 5756, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746417} -{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746417} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746432} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746432} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746432} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746432} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 7626, "completion_tokens": 3778, "total_tokens": 11404, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746468} -{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746468} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746594} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746594} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746594} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746594} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 38859, "completion_tokens": 263, "total_tokens": 39122, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746724} -{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746724} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746902} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746902} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746902} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746902} -{"event": "command_ask", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746906} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746919} -{"event": "command_exit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746928} -{"event": "exit", "properties": {"reason": "/exit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746928} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "ask", "prompt_tokens": 8141, "completion_tokens": 527, "total_tokens": 8668, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746942} -{"event": "command_clear", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746970} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746982} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "ask", "prompt_tokens": 8145, "completion_tokens": 2, "total_tokens": 8147, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746983} -{"event": "command_model", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746995} -{"event": "command_reasoning-effort", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746746997} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747003} -{"event": "message_send", "properties": {"main_model": "o3", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "ask", "prompt_tokens": 7199, "completion_tokens": 21, "total_tokens": 7220, "cost": 0.07283, "total_cost": 0.07283}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747008} -{"event": "exit", "properties": {"reason": "Control-C"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747072} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747080} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747082} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747082} -{"event": "cli session", "properties": {"main_model": "o3", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gpt-4.1", "edit_format": "diff"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747082} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747084} -{"event": "message_send", "properties": {"main_model": "o3", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gpt-4.1", "edit_format": "diff", "prompt_tokens": 11919, "completion_tokens": 805, "total_tokens": 12724, "cost": 0.15139, "total_cost": 0.15139}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747100} -{"event": "command_ask", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747106} -{"event": "command_clear", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747108} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747109} -{"event": "message_send", "properties": {"main_model": "o3", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gpt-4.1", "edit_format": "ask", "prompt_tokens": 9564, "completion_tokens": 21, "total_tokens": 9585, "cost": 0.09648, "total_cost": 0.24786999999999998}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747113} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747123} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747123} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747123} -{"event": "exit", "properties": {"reason": "Completed lint/test/commit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747127} -{"event": "command_exit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747190} -{"event": "exit", "properties": {"reason": "/exit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747190} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747194} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747196} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747196} -{"event": "cli session", "properties": {"main_model": "o3", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gpt-4.1", "edit_format": "diff"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747196} -{"event": "command_ask", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747197} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747206} -{"event": "message_send", "properties": {"main_model": "o3", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gpt-4.1", "edit_format": "ask", "prompt_tokens": 7646, "completion_tokens": 85, "total_tokens": 7731, "cost": 0.07986, "total_cost": 0.07986}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747210} -{"event": "command_clear", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747215} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747217} -{"event": "message_send", "properties": {"main_model": "o3", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gpt-4.1", "edit_format": "ask", "prompt_tokens": 7642, "completion_tokens": 466, "total_tokens": 8108, "cost": 0.09506, "total_cost": 0.17492000000000002}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747228} -{"event": "command_exit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747234} -{"event": "exit", "properties": {"reason": "/exit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747234} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747328} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747329} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747329} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747332} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747432} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747433} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747433} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747436} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747449} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747450} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747450} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747450} -{"event": "command_ask", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747451} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747481} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747490} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747491} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747491} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747494} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747526} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747527} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747527} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747527} -{"event": "command_add", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747531} -{"event": "command_tokens", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747534} -{"event": "command_ask", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747541} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747560} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "ask", "prompt_tokens": 10472, "completion_tokens": 1189, "total_tokens": 11661, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747572} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "ask", "prompt_tokens": 94725, "completion_tokens": 673, "total_tokens": 95398, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747633} -{"event": "exit", "properties": {"reason": "Completed main CLI coder.run"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746747648} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748758} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748759} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748759} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748772} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748773} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748773} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748784} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748785} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748785} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748803} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748803} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748803} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748819} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748820} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748820} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748824} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748824} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748824} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748828} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748828} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748828} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748846} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748846} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748846} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748889} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748889} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748889} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748898} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748898} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748898} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748901} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748902} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748902} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748908} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748909} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748909} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748912} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748912} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748912} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748920} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748921} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748921} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748951} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748951} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748951} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748955} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748959} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748959} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748959} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748963} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748965} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748966} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748966} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746748969} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749018} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749020} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749020} -{"event": "cli session", "properties": {"main_model": "o3", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gpt-4.1", "edit_format": "diff"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749020} -{"event": "command_edit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749045} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749151} -{"event": "exit", "properties": {"reason": "Completed main CLI coder.run"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749161} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749165} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749166} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749166} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749169} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749187} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749187} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749187} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749191} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749193} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749194} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749194} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749197} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749200} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749201} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749201} -{"event": "exit", "properties": {"reason": "Control-C"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749204} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749204} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749208} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749208} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749208} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749211} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749216} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749216} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749216} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749216} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749217} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 8495, "completion_tokens": 17, "total_tokens": 8512, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749222} -{"event": "command_exit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749225} -{"event": "exit", "properties": {"reason": "/exit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749225} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749229} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749229} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749229} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749229} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 8507, "completion_tokens": 17, "total_tokens": 8524, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749235} -{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749235} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749253} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749253} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749253} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749253} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 10418, "completion_tokens": 21, "total_tokens": 10439, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749259} -{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749259} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749281} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749282} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749282} -{"event": "exit", "properties": {"reason": "Completed lint/test/commit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749287} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749297} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749297} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749297} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749297} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749367} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 6871, "completion_tokens": 316, "total_tokens": 7187, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749381} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749390} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749391} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749391} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749391} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 8628, "completion_tokens": 17, "total_tokens": 8645, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749396} -{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749396} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749404} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749405} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749405} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749405} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 8507, "completion_tokens": 17, "total_tokens": 8524, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749410} -{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749410} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749440} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749440} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749440} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749440} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749449} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749450} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749450} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749450} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 8490, "completion_tokens": 17, "total_tokens": 8507, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749455} -{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749455} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749465} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749466} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749466} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749466} -{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749474} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749480} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749480} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749480} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749480} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 9334, "completion_tokens": 211, "total_tokens": 9545, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749528} -{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749528} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749544} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749544} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749544} -{"event": "exit", "properties": {"reason": "Completed lint/test/commit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749548} -{"event": "exit", "properties": {"reason": "Control-C"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749609} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749804} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749804} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749804} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749804} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749810} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 7706, "completion_tokens": 335, "total_tokens": 8041, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746749817} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746750812} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746750814} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746750814} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746750814} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746750830} -{"event": "exit", "properties": {"reason": "Control-C"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746750835} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 7829, "completion_tokens": 1580, "total_tokens": 9409, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746750925} -{"event": "command_undo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746750936} -{"event": "command_clear", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746750951} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751276} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751276} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751276} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751276} -{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751303} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751304} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751305} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751305} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751305} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 9360, "completion_tokens": 161, "total_tokens": 9521, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751364} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751398} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751398} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751398} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751399} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 9265, "completion_tokens": 238, "total_tokens": 9503, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751448} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751462} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751463} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751463} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751463} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 9307, "completion_tokens": 115, "total_tokens": 9422, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751503} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751512} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751512} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751512} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751512} -{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751523} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751524} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751525} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751525} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751525} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 9339, "completion_tokens": 189, "total_tokens": 9528, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751577} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751652} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751652} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751652} -{"event": "exit", "properties": {"reason": "Completed lint/test/commit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751661} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751782} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751782} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751782} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751782} -{"event": "command_help", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751789} -{"event": "interactive help", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751789} -{"event": "exit", "properties": {"reason": "Control-C"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751814} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751872} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "help", "prompt_tokens": 16994, "completion_tokens": 241, "total_tokens": 17235, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751881} -{"event": "command_exit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751885} -{"event": "exit", "properties": {"reason": "/exit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751885} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751892} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751893} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751893} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751893} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 9391, "completion_tokens": 329, "total_tokens": 9720, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751949} -{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746751949} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746757491} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746757491} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746757491} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746757492} -{"event": "command_ask", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746757492} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746757497} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "ask", "prompt_tokens": 8137, "completion_tokens": 540, "total_tokens": 8677, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746757521} -{"event": "command_exit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746757582} -{"event": "exit", "properties": {"reason": "/exit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746757582} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746757599} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746757600} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746757600} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746757600} -{"event": "command_edit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746757603} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746757626} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 7987, "completion_tokens": 400, "total_tokens": 8387, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746757703} -{"event": "exit", "properties": {"reason": "Completed main CLI coder.run"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746758816} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746758822} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746758823} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746758823} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746758823} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 9336, "completion_tokens": 219, "total_tokens": 9555, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746758868} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746758914} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746758915} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746758915} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746758915} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 9337, "completion_tokens": 301, "total_tokens": 9638, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746758940} -{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746758940} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746758952} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746758952} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746758952} -{"event": "exit", "properties": {"reason": "Completed lint/test/commit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746758959} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746759050} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746759051} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746759051} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746759051} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746759060} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 6990, "completion_tokens": 577, "total_tokens": 7567, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746759125} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746759154} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746759155} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746759155} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746759155} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 9336, "completion_tokens": 117, "total_tokens": 9453, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746759214} -{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746759214} -{"event": "command_ask", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746795628} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746795628} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "ask", "prompt_tokens": 7628, "completion_tokens": 123, "total_tokens": 7751, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746795637} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746795698} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 8182, "completion_tokens": 309, "total_tokens": 8491, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746795705} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746795754} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746795755} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746795755} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-preview-05-06", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-preview-05-06", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746795755} -{"event": "command_exit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746795756} -{"event": "exit", "properties": {"reason": "/exit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746795756} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746796457} -{"event": "model warning", "properties": {"main_model": "google/REDACTED", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "google/REDACTED"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746796459} -{"event": "exit", "properties": {"reason": "Keyboard interrupt during model warnings"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746796467} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746796482} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746796485} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746796485} -{"event": "cli session", "properties": {"main_model": "openrouter/REDACTED", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "openrouter/REDACTED", "edit_format": "whole"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746796485} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746796486} -{"event": "message_send", "properties": {"main_model": "openrouter/REDACTED", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "openrouter/REDACTED", "edit_format": "whole", "prompt_tokens": 8735, "completion_tokens": 10, "total_tokens": 8745, "cost": 0.01101875, "total_cost": 0.01101875}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746796490} -{"event": "exit", "properties": {"reason": "Completed main CLI coder.run"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746796491} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746796529} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746796530} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746796530} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746796530} -{"event": "command_read-only", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746796536} -{"event": "command_add", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746796540} -{"event": "command_add", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746796589} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746796617} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 26887, "completion_tokens": 185, "total_tokens": 27072, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746796623} -{"event": "command_undo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746796634} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746796655} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 27130, "completion_tokens": 528, "total_tokens": 27658, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746796666} -{"event": "command_reset", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746796846} -{"event": "command_add", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746796848} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746796859} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 14018, "completion_tokens": 113, "total_tokens": 14131, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746796864} -{"event": "exit", "properties": {"reason": "Completed main CLI coder.run"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798309} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798501} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798502} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798502} -{"event": "exit", "properties": {"reason": "Completed lint/test/commit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798506} -{"event": "exit", "properties": {"reason": "Completed main CLI coder.run"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798522} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798528} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798528} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798528} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798528} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 9316, "completion_tokens": 152, "total_tokens": 9468, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798578} -{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798578} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798607} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798607} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798607} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798611} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798618} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798619} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798619} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798619} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798635} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 7630, "completion_tokens": 132, "total_tokens": 7762, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798640} -{"event": "exit", "properties": {"reason": "Completed main CLI coder.run"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798648} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798651} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798651} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798651} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798651} -{"event": "exit", "properties": {"reason": "Control-C"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798652} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798655} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798655} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798655} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798659} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798672} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798673} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798673} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798676} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798724} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798724} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798724} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798728} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798742} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798742} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798742} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798742} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798757} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798806} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798806} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798806} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798806} -{"event": "command_add", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798809} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798819} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 9628, "completion_tokens": 60, "total_tokens": 9688, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798824} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798826} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 15462, "completion_tokens": 392, "total_tokens": 15854, "cost": 0.0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798833} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 8163, "completion_tokens": 778, "total_tokens": 8941, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798847} -{"event": "exit", "properties": {"reason": "Completed main CLI coder.run"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798856} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798865} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798865} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798865} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798869} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798877} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798877} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798877} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798880} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798886} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798887} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798887} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798890} -{"event": "command_ask", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798929} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798929} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "ask", "prompt_tokens": 8014, "completion_tokens": 157, "total_tokens": 8171, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798936} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798958} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798990} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798990} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798990} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798994} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798997} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798998} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746798998} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799001} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799005} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799005} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799005} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799009} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 8952, "completion_tokens": 611, "total_tokens": 9563, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799035} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799044} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 10212, "completion_tokens": 251, "total_tokens": 10463, "cost": 0.0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799050} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799051} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799051} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799051} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799055} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799058} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799058} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799058} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799061} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799071} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799072} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799072} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799074} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799084} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799085} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799085} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799089} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799137} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799137} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799137} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799141} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799173} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799174} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799174} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799177} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799196} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799196} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799196} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799207} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799207} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799207} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799216} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799223} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799224} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799224} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799236} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799295} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799296} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799296} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799312} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799313} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799313} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799326} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799329} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799330} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799330} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799358} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799358} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799358} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799362} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799371} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799372} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799372} -{"event": "exit", "properties": {"reason": "Showed repo map"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799375} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799385} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799385} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799385} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799385} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 9371, "completion_tokens": 166, "total_tokens": 9537, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746799449} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803120} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803121} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803121} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803121} -{"event": "exit", "properties": {"reason": "Completed main CLI coder.run"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803139} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 9346, "completion_tokens": 233, "total_tokens": 9579, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803166} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803201} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803201} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803201} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803201} -{"event": "command_read-only", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803204} -{"event": "command_ask", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803226} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803226} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "ask", "prompt_tokens": 23451, "completion_tokens": 1189, "total_tokens": 24640, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803290} -{"event": "command_drop", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803399} -{"event": "command_clear", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803409} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803428} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 5344, "completion_tokens": 235, "total_tokens": 5579, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803433} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803437} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803440} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803440} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803440} -{"event": "message_send", "properties": {"main_model": "o3", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gpt-4.1", "edit_format": "diff", "prompt_tokens": 47265, "completion_tokens": 1360, "total_tokens": 48625, "cost": 0.52705, "total_cost": 0.52705}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803472} -{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803472} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803523} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 5700, "completion_tokens": 275, "total_tokens": 5975, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803529} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803631} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 5985, "completion_tokens": 234, "total_tokens": 6219, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803637} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803643} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803646} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803646} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803646} -{"event": "message_send", "properties": {"main_model": "o3", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gpt-4.1", "edit_format": "diff", "prompt_tokens": 47281, "completion_tokens": 1782, "total_tokens": 49063, "cost": 0.5440900000000001, "total_cost": 0.5440900000000001}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803690} -{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803690} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803718} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803718} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803718} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803718} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 44733, "completion_tokens": 365, "total_tokens": 45098, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803787} -{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803787} -{"event": "command_ask", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803791} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803791} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "ask", "prompt_tokens": 6662, "completion_tokens": 261, "total_tokens": 6923, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746803800} -{"event": "exit", "properties": {"reason": "Control-C"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746804067} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746804086} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746804086} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746804086} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746804086} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746804098} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 6018, "completion_tokens": 517, "total_tokens": 6535, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746804107} -{"event": "command_exit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746804368} -{"event": "exit", "properties": {"reason": "/exit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746804368} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746804370} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746804370} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746804370} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746804370} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 32147, "completion_tokens": 247, "total_tokens": 32394, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746804504} -{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746804504} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805231} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805234} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805234} -{"event": "cli session", "properties": {"main_model": "o3", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gpt-4.1", "edit_format": "diff"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805234} -{"event": "command_ask", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805237} -{"event": "command_exit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805245} -{"event": "exit", "properties": {"reason": "/exit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805245} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805248} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805250} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805250} -{"event": "cli session", "properties": {"main_model": "o3", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gpt-4.1", "edit_format": "diff"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805250} -{"event": "command_ask", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805252} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805351} -{"event": "message_send", "properties": {"main_model": "o3", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gpt-4.1", "edit_format": "ask", "prompt_tokens": 7724, "completion_tokens": 21, "total_tokens": 7745, "cost": 0.07808, "total_cost": 0.07808}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805358} -{"event": "command_exit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805362} -{"event": "exit", "properties": {"reason": "/exit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805362} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805367} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805370} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805370} -{"event": "cli session", "properties": {"main_model": "o3", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gpt-4.1", "edit_format": "diff"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805370} -{"event": "command_ask", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805371} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805394} -{"event": "message_send", "properties": {"main_model": "o3", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gpt-4.1", "edit_format": "ask", "prompt_tokens": 7749, "completion_tokens": 21, "total_tokens": 7770, "cost": 0.07833, "total_cost": 0.07833}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805398} -{"event": "command_exit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805402} -{"event": "exit", "properties": {"reason": "/exit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805402} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805407} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805409} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805409} -{"event": "cli session", "properties": {"main_model": "o3", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gpt-4.1", "edit_format": "diff"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805409} -{"event": "command_ask", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805410} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805414} -{"event": "message_send", "properties": {"main_model": "o3", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gpt-4.1", "edit_format": "ask", "prompt_tokens": 7735, "completion_tokens": 85, "total_tokens": 7820, "cost": 0.08075, "total_cost": 0.08075}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805421} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805822} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805822} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805822} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805822} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805895} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 8284, "completion_tokens": 277, "total_tokens": 8561, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805902} -{"event": "command_exit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805909} -{"event": "exit", "properties": {"reason": "/exit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746805909} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806175} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806176} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806176} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806176} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806181} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 4530, "completion_tokens": 172, "total_tokens": 4702, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806186} -{"event": "command_ask", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806199} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806199} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "ask", "prompt_tokens": 4468, "completion_tokens": 415, "total_tokens": 4883, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806221} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806245} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "ask", "prompt_tokens": 10674, "completion_tokens": 489, "total_tokens": 11163, "cost": 0.0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806259} -{"event": "command_drop", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806310} -{"event": "command_clear", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806311} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806321} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 5866, "completion_tokens": 333, "total_tokens": 6199, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806328} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806333} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806333} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806333} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806336} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806342} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 8939, "completion_tokens": 469, "total_tokens": 9408, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806353} -{"event": "exit", "properties": {"reason": "Control-C"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806360} -{"event": "exit", "properties": {"reason": "Control-C"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806382} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806577} -{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806581} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806581} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806581} -{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806581} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806581} -{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806582} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806582} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806582} -{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806582} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806582} -{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806582} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806582} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806582} -{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806582} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806582} -{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806583} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806583} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806583} -{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806583} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806583} -{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806583} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806583} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806583} -{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806583} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806583} -{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806584} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806584} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806584} -{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806584} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806584} -{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806584} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806584} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806584} -{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806584} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806584} -{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806585} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806585} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806585} -{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806585} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806585} -{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806585} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806585} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806585} -{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806585} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806585} -{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806586} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806586} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806586} -{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806586} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806586} -{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806586} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806586} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806586} -{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806586} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806586} -{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806587} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806587} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806587} -{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806587} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806587} -{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806587} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806587} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806587} -{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806587} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806588} -{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806588} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806588} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806588} -{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806588} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806588} -{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806588} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806588} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806588} -{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806588} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806589} -{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806589} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806589} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806589} -{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806589} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806680} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806681} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806681} -{"event": "exit", "properties": {"reason": "Exit flag set"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806681} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806681} -{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806681} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806681} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806681} -{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806681} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806797} -{"event": "gui session", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806805} -{"event": "exit", "properties": {"reason": "GUI session ended"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746806805} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746807045} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746807045} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746807045} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746807045} -{"event": "exit", "properties": {"reason": "Control-C"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746807048} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746807269} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746807269} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746807269} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746807269} -{"event": "command_run", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746807285} -{"event": "command_run", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746807297} -{"event": "command_add", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746807308} -{"event": "command_add", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746807318} -{"event": "command_read-only", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746807321} -{"event": "command_run", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746807329} -{"event": "command_ask", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746807363} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746807363} -{"event": "command_ask", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746807398} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746807398} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "ask", "prompt_tokens": 23026, "completion_tokens": 502, "total_tokens": 23528, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746807420} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746807470} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 23799, "completion_tokens": 166, "total_tokens": 23965, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746807477} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746809445} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746809445} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746809445} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746809445} -{"event": "exit", "properties": {"reason": "Completed main CLI coder.run"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746809475} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746809482} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746809482} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746809482} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746809482} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746809497} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 8097, "completion_tokens": 165, "total_tokens": 8262, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746809502} -{"event": "exit", "properties": {"reason": "Completed main CLI coder.run"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746809516} -{"event": "exit", "properties": {"reason": "Completed main CLI coder.run"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746809724} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746809985} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746809986} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746809986} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746809986} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746809996} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746809997} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746809997} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746809997} -{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810015} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810207} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810207} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810207} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810207} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810226} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810226} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810226} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810227} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810240} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 21143, "completion_tokens": 203, "total_tokens": 21346, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810247} -{"event": "command_exit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810275} -{"event": "exit", "properties": {"reason": "/exit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810275} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810280} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810281} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810281} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810281} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810324} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810324} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810324} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810325} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810335} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 22156, "completion_tokens": 681, "total_tokens": 22837, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810354} -{"event": "command_exit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810368} -{"event": "exit", "properties": {"reason": "/exit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810368} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810372} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810372} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810372} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810373} -{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810382} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810383} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810384} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810384} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810384} -{"event": "exit", "properties": {"reason": "Control-C"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810386} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810390} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810391} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810391} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810391} -{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810396} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810436} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810437} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810437} -{"event": "exit", "properties": {"reason": "Completed lint/test/commit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810441} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810453} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810454} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810454} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810454} -{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810503} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810513} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810513} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810513} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810513} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 8627, "completion_tokens": 44, "total_tokens": 8671, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810519} -{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810519} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810525} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810525} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810525} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810525} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 8428, "completion_tokens": 48, "total_tokens": 8476, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810532} -{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810532} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810538} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810539} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810539} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810539} -{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746810545} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811483} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811483} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811483} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811483} -{"event": "exit", "properties": {"reason": "Control-C"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811485} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811519} -{"event": "repo", "properties": {"num_files": 614}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811520} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811520} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811520} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811526} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811526} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811526} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811526} -{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811531} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811540} -{"event": "repo", "properties": {"num_files": 614}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811540} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811540} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811540} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811542} -{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple", "prompt_tokens": 8329, "completion_tokens": 48, "total_tokens": 8377, "cost": 0, "total_cost": 0.0}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811547} -{"event": "exit", "properties": {"reason": "Control-C"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811552} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811566} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811567} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811567} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-flash-preview-04-17", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-flash-preview-04-17", "edit_format": "diff"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811567} -{"event": "exit", "properties": {"reason": "Completed main CLI coder.run"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811569} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811575} -{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811575} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811575} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-flash-preview-04-17", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-flash-preview-04-17", "edit_format": "diff"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811575} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811595} -{"event": "exit", "properties": {"reason": "Completed main CLI coder.run"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811608} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811613} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811614} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811614} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-flash-preview-04-17", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-flash-preview-04-17", "edit_format": "diff"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811614} -{"event": "exit", "properties": {"reason": "Control-C"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811615} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811618} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811618} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811618} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811618} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811620} -{"event": "command_exit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811628} -{"event": "exit", "properties": {"reason": "/exit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811628} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811652} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811653} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811653} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811653} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811654} -{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811658} -{"event": "command_exit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811662} -{"event": "exit", "properties": {"reason": "/exit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811662} -{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811703} -{"event": "repo", "properties": {"num_files": 624}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811703} -{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811703} -{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro-exp-03-25", "weak_model": "gemini/gemini-2.5-flash-preview-04-17", "editor_model": "gemini/gemini-2.5-pro-exp-03-25", "edit_format": "udiff-simple"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811703} -{"event": "exit", "properties": {"reason": "Completed main CLI coder.run"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1746811705} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754596422} +{"event": "repo", "properties": {"num_files": 630}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754596423} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754596423} +{"event": "cli session", "properties": {"main_model": "None", "weak_model": "gemini/gemini-2.5-flash", "editor_model": "None", "edit_format": "whole"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754596423} +{"event": "command_edit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754596535} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754596591} +{"event": "command_clear", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754596608} +{"event": "command_edit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754596613} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754596675} +{"event": "message_send", "properties": {"main_model": "None", "weak_model": "gemini/gemini-2.5-flash", "editor_model": "None", "edit_format": "diff", "prompt_tokens": 17302, "completion_tokens": 87, "total_tokens": 17389, "cost": 0.0224975, "total_cost": 0.0224975}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754596723} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754596986} +{"event": "repo", "properties": {"num_files": 630}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754596986} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754596986} +{"event": "exit", "properties": {"reason": "Completed lint/test/commit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754596990} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597081} +{"event": "repo", "properties": {"num_files": 630}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597081} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597081} +{"event": "exit", "properties": {"reason": "Completed lint/test/commit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597084} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597461} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597461} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597461} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597461} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597461} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597461} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597461} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597461} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597461} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597461} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597461} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597462} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597462} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597462} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597462} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597462} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597462} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597462} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597462} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597462} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597462} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597462} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597462} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597462} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597462} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597462} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597462} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597462} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597462} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597462} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597462} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597463} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597463} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597463} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597463} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597463} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597463} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597463} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597463} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597463} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597463} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597463} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597463} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597463} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597463} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597463} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597463} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597463} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597463} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597463} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597463} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597464} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597464} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597464} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597464} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597464} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597464} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597464} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597464} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597464} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597464} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597464} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597464} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597464} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597464} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597464} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597465} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597465} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597465} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597465} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597465} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597465} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597465} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597465} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597465} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597465} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597465} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597465} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597465} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597465} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597497} +{"event": "repo", "properties": {"num_files": 630}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597498} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597498} +{"event": "exit", "properties": {"reason": "Exit flag set"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597498} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597498} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597498} +{"event": "repo", "properties": {"num_files": 630}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597498} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597498} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597498} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597511} +{"event": "gui session", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597511} +{"event": "exit", "properties": {"reason": "GUI session ended"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754597511} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600030} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600031} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600031} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600031} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600031} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600031} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600031} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600031} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600031} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600031} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600031} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600031} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600031} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600031} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600031} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600031} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600031} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600031} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600031} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600031} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600031} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600032} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600032} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600032} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600032} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600032} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600032} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600032} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600032} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600032} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600032} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600032} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600032} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600032} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600032} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600032} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600032} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600032} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600032} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600032} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600032} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600033} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600033} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600033} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600033} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600033} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600033} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600033} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600033} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600033} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600033} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600033} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600033} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600033} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600033} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600033} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600034} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600034} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600034} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600034} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600034} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600034} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600034} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600034} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600034} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600034} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600034} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600034} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600034} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600034} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600034} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600034} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600034} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600034} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600034} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600034} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600035} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600035} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600035} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600035} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600068} +{"event": "repo", "properties": {"num_files": 630}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600068} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600068} +{"event": "exit", "properties": {"reason": "Exit flag set"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600068} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600068} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600068} +{"event": "repo", "properties": {"num_files": 630}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600068} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600068} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600068} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600079} +{"event": "gui session", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600079} +{"event": "exit", "properties": {"reason": "GUI session ended"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754600079} +{"event": "command_add", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656324} +{"event": "command_edit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656335} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656441} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656462} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "gemini/gemini-2.5-flash", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656463} +{"event": "exit", "properties": {"reason": "Keyboard interrupt during model warnings"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656463} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656473} +{"event": "repo", "properties": {"num_files": 630}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656473} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656473} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656473} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656479} +{"event": "repo", "properties": {"num_files": 630}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656480} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656480} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656480} +{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656480} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656487} +{"event": "repo", "properties": {"num_files": 630}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656488} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656488} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656488} +{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656488} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656496} +{"event": "repo", "properties": {"num_files": 630}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656496} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656496} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656496} +{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656498} +{"event": "command_clear", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656500} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656511} +{"event": "message_send", "properties": {"main_model": "None", "weak_model": "gemini/gemini-2.5-flash", "editor_model": "None", "edit_format": "diff", "prompt_tokens": 33867, "completion_tokens": 1347, "total_tokens": 35214, "cost": 0.055803750000000006, "total_cost": 0.07830125}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656662} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656857} +{"event": "repo", "properties": {"num_files": 630}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656858} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656858} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656858} +{"event": "message_send", "properties": {"main_model": "None", "weak_model": "gemini/gemini-2.5-flash", "editor_model": "None", "edit_format": "diff", "prompt_tokens": 9529, "completion_tokens": 78, "total_tokens": 9607, "cost": 0.0005076499999999999, "total_cost": 0.0005076499999999999}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754656878} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754657762} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754657780} +{"event": "command_clear", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754657790} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754657804} +{"event": "message_send", "properties": {"main_model": "None", "weak_model": "gemini/gemini-2.5-flash", "editor_model": "None", "edit_format": "diff", "prompt_tokens": 34423, "completion_tokens": 318, "total_tokens": 34741, "cost": 0.04620875000000001, "total_cost": 0.12451000000000001}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754657909} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754659127} +{"event": "command_clear", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754659135} +{"event": "command_undo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754659136} +{"event": "command_drop", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754659141} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754659146} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754659355} +{"event": "message_send", "properties": {"main_model": "None", "weak_model": "gemini/gemini-2.5-flash", "editor_model": "None", "edit_format": "diff", "prompt_tokens": 24990, "completion_tokens": 1597, "total_tokens": 26587, "cost": 0.0472075, "total_cost": 0.17171750000000002}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754659469} +{"event": "command_clear", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754662848} +{"event": "command_ask", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754662853} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754662891} +{"event": "message_send", "properties": {"main_model": "None", "weak_model": "gemini/gemini-2.5-flash", "editor_model": "None", "edit_format": "ask", "prompt_tokens": 22199, "completion_tokens": 59, "total_tokens": 22258, "cost": 0.028338750000000003, "total_cost": 0.20005625000000002}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754662921} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754743653} +{"event": "message_send", "properties": {"main_model": "None", "weak_model": "gemini/gemini-2.5-flash", "editor_model": "None", "edit_format": "ask", "prompt_tokens": 22280, "completion_tokens": 912, "total_tokens": 23192, "cost": 0.03697, "total_cost": 0.23702625000000002}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754743709} +{"event": "command_code", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754743759} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754743759} +{"event": "command_chat-mode", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754743826} +{"event": "command_code", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754743828} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754743828} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754743839} +{"event": "repo", "properties": {"num_files": 630}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754743840} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754743840} +{"event": "cli session", "properties": {"main_model": "gpt-5", "weak_model": "gemini/gemini-2.5-flash", "editor_model": "gpt-5", "edit_format": "diff"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754743840} +{"event": "exit", "properties": {"reason": "Control-C"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754743842} +{"event": "command_clear", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754743882} +{"event": "command_exit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754743883} +{"event": "exit", "properties": {"reason": "/exit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754743883} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754743891} +{"event": "repo", "properties": {"num_files": 630}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754743891} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754743891} +{"event": "cli session", "properties": {"main_model": "gpt-5", "weak_model": "gemini/gemini-2.5-flash", "editor_model": "gpt-5", "edit_format": "diff"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754743892} +{"event": "command_add", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754743897} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754743914} +{"event": "message_send", "properties": {"main_model": "gpt-5", "weak_model": "gemini/gemini-2.5-flash", "editor_model": "gpt-5", "edit_format": "diff", "prompt_tokens": 24532, "completion_tokens": 930, "total_tokens": 25462, "cost": 0.039965, "total_cost": 0.039965}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754744011} +{"event": "command_exit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754744023} +{"event": "exit", "properties": {"reason": "/exit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754744023} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754744056} +{"event": "repo", "properties": {"num_files": 630}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754744057} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754744057} +{"event": "cli session", "properties": {"main_model": "gpt-5", "weak_model": "gemini/gemini-2.5-flash", "editor_model": "gpt-5", "edit_format": "diff"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754744057} +{"event": "command_edit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754744062} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754744091} +{"event": "message_send", "properties": {"main_model": "gpt-5", "weak_model": "gemini/gemini-2.5-flash", "editor_model": "gpt-5", "edit_format": "diff", "prompt_tokens": 9067, "completion_tokens": 266, "total_tokens": 9333, "cost": 0.01399375, "total_cost": 0.01399375}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754744150} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754748500} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754748501} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754748501} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754748501} +{"event": "exit", "properties": {"reason": "Completed main CLI coder.run"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754748502} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753011} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753013} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753013} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753013} +{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753014} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753045} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753051} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753051} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753051} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753190} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753192} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753192} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753192} +{"event": "message_send", "properties": {"main_model": "gpt-5", "weak_model": "gemini/gemini-2.5-flash", "editor_model": "gpt-5", "edit_format": "diff", "prompt_tokens": 5598, "completion_tokens": 169, "total_tokens": 5767, "cost": 0.0086875, "total_cost": 0.0086875}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753302} +{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753302} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753444} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753444} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753444} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753444} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753444} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753444} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753444} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753444} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753444} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753444} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753444} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753445} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753445} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753445} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753445} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753445} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753445} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753445} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753445} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753445} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753445} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753445} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753445} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753445} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753445} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753445} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753445} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753445} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753445} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753445} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753445} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753446} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753446} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753446} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753446} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753446} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753446} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753446} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753446} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753446} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753446} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753446} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753446} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753446} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753446} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753446} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753446} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753446} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753446} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753446} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753446} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753447} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753447} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753447} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753447} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753447} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753447} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753447} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753447} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753447} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753447} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753447} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753447} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753447} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753447} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753447} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753448} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753448} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753448} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753448} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753448} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753448} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753448} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753448} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753448} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753448} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753448} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753448} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753448} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753448} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753485} +{"event": "repo", "properties": {"num_files": 630}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753486} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753486} +{"event": "exit", "properties": {"reason": "Exit flag set"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753486} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753486} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753486} +{"event": "repo", "properties": {"num_files": 630}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753486} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753486} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753486} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753584} +{"event": "gui session", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753584} +{"event": "exit", "properties": {"reason": "GUI session ended"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753584} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753822} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753822} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753822} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753822} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753822} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753822} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753823} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753823} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753823} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753823} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753823} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753823} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753823} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753823} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753823} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753823} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753823} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753823} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753823} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753823} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753823} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753823} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753823} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753823} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753823} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753823} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753824} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753824} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753824} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753824} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753824} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753824} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753824} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753824} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753824} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753824} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753824} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753824} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753824} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753824} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753824} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753825} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753825} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753825} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753825} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753825} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753825} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753825} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753825} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753825} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753825} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753825} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753825} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753825} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753825} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753825} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753825} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753825} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753825} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753825} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753825} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753826} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753826} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753826} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753826} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753826} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753826} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753826} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753826} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753826} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753826} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753826} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753826} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753826} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753826} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753826} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753826} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753826} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753826} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753826} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753874} +{"event": "repo", "properties": {"num_files": 630}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753875} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753875} +{"event": "exit", "properties": {"reason": "Exit flag set"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753875} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753875} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753875} +{"event": "repo", "properties": {"num_files": 630}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753875} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753875} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753875} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753991} +{"event": "gui session", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753991} +{"event": "exit", "properties": {"reason": "GUI session ended"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754753991} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754234} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754234} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754234} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754234} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754234} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754234} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754235} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754235} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754235} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754235} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754235} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754235} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754235} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754235} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754235} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754235} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754235} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754235} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754235} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754235} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754235} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754235} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754235} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754235} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754235} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754236} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754236} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754236} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754236} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754236} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754236} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754236} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754236} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754236} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754236} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754236} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754236} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754236} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754236} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754236} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754236} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754237} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754237} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754237} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754237} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754237} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754237} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754237} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754237} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754237} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754237} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754237} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754237} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754237} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754237} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754237} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754237} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754237} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754237} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754237} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754237} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754238} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754238} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754238} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754238} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754238} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754238} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754238} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754238} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754238} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754238} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754238} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754238} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754238} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754238} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754238} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754238} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754238} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754238} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754754238} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754755056} +{"event": "repo", "properties": {"num_files": 630}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754755056} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754755056} +{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro", "weak_model": "gemini/gemini-2.5-flash", "editor_model": "gemini/gemini-2.5-pro", "edit_format": "diff-fenced"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754755056} +{"event": "exit", "properties": {"reason": "Completed main CLI coder.run"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754755058} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754761389} +{"event": "repo", "properties": {"num_files": 630}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754761389} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754761389} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754761389} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-flash-lite-preview-06-17", "weak_model": "gemini/gemini-2.5-flash", "editor_model": "gemini/gemini-2.5-flash-lite-preview-06-17", "edit_format": "diff-fenced", "prompt_tokens": 11364, "completion_tokens": 7, "total_tokens": 11371, "cost": 0.00011644, "total_cost": 0.00011644}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754761392} +{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754761392} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754761396} +{"event": "repo", "properties": {"num_files": 630}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754761397} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754761397} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754761397} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-flash-lite", "weak_model": "gemini/gemini-2.5-flash", "editor_model": "gemini/gemini-2.5-flash-lite", "edit_format": "whole", "prompt_tokens": 7744, "completion_tokens": 10, "total_tokens": 7754, "cost": 0.0007784, "total_cost": 0.0007784}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754761399} +{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754761399} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754761448} +{"event": "repo", "properties": {"num_files": 630}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754761448} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754761448} +{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-flash-lite", "weak_model": "gemini/gemini-2.5-flash", "editor_model": "gemini/gemini-2.5-flash-lite", "edit_format": "whole"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754761449} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754761451} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-flash-lite", "weak_model": "gemini/gemini-2.5-flash", "editor_model": "gemini/gemini-2.5-flash-lite", "edit_format": "whole", "prompt_tokens": 7706, "completion_tokens": 10, "total_tokens": 7716, "cost": 0.0007746, "total_cost": 0.0007746}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754761452} +{"event": "exit", "properties": {"reason": "Completed main CLI coder.run"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754761453} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754761465} +{"event": "repo", "properties": {"num_files": 630}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754761465} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754761465} +{"event": "exit", "properties": {"reason": "Completed lint/test/commit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754761467} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754930718} +{"event": "repo", "properties": {"num_files": 630}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754930719} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754930719} +{"event": "exit", "properties": {"reason": "Completed lint/test/commit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754930720} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754933180} +{"event": "repo", "properties": {"num_files": 630}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754933180} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754933180} +{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gemini/gemini-2.5-pro", "edit_format": "diff-fenced"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754933180} +{"event": "exit", "properties": {"reason": "Completed main CLI coder.run"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754933182} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754933186} +{"event": "repo", "properties": {"num_files": 630}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754933186} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754933186} +{"event": "cli session", "properties": {"main_model": "gpt-5", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gpt-5", "edit_format": "diff"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754933186} +{"event": "command_ask", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754933194} +{"event": "command_edit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754933195} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754933238} +{"event": "message_send", "properties": {"main_model": "gpt-5", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gpt-5", "edit_format": "ask", "prompt_tokens": 9039, "completion_tokens": 480, "total_tokens": 9519, "cost": 0.016098750000000002, "total_cost": 0.016098750000000002}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754933277} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754933429} +{"event": "message_send", "properties": {"main_model": "gpt-5", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gpt-5", "edit_format": "ask", "prompt_tokens": 10555, "completion_tokens": 614, "total_tokens": 11169, "cost": 0.01933375, "total_cost": 0.035432500000000006}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754933466} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754933484} +{"event": "command_add", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754933511} +{"event": "command_add", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754933518} +{"event": "command_add", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754933520} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754933531} +{"event": "message_send", "properties": {"main_model": "gpt-5", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gpt-5", "edit_format": "ask", "prompt_tokens": 11213, "completion_tokens": 402, "total_tokens": 11615, "cost": 0.01803625, "total_cost": 0.05346875000000001}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754933553} +{"event": "command_model", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754934338} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754934346} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gpt-5", "edit_format": "ask", "prompt_tokens": 10367, "completion_tokens": 152, "total_tokens": 10519, "cost": 0.014478750000000002, "total_cost": 0.06794750000000001}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754934374} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754935784} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gpt-5", "edit_format": "ask", "prompt_tokens": 14048, "completion_tokens": 99, "total_tokens": 14147, "cost": 0.018550000000000004, "total_cost": 0.0864975}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754935804} +{"event": "command_add", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754935822} +{"event": "command_paste", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754935845} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754935845} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gpt-5", "edit_format": "ask", "prompt_tokens": 14345, "completion_tokens": 191, "total_tokens": 14536, "cost": 0.019841250000000005, "total_cost": 0.10633875000000001}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754935865} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754935868} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gpt-5", "edit_format": "ask", "prompt_tokens": 16341, "completion_tokens": 329, "total_tokens": 16670, "cost": 0.02371625, "total_cost": 0.130055}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754935893} +{"event": "command_clear", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754935909} +{"event": "command_edit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754935947} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754935985} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gpt-5", "edit_format": "ask", "prompt_tokens": 13105, "completion_tokens": 305, "total_tokens": 13410, "cost": 0.01943125, "total_cost": 0.14948625000000001}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754936015} +{"event": "command_code", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754936019} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754936019} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gpt-5", "edit_format": "diff-fenced", "prompt_tokens": 15838, "completion_tokens": 219, "total_tokens": 16057, "cost": 0.021987500000000004, "total_cost": 0.17147375}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754936041} +{"event": "command_paste", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754938389} +{"event": "command_paste", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754938401} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754938425} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gpt-5", "edit_format": "ask", "prompt_tokens": 15599, "completion_tokens": 419, "total_tokens": 16018, "cost": 0.02368875, "total_cost": 0.19516250000000002}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754938476} +{"event": "command_code", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754938512} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754938512} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gpt-5", "edit_format": "diff-fenced", "prompt_tokens": 16555, "completion_tokens": 442, "total_tokens": 16997, "cost": 0.02511375, "total_cost": 0.22027625}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754938570} +{"event": "command_paste", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754938670} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754938672} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gpt-5", "edit_format": "ask", "prompt_tokens": 15547, "completion_tokens": 236, "total_tokens": 15783, "cost": 0.021793750000000004, "total_cost": 0.24207}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754938709} +{"event": "command_clear", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754938928} +{"event": "command_model", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754938931} +{"event": "command_reasoning-effort", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754938934} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754938947} +{"event": "message_send", "properties": {"main_model": "gpt-5", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gpt-5", "edit_format": "ask", "prompt_tokens": 13076, "completion_tokens": 242, "total_tokens": 13318, "cost": 0.018765000000000004, "total_cost": 0.26083500000000004}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754938998} +{"event": "command_clear", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754939180} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754939197} +{"event": "message_send", "properties": {"main_model": "gpt-5", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gpt-5", "edit_format": "ask", "prompt_tokens": 13093, "completion_tokens": 370, "total_tokens": 13463, "cost": 0.02006625, "total_cost": 0.28090125000000005}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754939266} +{"event": "command_clear", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754939471} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754939472} +{"event": "message_send", "properties": {"main_model": "gpt-5", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gpt-5", "edit_format": "ask", "prompt_tokens": 13026, "completion_tokens": 346, "total_tokens": 13372, "cost": 0.019742500000000003, "total_cost": 0.30064375000000004}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754939515} +{"event": "command_code", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754939561} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754939561} +{"event": "message_send", "properties": {"main_model": "gpt-5", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gpt-5", "edit_format": "diff", "prompt_tokens": 15724, "completion_tokens": 557, "total_tokens": 16281, "cost": 0.025225000000000004, "total_cost": 0.32586875000000004}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754939680} +{"event": "command_paste", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754939951} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754939953} +{"event": "message_send", "properties": {"main_model": "gpt-5", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gpt-5", "edit_format": "ask", "prompt_tokens": 14953, "completion_tokens": 386, "total_tokens": 15339, "cost": 0.022551250000000002, "total_cost": 0.34842000000000006}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754940056} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754940444} +{"event": "message_send", "properties": {"main_model": "gpt-5", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gpt-5", "edit_format": "ask", "prompt_tokens": 15349, "completion_tokens": 275, "total_tokens": 15624, "cost": 0.02193625, "total_cost": 0.37035625000000005}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754940489} +{"event": "command_code", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754940788} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754940788} +{"event": "message_send", "properties": {"main_model": "gpt-5", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gpt-5", "edit_format": "diff", "prompt_tokens": 17199, "completion_tokens": 302, "total_tokens": 17501, "cost": 0.02451875, "total_cost": 0.39487500000000003}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754940881} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754941211} +{"event": "message_send", "properties": {"main_model": "gpt-5", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gpt-5", "edit_format": "ask", "prompt_tokens": 15569, "completion_tokens": 208, "total_tokens": 15777, "cost": 0.021541250000000005, "total_cost": 0.41641625000000004}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754941379} +{"event": "command_code", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754942025} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754942025} +{"event": "message_send", "properties": {"main_model": "gpt-5", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gpt-5", "edit_format": "diff", "prompt_tokens": 17425, "completion_tokens": 107, "total_tokens": 17532, "cost": 0.022851250000000004, "total_cost": 0.43926750000000003}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754942076} +{"event": "exit", "properties": {"reason": "Completed main CLI coder.run"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1754944311} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755004879} +{"event": "repo", "properties": {"num_files": 631}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755004880} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755004880} +{"event": "cli session", "properties": {"main_model": "o3-pro", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gpt-4.1", "edit_format": "diff"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755004880} +{"event": "command_ask", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755004902} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755004902} +{"event": "message_send", "properties": {"main_model": "o3-pro", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gpt-4.1", "edit_format": "ask", "prompt_tokens": 7420, "completion_tokens": 616, "total_tokens": 8036, "cost": 0.19768000000000002, "total_cost": 0.19768000000000002}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755004942} +{"event": "command_code", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755004948} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755004948} +{"event": "command_clear", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755004961} +{"event": "command_paste", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755004990} +{"event": "command_ask", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755005009} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755005009} +{"event": "message_send", "properties": {"main_model": "o3-pro", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gpt-4.1", "edit_format": "ask", "prompt_tokens": 7438, "completion_tokens": 1987, "total_tokens": 9425, "cost": 0.30772, "total_cost": 0.5054000000000001}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755005114} +{"event": "command_code", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755005139} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755005139} +{"event": "message_send", "properties": {"main_model": "o3-pro", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gpt-4.1", "edit_format": "diff", "prompt_tokens": 9835, "completion_tokens": 807, "total_tokens": 10642, "cost": 0.26126000000000005, "total_cost": 0.7666600000000001}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755005204} +{"event": "command_undo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755005241} +{"event": "command_clear", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755005605} +{"event": "command_ask", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755005607} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755005622} +{"event": "message_send", "properties": {"main_model": "o3-pro", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gpt-4.1", "edit_format": "ask", "prompt_tokens": 7375, "completion_tokens": 1142, "total_tokens": 8517, "cost": 0.23886000000000002, "total_cost": 1.0055200000000002}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755005682} +{"event": "exit", "properties": {"reason": "Completed main CLI coder.run"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755005775} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755005802} +{"event": "repo", "properties": {"num_files": 631}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755005802} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755005802} +{"event": "exit", "properties": {"reason": "Completed lint/test/commit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755005803} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755048059} +{"event": "repo", "properties": {"num_files": 631}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755048059} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755048059} +{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gemini/gemini-2.5-pro", "edit_format": "diff-fenced"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755048059} +{"event": "command_add", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755048062} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755048090} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gemini/gemini-2.5-pro", "edit_format": "diff-fenced", "prompt_tokens": 25454, "completion_tokens": 3540, "total_tokens": 28994, "cost": 0.06721750000000001, "total_cost": 0.06721750000000001}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755048217} +{"event": "exit", "properties": {"reason": "Completed main CLI coder.run"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755097040} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099878} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099878} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099878} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099878} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099878} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099878} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099878} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099878} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099878} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099878} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099878} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099878} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099878} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099878} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099878} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099878} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099879} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099879} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099879} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099879} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099879} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099879} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099879} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099879} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099879} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099879} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099879} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099879} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099879} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099879} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099879} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099880} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099880} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099880} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099880} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099880} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099880} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099880} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099880} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099880} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099880} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099880} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099880} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099880} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099880} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099880} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099880} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099880} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099880} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099880} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099880} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099881} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099881} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099881} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099881} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099881} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099881} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099881} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099881} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099881} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099881} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099881} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099881} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099881} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099881} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099881} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099881} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099881} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099881} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099881} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099881} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099882} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099882} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099882} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099882} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099882} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099882} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099882} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099882} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099882} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099914} +{"event": "repo", "properties": {"num_files": 631}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099914} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099914} +{"event": "exit", "properties": {"reason": "Exit flag set"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099914} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099914} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099914} +{"event": "repo", "properties": {"num_files": 631}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099914} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099914} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099914} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099935} +{"event": "gui session", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099935} +{"event": "exit", "properties": {"reason": "GUI session ended"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755099935} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755100327} +{"event": "repo", "properties": {"num_files": 631}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755100327} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755100327} +{"event": "cli session", "properties": {"main_model": "gemini/gemini-2.5-pro", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gemini/gemini-2.5-pro", "edit_format": "diff-fenced"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755100327} +{"event": "command_ask", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755100329} +{"event": "command_paste", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755100352} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755100352} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gemini/gemini-2.5-pro", "edit_format": "ask", "prompt_tokens": 10006, "completion_tokens": 81, "total_tokens": 10087, "cost": 0.013317500000000001, "total_cost": 0.013317500000000001}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755100406} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755100791} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gemini/gemini-2.5-pro", "edit_format": "ask", "prompt_tokens": 10829, "completion_tokens": 591, "total_tokens": 11420, "cost": 0.01944625, "total_cost": 0.03276375}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755100863} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755102232} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gemini/gemini-2.5-pro", "edit_format": "ask", "prompt_tokens": 11436, "completion_tokens": 162, "total_tokens": 11598, "cost": 0.015915000000000002, "total_cost": 0.04867875000000001}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755102250} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755102403} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gemini/gemini-2.5-pro", "edit_format": "ask", "prompt_tokens": 11631, "completion_tokens": 72, "total_tokens": 11703, "cost": 0.015258750000000001, "total_cost": 0.06393750000000001}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755102419} +{"event": "command_code", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755105446} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755105446} +{"event": "command_code", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755105454} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755105454} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-2.5-pro", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gemini/gemini-2.5-pro", "edit_format": "diff-fenced", "prompt_tokens": 14046, "completion_tokens": 62, "total_tokens": 14108, "cost": 0.0181775, "total_cost": 0.08211500000000001}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755105459} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755106216} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755106216} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755106216} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755106216} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1755106216} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1759166990} +{"event": "repo", "properties": {"num_files": 633}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1759166990} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1759166990} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1759166999} +{"event": "repo", "properties": {"num_files": 633}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1759167000} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1759167000} +{"event": "exit", "properties": {"reason": "Completed lint/test/commit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1759167001} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666075} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666076} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666076} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666076} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666076} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666076} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666076} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666076} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666076} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666076} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666076} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666076} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666076} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666076} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666076} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666076} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666076} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666076} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666076} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666076} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666076} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666076} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666076} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666076} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666076} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666076} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666077} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666077} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666077} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666077} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666077} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666077} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666077} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666077} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666077} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666077} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666077} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666077} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666077} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666077} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666077} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666077} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666077} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666077} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666077} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666077} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666078} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666078} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666078} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666078} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666078} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666078} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666078} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666078} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666078} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666078} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666078} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666078} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666078} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666078} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666078} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666078} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666078} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666078} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666078} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666078} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666079} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666079} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666079} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666079} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666079} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666079} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666079} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666079} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666079} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666079} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666079} +{"event": "no-repo", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666079} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666079} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666079} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666108} +{"event": "repo", "properties": {"num_files": 635}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666109} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666109} +{"event": "exit", "properties": {"reason": "Exit flag set"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666109} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666109} +{"event": "model warning", "properties": {"main_model": "None", "weak_model": "None", "editor_model": "None"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666109} +{"event": "repo", "properties": {"num_files": 635}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666109} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666109} +{"event": "exit", "properties": {"reason": "Unknown edit format"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666109} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666132} +{"event": "gui session", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666132} +{"event": "exit", "properties": {"reason": "GUI session ended"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763666132} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763766579} +{"event": "repo", "properties": {"num_files": 635}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763766579} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763766579} +{"event": "cli session", "properties": {"main_model": "gemini/gemini-3-pro-preview", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gemini/gemini-3-pro-preview", "edit_format": "diff-fenced"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763766579} +{"event": "command_run", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763766585} +{"event": "command_add", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763766594} +{"event": "command_add", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763766596} +{"event": "command_ask", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763766598} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763766615} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-3-pro-preview", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gemini/gemini-3-pro-preview", "edit_format": "ask", "prompt_tokens": 25709, "completion_tokens": 321, "total_tokens": 26030, "cost": 0.05527, "total_cost": 0.05527}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763766666} +{"event": "command_reasoning-effort", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763767274} +{"event": "command_run", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763767286} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763767289} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-3-pro-preview", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gemini/gemini-3-pro-preview", "edit_format": "ask", "prompt_tokens": 26356, "completion_tokens": 275, "total_tokens": 26631, "cost": 0.05601199999999999, "total_cost": 0.11128199999999999}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763767312} +{"event": "command_code", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763767322} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763767322} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-3-pro-preview", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gemini/gemini-3-pro-preview", "edit_format": "diff-fenced", "prompt_tokens": 28932, "completion_tokens": 258, "total_tokens": 29190, "cost": 0.06096, "total_cost": 0.172242}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1763767333} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1764387139} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1764387146} +{"event": "repo", "properties": {"num_files": 635}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1764387147} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1764387147} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1764387147} +{"event": "exit", "properties": {"reason": "Completed --message"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1764387186} +{"event": "exit", "properties": {"reason": "Completed main CLI coder.run"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1764800794} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082484} +{"event": "model warning", "properties": {"main_model": "gemini/REDACTED", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gemini/REDACTED"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082486} +{"event": "repo", "properties": {"num_files": 635}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082488} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082488} +{"event": "cli session", "properties": {"main_model": "gemini/REDACTED", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gemini/REDACTED", "edit_format": "whole"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082488} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082490} +{"event": "exit", "properties": {"reason": "Completed main CLI coder.run"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082500} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082505} +{"event": "repo", "properties": {"num_files": 635}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082505} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082505} +{"event": "cli session", "properties": {"main_model": "gemini/gemini-3-flash-preview", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gemini/gemini-3-flash-preview", "edit_format": "whole"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082505} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082508} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-3-flash-preview", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gemini/gemini-3-flash-preview", "edit_format": "whole", "prompt_tokens": 9566, "completion_tokens": 44, "total_tokens": 9610, "cost": 0.004915, "total_cost": 0.004915}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082511} +{"event": "command_chat-mode", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082533} +{"event": "command_chat-mode", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082537} +{"event": "command_add", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082545} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082563} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-3-flash-preview", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gemini/gemini-3-flash-preview", "edit_format": "diff-fenced", "prompt_tokens": 28242, "completion_tokens": 276, "total_tokens": 28518, "cost": 0.014949, "total_cost": 0.019864}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082572} +{"event": "exit", "properties": {"reason": "Completed main CLI coder.run"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082585} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082588} +{"event": "repo", "properties": {"num_files": 635}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082589} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082589} +{"event": "cli session", "properties": {"main_model": "gemini/gemini-3-flash-preview", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gemini/gemini-3-flash-preview", "edit_format": "diff-fenced"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082589} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082592} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-3-flash-preview", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gemini/gemini-3-flash-preview", "edit_format": "diff-fenced", "prompt_tokens": 11441, "completion_tokens": 36, "total_tokens": 11477, "cost": 0.0058284999999999995, "total_cost": 0.0058284999999999995}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082601} +{"event": "command_exit", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082604} +{"event": "exit", "properties": {"reason": "/exit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082604} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082784} +{"event": "repo", "properties": {"num_files": 635}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082784} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082784} +{"event": "cli session", "properties": {"main_model": "gemini/gemini-3-flash-preview", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gemini/gemini-3-flash-preview", "edit_format": "diff-fenced"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082784} +{"event": "command_ask", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082798} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082805} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-3-flash-preview", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gemini/gemini-3-flash-preview", "edit_format": "ask", "prompt_tokens": 33123, "completion_tokens": 119, "total_tokens": 33242, "cost": 0.0169185, "total_cost": 0.0169185}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082812} +{"event": "command_code", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082826} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082826} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-3-flash-preview", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gemini/gemini-3-flash-preview", "edit_format": "diff-fenced", "prompt_tokens": 35613, "completion_tokens": 86, "total_tokens": 35699, "cost": 0.0180645, "total_cost": 0.034983}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082831} +{"event": "command_code", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082856} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082858} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-3-flash-preview", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gemini/gemini-3-flash-preview", "edit_format": "diff-fenced", "prompt_tokens": 34442, "completion_tokens": 115, "total_tokens": 34557, "cost": 0.017566000000000002, "total_cost": 0.052549}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082870} +{"event": "message_send_starting", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082885} +{"event": "message_send", "properties": {"main_model": "gemini/gemini-3-flash-preview", "weak_model": "gemini/gemini-2.5-flash-lite", "editor_model": "gemini/gemini-3-flash-preview", "edit_format": "diff-fenced", "prompt_tokens": 34631, "completion_tokens": 102, "total_tokens": 34733, "cost": 0.0176215, "total_cost": 0.0701705}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082891} +{"event": "exit", "properties": {"reason": "Completed main CLI coder.run"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082968} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082994} +{"event": "repo", "properties": {"num_files": 635}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082995} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082995} +{"event": "exit", "properties": {"reason": "Completed lint/test/commit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766082995} +{"event": "launched", "properties": {}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766083018} +{"event": "repo", "properties": {"num_files": 635}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766083019} +{"event": "auto_commits", "properties": {"enabled": true}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766083019} +{"event": "exit", "properties": {"reason": "Completed lint/test/commit"}, "user_id": "c42c4e6b-f054-44d7-ae1f-6726cc41da88", "time": 1766083022} diff --git a/aider/website/assets/sample.aider.conf.yml b/aider/website/assets/sample.aider.conf.yml index 7fe9459bf..f79b13dfb 100644 --- a/aider/website/assets/sample.aider.conf.yml +++ b/aider/website/assets/sample.aider.conf.yml @@ -4,7 +4,7 @@ # Place in your home dir, or at the root of your git repo. ########################################################## -# Note: You can only put OpenAI and Anthropic API keys in the yaml +# Note: You can only put OpenAI and Anthropic API keys in the YAML # config file. Keys for all APIs can be stored in a .env file # https://aider.chat/docs/config/dotenv.html @@ -83,7 +83,7 @@ ## Set the reasoning_effort API parameter (default: not set) #reasoning-effort: xxx -## Set the thinking token budget for models that support it (default: not set) +## Set the thinking token budget for models that support it. Use 0 to disable. (default: not set) #thinking-tokens: xxx ## Verify the SSL cert when connecting to models (default: True) @@ -212,6 +212,9 @@ ## Enable/disable adding .aider* to .gitignore (default: True) #gitignore: true +## Enable/disable the addition of files listed in .gitignore to Aider's editing scope. +#add-gitignore-files: false + ## Specify the aider ignore file (default: .aiderignore in git root) #aiderignore: .aiderignore @@ -236,8 +239,8 @@ ## Prefix all commit messages with 'aider: ' (default: False) #attribute-commit-message-committer: false -## Attribute aider edits using the Co-authored-by trailer in the commit message (default: False). If True, this takes precedence over default --attribute-author and --attribute-committer behavior unless they are explicitly set to True. -#attribute-co-authored-by: false +## Attribute aider edits using the Co-authored-by trailer in the commit message (default: True). If True, this takes precedence over default --attribute-author and --attribute-committer behavior unless they are explicitly set to True. +#attribute-co-authored-by: true ## Enable/disable git pre-commit hooks with --no-verify (default: False) #git-commit-verify: false @@ -295,6 +298,12 @@ ## Permanently disable analytics #analytics-disable: false +## Send analytics to custom PostHog instance +#analytics-posthog-host: xxx + +## Send analytics to custom PostHog project +#analytics-posthog-project-api-key: xxx + ############ # Upgrading: @@ -386,6 +395,9 @@ ## Specify the language to use in the chat (default: None, uses system settings) #chat-language: xxx +## Specify the language to use in the commit message (default: None, user language) +#commit-language: xxx + ## Always say yes to every confirmation #yes-always: false diff --git a/aider/website/assets/sample.env b/aider/website/assets/sample.env index 6d2a032cd..29ab1a386 100644 --- a/aider/website/assets/sample.env +++ b/aider/website/assets/sample.env @@ -72,7 +72,7 @@ ## Set the reasoning_effort API parameter (default: not set) #AIDER_REASONING_EFFORT= -## Set the thinking token budget for models that support it (default: not set) +## Set the thinking token budget for models that support it. Use 0 to disable. (default: not set) #AIDER_THINKING_TOKENS= ## Verify the SSL cert when connecting to models (default: True) @@ -201,6 +201,9 @@ ## Enable/disable adding .aider* to .gitignore (default: True) #AIDER_GITIGNORE=true +## Enable/disable the addition of files listed in .gitignore to Aider's editing scope. +#AIDER_ADD_GITIGNORE_FILES=false + ## Specify the aider ignore file (default: .aiderignore in git root) #AIDER_AIDERIGNORE=.aiderignore @@ -225,8 +228,8 @@ ## Prefix all commit messages with 'aider: ' (default: False) #AIDER_ATTRIBUTE_COMMIT_MESSAGE_COMMITTER=false -## Attribute aider edits using the Co-authored-by trailer in the commit message (default: False). If True, this takes precedence over default --attribute-author and --attribute-committer behavior unless they are explicitly set to True. -#AIDER_ATTRIBUTE_CO_AUTHORED_BY=false +## Attribute aider edits using the Co-authored-by trailer in the commit message (default: True). If True, this takes precedence over default --attribute-author and --attribute-committer behavior unless they are explicitly set to True. +#AIDER_ATTRIBUTE_CO_AUTHORED_BY=true ## Enable/disable git pre-commit hooks with --no-verify (default: False) #AIDER_GIT_COMMIT_VERIFY=false @@ -279,6 +282,12 @@ ## Permanently disable analytics #AIDER_ANALYTICS_DISABLE=false +## Send analytics to custom PostHog instance +#AIDER_ANALYTICS_POSTHOG_HOST= + +## Send analytics to custom PostHog project +#AIDER_ANALYTICS_POSTHOG_PROJECT_API_KEY= + ############ # Upgrading: @@ -357,6 +366,9 @@ ## Specify the language to use in the chat (default: None, uses system settings) #AIDER_CHAT_LANGUAGE= +## Specify the language to use in the commit message (default: None, user language) +#AIDER_COMMIT_LANGUAGE= + ## Always say yes to every confirmation #AIDER_YES_ALWAYS= diff --git a/aider/website/docs/config/adv-model-settings.md b/aider/website/docs/config/adv-model-settings.md index 311dec9ce..f2fec67be 100644 --- a/aider/website/docs/config/adv-model-settings.md +++ b/aider/website/docs/config/adv-model-settings.md @@ -81,7 +81,7 @@ You can override or add settings for any model by creating a `.aider.model.setti If the files above exist, they will be loaded in that order. Files loaded last will take priority. -The yaml file should be a list of dictionary objects for each model. +The YAML file should be a list of dictionary objects for each model. ### Passing extra params to litellm.completion @@ -158,6 +158,34 @@ cog.out("```\n") system_prompt_prefix: null accepts_settings: null +- name: anthropic.claude-opus-4-20250514-v1:0 + edit_format: diff + weak_model_name: anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 32000 + cache_control: true + editor_model_name: anthropic.claude-sonnet-4-20250514-v1:0 + editor_edit_format: editor-diff + accepts_settings: + - thinking_tokens + +- name: anthropic.claude-sonnet-4-20250514-v1:0 + edit_format: diff + weak_model_name: anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 64000 + cache_control: true + editor_model_name: anthropic.claude-sonnet-4-20250514-v1:0 + editor_edit_format: editor-diff + accepts_settings: + - thinking_tokens + - name: anthropic/claude-3-5-haiku-20241022 edit_format: diff weak_model_name: anthropic/claude-3-5-haiku-20241022 @@ -246,6 +274,34 @@ cog.out("```\n") anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25 cache_control: true +- name: anthropic/claude-opus-4-20250514 + edit_format: diff + weak_model_name: anthropic/claude-3-5-haiku-20241022 + use_repo_map: true + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 32000 + cache_control: true + editor_model_name: anthropic/claude-sonnet-4-20250514 + editor_edit_format: editor-diff + accepts_settings: + - thinking_tokens + +- name: anthropic/claude-sonnet-4-20250514 + edit_format: diff + weak_model_name: anthropic/claude-3-5-haiku-20241022 + use_repo_map: true + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 64000 + cache_control: true + editor_model_name: anthropic/claude-sonnet-4-20250514 + editor_edit_format: editor-diff + accepts_settings: + - thinking_tokens + - name: azure/gpt-4.1 edit_format: diff weak_model_name: azure/gpt-4.1-mini @@ -258,6 +314,139 @@ cog.out("```\n") use_repo_map: true reminder: sys +- name: azure/gpt-5 + edit_format: diff + weak_model_name: azure/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: azure/gpt-5-2025-08-07 + edit_format: diff + weak_model_name: azure/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: azure/gpt-5-chat + edit_format: diff + weak_model_name: azure/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: azure/gpt-5-chat-latest + edit_format: diff + weak_model_name: azure/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: azure/gpt-5-mini + edit_format: diff + weak_model_name: azure/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: azure/gpt-5-mini-2025-08-07 + edit_format: diff + weak_model_name: azure/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: azure/gpt-5-nano + edit_format: diff + weak_model_name: azure/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: azure/gpt-5-nano-2025-08-07 + edit_format: diff + weak_model_name: azure/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: azure/gpt-5-pro + edit_format: diff + weak_model_name: azure/gpt-5-mini + use_repo_map: true + examples_as_sys_msg: true + use_temperature: false + streaming: false + editor_model_name: azure/gpt-5 + editor_edit_format: editor-diff + system_prompt_prefix: 'Formatting re-enabled. ' + accepts_settings: + - reasoning_effort + +- name: azure/gpt-5.1 + edit_format: diff + weak_model_name: azure/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: azure/gpt-5.1-2025-11-13 + edit_format: diff + weak_model_name: azure/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: azure/gpt-5.1-chat + edit_format: diff + weak_model_name: azure/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: azure/gpt-5.1-chat-latest + edit_format: diff + weak_model_name: azure/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: azure/gpt-5.2 + edit_format: diff + weak_model_name: azure/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: azure/gpt-5.2-2025-12-11 + edit_format: diff + weak_model_name: azure/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: azure/gpt-5.2-chat-latest + edit_format: diff + weak_model_name: azure/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + - name: azure/o1 edit_format: diff weak_model_name: azure/gpt-4o-mini @@ -309,6 +498,18 @@ cog.out("```\n") accepts_settings: - reasoning_effort +- name: azure/o3-pro + edit_format: diff + weak_model_name: azure/gpt-4.1-mini + use_repo_map: true + examples_as_sys_msg: true + streaming: false + editor_model_name: azure/gpt-4.1 + editor_edit_format: editor-diff + system_prompt_prefix: 'Formatting re-enabled. ' + accepts_settings: + - reasoning_effort + - name: azure/o4-mini edit_format: diff weak_model_name: azure/gpt-4.1-mini @@ -407,6 +608,34 @@ cog.out("```\n") accepts_settings: - thinking_tokens +- name: bedrock/anthropic.claude-sonnet-4-20250514-v1:0 + edit_format: diff + weak_model_name: bedrock/anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 64000 + cache_control: true + editor_model_name: bedrock/anthropic.claude-sonnet-4-20250514-v1:0 + editor_edit_format: editor-diff + accepts_settings: + - thinking_tokens + +- name: bedrock/global.anthropic.claude-sonnet-4-5-20250929-v1:0 + edit_format: diff + weak_model_name: bedrock/anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 64000 + cache_control: true + editor_model_name: bedrock/global.anthropic.claude-sonnet-4-5-20250929-v1:0 + editor_edit_format: editor-diff + accepts_settings: + - thinking_tokens + - name: bedrock/us.anthropic.claude-3-7-sonnet-20250219-v1:0 edit_format: diff weak_model_name: bedrock/us.anthropic.claude-3-5-haiku-20241022-v1:0 @@ -423,6 +652,20 @@ cog.out("```\n") accepts_settings: - thinking_tokens +- name: bedrock/us.anthropic.claude-sonnet-4-20250514-v1:0 + edit_format: diff + weak_model_name: bedrock/us.anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 64000 + cache_control: true + editor_model_name: bedrock/us.anthropic.claude-sonnet-4-20250514-v1:0 + editor_edit_format: editor-diff + accepts_settings: + - thinking_tokens + - name: bedrock_converse/anthropic.claude-3-7-sonnet-20250219-v1:0 edit_format: diff weak_model_name: bedrock_converse/anthropic.claude-3-5-haiku-20241022-v1:0 @@ -439,6 +682,62 @@ cog.out("```\n") accepts_settings: - thinking_tokens +- name: bedrock_converse/anthropic.claude-opus-4-20250514-v1:0 + edit_format: diff + weak_model_name: bedrock_converse/anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 32000 + cache_control: true + editor_model_name: bedrock_converse/anthropic.claude-sonnet-4-20250514-v1:0 + editor_edit_format: editor-diff + accepts_settings: + - thinking_tokens + +- name: bedrock_converse/anthropic.claude-sonnet-4-20250514-v1:0 + edit_format: diff + weak_model_name: bedrock_converse/anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 64000 + cache_control: true + editor_model_name: bedrock_converse/anthropic.claude-sonnet-4-20250514-v1:0 + editor_edit_format: editor-diff + accepts_settings: + - thinking_tokens + +- name: bedrock_converse/eu.anthropic.claude-opus-4-20250514-v1:0 + edit_format: diff + weak_model_name: bedrock_converse/eu.anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 32000 + cache_control: true + editor_model_name: bedrock_converse/eu.anthropic.claude-sonnet-4-20250514-v1:0 + editor_edit_format: editor-diff + accepts_settings: + - thinking_tokens + +- name: bedrock_converse/eu.anthropic.claude-sonnet-4-20250514-v1:0 + edit_format: diff + weak_model_name: bedrock_converse/eu.anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 64000 + cache_control: true + editor_model_name: bedrock_converse/eu.anthropic.claude-sonnet-4-20250514-v1:0 + editor_edit_format: editor-diff + accepts_settings: + - thinking_tokens + - name: bedrock_converse/us.anthropic.claude-3-7-sonnet-20250219-v1:0 edit_format: diff weak_model_name: bedrock_converse/us.anthropic.claude-3-5-haiku-20241022-v1:0 @@ -455,6 +754,34 @@ cog.out("```\n") accepts_settings: - thinking_tokens +- name: bedrock_converse/us.anthropic.claude-opus-4-20250514-v1:0 + edit_format: diff + weak_model_name: bedrock_converse/us.anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 32000 + cache_control: true + editor_model_name: bedrock_converse/us.anthropic.claude-sonnet-4-20250514-v1:0 + editor_edit_format: editor-diff + accepts_settings: + - thinking_tokens + +- name: bedrock_converse/us.anthropic.claude-sonnet-4-20250514-v1:0 + edit_format: diff + weak_model_name: bedrock_converse/us.anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 64000 + cache_control: true + editor_model_name: bedrock_converse/us.anthropic.claude-sonnet-4-20250514-v1:0 + editor_edit_format: editor-diff + accepts_settings: + - thinking_tokens + - name: claude-3-5-haiku-20241022 edit_format: diff weak_model_name: claude-3-5-haiku-20241022 @@ -538,6 +865,34 @@ cog.out("```\n") - name: claude-3-sonnet-20240229 weak_model_name: claude-3-5-haiku-20241022 +- name: claude-opus-4-20250514 + edit_format: diff + weak_model_name: claude-3-5-haiku-20241022 + use_repo_map: true + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 32000 + cache_control: true + editor_model_name: claude-sonnet-4-20250514 + editor_edit_format: editor-diff + accepts_settings: + - thinking_tokens + +- name: claude-sonnet-4-20250514 + edit_format: diff + weak_model_name: claude-3-5-haiku-20241022 + use_repo_map: true + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 64000 + cache_control: true + editor_model_name: claude-sonnet-4-20250514 + editor_edit_format: editor-diff + accepts_settings: + - thinking_tokens + - name: cohere_chat/command-a-03-2025 examples_as_sys_msg: true @@ -594,12 +949,40 @@ cog.out("```\n") use_repo_map: true examples_as_sys_msg: true extra_params: - max_tokens: 8192 + max_tokens: 64000 caches_by_default: true use_temperature: false editor_model_name: deepseek/deepseek-chat editor_edit_format: editor-diff +- name: eu.anthropic.claude-opus-4-20250514-v1:0 + edit_format: diff + weak_model_name: eu.anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 32000 + cache_control: true + editor_model_name: eu.anthropic.claude-sonnet-4-20250514-v1:0 + editor_edit_format: editor-diff + accepts_settings: + - thinking_tokens + +- name: eu.anthropic.claude-sonnet-4-20250514-v1:0 + edit_format: diff + weak_model_name: eu.anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 64000 + cache_control: true + editor_model_name: eu.anthropic.claude-sonnet-4-20250514-v1:0 + editor_edit_format: editor-diff + accepts_settings: + - thinking_tokens + - name: fireworks_ai/accounts/fireworks/models/deepseek-r1 edit_format: diff weak_model_name: fireworks_ai/accounts/fireworks/models/deepseek-v3 @@ -649,8 +1032,6 @@ cog.out("```\n") - name: gemini/gemini-1.5-flash-002 -- name: gemini/gemini-1.5-flash-exp-0827 - - name: gemini/gemini-1.5-pro edit_format: diff-fenced use_repo_map: true @@ -659,10 +1040,6 @@ cog.out("```\n") edit_format: diff use_repo_map: true -- name: gemini/gemini-1.5-pro-exp-0827 - edit_format: diff-fenced - use_repo_map: true - - name: gemini/gemini-1.5-pro-latest edit_format: diff-fenced use_repo_map: true @@ -675,6 +1052,22 @@ cog.out("```\n") edit_format: diff use_repo_map: true +- name: gemini/gemini-2.5-flash + edit_format: diff-fenced + use_repo_map: true + overeager: true + use_temperature: false + accepts_settings: + - thinking_tokens + +- name: gemini/gemini-2.5-flash-lite-preview-06-17 + edit_format: diff-fenced + use_repo_map: true + overeager: true + use_temperature: false + accepts_settings: + - thinking_tokens + - name: gemini/gemini-2.5-flash-preview-04-17 edit_format: diff use_repo_map: true @@ -682,6 +1075,15 @@ cog.out("```\n") - reasoning_effort - thinking_tokens +- name: gemini/gemini-2.5-pro + edit_format: diff-fenced + weak_model_name: gemini/gemini-2.5-flash + use_repo_map: true + overeager: true + use_temperature: false + accepts_settings: + - thinking_tokens + - name: gemini/gemini-2.5-pro-exp-03-25 edit_format: diff-fenced weak_model_name: gemini/gemini-2.5-flash-preview-04-17 @@ -700,13 +1102,30 @@ cog.out("```\n") use_repo_map: true overeager: true -- name: gemini/gemini-exp-1114 - edit_format: diff +- name: gemini/gemini-2.5-pro-preview-06-05 + edit_format: diff-fenced + weak_model_name: gemini/gemini-2.5-flash-preview-04-17 use_repo_map: true + overeager: true + accepts_settings: + - thinking_tokens -- name: gemini/gemini-exp-1121 - edit_format: diff +- name: gemini/gemini-3-flash-preview + edit_format: diff-fenced use_repo_map: true + overeager: true + use_temperature: false + accepts_settings: + - thinking_tokens + +- name: gemini/gemini-3-pro-preview + edit_format: diff-fenced + weak_model_name: gemini/gemini-2.5-flash + use_repo_map: true + overeager: true + use_temperature: false + accepts_settings: + - thinking_tokens - name: gemini/gemini-exp-1206 edit_format: diff @@ -841,6 +1260,171 @@ cog.out("```\n") lazy: true reminder: sys +- name: gpt-5 + edit_format: diff + weak_model_name: gpt-5-nano + use_repo_map: true + overeager: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: gpt-5-2025-08-07 + edit_format: diff + weak_model_name: gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: gpt-5-chat + edit_format: diff + weak_model_name: gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: gpt-5-chat-latest + edit_format: diff + weak_model_name: gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: gpt-5-codex + edit_format: diff + weak_model_name: gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: gpt-5-mini + edit_format: diff + weak_model_name: gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: gpt-5-mini-2025-08-07 + edit_format: diff + weak_model_name: gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: gpt-5-nano + edit_format: diff + weak_model_name: gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: gpt-5-nano-2025-08-07 + edit_format: diff + weak_model_name: gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: gpt-5-pro + edit_format: diff + weak_model_name: gpt-5-mini + use_repo_map: true + examples_as_sys_msg: true + use_temperature: false + streaming: false + editor_model_name: gpt-5 + editor_edit_format: editor-diff + system_prompt_prefix: 'Formatting re-enabled. ' + accepts_settings: + - reasoning_effort + +- name: gpt-5.1 + edit_format: diff + weak_model_name: gpt-5-nano + use_repo_map: true + overeager: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: gpt-5.1-2025-11-13 + edit_format: diff + weak_model_name: gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: gpt-5.1-chat + edit_format: diff + weak_model_name: gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: gpt-5.1-chat-latest + edit_format: diff + weak_model_name: gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: gpt-5.1-codex + edit_format: diff + weak_model_name: gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: gpt-5.2 + edit_format: diff + weak_model_name: gpt-5-nano + use_repo_map: true + overeager: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: gpt-5.2-2025-12-11 + edit_format: diff + weak_model_name: gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: gpt-5.2-chat-latest + edit_format: diff + weak_model_name: gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: gpt-5.2-pro + edit_format: diff + weak_model_name: gpt-5-mini + use_repo_map: true + examples_as_sys_msg: true + use_temperature: false + streaming: false + editor_model_name: gpt-5.2 + editor_edit_format: editor-diff + system_prompt_prefix: 'Formatting re-enabled. ' + accepts_settings: + - reasoning_effort + - name: groq/llama3-70b-8192 edit_format: diff weak_model_name: groq/llama3-8b-8192 @@ -910,6 +1494,18 @@ cog.out("```\n") accepts_settings: - reasoning_effort +- name: o3-pro + edit_format: diff + weak_model_name: gpt-4.1-mini + use_repo_map: true + examples_as_sys_msg: true + streaming: false + editor_model_name: gpt-4.1 + editor_edit_format: editor-diff + system_prompt_prefix: 'Formatting re-enabled. ' + accepts_settings: + - reasoning_effort + - name: o4-mini edit_format: diff weak_model_name: gpt-4.1-mini @@ -974,6 +1570,152 @@ cog.out("```\n") lazy: true reminder: sys +- name: openai/gpt-5 + edit_format: diff + weak_model_name: openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openai/gpt-5-2025-08-07 + edit_format: diff + weak_model_name: openai/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openai/gpt-5-chat + edit_format: diff + weak_model_name: openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openai/gpt-5-chat-latest + edit_format: diff + weak_model_name: openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openai/gpt-5-mini + edit_format: diff + weak_model_name: openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openai/gpt-5-mini-2025-08-07 + edit_format: diff + weak_model_name: openai/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openai/gpt-5-nano + edit_format: diff + weak_model_name: openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openai/gpt-5-nano-2025-08-07 + edit_format: diff + weak_model_name: openai/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openai/gpt-5-pro + edit_format: diff + weak_model_name: openai/gpt-5-mini + use_repo_map: true + examples_as_sys_msg: true + use_temperature: false + streaming: false + editor_model_name: openai/gpt-5 + editor_edit_format: editor-diff + system_prompt_prefix: 'Formatting re-enabled. ' + accepts_settings: + - reasoning_effort + +- name: openai/gpt-5.1 + edit_format: diff + weak_model_name: openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openai/gpt-5.1-2025-11-13 + edit_format: diff + weak_model_name: openai/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openai/gpt-5.1-chat + edit_format: diff + weak_model_name: openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openai/gpt-5.1-chat-latest + edit_format: diff + weak_model_name: openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openai/gpt-5.2 + edit_format: diff + weak_model_name: openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openai/gpt-5.2-2025-12-11 + edit_format: diff + weak_model_name: openai/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openai/gpt-5.2-chat-latest + edit_format: diff + weak_model_name: openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openai/gpt-5.2-pro + edit_format: diff + weak_model_name: openai/gpt-5-mini + use_repo_map: true + examples_as_sys_msg: true + use_temperature: false + streaming: false + editor_model_name: openai/gpt-5.2 + editor_edit_format: editor-diff + system_prompt_prefix: 'Formatting re-enabled. ' + accepts_settings: + - reasoning_effort + - name: openai/o1 edit_format: diff weak_model_name: openai/gpt-4o-mini @@ -1026,6 +1768,18 @@ cog.out("```\n") accepts_settings: - reasoning_effort +- name: openai/o3-pro + edit_format: diff + weak_model_name: openai/gpt-4.1-mini + use_repo_map: true + examples_as_sys_msg: true + streaming: false + editor_model_name: openai/gpt-4.1 + editor_edit_format: editor-diff + system_prompt_prefix: 'Formatting re-enabled. ' + accepts_settings: + - reasoning_effort + - name: openai/o4-mini edit_format: diff weak_model_name: openai/gpt-4.1-mini @@ -1145,6 +1899,34 @@ cog.out("```\n") accepts_settings: - thinking_tokens +- name: openrouter/anthropic/claude-opus-4 + edit_format: diff + weak_model_name: openrouter/anthropic/claude-3-5-haiku + use_repo_map: true + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 32000 + cache_control: true + editor_model_name: openrouter/anthropic/claude-sonnet-4 + editor_edit_format: editor-diff + accepts_settings: + - thinking_tokens + +- name: openrouter/anthropic/claude-sonnet-4 + edit_format: diff + weak_model_name: openrouter/anthropic/claude-3-5-haiku + use_repo_map: true + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 64000 + cache_control: true + editor_model_name: openrouter/anthropic/claude-sonnet-4 + editor_edit_format: editor-diff + accepts_settings: + - thinking_tokens + - name: openrouter/cohere/command-a-03-2025 examples_as_sys_msg: true @@ -1160,7 +1942,7 @@ cog.out("```\n") reminder: sys examples_as_sys_msg: true extra_params: - max_tokens: 8192 + max_tokens: 65536 caches_by_default: true - name: openrouter/deepseek/deepseek-chat-v3-0324:free @@ -1224,6 +2006,14 @@ cog.out("```\n") max_tokens: 8192 caches_by_default: true +- name: openrouter/google/gemini-2.5-pro + edit_format: diff-fenced + weak_model_name: openrouter/google/gemini-2.5-flash + use_repo_map: true + overeager: true + accepts_settings: + - thinking_tokens + - name: openrouter/google/gemini-2.5-pro-exp-03-25 edit_format: diff-fenced weak_model_name: openrouter/google/gemini-2.0-flash-exp:free @@ -1242,6 +2032,29 @@ cog.out("```\n") use_repo_map: true overeager: true +- name: openrouter/google/gemini-2.5-pro-preview-06-05 + edit_format: diff-fenced + weak_model_name: openrouter/google/gemini-2.0-flash-001 + use_repo_map: true + overeager: true + accepts_settings: + - thinking_tokens + +- name: openrouter/google/gemini-3-flash-preview + edit_format: diff-fenced + use_repo_map: true + overeager: true + accepts_settings: + - thinking_tokens + +- name: openrouter/google/gemini-3-pro-preview + edit_format: diff-fenced + weak_model_name: openrouter/google/gemini-2.5-flash + use_repo_map: true + overeager: true + accepts_settings: + - thinking_tokens + - name: openrouter/google/gemma-3-27b-it use_system_prompt: false @@ -1253,6 +2066,13 @@ cog.out("```\n") weak_model_name: openrouter/meta-llama/llama-3-70b-instruct examples_as_sys_msg: true +- name: openrouter/moonshotai/kimi-k2 + edit_format: diff + use_repo_map: true + examples_as_sys_msg: true + extra_params: + temperature: 0.6 + - name: openrouter/openai/gpt-4.1 edit_format: diff weak_model_name: openrouter/openai/gpt-4.1-mini @@ -1274,6 +2094,152 @@ cog.out("```\n") examples_as_sys_msg: true editor_edit_format: editor-diff +- name: openrouter/openai/gpt-5 + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openrouter/openai/gpt-5-2025-08-07 + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openrouter/openai/gpt-5-chat + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openrouter/openai/gpt-5-chat-latest + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openrouter/openai/gpt-5-mini + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openrouter/openai/gpt-5-mini-2025-08-07 + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openrouter/openai/gpt-5-nano + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openrouter/openai/gpt-5-nano-2025-08-07 + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openrouter/openai/gpt-5-pro + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-mini + use_repo_map: true + examples_as_sys_msg: true + use_temperature: false + streaming: false + editor_model_name: openrouter/openai/gpt-5 + editor_edit_format: editor-diff + system_prompt_prefix: 'Formatting re-enabled. ' + accepts_settings: + - reasoning_effort + +- name: openrouter/openai/gpt-5.1 + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openrouter/openai/gpt-5.1-2025-11-13 + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openrouter/openai/gpt-5.1-chat + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openrouter/openai/gpt-5.1-chat-latest + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openrouter/openai/gpt-5.2 + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openrouter/openai/gpt-5.2-2025-12-11 + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano-2025-08-07 + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openrouter/openai/gpt-5.2-chat-latest + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: + - reasoning_effort + +- name: openrouter/openai/gpt-5.2-pro + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-mini + use_repo_map: true + examples_as_sys_msg: true + use_temperature: false + streaming: false + editor_model_name: openrouter/openai/gpt-5.2 + editor_edit_format: editor-diff + system_prompt_prefix: 'Formatting re-enabled. ' + accepts_settings: + - reasoning_effort + - name: openrouter/openai/o1 edit_format: diff weak_model_name: openrouter/openai/gpt-4o-mini @@ -1339,6 +2305,18 @@ cog.out("```\n") accepts_settings: - reasoning_effort +- name: openrouter/openai/o3-pro + edit_format: diff + weak_model_name: openrouter/openai/gpt-4.1-mini + use_repo_map: true + examples_as_sys_msg: true + streaming: false + editor_model_name: openrouter/openai/gpt-4.1 + editor_edit_format: editor-diff + system_prompt_prefix: 'Formatting re-enabled. ' + accepts_settings: + - reasoning_effort + - name: openrouter/openai/o4-mini edit_format: diff weak_model_name: openrouter/openai/gpt-4.1-mini @@ -1434,24 +2412,38 @@ cog.out("```\n") accepts_settings: - reasoning_effort -- name: vertex_ai-anthropic_models/vertex_ai/claude-3-7-sonnet@20250219 - edit_format: diff - weak_model_name: vertex_ai/claude-3-5-haiku@20241022 - use_repo_map: true - overeager: true - examples_as_sys_msg: true - extra_params: - max_tokens: 64000 - editor_model_name: vertex_ai-anthropic_models/vertex_ai/claude-3-7-sonnet@20250219 - editor_edit_format: editor-diff - accepts_settings: - - thinking_tokens - -- name: vertex_ai-language-models/gemini-2.5-flash-preview-04-17 +- name: openrouter/x-ai/grok-4 edit_format: diff use_repo_map: true accepts_settings: - reasoning_effort + +- name: us.anthropic.claude-opus-4-20250514-v1:0 + edit_format: diff + weak_model_name: us.anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 32000 + cache_control: true + editor_model_name: us.anthropic.claude-sonnet-4-20250514-v1:0 + editor_edit_format: editor-diff + accepts_settings: + - thinking_tokens + +- name: us.anthropic.claude-sonnet-4-20250514-v1:0 + edit_format: diff + weak_model_name: us.anthropic.claude-3-5-haiku-20241022-v1:0 + use_repo_map: true + extra_params: + extra_headers: + anthropic-beta: prompt-caching-2024-07-31,pdfs-2024-09-25,output-128k-2025-02-19 + max_tokens: 64000 + cache_control: true + editor_model_name: us.anthropic.claude-sonnet-4-20250514-v1:0 + editor_edit_format: editor-diff + accepts_settings: - thinking_tokens - name: vertex_ai/claude-3-5-haiku@20241022 @@ -1494,6 +2486,19 @@ cog.out("```\n") accepts_settings: - thinking_tokens +- name: vertex_ai/claude-3-7-sonnet@20250219 + edit_format: diff + weak_model_name: vertex_ai/claude-3-5-haiku@20241022 + use_repo_map: true + overeager: true + examples_as_sys_msg: true + extra_params: + max_tokens: 64000 + editor_model_name: vertex_ai/claude-3-7-sonnet@20250219 + editor_edit_format: editor-diff + accepts_settings: + - thinking_tokens + - name: vertex_ai/claude-3-opus@20240229 edit_format: diff weak_model_name: vertex_ai/claude-3-5-haiku@20241022 @@ -1502,30 +2507,125 @@ cog.out("```\n") - name: vertex_ai/claude-3-sonnet@20240229 weak_model_name: vertex_ai/claude-3-5-haiku@20241022 -- name: vertex_ai/gemini-2.5-pro-exp-03-25 +- name: vertex_ai/claude-opus-4@20250514 + edit_format: diff + weak_model_name: vertex_ai/claude-3-5-haiku@20241022 + use_repo_map: true + extra_params: + max_tokens: 32000 + editor_model_name: vertex_ai/claude-sonnet-4@20250514 + editor_edit_format: editor-diff + accepts_settings: + - thinking_tokens + +- name: vertex_ai/claude-opus-4@20250514 + edit_format: diff + weak_model_name: vertex_ai/claude-3-5-haiku@20241022 + use_repo_map: true + extra_params: + max_tokens: 32000 + editor_model_name: vertex_ai/claude-sonnet-4@20250514 + editor_edit_format: editor-diff + accepts_settings: + - thinking_tokens + +- name: vertex_ai/claude-sonnet-4@20250514 + edit_format: diff + weak_model_name: vertex_ai/claude-3-5-haiku@20241022 + use_repo_map: true + extra_params: + max_tokens: 64000 + editor_model_name: vertex_ai/claude-sonnet-4@20250514 + editor_edit_format: editor-diff + accepts_settings: + - thinking_tokens + +- name: vertex_ai/claude-sonnet-4@20250514 + edit_format: diff + weak_model_name: vertex_ai/claude-3-5-haiku@20241022 + use_repo_map: true + extra_params: + max_tokens: 64000 + editor_model_name: vertex_ai/claude-sonnet-4@20250514 + editor_edit_format: editor-diff + accepts_settings: + - thinking_tokens + +- name: vertex_ai/gemini-2.5-flash edit_format: diff-fenced - weak_model_name: vertex_ai-language-models/gemini-2.5-flash-preview-04-17 use_repo_map: true overeager: true - editor_model_name: vertex_ai-language-models/gemini-2.5-flash-preview-04-17 + accepts_settings: + - thinking_tokens + +- name: vertex_ai/gemini-2.5-flash-preview-04-17 + edit_format: diff + use_repo_map: true + accepts_settings: + - reasoning_effort + - thinking_tokens + +- name: vertex_ai/gemini-2.5-flash-preview-05-20 + edit_format: diff + use_repo_map: true + accepts_settings: + - reasoning_effort + - thinking_tokens + +- name: vertex_ai/gemini-2.5-pro + edit_format: diff-fenced + weak_model_name: vertex_ai/gemini-2.5-flash + use_repo_map: true + overeager: true + editor_model_name: vertex_ai/gemini-2.5-flash + accepts_settings: + - thinking_tokens + +- name: vertex_ai/gemini-2.5-pro-exp-03-25 + edit_format: diff-fenced + weak_model_name: vertex_ai/gemini-2.5-flash-preview-04-17 + use_repo_map: true + overeager: true + editor_model_name: vertex_ai/gemini-2.5-flash-preview-04-17 - name: vertex_ai/gemini-2.5-pro-preview-03-25 edit_format: diff-fenced - weak_model_name: vertex_ai-language-models/gemini-2.5-flash-preview-04-17 + weak_model_name: vertex_ai/gemini-2.5-flash-preview-04-17 use_repo_map: true overeager: true - editor_model_name: vertex_ai-language-models/gemini-2.5-flash-preview-04-17 + editor_model_name: vertex_ai/gemini-2.5-flash-preview-04-17 - name: vertex_ai/gemini-2.5-pro-preview-05-06 edit_format: diff-fenced - weak_model_name: vertex_ai-language-models/gemini-2.5-flash-preview-04-17 + weak_model_name: vertex_ai/gemini-2.5-flash-preview-04-17 use_repo_map: true overeager: true - editor_model_name: vertex_ai-language-models/gemini-2.5-flash-preview-04-17 + editor_model_name: vertex_ai/gemini-2.5-flash-preview-04-17 -- name: vertex_ai/gemini-pro-experimental +- name: vertex_ai/gemini-2.5-pro-preview-06-05 + edit_format: diff-fenced + weak_model_name: vertex_ai/gemini-2.5-flash-preview-04-17 + use_repo_map: true + overeager: true + editor_model_name: vertex_ai/gemini-2.5-flash-preview-04-17 + accepts_settings: + - thinking_tokens + +- name: vertex_ai/gemini-3-flash-preview edit_format: diff-fenced use_repo_map: true + overeager: true + accepts_settings: + - thinking_tokens + +- name: vertex_ai/gemini-3-pro-preview + edit_format: diff-fenced + weak_model_name: vertex_ai/gemini-2.5-flash + use_repo_map: true + overeager: true + editor_model_name: vertex_ai/gemini-2.5-flash + accepts_settings: + - thinking_tokens - name: xai/grok-3-beta edit_format: diff @@ -1544,6 +2644,12 @@ cog.out("```\n") use_repo_map: true accepts_settings: - reasoning_effort + +- name: xai/grok-4 + edit_format: diff + use_repo_map: true + accepts_settings: + - reasoning_effort ``` diff --git a/aider/website/docs/config/aider_conf.md b/aider/website/docs/config/aider_conf.md index 99bccf401..bd5ea6246 100644 --- a/aider/website/docs/config/aider_conf.md +++ b/aider/website/docs/config/aider_conf.md @@ -1,7 +1,7 @@ --- parent: Configuration nav_order: 15 -description: How to configure aider with a yaml config file. +description: How to configure aider with a YAML config file. --- # YAML config file @@ -58,7 +58,7 @@ cog.outl("```") # Place in your home dir, or at the root of your git repo. ########################################################## -# Note: You can only put OpenAI and Anthropic API keys in the yaml +# Note: You can only put OpenAI and Anthropic API keys in the YAML # config file. Keys for all APIs can be stored in a .env file # https://aider.chat/docs/config/dotenv.html @@ -137,7 +137,7 @@ cog.outl("```") ## Set the reasoning_effort API parameter (default: not set) #reasoning-effort: xxx -## Set the thinking token budget for models that support it (default: not set) +## Set the thinking token budget for models that support it. Use 0 to disable. (default: not set) #thinking-tokens: xxx ## Verify the SSL cert when connecting to models (default: True) @@ -266,6 +266,9 @@ cog.outl("```") ## Enable/disable adding .aider* to .gitignore (default: True) #gitignore: true +## Enable/disable the addition of files listed in .gitignore to Aider's editing scope. +#add-gitignore-files: false + ## Specify the aider ignore file (default: .aiderignore in git root) #aiderignore: .aiderignore @@ -290,8 +293,8 @@ cog.outl("```") ## Prefix all commit messages with 'aider: ' (default: False) #attribute-commit-message-committer: false -## Attribute aider edits using the Co-authored-by trailer in the commit message (default: False). If True, this takes precedence over default --attribute-author and --attribute-committer behavior unless they are explicitly set to True. -#attribute-co-authored-by: false +## Attribute aider edits using the Co-authored-by trailer in the commit message (default: True). If True, this takes precedence over default --attribute-author and --attribute-committer behavior unless they are explicitly set to True. +#attribute-co-authored-by: true ## Enable/disable git pre-commit hooks with --no-verify (default: False) #git-commit-verify: false @@ -349,6 +352,12 @@ cog.outl("```") ## Permanently disable analytics #analytics-disable: false +## Send analytics to custom PostHog instance +#analytics-posthog-host: xxx + +## Send analytics to custom PostHog project +#analytics-posthog-project-api-key: xxx + ############ # Upgrading: @@ -440,6 +449,9 @@ cog.outl("```") ## Specify the language to use in the chat (default: None, uses system settings) #chat-language: xxx +## Specify the language to use in the commit message (default: None, user language) +#commit-language: xxx + ## Always say yes to every confirmation #yes-always: false diff --git a/aider/website/docs/config/api-keys.md b/aider/website/docs/config/api-keys.md index f353579f1..3be726aa2 100644 --- a/aider/website/docs/config/api-keys.md +++ b/aider/website/docs/config/api-keys.md @@ -40,9 +40,9 @@ OPENAI_API_KEY= ANTHROPIC_API_KEY= ``` -#### Yaml config file +#### YAML config file You can also set those API keys via special entries in the -[yaml config file](/docs/config/aider_conf.html), like this: +[YAML config file](/docs/config/aider_conf.html), like this: ```yaml openai-api-key: @@ -74,7 +74,7 @@ OPENROUTER_API_KEY=bar DEEPSEEK_API_KEY=baz ``` -#### Yaml config file +#### YAML config file You can also set API keys in the diff --git a/aider/website/docs/config/dotenv.md b/aider/website/docs/config/dotenv.md index 82ad974de..11681bf07 100644 --- a/aider/website/docs/config/dotenv.md +++ b/aider/website/docs/config/dotenv.md @@ -112,7 +112,7 @@ cog.outl("```") ## Set the reasoning_effort API parameter (default: not set) #AIDER_REASONING_EFFORT= -## Set the thinking token budget for models that support it (default: not set) +## Set the thinking token budget for models that support it. Use 0 to disable. (default: not set) #AIDER_THINKING_TOKENS= ## Verify the SSL cert when connecting to models (default: True) @@ -241,6 +241,9 @@ cog.outl("```") ## Enable/disable adding .aider* to .gitignore (default: True) #AIDER_GITIGNORE=true +## Enable/disable the addition of files listed in .gitignore to Aider's editing scope. +#AIDER_ADD_GITIGNORE_FILES=false + ## Specify the aider ignore file (default: .aiderignore in git root) #AIDER_AIDERIGNORE=.aiderignore @@ -265,8 +268,8 @@ cog.outl("```") ## Prefix all commit messages with 'aider: ' (default: False) #AIDER_ATTRIBUTE_COMMIT_MESSAGE_COMMITTER=false -## Attribute aider edits using the Co-authored-by trailer in the commit message (default: False). If True, this takes precedence over default --attribute-author and --attribute-committer behavior unless they are explicitly set to True. -#AIDER_ATTRIBUTE_CO_AUTHORED_BY=false +## Attribute aider edits using the Co-authored-by trailer in the commit message (default: True). If True, this takes precedence over default --attribute-author and --attribute-committer behavior unless they are explicitly set to True. +#AIDER_ATTRIBUTE_CO_AUTHORED_BY=true ## Enable/disable git pre-commit hooks with --no-verify (default: False) #AIDER_GIT_COMMIT_VERIFY=false @@ -319,6 +322,12 @@ cog.outl("```") ## Permanently disable analytics #AIDER_ANALYTICS_DISABLE=false +## Send analytics to custom PostHog instance +#AIDER_ANALYTICS_POSTHOG_HOST= + +## Send analytics to custom PostHog project +#AIDER_ANALYTICS_POSTHOG_PROJECT_API_KEY= + ############ # Upgrading: @@ -397,6 +406,9 @@ cog.outl("```") ## Specify the language to use in the chat (default: None, uses system settings) #AIDER_CHAT_LANGUAGE= +## Specify the language to use in the commit message (default: None, user language) +#AIDER_COMMIT_LANGUAGE= + ## Always say yes to every confirmation #AIDER_YES_ALWAYS= diff --git a/aider/website/docs/config/editor.md b/aider/website/docs/config/editor.md index aff3e376c..dc1d74df8 100644 --- a/aider/website/docs/config/editor.md +++ b/aider/website/docs/config/editor.md @@ -12,7 +12,7 @@ Aider allows you to configure your preferred text editor for use with the `/edit You can specify the text editor with the `--editor` switch or using `editor:` in aider's -[yaml config file](https://aider.chat/docs/config/aider_conf.html). +[YAML config file](https://aider.chat/docs/config/aider_conf.html). ## Environment variables diff --git a/aider/website/docs/config/model-aliases.md b/aider/website/docs/config/model-aliases.md index c3871a094..c27b34da0 100644 --- a/aider/website/docs/config/model-aliases.md +++ b/aider/website/docs/config/model-aliases.md @@ -79,17 +79,19 @@ for alias, model in sorted(MODEL_ALIASES.items()): - `4-turbo`: gpt-4-1106-preview - `4o`: gpt-4o - `deepseek`: deepseek/deepseek-chat -- `flash`: gemini/gemini-2.5-flash-preview-04-17 -- `gemini`: gemini/gemini-2.5-pro-preview-05-06 -- `gemini-2.5-pro`: gemini/gemini-2.5-pro-preview-05-06 +- `flash`: gemini/gemini-2.5-flash +- `flash-lite`: gemini/gemini-2.5-flash-lite +- `gemini`: gemini/gemini-3-pro-preview +- `gemini-2.5-pro`: gemini/gemini-2.5-pro +- `gemini-3-pro-preview`: gemini/gemini-3-pro-preview - `gemini-exp`: gemini/gemini-2.5-pro-exp-03-25 - `grok3`: xai/grok-3-beta - `haiku`: claude-3-5-haiku-20241022 - `optimus`: openrouter/openrouter/optimus-alpha -- `opus`: claude-3-opus-20240229 +- `opus`: claude-opus-4-20250514 - `quasar`: openrouter/openrouter/quasar-alpha - `r1`: deepseek/deepseek-reasoner -- `sonnet`: anthropic/claude-3-7-sonnet-20250219 +- `sonnet`: anthropic/claude-sonnet-4-20250514 ## Priority diff --git a/aider/website/docs/config/options.md b/aider/website/docs/config/options.md index 368c4ec7e..c974f671b 100644 --- a/aider/website/docs/config/options.md +++ b/aider/website/docs/config/options.md @@ -49,8 +49,10 @@ usage: aider [-h] [--model] [--openai-api-key] [--anthropic-api-key] [--completion-menu-current-color] [--completion-menu-current-bg-color] [--code-theme] [--show-diffs] [--git | --no-git] - [--gitignore | --no-gitignore] [--aiderignore] - [--subtree-only] [--auto-commits | --no-auto-commits] + [--gitignore | --no-gitignore] + [--add-gitignore-files | --no-add-gitignore-files] + [--aiderignore] [--subtree-only] + [--auto-commits | --no-auto-commits] [--dirty-commits | --no-dirty-commits] [--attribute-author | --no-attribute-author] [--attribute-committer | --no-attribute-committer] @@ -64,7 +66,9 @@ usage: aider [-h] [--model] [--openai-api-key] [--anthropic-api-key] [--lint-cmd] [--auto-lint | --no-auto-lint] [--test-cmd] [--auto-test | --no-auto-test] [--test] [--analytics | --no-analytics] [--analytics-log] - [--analytics-disable] [--just-check-update] + [--analytics-disable] [--analytics-posthog-host] + [--analytics-posthog-project-api-key] + [--just-check-update] [--check-update | --no-check-update] [--show-release-notes | --no-show-release-notes] [--install-main-branch] [--upgrade] [--version] @@ -74,9 +78,9 @@ usage: aider [-h] [--model] [--openai-api-key] [--anthropic-api-key] [--apply-clipboard-edits] [--exit] [--show-repo-map] [--show-prompts] [--voice-format] [--voice-language] [--voice-input-device] [--disable-playwright] [--file] - [--read] [--vim] [--chat-language] [--yes-always] [-v] - [--load] [--encoding] [--line-endings] [-c] - [--env-file] + [--read] [--vim] [--chat-language] [--commit-language] + [--yes-always] [-v] [--load] [--encoding] + [--line-endings] [-c] [--env-file] [--suggest-shell-commands | --no-suggest-shell-commands] [--fancy-input | --no-fancy-input] [--multiline | --no-multiline] @@ -171,7 +175,7 @@ Set the reasoning_effort API parameter (default: not set) Environment variable: `AIDER_REASONING_EFFORT` ### `--thinking-tokens VALUE` -Set the thinking token budget for models that support it (default: not set) +Set the thinking token budget for models that support it. Use 0 to disable. (default: not set) Environment variable: `AIDER_THINKING_TOKENS` ### `--verify-ssl` @@ -388,6 +392,14 @@ Aliases: - `--gitignore` - `--no-gitignore` +### `--add-gitignore-files` +Enable/disable the addition of files listed in .gitignore to Aider's editing scope. +Default: False +Environment variable: `AIDER_ADD_GITIGNORE_FILES` +Aliases: + - `--add-gitignore-files` + - `--no-add-gitignore-files` + ### `--aiderignore AIDERIGNORE` Specify the aider ignore file (default: .aiderignore in git root) Default: .aiderignore @@ -445,8 +457,8 @@ Aliases: - `--no-attribute-commit-message-committer` ### `--attribute-co-authored-by` -Attribute aider edits using the Co-authored-by trailer in the commit message (default: False). If True, this takes precedence over default --attribute-author and --attribute-committer behavior unless they are explicitly set to True. -Default: False +Attribute aider edits using the Co-authored-by trailer in the commit message (default: True). If True, this takes precedence over default --attribute-author and --attribute-committer behavior unless they are explicitly set to True. +Default: True Environment variable: `AIDER_ATTRIBUTE_CO_AUTHORED_BY` Aliases: - `--attribute-co-authored-by` @@ -546,6 +558,14 @@ Permanently disable analytics Default: False Environment variable: `AIDER_ANALYTICS_DISABLE` +### `--analytics-posthog-host ANALYTICS_POSTHOG_HOST` +Send analytics to custom PostHog instance +Environment variable: `AIDER_ANALYTICS_POSTHOG_HOST` + +### `--analytics-posthog-project-api-key ANALYTICS_POSTHOG_PROJECT_API_KEY` +Send analytics to custom PostHog project +Environment variable: `AIDER_ANALYTICS_POSTHOG_PROJECT_API_KEY` + ## Upgrading: ### `--just-check-update` @@ -683,6 +703,10 @@ Environment variable: `AIDER_VIM` Specify the language to use in the chat (default: None, uses system settings) Environment variable: `AIDER_CHAT_LANGUAGE` +### `--commit-language COMMIT_LANGUAGE` +Specify the language to use in the commit message (default: None, user language) +Environment variable: `AIDER_COMMIT_LANGUAGE` + ### `--yes-always` Always say yes to every confirmation Environment variable: `AIDER_YES_ALWAYS` diff --git a/aider/website/docs/config/reasoning.md b/aider/website/docs/config/reasoning.md index 168516feb..bbdeaa7f9 100644 --- a/aider/website/docs/config/reasoning.md +++ b/aider/website/docs/config/reasoning.md @@ -25,7 +25,7 @@ aider --model r1 ``` Inside the aider chat, you can use `/thinking-tokens 4k` or `/reasoning-effort low` to change -the amount of reasoning. +the amount of reasoning. Use `/thinking-tokens 0` to disable thinking tokens. The rest of this document describes more advanced details which are mainly needed if you're configuring aider to work with a lesser known reasoning model or one served @@ -47,6 +47,7 @@ You can use the `--thinking-tokens` switch to request the model use a certain number of thinking tokens. This switch is useful for Sonnet 3.7. You can specify the token budget like "1024", "1k", "8k" or "0.01M". +Use "0" to disable thinking tokens. ### Model compatibility and settings diff --git a/aider/website/docs/faq.md b/aider/website/docs/faq.md index 60d58efc7..0a913cb14 100644 --- a/aider/website/docs/faq.md +++ b/aider/website/docs/faq.md @@ -264,14 +264,15 @@ tr:hover { background-color: #f5f5f5; } - - - + + + + + + + +
Model NameTotal TokensPercent
gemini/gemini-2.5-pro-exp-03-25890,05769.9%
o3373,75329.4%
openrouter/REDACTED8,7450.7%
gemini/gemini-2.5-pro222,04723.7%
gpt-5211,07222.6%
gemini/gemini-3-flash-preview187,83620.1%
None168,98818.1%
gemini/gemini-3-pro-preview81,8518.8%
o3-pro36,6203.9%
gemini/gemini-2.5-flash-lite15,4701.7%
gemini/gemini-2.5-flash-lite-preview-06-1711,3711.2%
- -{: .note :} -Some models show as REDACTED, because they are new or unpopular models. -Aider's analytics only records the names of "well known" LLMs. ## How are the "aider wrote xx% of code" stats computed? @@ -370,6 +371,10 @@ Aider is under an [Apache 2.0 license](https://github.com/Aider-AI/aider/blob/main/LICENSE.txt). +## Can I Script Aider? + +Yes. You can script aider via the command line or python. See more from here: [Scripting aider](https://aider.chat/docs/scripting.html) +
diff --git a/aider/website/docs/install.md b/aider/website/docs/install.md index 024c76f34..0ebf1d2e2 100644 --- a/aider/website/docs/install.md +++ b/aider/website/docs/install.md @@ -28,12 +28,6 @@ These one-liners will install aider, along with python 3.12 if needed. They are based on the [uv installers](https://docs.astral.sh/uv/getting-started/installation/). -#### Windows - -```powershell -powershell -ExecutionPolicy ByPass -c "irm https://aider.chat/install.ps1 | iex" -``` - #### Mac & Linux Use curl to download the script and execute it with sh: @@ -48,6 +42,12 @@ If your system doesn't have curl, you can use wget: wget -qO- https://aider.chat/install.sh | sh ``` +#### Windows + +```powershell +powershell -ExecutionPolicy ByPass -c "irm https://aider.chat/install.ps1 | iex" +``` + ## Install with uv @@ -55,7 +55,7 @@ You can install aider with uv: ```bash python -m pip install uv # If you need to install uv -uv tool install --force --python python3.12 aider-chat@latest +uv tool install --force --python python3.12 --with pip aider-chat@latest ``` This will install uv using your existing python version 3.8-3.13, diff --git a/aider/website/docs/languages.md b/aider/website/docs/languages.md index f5eba91ca..9bf2f20a7 100644 --- a/aider/website/docs/languages.md +++ b/aider/website/docs/languages.md @@ -77,10 +77,10 @@ cog.out(get_supported_languages_md()) | capnp | .capnp | | βœ“ | | chatito | .chatito | βœ“ | βœ“ | | clarity | .clar | | βœ“ | -| clojure | .clj | | βœ“ | -| clojure | .cljc | | βœ“ | -| clojure | .cljs | | βœ“ | -| clojure | .edn | | βœ“ | +| clojure | .clj | βœ“ | βœ“ | +| clojure | .cljc | βœ“ | βœ“ | +| clojure | .cljs | βœ“ | βœ“ | +| clojure | .edn | βœ“ | βœ“ | | cmake | .cmake | | βœ“ | | cmake | CMakeLists.txt | | βœ“ | | commonlisp | .cl | βœ“ | βœ“ | @@ -110,11 +110,11 @@ cog.out(get_supported_languages_md()) | fennel | .fnl | | βœ“ | | firrtl | .fir | | βœ“ | | fish | .fish | | βœ“ | -| fortran | .f | | βœ“ | -| fortran | .f03 | | βœ“ | -| fortran | .f08 | | βœ“ | -| fortran | .f90 | | βœ“ | -| fortran | .f95 | | βœ“ | +| fortran | .f | βœ“ | βœ“ | +| fortran | .f03 | βœ“ | βœ“ | +| fortran | .f08 | βœ“ | βœ“ | +| fortran | .f90 | βœ“ | βœ“ | +| fortran | .f95 | βœ“ | βœ“ | | func | .fc | | βœ“ | | gdscript | .gd | | βœ“ | | gitattributes | .gitattributes | | βœ“ | @@ -133,7 +133,7 @@ cog.out(get_supported_languages_md()) | gstlaunch | .launch | | βœ“ | | hack | .hack | | βœ“ | | hare | .ha | | βœ“ | -| haskell | .hs | | βœ“ | +| haskell | .hs | βœ“ | βœ“ | | haxe | .hx | | βœ“ | | hcl | .hcl | βœ“ | βœ“ | | hcl | .tf | βœ“ | βœ“ | @@ -153,7 +153,7 @@ cog.out(get_supported_languages_md()) | json | .json | | βœ“ | | jsonnet | .jsonnet | | βœ“ | | jsonnet | .libsonnet | | βœ“ | -| julia | .jl | | βœ“ | +| julia | .jl | βœ“ | βœ“ | | kconfig | Kconfig | | βœ“ | | kdl | .kdl | | βœ“ | | kotlin | .kt | βœ“ | βœ“ | @@ -172,8 +172,8 @@ cog.out(get_supported_languages_md()) | make | Makefile | | βœ“ | | markdown | .markdown | | βœ“ | | markdown | .md | | βœ“ | -| matlab | .m | | βœ“ | -| matlab | .mat | | βœ“ | +| matlab | .m | βœ“ | βœ“ | +| matlab | .mat | βœ“ | βœ“ | | mermaid | .mermaid | | βœ“ | | meson | meson.build | | βœ“ | | ninja | .ninja | | βœ“ | @@ -257,7 +257,7 @@ cog.out(get_supported_languages_md()) | xml | .xml | | βœ“ | | xml | .xsl | | βœ“ | | yuck | .yuck | | βœ“ | -| zig | .zig | | βœ“ | +| zig | .zig | βœ“ | βœ“ | diff --git a/aider/website/docs/leaderboards/index.md b/aider/website/docs/leaderboards/index.md index 865f73b3a..e3072f99e 100644 --- a/aider/website/docs/leaderboards/index.md +++ b/aider/website/docs/leaderboards/index.md @@ -285,6 +285,6 @@ mod_dates = [get_last_modified_date(file) for file in files] latest_mod_date = max(mod_dates) cog.out(f"{latest_mod_date.strftime('%B %d, %Y.')}") ]]]--> -May 08, 2025. +November 20, 2025.

diff --git a/aider/website/docs/llms/github.md b/aider/website/docs/llms/github.md new file mode 100644 index 000000000..43c785344 --- /dev/null +++ b/aider/website/docs/llms/github.md @@ -0,0 +1,111 @@ +--- +parent: Connecting to LLMs +nav_order: 510 +--- + +# GitHub Copilot + +Aider can connect to GitHub Copilot’s LLMs because Copilot exposes a standard **OpenAI-style** +endpoint at: + +``` +https://api.githubcopilot.com +``` + +First, install aider: + +{% include install.md %} + +--- + +## Configure your environment + +```bash +# macOS/Linux +export OPENAI_API_BASE=https://api.githubcopilot.com +export OPENAI_API_KEY= + +# Windows (PowerShell) +setx OPENAI_API_BASE https://api.githubcopilot.com +setx OPENAI_API_KEY +# …restart the shell after setx commands +``` + +--- + +### Where do I get the token? +The easiest path is to sign in to Copilot from any JetBrains IDE (PyCharm, GoLand, etc). +After you authenticate a file appears: + +``` +~/.config/github-copilot/apps.json +``` + +On Windows the config can be found in: + +``` +~\AppData\Local\github-copilot\apps.json +``` + +Copy the `oauth_token` value – that string is your `OPENAI_API_KEY`. + +*Note:* tokens created by the Neovim **copilot.lua** plugin (old `hosts.json`) sometimes lack the +needed scopes. If you see β€œaccess to this endpoint is forbidden”, regenerate the token with a +JetBrains IDE. + +--- + +## Discover available models + +Copilot hosts many models (OpenAI, Anthropic, Google, etc). +List the models your subscription allows with: + +```bash +curl -s https://api.githubcopilot.com/models \ + -H "Authorization: Bearer $OPENAI_API_KEY" \ + -H "Content-Type: application/json" \ + -H "Copilot-Integration-Id: vscode-chat" | jq -r '.data[].id' +``` + +Each returned ID can be used with aider by **prefixing it with `openai/`**: + +```bash +aider --model openai/gpt-4o +# or +aider --model openai/claude-3.7-sonnet-thought +``` + +--- + +## Quick start + +```bash +# change into your project +cd /to/your/project + +# talk to Copilot +aider --model openai/gpt-4o +``` + +--- + +## Optional config file (`~/.aider.conf.yml`) + +```yaml +openai-api-base: https://api.githubcopilot.com +openai-api-key: "" +model: openai/gpt-4o +weak-model: openai/gpt-4o-mini +show-model-warnings: false +``` + +--- + +## FAQ + +* Calls made through aider are billed through your Copilot subscription + (aider will still print *estimated* costs). +* The Copilot docs explicitly allow third-party β€œagents” that hit this API – aider is playing by + the rules. +* Aider talks directly to the REST endpointβ€”no web-UI scraping or browser automation. + diff --git a/aider/website/docs/llms/other.md b/aider/website/docs/llms/other.md index be1ccdbce..a2335a9c7 100644 --- a/aider/website/docs/llms/other.md +++ b/aider/website/docs/llms/other.md @@ -59,43 +59,57 @@ cog.out(''.join(lines)) - ALEPHALPHA_API_KEY - ANTHROPIC_API_KEY - ANYSCALE_API_KEY +- ARK_API_KEY - AZURE_AI_API_KEY - AZURE_API_KEY - AZURE_OPENAI_API_KEY - BASETEN_API_KEY +- BYTEZ_API_KEY - CEREBRAS_API_KEY - CLARIFAI_API_KEY - CLOUDFLARE_API_KEY - CO_API_KEY - CODESTRAL_API_KEY - COHERE_API_KEY +- COMPACTIFAI_API_KEY +- DASHSCOPE_API_KEY - DATABRICKS_API_KEY - DEEPINFRA_API_KEY - DEEPSEEK_API_KEY +- FEATHERLESS_AI_API_KEY - FIREWORKS_AI_API_KEY - FIREWORKS_API_KEY - FIREWORKSAI_API_KEY - GEMINI_API_KEY +- GOOGLE_API_KEY - GROQ_API_KEY - HUGGINGFACE_API_KEY - INFINITY_API_KEY - MARITALK_API_KEY - MISTRAL_API_KEY +- MOONSHOT_API_KEY +- NEBIUS_API_KEY - NLP_CLOUD_API_KEY +- NOVITA_API_KEY - NVIDIA_NIM_API_KEY - OLLAMA_API_KEY - OPENAI_API_KEY - OPENAI_LIKE_API_KEY - OPENROUTER_API_KEY - OR_API_KEY +- OVHCLOUD_API_KEY - PALM_API_KEY - PERPLEXITYAI_API_KEY - PREDIBASE_API_KEY - PROVIDER_API_KEY - REPLICATE_API_KEY +- SAMBANOVA_API_KEY - TOGETHERAI_API_KEY +- USER_API_KEY +- VERCEL_AI_GATEWAY_API_KEY - VOLCENGINE_API_KEY - VOYAGE_API_KEY +- WANDB_API_KEY - WATSONX_API_KEY - WX_API_KEY - XAI_API_KEY diff --git a/aider/website/docs/llms/vertex.md b/aider/website/docs/llms/vertex.md index 9dc82ea38..5d6bd20f2 100644 --- a/aider/website/docs/llms/vertex.md +++ b/aider/website/docs/llms/vertex.md @@ -40,7 +40,7 @@ cd /to/your/project aider --model vertex_ai/claude-3-5-sonnet@20240620 ``` -Or you can use the [yaml config](/docs/config/aider_conf.html) to set the model to any of the +Or you can use the [YAML config](/docs/config/aider_conf.html) to set the model to any of the models supported by Vertex AI. Example `.aider.conf.yml` file: diff --git a/aider/website/docs/more/analytics.md b/aider/website/docs/more/analytics.md index 24bd4910b..74de05213 100644 --- a/aider/website/docs/more/analytics.md +++ b/aider/website/docs/more/analytics.md @@ -52,10 +52,9 @@ will confirm you wish to opt-in to analytics. - `--no-analytics` will turn off analytics for the current session. - By default, if you don't provide `--analytics` or `--no-analytics`, aider will enable analytics for a random subset of users. +Such randomly selected users will be asked if they wish to opt-in to analytics. This will never happen if you have permanently disabled analytics with `--analytics-disable`. -Randomly selected users will be asked if they wish to opt-in to analytics. - ## Opting in @@ -106,6 +105,12 @@ If you want to just log analytics without reporting them, you can do: aider --analytics-log filename.jsonl --no-analytics ``` +### Sending analytics to custom PostHog project or installation + +Aider uses PostHog for analytics collection. You can configure aider to send analytics to your own PostHog project or a custom PostHog installation using these parameters: + +- `--analytics-posthog-project-api-key KEY` - Set a custom PostHog project API key +- `--analytics-posthog-host HOST` - Set a custom PostHog host (default is app.posthog.com) ## Reporting issues diff --git a/aider/website/docs/more/infinite-output.md b/aider/website/docs/more/infinite-output.md index be61226d6..069be5da6 100644 --- a/aider/website/docs/more/infinite-output.md +++ b/aider/website/docs/more/infinite-output.md @@ -57,7 +57,30 @@ cog.out(model_list) ]]]--> - anthropic.claude-3-5-haiku-20241022-v1:0 - anthropic.claude-3-5-sonnet-20241022-v2:0 +- anthropic.claude-3-7-sonnet-20240620-v1:0 - anthropic.claude-3-7-sonnet-20250219-v1:0 +- anthropic.claude-haiku-4-5-20251001-v1:0 +- anthropic.claude-haiku-4-5@20251001 +- anthropic.claude-opus-4-1-20250805-v1:0 +- anthropic.claude-opus-4-20250514-v1:0 +- anthropic.claude-opus-4-5-20251101-v1:0 +- anthropic.claude-sonnet-4-20250514-v1:0 +- anthropic.claude-sonnet-4-5-20250929-v1:0 +- apac.anthropic.claude-3-5-sonnet-20241022-v2:0 +- apac.anthropic.claude-haiku-4-5-20251001-v1:0 +- apac.anthropic.claude-sonnet-4-20250514-v1:0 +- au.anthropic.claude-haiku-4-5-20251001-v1:0 +- au.anthropic.claude-sonnet-4-5-20250929-v1:0 +- azure_ai/claude-haiku-4-5 +- azure_ai/claude-opus-4-1 +- azure_ai/claude-sonnet-4-5 +- azure_ai/deepseek-v3.2 +- azure_ai/deepseek-v3.2-speciale +- azure_ai/mistral-medium-2505 +- bedrock/us-gov-east-1/claude-sonnet-4-5-20250929-v1:0 +- bedrock/us-gov-west-1/anthropic.claude-3-7-sonnet-20250219-v1:0 +- bedrock/us-gov-west-1/claude-sonnet-4-5-20250929-v1:0 +- bedrock/us.anthropic.claude-3-5-haiku-20241022-v1:0 - claude-3-5-haiku-20241022 - claude-3-5-haiku-latest - claude-3-5-sonnet-20240620 @@ -68,24 +91,72 @@ cog.out(model_list) - claude-3-haiku-20240307 - claude-3-opus-20240229 - claude-3-opus-latest -- claude-3-sonnet-20240229 +- claude-4-opus-20250514 +- claude-4-sonnet-20250514 +- claude-haiku-4-5 +- claude-haiku-4-5-20251001 +- claude-opus-4-1 +- claude-opus-4-1-20250805 +- claude-opus-4-20250514 +- claude-opus-4-5 +- claude-opus-4-5-20251101 +- claude-sonnet-4-20250514 +- claude-sonnet-4-5 +- claude-sonnet-4-5-20250929 +- claude-sonnet-4-5-20250929-v1:0 - codestral/codestral-2405 - codestral/codestral-latest - databricks/databricks-claude-3-7-sonnet +- databricks/databricks-claude-haiku-4-5 +- databricks/databricks-claude-opus-4 +- databricks/databricks-claude-opus-4-1 +- databricks/databricks-claude-opus-4-5 +- databricks/databricks-claude-sonnet-4 +- databricks/databricks-claude-sonnet-4-1 +- databricks/databricks-claude-sonnet-4-5 - deepseek/deepseek-chat - deepseek/deepseek-coder +- deepseek/deepseek-r1 - deepseek/deepseek-reasoner +- deepseek/deepseek-v3 +- deepseek/deepseek-v3.2 - eu.anthropic.claude-3-5-haiku-20241022-v1:0 - eu.anthropic.claude-3-5-sonnet-20241022-v2:0 +- eu.anthropic.claude-3-7-sonnet-20250219-v1:0 +- eu.anthropic.claude-haiku-4-5-20251001-v1:0 +- eu.anthropic.claude-opus-4-1-20250805-v1:0 +- eu.anthropic.claude-opus-4-20250514-v1:0 +- eu.anthropic.claude-opus-4-5-20251101-v1:0 +- eu.anthropic.claude-sonnet-4-20250514-v1:0 +- eu.anthropic.claude-sonnet-4-5-20250929-v1:0 +- global.anthropic.claude-haiku-4-5-20251001-v1:0 +- global.anthropic.claude-opus-4-5-20251101-v1:0 +- global.anthropic.claude-sonnet-4-20250514-v1:0 +- global.anthropic.claude-sonnet-4-5-20250929-v1:0 +- jp.anthropic.claude-haiku-4-5-20251001-v1:0 +- jp.anthropic.claude-sonnet-4-5-20250929-v1:0 - mistral/codestral-2405 +- mistral/codestral-2508 - mistral/codestral-latest - mistral/codestral-mamba-latest +- mistral/devstral-2512 +- mistral/devstral-medium-2507 +- mistral/devstral-small-2505 +- mistral/devstral-small-2507 +- mistral/labs-devstral-small-2512 +- mistral/magistral-medium-2506 +- mistral/magistral-medium-2509 +- mistral/magistral-medium-latest +- mistral/magistral-small-2506 +- mistral/magistral-small-latest - mistral/mistral-large-2402 - mistral/mistral-large-2407 - mistral/mistral-large-2411 +- mistral/mistral-large-3 - mistral/mistral-large-latest - mistral/mistral-medium - mistral/mistral-medium-2312 +- mistral/mistral-medium-2505 - mistral/mistral-medium-latest - mistral/mistral-small - mistral/mistral-small-latest @@ -101,10 +172,26 @@ cog.out(model_list) - mistral/pixtral-large-latest - openrouter/anthropic/claude-3.5-sonnet - openrouter/anthropic/claude-3.7-sonnet +- openrouter/anthropic/claude-haiku-4.5 +- openrouter/anthropic/claude-opus-4 +- openrouter/anthropic/claude-opus-4.1 +- openrouter/anthropic/claude-opus-4.5 +- openrouter/anthropic/claude-sonnet-4 +- openrouter/anthropic/claude-sonnet-4.5 +- openrouter/deepseek/deepseek-chat-v3.1 - openrouter/deepseek/deepseek-r1 +- openrouter/deepseek/deepseek-r1-0528 +- openrouter/deepseek/deepseek-v3.2 +- openrouter/deepseek/deepseek-v3.2-exp - us.anthropic.claude-3-5-haiku-20241022-v1:0 - us.anthropic.claude-3-5-sonnet-20241022-v2:0 - us.anthropic.claude-3-7-sonnet-20250219-v1:0 +- us.anthropic.claude-haiku-4-5-20251001-v1:0 +- us.anthropic.claude-opus-4-1-20250805-v1:0 +- us.anthropic.claude-opus-4-20250514-v1:0 +- us.anthropic.claude-opus-4-5-20251101-v1:0 +- us.anthropic.claude-sonnet-4-20250514-v1:0 +- us.anthropic.claude-sonnet-4-5-20250929-v1:0 - vertex_ai/claude-3-5-haiku - vertex_ai/claude-3-5-haiku@20241022 - vertex_ai/claude-3-5-sonnet @@ -118,6 +205,20 @@ cog.out(model_list) - vertex_ai/claude-3-opus@20240229 - vertex_ai/claude-3-sonnet - vertex_ai/claude-3-sonnet@20240229 +- vertex_ai/claude-haiku-4-5@20251001 +- vertex_ai/claude-opus-4 +- vertex_ai/claude-opus-4-1 +- vertex_ai/claude-opus-4-1@20250805 +- vertex_ai/claude-opus-4-5 +- vertex_ai/claude-opus-4-5@20251101 +- vertex_ai/claude-opus-4@20250514 +- vertex_ai/claude-sonnet-4 +- vertex_ai/claude-sonnet-4-5 +- vertex_ai/claude-sonnet-4-5@20250929 +- vertex_ai/claude-sonnet-4@20250514 +- vertex_ai/deepseek-ai/deepseek-r1-0528-maas +- vertex_ai/deepseek-ai/deepseek-v3.1-maas +- vertex_ai/deepseek-ai/deepseek-v3.2-maas diff --git a/aider/website/docs/scripting.md b/aider/website/docs/scripting.md index 32d060f25..71bb3282a 100644 --- a/aider/website/docs/scripting.md +++ b/aider/website/docs/scripting.md @@ -88,7 +88,7 @@ for all the supported arguments. It can also be helpful to set the equivalent of `--yes` by doing this: -``` +```python from aider.io import InputOutput io = InputOutput(yes=True) # ... diff --git a/aider/website/docs/usage/commands.md b/aider/website/docs/usage/commands.md index 9a0caca19..d8bbaed0f 100644 --- a/aider/website/docs/usage/commands.md +++ b/aider/website/docs/usage/commands.md @@ -57,7 +57,7 @@ cog.out(get_help_md()) | **/save** | Save commands to a file that can reconstruct the current chat session's files | | **/settings** | Print out the current settings | | **/test** | Run a shell command and add the output to the chat on non-zero exit code | -| **/think-tokens** | Set the thinking token budget (supports formats like 8096, 8k, 10.5k, 0.5M) | +| **/think-tokens** | Set the thinking token budget, eg: 8096, 8k, 10.5k, 0.5M, or 0 to disable. | | **/tokens** | Report on the number of tokens used by the current chat context | | **/undo** | Undo the last git commit if it was done by aider | | **/voice** | Record and transcribe voice input | diff --git a/aider/website/index.html b/aider/website/index.html index c632fbc6c..fd8b6b4c5 100644 --- a/aider/website/index.html +++ b/aider/website/index.html @@ -69,11 +69,11 @@ cog.out(text) ]]]--> ⭐ GitHub Stars - 33K + 39K πŸ“¦ Installs - 2.2M + 4.1M
πŸ“ˆ Tokens/week @@ -85,7 +85,7 @@ cog.out(text) πŸ”„ Singularity - 92% + 88%
@@ -269,178 +269,183 @@ cog.out(text)