aider-ce 0.88.0__py3-none-any.whl → 0.88.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of aider-ce might be problematic. Click here for more details.
- aider/__init__.py +1 -1
- aider/_version.py +2 -2
- aider/coders/base_coder.py +6 -6
- aider/exceptions.py +1 -0
- aider/main.py +10 -10
- aider/onboarding.py +1 -1
- {aider_ce-0.88.0.dist-info → aider_ce-0.88.1.dist-info}/METADATA +1 -1
- {aider_ce-0.88.0.dist-info → aider_ce-0.88.1.dist-info}/RECORD +12 -12
- {aider_ce-0.88.0.dist-info → aider_ce-0.88.1.dist-info}/WHEEL +0 -0
- {aider_ce-0.88.0.dist-info → aider_ce-0.88.1.dist-info}/entry_points.txt +0 -0
- {aider_ce-0.88.0.dist-info → aider_ce-0.88.1.dist-info}/licenses/LICENSE.txt +0 -0
- {aider_ce-0.88.0.dist-info → aider_ce-0.88.1.dist-info}/top_level.txt +0 -0
aider/__init__.py
CHANGED
aider/_version.py
CHANGED
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '0.88.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 88,
|
|
31
|
+
__version__ = version = '0.88.1'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 88, 1)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
aider/coders/base_coder.py
CHANGED
|
@@ -1248,7 +1248,7 @@ class Coder:
|
|
|
1248
1248
|
else:
|
|
1249
1249
|
message = self.reflected_message
|
|
1250
1250
|
|
|
1251
|
-
def check_and_open_urls(self, exc, friendly_msg=None):
|
|
1251
|
+
async def check_and_open_urls(self, exc, friendly_msg=None):
|
|
1252
1252
|
"""Check exception for URLs, offer to open in a browser, with user-friendly error msgs."""
|
|
1253
1253
|
text = str(exc)
|
|
1254
1254
|
|
|
@@ -1264,7 +1264,7 @@ class Coder:
|
|
|
1264
1264
|
urls = list(set(url_pattern.findall(text)))
|
|
1265
1265
|
for url in urls:
|
|
1266
1266
|
url = url.rstrip(".',\"}") # Added } to the characters to strip
|
|
1267
|
-
self.io.offer_url(url)
|
|
1267
|
+
await self.io.offer_url(url)
|
|
1268
1268
|
return urls
|
|
1269
1269
|
|
|
1270
1270
|
async def check_for_urls(self, inp: str) -> List[str]:
|
|
@@ -1841,7 +1841,7 @@ class Coder:
|
|
|
1841
1841
|
|
|
1842
1842
|
if not should_retry:
|
|
1843
1843
|
self.mdstream = None
|
|
1844
|
-
self.check_and_open_urls(err, ex_info.description)
|
|
1844
|
+
await self.check_and_open_urls(err, ex_info.description)
|
|
1845
1845
|
break
|
|
1846
1846
|
|
|
1847
1847
|
err_msg = str(err)
|
|
@@ -1906,7 +1906,7 @@ class Coder:
|
|
|
1906
1906
|
),
|
|
1907
1907
|
]
|
|
1908
1908
|
|
|
1909
|
-
self.show_exhausted_error()
|
|
1909
|
+
await self.show_exhausted_error()
|
|
1910
1910
|
self.num_exhausted_context_windows += 1
|
|
1911
1911
|
return
|
|
1912
1912
|
|
|
@@ -2402,7 +2402,7 @@ class Coder:
|
|
|
2402
2402
|
async def reply_completed(self):
|
|
2403
2403
|
pass
|
|
2404
2404
|
|
|
2405
|
-
def show_exhausted_error(self):
|
|
2405
|
+
async def show_exhausted_error(self):
|
|
2406
2406
|
output_tokens = 0
|
|
2407
2407
|
if self.partial_response_content:
|
|
2408
2408
|
output_tokens = self.main_model.token_count(self.partial_response_content)
|
|
@@ -2453,7 +2453,7 @@ class Coder:
|
|
|
2453
2453
|
|
|
2454
2454
|
res = "".join([line + "\n" for line in res])
|
|
2455
2455
|
self.io.tool_error(res)
|
|
2456
|
-
self.io.offer_url(urls.token_limits)
|
|
2456
|
+
await self.io.offer_url(urls.token_limits)
|
|
2457
2457
|
|
|
2458
2458
|
def lint_edited(self, fnames):
|
|
2459
2459
|
res = ""
|
aider/exceptions.py
CHANGED
|
@@ -28,6 +28,7 @@ EXCEPTIONS = [
|
|
|
28
28
|
"The API provider has refused the request due to a safety policy about the content.",
|
|
29
29
|
),
|
|
30
30
|
ExInfo("ContextWindowExceededError", False, None), # special case handled in base_coder
|
|
31
|
+
ExInfo("ErrorEventError", True, None),
|
|
31
32
|
ExInfo("ImageFetchError", True, "The API cannot fetch an image"),
|
|
32
33
|
ExInfo("InternalServerError", True, "The API provider's servers are down or overloaded."),
|
|
33
34
|
ExInfo("InvalidRequestError", True, None),
|
aider/main.py
CHANGED
|
@@ -412,7 +412,7 @@ def register_litellm_models(git_root, model_metadata_fname, io, verbose=False):
|
|
|
412
412
|
return 1
|
|
413
413
|
|
|
414
414
|
|
|
415
|
-
def sanity_check_repo(repo, io):
|
|
415
|
+
async def sanity_check_repo(repo, io):
|
|
416
416
|
if not repo:
|
|
417
417
|
return True
|
|
418
418
|
|
|
@@ -443,7 +443,7 @@ def sanity_check_repo(repo, io):
|
|
|
443
443
|
io.tool_error("Aider only works with git repos with version number 1 or 2.")
|
|
444
444
|
io.tool_output("You may be able to convert your repo: git update-index --index-version=2")
|
|
445
445
|
io.tool_output("Or run aider --no-git to proceed without using git.")
|
|
446
|
-
io.offer_url(urls.git_index_version, "Open documentation url for more info?")
|
|
446
|
+
await io.offer_url(urls.git_index_version, "Open documentation url for more info?")
|
|
447
447
|
return False
|
|
448
448
|
|
|
449
449
|
io.tool_error("Unable to read git repository, it may be corrupt?")
|
|
@@ -783,7 +783,7 @@ async def main_async(argv=None, input=None, output=None, force_git_root=None, re
|
|
|
783
783
|
io.tool_output(cmd_line, log_only=True)
|
|
784
784
|
|
|
785
785
|
is_first_run = is_first_run_of_new_version(io, verbose=args.verbose)
|
|
786
|
-
check_and_load_imports(io, is_first_run, verbose=args.verbose)
|
|
786
|
+
await check_and_load_imports(io, is_first_run, verbose=args.verbose)
|
|
787
787
|
|
|
788
788
|
register_models(git_root, args.model_settings_file, io, verbose=args.verbose)
|
|
789
789
|
register_litellm_models(git_root, args.model_metadata_file, io, verbose=args.verbose)
|
|
@@ -844,7 +844,7 @@ async def main_async(argv=None, input=None, output=None, force_git_root=None, re
|
|
|
844
844
|
io.tool_error(
|
|
845
845
|
f"Unable to proceed without an OpenRouter API key for model '{args.model}'."
|
|
846
846
|
)
|
|
847
|
-
io.offer_url(urls.models_and_keys, "Open documentation URL for more info?")
|
|
847
|
+
await io.offer_url(urls.models_and_keys, "Open documentation URL for more info?")
|
|
848
848
|
analytics.event(
|
|
849
849
|
"exit",
|
|
850
850
|
reason="OpenRouter key missing for specified model and OAuth failed/declined",
|
|
@@ -926,7 +926,7 @@ async def main_async(argv=None, input=None, output=None, force_git_root=None, re
|
|
|
926
926
|
io.tool_output("You can skip this check with --no-show-model-warnings")
|
|
927
927
|
|
|
928
928
|
try:
|
|
929
|
-
io.offer_url(urls.model_warnings, "Open documentation url for more info?")
|
|
929
|
+
await io.offer_url(urls.model_warnings, "Open documentation url for more info?")
|
|
930
930
|
io.tool_output()
|
|
931
931
|
except KeyboardInterrupt:
|
|
932
932
|
analytics.event("exit", reason="Keyboard interrupt during model warnings")
|
|
@@ -954,7 +954,7 @@ async def main_async(argv=None, input=None, output=None, force_git_root=None, re
|
|
|
954
954
|
pass
|
|
955
955
|
|
|
956
956
|
if not args.skip_sanity_check_repo:
|
|
957
|
-
if not sanity_check_repo(repo, io):
|
|
957
|
+
if not await sanity_check_repo(repo, io):
|
|
958
958
|
analytics.event("exit", reason="Repository sanity check failed")
|
|
959
959
|
return 1
|
|
960
960
|
|
|
@@ -1059,7 +1059,7 @@ async def main_async(argv=None, input=None, output=None, force_git_root=None, re
|
|
|
1059
1059
|
)
|
|
1060
1060
|
except UnknownEditFormat as err:
|
|
1061
1061
|
io.tool_error(str(err))
|
|
1062
|
-
io.offer_url(urls.edit_formats, "Open documentation about edit formats?")
|
|
1062
|
+
await io.offer_url(urls.edit_formats, "Open documentation about edit formats?")
|
|
1063
1063
|
analytics.event("exit", reason="Unknown edit format")
|
|
1064
1064
|
return 1
|
|
1065
1065
|
except ValueError as err:
|
|
@@ -1152,7 +1152,7 @@ async def main_async(argv=None, input=None, output=None, force_git_root=None, re
|
|
|
1152
1152
|
webbrowser.open(urls.release_notes)
|
|
1153
1153
|
elif args.show_release_notes is None and is_first_run:
|
|
1154
1154
|
io.tool_output()
|
|
1155
|
-
io.offer_url(
|
|
1155
|
+
await io.offer_url(
|
|
1156
1156
|
urls.release_notes,
|
|
1157
1157
|
"Would you like to see what's new in this version?",
|
|
1158
1158
|
allow_never=False,
|
|
@@ -1276,7 +1276,7 @@ def is_first_run_of_new_version(io, verbose=False):
|
|
|
1276
1276
|
return True # Safer to assume it's a first run if we hit an error
|
|
1277
1277
|
|
|
1278
1278
|
|
|
1279
|
-
def check_and_load_imports(io, is_first_run, verbose=False):
|
|
1279
|
+
async def check_and_load_imports(io, is_first_run, verbose=False):
|
|
1280
1280
|
try:
|
|
1281
1281
|
if is_first_run:
|
|
1282
1282
|
if verbose:
|
|
@@ -1288,7 +1288,7 @@ def check_and_load_imports(io, is_first_run, verbose=False):
|
|
|
1288
1288
|
except Exception as err:
|
|
1289
1289
|
io.tool_error(str(err))
|
|
1290
1290
|
io.tool_output("Error loading required imports. Did you install aider properly?")
|
|
1291
|
-
io.offer_url(urls.install_properly, "Open documentation url for more info?")
|
|
1291
|
+
await io.offer_url(urls.install_properly, "Open documentation url for more info?")
|
|
1292
1292
|
sys.exit(1)
|
|
1293
1293
|
|
|
1294
1294
|
if verbose:
|
aider/onboarding.py
CHANGED
|
@@ -146,7 +146,7 @@ async def select_default_model(args, io, analytics):
|
|
|
146
146
|
if model:
|
|
147
147
|
return model
|
|
148
148
|
|
|
149
|
-
io.offer_url(urls.models_and_keys, "Open documentation URL for more info?")
|
|
149
|
+
await io.offer_url(urls.models_and_keys, "Open documentation URL for more info?")
|
|
150
150
|
|
|
151
151
|
|
|
152
152
|
# Helper function to find an available port
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
aider/__init__.py,sha256=
|
|
1
|
+
aider/__init__.py,sha256=uLgefX9T20Pa_79q2BxTxhGYgUgMd0bxHBr1BMDVUvM,496
|
|
2
2
|
aider/__main__.py,sha256=Vdhw8YA1K3wPMlbJQYL5WqvRzAKVeZ16mZQFO9VRmCo,62
|
|
3
|
-
aider/_version.py,sha256=
|
|
3
|
+
aider/_version.py,sha256=RTS3LOu5_z44owvzPaBz4n8oN6zJiBEfSJVG7R6sc08,706
|
|
4
4
|
aider/analytics.py,sha256=c5ujaCcMc3yG-9rz_0oSsqBwmVQRxJnui6iE_yDyY_M,7507
|
|
5
5
|
aider/args.py,sha256=lC64t3gp-SJ1Sv51LDHpTAsiU2ZwiFWerYf3iu9mtWY,32742
|
|
6
6
|
aider/args_formatter.py,sha256=CBRnzHyZk-fFCK0ekAzb6C4PPJOU-VTpWIIsJe3qUhk,6369
|
|
@@ -11,7 +11,7 @@ aider/deprecated.py,sha256=SNeAWR7ih87F5AyFpC4pxRoJAaw8measBW583w0EUT8,4277
|
|
|
11
11
|
aider/diffs.py,sha256=y6_rxIKe3FPCIsVy_RRkHdofguYOhYBr2Oytr5AqjHI,3028
|
|
12
12
|
aider/dump.py,sha256=-naWnGTc0-lAe_93WxBTpunPRfzNlUK7Q5zgXOprHfA,653
|
|
13
13
|
aider/editor.py,sha256=_WAipJYEOx-q69mPp_hHAQ2yfeoZklBYjS0rTLxCHEA,4364
|
|
14
|
-
aider/exceptions.py,sha256=
|
|
14
|
+
aider/exceptions.py,sha256=RfGohVQ5Z6dw_hxqRukabsEtSaZOd_uFxiFT_arpvKc,3957
|
|
15
15
|
aider/format_settings.py,sha256=wHW4bLTKwqUKDGX4onxirC4cNgeJ-lHPuS1H04_R444,1041
|
|
16
16
|
aider/gui.py,sha256=JnHvli1JTCGHAgsOZ8HkAWOKAFxmngbyviZIJeYvjsw,17573
|
|
17
17
|
aider/help.py,sha256=wExA1E9vuJccKBH1VvKmH-zJqFi-vhNc0n3CD3Y-8fI,4432
|
|
@@ -20,10 +20,10 @@ aider/history.py,sha256=083Gm7KxNo1PXMFHYiChigxCbRzmLkfNlesODdCC-eY,6067
|
|
|
20
20
|
aider/io.py,sha256=ZvkXA_GKQMK1MeCiduyRCw7OES4lbYrRTAv2ZtshhPM,56858
|
|
21
21
|
aider/linter.py,sha256=t5jwWZ1dvIzRtig1kTSjzl6u1LRfw0e19qwNIen2jAg,7998
|
|
22
22
|
aider/llm.py,sha256=dtT0mavXP1SyR0Zu_ysZXKdbs3y53q2PevvDKBUrs6s,1505
|
|
23
|
-
aider/main.py,sha256=
|
|
23
|
+
aider/main.py,sha256=2Pk5nJhUf-aoa2cbs6VPQA0lfneRYgw-dCbkFO8r8WY,46331
|
|
24
24
|
aider/mdstream.py,sha256=fS9iQUQmIJPEMo7o1psPGE2yYj31MI3m3msdN-jEzUw,7594
|
|
25
25
|
aider/models.py,sha256=yflYZ64oza4QH04vIPI2n7rcsdSw2Np4BRwRKlb3STQ,45455
|
|
26
|
-
aider/onboarding.py,sha256
|
|
26
|
+
aider/onboarding.py,sha256=pMWl--NOH_hb4w1wVxLmv8W0akcrilo1Pxf9XUSqBXs,16135
|
|
27
27
|
aider/openrouter.py,sha256=FAdv7L8xgILXgmC_b1gnuYJStmpaPyiZMp-7nSdInlQ,4642
|
|
28
28
|
aider/prompts.py,sha256=Qv-JS8BzGjusEPmR3-qmjjvN3S9mb7W4KpWiGui-Jk0,1954
|
|
29
29
|
aider/reasoning_tags.py,sha256=VOg5wM7JSrMo47OyS1FFuLrr2cp2KyutEC4_zsUsCbY,2288
|
|
@@ -46,7 +46,7 @@ aider/coders/architect_coder.py,sha256=725D5ze2nWCEQeUrYpQjYTwnLPVITpSSvRi-243HY
|
|
|
46
46
|
aider/coders/architect_prompts.py,sha256=R0_KxZjo-km_yNaeDAquDP9qfp3IdWgrdMirCWe0RIE,1658
|
|
47
47
|
aider/coders/ask_coder.py,sha256=Omk4Ih8-prefkMZ_jnRS3faoW5CQUakHOvZ-s7piM3U,210
|
|
48
48
|
aider/coders/ask_prompts.py,sha256=W6HwDUfzfOLt9q8sl6rw7fN7b5ND90FkxCZrtrWl5vY,1171
|
|
49
|
-
aider/coders/base_coder.py,sha256=
|
|
49
|
+
aider/coders/base_coder.py,sha256=QvHRbROeeibccCTv_SXLvLKL4mU9wItTFCYm6cyqZMM,128069
|
|
50
50
|
aider/coders/base_prompts.py,sha256=O3bBjhf0hgvtKbQ9QyOMnRy8LrmfLyT9dVAcXxHS_3k,3659
|
|
51
51
|
aider/coders/chat_chunks.py,sha256=8HPet6cmQdgWvaA_tGpinO4ASMst53uTcSEtNVTYDXE,1981
|
|
52
52
|
aider/coders/context_coder.py,sha256=_RSzu6ptHo2lkTN7-e9TpcZKzqbQF2eNX5MkyswGm3s,1577
|
|
@@ -261,9 +261,9 @@ aider/website/docs/usage/tutorials.md,sha256=ZKBztbUtucHOiv9h8gvWiWTP6MTSsFyz4mA
|
|
|
261
261
|
aider/website/docs/usage/voice.md,sha256=BtX7pHRgHRWUmrNbS4JssC-SO8RrJ_OetBCtIYpO0pU,3452
|
|
262
262
|
aider/website/docs/usage/watch.md,sha256=OVF14lGtv1vhSXRE8PpxQ3YW-uXSifarUbmLBjmLRyA,7940
|
|
263
263
|
aider/website/share/index.md,sha256=P51aDw9AT8AVbsU7v6g1tWuMjly7y_plM_ZI1ScaT8Y,3172
|
|
264
|
-
aider_ce-0.88.
|
|
265
|
-
aider_ce-0.88.
|
|
266
|
-
aider_ce-0.88.
|
|
267
|
-
aider_ce-0.88.
|
|
268
|
-
aider_ce-0.88.
|
|
269
|
-
aider_ce-0.88.
|
|
264
|
+
aider_ce-0.88.1.dist-info/licenses/LICENSE.txt,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
|
265
|
+
aider_ce-0.88.1.dist-info/METADATA,sha256=3Bl3Ayxcg5RkIKkU8bU0IBq6K6xwk2e3UXkzJVU5Lq0,20820
|
|
266
|
+
aider_ce-0.88.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
267
|
+
aider_ce-0.88.1.dist-info/entry_points.txt,sha256=OxI0JxfyJrc24nTmsdvpaWUx8Flz2huOij_-ifp-48w,69
|
|
268
|
+
aider_ce-0.88.1.dist-info/top_level.txt,sha256=uwOA6ycgSiRLrBsaRBcIeN_eBKAX78U01_KDEHR8mBk,6
|
|
269
|
+
aider_ce-0.88.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|