mirror of
https://github.com/Aider-AI/aider
synced 2026-04-25 17:15:07 +02:00
Compare commits
161 Commits
v0.85.5.de
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c723364ada | ||
|
|
308b1546a0 | ||
|
|
cd24a3a3c8 | ||
|
|
0189cf4f00 | ||
|
|
65cb4d3568 | ||
|
|
93dfacc85e | ||
|
|
39023f9bc0 | ||
|
|
79c45c3cd6 | ||
|
|
b9d877488c | ||
|
|
9ce34d179c | ||
|
|
f939d0ac94 | ||
|
|
928bb49c4b | ||
|
|
f09d70659a | ||
|
|
bdb4d9ff8e | ||
|
|
3c2a8bdafc | ||
|
|
c41ef3b85b | ||
|
|
fabdce1a03 | ||
|
|
5b038fd76a | ||
|
|
413149e9c8 | ||
|
|
c3356825dd | ||
|
|
8955c4e9ea | ||
|
|
07c526f4ec | ||
|
|
0ec5f355d7 | ||
|
|
38716cc5a2 | ||
|
|
f8e3379864 | ||
|
|
55164933dc | ||
|
|
c0839cf36f | ||
|
|
c0ab75371b | ||
|
|
861a1e4d15 | ||
|
|
975e5a8991 | ||
|
|
265d8a473b | ||
|
|
37d6ebdf76 | ||
|
|
ec3470cc69 | ||
|
|
f761d7276d | ||
|
|
edfe0c801b | ||
|
|
b23516061e | ||
|
|
d19a9b0c56 | ||
|
|
4b48d82750 | ||
|
|
7afaa26f8b | ||
|
|
cf72acfbf7 | ||
|
|
b9050e1d5f | ||
|
|
b2bec25c2c | ||
|
|
4625ebb4b5 | ||
|
|
e6f8edda93 | ||
|
|
172df73b85 | ||
|
|
7a1bd15f0c | ||
|
|
253f0368b8 | ||
|
|
275c9cb926 | ||
|
|
11120e5c6f | ||
|
|
27254aa616 | ||
|
|
1e001bd73c | ||
|
|
b77180711c | ||
|
|
750c61c6a0 | ||
|
|
0811a180cf | ||
|
|
463bf8023c | ||
|
|
fa3d7b14c0 | ||
|
|
87c552bbee | ||
|
|
c7912bf76a | ||
|
|
c1e0c601da | ||
|
|
6a3bbfd95d | ||
|
|
c50eb7512f | ||
|
|
3aa642fec9 | ||
|
|
114057283d | ||
|
|
98cc418ea3 | ||
|
|
a6a31c7b82 | ||
|
|
5cb6b61047 | ||
|
|
22b9aec8ac | ||
|
|
f8f2726b14 | ||
|
|
d9d5c1e233 | ||
|
|
94bd7abd17 | ||
|
|
c1924f2c45 | ||
|
|
a8c3e7c29c | ||
|
|
4bf56b7714 | ||
|
|
d91c02c205 | ||
|
|
fb05748ace | ||
|
|
08165c57a2 | ||
|
|
1354e0bfa4 | ||
|
|
2d54feaa09 | ||
|
|
7ef1dcd64a | ||
|
|
656301cc87 | ||
|
|
2c39cb68c7 | ||
|
|
7e292a2efc | ||
|
|
7301d4522d | ||
|
|
4ff959f55b | ||
|
|
4e77720c6f | ||
|
|
f73085357c | ||
|
|
5683f1c089 | ||
|
|
3bdd49c8ab | ||
|
|
dbc7ee0d0b | ||
|
|
a65e0892b9 | ||
|
|
7360bb5064 | ||
|
|
f626e44a0d | ||
|
|
90ac33cb88 | ||
|
|
5b0f6ce9e9 | ||
|
|
58eae2f94a | ||
|
|
ab29b99518 | ||
|
|
a719c2848b | ||
|
|
749dee8f30 | ||
|
|
c74f5efb2f | ||
|
|
9fbfa36c27 | ||
|
|
be8da40b1f | ||
|
|
93f20a6d23 | ||
|
|
92de49a50d | ||
|
|
11516d6d6b | ||
|
|
bfed819c19 | ||
|
|
1a6d035653 | ||
|
|
cb6a152e5e | ||
|
|
d47d689d18 | ||
|
|
484e47d029 | ||
|
|
cbb5376197 | ||
|
|
6963e65887 | ||
|
|
a3bbb5ec22 | ||
|
|
73409a52c3 | ||
|
|
82a31cc7cc | ||
|
|
249e389765 | ||
|
|
a1214101c6 | ||
|
|
b2379d585f | ||
|
|
39b0c25ae3 | ||
|
|
f8aa80396d | ||
|
|
5777ab9703 | ||
|
|
e4fc2f515d | ||
|
|
60c578e2a1 | ||
|
|
b3d339a583 | ||
|
|
c4b06c0870 | ||
|
|
bd3c5df505 | ||
|
|
37ab5e4b56 | ||
|
|
f6ad53ea8c | ||
|
|
54b266f289 | ||
|
|
bfef1906bb | ||
|
|
ad19c7b5aa | ||
|
|
32faf82b31 | ||
|
|
59250e070e | ||
|
|
b8b521f143 | ||
|
|
07e25599e9 | ||
|
|
2b98a9ecf0 | ||
|
|
450a535548 | ||
|
|
5761b087b5 | ||
|
|
da45632087 | ||
|
|
0a88f7ce34 | ||
|
|
9fda5c93cc | ||
|
|
2f5bb772b5 | ||
|
|
5a3b2f34b6 | ||
|
|
a7d3fdc23b | ||
|
|
0862128d36 | ||
|
|
01a9b88df1 | ||
|
|
a4be6ccd87 | ||
|
|
4cd71acebe | ||
|
|
3d8290cdef | ||
|
|
b782437918 | ||
|
|
f3d5f20ad7 | ||
|
|
f57c0f624a | ||
|
|
071d177309 | ||
|
|
4e7c9f2fcd | ||
|
|
a14cb222c0 | ||
|
|
3b919646a5 | ||
|
|
9702b1c199 | ||
|
|
7440a01015 | ||
|
|
3a6f217dcd | ||
|
|
ceb81369ea | ||
|
|
ad49e56b24 | ||
|
|
ac40a4c5cb |
2
.github/workflows/check_pypi_version.yml
vendored
2
.github/workflows/check_pypi_version.yml
vendored
@@ -15,7 +15,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: ["3.10", "3.11", "3.12"]
|
||||
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
|
||||
|
||||
steps:
|
||||
- name: Set up Python ${{ matrix.python-version }}
|
||||
|
||||
2
.github/workflows/ubuntu-tests.yml
vendored
2
.github/workflows/ubuntu-tests.yml
vendored
@@ -25,7 +25,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: ["3.10", "3.11", "3.12"]
|
||||
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
|
||||
|
||||
steps:
|
||||
- name: Check out repository
|
||||
|
||||
2
.github/workflows/windows-tests.yml
vendored
2
.github/workflows/windows-tests.yml
vendored
@@ -25,7 +25,7 @@ jobs:
|
||||
runs-on: windows-latest
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: ["3.10", "3.11", "3.12"]
|
||||
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
|
||||
|
||||
steps:
|
||||
- name: Check out repository
|
||||
|
||||
@@ -15,7 +15,7 @@ jobs:
|
||||
runs-on: windows-latest
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: ["3.10", "3.11", "3.12"]
|
||||
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
|
||||
defaults:
|
||||
run:
|
||||
shell: pwsh # Use PowerShell for all run steps
|
||||
|
||||
33
HISTORY.md
33
HISTORY.md
@@ -1,5 +1,38 @@
|
||||
# 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 Flash‑Lite, 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 GPT‑5.1/5.2 and GPT‑5‑pro 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.
|
||||
- Added support for GPT‑5.3/5.4 model variants across OpenAI, Azure, and OpenRouter, plus GPT‑4.1‑nano.
|
||||
- Added `/ok` as a shortcut for asking aider to go ahead with the proposed changes, with optional extra instructions.
|
||||
- When auto-commits are disabled, aider can add files outside the git repo and promote read-only files to editable, by Chris McCormick.
|
||||
- Fixed crashes caused by circular symlink loops when resolving paths, by coder_3.
|
||||
- Aider wrote 62% 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
|
||||
|
||||
@@ -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-3.0M-2ecc71?style=flat-square&labelColor=555555"/></a>
|
||||
src="https://img.shields.io/badge/📦%20Installs-6.8M-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>
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from packaging import version
|
||||
|
||||
__version__ = "0.85.5.dev"
|
||||
__version__ = "0.86.3.dev"
|
||||
safe_version = __version__
|
||||
|
||||
try:
|
||||
|
||||
@@ -9,6 +9,12 @@ Answer questions about the supplied code.
|
||||
Always reply to the user in {language}.
|
||||
|
||||
If you need to describe code changes, do so *briefly*.
|
||||
"""
|
||||
|
||||
overeager_prompt = """Do not return fully detailed code or full diffs.
|
||||
Describe the needed changes or give a plan.
|
||||
Providing code snippets or pseudo-code is fine,
|
||||
if it helps explain the plan or the needed changes.
|
||||
"""
|
||||
|
||||
example_messages = []
|
||||
|
||||
@@ -2216,7 +2216,7 @@ class Coder:
|
||||
# Seems unlikely that we needed to create the file, but it was
|
||||
# actually already part of the repo.
|
||||
# But let's only add if we need to, just to be safe.
|
||||
if need_to_add:
|
||||
if need_to_add and self.auto_commits:
|
||||
self.repo.repo.git.add(full_path)
|
||||
|
||||
self.abs_fnames.add(full_path)
|
||||
@@ -2230,7 +2230,7 @@ class Coder:
|
||||
self.io.tool_output(f"Skipping edits to {path}")
|
||||
return
|
||||
|
||||
if need_to_add:
|
||||
if need_to_add and self.auto_commits:
|
||||
self.repo.repo.git.add(full_path)
|
||||
|
||||
self.abs_fnames.add(full_path)
|
||||
|
||||
@@ -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!
|
||||
|
||||
@@ -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!
|
||||
|
||||
@@ -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.
|
||||
"""
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -846,7 +846,11 @@ class Commands:
|
||||
for matched_file in sorted(all_matched_files):
|
||||
abs_file_path = self.coder.abs_root_path(matched_file)
|
||||
|
||||
if not abs_file_path.startswith(self.coder.root) and not is_image_file(matched_file):
|
||||
if (
|
||||
not abs_file_path.startswith(self.coder.root)
|
||||
and not is_image_file(matched_file)
|
||||
and self.coder.auto_commits
|
||||
):
|
||||
self.io.tool_error(
|
||||
f"Can not add {abs_file_path}, which is not within {self.coder.root}"
|
||||
)
|
||||
@@ -864,7 +868,13 @@ class Commands:
|
||||
self.io.tool_error(f"{matched_file} is already in the chat as an editable file")
|
||||
continue
|
||||
elif abs_file_path in self.coder.abs_read_only_fnames:
|
||||
if self.coder.repo and self.coder.repo.path_in_repo(matched_file):
|
||||
# Determine if file can be promoted to editable
|
||||
if self.coder.repo:
|
||||
can_edit = self.coder.repo.path_in_repo(matched_file)
|
||||
else:
|
||||
can_edit = abs_file_path.startswith(self.coder.root)
|
||||
|
||||
if can_edit:
|
||||
self.coder.abs_read_only_fnames.remove(abs_file_path)
|
||||
self.coder.abs_fnames.add(abs_file_path)
|
||||
self.io.tool_output(
|
||||
@@ -1185,6 +1195,14 @@ class Commands:
|
||||
"""Enter context mode to see surrounding code context. If no prompt provided, switches to context mode.""" # noqa
|
||||
return self._generic_chat_command(args, "context", placeholder=args.strip() or None)
|
||||
|
||||
def cmd_ok(self, args):
|
||||
"Alias for `/code Ok, please go ahead and make those changes.` (any args are appended)"
|
||||
msg = "Ok, please go ahead and make those changes."
|
||||
extra = (args or "").strip()
|
||||
if extra:
|
||||
msg = f"{msg} {extra}"
|
||||
return self.cmd_code(msg)
|
||||
|
||||
def _generic_chat_command(self, args, edit_format, placeholder=None):
|
||||
if not args.strip():
|
||||
# Switch to the corresponding chat mode if no args provided
|
||||
|
||||
@@ -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,10 +29,16 @@ 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),
|
||||
ExInfo("NotFoundError", False, None),
|
||||
ExInfo(
|
||||
"PermissionDeniedError",
|
||||
False,
|
||||
"Permission was denied. Check your API key and/or credentials.",
|
||||
),
|
||||
ExInfo("OpenAIError", True, None),
|
||||
ExInfo(
|
||||
"RateLimitError",
|
||||
@@ -61,7 +68,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 +87,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):
|
||||
|
||||
@@ -52,6 +52,9 @@ gpt-4-vision-preview
|
||||
gpt-4-1106-vision-preview
|
||||
gpt-4o-mini
|
||||
gpt-4o-mini-2024-07-18
|
||||
gpt-5.5
|
||||
gpt-5.5-pro
|
||||
gpt-5.5-chat-latest
|
||||
gpt-3.5-turbo
|
||||
gpt-3.5-turbo-0301
|
||||
gpt-3.5-turbo-0613
|
||||
@@ -74,6 +77,13 @@ claude-3-5-sonnet-20240620
|
||||
claude-3-5-sonnet-20241022
|
||||
claude-sonnet-4-20250514
|
||||
claude-opus-4-20250514
|
||||
claude-opus-4-6
|
||||
claude-opus-4-7
|
||||
claude-sonnet-4-5
|
||||
claude-sonnet-4-5-20250929
|
||||
claude-sonnet-4-6
|
||||
claude-haiku-4-5
|
||||
claude-haiku-4-5-20251001
|
||||
"""
|
||||
|
||||
ANTHROPIC_MODELS = [ln.strip() for ln in ANTHROPIC_MODELS.splitlines() if ln.strip()]
|
||||
@@ -81,9 +91,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-6",
|
||||
"haiku": "claude-haiku-4-5",
|
||||
"opus": "claude-opus-4-7",
|
||||
# GPT models
|
||||
"4": "gpt-4-0613",
|
||||
"4o": "gpt-4o",
|
||||
@@ -93,11 +103,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",
|
||||
@@ -406,7 +418,11 @@ class Model(ModelSettings):
|
||||
if self.name.startswith("openrouter/"):
|
||||
if self.accepts_settings is None:
|
||||
self.accepts_settings = []
|
||||
if "thinking_tokens" not in self.accepts_settings:
|
||||
if (
|
||||
"thinking_tokens" not in self.accepts_settings
|
||||
and "claude-opus-4.7" not in self.name
|
||||
and "claude-opus-4-7" not in self.name
|
||||
):
|
||||
self.accepts_settings.append("thinking_tokens")
|
||||
if "reasoning_effort" not in self.accepts_settings:
|
||||
self.accepts_settings.append("reasoning_effort")
|
||||
@@ -436,8 +452,12 @@ class Model(ModelSettings):
|
||||
self.examples_as_sys_msg = False
|
||||
return # <--
|
||||
|
||||
if "gpt-5" in model:
|
||||
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:
|
||||
@@ -501,6 +521,20 @@ class Model(ModelSettings):
|
||||
self.reminder = "sys"
|
||||
return # <--
|
||||
|
||||
if "sonnet-4-" in model or "opus-4-" in model or "haiku-4-" in model:
|
||||
self.edit_format = "diff"
|
||||
self.use_repo_map = True
|
||||
self.examples_as_sys_msg = False
|
||||
if "opus-4-" in model:
|
||||
self.use_temperature = False
|
||||
if (
|
||||
"thinking_tokens" not in self.accepts_settings
|
||||
and "4.7" not in model
|
||||
and "4-7" not in model
|
||||
):
|
||||
self.accepts_settings.append("thinking_tokens")
|
||||
return # <--
|
||||
|
||||
if "3-7-sonnet" in model:
|
||||
self.edit_format = "diff"
|
||||
self.use_repo_map = True
|
||||
|
||||
@@ -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.
|
||||
|
||||
15
aider/queries/tree-sitter-languages/fortran-tags.scm
Normal file
15
aider/queries/tree-sitter-languages/fortran-tags.scm
Normal 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
|
||||
|
||||
3
aider/queries/tree-sitter-languages/haskell-tags.scm
Normal file
3
aider/queries/tree-sitter-languages/haskell-tags.scm
Normal file
@@ -0,0 +1,3 @@
|
||||
(function (variable) @name.definition.function)
|
||||
(bind (variable) @name.definition.function)
|
||||
(signature (variable) @name.definition.type)
|
||||
60
aider/queries/tree-sitter-languages/julia-tags.scm
Normal file
60
aider/queries/tree-sitter-languages/julia-tags.scm
Normal 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
|
||||
3
aider/queries/tree-sitter-languages/zig-tags.scm
Normal file
3
aider/queries/tree-sitter-languages/zig-tags.scm
Normal file
@@ -0,0 +1,3 @@
|
||||
(FnProto) @name.definition.function
|
||||
(VarDecl "const" @name.definition.constant)
|
||||
(VarDecl "var" @name.definition.variable)
|
||||
@@ -571,7 +571,8 @@ class GitRepo:
|
||||
return
|
||||
|
||||
tracked_files = set(self.get_tracked_files())
|
||||
return self.normalize_path(path) in tracked_files
|
||||
normalized = self.normalize_path(path)
|
||||
return normalized in tracked_files
|
||||
|
||||
def abs_root_path(self, path):
|
||||
res = Path(self.root) / path
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -95,7 +95,10 @@ def is_image_file(file_name):
|
||||
|
||||
def safe_abs_path(res):
|
||||
"Gives an abs path, which safely returns a full (not 8.3) windows path"
|
||||
res = Path(res).resolve()
|
||||
try:
|
||||
res = Path(res).resolve()
|
||||
except (RuntimeError, OSError):
|
||||
res = Path(res).absolute()
|
||||
return str(res)
|
||||
|
||||
|
||||
|
||||
@@ -24,6 +24,39 @@ 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 Flash‑Lite, 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 GPT‑5.1/5.2 and GPT‑5‑pro 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.
|
||||
- Added support for GPT‑5.3/5.4 model variants across OpenAI, Azure, and OpenRouter, plus GPT‑4.1‑nano.
|
||||
- Added `/ok` as a shortcut for asking aider to go ahead with the proposed changes, with optional extra instructions.
|
||||
- When auto-commits are disabled, aider can add files outside the git repo and promote read-only files to editable, by Chris McCormick.
|
||||
- Fixed crashes caused by circular symlink loops when resolving paths, by coder_3.
|
||||
- Aider wrote 62% 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
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1682,4 +1682,175 @@
|
||||
date: 2025-07-17
|
||||
versions: 0.85.3.dev
|
||||
seconds_per_case: 67.6
|
||||
total_cost: 1.2357
|
||||
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
|
||||
|
||||
0
aider/website/_includes/footer_custom.html
Normal file
0
aider/website/_includes/footer_custom.html
Normal 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
@@ -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-7
|
||||
- `quasar`: openrouter/openrouter/quasar-alpha
|
||||
- `r1`: deepseek/deepseek-reasoner
|
||||
- `sonnet`: anthropic/claude-sonnet-4-20250514
|
||||
- `sonnet`: claude-sonnet-4-6
|
||||
<!--[[[end]]]-->
|
||||
|
||||
## Priority
|
||||
|
||||
@@ -264,20 +264,18 @@ 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>gemini/gemini-2.5-pro</td><td class='right'>382,599</td><td class='right'>50.5%</td></tr>
|
||||
<tr><td>anthropic/claude-sonnet-4-20250514</td><td class='right'>293,741</td><td class='right'>38.8%</td></tr>
|
||||
<tr><td>openrouter/moonshotai/kimi-k2</td><td class='right'>32,483</td><td class='right'>4.3%</td></tr>
|
||||
<tr><td>o3</td><td class='right'>22,003</td><td class='right'>2.9%</td></tr>
|
||||
<tr><td>o3-pro</td><td class='right'>12,707</td><td class='right'>1.7%</td></tr>
|
||||
<tr><td>xai/grok-4</td><td class='right'>9,573</td><td class='right'>1.3%</td></tr>
|
||||
<tr><td>openrouter/REDACTED</td><td class='right'>2,342</td><td class='right'>0.3%</td></tr>
|
||||
<tr><td>openai/REDACTED</td><td class='right'>1,970</td><td class='right'>0.3%</td></tr>
|
||||
<tr><td>claude-opus-4-20250514</td><td class='right'>502</td><td class='right'>0.1%</td></tr>
|
||||
<tr><td>openai/gpt-5.2</td><td class='right'>982,120</td><td class='right'>39.2%</td></tr>
|
||||
<tr><td>gpt-5.4</td><td class='right'>775,412</td><td class='right'>31.0%</td></tr>
|
||||
<tr><td>gemini/gemini-3-flash-preview</td><td class='right'>241,516</td><td class='right'>9.6%</td></tr>
|
||||
<tr><td>gpt-5.2-codex</td><td class='right'>166,945</td><td class='right'>6.7%</td></tr>
|
||||
<tr><td>gpt-5.2</td><td class='right'>93,248</td><td class='right'>3.7%</td></tr>
|
||||
<tr><td>gemini/gemini-3-pro-preview</td><td class='right'>81,851</td><td class='right'>3.3%</td></tr>
|
||||
<tr><td>gpt-5.3-codex</td><td class='right'>64,402</td><td class='right'>2.6%</td></tr>
|
||||
<tr><td>gemini/gemini-2.5-pro</td><td class='right'>58,916</td><td class='right'>2.4%</td></tr>
|
||||
<tr><td>gpt-5</td><td class='right'>39,467</td><td class='right'>1.6%</td></tr>
|
||||
<tr><td>openai/gpt-5.4</td><td class='right'>278</td><td class='right'>0.0%</td></tr>
|
||||
<tr><td>openai/gpt-5.5</td><td class='right'>89</td><td class='right'>0.0%</td></tr>
|
||||
</table>
|
||||
|
||||
{: .note :}
|
||||
Some models show as REDACTED, because they are new or unpopular models.
|
||||
Aider's analytics only records the names of "well known" LLMs.
|
||||
<!--[[[end]]]-->
|
||||
|
||||
## How are the "aider wrote xx% of code" stats computed?
|
||||
|
||||
@@ -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]]]-->
|
||||
|
||||
|
||||
@@ -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.')}")
|
||||
]]]-->
|
||||
August 07, 2025.
|
||||
November 20, 2025.
|
||||
<!--[[[end]]]-->
|
||||
</p>
|
||||
|
||||
@@ -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
|
||||
```
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -57,61 +57,126 @@ 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
|
||||
- anthropic.claude-sonnet-4-6
|
||||
- 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
|
||||
- au.anthropic.claude-sonnet-4-6
|
||||
- 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/claude-sonnet-4-6
|
||||
- azure_ai/deepseek-v3.2
|
||||
- azure_ai/deepseek-v3.2-speciale
|
||||
- azure_ai/mistral-medium-2505
|
||||
- claude-3-5-haiku-20241022
|
||||
- claude-3-5-haiku-latest
|
||||
- claude-3-5-sonnet-20240620
|
||||
- claude-3-5-sonnet-20241022
|
||||
- claude-3-5-sonnet-latest
|
||||
- bedrock/us-gov-east-1/anthropic.claude-haiku-4-5-20251001-v1:0
|
||||
- bedrock/us-gov-east-1/anthropic.claude-sonnet-4-5-20250929-v1:0
|
||||
- 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/anthropic.claude-haiku-4-5-20251001-v1:0
|
||||
- bedrock/us-gov-west-1/anthropic.claude-sonnet-4-5-20250929-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-7-sonnet-20250219
|
||||
- claude-3-7-sonnet-latest
|
||||
- claude-3-haiku-20240307
|
||||
- claude-3-opus-20240229
|
||||
- claude-3-opus-latest
|
||||
- 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
|
||||
- claude-sonnet-4-6
|
||||
- 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
|
||||
- eu.anthropic.claude-sonnet-4-6
|
||||
- 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
|
||||
- global.anthropic.claude-sonnet-4-6
|
||||
- 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-latest
|
||||
- mistral/devstral-medium-2507
|
||||
- mistral/devstral-medium-latest
|
||||
- mistral/devstral-small-2505
|
||||
- mistral/devstral-small-2507
|
||||
- mistral/devstral-small-latest
|
||||
- mistral/labs-devstral-small-2512
|
||||
- mistral/magistral-medium-1-2-2509
|
||||
- mistral/magistral-medium-2506
|
||||
- mistral/magistral-medium-2509
|
||||
- mistral/magistral-medium-latest
|
||||
- mistral/magistral-small-1-2-2509
|
||||
- mistral/magistral-small-2506
|
||||
- mistral/magistral-small-latest
|
||||
- mistral/ministral-3-14b-2512
|
||||
- mistral/ministral-3-3b-2512
|
||||
- mistral/ministral-3-8b-2512
|
||||
- mistral/mistral-large-2402
|
||||
- mistral/mistral-large-2407
|
||||
- mistral/mistral-large-2411
|
||||
- mistral/mistral-large-2512
|
||||
- mistral/mistral-large-3
|
||||
- mistral/mistral-large-latest
|
||||
- mistral/mistral-medium
|
||||
- mistral/mistral-medium-2312
|
||||
- mistral/mistral-medium-2505
|
||||
- mistral/mistral-medium-3-1-2508
|
||||
- mistral/mistral-medium-latest
|
||||
- mistral/mistral-small
|
||||
- mistral/mistral-small-3-2-2506
|
||||
- mistral/mistral-small-latest
|
||||
- mistral/mistral-tiny
|
||||
- mistral/open-codestral-mamba
|
||||
@@ -125,20 +190,44 @@ 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-opus-4.6
|
||||
- openrouter/anthropic/claude-sonnet-4
|
||||
- openrouter/anthropic/claude-sonnet-4.5
|
||||
- openrouter/anthropic/claude-sonnet-4.6
|
||||
- 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-gov.anthropic.claude-sonnet-4-5-20250929-v1:0
|
||||
- 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
|
||||
- us.anthropic.claude-sonnet-4-6
|
||||
- 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
|
||||
- vertex_ai/claude-3-5-sonnet-v2
|
||||
- vertex_ai/claude-3-5-sonnet-v2@20241022
|
||||
- vertex_ai/claude-3-5-sonnet@20240620
|
||||
- vertex_ai/claude-3-7-sonnet@20250219
|
||||
- vertex_ai/claude-3-haiku
|
||||
@@ -147,12 +236,23 @@ 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
|
||||
- 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-6
|
||||
- vertex_ai/claude-sonnet-4-6@default
|
||||
- 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]]]-->
|
||||
|
||||
|
||||
|
||||
@@ -47,6 +47,7 @@ cog.out(get_help_md())
|
||||
| **/model** | Switch the Main Model to a new LLM |
|
||||
| **/models** | Search the list of available models |
|
||||
| **/multiline-mode** | Toggle multiline mode (swaps behavior of Enter and Meta+Enter) |
|
||||
| **/ok** | Alias for `/code Ok, please go ahead and make those changes.` (any args are appended) |
|
||||
| **/paste** | Paste image/text from the clipboard into the chat. Optionally provide a name for the image. |
|
||||
| **/quit** | Exit the application |
|
||||
| **/read-only** | Add files to the chat that are for reference only, or turn added files to read-only |
|
||||
|
||||
@@ -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">44K</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">3.0M</span>
|
||||
<span class="badge-value">6.8M</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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -12,10 +12,12 @@ classifiers = [
|
||||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Programming Language :: Python :: 3.13",
|
||||
"Programming Language :: Python :: 3.14",
|
||||
"Programming Language :: Python",
|
||||
"Topic :: Software Development",
|
||||
]
|
||||
requires-python = ">=3.10,<3.13"
|
||||
requires-python = ">=3.10,<3.15"
|
||||
dynamic = ["dependencies", "optional-dependencies", "version"]
|
||||
|
||||
[project.urls]
|
||||
|
||||
277
requirements.txt
277
requirements.txt
@@ -4,7 +4,7 @@ aiohappyeyeballs==2.6.1
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# aiohttp
|
||||
aiohttp==3.12.15
|
||||
aiohttp==3.13.3
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# litellm
|
||||
@@ -12,17 +12,27 @@ 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.10.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,34 +43,31 @@ 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.8.3
|
||||
certifi==2026.2.25
|
||||
# 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.6
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# requests
|
||||
click==8.2.1
|
||||
click==8.3.1
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# litellm
|
||||
configargparse==1.7.1
|
||||
# typer
|
||||
configargparse==1.7.5
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# -r requirements/requirements.in
|
||||
@@ -77,7 +84,15 @@ distro==1.9.0
|
||||
# -c requirements/common-constraints.txt
|
||||
# openai
|
||||
# posthog
|
||||
filelock==3.18.0
|
||||
fastapi==0.135.1
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# -r requirements/requirements.in
|
||||
fastuuid==0.14.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# litellm
|
||||
filelock==3.25.2
|
||||
# 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.7.0
|
||||
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.45
|
||||
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.178.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.74.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# google-api-core
|
||||
# grpcio-status
|
||||
grpcio-status==1.71.2
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# google-api-core
|
||||
h11==0.16.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# httpcore
|
||||
hf-xet==1.1.7
|
||||
hf-xet==1.4.2
|
||||
# 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.34.3
|
||||
huggingface-hub==1.7.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.25.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.75.0
|
||||
litellm==1.82.3
|
||||
# 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.6.3
|
||||
multidict==6.7.1
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# aiohttp
|
||||
@@ -250,25 +218,29 @@ networkx==3.4.2
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# -r requirements/requirements.in
|
||||
numpy==1.26.4
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# -r requirements/python-compat.in
|
||||
# scipy
|
||||
# soundfile
|
||||
openai==1.99.1
|
||||
openai==2.28.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.3.0
|
||||
pillow==12.1.1
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# -r requirements/requirements.in
|
||||
posthog==6.4.1
|
||||
posthog==7.9.12
|
||||
# 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.17
|
||||
# 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,73 +317,69 @@ python-dateutil==2.9.0.post0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# posthog
|
||||
python-dotenv==1.1.1
|
||||
python-dotenv==1.2.2
|
||||
# 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==2025.7.34
|
||||
regex==2026.2.28
|
||||
# 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.1.0
|
||||
rich==14.3.3
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# -r requirements/requirements.in
|
||||
rpds-py==0.27.0
|
||||
# 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
|
||||
# -r requirements/python-compat.in
|
||||
shellingham==1.5.4
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# -r requirements/requirements.in
|
||||
shtab==1.7.2
|
||||
# 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
|
||||
smmap==5.0.3
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# gitdb
|
||||
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 +387,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.10.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.4
|
||||
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,54 +415,55 @@ 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.9.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.1
|
||||
typer==0.24.1
|
||||
# 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.23.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# aiohttp
|
||||
@@ -527,4 +473,17 @@ 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"
|
||||
# NumPy 2.x adds Python 3.14 wheels, but dropped Python 3.10.
|
||||
numpy<2; python_version < "3.11"
|
||||
numpy>=2.3,<2.5; python_version >= "3.11"
|
||||
|
||||
# This is the one networkx dependency that we need.
|
||||
# Including it here explicitly because we
|
||||
# didn't specify networkx[default] above.
|
||||
#
|
||||
# SciPy 1.16+ adds Python 3.14 wheels, but dropped Python 3.10.
|
||||
scipy<1.16; python_version < "3.11"
|
||||
scipy>=1.16.1,<1.18; python_version >= "3.11"
|
||||
# Remove if Python 3.13+ support lands in pydub upstream.
|
||||
audioop-lts>=0.2.2; python_version >= "3.13"
|
||||
|
||||
@@ -2,25 +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.15
|
||||
aiohttp==3.13.3
|
||||
# via
|
||||
# huggingface-hub
|
||||
# litellm
|
||||
# llama-index-core
|
||||
aiosignal==1.4.0
|
||||
# via aiohttp
|
||||
aiosqlite==0.21.0
|
||||
aiosqlite==0.22.1
|
||||
# via llama-index-core
|
||||
altair==5.5.0
|
||||
altair==6.0.0
|
||||
# via streamlit
|
||||
annotated-doc==0.0.4
|
||||
# via
|
||||
# fastapi
|
||||
# typer
|
||||
annotated-types==0.7.0
|
||||
# via pydantic
|
||||
anyio==4.10.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
|
||||
@@ -29,63 +35,64 @@ backoff==2.2.1
|
||||
# via
|
||||
# -r requirements/requirements.in
|
||||
# posthog
|
||||
banks==2.2.0
|
||||
banks==2.4.1
|
||||
# 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.3.0
|
||||
build==1.4.0
|
||||
# via pip-tools
|
||||
cachetools==5.5.2
|
||||
# via
|
||||
# google-auth
|
||||
# streamlit
|
||||
certifi==2025.8.3
|
||||
cachetools==7.0.5
|
||||
# via streamlit
|
||||
certifi==2026.2.25
|
||||
# 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.6
|
||||
# via requests
|
||||
click==8.2.1
|
||||
click==8.3.1
|
||||
# via
|
||||
# litellm
|
||||
# nltk
|
||||
# pip-tools
|
||||
# streamlit
|
||||
# typer
|
||||
codespell==2.4.1
|
||||
codespell==2.4.2
|
||||
# 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
|
||||
configargparse==1.7.1
|
||||
# via griffecli
|
||||
configargparse==1.7.5
|
||||
# via -r requirements/requirements.in
|
||||
contourpy==1.3.3
|
||||
# via matplotlib
|
||||
# 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
|
||||
@@ -96,107 +103,102 @@ distro==1.9.0
|
||||
# via
|
||||
# openai
|
||||
# posthog
|
||||
filelock==3.18.0
|
||||
fastapi==0.135.1
|
||||
# via -r requirements/requirements.in
|
||||
fastuuid==0.14.0
|
||||
# via litellm
|
||||
filelock==3.25.2
|
||||
# via
|
||||
# huggingface-hub
|
||||
# python-discovery
|
||||
# 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.59.0
|
||||
fonttools==4.62.1
|
||||
# via matplotlib
|
||||
frozenlist==1.7.0
|
||||
frozenlist==1.8.0
|
||||
# via
|
||||
# aiohttp
|
||||
# aiosignal
|
||||
fsspec==2025.7.0
|
||||
fsspec==2026.2.0
|
||||
# via
|
||||
# huggingface-hub
|
||||
# llama-index-core
|
||||
# torch
|
||||
gitdb==4.0.12
|
||||
# via gitpython
|
||||
gitpython==3.1.45
|
||||
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.30.0
|
||||
# via
|
||||
# google-ai-generativelanguage
|
||||
# google-api-python-client
|
||||
# google-cloud-bigquery
|
||||
# google-cloud-core
|
||||
# google-generativeai
|
||||
google-api-python-client==2.178.0
|
||||
# via google-generativeai
|
||||
google-auth==2.40.3
|
||||
google-auth==2.49.1
|
||||
# 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.35.1
|
||||
google-cloud-bigquery==3.40.1
|
||||
# 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.73.0
|
||||
# via
|
||||
# google-api-core
|
||||
# grpcio-status
|
||||
greenlet==3.2.3
|
||||
greenlet==3.3.2
|
||||
# via
|
||||
# playwright
|
||||
# sqlalchemy
|
||||
grep-ast==0.9.0
|
||||
# via -r requirements/requirements.in
|
||||
griffe==1.10.0
|
||||
griffe==2.0.0
|
||||
# via banks
|
||||
grpcio==1.74.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.2
|
||||
grpcio-status==1.78.0
|
||||
# via google-api-core
|
||||
h11==0.16.0
|
||||
# via httpcore
|
||||
hf-xet==1.1.7
|
||||
hf-xet==1.4.2
|
||||
# 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.34.3
|
||||
huggingface-hub[inference]==1.7.1
|
||||
# via
|
||||
# llama-index-embeddings-huggingface
|
||||
# sentence-transformers
|
||||
# tokenizers
|
||||
# transformers
|
||||
identify==2.6.12
|
||||
identify==2.6.18
|
||||
# via pre-commit
|
||||
idna==3.10
|
||||
idna==3.11
|
||||
# via
|
||||
# anyio
|
||||
# httpx
|
||||
@@ -210,7 +212,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
|
||||
@@ -219,62 +221,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.25.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.5.0
|
||||
# via matplotlib
|
||||
litellm==1.75.0
|
||||
litellm==1.82.3
|
||||
# via -r requirements/requirements.in
|
||||
llama-index-core==0.13.0
|
||||
llama-index-core==0.14.18
|
||||
# via llama-index-embeddings-huggingface
|
||||
llama-index-embeddings-huggingface==0.6.0
|
||||
llama-index-embeddings-huggingface==0.7.0
|
||||
# via -r requirements/requirements-help.in
|
||||
llama-index-instrumentation==0.4.0
|
||||
llama-index-instrumentation==0.5.0
|
||||
# via llama-index-workflows
|
||||
llama-index-workflows==1.3.0
|
||||
llama-index-workflows==2.16.1
|
||||
# via llama-index-core
|
||||
lox==0.13.0
|
||||
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.5
|
||||
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.6.3
|
||||
multidict==6.7.1
|
||||
# via
|
||||
# aiohttp
|
||||
# yarl
|
||||
multiprocess==0.70.18
|
||||
# via pathos
|
||||
mypy-extensions==1.1.0
|
||||
# via typing-inspect
|
||||
narwhals==2.0.1
|
||||
narwhals==2.18.0
|
||||
# via altair
|
||||
nest-asyncio==1.6.0
|
||||
# via llama-index-core
|
||||
@@ -283,12 +283,13 @@ networkx==3.4.2
|
||||
# -r requirements/requirements.in
|
||||
# llama-index-core
|
||||
# torch
|
||||
nltk==3.9.1
|
||||
nltk==3.9.3
|
||||
# via llama-index-core
|
||||
nodeenv==1.9.1
|
||||
nodeenv==1.10.0
|
||||
# via pre-commit
|
||||
numpy==1.26.4
|
||||
numpy==2.4.3
|
||||
# via
|
||||
# -r requirements/python-compat.in
|
||||
# -r requirements/requirements-help.in
|
||||
# contourpy
|
||||
# llama-index-core
|
||||
@@ -297,14 +298,17 @@ numpy==1.26.4
|
||||
# pydeck
|
||||
# scikit-learn
|
||||
# scipy
|
||||
# sentence-transformers
|
||||
# soundfile
|
||||
# streamlit
|
||||
# transformers
|
||||
openai==1.99.1
|
||||
openai==2.28.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
|
||||
@@ -316,97 +320,89 @@ packaging==25.0
|
||||
# pytest
|
||||
# streamlit
|
||||
# transformers
|
||||
pandas==2.3.1
|
||||
# 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.3.0
|
||||
pillow==12.1.1
|
||||
# via
|
||||
# -r requirements/requirements.in
|
||||
# llama-index-core
|
||||
# matplotlib
|
||||
# sentence-transformers
|
||||
# streamlit
|
||||
pip==25.2
|
||||
pip==26.0.1
|
||||
# via pip-tools
|
||||
pip-tools==7.5.0
|
||||
pip-tools==7.5.3
|
||||
# via -r requirements/requirements-dev.in
|
||||
platformdirs==4.3.8
|
||||
platformdirs==4.9.4
|
||||
# via
|
||||
# banks
|
||||
# llama-index-core
|
||||
# python-discovery
|
||||
# virtualenv
|
||||
playwright==1.54.0
|
||||
playwright==1.58.0
|
||||
# via -r requirements/requirements-playwright.in
|
||||
pluggy==1.6.0
|
||||
# via pytest
|
||||
posthog==6.4.1
|
||||
# via
|
||||
# pytest
|
||||
# pytest-cov
|
||||
posthog==7.9.12
|
||||
# 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==21.0.0
|
||||
pyarrow==23.0.1
|
||||
# via streamlit
|
||||
pyasn1==0.6.1
|
||||
# via
|
||||
# pyasn1-modules
|
||||
# rsa
|
||||
pyasn1==0.6.2
|
||||
# via pyasn1-modules
|
||||
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
|
||||
pydub==0.25.1
|
||||
# via -r requirements/requirements.in
|
||||
pyee==13.0.0
|
||||
pyee==13.0.1
|
||||
# via playwright
|
||||
pyflakes==3.4.0
|
||||
# via flake8
|
||||
@@ -414,23 +410,24 @@ pygments==2.19.2
|
||||
# via
|
||||
# pytest
|
||||
# rich
|
||||
pypandoc==1.15
|
||||
pypandoc==1.17
|
||||
# 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.6.0
|
||||
# via -r requirements/requirements-dev.in
|
||||
python-dateutil==2.9.0.post0
|
||||
# via
|
||||
@@ -438,145 +435,152 @@ python-dateutil==2.9.0.post0
|
||||
# matplotlib
|
||||
# pandas
|
||||
# posthog
|
||||
python-dotenv==1.1.1
|
||||
# via litellm
|
||||
pytz==2025.2
|
||||
python-discovery==1.1.3
|
||||
# via virtualenv
|
||||
python-dotenv==1.2.2
|
||||
# via
|
||||
# litellm
|
||||
# pytest-env
|
||||
pytz==2026.1.post1
|
||||
# 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==2025.7.34
|
||||
regex==2026.2.28
|
||||
# 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.1.0
|
||||
rich==14.3.3
|
||||
# via
|
||||
# -r requirements/requirements.in
|
||||
# typer
|
||||
rpds-py==0.27.0
|
||||
rpds-py==0.30.0
|
||||
# via
|
||||
# jsonschema
|
||||
# referencing
|
||||
rsa==4.9.1
|
||||
# via google-auth
|
||||
safetensors==0.6.1
|
||||
safetensors==0.7.0
|
||||
# via transformers
|
||||
scikit-learn==1.7.1
|
||||
# via sentence-transformers
|
||||
scipy==1.15.3
|
||||
scikit-learn==1.8.0
|
||||
# via
|
||||
# -r requirements/requirements.in
|
||||
# -r requirements/requirements-help.in
|
||||
# sentence-transformers
|
||||
scipy==1.17.1
|
||||
# via
|
||||
# -r requirements/python-compat.in
|
||||
# scikit-learn
|
||||
# sentence-transformers
|
||||
semver==3.0.4
|
||||
# via -r requirements/requirements-dev.in
|
||||
sentence-transformers==5.1.0
|
||||
sentence-transformers==5.3.0
|
||||
# via llama-index-embeddings-huggingface
|
||||
setuptools==80.9.0
|
||||
setuptools==82.0.1
|
||||
# via
|
||||
# llama-index-core
|
||||
# pip-tools
|
||||
# torch
|
||||
shellingham==1.5.4
|
||||
# via typer
|
||||
shtab==1.7.2
|
||||
shtab==1.8.0
|
||||
# via -r requirements/requirements.in
|
||||
six==1.17.0
|
||||
# via
|
||||
# mixpanel
|
||||
# posthog
|
||||
# python-dateutil
|
||||
smmap==5.0.2
|
||||
smmap==5.0.3
|
||||
# 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.42
|
||||
sqlalchemy[asyncio]==2.0.48
|
||||
# via llama-index-core
|
||||
streamlit==1.48.0
|
||||
starlette==0.52.1
|
||||
# via fastapi
|
||||
streamlit==1.55.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.10.0
|
||||
tiktoken==0.12.0
|
||||
# via
|
||||
# litellm
|
||||
# llama-index-core
|
||||
tokenizers==0.21.4
|
||||
tinytag==2.2.1
|
||||
# via llama-index-core
|
||||
tokenizers==0.22.2
|
||||
# via
|
||||
# litellm
|
||||
# transformers
|
||||
toml==0.10.2
|
||||
# via streamlit
|
||||
torch==2.8.0
|
||||
# via sentence-transformers
|
||||
tornado==6.5.1
|
||||
# via streamlit
|
||||
tqdm==4.67.1
|
||||
torch==2.10.0
|
||||
# via
|
||||
# -r requirements/requirements-help.in
|
||||
# sentence-transformers
|
||||
tornado==6.5.5
|
||||
# via streamlit
|
||||
tqdm==4.67.3
|
||||
# via
|
||||
# google-generativeai
|
||||
# huggingface-hub
|
||||
# llama-index-core
|
||||
# nltk
|
||||
# openai
|
||||
# sentence-transformers
|
||||
# transformers
|
||||
transformers==4.55.0
|
||||
transformers==5.3.0
|
||||
# via sentence-transformers
|
||||
tree-sitter==0.25.1
|
||||
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.9.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.1
|
||||
typer==0.24.1
|
||||
# via
|
||||
# -r requirements/requirements-dev.in
|
||||
# huggingface-hub
|
||||
# transformers
|
||||
typing-extensions==4.15.0
|
||||
# via
|
||||
# aiosignal
|
||||
# aiosqlite
|
||||
# altair
|
||||
# anyio
|
||||
# beautifulsoup4
|
||||
# google-generativeai
|
||||
# fastapi
|
||||
# grpcio
|
||||
# huggingface-hub
|
||||
# llama-index-core
|
||||
# llama-index-workflows
|
||||
@@ -588,40 +592,38 @@ typing-extensions==4.14.1
|
||||
# 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.8.5
|
||||
# fastapi
|
||||
# pydantic
|
||||
tzdata==2025.3
|
||||
# via pandas
|
||||
urllib3==2.6.3
|
||||
# via requests
|
||||
uv==0.10.11
|
||||
# via -r requirements/requirements-dev.in
|
||||
virtualenv==20.33.1
|
||||
virtualenv==21.2.0
|
||||
# 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.2
|
||||
# via
|
||||
# deprecated
|
||||
# llama-index-core
|
||||
yarl==1.20.1
|
||||
yarl==1.23.0
|
||||
# via aiohttp
|
||||
zipp==3.23.0
|
||||
# via importlib-metadata
|
||||
|
||||
2
requirements/pydub.in
Normal file
2
requirements/pydub.in
Normal file
@@ -0,0 +1,2 @@
|
||||
# Remove if Python 3.13+ support lands in pydub upstream.
|
||||
audioop-lts>=0.2.2; python_version >= "3.13"
|
||||
11
requirements/python-compat.in
Normal file
11
requirements/python-compat.in
Normal file
@@ -0,0 +1,11 @@
|
||||
# NumPy 2.x adds Python 3.14 wheels, but dropped Python 3.10.
|
||||
numpy<2; python_version < "3.11"
|
||||
numpy>=2.3,<2.5; python_version >= "3.11"
|
||||
|
||||
# This is the one networkx dependency that we need.
|
||||
# Including it here explicitly because we
|
||||
# didn't specify networkx[default] above.
|
||||
#
|
||||
# SciPy 1.16+ adds Python 3.14 wheels, but dropped Python 3.10.
|
||||
scipy<1.16; python_version < "3.11"
|
||||
scipy>=1.16.1,<1.18; python_version >= "3.11"
|
||||
@@ -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==7.0.5
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# streamlit
|
||||
certifi==2025.8.3
|
||||
certifi==2026.2.25
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# requests
|
||||
charset-normalizer==3.4.2
|
||||
charset-normalizer==3.4.6
|
||||
# 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.45
|
||||
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,46 +46,46 @@ jinja2==3.1.6
|
||||
# -c requirements/common-constraints.txt
|
||||
# altair
|
||||
# pydeck
|
||||
jsonschema==4.25.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==2.0.1
|
||||
narwhals==2.18.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# altair
|
||||
numpy==1.26.4
|
||||
numpy==2.4.3
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# pandas
|
||||
# pydeck
|
||||
# streamlit
|
||||
packaging==25.0
|
||||
packaging==26.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# altair
|
||||
# streamlit
|
||||
pandas==2.3.1
|
||||
pandas==2.3.3
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# streamlit
|
||||
pillow==11.3.0
|
||||
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==21.0.0
|
||||
pyarrow==23.0.1
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# streamlit
|
||||
@@ -97,20 +97,20 @@ python-dateutil==2.9.0.post0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# pandas
|
||||
pytz==2025.2
|
||||
pytz==2026.1.post1
|
||||
# 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.27.0
|
||||
rpds-py==0.30.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# jsonschema
|
||||
@@ -119,15 +119,15 @@ six==1.17.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# python-dateutil
|
||||
smmap==5.0.2
|
||||
smmap==5.0.3
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# gitdb
|
||||
streamlit==1.48.0
|
||||
streamlit==1.55.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.5
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# streamlit
|
||||
typing-extensions==4.14.1
|
||||
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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -1,109 +1,118 @@
|
||||
# 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.3.0
|
||||
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.8.3
|
||||
certifi==2026.2.25
|
||||
# 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.6
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# requests
|
||||
click==8.2.1
|
||||
click==8.3.1
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# pip-tools
|
||||
# typer
|
||||
codespell==2.4.1
|
||||
codespell==2.4.2
|
||||
# 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.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.4.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# virtualenv
|
||||
filelock==3.18.0
|
||||
filelock==3.25.2
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# python-discovery
|
||||
# virtualenv
|
||||
fonttools==4.59.0
|
||||
fonttools==4.62.1
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# matplotlib
|
||||
google-api-core[grpc]==2.25.1
|
||||
google-api-core[grpc]==2.30.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# google-cloud-bigquery
|
||||
# google-cloud-core
|
||||
google-auth==2.40.3
|
||||
google-auth==2.49.1
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# google-api-core
|
||||
# google-cloud-bigquery
|
||||
# google-cloud-core
|
||||
google-cloud-bigquery==3.35.1
|
||||
google-cloud-bigquery==3.40.1
|
||||
# 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.73.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# google-api-core
|
||||
# grpcio-status
|
||||
grpcio==1.74.0
|
||||
grpcio==1.78.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# google-api-core
|
||||
# grpcio-status
|
||||
grpcio-status==1.71.2
|
||||
grpcio-status==1.78.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# google-api-core
|
||||
identify==2.6.12
|
||||
identify==2.6.18
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# pre-commit
|
||||
idna==3.10
|
||||
idna==3.11
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# requests
|
||||
@@ -111,23 +120,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.5.0
|
||||
# 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.5
|
||||
matplotlib==3.10.8
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# -r requirements/requirements-dev.in
|
||||
@@ -135,93 +144,83 @@ 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
|
||||
numpy==1.26.4
|
||||
numpy==2.4.3
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# contourpy
|
||||
# matplotlib
|
||||
# pandas
|
||||
packaging==25.0
|
||||
packaging==26.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# build
|
||||
# google-cloud-bigquery
|
||||
# matplotlib
|
||||
# pytest
|
||||
pandas==2.3.1
|
||||
# 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.3.0
|
||||
pillow==12.1.1
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# matplotlib
|
||||
pip==25.2
|
||||
pip==26.0.1
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# pip-tools
|
||||
pip-tools==7.5.0
|
||||
pip-tools==7.5.3
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# -r requirements/requirements-dev.in
|
||||
platformdirs==4.3.8
|
||||
platformdirs==4.9.4
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# python-discovery
|
||||
# virtualenv
|
||||
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
|
||||
# rsa
|
||||
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 +229,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.6.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# -r requirements/requirements-dev.in
|
||||
@@ -245,32 +249,36 @@ python-dateutil==2.9.0.post0
|
||||
# google-cloud-bigquery
|
||||
# matplotlib
|
||||
# pandas
|
||||
pytz==2025.2
|
||||
python-discovery==1.1.3
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# virtualenv
|
||||
python-dotenv==1.2.2
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# pytest-env
|
||||
pytz==2026.1.post1
|
||||
# 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.1.0
|
||||
rich==14.3.3
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# typer
|
||||
rsa==4.9.1
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# google-auth
|
||||
semver==3.0.4
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# -r requirements/requirements-dev.in
|
||||
setuptools==80.9.0
|
||||
setuptools==82.0.1
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# pip-tools
|
||||
@@ -282,31 +290,31 @@ six==1.17.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# python-dateutil
|
||||
typer==0.16.0
|
||||
typer==0.24.1
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# -r requirements/requirements-dev.in
|
||||
typing-extensions==4.14.1
|
||||
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.8.5
|
||||
uv==0.10.11
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# -r requirements/requirements-dev.in
|
||||
virtualenv==20.33.1
|
||||
virtualenv==21.2.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# pre-commit
|
||||
wheel==0.45.1
|
||||
wheel==0.46.3
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# pip-tools
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
llama-index-embeddings-huggingface
|
||||
|
||||
# Because sentence-transformers doesn't like >=2
|
||||
numpy<2
|
||||
# NumPy 2.x adds Python 3.14 wheels, but dropped Python 3.10.
|
||||
numpy<2; python_version < "3.11"
|
||||
numpy>=2.3,<2.5; python_version >= "3.11"
|
||||
|
||||
# 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.3+ works with NumPy 2 on the supported Python versions.
|
||||
torch>=2.3.0
|
||||
|
||||
# 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"
|
||||
|
||||
@@ -4,58 +4,62 @@ aiohappyeyeballs==2.6.1
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# aiohttp
|
||||
aiohttp==3.12.15
|
||||
aiohttp==3.13.3
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# huggingface-hub
|
||||
# llama-index-core
|
||||
aiosignal==1.4.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# aiohttp
|
||||
aiosqlite==0.21.0
|
||||
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.10.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.2.0
|
||||
banks==2.4.1
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# llama-index-core
|
||||
certifi==2025.8.3
|
||||
certifi==2026.2.25
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# httpcore
|
||||
# httpx
|
||||
# requests
|
||||
charset-normalizer==3.4.2
|
||||
charset-normalizer==3.4.6
|
||||
# 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
|
||||
@@ -65,40 +69,49 @@ dirtyjson==1.0.8
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# llama-index-core
|
||||
filelock==3.18.0
|
||||
filelock==3.25.2
|
||||
# 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.7.0
|
||||
fsspec==2026.2.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# huggingface-hub
|
||||
# llama-index-core
|
||||
# torch
|
||||
greenlet==3.2.3
|
||||
greenlet==3.3.2
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# sqlalchemy
|
||||
griffe==1.10.0
|
||||
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.7
|
||||
hf-xet==1.4.2
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# huggingface-hub
|
||||
@@ -109,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.34.3
|
||||
huggingface-hub[inference]==1.7.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
|
||||
@@ -129,40 +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.13.0
|
||||
llama-index-core==0.14.18
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# llama-index-embeddings-huggingface
|
||||
llama-index-embeddings-huggingface==0.6.0
|
||||
llama-index-embeddings-huggingface==0.7.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# -r requirements/requirements-help.in
|
||||
llama-index-instrumentation==0.4.0
|
||||
llama-index-instrumentation==0.5.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# llama-index-workflows
|
||||
llama-index-workflows==1.3.0
|
||||
llama-index-workflows==2.16.1
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# llama-index-core
|
||||
markupsafe==3.0.2
|
||||
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.6.3
|
||||
multidict==6.7.1
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# aiohttp
|
||||
@@ -180,96 +202,103 @@ networkx==3.4.2
|
||||
# -c requirements/common-constraints.txt
|
||||
# llama-index-core
|
||||
# torch
|
||||
nltk==3.9.1
|
||||
nltk==3.9.3
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# llama-index-core
|
||||
numpy==1.26.4
|
||||
numpy==2.4.3
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# -r requirements/requirements-help.in
|
||||
# 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.3.0
|
||||
pillow==12.1.1
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# llama-index-core
|
||||
# sentence-transformers
|
||||
platformdirs==4.3.8
|
||||
platformdirs==4.9.4
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# banks
|
||||
# llama-index-core
|
||||
propcache==0.3.2
|
||||
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
|
||||
# llama-index-instrumentation
|
||||
# llama-index-workflows
|
||||
pydantic-core==2.33.2
|
||||
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==2025.7.34
|
||||
regex==2026.2.28
|
||||
# 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.6.1
|
||||
rich==14.3.3
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# typer
|
||||
safetensors==0.7.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# transformers
|
||||
scikit-learn==1.7.1
|
||||
scikit-learn==1.8.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# -r requirements/requirements-help.in
|
||||
# sentence-transformers
|
||||
scipy==1.15.3
|
||||
scipy==1.17.1
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# scikit-learn
|
||||
# sentence-transformers
|
||||
sentence-transformers==5.1.0
|
||||
sentence-transformers==5.3.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# llama-index-embeddings-huggingface
|
||||
setuptools==80.9.0
|
||||
setuptools==82.0.1
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# llama-index-core
|
||||
# torch
|
||||
sniffio==1.3.1
|
||||
shellingham==1.5.4
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# anyio
|
||||
sqlalchemy[asyncio]==2.0.42
|
||||
# typer
|
||||
sqlalchemy[asyncio]==2.0.48
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# llama-index-core
|
||||
@@ -277,7 +306,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
|
||||
@@ -285,19 +314,24 @@ threadpoolctl==3.6.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# scikit-learn
|
||||
tiktoken==0.10.0
|
||||
tiktoken==0.12.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# llama-index-core
|
||||
tokenizers==0.21.4
|
||||
tinytag==2.2.1
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# llama-index-core
|
||||
tokenizers==0.22.2
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# transformers
|
||||
torch==2.8.0
|
||||
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
|
||||
@@ -305,15 +339,19 @@ tqdm==4.67.1
|
||||
# nltk
|
||||
# sentence-transformers
|
||||
# transformers
|
||||
transformers==4.55.0
|
||||
transformers==5.3.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# sentence-transformers
|
||||
typing-extensions==4.14.1
|
||||
typer==0.24.1
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# huggingface-hub
|
||||
# transformers
|
||||
typing-extensions==4.15.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# aiosignal
|
||||
# aiosqlite
|
||||
# anyio
|
||||
# huggingface-hub
|
||||
# llama-index-core
|
||||
@@ -330,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.2
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# deprecated
|
||||
# llama-index-core
|
||||
yarl==1.20.1
|
||||
yarl==1.23.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# aiohttp
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
# 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.2
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# playwright
|
||||
playwright==1.54.0
|
||||
playwright==1.58.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# -r requirements/requirements-playwright.in
|
||||
pyee==13.0.0
|
||||
pyee==13.0.1
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# playwright
|
||||
typing-extensions==4.14.1
|
||||
typing-extensions==4.15.0
|
||||
# via
|
||||
# -c requirements/common-constraints.txt
|
||||
# pyee
|
||||
|
||||
@@ -29,7 +29,7 @@ socksio
|
||||
pillow
|
||||
shtab
|
||||
oslex
|
||||
google-generativeai
|
||||
-r python-compat.in
|
||||
|
||||
# The proper dependency is networkx[default], but this brings
|
||||
# in matplotlib and a bunch of other deps
|
||||
@@ -39,14 +39,12 @@ google-generativeai
|
||||
# >3.5 seems to not be available for py3.10
|
||||
networkx<3.5
|
||||
|
||||
# This is the one networkx dependency that we need.
|
||||
# Including it here explicitly because we
|
||||
# didn't specify networkx[default] above.
|
||||
#
|
||||
# 1.16 onwards only supports python3.11+
|
||||
scipy<1.16
|
||||
|
||||
# GitHub Release action failing on "KeyError: 'home-page'"
|
||||
# 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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -25,8 +25,8 @@ uv pip compile \
|
||||
requirements/requirements.in \
|
||||
$1
|
||||
|
||||
grep -v ^tree-sitter= tmp.requirements.txt \
|
||||
| cat - requirements/tree-sitter.in \
|
||||
grep -Ev '^(tree-sitter|numpy|scipy)=' tmp.requirements.txt \
|
||||
| cat - requirements/tree-sitter.in requirements/python-compat.in requirements/pydub.in \
|
||||
> requirements.txt
|
||||
|
||||
# Compile additional requirements files
|
||||
|
||||
@@ -113,7 +113,7 @@ def main():
|
||||
cmd = [
|
||||
"aider",
|
||||
"--model",
|
||||
"o3",
|
||||
"gpt-5.4",
|
||||
hist_path,
|
||||
"--read",
|
||||
log_path,
|
||||
|
||||
@@ -536,7 +536,7 @@ class TestCommands(TestCase):
|
||||
io = InputOutput(pretty=False, fancy_input=False, yes=False)
|
||||
from aider.coders import Coder
|
||||
|
||||
coder = Coder.create(Model("claude-3-5-sonnet-20240620"), None, io)
|
||||
coder = Coder.create(Model("claude-sonnet-4-6"), None, io)
|
||||
print(coder.get_announcements())
|
||||
commands = Commands(io, coder)
|
||||
|
||||
@@ -924,7 +924,7 @@ class TestCommands(TestCase):
|
||||
self.assertEqual(len(coder.abs_read_only_fnames), 0)
|
||||
|
||||
# Test with vision model
|
||||
vision_model = Model("gpt-4-vision-preview")
|
||||
vision_model = Model("gpt-4o")
|
||||
vision_coder = Coder.create(vision_model, None, io)
|
||||
vision_commands = Commands(io, vision_coder)
|
||||
|
||||
|
||||
@@ -42,6 +42,26 @@ def test_get_ex_info():
|
||||
assert ex_info.description is None
|
||||
|
||||
|
||||
def test_permission_denied_error():
|
||||
"""Test specific handling of PermissionDeniedError"""
|
||||
ex = LiteLLMExceptions()
|
||||
import httpx
|
||||
from litellm import PermissionDeniedError
|
||||
|
||||
request = httpx.Request("GET", "https://example.com")
|
||||
response = httpx.Response(403, request=request)
|
||||
perm_error = PermissionDeniedError(
|
||||
message="Permission denied",
|
||||
llm_provider="openai",
|
||||
model="gpt-4",
|
||||
response=response,
|
||||
)
|
||||
ex_info = ex.get_ex_info(perm_error)
|
||||
assert ex_info.retry is False
|
||||
assert "permission was denied" in ex_info.description.lower()
|
||||
assert "api key" in ex_info.description.lower()
|
||||
|
||||
|
||||
def test_rate_limit_error():
|
||||
"""Test specific handling of RateLimitError"""
|
||||
ex = LiteLLMExceptions()
|
||||
|
||||
@@ -43,9 +43,6 @@ class TestModels(unittest.TestCase):
|
||||
model = Model("gpt-4")
|
||||
self.assertEqual(model.info["max_input_tokens"], 8 * 1024)
|
||||
|
||||
model = Model("gpt-4-32k")
|
||||
self.assertEqual(model.info["max_input_tokens"], 32 * 1024)
|
||||
|
||||
model = Model("gpt-4-0613")
|
||||
self.assertEqual(model.info["max_input_tokens"], 8 * 1024)
|
||||
|
||||
@@ -138,13 +135,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-6")
|
||||
|
||||
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-7")
|
||||
|
||||
# Test non-alias passes through unchanged
|
||||
model = Model("gpt-4")
|
||||
@@ -558,6 +555,46 @@ class TestModels(unittest.TestCase):
|
||||
timeout=600,
|
||||
)
|
||||
|
||||
def test_gpt_5_5_model_settings(self):
|
||||
base_models = [
|
||||
"gpt-5.5",
|
||||
"gpt-5.5-chat-latest",
|
||||
"openai/gpt-5.5",
|
||||
"openai/gpt-5.5-chat-latest",
|
||||
"azure/gpt-5.5",
|
||||
"azure/gpt-5.5-chat-latest",
|
||||
"openrouter/openai/gpt-5.5",
|
||||
"openrouter/openai/gpt-5.5-chat-latest",
|
||||
]
|
||||
|
||||
for name in base_models:
|
||||
with self.subTest(name=name):
|
||||
model = Model(name)
|
||||
self.assertEqual(model.edit_format, "diff")
|
||||
self.assertTrue(model.use_repo_map)
|
||||
self.assertFalse(model.use_temperature)
|
||||
self.assertIn("reasoning_effort", model.accepts_settings)
|
||||
|
||||
self.assertTrue(Model("gpt-5.5").overeager)
|
||||
|
||||
pro_models = {
|
||||
"gpt-5.5-pro": "gpt-5.5",
|
||||
"openai/gpt-5.5-pro": "openai/gpt-5.5",
|
||||
"azure/gpt-5.5-pro": "azure/gpt-5.5",
|
||||
"openrouter/openai/gpt-5.5-pro": "openrouter/openai/gpt-5.5",
|
||||
}
|
||||
|
||||
for name, editor_name in pro_models.items():
|
||||
with self.subTest(name=name):
|
||||
model = Model(name)
|
||||
self.assertFalse(model.streaming)
|
||||
self.assertEqual(model.edit_format, "diff")
|
||||
self.assertTrue(model.use_repo_map)
|
||||
self.assertFalse(model.use_temperature)
|
||||
self.assertEqual(model.editor_model_name, editor_name)
|
||||
self.assertEqual(model.editor_model.name, editor_name)
|
||||
self.assertIn("reasoning_effort", model.accepts_settings)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
@@ -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")
|
||||
|
||||
|
||||
15
tests/basic/test_utils.py
Normal file
15
tests/basic/test_utils.py
Normal file
@@ -0,0 +1,15 @@
|
||||
import os
|
||||
|
||||
from aider.utils import safe_abs_path
|
||||
|
||||
|
||||
def test_safe_abs_path_symlink_loop(tmp_path):
|
||||
# Create circular symlink: a -> b -> a
|
||||
link_a = tmp_path / "link_a"
|
||||
link_b = tmp_path / "link_b"
|
||||
link_a.symlink_to(link_b)
|
||||
link_b.symlink_to(link_a)
|
||||
|
||||
# safe_abs_path must not raise, and must return an absolute path
|
||||
result = safe_abs_path(str(link_a))
|
||||
assert os.path.isabs(result)
|
||||
7
tests/fixtures/languages/haskell/test.hs
vendored
Normal file
7
tests/fixtures/languages/haskell/test.hs
vendored
Normal 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
10
tests/fixtures/languages/zig/test.zig
vendored
Normal 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)});
|
||||
}
|
||||
@@ -84,7 +84,7 @@ class TestScrape(unittest.TestCase):
|
||||
def test_scraper_print_error_not_called(self):
|
||||
# Create a Scraper instance with a mock print_error function
|
||||
mock_print_error = MagicMock()
|
||||
scraper = Scraper(print_error=mock_print_error)
|
||||
scraper = Scraper(print_error=mock_print_error, verify_ssl=False)
|
||||
|
||||
# Test various methods of the Scraper class
|
||||
scraper.scrape_with_httpx("https://example.com")
|
||||
|
||||
Reference in New Issue
Block a user