Compare commits

...

133 Commits

Author SHA1 Message Date
Paul Gauthier
7a1bd15f0c set version to 0.86.3.dev 2026-02-11 16:42:25 -08:00
Paul Gauthier
253f0368b8 version bump to 0.86.2 2026-02-11 16:42:24 -08:00
Paul Gauthier
275c9cb926 copy 2026-02-11 15:44:15 -08:00
Paul Gauthier
11120e5c6f copy 2026-02-11 15:44:05 -08:00
Paul Gauthier
27254aa616 copy 2026-02-11 08:30:09 -08:00
Paul Gauthier
1e001bd73c fix: Update model names in test_models.py 2026-02-11 08:29:48 -08:00
Paul Gauthier
b77180711c copy 2026-02-11 07:34:31 -08:00
Paul Gauthier
750c61c6a0 bump deps 2026-02-11 07:33:32 -08:00
Paul Gauthier
0811a180cf copy 2026-02-11 07:21:09 -08:00
Paul Gauthier
463bf8023c copy 2026-02-11 07:17:19 -08:00
Paul Gauthier
fa3d7b14c0 refactor: Update flash alias to point to gemini/gemini-flash-latest
Co-authored-by: aider (openai/gpt-5.2) <aider@aider.chat>
2026-02-11 07:13:25 -08:00
Paul Gauthier
87c552bbee feat: Add openrouter entries for new models
Co-authored-by: aider (openai/gpt-5.2) <aider@aider.chat>
2026-02-11 07:01:53 -08:00
Paul Gauthier
c7912bf76a feat: Add Gemini 2.5 Flash and Flash-Lite models to settings
Co-authored-by: aider (openai/gpt-5.2) <aider@aider.chat>
2026-02-11 06:56:50 -08:00
Paul Gauthier
c1e0c601da feat: Add settings for new OpenAI models
Co-authored-by: aider (openai/gpt-5.2) <aider@aider.chat>
2026-02-11 06:54:08 -08:00
Paul Gauthier
6a3bbfd95d fix: Remove non-existent openrouter anthropic model versions
Co-authored-by: aider (openai/gpt-5.2) <aider@aider.chat>
2026-02-11 06:48:58 -08:00
Paul Gauthier
c50eb7512f fix: Update openrouter model version numbers to use dots
Co-authored-by: aider (openai/gpt-5.2) <aider@aider.chat>
2026-02-11 06:46:45 -08:00
Paul Gauthier
3aa642fec9 feat: add missing openrouter anthropic model entries
Co-authored-by: aider (openai/gpt-5.2) <aider@aider.chat>
2026-02-11 06:45:56 -08:00
Paul Gauthier
114057283d feat: update models.py for Claude 4.5/4.6
Co-authored-by: aider (openai/gpt-5.2) <aider@aider.chat>
2026-02-11 06:43:41 -08:00
Paul Gauthier
98cc418ea3 feat: Add Claude 4.5/4.6 models to model-settings.yml
Co-authored-by: aider (openai/gpt-5.2) <aider@aider.chat>
2026-02-11 06:41:17 -08:00
Paul Gauthier
a6a31c7b82 fix: Update python version in Dockerfile site-packages permissions 2026-02-11 06:32:23 -08:00
Paul Gauthier
5cb6b61047 dockerfile to 3.12 2026-02-10 19:26:46 -08:00
Paul Gauthier
22b9aec8ac reqs 2026-02-10 19:25:06 -08:00
Paul Gauthier
f8f2726b14 copy 2026-02-10 18:59:19 -08:00
Paul Gauthier
d9d5c1e233 pip-compile 2026-02-10 18:55:35 -08:00
Paul Gauthier
94bd7abd17 from #4814 2026-02-10 18:55:16 -08:00
Paul Gauthier
c1924f2c45 from #4814 2026-02-10 18:53:22 -08:00
Paul Gauthier
a8c3e7c29c copy 2026-02-10 18:46:04 -08:00
paul-gauthier
4bf56b7714 Merge pull request #4772 from markmcd/sdk-depro
Remove `google-generativeai` as a dependency.
2026-01-19 07:39:27 -08:00
Mark McDonald
d91c02c205 Remove google-generativeai as a dependency.
The `google-generativeai` package is deprecated, and emits warnings when
it's imported. I'm doing some cleanup work to remove it from popular
surfacess, so here's a PR :)

I'll note that `litellm` uses direct HTTP requests for the API, so it
does not use `google-genai` (except for type checking) or
`google-generativeai` (except for a deprecated PaLM codepath).
2026-01-16 17:54:49 +08:00
paul-gauthier
fb05748ace Merge pull request #4748 from claui/fix-litellm-exception-list-regression
Fix regression in the LiteLLM exception list
2026-01-04 11:40:30 -04:00
Claudia Pellegrino
08165c57a2 fix: exclude regular classes that end with Error
In an attempt to fix issue #4615 [1], commit 656301c [2] introduces a
regression where running the `coder` feature raises the following error:

> TypeError: catching classes that do not inherit from BaseException is not allowed

The primary misunderstanding that caused the regression is the fact that
`ErrorEventError` sounds like an error class that needs to be included
in the exceptions list. In reality, however, the name `ErrorEventError`
is just a coincidence and actually belongs to a regular class, which
doesn’t have `BaseException` in its chain of base classes.

Current Python versions raise a `TypeError` at runtime if you try to
include such a class name in an `except` clause, which explains why the
error shows up.

Narrow down the filter so it only tries to include actual exception
classes and excludes classes like `ErrorEventError`.
Also remove `ErrorEventError` from the exception list.

Fixes issue #4615 [1] and #4724 [3]. Reverts commit 656301c [2].

[1]: https://github.com/Aider-AI/aider/issues/4615

[2]: 656301cc87

[3]: https://github.com/Aider-AI/aider/issues/4724
2026-01-04 15:26:28 +01:00
Paul Gauthier
1354e0bfa4 copy 2025-12-18 10:37:28 -08:00
Paul Gauthier
2d54feaa09 chore: Update dependencies in requirements files 2025-12-18 10:37:02 -08:00
Paul Gauthier
7ef1dcd64a fix: Add ImageFetchError to aider's exceptions list
Co-authored-by: aider (gemini/gemini-3-flash-preview) <aider@aider.chat>
2025-12-18 10:34:52 -08:00
Paul Gauthier
656301cc87 fix: Add ErrorEventError to aider's exceptions list
Co-authored-by: aider (gemini/gemini-3-flash-preview) <aider@aider.chat>
2025-12-18 10:34:30 -08:00
Paul Gauthier
2c39cb68c7 fix: Add BadGatewayError to exceptions list
Co-authored-by: aider (gemini/gemini-3-flash-preview) <aider@aider.chat>
2025-12-18 10:33:52 -08:00
Paul Gauthier
7e292a2efc feat: Add gemini-3-flash-preview model entries
Co-authored-by: aider (gemini/gemini-3-flash-preview) <aider@aider.chat>
2025-12-18 10:29:33 -08:00
paul-gauthier
7301d4522d Merge pull request #4698 from codeofdusk/gpt-5.2 2025-12-11 11:28:27 -08:00
Bill Dengler
4ff959f55b Add gpt-5.2 models 2025-12-11 11:14:33 -08:00
Paul Gauthier
5683f1c089 bump ts 2025-11-22 11:06:46 -08:00
Paul Gauthier
3bdd49c8ab bump deps 2025-11-21 15:22:54 -08:00
Paul Gauthier
dbc7ee0d0b copy 2025-11-21 15:22:43 -08:00
Paul Gauthier
a65e0892b9 feat: Add use_temperature: false to openrouter/openai/gpt-5-pro
Co-authored-by: aider (gemini/gemini-3-pro-preview) <aider@aider.chat>
2025-11-21 15:22:14 -08:00
Paul Gauthier
7360bb5064 feat: Add use_temperature: false to gpt-5 models 2025-11-21 15:22:14 -08:00
Paul Gauthier
f626e44a0d copy 2025-11-20 20:34:03 -08:00
Paul Gauthier
90ac33cb88 copy 2025-11-20 20:33:46 -08:00
Paul Gauthier
5b0f6ce9e9 Merge branch 'main' of github.com:Aider-AI/aider 2025-11-20 11:13:35 -08:00
paul-gauthier
58eae2f94a Merge pull request #4656 from codeofdusk/new-models-20251118 2025-11-19 09:08:49 -08:00
Bill Dengler
ab29b99518 Add Gemini 3 2025-11-18 13:54:03 -08:00
Bill Dengler
a719c2848b Add gpt-5.1 2025-11-18 13:54:03 -08:00
Bill Dengler
749dee8f30 Add support for gpt-5-pro 2025-11-18 13:54:03 -08:00
paul-gauthier
c74f5efb2f Merge pull request #4621 from TimPut/repomap-haskell 2025-11-02 09:43:18 -08:00
paul-gauthier
9fbfa36c27 Merge pull request #4620 from TimPut/repomap-zig 2025-11-02 09:42:56 -08:00
timput
be8da40b1f add initial zig-tags.scm for repomap 2025-11-02 08:03:26 -07:00
timput
93f20a6d23 add initial haskell-tags.scm for repomap 2025-11-02 07:57:29 -07:00
Paul Gauthier
92de49a50d Merge branch 'main' of github.com:Aider-AI/aider 2025-10-08 06:53:50 -07:00
paul-gauthier
11516d6d6b Merge pull request #4557 from muravvv/remove_duplicated_language 2025-10-05 12:11:17 -07:00
muravvv
bfed819c19 Remove duplicate instruction in what language model should respond
the same instruction included in {final_reminders}
2025-10-05 20:54:04 +03:00
paul-gauthier
1a6d035653 Merge pull request #4552 from gcp/deepseek32-pricing 2025-10-04 05:19:09 -07:00
Gian-Carlo Pascutto
cb6a152e5e chore: update deepseek model names and metadata 2025-10-04 11:14:08 +02:00
paul-gauthier
d47d689d18 Merge pull request #4551 from gcp/deepseek32-pricing 2025-10-03 05:54:06 -07:00
Gian-Carlo Pascutto
484e47d029 chore: add deepseek model test results to leaderboard 2025-10-03 13:11:00 +02:00
Gian-Carlo Pascutto
cbb5376197 feat: update deepseek model metadata and add deepseek-reasoner 2025-10-03 11:18:37 +02:00
paul-gauthier
6963e65887 Merge pull request #4547 from mlang/gpt-5-codex 2025-09-30 06:23:28 -07:00
Mario Lang
a3bbb5ec22 Support for gpt-5-codex 2025-09-30 07:17:50 +02:00
paul-gauthier
73409a52c3 Merge pull request #4544 from zlemisie/main
Feature request: support for Bedrock/Claude 4.5
2025-09-29 12:30:06 -07:00
michal.sliwa
82a31cc7cc Feature request: support for Bedrock/Claude 4.5 #4543 2025-09-29 21:21:58 +02:00
Paul Gauthier
249e389765 copy 2025-09-29 10:51:58 -07:00
Paul Gauthier
a1214101c6 chore: Remove ethicalads.io scripts and divs 2025-09-29 10:30:01 -07:00
paul-gauthier
b2379d585f Merge pull request #4541 from khulnasoft-bot/patch-1 2025-09-29 06:15:16 -07:00
KhulnaSoft bot
39b0c25ae3 added tags for FORTRAN
Reference:
Merge commit for PR #4534
Commit: 5777ab9703
2025-09-29 11:46:56 +06:00
paul-gauthier
f8aa80396d Merge pull request #4534 from varchasgopalaswamy/main
Added tree-sitter tags for FORTRAN
2025-09-26 10:36:51 -07:00
Varchas Gopalaswamy
5777ab9703 added tags for FORTRAN 2025-09-25 19:04:44 -04:00
paul-gauthier
e4fc2f515d Merge pull request #4493 from mubashir1osmani/main 2025-09-05 07:09:23 -07:00
mubashir1osmani
60c578e2a1 added source + license 2025-09-05 02:20:09 -04:00
Paul Gauthier
b3d339a583 copy 2025-09-02 11:00:09 -07:00
Paul Gauthier
c4b06c0870 copy 2025-09-02 08:53:17 -07:00
Paul Gauthier
bd3c5df505 Merge branch 'main' of github.com:Aider-AI/aider 2025-09-02 08:52:52 -07:00
paul-gauthier
37ab5e4b56 Merge pull request #4475 from lreeves/patch-1
Add GPT-5 with all reasoning settings to polyglot leaderboard
2025-09-02 08:52:13 -07:00
mubashir1osmani
f6ad53ea8c added julia tree sitter 2025-08-31 20:05:44 -04:00
Luke Reeves
54b266f289 Update polyglot_leaderboard.yml with medium and low reasoning 2025-08-25 10:52:12 -04:00
Luke Reeves
bfef1906bb Update polyglot_leaderboard.yml
add GPT-5 with high reasoning
2025-08-23 13:11:56 -04:00
Paul Gauthier
ad19c7b5aa bump deps 2025-08-16 14:06:32 -07:00
Paul Gauthier
32faf82b31 chore: Update base image to python:3.10-slim-bookworm
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-08-13 10:17:40 -07:00
Paul Gauthier
59250e070e set version to 0.86.2.dev 2025-08-13 08:46:02 -07:00
Paul Gauthier
b8b521f143 version bump to 0.86.1 2025-08-13 08:46:00 -07:00
Paul Gauthier
07e25599e9 copy 2025-08-13 08:44:21 -07:00
Paul Gauthier
2b98a9ecf0 copy 2025-08-13 08:43:58 -07:00
Paul Gauthier
450a535548 feat: Add reasoning_effort setting to gpt-5 models
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-08-12 18:23:38 -07:00
Paul Gauthier
5761b087b5 refactor: Remove unused ad styles from head_custom.html 2025-08-12 06:36:43 -07:00
Paul Gauthier
da45632087 fix: Adjust ad placement for narrow screens
Co-authored-by: aider (gpt-5) <aider@aider.chat>
2025-08-11 12:37:40 -07:00
Paul Gauthier
0a88f7ce34 feat: Add EthicalAds script and ad placement
Co-authored-by: aider (gpt-5) <aider@aider.chat>
2025-08-11 12:14:42 -07:00
Paul Gauthier
9fda5c93cc chore: Update polyglot leaderboard model name and command 2025-08-11 09:45:20 -07:00
paul-gauthier
2f5bb772b5 Merge pull request #4412 from Oct4Pie/bench/gpt-oss-120b-high
Add test results for gpt-oss-120b (high) to polyglot leaderboard
2025-08-11 12:44:38 -04:00
Paul Gauthier
5a3b2f34b6 feat: Add flash-lite model alias 2025-08-09 13:44:27 -04:00
Paul Gauthier
a7d3fdc23b copy 2025-08-09 12:59:45 -03:00
Paul Gauthier
0862128d36 copy 2025-08-09 12:56:55 -03:00
Paul Gauthier
01a9b88df1 set version to 0.86.1.dev 2025-08-09 12:55:11 -03:00
Paul Gauthier
a4be6ccd87 version bump to 0.86.0 2025-08-09 12:54:51 -03:00
Paul Gauthier
4cd71acebe copy 2025-08-09 12:35:59 -03:00
Paul Gauthier
3d8290cdef copy 2025-08-09 12:29:10 -03:00
Paul Gauthier
b782437918 copy 2025-08-09 12:22:31 -03:00
Paul Gauthier
f3d5f20ad7 blame 2025-08-09 11:23:25 -03:00
Paul Gauthier
f57c0f624a feat: blame: Detect aider commits using co-authored-by
Co-authored-by: aider (gpt-5) <aider@aider.chat>
2025-08-09 09:55:52 -03:00
Paul Gauthier
071d177309 feat: Add OpenAI and OpenRouter GPT-5 model settings
Co-authored-by: aider (gpt-5) <aider@aider.chat>
2025-08-09 09:53:34 -03:00
Paul Gauthier
4e7c9f2fcd fix: Remove editor settings from models using gpt-5 nano weak model
Co-authored-by: aider (gpt-5) <aider@aider.chat>
2025-08-08 10:24:33 -03:00
Paul Gauthier
a14cb222c0 feat: Add GPT-5 model family settings
Co-authored-by: aider (gpt-5) <aider@aider.chat>
2025-08-08 09:37:44 -03:00
Paul Gauthier
3b919646a5 set version to 0.85.6.dev 2025-08-07 17:54:56 -03:00
Paul Gauthier
9702b1c199 version bump to 0.85.5 2025-08-07 17:54:54 -03:00
Paul Gauthier
7440a01015 copy 2025-08-07 17:10:47 -03:00
Paul Gauthier
3a6f217dcd feat: Add reasoning_effort setting support for GPT-5 models 2025-08-07 17:04:44 -03:00
Paul Gauthier
ceb81369ea feat: Enforce diff edit format for GPT-5 models 2025-08-07 17:03:10 -03:00
Paul Gauthier
ad49e56b24 fix: Accurately match gpt-5 and gpt-5-2025-08-07 models
Co-authored-by: aider (gpt-5) <aider@aider.chat>
2025-08-07 16:58:47 -03:00
Paul Gauthier
53c14329bf set version to 0.85.5.dev 2025-08-07 15:33:44 -03:00
Paul Gauthier
0b13b27b51 version bump to 0.85.4 2025-08-07 15:33:43 -03:00
Paul Gauthier
d9d13f23b3 copy 2025-08-07 15:31:28 -03:00
Paul Gauthier
8c982f83ce feat: Disable temperature for GPT-5 models
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-08-07 15:26:20 -03:00
Paul Gauthier
ac7e274fe0 fix: Adapt to new PostHog SDK capture method signature
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-08-07 15:26:02 -03:00
Paul Gauthier
c23ebfe688 set version to 0.85.4.dev 2025-08-07 10:42:13 -03:00
Paul Gauthier
9d778bfdac version bump to 0.85.3 2025-08-07 10:42:12 -03:00
Paul Gauthier
70f2bbb796 copy 2025-08-07 10:17:58 -03:00
Paul Gauthier
6c7870dbcf copy 2025-08-07 10:16:46 -03:00
Paul Gauthier
ece9803fdc bump deps without llama-index-core==0.12.26 2025-08-07 09:18:12 -03:00
Paul Gauthier
ad39fdb2d1 bump deps 2025-08-07 09:00:03 -03:00
Paul Gauthier
8904e2966d Merge branch 'main' of github.com:Aider-AI/aider 2025-08-07 08:50:45 -03:00
Paul Gauthier
3c9e180b54 bump deps 2025-08-07 08:50:39 -03:00
oct4pie
ac40a4c5cb add test results for gpt-oss-120b (high) to polyglot leaderboard 2025-08-05 23:33:06 -07:00
paul-gauthier
1af0e59149 Merge pull request #4410 from liam61/main
chore: prettier scripting usage for faq
2025-08-05 08:29:08 -03:00
liam.liu
3402b151f7 chore: prettier scripting usage for faq 2025-08-05 19:18:16 +08:00
Paul Gauthier
f38200c511 copy 2025-07-18 11:05:51 +00:00
Paul Gauthier
89ad2ba2cb copy 2025-07-17 20:26:38 +00:00
Paul Gauthier
9d6ddcd0fc chore: Remove Kimi K2 model metadata and add test results 2025-07-17 18:03:14 +00:00
paul-gauthier
915ebffc8e Update polyglot_leaderboard.yml 2025-07-17 09:34:34 +00:00
52 changed files with 4966 additions and 2505 deletions

View File

@@ -1,5 +1,44 @@
# Release history
### main branch
- Added support for Claude 4.5/4.6 models and updated model aliases (sonnet/haiku/opus).
- Expanded Gemini model support with 2.5 Flash and FlashLite, added Gemini 3 preview models, and updated the flash alias to gemini/gemini-flash-latest.
- Added DeepSeek Reasoner model and updated DeepSeek model metadata with costs and prompt caching.
- Added BadGatewayError and ImageFetchError to handled exceptions.
- Fixed exception mapping to only include real exception classes, avoiding runtime errors, by Claudia Pellegrino.
- Repo map now tags Fortran, Haskell, Julia, and Zig and is compatible with newer tree-sitter Python APIs, by Varchas Gopalaswamy, Tim Put, and Mubashir Osmani.
- Removed deprecated google-generativeai dependency to eliminate import warnings, by Mark McDonald.
- Added settings for new OpenAI GPT5.1/5.2 and GPT5pro models across OpenAI, Azure, and OpenRouter, including chat and codex variants.
- Changed the gemini alias to point to gemini/gemini-3-pro-preview.
- Added support for OpenAI o1-pro model.
- Aider wrote 57% of the code in this release.
### Aider v0.86.1
- Added a reasoning_effort setting for GPT-5 models and disabled temperature by default for the GPT-5 family.
### 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.

View File

@@ -27,13 +27,13 @@ cog.out(text)
<a href="https://github.com/Aider-AI/aider/stargazers"><img alt="GitHub Stars" title="Total number of GitHub stars the Aider project has received"
src="https://img.shields.io/github/stars/Aider-AI/aider?style=flat-square&logo=github&color=f1c40f&labelColor=555555"/></a>
<a href="https://pypi.org/project/aider-chat/"><img alt="PyPI Downloads" title="Total number of installations via pip from PyPI"
src="https://img.shields.io/badge/📦%20Installs-2.8M-2ecc71?style=flat-square&labelColor=555555"/></a>
src="https://img.shields.io/badge/📦%20Installs-4.9M-2ecc71?style=flat-square&labelColor=555555"/></a>
<img alt="Tokens per week" title="Number of tokens processed weekly by Aider users"
src="https://img.shields.io/badge/📈%20Tokens%2Fweek-15B-3498db?style=flat-square&labelColor=555555"/>
<a href="https://openrouter.ai/#options-menu"><img alt="OpenRouter Ranking" title="Aider's ranking among applications on the OpenRouter platform"
src="https://img.shields.io/badge/🏆%20OpenRouter-Top%2020-9b59b6?style=flat-square&labelColor=555555"/></a>
<a href="https://aider.chat/HISTORY.html"><img alt="Singularity" title="Percentage of the new code in Aider's last release written by Aider itself"
src="https://img.shields.io/badge/🔄%20Singularity-21%25-e74c3c?style=flat-square&labelColor=555555"/></a>
src="https://img.shields.io/badge/🔄%20Singularity-88%25-e74c3c?style=flat-square&labelColor=555555"/></a>
<!--[[[end]]]-->
</p>

View File

@@ -1,6 +1,6 @@
from packaging import version
__version__ = "0.85.3.dev"
__version__ = "0.86.3.dev"
safe_version = __version__
try:

View File

@@ -237,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 = {

View File

@@ -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!

View File

@@ -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!

View File

@@ -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.
"""

View File

@@ -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.

View File

@@ -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,7 @@ 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("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),
@@ -61,7 +63,10 @@ class LiteLLMExceptions:
import litellm
for var in dir(litellm):
if var.endswith("Error"):
# Filter by BaseException because instances of non-exception classes cannot be caught.
# `litellm.ErrorEventError` is an example of a regular class which just happens to end
# with `Error`.
if var.endswith("Error") and issubclass(getattr(litellm, var), BaseException):
if var not in self.exception_info:
raise ValueError(f"{var} is in litellm but not in aider's exceptions list")
@@ -77,10 +82,6 @@ class LiteLLMExceptions:
import litellm
if ex.__class__ is litellm.APIConnectionError:
if "google.auth" in str(ex):
return ExInfo(
"APIConnectionError", False, "You need to: pip install google-generativeai"
)
if "boto3" in str(ex):
return ExInfo("APIConnectionError", False, "You need to: pip install boto3")
if "OpenrouterException" in str(ex) and "'choices'" in str(ex):

View File

@@ -74,6 +74,11 @@ claude-3-5-sonnet-20240620
claude-3-5-sonnet-20241022
claude-sonnet-4-20250514
claude-opus-4-20250514
claude-opus-4-6
claude-sonnet-4-5
claude-sonnet-4-5-20250929
claude-haiku-4-5
claude-haiku-4-5-20251001
"""
ANTHROPIC_MODELS = [ln.strip() for ln in ANTHROPIC_MODELS.splitlines() if ln.strip()]
@@ -81,9 +86,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-sonnet-4-20250514",
"haiku": "claude-3-5-haiku-20241022",
"opus": "claude-opus-4-20250514",
"sonnet": "claude-sonnet-4-5",
"haiku": "claude-haiku-4-5",
"opus": "claude-opus-4-6",
# GPT models
"4": "gpt-4-0613",
"4o": "gpt-4o",
@@ -93,11 +98,13 @@ MODEL_ALIASES = {
"3": "gpt-3.5-turbo",
# Other models
"deepseek": "deepseek/deepseek-chat",
"flash": "gemini/gemini-2.5-flash",
"flash": "gemini/gemini-flash-latest",
"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",
"gemini": "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",
@@ -436,6 +443,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
@@ -497,6 +512,21 @@ class Model(ModelSettings):
self.reminder = "sys"
return # <--
if (
"sonnet-4-5" in model
or "opus-4-6" in model
or "haiku-4-5" in model
or "claude-sonnet-4-5" in model
or "claude-opus-4-6" in model
or "claude-haiku-4-5" in model
):
self.edit_format = "diff"
self.use_repo_map = True
self.examples_as_sys_msg = False
if "thinking_tokens" not in self.accepts_settings:
self.accepts_settings.append("thinking_tokens")
return # <--
if "3-7-sonnet" in model:
self.edit_format = "diff"
self.use_repo_map = True

View File

@@ -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.

View File

@@ -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

View File

@@ -0,0 +1,3 @@
(function (variable) @name.definition.function)
(bind (variable) @name.definition.function)
(signature (variable) @name.definition.type)

View File

@@ -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

View File

@@ -0,0 +1,3 @@
(FnProto) @name.definition.function
(VarDecl "const" @name.definition.constant)
(VarDecl "var" @name.definition.variable)

View File

@@ -16,6 +16,7 @@ from grep_ast import TreeContext, filename_to_lang
from pygments.lexers import guess_lexer_for_filename
from pygments.token import Token
from tqdm import tqdm
from tree_sitter import Query
from aider.dump import dump
from aider.special import filter_important_files
@@ -262,6 +263,19 @@ class RepoMap:
return data
def _run_captures(self, query: Query, node):
# tree-sitter 0.23.2's python bindings had captures directly on the Query object
# but 0.24.0 moved it to a separate QueryCursor class. Support both.
if hasattr(query, "captures"):
# Old API
return query.captures(node)
# New API
from tree_sitter import QueryCursor
cursor = QueryCursor(query)
return cursor.captures(node)
def get_tags_raw(self, fname, rel_fname):
lang = filename_to_lang(fname)
if not lang:
@@ -285,17 +299,22 @@ class RepoMap:
tree = parser.parse(bytes(code, "utf-8"))
# Run the tags queries
query = language.query(query_scm)
captures = query.captures(tree.root_node)
captures = self._run_captures(Query(language, query_scm), tree.root_node)
captures_by_tag = defaultdict(list)
matches = []
for tag, nodes in captures.items():
for node in nodes:
captures_by_tag[tag].append(node)
captures_by_tag[tag].append(node)
matches.append((node, tag))
if USING_TSL_PACK:
all_nodes = [(node, tag) for tag, nodes in captures_by_tag.items() for node in nodes]
else:
all_nodes = matches
saw = set()
if USING_TSL_PACK:
all_nodes = []
for tag, nodes in captures.items():
all_nodes += [(node, tag) for node in nodes]
else:
all_nodes = list(captures)
for node, tag in all_nodes:
if tag.startswith("name.definition."):
kind = "def"

View File

@@ -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
@@ -112,18 +128,6 @@
"litellm_provider": "openrouter",
"mode": "chat"
},
"openrouter/moonshotai/kimi-k2": {
"max_tokens": 131072,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"input_cost_per_token": 0.000000057,
"output_cost_per_token": 0.00000023,
"litellm_provider": "openrouter",
"mode": "chat",
"supports_tool_choice": true,
"supports_system_messages": true,
"source": "https://openrouter.ai/moonshotai/kimi-k2"
},
"openrouter/openai/gpt-4o-mini": {
"max_tokens": 16384,
"max_input_tokens": 128000,

View File

@@ -1401,6 +1401,62 @@
use_temperature: false
accepts_settings: ["thinking_tokens"]
- name: gemini/gemini-2.5-flash-preview-09-2025
overeager: true
edit_format: diff-fenced
use_repo_map: true
use_temperature: false
accepts_settings: ["thinking_tokens"]
- name: gemini-2.5-flash-preview-09-2025
overeager: true
edit_format: diff-fenced
use_repo_map: true
use_temperature: false
accepts_settings: ["thinking_tokens"]
- name: gemini/gemini-2.5-flash-lite
overeager: true
edit_format: diff-fenced
use_repo_map: true
use_temperature: false
accepts_settings: ["thinking_tokens"]
- name: gemini-2.5-flash-lite
overeager: true
edit_format: diff-fenced
use_repo_map: true
use_temperature: false
accepts_settings: ["thinking_tokens"]
- name: gemini/gemini-2.5-flash-lite-preview-09-2025
overeager: true
edit_format: diff-fenced
use_repo_map: true
use_temperature: false
accepts_settings: ["thinking_tokens"]
- name: gemini-2.5-flash-lite-preview-09-2025
overeager: true
edit_format: diff-fenced
use_repo_map: true
use_temperature: false
accepts_settings: ["thinking_tokens"]
- name: gemini/gemini-flash-latest
overeager: true
edit_format: diff-fenced
use_repo_map: true
use_temperature: false
accepts_settings: ["thinking_tokens"]
- name: gemini-flash-latest
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
@@ -1465,6 +1521,55 @@
weak_model_name: openrouter/google/gemini-2.5-flash
accepts_settings: ["thinking_tokens"]
- name: openrouter/google/gemini-2.5-flash
overeager: true
edit_format: diff-fenced
use_repo_map: true
use_temperature: false
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
@@ -1546,6 +1651,20 @@
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
@@ -1736,6 +1855,127 @@
editor_edit_format: editor-diff
accepts_settings: ["thinking_tokens"]
# Claude 4.5/4.6 (Anthropic docs: models/overview)
- name: claude-opus-4-6
edit_format: diff
weak_model_name: claude-haiku-4-5
use_repo_map: true
examples_as_sys_msg: false
extra_params:
max_tokens: 128000
cache_control: true
editor_model_name: claude-sonnet-4-5
editor_edit_format: editor-diff
accepts_settings: ["thinking_tokens"]
- name: claude-sonnet-4-5-20250929
edit_format: diff
weak_model_name: claude-haiku-4-5
use_repo_map: true
examples_as_sys_msg: false
extra_params:
max_tokens: 64000
cache_control: true
editor_model_name: claude-sonnet-4-5
editor_edit_format: editor-diff
accepts_settings: ["thinking_tokens"]
- name: claude-sonnet-4-5
edit_format: diff
weak_model_name: claude-haiku-4-5
use_repo_map: true
examples_as_sys_msg: false
extra_params:
max_tokens: 64000
cache_control: true
editor_model_name: claude-sonnet-4-5
editor_edit_format: editor-diff
accepts_settings: ["thinking_tokens"]
- name: claude-haiku-4-5-20251001
edit_format: diff
weak_model_name: claude-haiku-4-5
use_repo_map: true
examples_as_sys_msg: false
extra_params:
max_tokens: 64000
cache_control: true
- name: claude-haiku-4-5
edit_format: diff
weak_model_name: claude-haiku-4-5
use_repo_map: true
examples_as_sys_msg: false
extra_params:
max_tokens: 64000
cache_control: true
- name: bedrock/anthropic.claude-opus-4-6-v1
edit_format: diff
weak_model_name: bedrock/anthropic.claude-haiku-4-5-20251001-v1:0
use_repo_map: true
examples_as_sys_msg: false
extra_params:
max_tokens: 128000
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/anthropic.claude-sonnet-4-5-20250929-v1:0
edit_format: diff
weak_model_name: bedrock/anthropic.claude-haiku-4-5-20251001-v1:0
use_repo_map: true
examples_as_sys_msg: false
extra_params:
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/anthropic.claude-haiku-4-5-20251001-v1:0
edit_format: diff
weak_model_name: bedrock/anthropic.claude-haiku-4-5-20251001-v1:0
use_repo_map: true
examples_as_sys_msg: false
extra_params:
max_tokens: 64000
cache_control: true
- name: vertex_ai/claude-opus-4-6
edit_format: diff
weak_model_name: vertex_ai/claude-haiku-4-5@20251001
use_repo_map: true
examples_as_sys_msg: false
extra_params:
max_tokens: 128000
cache_control: true
editor_model_name: vertex_ai/claude-sonnet-4-5@20250929
editor_edit_format: editor-diff
accepts_settings: ["thinking_tokens"]
- name: vertex_ai/claude-sonnet-4-5@20250929
edit_format: diff
weak_model_name: vertex_ai/claude-haiku-4-5@20251001
use_repo_map: true
examples_as_sys_msg: false
extra_params:
max_tokens: 64000
cache_control: true
editor_model_name: vertex_ai/claude-sonnet-4-5@20250929
editor_edit_format: editor-diff
accepts_settings: ["thinking_tokens"]
- name: vertex_ai/claude-haiku-4-5@20251001
edit_format: diff
weak_model_name: vertex_ai/claude-haiku-4-5@20251001
use_repo_map: true
examples_as_sys_msg: false
extra_params:
max_tokens: 64000
cache_control: true
- 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
@@ -1819,3 +2059,660 @@
editor_edit_format: editor-diff
accepts_settings: ["thinking_tokens"]
- name: openrouter/anthropic/claude-opus-4.6
edit_format: diff
weak_model_name: openrouter/anthropic/claude-haiku-4-5
use_repo_map: true
examples_as_sys_msg: false
extra_params:
max_tokens: 128000
cache_control: true
editor_model_name: openrouter/anthropic/claude-sonnet-4-5
editor_edit_format: editor-diff
accepts_settings: ["thinking_tokens"]
- name: openrouter/anthropic/claude-sonnet-4.5
edit_format: diff
weak_model_name: openrouter/anthropic/claude-haiku-4-5
use_repo_map: true
examples_as_sys_msg: false
extra_params:
max_tokens: 64000
cache_control: true
editor_model_name: openrouter/anthropic/claude-sonnet-4-5
editor_edit_format: editor-diff
accepts_settings: ["thinking_tokens"]
- name: openrouter/anthropic/claude-haiku-4.5
edit_format: diff
weak_model_name: openrouter/anthropic/claude-haiku-4-5
use_repo_map: true
examples_as_sys_msg: false
extra_params:
max_tokens: 64000
cache_control: true
# 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"]
- name: gpt-4.1-nano
edit_format: diff
weak_model_name: gpt-4.1-nano
use_repo_map: true
reminder: sys
examples_as_sys_msg: false
- name: openai/gpt-4.1-nano
edit_format: diff
weak_model_name: openai/gpt-4.1-nano
use_repo_map: true
reminder: sys
examples_as_sys_msg: false
- name: o1-pro
edit_format: diff
weak_model_name: gpt-4o-mini
use_repo_map: true
use_temperature: false
streaming: false
editor_model_name: gpt-4o
editor_edit_format: editor-diff
system_prompt_prefix: "Formatting re-enabled. "
accepts_settings: ["reasoning_effort"]
examples_as_sys_msg: true
- name: openai/o1-pro
edit_format: diff
weak_model_name: openai/gpt-4o-mini
use_repo_map: true
use_temperature: false
streaming: false
editor_model_name: openai/gpt-4o
editor_edit_format: editor-diff
system_prompt_prefix: "Formatting re-enabled. "
accepts_settings: ["reasoning_effort"]
examples_as_sys_msg: true
- name: gpt-5.2-codex
edit_format: diff
weak_model_name: gpt-5-nano
use_repo_map: true
use_temperature: false
accepts_settings: ["reasoning_effort"]
- name: openai/gpt-5.2-codex
edit_format: diff
weak_model_name: openai/gpt-5-nano
use_repo_map: true
use_temperature: false
accepts_settings: ["reasoning_effort"]
- name: gpt-5.1-codex-mini
edit_format: diff
weak_model_name: gpt-5-nano
use_repo_map: true
use_temperature: false
accepts_settings: ["reasoning_effort"]
- name: openai/gpt-5.1-codex-mini
edit_format: diff
weak_model_name: openai/gpt-5-nano
use_repo_map: true
use_temperature: false
accepts_settings: ["reasoning_effort"]
- name: gpt-5.1-codex-max
edit_format: diff
weak_model_name: gpt-5.1-codex-mini
use_repo_map: true
use_temperature: false
accepts_settings: ["reasoning_effort"]
- name: openai/gpt-5.1-codex-max
edit_format: diff
weak_model_name: openai/gpt-5.1-codex-mini
use_repo_map: true
use_temperature: false
accepts_settings: ["reasoning_effort"]
- name: openrouter/openai/gpt-5.2-codex
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-codex-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.1-codex-max
edit_format: diff
weak_model_name: openrouter/openai/gpt-5.1-codex-mini
use_repo_map: true
use_temperature: false
accepts_settings: ["reasoning_effort"]

View File

@@ -24,6 +24,45 @@ cog.out(text)
]]]-->
### main branch
- Added support for Claude 4.5/4.6 models and updated model aliases (sonnet/haiku/opus).
- Expanded Gemini model support with 2.5 Flash and FlashLite, added Gemini 3 preview models, and updated the flash alias to gemini/gemini-flash-latest.
- Added DeepSeek Reasoner model and updated DeepSeek model metadata with costs and prompt caching.
- Added BadGatewayError and ImageFetchError to handled exceptions.
- Fixed exception mapping to only include real exception classes, avoiding runtime errors, by Claudia Pellegrino.
- Repo map now tags Fortran, Haskell, Julia, and Zig and is compatible with newer tree-sitter Python APIs, by Varchas Gopalaswamy, Tim Put, and Mubashir Osmani.
- Removed deprecated google-generativeai dependency to eliminate import warnings, by Mark McDonald.
- Added settings for new OpenAI GPT5.1/5.2 and GPT5pro models across OpenAI, Azure, and OpenRouter, including chat and codex variants.
- Changed the gemini alias to point to gemini/gemini-3-pro-preview.
- Added support for OpenAI o1-pro model.
- Aider wrote 57% of the code in this release.
### Aider v0.86.1
- Added a reasoning_effort setting for GPT-5 models and disabled temperature by default for the GPT-5 family.
### 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.

File diff suppressed because it is too large Load Diff

View File

@@ -1656,30 +1656,201 @@
seconds_per_case: 403.2
total_cost: 59.6182
- dirname: 2025-07-15-08-44-52--kimi-k2-diff
- dirname: 2025-07-17-17-41-54--kimi-k2-diff-or-pricing
test_cases: 225
model: Kimi K2
edit_format: diff
commit_hash: 90dffa9
pass_rate_1: 17.8
pass_rate_2: 56.0
pass_num_1: 40
pass_num_2: 126
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: 23
num_malformed_responses: 16
error_outputs: 19
num_malformed_responses: 19
num_with_malformed_responses: 16
user_asks: 59
user_asks: 61
lazy_comments: 0
syntax_errors: 0
indentation_errors: 0
exhausted_context_windows: 0
prompt_tokens: 2353923
completion_tokens: 364827
test_timeouts: 5
prompt_tokens: 2355141
completion_tokens: 363846
test_timeouts: 4
total_tests: 225
command: aider --model openrouter/moonshotai/kimi-k2
date: 2025-07-15
versions: 0.85.2.dev
seconds_per_case: 171.1
total_cost: 0.2181
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: 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: 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 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

View File

@@ -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; }
}
</style>
<link rel="alternate" type="application/rss+xml" title="RSS Feed" href="{{ site.url }}/feed.xml">
<link rel="preconnect" href="https://fonts.gstatic.com">

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -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
- `gemini`: gemini/gemini-2.5-pro
- `flash`: gemini/gemini-flash-latest
- `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
- `haiku`: claude-haiku-4-5
- `optimus`: openrouter/openrouter/optimus-alpha
- `opus`: claude-opus-4-20250514
- `opus`: claude-opus-4-6
- `quasar`: openrouter/openrouter/quasar-alpha
- `r1`: deepseek/deepseek-reasoner
- `sonnet`: anthropic/claude-sonnet-4-20250514
- `sonnet`: claude-sonnet-4-5
<!--[[[end]]]-->
## Priority

View File

@@ -264,13 +264,16 @@ tr:hover { background-color: #f5f5f5; }
</style>
<table>
<tr><th>Model Name</th><th class='right'>Total Tokens</th><th class='right'>Percent</th></tr>
<tr><td>anthropic/claude-sonnet-4-20250514</td><td class='right'>493,971</td><td class='right'>52.1%</td></tr>
<tr><td>gemini/gemini-2.5-pro</td><td class='right'>322,822</td><td class='right'>34.0%</td></tr>
<tr><td>gemini/gemini-2.5-pro-exp-03-25</td><td class='right'>78,209</td><td class='right'>8.2%</td></tr>
<tr><td>openrouter/moonshotai/kimi-k2</td><td class='right'>18,794</td><td class='right'>2.0%</td></tr>
<tr><td>o3</td><td class='right'>14,004</td><td class='right'>1.5%</td></tr>
<tr><td>o3-pro</td><td class='right'>11,150</td><td class='right'>1.2%</td></tr>
<tr><td>xai/grok-4</td><td class='right'>9,573</td><td class='right'>1.0%</td></tr>
<tr><td>openai/gpt-5.2</td><td class='right'>971,055</td><td class='right'>51.0%</td></tr>
<tr><td>gpt-5</td><td class='right'>250,539</td><td class='right'>13.2%</td></tr>
<tr><td>gemini/gemini-3-flash-preview</td><td class='right'>241,516</td><td class='right'>12.7%</td></tr>
<tr><td>gemini/gemini-2.5-pro</td><td class='right'>222,047</td><td class='right'>11.7%</td></tr>
<tr><td>gemini/gemini-3-pro-preview</td><td class='right'>81,851</td><td class='right'>4.3%</td></tr>
<tr><td>None</td><td class='right'>45,450</td><td class='right'>2.4%</td></tr>
<tr><td>o3-pro</td><td class='right'>36,620</td><td class='right'>1.9%</td></tr>
<tr><td>gpt-5.2</td><td class='right'>27,427</td><td class='right'>1.4%</td></tr>
<tr><td>gemini/gemini-2.5-flash-lite</td><td class='right'>15,470</td><td class='right'>0.8%</td></tr>
<tr><td>gemini/gemini-2.5-flash-lite-preview-06-17</td><td class='right'>11,371</td><td class='right'>0.6%</td></tr>
</table>
<!--[[[end]]]-->
@@ -370,6 +373,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)
<div style="height:80vh"></div>

View File

@@ -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 | ✓ | ✓ |
@@ -257,7 +257,7 @@ cog.out(get_supported_languages_md())
| xml | .xml | | ✓ |
| xml | .xsl | | ✓ |
| yuck | .yuck | | ✓ |
| zig | .zig | | ✓ |
| zig | .zig | | ✓ |
<!--[[[end]]]-->

View File

@@ -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.')}")
]]]-->
July 15, 2025.
November 20, 2025.
<!--[[[end]]]-->
</p>

View File

@@ -35,15 +35,3 @@ aider --model gemini-exp
aider --list-models gemini/
```
You may need to install the `google-generativeai` package.
```bash
# If you installed with aider-install or `uv tool`
uv tool run --from aider-chat pip install google-generativeai
# Or with pipx...
pipx inject aider-chat google-generativeai
# Or with pip
pip install -U google-generativeai
```

View File

@@ -59,16 +59,20 @@ 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
@@ -77,11 +81,13 @@ cog.out(''.join(lines))
- 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
@@ -91,14 +97,19 @@ cog.out(''.join(lines))
- 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

View File

@@ -57,12 +57,31 @@ 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-opus-4-5
- 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
@@ -73,37 +92,71 @@ 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-v3-2-251201
- 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
- glm-4-7-251222
- 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
- kimi-k2-thinking-251104
- 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
@@ -123,14 +176,37 @@ 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
- openrouter/z-ai/glm-4.7
- 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
- vercel_ai_gateway/anthropic/claude-3-5-sonnet
- vercel_ai_gateway/anthropic/claude-3-5-sonnet-20241022
- vercel_ai_gateway/anthropic/claude-3-7-sonnet
- vercel_ai_gateway/anthropic/claude-haiku-4.5
- vercel_ai_gateway/anthropic/claude-opus-4
- vercel_ai_gateway/anthropic/claude-opus-4.1
- vercel_ai_gateway/anthropic/claude-opus-4.5
- vercel_ai_gateway/anthropic/claude-opus-4.6
- vercel_ai_gateway/anthropic/claude-sonnet-4
- vercel_ai_gateway/anthropic/claude-sonnet-4.5
- vertex_ai/claude-3-5-haiku
- vertex_ai/claude-3-5-haiku@20241022
- vertex_ai/claude-3-5-sonnet
@@ -144,10 +220,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
<!--[[[end]]]-->

View File

@@ -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)
# ...

View File

@@ -69,23 +69,19 @@ cog.out(text)
]]]-->
<a href="https://github.com/Aider-AI/aider" class="github-badge badge-stars" title="Total number of GitHub stars the Aider project has received">
<span class="badge-label">⭐ GitHub Stars</span>
<span class="badge-value">36K</span>
<span class="badge-value">41K</span>
</a>
<a href="https://pypi.org/project/aider-chat/" class="github-badge badge-installs" title="Total number of installations via pip from PyPI">
<span class="badge-label">📦 Installs</span>
<span class="badge-value">2.8M</span>
<span class="badge-value">4.9M</span>
</a>
<div class="github-badge badge-tokens" title="Number of tokens processed weekly by Aider users">
<span class="badge-label">📈 Tokens/week</span>
<span class="badge-value">15B</span>
</div>
<a href="https://openrouter.ai/#options-menu" class="github-badge badge-router" title="Aider's ranking among applications on the OpenRouter platform">
<span class="badge-label">🏆 OpenRouter</span>
<span class="badge-value">Top 20</span>
</a>
<a href="/HISTORY.html" class="github-badge badge-coded" title="Percentage of the new code in Aider's last release written by Aider itself">
<span class="badge-label">🔄 Singularity</span>
<span class="badge-value">21%</span>
<span class="badge-value">88%</span>
</a>
<!--[[[end]]]-->
</div>

View File

@@ -1,4 +1,4 @@
FROM python:3.10-slim AS base
FROM python:3.12-slim-bookworm AS base
# Install system dependencies
RUN apt-get update && \
@@ -48,7 +48,7 @@ RUN /venv/bin/python -m pip install --upgrade --no-cache-dir pip && \
RUN /venv/bin/python -m playwright install --with-deps chromium
# Fix site-packages permissions
RUN find /venv/lib/python3.10/site-packages \( -type d -exec chmod a+rwx {} + \) -o \( -type f -exec chmod a+rw {} + \)
RUN find /venv/lib/python3.12/site-packages \( -type d -exec chmod a+rwx {} + \) -o \( -type f -exec chmod a+rw {} + \)
# Switch to appuser
USER appuser
@@ -72,7 +72,7 @@ RUN /venv/bin/python -m pip install --upgrade --no-cache-dir pip && \
RUN /venv/bin/python -m playwright install --with-deps chromium
# Fix site-packages permissions
RUN find /venv/lib/python3.10/site-packages \( -type d -exec chmod a+rwx {} + \) -o \( -type f -exec chmod a+rw {} + \)
RUN find /venv/lib/python3.12/site-packages \( -type d -exec chmod a+rwx {} + \) -o \( -type f -exec chmod a+rw {} + \)
# Switch to appuser
USER appuser

View File

@@ -4,25 +4,35 @@ aiohappyeyeballs==2.6.1
# via
# -c requirements/common-constraints.txt
# aiohttp
aiohttp==3.12.13
aiohttp==3.13.3
# via
# -c requirements/common-constraints.txt
# litellm
aiosignal==1.3.2
aiosignal==1.4.0
# via
# -c requirements/common-constraints.txt
# aiohttp
annotated-doc==0.0.4
# via
# -c requirements/common-constraints.txt
# fastapi
# typer
annotated-types==0.7.0
# via
# -c requirements/common-constraints.txt
# pydantic
anyio==4.9.0
anyio==4.12.1
# via
# -c requirements/common-constraints.txt
# httpx
# openai
# starlette
# watchfiles
attrs==25.3.0
asgiref==3.11.1
# via
# -c requirements/common-constraints.txt
# mixpanel
attrs==25.4.0
# via
# -c requirements/common-constraints.txt
# aiohttp
@@ -33,33 +43,30 @@ backoff==2.2.1
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
# posthog
beautifulsoup4==4.13.4
beautifulsoup4==4.14.3
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
cachetools==5.5.2
# via
# -c requirements/common-constraints.txt
# google-auth
certifi==2025.6.15
certifi==2026.1.4
# via
# -c requirements/common-constraints.txt
# httpcore
# httpx
# requests
cffi==1.17.1
cffi==2.0.0
# via
# -c requirements/common-constraints.txt
# sounddevice
# soundfile
charset-normalizer==3.4.2
charset-normalizer==3.4.4
# via
# -c requirements/common-constraints.txt
# requests
click==8.2.1
click==8.3.1
# via
# -c requirements/common-constraints.txt
# litellm
# typer
configargparse==1.7.1
# via
# -c requirements/common-constraints.txt
@@ -77,7 +84,15 @@ distro==1.9.0
# -c requirements/common-constraints.txt
# openai
# posthog
filelock==3.18.0
fastapi==0.128.8
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
fastuuid==0.14.0
# via
# -c requirements/common-constraints.txt
# litellm
filelock==3.20.3
# via
# -c requirements/common-constraints.txt
# huggingface-hub
@@ -85,12 +100,12 @@ flake8==7.3.0
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
frozenlist==1.7.0
frozenlist==1.8.0
# via
# -c requirements/common-constraints.txt
# aiohttp
# aiosignal
fsspec==2025.5.1
fsspec==2026.2.0
# via
# -c requirements/common-constraints.txt
# huggingface-hub
@@ -98,63 +113,19 @@ gitdb==4.0.12
# via
# -c requirements/common-constraints.txt
# gitpython
gitpython==3.1.44
gitpython==3.1.46
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
google-ai-generativelanguage==0.6.15
# via
# -c requirements/common-constraints.txt
# google-generativeai
google-api-core[grpc]==2.25.1
# via
# -c requirements/common-constraints.txt
# google-ai-generativelanguage
# google-api-python-client
# google-generativeai
google-api-python-client==2.174.0
# via
# -c requirements/common-constraints.txt
# google-generativeai
google-auth==2.40.3
# via
# -c requirements/common-constraints.txt
# google-ai-generativelanguage
# google-api-core
# google-api-python-client
# google-auth-httplib2
# google-generativeai
google-auth-httplib2==0.2.0
# via
# -c requirements/common-constraints.txt
# google-api-python-client
google-generativeai==0.8.5
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
googleapis-common-protos==1.70.0
# via
# -c requirements/common-constraints.txt
# google-api-core
# grpcio-status
grep-ast==0.9.0
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
grpcio==1.73.0
# via
# -c requirements/common-constraints.txt
# google-api-core
# grpcio-status
grpcio-status==1.71.0
# via
# -c requirements/common-constraints.txt
# google-api-core
h11==0.16.0
# via
# -c requirements/common-constraints.txt
# httpcore
hf-xet==1.1.5
hf-xet==1.2.0
# via
# -c requirements/common-constraints.txt
# huggingface-hub
@@ -162,21 +133,18 @@ httpcore==1.0.9
# via
# -c requirements/common-constraints.txt
# httpx
httplib2==0.22.0
# via
# -c requirements/common-constraints.txt
# google-api-python-client
# google-auth-httplib2
httpx==0.28.1
# via
# -c requirements/common-constraints.txt
# huggingface-hub
# litellm
# mixpanel
# openai
huggingface-hub==0.33.1
huggingface-hub==1.4.1
# via
# -c requirements/common-constraints.txt
# tokenizers
idna==3.10
idna==3.11
# via
# -c requirements/common-constraints.txt
# anyio
@@ -196,32 +164,32 @@ jinja2==3.1.6
# via
# -c requirements/common-constraints.txt
# litellm
jiter==0.10.0
jiter==0.13.0
# via
# -c requirements/common-constraints.txt
# openai
json5==0.12.0
json5==0.13.0
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
jsonschema==4.24.0
jsonschema==4.26.0
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
# litellm
jsonschema-specifications==2025.4.1
jsonschema-specifications==2025.9.1
# via
# -c requirements/common-constraints.txt
# jsonschema
litellm==1.73.1
litellm==1.81.10
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
markdown-it-py==3.0.0
markdown-it-py==4.0.0
# via
# -c requirements/common-constraints.txt
# rich
markupsafe==3.0.2
markupsafe==3.0.3
# via
# -c requirements/common-constraints.txt
# jinja2
@@ -233,7 +201,7 @@ mdurl==0.1.2
# via
# -c requirements/common-constraints.txt
# markdown-it-py
mixpanel==4.10.1
mixpanel==5.0.0
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
@@ -241,7 +209,7 @@ mslex==1.3.0
# via
# -c requirements/common-constraints.txt
# oslex
multidict==6.5.1
multidict==6.7.1
# via
# -c requirements/common-constraints.txt
# aiohttp
@@ -255,20 +223,24 @@ numpy==1.26.4
# -c requirements/common-constraints.txt
# scipy
# soundfile
openai==1.91.0
openai==2.20.0
# via
# -c requirements/common-constraints.txt
# litellm
orjson==3.11.7
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
oslex==0.1.3
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
packaging==25.0
packaging==26.0
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
# huggingface-hub
pathspec==0.12.1
pathspec==1.0.4
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
@@ -277,38 +249,24 @@ pexpect==4.9.0
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
pillow==11.2.1
pillow==12.1.1
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
posthog==5.4.0
posthog==7.8.6
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
prompt-toolkit==3.0.51
prompt-toolkit==3.0.52
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
propcache==0.3.2
propcache==0.4.1
# via
# -c requirements/common-constraints.txt
# aiohttp
# yarl
proto-plus==1.26.1
# via
# -c requirements/common-constraints.txt
# google-ai-generativelanguage
# google-api-core
protobuf==5.29.5
# via
# -c requirements/common-constraints.txt
# google-ai-generativelanguage
# google-api-core
# google-generativeai
# googleapis-common-protos
# grpcio-status
# proto-plus
psutil==7.0.0
psutil==7.2.2
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
@@ -316,30 +274,22 @@ ptyprocess==0.7.0
# via
# -c requirements/common-constraints.txt
# pexpect
pyasn1==0.6.1
# via
# -c requirements/common-constraints.txt
# pyasn1-modules
# rsa
pyasn1-modules==0.4.2
# via
# -c requirements/common-constraints.txt
# google-auth
pycodestyle==2.14.0
# via
# -c requirements/common-constraints.txt
# flake8
pycparser==2.22
pycparser==3.0
# via
# -c requirements/common-constraints.txt
# cffi
pydantic==2.11.7
pydantic==2.12.5
# via
# -c requirements/common-constraints.txt
# google-generativeai
# fastapi
# litellm
# mixpanel
# openai
pydantic-core==2.33.2
pydantic-core==2.41.5
# via
# -c requirements/common-constraints.txt
# pydantic
@@ -355,15 +305,11 @@ pygments==2.19.2
# via
# -c requirements/common-constraints.txt
# rich
pypandoc==1.15
pypandoc==1.16.2
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
pyparsing==3.2.3
# via
# -c requirements/common-constraints.txt
# httplib2
pyperclip==1.9.0
pyperclip==1.11.0
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
@@ -371,57 +317,56 @@ python-dateutil==2.9.0.post0
# via
# -c requirements/common-constraints.txt
# posthog
python-dotenv==1.1.1
python-dotenv==1.2.1
# via
# -c requirements/common-constraints.txt
# litellm
pyyaml==6.0.2
pyyaml==6.0.3
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
# huggingface-hub
referencing==0.36.2
referencing==0.37.0
# via
# -c requirements/common-constraints.txt
# jsonschema
# jsonschema-specifications
regex==2024.11.6
regex==2026.1.15
# via
# -c requirements/common-constraints.txt
# tiktoken
requests==2.32.4
requests==2.32.5
# via
# -c requirements/common-constraints.txt
# google-api-core
# huggingface-hub
# mixpanel
# posthog
# tiktoken
rich==14.0.0
rich==14.3.2
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
rpds-py==0.25.1
# typer
rpds-py==0.30.0
# via
# -c requirements/common-constraints.txt
# jsonschema
# referencing
rsa==4.9.1
# via
# -c requirements/common-constraints.txt
# google-auth
scipy==1.15.3
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
shtab==1.7.2
shellingham==1.5.4
# via
# -c requirements/common-constraints.txt
# huggingface-hub
# typer
shtab==1.8.0
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
six==1.17.0
# via
# -c requirements/common-constraints.txt
# mixpanel
# posthog
# python-dateutil
smmap==5.0.2
@@ -431,13 +376,12 @@ smmap==5.0.2
sniffio==1.3.1
# via
# -c requirements/common-constraints.txt
# anyio
# openai
socksio==1.0.0
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
sounddevice==0.5.2
sounddevice==0.5.5
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
@@ -445,22 +389,25 @@ soundfile==0.13.1
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
soupsieve==2.7
soupsieve==2.8.3
# via
# -c requirements/common-constraints.txt
# beautifulsoup4
tiktoken==0.9.0
starlette==0.52.1
# via
# -c requirements/common-constraints.txt
# fastapi
tiktoken==0.12.0
# via
# -c requirements/common-constraints.txt
# litellm
tokenizers==0.21.2
tokenizers==0.22.2
# via
# -c requirements/common-constraints.txt
# litellm
tqdm==4.67.1
tqdm==4.67.3
# via
# -c requirements/common-constraints.txt
# google-generativeai
# huggingface-hub
# openai
# via
@@ -470,52 +417,59 @@ tree-sitter-c-sharp==0.23.1
# via
# -c requirements/common-constraints.txt
# tree-sitter-language-pack
tree-sitter-embedded-template==0.23.2
tree-sitter-embedded-template==0.25.0
# via
# -c requirements/common-constraints.txt
# tree-sitter-language-pack
tree-sitter-language-pack==0.8.0
tree-sitter-language-pack==0.13.0
# via
# -c requirements/common-constraints.txt
# grep-ast
tree-sitter-yaml==0.7.1
tree-sitter-yaml==0.7.2
# via
# -c requirements/common-constraints.txt
# tree-sitter-language-pack
typing-extensions==4.14.0
typer==0.23.0
# via
# -c requirements/common-constraints.txt
# typer-slim
typer-slim==0.23.0
# via
# -c requirements/common-constraints.txt
# huggingface-hub
typing-extensions==4.15.0
# via
# -c requirements/common-constraints.txt
# aiosignal
# anyio
# beautifulsoup4
# google-generativeai
# fastapi
# huggingface-hub
# openai
# posthog
# pydantic
# pydantic-core
# referencing
# starlette
# typing-inspection
typing-inspection==0.4.1
typing-inspection==0.4.2
# via
# -c requirements/common-constraints.txt
# fastapi
# pydantic
uritemplate==4.2.0
urllib3==2.6.3
# via
# -c requirements/common-constraints.txt
# google-api-python-client
urllib3==2.5.0
# via
# -c requirements/common-constraints.txt
# mixpanel
# requests
watchfiles==1.1.0
watchfiles==1.1.1
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements.in
wcwidth==0.2.13
wcwidth==0.6.0
# via
# -c requirements/common-constraints.txt
# prompt-toolkit
yarl==1.20.1
yarl==1.22.0
# via
# -c requirements/common-constraints.txt
# aiohttp
@@ -525,4 +479,4 @@ zipp==3.23.0
# importlib-metadata
tree-sitter==0.23.2; python_version < "3.10"
tree-sitter==0.24.0; python_version >= "3.10"
tree-sitter==0.25.2; python_version >= "3.10"

View File

@@ -2,23 +2,31 @@
# uv pip compile --no-strip-extras --output-file=requirements/common-constraints.txt requirements/requirements.in requirements/requirements-browser.in requirements/requirements-dev.in requirements/requirements-help.in requirements/requirements-playwright.in
aiohappyeyeballs==2.6.1
# via aiohttp
aiohttp==3.12.13
aiohttp==3.13.3
# via
# huggingface-hub
# litellm
# llama-index-core
aiosignal==1.3.2
aiosignal==1.4.0
# via aiohttp
altair==5.5.0
aiosqlite==0.22.1
# via llama-index-core
altair==6.0.0
# via streamlit
annotated-doc==0.0.4
# via
# fastapi
# typer
annotated-types==0.7.0
# via pydantic
anyio==4.9.0
anyio==4.12.1
# via
# httpx
# openai
# starlette
# watchfiles
attrs==25.3.0
asgiref==3.11.1
# via mixpanel
attrs==25.4.0
# via
# aiohttp
# jsonschema
@@ -27,32 +35,31 @@ backoff==2.2.1
# via
# -r requirements/requirements.in
# posthog
banks==2.1.2
banks==2.4.0
# via llama-index-core
beautifulsoup4==4.13.4
beautifulsoup4==4.14.3
# via -r requirements/requirements.in
blinker==1.9.0
# via streamlit
build==1.2.2.post1
build==1.4.0
# via pip-tools
cachetools==5.5.2
# via
# google-auth
# streamlit
certifi==2025.6.15
cachetools==6.2.6
# via streamlit
certifi==2026.1.4
# via
# httpcore
# httpx
# requests
cffi==1.17.1
cffi==2.0.0
# via
# cryptography
# sounddevice
# soundfile
cfgv==3.4.0
cfgv==3.5.0
# via pre-commit
charset-normalizer==3.4.2
charset-normalizer==3.4.4
# via requests
click==8.2.1
click==8.3.1
# via
# litellm
# nltk
@@ -61,139 +68,136 @@ click==8.2.1
# typer
codespell==2.4.1
# via -r requirements/requirements-dev.in
cogapp==3.5.1
cogapp==3.6.0
# via -r requirements/requirements-dev.in
colorama==0.4.6
# via griffe
# via griffecli
configargparse==1.7.1
# via -r requirements/requirements.in
contourpy==1.3.2
# via matplotlib
contourpy==1.3.3
# via
# -r requirements/requirements-dev.in
# matplotlib
coverage[toml]==7.13.4
# via pytest-cov
cryptography==46.0.5
# via google-auth
cycler==0.12.1
# via matplotlib
dataclasses-json==0.6.7
# via llama-index-core
deprecated==1.2.18
deprecated==1.3.1
# via
# banks
# llama-index-core
# llama-index-instrumentation
diff-match-patch==20241021
# via -r requirements/requirements.in
dill==0.4.0
# via
# multiprocess
# pathos
dirtyjson==1.0.8
# via llama-index-core
diskcache==5.6.3
# via -r requirements/requirements.in
distlib==0.3.9
distlib==0.4.0
# via virtualenv
distro==1.9.0
# via
# openai
# posthog
filelock==3.18.0
fastapi==0.128.8
# via -r requirements/requirements.in
fastuuid==0.14.0
# via litellm
filelock==3.20.3
# via
# huggingface-hub
# torch
# transformers
# virtualenv
filetype==1.2.0
# via llama-index-core
# via
# banks
# llama-index-core
flake8==7.3.0
# via -r requirements/requirements.in
fonttools==4.58.4
fonttools==4.61.1
# via matplotlib
frozenlist==1.7.0
frozenlist==1.8.0
# via
# aiohttp
# aiosignal
fsspec==2025.5.1
fsspec==2026.2.0
# via
# huggingface-hub
# llama-index-core
# torch
gitdb==4.0.12
# via gitpython
gitpython==3.1.44
gitpython==3.1.46
# via
# -r requirements/requirements.in
# streamlit
google-ai-generativelanguage==0.6.15
# via google-generativeai
google-api-core[grpc]==2.25.1
google-api-core[grpc]==2.29.0
# via
# google-ai-generativelanguage
# google-api-python-client
# google-cloud-bigquery
# google-cloud-core
# google-generativeai
google-api-python-client==2.174.0
# via google-generativeai
google-auth==2.40.3
google-auth==2.48.0
# via
# google-ai-generativelanguage
# google-api-core
# google-api-python-client
# google-auth-httplib2
# google-cloud-bigquery
# google-cloud-core
# google-generativeai
google-auth-httplib2==0.2.0
# via google-api-python-client
google-cloud-bigquery==3.34.0
google-cloud-bigquery==3.40.0
# via -r requirements/requirements-dev.in
google-cloud-core==2.4.3
google-cloud-core==2.5.0
# via google-cloud-bigquery
google-crc32c==1.7.1
google-crc32c==1.8.0
# via google-resumable-media
google-generativeai==0.8.5
# via -r requirements/requirements.in
google-resumable-media==2.7.2
google-resumable-media==2.8.0
# via google-cloud-bigquery
googleapis-common-protos==1.70.0
googleapis-common-protos==1.72.0
# via
# google-api-core
# grpcio-status
greenlet==3.2.3
greenlet==3.3.1
# via
# playwright
# sqlalchemy
grep-ast==0.9.0
# via -r requirements/requirements.in
griffe==1.7.3
griffe==2.0.0
# via banks
grpcio==1.73.0
griffecli==2.0.0
# via griffe
griffelib==2.0.0
# via
# griffe
# griffecli
grpcio==1.78.0
# via
# google-api-core
# grpcio-status
grpcio-status==1.71.0
grpcio-status==1.78.0
# via google-api-core
h11==0.16.0
# via httpcore
hf-xet==1.1.5
hf-xet==1.2.0
# via huggingface-hub
httpcore==1.0.9
# via httpx
httplib2==0.22.0
# via
# google-api-python-client
# google-auth-httplib2
httpx==0.28.1
# via
# huggingface-hub
# litellm
# llama-index-core
# mixpanel
# openai
huggingface-hub[inference]==0.33.1
huggingface-hub[inference]==1.4.1
# via
# llama-index-embeddings-huggingface
# sentence-transformers
# tokenizers
# transformers
identify==2.6.12
identify==2.6.16
# via pre-commit
idna==3.10
idna==3.11
# via
# anyio
# httpx
@@ -207,7 +211,7 @@ importlib-metadata==7.2.1
# litellm
importlib-resources==6.5.2
# via -r requirements/requirements.in
iniconfig==2.1.0
iniconfig==2.3.0
# via pytest
jinja2==3.1.6
# via
@@ -216,60 +220,60 @@ jinja2==3.1.6
# litellm
# pydeck
# torch
jiter==0.10.0
jiter==0.13.0
# via openai
joblib==1.5.1
joblib==1.5.3
# via
# nltk
# scikit-learn
json5==0.12.0
json5==0.13.0
# via -r requirements/requirements.in
jsonschema==4.24.0
jsonschema==4.26.0
# via
# -r requirements/requirements.in
# altair
# litellm
jsonschema-specifications==2025.4.1
jsonschema-specifications==2025.9.1
# via jsonschema
kiwisolver==1.4.8
kiwisolver==1.4.9
# via matplotlib
litellm==1.73.1
litellm==1.81.10
# via -r requirements/requirements.in
llama-index-core==0.12.26
# via
# -r requirements/requirements-help.in
# llama-index-embeddings-huggingface
llama-index-embeddings-huggingface==0.5.5
llama-index-core==0.14.14
# via llama-index-embeddings-huggingface
llama-index-embeddings-huggingface==0.6.1
# via -r requirements/requirements-help.in
lox==0.13.0
llama-index-instrumentation==0.4.2
# via llama-index-workflows
llama-index-workflows==2.14.1
# via llama-index-core
lox==1.0.0
# via -r requirements/requirements-dev.in
markdown-it-py==3.0.0
markdown-it-py==4.0.0
# via rich
markupsafe==3.0.2
markupsafe==3.0.3
# via jinja2
marshmallow==3.26.1
marshmallow==3.26.2
# via dataclasses-json
matplotlib==3.10.3
matplotlib==3.10.8
# via -r requirements/requirements-dev.in
mccabe==0.7.0
# via flake8
mdurl==0.1.2
# via markdown-it-py
mixpanel==4.10.1
mixpanel==5.0.0
# via -r requirements/requirements.in
mpmath==1.3.0
# via sympy
mslex==1.3.0
# via oslex
multidict==6.5.1
multidict==6.7.1
# via
# aiohttp
# yarl
multiprocess==0.70.18
# via pathos
mypy-extensions==1.1.0
# via typing-inspect
narwhals==1.44.0
narwhals==2.16.0
# via altair
nest-asyncio==1.6.0
# via llama-index-core
@@ -278,9 +282,9 @@ networkx==3.4.2
# -r requirements/requirements.in
# llama-index-core
# torch
nltk==3.9.1
nltk==3.9.2
# via llama-index-core
nodeenv==1.9.1
nodeenv==1.10.0
# via pre-commit
numpy==1.26.4
# via
@@ -292,14 +296,17 @@ numpy==1.26.4
# pydeck
# scikit-learn
# scipy
# sentence-transformers
# soundfile
# streamlit
# transformers
openai==1.91.0
openai==2.20.0
# via litellm
orjson==3.11.7
# via -r requirements/requirements.in
oslex==0.1.3
# via -r requirements/requirements.in
packaging==25.0
packaging==26.0
# via
# -r requirements/requirements.in
# altair
@@ -311,71 +318,64 @@ packaging==25.0
# pytest
# streamlit
# transformers
pandas==2.3.0
# wheel
pandas==2.3.3
# via
# -r requirements/requirements-dev.in
# streamlit
pathos==0.3.4
# via lox
pathspec==0.12.1
pathspec==1.0.4
# via
# -r requirements/requirements.in
# grep-ast
pexpect==4.9.0
# via -r requirements/requirements.in
pillow==11.2.1
pillow==12.1.1
# via
# -r requirements/requirements.in
# llama-index-core
# matplotlib
# sentence-transformers
# streamlit
pip==25.1.1
pip==26.0.1
# via pip-tools
pip-tools==7.4.1
pip-tools==7.5.2
# via -r requirements/requirements-dev.in
platformdirs==4.3.8
platformdirs==4.5.1
# via
# banks
# llama-index-core
# virtualenv
playwright==1.52.0
playwright==1.58.0
# via -r requirements/requirements-playwright.in
pluggy==1.6.0
# via pytest
posthog==5.4.0
# via
# pytest
# pytest-cov
posthog==7.8.6
# via -r requirements/requirements.in
pox==0.3.6
# via pathos
ppft==1.7.7
# via pathos
pre-commit==4.2.0
pre-commit==4.5.1
# via -r requirements/requirements-dev.in
prompt-toolkit==3.0.51
prompt-toolkit==3.0.52
# via -r requirements/requirements.in
propcache==0.3.2
propcache==0.4.1
# via
# aiohttp
# yarl
proto-plus==1.26.1
proto-plus==1.27.1
# via google-api-core
protobuf==6.33.5
# via
# google-ai-generativelanguage
# google-api-core
protobuf==5.29.5
# via
# google-ai-generativelanguage
# google-api-core
# google-generativeai
# googleapis-common-protos
# grpcio-status
# proto-plus
# streamlit
psutil==7.0.0
psutil==7.2.2
# via -r requirements/requirements.in
ptyprocess==0.7.0
# via pexpect
pyarrow==20.0.0
pyarrow==23.0.0
# via streamlit
pyasn1==0.6.1
pyasn1==0.6.2
# via
# pyasn1-modules
# rsa
@@ -383,16 +383,19 @@ pyasn1-modules==0.4.2
# via google-auth
pycodestyle==2.14.0
# via flake8
pycparser==2.22
pycparser==3.0
# via cffi
pydantic==2.11.7
pydantic==2.12.5
# via
# banks
# google-generativeai
# fastapi
# litellm
# llama-index-core
# llama-index-instrumentation
# llama-index-workflows
# mixpanel
# openai
pydantic-core==2.33.2
pydantic-core==2.41.5
# via pydantic
pydeck==0.9.1
# via streamlit
@@ -406,23 +409,24 @@ pygments==2.19.2
# via
# pytest
# rich
pypandoc==1.15
pypandoc==1.16.2
# via -r requirements/requirements.in
pyparsing==3.2.3
# via
# httplib2
# matplotlib
pyperclip==1.9.0
pyparsing==3.3.2
# via matplotlib
pyperclip==1.11.0
# via -r requirements/requirements.in
pyproject-hooks==1.2.0
# via
# build
# pip-tools
pytest==8.4.1
pytest==9.0.2
# via
# -r requirements/requirements-dev.in
# pytest-cov
# pytest-env
pytest-env==1.1.5
pytest-cov==7.0.0
# via -r requirements/requirements-dev.in
pytest-env==1.2.0
# via -r requirements/requirements-dev.in
python-dateutil==2.9.0.post0
# via
@@ -430,51 +434,51 @@ python-dateutil==2.9.0.post0
# matplotlib
# pandas
# posthog
python-dotenv==1.1.1
python-dotenv==1.2.1
# via litellm
pytz==2025.2
# via pandas
pyyaml==6.0.2
pyyaml==6.0.3
# via
# -r requirements/requirements.in
# huggingface-hub
# llama-index-core
# pre-commit
# transformers
referencing==0.36.2
referencing==0.37.0
# via
# jsonschema
# jsonschema-specifications
regex==2024.11.6
regex==2026.1.15
# via
# nltk
# tiktoken
# transformers
requests==2.32.4
requests==2.32.5
# via
# google-api-core
# google-cloud-bigquery
# huggingface-hub
# llama-index-core
# mixpanel
# posthog
# streamlit
# tiktoken
# transformers
rich==14.0.0
rich==14.3.2
# via
# -r requirements/requirements.in
# typer
rpds-py==0.25.1
rpds-py==0.30.0
# via
# jsonschema
# referencing
rsa==4.9.1
# via google-auth
safetensors==0.5.3
safetensors==0.7.0
# via transformers
scikit-learn==1.7.0
# via sentence-transformers
scikit-learn==1.8.0
# via
# -r requirements/requirements-help.in
# sentence-transformers
scipy==1.15.3
# via
# -r requirements/requirements.in
@@ -482,133 +486,142 @@ scipy==1.15.3
# sentence-transformers
semver==3.0.4
# via -r requirements/requirements-dev.in
sentence-transformers==4.1.0
sentence-transformers==5.2.2
# via llama-index-embeddings-huggingface
setuptools==80.9.0
# via pip-tools
setuptools==82.0.0
# via
# llama-index-core
# pip-tools
# torch
shellingham==1.5.4
# via typer
shtab==1.7.2
# via
# huggingface-hub
# typer
shtab==1.8.0
# via -r requirements/requirements.in
six==1.17.0
# via
# mixpanel
# posthog
# python-dateutil
smmap==5.0.2
# via gitdb
sniffio==1.3.1
# via
# anyio
# openai
# via openai
socksio==1.0.0
# via -r requirements/requirements.in
sounddevice==0.5.2
sounddevice==0.5.5
# via -r requirements/requirements.in
soundfile==0.13.1
# via -r requirements/requirements.in
soupsieve==2.7
soupsieve==2.8.3
# via beautifulsoup4
sqlalchemy[asyncio]==2.0.41
sqlalchemy[asyncio]==2.0.46
# via llama-index-core
streamlit==1.46.0
starlette==0.52.1
# via fastapi
streamlit==1.54.0
# via -r requirements/requirements-browser.in
sympy==1.14.0
# via torch
tenacity==9.1.2
tenacity==9.1.4
# via
# llama-index-core
# streamlit
threadpoolctl==3.6.0
# via scikit-learn
tiktoken==0.9.0
tiktoken==0.12.0
# via
# litellm
# llama-index-core
tokenizers==0.21.2
tokenizers==0.22.2
# via
# litellm
# transformers
toml==0.10.2
# via streamlit
torch==2.2.2
# via
# -r requirements/requirements-help.in
# sentence-transformers
tornado==6.5.1
torch==2.10.0
# via sentence-transformers
tornado==6.5.4
# via streamlit
tqdm==4.67.1
tqdm==4.67.3
# via
# google-generativeai
# huggingface-hub
# llama-index-core
# nltk
# openai
# sentence-transformers
# transformers
transformers==4.52.4
transformers==5.1.0
# via sentence-transformers
tree-sitter==0.24.0
tree-sitter==0.25.2
# via tree-sitter-language-pack
tree-sitter-c-sharp==0.23.1
# via tree-sitter-language-pack
tree-sitter-embedded-template==0.23.2
tree-sitter-embedded-template==0.25.0
# via tree-sitter-language-pack
tree-sitter-language-pack==0.8.0
tree-sitter-language-pack==0.13.0
# via grep-ast
tree-sitter-yaml==0.7.1
tree-sitter-yaml==0.7.2
# via tree-sitter-language-pack
typer==0.16.0
# via -r requirements/requirements-dev.in
typing-extensions==4.14.0
typer==0.23.0
# via
# -r requirements/requirements-dev.in
# typer-slim
typer-slim==0.23.0
# via
# huggingface-hub
# transformers
typing-extensions==4.15.0
# via
# aiosignal
# altair
# anyio
# beautifulsoup4
# google-generativeai
# fastapi
# grpcio
# huggingface-hub
# llama-index-core
# llama-index-workflows
# openai
# posthog
# pydantic
# pydantic-core
# pyee
# referencing
# sentence-transformers
# sqlalchemy
# starlette
# streamlit
# torch
# typer
# typing-inspect
# typing-inspection
typing-inspect==0.9.0
# via
# dataclasses-json
# llama-index-core
typing-inspection==0.4.1
# via pydantic
tzdata==2025.2
# via pandas
uritemplate==4.2.0
# via google-api-python-client
urllib3==2.5.0
typing-inspection==0.4.2
# via
# mixpanel
# requests
uv==0.7.15
# fastapi
# pydantic
tzdata==2025.3
# via pandas
urllib3==2.6.3
# via requests
uv==0.10.2
# via -r requirements/requirements-dev.in
virtualenv==20.31.2
virtualenv==20.36.1
# via pre-commit
watchfiles==1.1.0
watchfiles==1.1.1
# via -r requirements/requirements.in
wcwidth==0.2.13
wcwidth==0.6.0
# via prompt-toolkit
wheel==0.45.1
wheel==0.46.3
# via pip-tools
wrapt==1.17.2
wrapt==2.1.1
# via
# deprecated
# llama-index-core
yarl==1.20.1
yarl==1.22.0
# via aiohttp
zipp==3.23.0
# via importlib-metadata

View File

@@ -1,10 +1,10 @@
# This file was autogenerated by uv via the following command:
# uv pip compile --no-strip-extras --constraint=requirements/common-constraints.txt --output-file=requirements/requirements-browser.txt requirements/requirements-browser.in
altair==5.5.0
altair==6.0.0
# via
# -c requirements/common-constraints.txt
# streamlit
attrs==25.3.0
attrs==25.4.0
# via
# -c requirements/common-constraints.txt
# jsonschema
@@ -13,19 +13,19 @@ blinker==1.9.0
# via
# -c requirements/common-constraints.txt
# streamlit
cachetools==5.5.2
cachetools==6.2.6
# via
# -c requirements/common-constraints.txt
# streamlit
certifi==2025.6.15
certifi==2026.1.4
# via
# -c requirements/common-constraints.txt
# requests
charset-normalizer==3.4.2
charset-normalizer==3.4.4
# via
# -c requirements/common-constraints.txt
# requests
click==8.2.1
click==8.3.1
# via
# -c requirements/common-constraints.txt
# streamlit
@@ -33,11 +33,11 @@ gitdb==4.0.12
# via
# -c requirements/common-constraints.txt
# gitpython
gitpython==3.1.44
gitpython==3.1.46
# via
# -c requirements/common-constraints.txt
# streamlit
idna==3.10
idna==3.11
# via
# -c requirements/common-constraints.txt
# requests
@@ -46,19 +46,19 @@ jinja2==3.1.6
# -c requirements/common-constraints.txt
# altair
# pydeck
jsonschema==4.24.0
jsonschema==4.26.0
# via
# -c requirements/common-constraints.txt
# altair
jsonschema-specifications==2025.4.1
jsonschema-specifications==2025.9.1
# via
# -c requirements/common-constraints.txt
# jsonschema
markupsafe==3.0.2
markupsafe==3.0.3
# via
# -c requirements/common-constraints.txt
# jinja2
narwhals==1.44.0
narwhals==2.16.0
# via
# -c requirements/common-constraints.txt
# altair
@@ -68,24 +68,24 @@ numpy==1.26.4
# pandas
# pydeck
# streamlit
packaging==25.0
packaging==26.0
# via
# -c requirements/common-constraints.txt
# altair
# streamlit
pandas==2.3.0
pandas==2.3.3
# via
# -c requirements/common-constraints.txt
# streamlit
pillow==11.2.1
pillow==12.1.1
# via
# -c requirements/common-constraints.txt
# streamlit
protobuf==5.29.5
protobuf==6.33.5
# via
# -c requirements/common-constraints.txt
# streamlit
pyarrow==20.0.0
pyarrow==23.0.0
# via
# -c requirements/common-constraints.txt
# streamlit
@@ -101,16 +101,16 @@ pytz==2025.2
# via
# -c requirements/common-constraints.txt
# pandas
referencing==0.36.2
referencing==0.37.0
# via
# -c requirements/common-constraints.txt
# jsonschema
# jsonschema-specifications
requests==2.32.4
requests==2.32.5
# via
# -c requirements/common-constraints.txt
# streamlit
rpds-py==0.25.1
rpds-py==0.30.0
# via
# -c requirements/common-constraints.txt
# jsonschema
@@ -123,11 +123,11 @@ smmap==5.0.2
# via
# -c requirements/common-constraints.txt
# gitdb
streamlit==1.46.0
streamlit==1.54.0
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-browser.in
tenacity==9.1.2
tenacity==9.1.4
# via
# -c requirements/common-constraints.txt
# streamlit
@@ -135,21 +135,21 @@ toml==0.10.2
# via
# -c requirements/common-constraints.txt
# streamlit
tornado==6.5.1
tornado==6.5.4
# via
# -c requirements/common-constraints.txt
# streamlit
typing-extensions==4.14.0
typing-extensions==4.15.0
# via
# -c requirements/common-constraints.txt
# altair
# referencing
# streamlit
tzdata==2025.2
tzdata==2025.3
# via
# -c requirements/common-constraints.txt
# pandas
urllib3==2.5.0
urllib3==2.6.3
# via
# -c requirements/common-constraints.txt
# requests

View File

@@ -1,4 +1,5 @@
pytest
pytest-cov
pytest-env
pip-tools
lox
@@ -12,3 +13,7 @@ semver
codespell
uv
google-cloud-bigquery
# matplotlib 3.7.2 requires contourpy 1.3.2, but contourpy 1.3.2 does not support Python 3.11.
contourpy==1.3.2 ; python_version < "3.11"
contourpy==1.3.3 ; python_version >= "3.11"

View File

@@ -1,26 +1,30 @@
# This file was autogenerated by uv via the following command:
# uv pip compile --no-strip-extras --constraint=requirements/common-constraints.txt --output-file=requirements/requirements-dev.txt requirements/requirements-dev.in
build==1.2.2.post1
annotated-doc==0.0.4
# via
# -c requirements/common-constraints.txt
# typer
build==1.4.0
# via
# -c requirements/common-constraints.txt
# pip-tools
cachetools==5.5.2
# via
# -c requirements/common-constraints.txt
# google-auth
certifi==2025.6.15
certifi==2026.1.4
# via
# -c requirements/common-constraints.txt
# requests
cfgv==3.4.0
cffi==2.0.0
# via
# -c requirements/common-constraints.txt
# cryptography
cfgv==3.5.0
# via
# -c requirements/common-constraints.txt
# pre-commit
charset-normalizer==3.4.2
charset-normalizer==3.4.4
# via
# -c requirements/common-constraints.txt
# requests
click==8.2.1
click==8.3.1
# via
# -c requirements/common-constraints.txt
# pip-tools
@@ -29,81 +33,85 @@ codespell==2.4.1
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-dev.in
cogapp==3.5.1
cogapp==3.6.0
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-dev.in
contourpy==1.3.2
contourpy==1.3.3
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-dev.in
# matplotlib
coverage[toml]==7.13.4
# via
# -c requirements/common-constraints.txt
# pytest-cov
cryptography==46.0.5
# via
# -c requirements/common-constraints.txt
# google-auth
cycler==0.12.1
# via
# -c requirements/common-constraints.txt
# matplotlib
dill==0.4.0
# via
# -c requirements/common-constraints.txt
# multiprocess
# pathos
distlib==0.3.9
distlib==0.4.0
# via
# -c requirements/common-constraints.txt
# virtualenv
filelock==3.18.0
filelock==3.20.3
# via
# -c requirements/common-constraints.txt
# virtualenv
fonttools==4.58.4
fonttools==4.61.1
# via
# -c requirements/common-constraints.txt
# matplotlib
google-api-core[grpc]==2.25.1
google-api-core[grpc]==2.29.0
# via
# -c requirements/common-constraints.txt
# google-cloud-bigquery
# google-cloud-core
google-auth==2.40.3
google-auth==2.48.0
# via
# -c requirements/common-constraints.txt
# google-api-core
# google-cloud-bigquery
# google-cloud-core
google-cloud-bigquery==3.34.0
google-cloud-bigquery==3.40.0
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-dev.in
google-cloud-core==2.4.3
google-cloud-core==2.5.0
# via
# -c requirements/common-constraints.txt
# google-cloud-bigquery
google-crc32c==1.7.1
google-crc32c==1.8.0
# via
# -c requirements/common-constraints.txt
# google-resumable-media
google-resumable-media==2.7.2
google-resumable-media==2.8.0
# via
# -c requirements/common-constraints.txt
# google-cloud-bigquery
googleapis-common-protos==1.70.0
googleapis-common-protos==1.72.0
# via
# -c requirements/common-constraints.txt
# google-api-core
# grpcio-status
grpcio==1.73.0
grpcio==1.78.0
# via
# -c requirements/common-constraints.txt
# google-api-core
# grpcio-status
grpcio-status==1.71.0
grpcio-status==1.78.0
# via
# -c requirements/common-constraints.txt
# google-api-core
identify==2.6.12
identify==2.6.16
# via
# -c requirements/common-constraints.txt
# pre-commit
idna==3.10
idna==3.11
# via
# -c requirements/common-constraints.txt
# requests
@@ -111,23 +119,23 @@ imgcat==0.6.0
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-dev.in
iniconfig==2.1.0
iniconfig==2.3.0
# via
# -c requirements/common-constraints.txt
# pytest
kiwisolver==1.4.8
kiwisolver==1.4.9
# via
# -c requirements/common-constraints.txt
# matplotlib
lox==0.13.0
lox==1.0.0
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-dev.in
markdown-it-py==3.0.0
markdown-it-py==4.0.0
# via
# -c requirements/common-constraints.txt
# rich
matplotlib==3.10.3
matplotlib==3.10.8
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-dev.in
@@ -135,11 +143,7 @@ mdurl==0.1.2
# via
# -c requirements/common-constraints.txt
# markdown-it-py
multiprocess==0.70.18
# via
# -c requirements/common-constraints.txt
# pathos
nodeenv==1.9.1
nodeenv==1.10.0
# via
# -c requirements/common-constraints.txt
# pre-commit
@@ -149,34 +153,31 @@ numpy==1.26.4
# contourpy
# matplotlib
# pandas
packaging==25.0
packaging==26.0
# via
# -c requirements/common-constraints.txt
# build
# google-cloud-bigquery
# matplotlib
# pytest
pandas==2.3.0
# wheel
pandas==2.3.3
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-dev.in
pathos==0.3.4
# via
# -c requirements/common-constraints.txt
# lox
pillow==11.2.1
pillow==12.1.1
# via
# -c requirements/common-constraints.txt
# matplotlib
pip==25.1.1
pip==26.0.1
# via
# -c requirements/common-constraints.txt
# pip-tools
pip-tools==7.4.1
pip-tools==7.5.2
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-dev.in
platformdirs==4.3.8
platformdirs==4.5.1
# via
# -c requirements/common-constraints.txt
# virtualenv
@@ -184,30 +185,23 @@ pluggy==1.6.0
# via
# -c requirements/common-constraints.txt
# pytest
pox==0.3.6
# via
# -c requirements/common-constraints.txt
# pathos
ppft==1.7.7
# via
# -c requirements/common-constraints.txt
# pathos
pre-commit==4.2.0
# pytest-cov
pre-commit==4.5.1
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-dev.in
proto-plus==1.26.1
proto-plus==1.27.1
# via
# -c requirements/common-constraints.txt
# google-api-core
protobuf==5.29.5
protobuf==6.33.5
# via
# -c requirements/common-constraints.txt
# google-api-core
# googleapis-common-protos
# grpcio-status
# proto-plus
pyasn1==0.6.1
pyasn1==0.6.2
# via
# -c requirements/common-constraints.txt
# pyasn1-modules
@@ -216,12 +210,16 @@ pyasn1-modules==0.4.2
# via
# -c requirements/common-constraints.txt
# google-auth
pycparser==3.0
# via
# -c requirements/common-constraints.txt
# cffi
pygments==2.19.2
# via
# -c requirements/common-constraints.txt
# pytest
# rich
pyparsing==3.2.3
pyparsing==3.3.2
# via
# -c requirements/common-constraints.txt
# matplotlib
@@ -230,12 +228,17 @@ pyproject-hooks==1.2.0
# -c requirements/common-constraints.txt
# build
# pip-tools
pytest==8.4.1
pytest==9.0.2
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-dev.in
# pytest-cov
# pytest-env
pytest-env==1.1.5
pytest-cov==7.0.0
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-dev.in
pytest-env==1.2.0
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-dev.in
@@ -249,16 +252,16 @@ pytz==2025.2
# via
# -c requirements/common-constraints.txt
# pandas
pyyaml==6.0.2
pyyaml==6.0.3
# via
# -c requirements/common-constraints.txt
# pre-commit
requests==2.32.4
requests==2.32.5
# via
# -c requirements/common-constraints.txt
# google-api-core
# google-cloud-bigquery
rich==14.0.0
rich==14.3.2
# via
# -c requirements/common-constraints.txt
# typer
@@ -270,7 +273,7 @@ semver==3.0.4
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-dev.in
setuptools==80.9.0
setuptools==82.0.0
# via
# -c requirements/common-constraints.txt
# pip-tools
@@ -282,31 +285,31 @@ six==1.17.0
# via
# -c requirements/common-constraints.txt
# python-dateutil
typer==0.16.0
typer==0.23.0
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-dev.in
typing-extensions==4.14.0
typing-extensions==4.15.0
# via
# -c requirements/common-constraints.txt
# typer
tzdata==2025.2
# grpcio
tzdata==2025.3
# via
# -c requirements/common-constraints.txt
# pandas
urllib3==2.5.0
urllib3==2.6.3
# via
# -c requirements/common-constraints.txt
# requests
uv==0.7.15
uv==0.10.2
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-dev.in
virtualenv==20.31.2
virtualenv==20.36.1
# via
# -c requirements/common-constraints.txt
# pre-commit
wheel==0.45.1
wheel==0.46.3
# via
# -c requirements/common-constraints.txt
# pip-tools

View File

@@ -5,7 +5,9 @@ numpy<2
# Mac x86 only supports 2.2.2
# https://discuss.pytorch.org/t/why-no-macosx-x86-64-build-after-torch-2-2-2-cp39-none-macosx-10-9-x86-64-whl/204546/2
torch==2.2.2
# torch==2.2.2
# Later versions break test_help in GitHub Actions on Windows and Ubuntu
llama-index-core==0.12.26
# due to llama-index-core==0.12.26
scikit-learn==1.7.2 ; python_version < "3.11"
scikit-learn==1.8.0 ; python_version >= "3.11"

View File

@@ -4,96 +4,114 @@ aiohappyeyeballs==2.6.1
# via
# -c requirements/common-constraints.txt
# aiohttp
aiohttp==3.12.13
aiohttp==3.13.3
# via
# -c requirements/common-constraints.txt
# huggingface-hub
# llama-index-core
aiosignal==1.3.2
aiosignal==1.4.0
# via
# -c requirements/common-constraints.txt
# aiohttp
aiosqlite==0.22.1
# via
# -c requirements/common-constraints.txt
# llama-index-core
annotated-doc==0.0.4
# via
# -c requirements/common-constraints.txt
# typer
annotated-types==0.7.0
# via
# -c requirements/common-constraints.txt
# pydantic
anyio==4.9.0
anyio==4.12.1
# via
# -c requirements/common-constraints.txt
# httpx
attrs==25.3.0
attrs==25.4.0
# via
# -c requirements/common-constraints.txt
# aiohttp
banks==2.1.2
banks==2.4.0
# via
# -c requirements/common-constraints.txt
# llama-index-core
certifi==2025.6.15
certifi==2026.1.4
# via
# -c requirements/common-constraints.txt
# httpcore
# httpx
# requests
charset-normalizer==3.4.2
charset-normalizer==3.4.4
# via
# -c requirements/common-constraints.txt
# requests
click==8.2.1
click==8.3.1
# via
# -c requirements/common-constraints.txt
# nltk
# typer
colorama==0.4.6
# via
# -c requirements/common-constraints.txt
# griffe
# griffecli
dataclasses-json==0.6.7
# via
# -c requirements/common-constraints.txt
# llama-index-core
deprecated==1.2.18
deprecated==1.3.1
# via
# -c requirements/common-constraints.txt
# banks
# llama-index-core
# llama-index-instrumentation
dirtyjson==1.0.8
# via
# -c requirements/common-constraints.txt
# llama-index-core
filelock==3.18.0
filelock==3.20.3
# via
# -c requirements/common-constraints.txt
# huggingface-hub
# torch
# transformers
filetype==1.2.0
# via
# -c requirements/common-constraints.txt
# banks
# llama-index-core
frozenlist==1.7.0
frozenlist==1.8.0
# via
# -c requirements/common-constraints.txt
# aiohttp
# aiosignal
fsspec==2025.5.1
fsspec==2026.2.0
# via
# -c requirements/common-constraints.txt
# huggingface-hub
# llama-index-core
# torch
greenlet==3.2.3
greenlet==3.3.1
# via
# -c requirements/common-constraints.txt
# sqlalchemy
griffe==1.7.3
griffe==2.0.0
# via
# -c requirements/common-constraints.txt
# banks
griffecli==2.0.0
# via
# -c requirements/common-constraints.txt
# griffe
griffelib==2.0.0
# via
# -c requirements/common-constraints.txt
# griffe
# griffecli
h11==0.16.0
# via
# -c requirements/common-constraints.txt
# httpcore
hf-xet==1.1.5
hf-xet==1.2.0
# via
# -c requirements/common-constraints.txt
# huggingface-hub
@@ -104,15 +122,16 @@ httpcore==1.0.9
httpx==0.28.1
# via
# -c requirements/common-constraints.txt
# huggingface-hub
# llama-index-core
huggingface-hub[inference]==0.33.1
huggingface-hub[inference]==1.4.1
# via
# -c requirements/common-constraints.txt
# llama-index-embeddings-huggingface
# sentence-transformers
# tokenizers
# transformers
idna==3.10
idna==3.11
# via
# -c requirements/common-constraints.txt
# anyio
@@ -124,33 +143,48 @@ jinja2==3.1.6
# -c requirements/common-constraints.txt
# banks
# torch
joblib==1.5.1
joblib==1.5.3
# via
# -c requirements/common-constraints.txt
# nltk
# scikit-learn
llama-index-core==0.12.26
llama-index-core==0.14.14
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-help.in
# llama-index-embeddings-huggingface
llama-index-embeddings-huggingface==0.5.5
llama-index-embeddings-huggingface==0.6.1
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-help.in
markupsafe==3.0.2
llama-index-instrumentation==0.4.2
# via
# -c requirements/common-constraints.txt
# llama-index-workflows
llama-index-workflows==2.14.1
# via
# -c requirements/common-constraints.txt
# llama-index-core
markdown-it-py==4.0.0
# via
# -c requirements/common-constraints.txt
# rich
markupsafe==3.0.3
# via
# -c requirements/common-constraints.txt
# jinja2
marshmallow==3.26.1
marshmallow==3.26.2
# via
# -c requirements/common-constraints.txt
# dataclasses-json
mdurl==0.1.2
# via
# -c requirements/common-constraints.txt
# markdown-it-py
mpmath==1.3.0
# via
# -c requirements/common-constraints.txt
# sympy
multidict==6.5.1
multidict==6.7.1
# via
# -c requirements/common-constraints.txt
# aiohttp
@@ -168,7 +202,7 @@ networkx==3.4.2
# -c requirements/common-constraints.txt
# llama-index-core
# torch
nltk==3.9.1
nltk==3.9.2
# via
# -c requirements/common-constraints.txt
# llama-index-core
@@ -179,77 +213,93 @@ numpy==1.26.4
# llama-index-core
# scikit-learn
# scipy
# sentence-transformers
# transformers
packaging==25.0
packaging==26.0
# via
# -c requirements/common-constraints.txt
# huggingface-hub
# marshmallow
# transformers
pillow==11.2.1
pillow==12.1.1
# via
# -c requirements/common-constraints.txt
# llama-index-core
# sentence-transformers
platformdirs==4.3.8
platformdirs==4.5.1
# via
# -c requirements/common-constraints.txt
# banks
propcache==0.3.2
# llama-index-core
propcache==0.4.1
# via
# -c requirements/common-constraints.txt
# aiohttp
# yarl
pydantic==2.11.7
pydantic==2.12.5
# via
# -c requirements/common-constraints.txt
# banks
# llama-index-core
pydantic-core==2.33.2
# llama-index-instrumentation
# llama-index-workflows
pydantic-core==2.41.5
# via
# -c requirements/common-constraints.txt
# pydantic
pyyaml==6.0.2
pygments==2.19.2
# via
# -c requirements/common-constraints.txt
# rich
pyyaml==6.0.3
# via
# -c requirements/common-constraints.txt
# huggingface-hub
# llama-index-core
# transformers
regex==2024.11.6
regex==2026.1.15
# via
# -c requirements/common-constraints.txt
# nltk
# tiktoken
# transformers
requests==2.32.4
requests==2.32.5
# via
# -c requirements/common-constraints.txt
# huggingface-hub
# llama-index-core
# tiktoken
# transformers
safetensors==0.5.3
rich==14.3.2
# via
# -c requirements/common-constraints.txt
# typer
safetensors==0.7.0
# via
# -c requirements/common-constraints.txt
# transformers
scikit-learn==1.7.0
scikit-learn==1.8.0
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-help.in
# sentence-transformers
scipy==1.15.3
# via
# -c requirements/common-constraints.txt
# scikit-learn
# sentence-transformers
sentence-transformers==4.1.0
sentence-transformers==5.2.2
# via
# -c requirements/common-constraints.txt
# llama-index-embeddings-huggingface
sniffio==1.3.1
setuptools==82.0.0
# via
# -c requirements/common-constraints.txt
# anyio
sqlalchemy[asyncio]==2.0.41
# llama-index-core
# torch
shellingham==1.5.4
# via
# -c requirements/common-constraints.txt
# huggingface-hub
# typer
sqlalchemy[asyncio]==2.0.46
# via
# -c requirements/common-constraints.txt
# llama-index-core
@@ -257,7 +307,7 @@ sympy==1.14.0
# via
# -c requirements/common-constraints.txt
# torch
tenacity==9.1.2
tenacity==9.1.4
# via
# -c requirements/common-constraints.txt
# llama-index-core
@@ -265,20 +315,19 @@ threadpoolctl==3.6.0
# via
# -c requirements/common-constraints.txt
# scikit-learn
tiktoken==0.9.0
tiktoken==0.12.0
# via
# -c requirements/common-constraints.txt
# llama-index-core
tokenizers==0.21.2
tokenizers==0.22.2
# via
# -c requirements/common-constraints.txt
# transformers
torch==2.2.2
torch==2.10.0
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-help.in
# sentence-transformers
tqdm==4.67.1
tqdm==4.67.3
# via
# -c requirements/common-constraints.txt
# huggingface-hub
@@ -286,16 +335,27 @@ tqdm==4.67.1
# nltk
# sentence-transformers
# transformers
transformers==4.52.4
transformers==5.1.0
# via
# -c requirements/common-constraints.txt
# sentence-transformers
typing-extensions==4.14.0
typer==0.23.0
# via
# -c requirements/common-constraints.txt
# typer-slim
typer-slim==0.23.0
# via
# -c requirements/common-constraints.txt
# huggingface-hub
# transformers
typing-extensions==4.15.0
# via
# -c requirements/common-constraints.txt
# aiosignal
# anyio
# huggingface-hub
# llama-index-core
# llama-index-workflows
# pydantic
# pydantic-core
# sentence-transformers
@@ -308,20 +368,20 @@ typing-inspect==0.9.0
# -c requirements/common-constraints.txt
# dataclasses-json
# llama-index-core
typing-inspection==0.4.1
typing-inspection==0.4.2
# via
# -c requirements/common-constraints.txt
# pydantic
urllib3==2.5.0
urllib3==2.6.3
# via
# -c requirements/common-constraints.txt
# requests
wrapt==1.17.2
wrapt==2.1.1
# via
# -c requirements/common-constraints.txt
# deprecated
# llama-index-core
yarl==1.20.1
yarl==1.22.0
# via
# -c requirements/common-constraints.txt
# aiohttp

View File

@@ -1,10 +1,10 @@
# This file was autogenerated by uv via the following command:
# uv pip compile --no-strip-extras --constraint=requirements/common-constraints.txt --output-file=requirements/requirements-playwright.txt requirements/requirements-playwright.in
greenlet==3.2.3
greenlet==3.3.1
# via
# -c requirements/common-constraints.txt
# playwright
playwright==1.52.0
playwright==1.58.0
# via
# -c requirements/common-constraints.txt
# -r requirements/requirements-playwright.in
@@ -12,7 +12,7 @@ pyee==13.0.0
# via
# -c requirements/common-constraints.txt
# playwright
typing-extensions==4.14.0
typing-extensions==4.15.0
# via
# -c requirements/common-constraints.txt
# pyee

View File

@@ -29,7 +29,6 @@ socksio
pillow
shtab
oslex
google-generativeai
# The proper dependency is networkx[default], but this brings
# in matplotlib and a bunch of other deps
@@ -50,3 +49,8 @@ scipy<1.16
# https://github.com/pypa/twine/blob/6fbf880ee60915cf1666348c4bdd78a10415f2ac/twine/__init__.py#L40
# Uses importlib-metadata
importlib-metadata<8.0.0
# The proper dependency is litellm[proxy], but it installs
# mcp which is a pywin32 dependency that fails on linux CI.
fastapi
orjson

View File

@@ -1,3 +1,3 @@
tree-sitter==0.23.2; python_version < "3.10"
tree-sitter==0.24.0; python_version >= "3.10"
tree-sitter==0.25.2; python_version >= "3.10"

View File

@@ -89,8 +89,13 @@ def get_commit_authors(commits):
commit_to_author = dict()
for commit in commits:
author = run(["git", "show", "-s", "--format=%an", commit]).strip()
commit_message = run(["git", "show", "-s", "--format=%s", commit]).strip()
if commit_message.lower().startswith("aider:"):
subject = run(["git", "show", "-s", "--format=%s", commit]).strip()
full_message = run(["git", "show", "-s", "--format=%B", commit]).strip()
lower_subject = subject.lower()
lower_full = full_message.lower()
if lower_subject.startswith("aider:") or "co-authored-by: aider" in lower_full:
author += " (aider)"
commit_to_author[commit] = author
return commit_to_author

View File

@@ -398,10 +398,6 @@ def get_badges_html():
<span class="badge-label">📈 Tokens/week</span>
<span class="badge-value">{TOKENS_PER_WEEK}</span>
</div>
<a href="https://openrouter.ai/#options-menu" class="github-badge badge-router" title="{OPENROUTER_TOOLTIP}">
<span class="badge-label">🏆 OpenRouter</span>
<span class="badge-value">Top 20</span>
</a>
<a href="/HISTORY.html" class="github-badge badge-coded" title="{SINGULARITY_TOOLTIP}">
<span class="badge-label">🔄 Singularity</span>
<span class="badge-value">{aider_percent_rounded}%</span>

View File

@@ -113,7 +113,7 @@ def main():
cmd = [
"aider",
"--model",
"o3",
"gpt-5",
hist_path,
"--read",
log_path,

View File

@@ -138,13 +138,13 @@ class TestModels(unittest.TestCase):
self.assertEqual(model.name, "gpt-3.5-turbo")
model = Model("sonnet")
self.assertEqual(model.name, "anthropic/claude-sonnet-4-20250514")
self.assertEqual(model.name, "claude-sonnet-4-5")
model = Model("haiku")
self.assertEqual(model.name, "claude-3-5-haiku-20241022")
self.assertEqual(model.name, "claude-haiku-4-5")
model = Model("opus")
self.assertEqual(model.name, "claude-opus-4-20250514")
self.assertEqual(model.name, "claude-opus-4-6")
# Test non-alias passes through unchanged
model = Model("gpt-4")

View File

@@ -302,6 +302,9 @@ class TestRepoMapAllLanguages(unittest.TestCase):
def test_language_gleam(self):
self._test_language_repo_map("gleam", "gleam", "greet")
def test_language_haskell(self):
self._test_language_repo_map("haskell", "hs", "add")
def test_language_java(self):
self._test_language_repo_map("java", "java", "Greeting")
@@ -334,6 +337,9 @@ class TestRepoMapAllLanguages(unittest.TestCase):
def test_language_tsx(self):
self._test_language_repo_map("tsx", "tsx", "UserProps")
def test_language_zig(self):
self._test_language_repo_map("zig", "zig", "add")
def test_language_csharp(self):
self._test_language_repo_map("csharp", "cs", "IGreeter")

View File

@@ -0,0 +1,7 @@
module Main where
add :: Int -> Int -> Int
add a b = a + b
main :: IO ()
main = print (add 2 3)

10
tests/fixtures/languages/zig/test.zig vendored Normal file
View File

@@ -0,0 +1,10 @@
const std = @import("std");
pub fn add(a: i32, b: i32) i32 {
return a + b;
}
pub fn main() !void {
const stdout = std.io.getStdOut().writer();
try stdout.print("{}", .{add(2, 3)});
}