aider-ce 0.88.4__py3-none-any.whl → 0.88.5__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 CHANGED
@@ -1,6 +1,6 @@
1
1
  from packaging import version
2
2
 
3
- __version__ = "0.88.4.dev"
3
+ __version__ = "0.88.5.dev"
4
4
  safe_version = __version__
5
5
 
6
6
  try:
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.4'
32
- __version_tuple__ = version_tuple = (0, 88, 4)
31
+ __version__ = version = '0.88.5'
32
+ __version_tuple__ = version_tuple = (0, 88, 5)
33
33
 
34
34
  __commit_id__ = commit_id = None
aider/args.py CHANGED
@@ -315,7 +315,12 @@ def get_parser(default_config_files, git_root):
315
315
  " (default: current directory)"
316
316
  ),
317
317
  )
318
-
318
+ group.add_argument(
319
+ "--map-memory-cache",
320
+ action="store_true",
321
+ help="Store repo map in memory (default: False)",
322
+ default=False,
323
+ )
319
324
  ##########
320
325
  group = parser.add_argument_group("History Files")
321
326
  default_input_history_file = (
@@ -745,7 +750,14 @@ def get_parser(default_config_files, git_root):
745
750
  help="Print the system prompts and exit (debug)",
746
751
  default=False,
747
752
  )
748
-
753
+ group.add_argument(
754
+ "--linear-output",
755
+ action="store_true",
756
+ help=(
757
+ "Run input and output sequentially instead of us simultaneous streams (default: False)"
758
+ ),
759
+ default=False,
760
+ )
749
761
  ##########
750
762
  group = parser.add_argument_group("Voice settings")
751
763
  group.add_argument(
@@ -381,6 +381,7 @@ class Coder:
381
381
  map_cache_dir=".",
382
382
  repomap_in_memory=False,
383
383
  preserve_todo_list=False,
384
+ linear_output=False,
384
385
  ):
385
386
  # initialize from args.map_cache_dir
386
387
  self.map_cache_dir = map_cache_dir
@@ -469,6 +470,7 @@ class Coder:
469
470
 
470
471
  self.dry_run = dry_run
471
472
  self.pretty = self.io.pretty
473
+ self.linear_output = linear_output
472
474
 
473
475
  self.main_model = main_model
474
476
 
@@ -1058,12 +1060,67 @@ class Coder:
1058
1060
  while self.io.confirmation_in_progress:
1059
1061
  await asyncio.sleep(0.1) # Yield control and wait briefly
1060
1062
 
1063
+ if self.linear_output:
1064
+ return await self._run_linear(with_message, preproc)
1065
+
1061
1066
  if self.io.prompt_session:
1062
1067
  with patch_stdout(raw=True):
1063
1068
  return await self._run_patched(with_message, preproc)
1064
1069
  else:
1065
1070
  return await self._run_patched(with_message, preproc)
1066
1071
 
1072
+ async def _run_linear(self, with_message=None, preproc=True):
1073
+ try:
1074
+ if with_message:
1075
+ self.io.user_input(with_message)
1076
+ await self.run_one(with_message, preproc)
1077
+ return self.partial_response_content
1078
+
1079
+ user_message = None
1080
+ await self.io.cancel_input_task()
1081
+ await self.io.cancel_processing_task()
1082
+
1083
+ while True:
1084
+ try:
1085
+ if self.commands.cmd_running:
1086
+ await asyncio.sleep(0.1)
1087
+ continue
1088
+
1089
+ if not self.suppress_announcements_for_next_prompt:
1090
+ self.show_announcements()
1091
+ self.suppress_announcements_for_next_prompt = True
1092
+
1093
+ self.io.input_task = asyncio.create_task(self.get_input())
1094
+ await asyncio.sleep(0)
1095
+ await self.io.input_task
1096
+ user_message = self.io.input_task.result()
1097
+
1098
+ self.io.processing_task = asyncio.create_task(
1099
+ self._processing_logic(user_message, preproc)
1100
+ )
1101
+
1102
+ await self.io.processing_task
1103
+
1104
+ self.io.ring_bell()
1105
+ user_message = None
1106
+ except KeyboardInterrupt:
1107
+ if self.io.input_task:
1108
+ self.io.set_placeholder("")
1109
+ await self.io.cancel_input_task()
1110
+
1111
+ if self.io.processing_task:
1112
+ await self.io.cancel_processing_task()
1113
+ self.io.stop_spinner()
1114
+
1115
+ self.keyboard_interrupt()
1116
+ except (asyncio.CancelledError, IndexError):
1117
+ pass
1118
+ except EOFError:
1119
+ return
1120
+ finally:
1121
+ await self.io.cancel_input_task()
1122
+ await self.io.cancel_processing_task()
1123
+
1067
1124
  async def _run_patched(self, with_message=None, preproc=True):
1068
1125
  try:
1069
1126
  if with_message:
@@ -1077,6 +1134,10 @@ class Coder:
1077
1134
 
1078
1135
  while True:
1079
1136
  try:
1137
+ if self.commands.cmd_running:
1138
+ await asyncio.sleep(0.1)
1139
+ continue
1140
+
1080
1141
  if (
1081
1142
  not self.io.confirmation_in_progress
1082
1143
  and not user_message
@@ -1134,6 +1195,10 @@ class Coder:
1134
1195
  try:
1135
1196
  user_message = self.io.input_task.result()
1136
1197
  await self.io.cancel_input_task()
1198
+
1199
+ if self.commands.is_run_command(user_message):
1200
+ self.commands.cmd_running = True
1201
+
1137
1202
  except (asyncio.CancelledError, KeyboardInterrupt):
1138
1203
  user_message = None
1139
1204
 
@@ -1170,7 +1235,6 @@ class Coder:
1170
1235
  user_message = None
1171
1236
 
1172
1237
  except (asyncio.CancelledError, KeyboardInterrupt):
1173
- print("error of some sort")
1174
1238
  pass
1175
1239
 
1176
1240
  # Stop spinner when processing task completes
@@ -1180,6 +1244,7 @@ class Coder:
1180
1244
  self.io.processing_task = asyncio.create_task(
1181
1245
  self._processing_logic(user_message, preproc)
1182
1246
  )
1247
+
1183
1248
  # Start spinner for processing task
1184
1249
  self.io.start_spinner("Processing...")
1185
1250
 
@@ -1243,6 +1308,12 @@ class Coder:
1243
1308
  return
1244
1309
 
1245
1310
  if self.commands.is_command(inp):
1311
+ if inp[0] in "!":
1312
+ inp = f"/run {inp[1:]}"
1313
+
1314
+ if self.commands.is_run_command(inp):
1315
+ self.commands.cmd_running = True
1316
+
1246
1317
  return await self.commands.run(inp)
1247
1318
 
1248
1319
  await self.check_for_file_mentions(inp)
@@ -1254,8 +1325,6 @@ class Coder:
1254
1325
  self.init_before_message()
1255
1326
 
1256
1327
  if preproc:
1257
- if user_message[0] in "!":
1258
- user_message = f"/run {user_message[1:]}"
1259
1328
  message = await self.preproc_user_input(user_message)
1260
1329
  else:
1261
1330
  message = user_message
aider/commands.py CHANGED
@@ -84,6 +84,7 @@ class Commands:
84
84
 
85
85
  # Store the original read-only filenames provided via args.read
86
86
  self.original_read_only_fnames = set(original_read_only_fnames or [])
87
+ self.cmd_running = False
87
88
 
88
89
  def cmd_model(self, args):
89
90
  "Switch the Main Model to a new LLM"
@@ -256,6 +257,9 @@ class Commands:
256
257
  def is_command(self, inp):
257
258
  return inp[0] in "/!"
258
259
 
260
+ def is_run_command(self, inp):
261
+ return inp and (inp[0] in "!" or inp[:5] == "/test" or inp[:4] == "/run")
262
+
259
263
  def get_raw_completions(self, cmd):
260
264
  assert cmd.startswith("/")
261
265
  cmd = cmd[1:]
@@ -1151,51 +1155,61 @@ class Commands:
1151
1155
 
1152
1156
  async def cmd_run(self, args, add_on_nonzero_exit=False):
1153
1157
  "Run a shell command and optionally add the output to the chat (alias: !)"
1154
- exit_status, combined_output = await asyncio.to_thread(
1155
- run_cmd,
1156
- args,
1157
- verbose=self.verbose,
1158
- error_print=self.io.tool_error,
1159
- cwd=self.coder.root,
1160
- )
1158
+ try:
1159
+ self.cmd_running = True
1160
+ exit_status, combined_output = await asyncio.to_thread(
1161
+ run_cmd,
1162
+ args,
1163
+ verbose=self.verbose,
1164
+ error_print=self.io.tool_error,
1165
+ cwd=self.coder.root,
1166
+ )
1167
+ self.cmd_running = False
1161
1168
 
1162
- if combined_output is None:
1163
- return
1169
+ # This print statement, for whatever reason,
1170
+ # allows the thread to properly yield control of the terminal
1171
+ # to the main program
1172
+ print("")
1164
1173
 
1165
- # Calculate token count of output
1166
- token_count = self.coder.main_model.token_count(combined_output)
1167
- k_tokens = token_count / 1000
1174
+ if combined_output is None:
1175
+ return
1168
1176
 
1169
- if add_on_nonzero_exit:
1170
- add = exit_status != 0
1171
- else:
1172
- add = await self.io.confirm_ask(
1173
- f"Add {k_tokens:.1f}k tokens of command output to the chat?"
1174
- )
1177
+ # Calculate token count of output
1178
+ token_count = self.coder.main_model.token_count(combined_output)
1179
+ k_tokens = token_count / 1000
1175
1180
 
1176
- if add:
1177
- num_lines = len(combined_output.strip().splitlines())
1178
- line_plural = "line" if num_lines == 1 else "lines"
1179
- self.io.tool_output(f"Added {num_lines} {line_plural} of output to the chat.")
1181
+ if add_on_nonzero_exit:
1182
+ add = exit_status != 0
1183
+ else:
1184
+ add = await self.io.confirm_ask(
1185
+ f"Add {k_tokens:.1f}k tokens of command output to the chat?"
1186
+ )
1180
1187
 
1181
- msg = prompts.run_output.format(
1182
- command=args,
1183
- output=combined_output,
1184
- )
1188
+ if add:
1189
+ num_lines = len(combined_output.strip().splitlines())
1190
+ line_plural = "line" if num_lines == 1 else "lines"
1191
+ self.io.tool_output(f"Added {num_lines} {line_plural} of output to the chat.")
1185
1192
 
1186
- self.coder.cur_messages += [
1187
- dict(role="user", content=msg),
1188
- dict(role="assistant", content="Ok."),
1189
- ]
1193
+ msg = prompts.run_output.format(
1194
+ command=args,
1195
+ output=combined_output,
1196
+ )
1197
+
1198
+ self.coder.cur_messages += [
1199
+ dict(role="user", content=msg),
1200
+ dict(role="assistant", content="Ok."),
1201
+ ]
1190
1202
 
1191
- if add_on_nonzero_exit and exit_status != 0:
1192
- # Return the formatted output message for test failures
1193
- return msg
1194
- elif add and exit_status != 0:
1195
- self.io.placeholder = "What's wrong? Fix"
1203
+ if add_on_nonzero_exit and exit_status != 0:
1204
+ # Return the formatted output message for test failures
1205
+ return msg
1206
+ elif add and exit_status != 0:
1207
+ self.io.placeholder = "What's wrong? Fix"
1196
1208
 
1197
- # Return None if output wasn't added or command succeeded
1198
- return None
1209
+ # Return None if output wasn't added or command succeeded
1210
+ return None
1211
+ finally:
1212
+ self.cmd_running = False
1199
1213
 
1200
1214
  def cmd_exit(self, args):
1201
1215
  "Exit the application"
aider/io.py CHANGED
@@ -462,7 +462,6 @@ class InputOutput:
462
462
 
463
463
  self.file_watcher = file_watcher
464
464
  self.root = root
465
- self.outstanding_confirmations = []
466
465
 
467
466
  # Variables used to interface with base_coder
468
467
  self.coder = None
@@ -474,7 +473,6 @@ class InputOutput:
474
473
  # State tracking for confirmation input
475
474
  self.confirmation_input_active = False
476
475
  self.saved_input_text = ""
477
- self.confirmation_future = None
478
476
 
479
477
  # Validate color settings after console is initialized
480
478
  self._validate_color_settings()
@@ -686,10 +684,8 @@ class InputOutput:
686
684
 
687
685
  def reject_outstanding_confirmations(self):
688
686
  """Reject all outstanding confirmation dialogs."""
689
- for future in self.outstanding_confirmations:
690
- if not future.done():
691
- future.set_result(False)
692
- self.outstanding_confirmations = []
687
+ # This method is now a no-op since we removed the confirmation_future logic
688
+ pass
693
689
 
694
690
  async def get_input(
695
691
  self,
@@ -701,7 +697,6 @@ class InputOutput:
701
697
  abs_read_only_stubs_fnames=None,
702
698
  edit_format=None,
703
699
  ):
704
- self.reject_outstanding_confirmations()
705
700
  self.rule()
706
701
 
707
702
  rel_fnames = list(rel_fnames)
@@ -946,7 +941,7 @@ class InputOutput:
946
941
  try:
947
942
  input_task.cancel()
948
943
  await input_task
949
- except asyncio.CancelledError:
944
+ except (asyncio.CancelledError, IndexError):
950
945
  pass
951
946
 
952
947
  async def cancel_processing_task(self):
@@ -956,7 +951,7 @@ class InputOutput:
956
951
  try:
957
952
  processing_task.cancel()
958
953
  await processing_task
959
- except asyncio.CancelledError:
954
+ except (asyncio.CancelledError, IndexError):
960
955
  pass
961
956
 
962
957
  def add_to_input_history(self, inp):
@@ -1070,14 +1065,9 @@ class InputOutput:
1070
1065
 
1071
1066
  question_id = (question, subject)
1072
1067
 
1073
- confirmation_future = asyncio.get_running_loop().create_future()
1074
- self.outstanding_confirmations.append(confirmation_future)
1075
-
1076
1068
  try:
1077
1069
  if question_id in self.never_prompts:
1078
- if not confirmation_future.done():
1079
- confirmation_future.set_result(False)
1080
- return await confirmation_future
1070
+ return False
1081
1071
 
1082
1072
  if group and not group.show_group:
1083
1073
  group = None
@@ -1160,9 +1150,7 @@ class InputOutput:
1160
1150
  res = default
1161
1151
  break
1162
1152
  except asyncio.CancelledError:
1163
- if not confirmation_future.done():
1164
- confirmation_future.set_result(False)
1165
- raise
1153
+ return False
1166
1154
 
1167
1155
  if not res:
1168
1156
  res = default
@@ -1181,9 +1169,7 @@ class InputOutput:
1181
1169
  self.never_prompts.add(question_id)
1182
1170
  hist = f"{question.strip()} {res}"
1183
1171
  self.append_chat_history(hist, linebreak=True, blockquote=True)
1184
- if not confirmation_future.done():
1185
- confirmation_future.set_result(False)
1186
- return await confirmation_future
1172
+ return False
1187
1173
 
1188
1174
  if explicit_yes_required:
1189
1175
  is_yes = res == "y"
@@ -1201,19 +1187,11 @@ class InputOutput:
1201
1187
 
1202
1188
  hist = f"{question.strip()} {res}"
1203
1189
  self.append_chat_history(hist, linebreak=True, blockquote=True)
1204
-
1205
- if not confirmation_future.done():
1206
- confirmation_future.set_result(is_yes)
1207
-
1208
1190
  except asyncio.CancelledError:
1209
- if not confirmation_future.done():
1210
- confirmation_future.set_result(False)
1211
- raise
1191
+ return False
1212
1192
  finally:
1213
- if confirmation_future in self.outstanding_confirmations:
1214
- self.outstanding_confirmations.remove(confirmation_future)
1215
-
1216
- return await confirmation_future
1193
+ pass
1194
+ return is_yes
1217
1195
 
1218
1196
  @restore_multiline
1219
1197
  def prompt_ask(self, question, default="", subject=None):
aider/main.py CHANGED
@@ -1057,6 +1057,9 @@ async def main_async(argv=None, input=None, output=None, force_git_root=None, re
1057
1057
  context_compaction_max_tokens=args.context_compaction_max_tokens,
1058
1058
  context_compaction_summary_tokens=args.context_compaction_summary_tokens,
1059
1059
  map_cache_dir=args.map_cache_dir,
1060
+ repomap_in_memory=args.map_memory_cache,
1061
+ preserve_todo_list=args.preserve_todo_list,
1062
+ linear_output=args.linear_output,
1060
1063
  )
1061
1064
  except UnknownEditFormat as err:
1062
1065
  io.tool_error(str(err))
@@ -0,0 +1,3 @@
1
+ (function (variable) @name.definition.function)
2
+ (bind (variable) @name.definition.function)
3
+ (signature (variable) @name.definition.type)
@@ -0,0 +1,3 @@
1
+ (FnProto) @name.definition.function
2
+ (VarDecl "const" @name.definition.constant)
3
+ (VarDecl "var" @name.definition.variable)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aider-ce
3
- Version: 0.88.4
3
+ Version: 0.88.5
4
4
  Summary: Aider is AI pair programming in your terminal
5
5
  Project-URL: Homepage, https://github.com/dwash96/aider-ce
6
6
  Classifier: Development Status :: 4 - Beta
@@ -1,11 +1,11 @@
1
- aider/__init__.py,sha256=Gt5Oveq-MHT_HEMx5-sLQoQaHGVMIX7buzoDjI8ifqA,496
1
+ aider/__init__.py,sha256=1DZ03r447CFeqM5FT2f7BbovXi_RlzOLcnP79PsACpU,496
2
2
  aider/__main__.py,sha256=Vdhw8YA1K3wPMlbJQYL5WqvRzAKVeZ16mZQFO9VRmCo,62
3
- aider/_version.py,sha256=IQ-Q4S4Mold8rZdN7zBkEdwsR_c0ns8JopeeDGBPsmA,706
3
+ aider/_version.py,sha256=zZmH68H1r9949DHpJ12DEFhFY-78SXQLc-K3CKqklcc,706
4
4
  aider/analytics.py,sha256=c5ujaCcMc3yG-9rz_0oSsqBwmVQRxJnui6iE_yDyY_M,7507
5
- aider/args.py,sha256=lC64t3gp-SJ1Sv51LDHpTAsiU2ZwiFWerYf3iu9mtWY,32742
5
+ aider/args.py,sha256=r9xdhB44K4LF2ru-cbOdaoHYzvG6CyViwcw9QRewEKw,33145
6
6
  aider/args_formatter.py,sha256=CBRnzHyZk-fFCK0ekAzb6C4PPJOU-VTpWIIsJe3qUhk,6369
7
7
  aider/change_tracker.py,sha256=djUlUuewhwRAlC0x6jIUZNpn6_PK1YyiNTMYvlvDeTE,4884
8
- aider/commands.py,sha256=TFQPjSy7y_BgU2WUB5cTQM2eCHFbd2UO86KGyNhLUVI,80529
8
+ aider/commands.py,sha256=dbS-pqao-TSg35P9BDPiY5fRhLGwY5ZJyyIE-dAqlQw,81156
9
9
  aider/copypaste.py,sha256=J99QrXILUED_GPdEqxt7WjGZ5if8sfy0VQTzsV2jBrE,2095
10
10
  aider/deprecated.py,sha256=SNeAWR7ih87F5AyFpC4pxRoJAaw8measBW583w0EUT8,4277
11
11
  aider/diffs.py,sha256=y6_rxIKe3FPCIsVy_RRkHdofguYOhYBr2Oytr5AqjHI,3028
@@ -17,10 +17,10 @@ aider/gui.py,sha256=JnHvli1JTCGHAgsOZ8HkAWOKAFxmngbyviZIJeYvjsw,17573
17
17
  aider/help.py,sha256=wExA1E9vuJccKBH1VvKmH-zJqFi-vhNc0n3CD3Y-8fI,4432
18
18
  aider/help_pats.py,sha256=syn7pSVJdcf8uMKTxnZUZBQu-r8JMAi-rrC-k2er1Fk,376
19
19
  aider/history.py,sha256=083Gm7KxNo1PXMFHYiChigxCbRzmLkfNlesODdCC-eY,6067
20
- aider/io.py,sha256=jEhZdRs7pbOszyiJpCAUYbUjSH9Bp21H-YkgdraUrjw,57586
20
+ aider/io.py,sha256=6CKaWP5zWngaMjzS2lpy_pT84a_mGWgDcyFsazHKlTU,56543
21
21
  aider/linter.py,sha256=t5jwWZ1dvIzRtig1kTSjzl6u1LRfw0e19qwNIen2jAg,7998
22
22
  aider/llm.py,sha256=dtT0mavXP1SyR0Zu_ysZXKdbs3y53q2PevvDKBUrs6s,1505
23
- aider/main.py,sha256=I_zPPpX19TWMwngQowlIeiv8O9UwFqdCiQOiFhZ2tBo,46365
23
+ aider/main.py,sha256=3IE18moiAP2nXs-NY_PJKk8PXS_pdzMvbefoNfT9CnQ,46520
24
24
  aider/mdstream.py,sha256=fS9iQUQmIJPEMo7o1psPGE2yYj31MI3m3msdN-jEzUw,7594
25
25
  aider/models.py,sha256=yflYZ64oza4QH04vIPI2n7rcsdSw2Np4BRwRKlb3STQ,45455
26
26
  aider/onboarding.py,sha256=pMWl--NOH_hb4w1wVxLmv8W0akcrilo1Pxf9XUSqBXs,16135
@@ -46,7 +46,7 @@ aider/coders/architect_coder.py,sha256=O5KIf__Ka0bgtCUhYWUmAb08aCS6Nq-CdVWWa-VNK
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=gFEeUmxwv5r9wrl9kwRyIxJIxefx4hCs3SedZVnyEms,130301
49
+ aider/coders/base_coder.py,sha256=5R6AGbofXg1PeW-TF3pD0o5vWl1-Tn9lND2GhQlRRvI,132707
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
@@ -125,6 +125,7 @@ aider/queries/tree-sitter-languages/elixir-tags.scm,sha256=eO20nPIwI7_vq4Fob6U5R
125
125
  aider/queries/tree-sitter-languages/elm-tags.scm,sha256=4qTEWJCAd7_BOfwyky0q_NYzAMtGdiq7qwo1GIhXmag,951
126
126
  aider/queries/tree-sitter-languages/fortran-tags.scm,sha256=BD6M5CVhMpINlLR7U9bL6STRwGLYBrMmvmldOHe1-9U,419
127
127
  aider/queries/tree-sitter-languages/go-tags.scm,sha256=mHtS5NEuxWJGfVz1rq4YlJRMYVDAl5tf7iYnm6RikVE,848
128
+ aider/queries/tree-sitter-languages/haskell-tags.scm,sha256=mopkZ2Py3_Vl3xvpmaryzUVwYWAzl6GaYgmMb9qKD3Q,143
128
129
  aider/queries/tree-sitter-languages/hcl-tags.scm,sha256=yOVCBeF4C3ZrFG-gg0adWg2QkxylPcI2dbVeEgD7EPE,2137
129
130
  aider/queries/tree-sitter-languages/java-tags.scm,sha256=7WKb-djGv0Ief6XEWQPYpfLpgJHtMPPukIUi55PegvE,627
130
131
  aider/queries/tree-sitter-languages/javascript-tags.scm,sha256=svVct6pxbcYP_-xEBwzGy6t1SlN7ajkEUCivUkBZn_Q,2251
@@ -140,6 +141,7 @@ aider/queries/tree-sitter-languages/ruby-tags.scm,sha256=vIidsCeE2A0vdFN18yXKqUW
140
141
  aider/queries/tree-sitter-languages/rust-tags.scm,sha256=9ljM1nzhfPs_ZTRw7cr2P9ToOyhGcKkCoN4_HPXSWi4,1451
141
142
  aider/queries/tree-sitter-languages/scala-tags.scm,sha256=UxQjz80JIrrJ7Pm56uUnQyThfmQNvwk7aQzPNypB-Ao,1761
142
143
  aider/queries/tree-sitter-languages/typescript-tags.scm,sha256=OMdCeedPiA24ky82DpgTMKXK_l2ySTuF2zrQ2fJAi9E,1253
144
+ aider/queries/tree-sitter-languages/zig-tags.scm,sha256=BPgov_nD_LqpL37sbdwsMYbFmHwjBOuRm76geKo29ds,124
143
145
  aider/resources/__init__.py,sha256=09npmZFptj6XR6ZeEuekpcK2stecKEjI59zR0Vz2JU8,142
144
146
  aider/resources/model-metadata.json,sha256=fFBW3iBFAZlhEPXyM-5_8qYEEOCx6tFqMu2Yh-5oBLI,28667
145
147
  aider/resources/model-settings.yml,sha256=bqpgKJRNZUcSlXyuZgTKFybf61kW5NRuoIVyOMZztwc,58325
@@ -261,9 +263,9 @@ aider/website/docs/usage/tutorials.md,sha256=ZKBztbUtucHOiv9h8gvWiWTP6MTSsFyz4mA
261
263
  aider/website/docs/usage/voice.md,sha256=BtX7pHRgHRWUmrNbS4JssC-SO8RrJ_OetBCtIYpO0pU,3452
262
264
  aider/website/docs/usage/watch.md,sha256=OVF14lGtv1vhSXRE8PpxQ3YW-uXSifarUbmLBjmLRyA,7940
263
265
  aider/website/share/index.md,sha256=P51aDw9AT8AVbsU7v6g1tWuMjly7y_plM_ZI1ScaT8Y,3172
264
- aider_ce-0.88.4.dist-info/licenses/LICENSE.txt,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
265
- aider_ce-0.88.4.dist-info/METADATA,sha256=9NpL2hUk3EJMmZYIsg6JtqX80IqogsWzDTQTX-zo7zE,20820
266
- aider_ce-0.88.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
267
- aider_ce-0.88.4.dist-info/entry_points.txt,sha256=qUBEUd84DYNEHFSgZbgsjgsrAABxqwOj-Dwut9pHZx0,45
268
- aider_ce-0.88.4.dist-info/top_level.txt,sha256=uwOA6ycgSiRLrBsaRBcIeN_eBKAX78U01_KDEHR8mBk,6
269
- aider_ce-0.88.4.dist-info/RECORD,,
266
+ aider_ce-0.88.5.dist-info/licenses/LICENSE.txt,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
267
+ aider_ce-0.88.5.dist-info/METADATA,sha256=uCUDJn4PseoYw1J-KczE4HLbg3JfANIPcjiKYkH48Zg,20820
268
+ aider_ce-0.88.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
269
+ aider_ce-0.88.5.dist-info/entry_points.txt,sha256=qUBEUd84DYNEHFSgZbgsjgsrAABxqwOj-Dwut9pHZx0,45
270
+ aider_ce-0.88.5.dist-info/top_level.txt,sha256=uwOA6ycgSiRLrBsaRBcIeN_eBKAX78U01_KDEHR8mBk,6
271
+ aider_ce-0.88.5.dist-info/RECORD,,