auto-coder 0.1.250__py3-none-any.whl → 0.1.251__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 auto-coder might be problematic. Click here for more details.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: auto-coder
3
- Version: 0.1.250
3
+ Version: 0.1.251
4
4
  Summary: AutoCoder: AutoCoder
5
5
  Author: allwefantasy
6
6
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
@@ -1,17 +1,17 @@
1
1
  autocoder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- autocoder/auto_coder.py,sha256=iysR5Bd2IREUKkGkfcmuoLlqn76L70iNKcG-Y-BQvY0,62918
2
+ autocoder/auto_coder.py,sha256=Rg5NveoL9m1BiWon_62EwtWUolbHqNTzi_ZXvmh89ns,63357
3
3
  autocoder/auto_coder_lang.py,sha256=Rtupq6N3_HT7JRhDKdgCBcwRaiAnyCOR_Gsp4jUomrI,3229
4
4
  autocoder/auto_coder_rag.py,sha256=illKgzP2bv-Tq50ujsofJnOHdI4pzr0ALtfR8NHHWdQ,22351
5
5
  autocoder/auto_coder_rag_client_mcp.py,sha256=WV7j5JUiQge0x4-B7Hp5-pSAFXLbvLpzQMcCovbauIM,6276
6
6
  autocoder/auto_coder_rag_mcp.py,sha256=-RrjNwFaS2e5v8XDIrKR-zlUNUE8UBaeOtojffBrvJo,8521
7
7
  autocoder/auto_coder_server.py,sha256=XU9b4SBH7zjPPXaTWWHV4_zJm-XYa6njuLQaplYJH_c,20290
8
8
  autocoder/benchmark.py,sha256=Ypomkdzd1T3GE6dRICY3Hj547dZ6_inqJbBJIp5QMco,4423
9
- autocoder/chat_auto_coder.py,sha256=H83C0FW5q51-Iq0MBAO-9xbr2tCfbF-LVRZddFhmOhM,104869
9
+ autocoder/chat_auto_coder.py,sha256=Z3CgocPCOTkcqUJ8w0ttw7S9v0K45z9BUWQLH1PM3x0,104877
10
10
  autocoder/chat_auto_coder_lang.py,sha256=ffLIVhOrODHamiy4csir-1TD7q7P9NeuZoZ9VaHeuic,15880
11
11
  autocoder/command_args.py,sha256=9aYJ-AmPxP1sQh6ciw04FWHjSn31f2W9afXFwo8wgx4,30441
12
12
  autocoder/lang.py,sha256=U6AjVV8Rs1uLyjFCZ8sT6WWuNUxMBqkXXIOs4S120uk,14511
13
13
  autocoder/models.py,sha256=_9Kc8oS_tnnqKzRGnybgOfn1NOey7OXZ8y9qhBmgiB4,5517
14
- autocoder/version.py,sha256=wNwxrmLzoMunbZEL7IU7ZAvpehOc0XEYZBzjCnolPhU,23
14
+ autocoder/version.py,sha256=-Gpqn1vE4FhgKFlZinRqJ2gdrAvVcUNbvB5efKuhuyk,23
15
15
  autocoder/agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
16
  autocoder/agent/auto_demand_organizer.py,sha256=NWSAEsEk94vT3lGjfo25kKLMwYdPcpy9e-i21txPasQ,6942
17
17
  autocoder/agent/auto_filegroup.py,sha256=CW7bqp0FW1GIEMnl-blyAc2UGT7O9Mom0q66ITz1ckM,6635
@@ -25,19 +25,19 @@ autocoder/agent/project_reader.py,sha256=tWLaPoLw1gI6kO_NzivQj28KbobU2ceOLuppHMb
25
25
  autocoder/chat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
26
  autocoder/common/JupyterClient.py,sha256=O-wi6pXeAEYhAY24kDa0BINrLYvKS6rKyWe98pDClS0,2816
27
27
  autocoder/common/ShellClient.py,sha256=fM1q8t_XMSbLBl2zkCNC2J9xuyKN3eXzGm6hHhqL2WY,2286
28
- autocoder/common/__init__.py,sha256=xkPcT6OixAN7JLOXcvvXn23Oon0FOmzNXoysxzj6p3k,11890
28
+ autocoder/common/__init__.py,sha256=JSCoAH7NvKuYhHFmiUwFG4OCBXWHlnxMm0Bu-Fy_Ar8,11891
29
29
  autocoder/common/anything2images.py,sha256=0ILBbWzY02M-CiWB-vzuomb_J1hVdxRcenAfIrAXq9M,25283
30
30
  autocoder/common/anything2img.py,sha256=4TREa-sOA-iargieUy7MpyCYVUE-9Mmq0wJtwomPqnE,7662
31
31
  autocoder/common/audio.py,sha256=Kn9nWKQddWnUrAz0a_ZUgjcu4VUU_IcZBigT7n3N3qc,7439
32
- autocoder/common/auto_coder_lang.py,sha256=ljREsdH6VuAeV9cPHPFsQWGxDKIVW8-oFLb8yC4lMQ0,15525
32
+ autocoder/common/auto_coder_lang.py,sha256=i7KN5VxbozvfJR5weCA3uAXwautAgq1YLapUhOWEYmo,16006
33
33
  autocoder/common/buildin_tokenizer.py,sha256=L7d5t39ZFvUd6EoMPXUhYK1toD0FHlRH1jtjKRGokWU,1236
34
34
  autocoder/common/chunk_validation.py,sha256=BrR_ZWavW8IANuueEE7hS8NFAwEvm8TX34WnPx_1hs8,3030
35
35
  autocoder/common/cleaner.py,sha256=NU72i8C6o9m0vXExab7nao5bstBUsfJFcj11cXa9l4U,1089
36
36
  autocoder/common/code_auto_execute.py,sha256=4KXGmiGObr_B1d6tzV9dwS6MifCSc3Gm4j2d6ildBXQ,6867
37
- autocoder/common/code_auto_generate.py,sha256=6rrtdEz8JhlKNutEqlWbgKUlACk90Lcm0UebtuAKEQ0,10320
38
- autocoder/common/code_auto_generate_diff.py,sha256=o5yeqpc3WXSRWlcLzhlwJNosKo7dcj0CeIsFh6Aibus,16248
39
- autocoder/common/code_auto_generate_editblock.py,sha256=QdUHUkGaervvQNCY8T2vQ_tfnQX_2kxxu4qq_QW_Nn8,17828
40
- autocoder/common/code_auto_generate_strict_diff.py,sha256=uteWDEHfIbrnVgwKgqC7qwrIeW0enJCXcHzZGa48yY8,14774
37
+ autocoder/common/code_auto_generate.py,sha256=N_kENWW4eVPKmihpIQ4Q2ivYkugAuCWIPLDCKiarRWg,10818
38
+ autocoder/common/code_auto_generate_diff.py,sha256=QAm-BVJgGl_wbw0VjY2RZigVCwOBO-l1W-90PrYDdOQ,16741
39
+ autocoder/common/code_auto_generate_editblock.py,sha256=FuVH-sP4_Ys2MJk9SkWgHHLAKp51bKSxTwFzd7voilg,18356
40
+ autocoder/common/code_auto_generate_strict_diff.py,sha256=kieVUx2KuR0BGtQHE0Ll7i8e_3Lb4xfFXHIXDttQACE,15274
41
41
  autocoder/common/code_auto_merge.py,sha256=8dtnz61l0B5gNbQmx26TZ4_jD825dsnnWtAFD_zs6es,7335
42
42
  autocoder/common/code_auto_merge_diff.py,sha256=yocfe8s3Pz6hTGDUl9wRIewY3NcTize_gEla64lsGT0,15331
43
43
  autocoder/common/code_auto_merge_editblock.py,sha256=sp7C0fZJMVcNgI8uWy43CKDk7gGXFTkMB9kbP2VdY8k,17485
@@ -56,7 +56,7 @@ autocoder/common/mcp_hub.py,sha256=2ZyJv3Aiv4Y97UHut49oYhIFcu7ICR-mptDEBSgT3uE,1
56
56
  autocoder/common/mcp_server.py,sha256=QCFa-15kx7rbNsinwdGFFX2y47pww0fVdI-ldKFSSWI,12267
57
57
  autocoder/common/mcp_tools.py,sha256=KsLvRrB6pvmebqd-lDaSH6IBJR0AIxWRE-dtCEG_w9k,12485
58
58
  autocoder/common/memory_manager.py,sha256=2ZjYG7BPyvbYalZBF6AM_G5e10Qkw_zrqtD4Zd7GSsQ,3663
59
- autocoder/common/printer.py,sha256=TIqgGOq5YdWqH4_776QHwHmwfVpubZ9zzUq8rstNxuM,1911
59
+ autocoder/common/printer.py,sha256=P1WU0QjlfnjqTP5uA55GkHZCpFzRPFkc34DMMandreg,2023
60
60
  autocoder/common/recall_validation.py,sha256=Avt9Q9dX3kG6Pf2zsdlOHmsjd-OeSj7U1PFBDp_Cve0,1700
61
61
  autocoder/common/screenshots.py,sha256=_gA-z1HxGjPShBrtgkdideq58MG6rqFB2qMUJKjrycs,3769
62
62
  autocoder/common/search.py,sha256=245iPFgWhMldoUK3CqCP89ltaxZiNPK73evoG6Fp1h8,16518
@@ -81,7 +81,7 @@ autocoder/dispacher/actions/plugins/action_translate.py,sha256=nVAtRSQpdGNmZxg1R
81
81
  autocoder/index/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
82
82
  autocoder/index/entry.py,sha256=hXSOi-jPgRBKQB55eqWkT95vxvWrbVHDuIMtDkqjNNw,12232
83
83
  autocoder/index/for_command.py,sha256=BFvljE4t6VaMBGboZAuhUCzVK0EitCy_n5D_7FEnihw,3204
84
- autocoder/index/index.py,sha256=xwh22nY0TtEJMJwYjOUd6xdRZozYXBt47YSwheZSP-4,20679
84
+ autocoder/index/index.py,sha256=YJqMeysyF0FPXABMqS0Q2bQIXkE4VNMtrHcH0YfeYyA,20948
85
85
  autocoder/index/symbols_utils.py,sha256=CjcjUVajmJZB75Ty3a7kMv1BZphrm-tIBAdOJv6uo-0,2037
86
86
  autocoder/index/types.py,sha256=a2s_KV5FJlq7jqA2ELSo9E1sjuLwDB-JJYMhSpzBAhU,596
87
87
  autocoder/index/filter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -142,9 +142,9 @@ autocoder/utils/types.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
142
142
  autocoder/utils/auto_coder_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
143
143
  autocoder/utils/auto_coder_utils/chat_stream_out.py,sha256=5kKOrPy1GWZ6qHjni-YNJJb2x0rD7_3Idl2M9sWxVfU,10481
144
144
  autocoder/utils/chat_auto_coder_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
145
- auto_coder-0.1.250.dist-info/LICENSE,sha256=HrhfyXIkWY2tGFK11kg7vPCqhgh5DcxleloqdhrpyMY,11558
146
- auto_coder-0.1.250.dist-info/METADATA,sha256=ZAZ-ZHjFf6PUo8PYcj62mgVAEO2CXzJBRSA1z-bppc8,2616
147
- auto_coder-0.1.250.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
148
- auto_coder-0.1.250.dist-info/entry_points.txt,sha256=0nzHtHH4pNcM7xq4EBA2toS28Qelrvcbrr59GqD_0Ak,350
149
- auto_coder-0.1.250.dist-info/top_level.txt,sha256=Jqc0_uJSw2GwoFQAa9iJxYns-2mWla-9ok_Y3Gcznjk,10
150
- auto_coder-0.1.250.dist-info/RECORD,,
145
+ auto_coder-0.1.251.dist-info/LICENSE,sha256=HrhfyXIkWY2tGFK11kg7vPCqhgh5DcxleloqdhrpyMY,11558
146
+ auto_coder-0.1.251.dist-info/METADATA,sha256=uvvt_OokvDoJt_FiYaaYtbmirw7mjFZ86bQBW2TGCbs,2616
147
+ auto_coder-0.1.251.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
148
+ auto_coder-0.1.251.dist-info/entry_points.txt,sha256=0nzHtHH4pNcM7xq4EBA2toS28Qelrvcbrr59GqD_0Ak,350
149
+ auto_coder-0.1.251.dist-info/top_level.txt,sha256=Jqc0_uJSw2GwoFQAa9iJxYns-2mWla-9ok_Y3Gcznjk,10
150
+ auto_coder-0.1.251.dist-info/RECORD,,
autocoder/auto_coder.py CHANGED
@@ -45,6 +45,7 @@ from autocoder import models as models_module
45
45
  from autocoder.common.utils_code_auto_generate import stream_chat_with_continue
46
46
  from autocoder.utils.auto_coder_utils.chat_stream_out import stream_out
47
47
  from autocoder.common.printer import Printer
48
+ from autocoder.rag.token_counter import count_tokens
48
49
  console = Console()
49
50
 
50
51
 
@@ -1333,6 +1334,13 @@ def main(input_args: Optional[List[str]] = None):
1333
1334
  reviewer = AutoReviewCommit(llm=chat_llm, args=args)
1334
1335
  v = reviewer.review_commit(query=args.query,conversations=loaded_conversations)
1335
1336
  else:
1337
+ # 预估token数量
1338
+ estimated_input_tokens = count_tokens(json.dumps(loaded_conversations, ensure_ascii=False))
1339
+ printer = Printer()
1340
+ printer.print_in_terminal("estimated_chat_input_tokens", style="yellow",
1341
+ estimated_input_tokens=estimated_input_tokens
1342
+ )
1343
+
1336
1344
  v = stream_chat_with_continue(
1337
1345
  llm=chat_llm,
1338
1346
  conversations=loaded_conversations,
@@ -2796,8 +2796,8 @@ def main():
2796
2796
  command = user_input[len("/shell"):].strip()
2797
2797
  if not command:
2798
2798
  print("Please enter a shell command to execute.")
2799
- else:
2800
- execute_shell_command(command)
2799
+ else:
2800
+ execute_shell_command(command)
2801
2801
 
2802
2802
  except KeyboardInterrupt:
2803
2803
  continue
@@ -357,7 +357,7 @@ class AutoCoderArgs(pydantic.BaseModel):
357
357
  enable_global_memory: Optional[bool] = True
358
358
  product_mode: Optional[str] = "lite"
359
359
 
360
- keep_reasoning_content: Optional[bool] = True
360
+ keep_reasoning_content: Optional[bool] = False
361
361
 
362
362
  in_code_apply: bool = False
363
363
 
@@ -86,7 +86,9 @@ MESSAGES = {
86
86
  "git_init_required": "⚠️ auto_merge only applies to git repositories.\n\nPlease try using git init in the source directory:\n\n```shell\ncd {{ source_dir }}\ngit init.\n```\n\nThen run auto - coder again.\nError: {{ error }}",
87
87
  "quick_filter_reason": "Auto get(quick_filter mode)",
88
88
  "quick_filter_too_long": "⚠️ index file is too large ({{ tokens_len }}/{{ max_tokens }}). The query will be split into {{ split_size }} chunks.",
89
- "quick_filter_tokens_len": "📊 Current index size: {{ tokens_len }} tokens"
89
+ "quick_filter_tokens_len": "📊 Current index size: {{ tokens_len }} tokens",
90
+ "estimated_chat_input_tokens": "Estimated chat input tokens: {{ estimated_input_tokens }}",
91
+ "estimated_input_tokens_in_generate": "Estimated input tokens in generate ({{ generate_mode }}): {{ estimated_input_tokens }}",
90
92
  },
91
93
  "zh": {
92
94
  "model_not_found": "未找到模型: {{model_name}}",
@@ -173,6 +175,8 @@ MESSAGES = {
173
175
  "quick_filter_stats": "Quick filter completed in {{ elapsed_time }} seconds, input tokens: {{ input_tokens }}, output tokens: {{ output_tokens }}",
174
176
  "quick_filter_title": "{{ model_name }} 正在分析如何筛选上下文...",
175
177
  "quick_filter_failed": "❌ 快速过滤器失败: {{ error }}. ",
178
+ "estimated_chat_input_tokens": "对话输入token预估为: {{ estimated_input_tokens }}",
179
+ "estimated_input_tokens_in_generate": "生成代码({{ generate_mode }})预计输入token数: {{ estimated_input_tokens_in_generate }}",
176
180
  },
177
181
  }
178
182
 
@@ -8,6 +8,8 @@ from concurrent.futures import ThreadPoolExecutor
8
8
  from autocoder.common.types import CodeGenerateResult
9
9
  from autocoder.common.utils_code_auto_generate import chat_with_continue
10
10
  import json
11
+ from autocoder.common.printer import Printer
12
+ from autocoder.rag.token_counter import count_tokens
11
13
 
12
14
 
13
15
  class CodeAutoGenerate:
@@ -191,6 +193,14 @@ class CodeAutoGenerate:
191
193
  results = []
192
194
  input_tokens_count = 0
193
195
  generated_tokens_count = 0
196
+
197
+ printer = Printer()
198
+ estimated_input_tokens = count_tokens(json.dumps(conversations, ensure_ascii=False))
199
+ printer.print_in_terminal("estimated_input_tokens_in_generate", style="yellow",
200
+ estimated_input_tokens_in_generate=estimated_input_tokens,
201
+ generate_mode="wholefile"
202
+ )
203
+
194
204
  if not self.args.human_as_model:
195
205
  with ThreadPoolExecutor(max_workers=len(self.llms) * self.generate_times_same_model) as executor:
196
206
  futures = []
@@ -7,6 +7,8 @@ from autocoder.common import sys_prompt
7
7
  from concurrent.futures import ThreadPoolExecutor
8
8
  import json
9
9
  from autocoder.common.utils_code_auto_generate import chat_with_continue
10
+ from autocoder.common.printer import Printer
11
+ from autocoder.rag.token_counter import count_tokens
10
12
 
11
13
 
12
14
  class CodeAutoGenerateDiff:
@@ -339,6 +341,14 @@ class CodeAutoGenerateDiff:
339
341
  results = []
340
342
  input_tokens_count = 0
341
343
  generated_tokens_count = 0
344
+
345
+ printer = Printer()
346
+ estimated_input_tokens = count_tokens(json.dumps(conversations, ensure_ascii=False))
347
+ printer.print_in_terminal("estimated_input_tokens_in_generate", style="yellow",
348
+ estimated_input_tokens_in_generate=estimated_input_tokens,
349
+ generate_mode="diff"
350
+ )
351
+
342
352
  if not self.args.human_as_model:
343
353
  with ThreadPoolExecutor(max_workers=len(self.llms) * self.generate_times_same_model) as executor:
344
354
  futures = []
@@ -11,6 +11,8 @@ from autocoder.utils.queue_communicate import (
11
11
  import json
12
12
  from concurrent.futures import ThreadPoolExecutor
13
13
  from autocoder.common.utils_code_auto_generate import chat_with_continue
14
+ from autocoder.common.printer import Printer
15
+ from autocoder.rag.token_counter import count_tokens
14
16
 
15
17
 
16
18
  class CodeAutoGenerateEditBlock:
@@ -421,35 +423,47 @@ class CodeAutoGenerateEditBlock:
421
423
  results = []
422
424
  input_tokens_count = 0
423
425
  generated_tokens_count = 0
426
+
427
+ printer = Printer()
428
+ estimated_input_tokens = count_tokens(
429
+ json.dumps(conversations, ensure_ascii=False))
430
+ printer.print_in_terminal("estimated_input_tokens_in_generate",
431
+ style="yellow",
432
+ estimated_input_tokens_in_generate=estimated_input_tokens,
433
+ generate_mode="editblock"
434
+ )
435
+
424
436
  if not self.args.human_as_model:
425
437
  with ThreadPoolExecutor(max_workers=len(self.llms) * self.generate_times_same_model) as executor:
426
438
  futures = []
427
439
  for llm in self.llms:
428
440
  for _ in range(self.generate_times_same_model):
429
441
  futures.append(executor.submit(
430
- chat_with_continue,llm=llm, conversations=conversations, llm_config=llm_config))
442
+ chat_with_continue, llm=llm, conversations=conversations, llm_config=llm_config))
431
443
  temp_results = [future.result() for future in futures]
432
444
  for result in temp_results:
433
445
  results.append(result.content)
434
446
  input_tokens_count += result.input_tokens_count
435
447
  generated_tokens_count += result.generated_tokens_count
436
-
448
+
437
449
  for result in results:
438
450
  conversations_list.append(
439
451
  conversations + [{"role": "assistant", "content": result}])
440
- else:
452
+ else:
441
453
  for _ in range(self.args.human_model_num):
442
- single_result = chat_with_continue(llm=self.llms[0], conversations=conversations, llm_config=llm_config)
454
+ single_result = chat_with_continue(
455
+ llm=self.llms[0], conversations=conversations, llm_config=llm_config)
443
456
  results.append(single_result.content)
444
457
  input_tokens_count += single_result.input_tokens_count
445
458
  generated_tokens_count += single_result.generated_tokens_count
446
- conversations_list.append(conversations + [{"role": "assistant", "content": single_result.content}])
447
-
459
+ conversations_list.append(
460
+ conversations + [{"role": "assistant", "content": single_result.content}])
461
+
448
462
  statistics = {
449
463
  "input_tokens_count": input_tokens_count,
450
464
  "generated_tokens_count": generated_tokens_count
451
- }
452
-
465
+ }
466
+
453
467
  if self.args.request_id and not self.args.skip_events:
454
468
  _ = queue_communicate.send_event(
455
469
  request_id=self.args.request_id,
@@ -7,6 +7,8 @@ from autocoder.common import sys_prompt
7
7
  from concurrent.futures import ThreadPoolExecutor
8
8
  import json
9
9
  from autocoder.common.utils_code_auto_generate import chat_with_continue
10
+ from autocoder.common.printer import Printer
11
+ from autocoder.rag.token_counter import count_tokens
10
12
 
11
13
  class CodeAutoGenerateStrictDiff:
12
14
  def __init__(
@@ -309,6 +311,14 @@ class CodeAutoGenerateStrictDiff:
309
311
  results = []
310
312
  input_tokens_count = 0
311
313
  generated_tokens_count = 0
314
+
315
+ printer = Printer()
316
+ estimated_input_tokens = count_tokens(json.dumps(conversations, ensure_ascii=False))
317
+ printer.print_in_terminal("estimated_input_tokens_in_generate", style="yellow",
318
+ estimated_input_tokens_in_generate=estimated_input_tokens,
319
+ generate_mode="strict_diff"
320
+ )
321
+
312
322
  if not self.args.human_as_model:
313
323
  with ThreadPoolExecutor(max_workers=len(self.llms) * self.generate_times_same_model) as executor:
314
324
  futures = []
@@ -32,7 +32,10 @@ class Printer:
32
32
  else:
33
33
  self.console.print(format_str_jinja2(self.get_message_from_key(msg_key),**kwargs))
34
34
  except Exception as e:
35
- print(self.get_message_from_key(msg_key))
35
+ try:
36
+ print(self.get_message_from_key(msg_key))
37
+ except Exception as e:
38
+ print(f"text key: {msg_key} not found")
36
39
 
37
40
 
38
41
  def print_str_in_terminal(self, content: str, style: str = None):
autocoder/index/index.py CHANGED
@@ -341,7 +341,11 @@ class IndexManager:
341
341
  module_name = result["module_name"]
342
342
  index_data[module_name] = result
343
343
  updated_sources.append(module_name)
344
-
344
+ if len(updated_sources) > 5:
345
+ with open(self.index_file, "w") as file:
346
+ json.dump(index_data, file, ensure_ascii=False, indent=2)
347
+ updated_sources = []
348
+
345
349
  # 如果 updated_sources 或 keys_to_remove 有值,则保存索引文件
346
350
  if updated_sources or keys_to_remove:
347
351
  with open(self.index_file, "w") as file:
autocoder/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.1.250"
1
+ __version__ = "0.1.251"