auto-coder 0.1.237__tar.gz → 0.1.238__tar.gz

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.

Files changed (158) hide show
  1. {auto_coder-0.1.237 → auto_coder-0.1.238}/PKG-INFO +2 -2
  2. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/auto_coder.egg-info/PKG-INFO +2 -2
  3. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/auto_coder.egg-info/requires.txt +1 -1
  4. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/chat_auto_coder.py +13 -4
  5. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/auto_coder_lang.py +4 -0
  6. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/index/index.py +20 -14
  7. auto_coder-0.1.238/src/autocoder/version.py +1 -0
  8. auto_coder-0.1.237/src/autocoder/version.py +0 -1
  9. {auto_coder-0.1.237 → auto_coder-0.1.238}/LICENSE +0 -0
  10. {auto_coder-0.1.237 → auto_coder-0.1.238}/README.md +0 -0
  11. {auto_coder-0.1.237 → auto_coder-0.1.238}/setup.cfg +0 -0
  12. {auto_coder-0.1.237 → auto_coder-0.1.238}/setup.py +0 -0
  13. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/auto_coder.egg-info/SOURCES.txt +0 -0
  14. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/auto_coder.egg-info/dependency_links.txt +0 -0
  15. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/auto_coder.egg-info/entry_points.txt +0 -0
  16. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/auto_coder.egg-info/top_level.txt +0 -0
  17. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/__init__.py +0 -0
  18. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/agent/__init__.py +0 -0
  19. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/agent/auto_demand_organizer.py +0 -0
  20. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/agent/auto_filegroup.py +0 -0
  21. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/agent/auto_guess_query.py +0 -0
  22. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/agent/auto_tool.py +0 -0
  23. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/agent/coder.py +0 -0
  24. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/agent/designer.py +0 -0
  25. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/agent/planner.py +0 -0
  26. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/agent/project_reader.py +0 -0
  27. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/auto_coder.py +0 -0
  28. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/auto_coder_rag.py +0 -0
  29. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/auto_coder_rag_client_mcp.py +0 -0
  30. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/auto_coder_rag_mcp.py +0 -0
  31. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/auto_coder_server.py +0 -0
  32. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/benchmark.py +0 -0
  33. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/chat/__init__.py +0 -0
  34. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/chat_auto_coder_lang.py +0 -0
  35. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/command_args.py +0 -0
  36. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/JupyterClient.py +0 -0
  37. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/ShellClient.py +0 -0
  38. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/__init__.py +0 -0
  39. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/anything2images.py +0 -0
  40. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/anything2img.py +0 -0
  41. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/audio.py +0 -0
  42. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/buildin_tokenizer.py +0 -0
  43. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/chunk_validation.py +0 -0
  44. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/cleaner.py +0 -0
  45. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/code_auto_execute.py +0 -0
  46. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/code_auto_generate.py +0 -0
  47. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/code_auto_generate_diff.py +0 -0
  48. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/code_auto_generate_editblock.py +0 -0
  49. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/code_auto_generate_strict_diff.py +0 -0
  50. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/code_auto_merge.py +0 -0
  51. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/code_auto_merge_diff.py +0 -0
  52. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/code_auto_merge_editblock.py +0 -0
  53. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/code_auto_merge_strict_diff.py +0 -0
  54. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/code_modification_ranker.py +0 -0
  55. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/command_completer.py +0 -0
  56. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/command_generator.py +0 -0
  57. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/command_templates.py +0 -0
  58. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/const.py +0 -0
  59. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/files.py +0 -0
  60. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/git_utils.py +0 -0
  61. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/image_to_page.py +0 -0
  62. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/interpreter.py +0 -0
  63. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/llm_rerank.py +0 -0
  64. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/mcp_hub.py +0 -0
  65. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/mcp_server.py +0 -0
  66. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/mcp_servers/__init__.py +0 -0
  67. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/mcp_servers/mcp_server_perplexity.py +0 -0
  68. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/mcp_tools.py +0 -0
  69. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/memory_manager.py +0 -0
  70. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/printer.py +0 -0
  71. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/recall_validation.py +0 -0
  72. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/screenshots.py +0 -0
  73. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/search.py +0 -0
  74. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/search_replace.py +0 -0
  75. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/sys_prompt.py +0 -0
  76. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/text.py +0 -0
  77. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/types.py +0 -0
  78. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/common/utils_code_auto_generate.py +0 -0
  79. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/data/tokenizer.json +0 -0
  80. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/db/__init__.py +0 -0
  81. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/db/store.py +0 -0
  82. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/dispacher/__init__.py +0 -0
  83. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/dispacher/actions/__init__.py +0 -0
  84. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/dispacher/actions/action.py +0 -0
  85. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/dispacher/actions/copilot.py +0 -0
  86. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/dispacher/actions/plugins/__init__.py +0 -0
  87. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/dispacher/actions/plugins/action_regex_project.py +0 -0
  88. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/dispacher/actions/plugins/action_translate.py +0 -0
  89. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/index/__init__.py +0 -0
  90. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/index/entry.py +0 -0
  91. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/index/filter/__init__.py +0 -0
  92. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/index/filter/normal_filter.py +0 -0
  93. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/index/filter/quick_filter.py +0 -0
  94. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/index/for_command.py +0 -0
  95. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/index/symbols_utils.py +0 -0
  96. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/index/types.py +0 -0
  97. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/lang.py +0 -0
  98. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/models.py +0 -0
  99. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/pyproject/__init__.py +0 -0
  100. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/__init__.py +0 -0
  101. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/api_server.py +0 -0
  102. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/cache/__init__.py +0 -0
  103. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/cache/base_cache.py +0 -0
  104. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/cache/byzer_storage_cache.py +0 -0
  105. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/cache/file_monitor_cache.py +0 -0
  106. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/cache/simple_cache.py +0 -0
  107. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/doc_filter.py +0 -0
  108. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/document_retriever.py +0 -0
  109. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/llm_wrapper.py +0 -0
  110. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/loaders/__init__.py +0 -0
  111. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/loaders/docx_loader.py +0 -0
  112. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/loaders/excel_loader.py +0 -0
  113. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/loaders/pdf_loader.py +0 -0
  114. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/loaders/ppt_loader.py +0 -0
  115. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/long_context_rag.py +0 -0
  116. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/rag_config.py +0 -0
  117. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/rag_entry.py +0 -0
  118. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/raw_rag.py +0 -0
  119. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/relevant_utils.py +0 -0
  120. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/simple_directory_reader.py +0 -0
  121. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/simple_rag.py +0 -0
  122. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/stream_event/__init__.py +0 -0
  123. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/stream_event/event_writer.py +0 -0
  124. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/stream_event/types.py +0 -0
  125. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/token_checker.py +0 -0
  126. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/token_counter.py +0 -0
  127. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/token_limiter.py +0 -0
  128. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/types.py +0 -0
  129. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/utils.py +0 -0
  130. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/rag/variable_holder.py +0 -0
  131. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/regexproject/__init__.py +0 -0
  132. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/suffixproject/__init__.py +0 -0
  133. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/tsproject/__init__.py +0 -0
  134. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/utils/__init__.py +0 -0
  135. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/utils/_markitdown.py +0 -0
  136. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/utils/auto_coder_utils/__init__.py +0 -0
  137. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/utils/auto_coder_utils/chat_stream_out.py +0 -0
  138. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/utils/chat_auto_coder_utils/__init__.py +0 -0
  139. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/utils/conversation_store.py +0 -0
  140. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/utils/llm_client_interceptors.py +0 -0
  141. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/utils/llms.py +0 -0
  142. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/utils/log_capture.py +0 -0
  143. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/utils/multi_turn.py +0 -0
  144. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/utils/operate_config_api.py +0 -0
  145. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/utils/print_table.py +0 -0
  146. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/utils/queue_communicate.py +0 -0
  147. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/utils/request_event_queue.py +0 -0
  148. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/utils/request_queue.py +0 -0
  149. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/utils/rest.py +0 -0
  150. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/utils/tests.py +0 -0
  151. {auto_coder-0.1.237 → auto_coder-0.1.238}/src/autocoder/utils/types.py +0 -0
  152. {auto_coder-0.1.237 → auto_coder-0.1.238}/tests/test_action_regex_project.py +0 -0
  153. {auto_coder-0.1.237 → auto_coder-0.1.238}/tests/test_chat_auto_coder.py +0 -0
  154. {auto_coder-0.1.237 → auto_coder-0.1.238}/tests/test_code_auto_merge_editblock.py +0 -0
  155. {auto_coder-0.1.237 → auto_coder-0.1.238}/tests/test_command_completer.py +0 -0
  156. {auto_coder-0.1.237 → auto_coder-0.1.238}/tests/test_planner.py +0 -0
  157. {auto_coder-0.1.237 → auto_coder-0.1.238}/tests/test_queue_communicate.py +0 -0
  158. {auto_coder-0.1.237 → auto_coder-0.1.238}/tests/test_symbols_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: auto-coder
3
- Version: 0.1.237
3
+ Version: 0.1.238
4
4
  Summary: AutoCoder: AutoCoder
5
5
  Author: allwefantasy
6
6
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
@@ -26,7 +26,7 @@ Requires-Dist: tabulate
26
26
  Requires-Dist: jupyter_client
27
27
  Requires-Dist: prompt-toolkit
28
28
  Requires-Dist: tokenizers
29
- Requires-Dist: byzerllm[saas]>=0.1.153
29
+ Requires-Dist: byzerllm[saas]>=0.1.154
30
30
  Requires-Dist: patch
31
31
  Requires-Dist: diff_match_patch
32
32
  Requires-Dist: GitPython
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: auto-coder
3
- Version: 0.1.237
3
+ Version: 0.1.238
4
4
  Summary: AutoCoder: AutoCoder
5
5
  Author: allwefantasy
6
6
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
@@ -26,7 +26,7 @@ Requires-Dist: tabulate
26
26
  Requires-Dist: jupyter_client
27
27
  Requires-Dist: prompt-toolkit
28
28
  Requires-Dist: tokenizers
29
- Requires-Dist: byzerllm[saas]>=0.1.153
29
+ Requires-Dist: byzerllm[saas]>=0.1.154
30
30
  Requires-Dist: patch
31
31
  Requires-Dist: diff_match_patch
32
32
  Requires-Dist: GitPython
@@ -16,7 +16,7 @@ tabulate
16
16
  jupyter_client
17
17
  prompt-toolkit
18
18
  tokenizers
19
- byzerllm[saas]>=0.1.153
19
+ byzerllm[saas]>=0.1.154
20
20
  patch
21
21
  diff_match_patch
22
22
  GitPython
@@ -54,6 +54,7 @@ import shlex
54
54
  from autocoder.utils.llms import get_single_llm
55
55
  import pkg_resources
56
56
  from autocoder.common.printer import Printer
57
+ from byzerllm.utils.langutil import run_in_thread,run_in_thread_with_cancel
57
58
 
58
59
  class SymbolItem(BaseModel):
59
60
  symbol_name: str
@@ -1306,7 +1307,7 @@ def remove_files(file_names: List[str]):
1306
1307
  completer.update_current_files(memory["current_files"]["files"])
1307
1308
  save_memory()
1308
1309
 
1309
-
1310
+ @run_in_thread()
1310
1311
  def ask(query: str):
1311
1312
  conf = memory.get("conf", {})
1312
1313
  yaml_config = {
@@ -1356,7 +1357,6 @@ def get_llm_friendly_package_docs(
1356
1357
  docs = []
1357
1358
 
1358
1359
  if not os.path.exists(llm_friendly_packages_dir):
1359
- print("llm_friendly_packages directory not found.")
1360
1360
  return docs
1361
1361
 
1362
1362
  libs = list(memory.get("libs", {}).keys())
@@ -1407,7 +1407,7 @@ def convert_yaml_to_config(yaml_file: str):
1407
1407
  setattr(args, key, value)
1408
1408
  return args
1409
1409
 
1410
-
1410
+ @run_in_thread()
1411
1411
  def mcp(query: str):
1412
1412
  query = query.strip()
1413
1413
  mcp_server = get_mcp_server()
@@ -1533,6 +1533,7 @@ def mcp(query: str):
1533
1533
  )
1534
1534
 
1535
1535
 
1536
+ @run_in_thread()
1536
1537
  def code_next(query: str):
1537
1538
  conf = memory.get("conf", {})
1538
1539
  yaml_config = {
@@ -1612,6 +1613,7 @@ def code_next(query: str):
1612
1613
  )
1613
1614
 
1614
1615
 
1616
+ @run_in_thread()
1615
1617
  def commit(query: str):
1616
1618
  conf = memory.get("conf", {})
1617
1619
  product_mode = conf.get("product_mode", "lite")
@@ -1693,6 +1695,7 @@ def commit(query: str):
1693
1695
  os.remove(execute_file)
1694
1696
 
1695
1697
 
1698
+ @run_in_thread()
1696
1699
  def coding(query: str):
1697
1700
  console = Console()
1698
1701
  is_apply = query.strip().startswith("/apply")
@@ -1842,6 +1845,7 @@ def code_review(query: str) -> str:
1842
1845
  """
1843
1846
 
1844
1847
 
1848
+ @run_in_thread()
1845
1849
  def chat(query: str):
1846
1850
  conf = memory.get("conf", {})
1847
1851
 
@@ -1929,6 +1933,7 @@ def chat(query: str):
1929
1933
  os.remove(execute_file)
1930
1934
 
1931
1935
 
1936
+ @run_in_thread()
1932
1937
  def summon(query: str):
1933
1938
  conf = memory.get("conf", {})
1934
1939
  current_files = memory["current_files"]["files"]
@@ -1985,6 +1990,7 @@ def summon(query: str):
1985
1990
  os.remove(execute_file)
1986
1991
 
1987
1992
 
1993
+ @run_in_thread()
1988
1994
  def design(query: str):
1989
1995
 
1990
1996
  conf = memory.get("conf", {})
@@ -2062,6 +2068,7 @@ def voice_input():
2062
2068
  os.remove(execute_file)
2063
2069
 
2064
2070
 
2071
+ @run_in_thread()
2065
2072
  def generate_shell_command(input_text):
2066
2073
  conf = memory.get("conf", {})
2067
2074
  yaml_config = {
@@ -2234,7 +2241,7 @@ def exclude_dirs(dir_names: List[str]):
2234
2241
  save_memory()
2235
2242
  completer.refresh_files()
2236
2243
 
2237
-
2244
+ @run_in_thread()
2238
2245
  def index_build():
2239
2246
  conf = memory.get("conf", {})
2240
2247
  yaml_config = {
@@ -2260,6 +2267,7 @@ def index_build():
2260
2267
  os.remove(yaml_file)
2261
2268
 
2262
2269
 
2270
+ @run_in_thread()
2263
2271
  def index_query(query: str):
2264
2272
  conf = memory.get("conf", {})
2265
2273
  yaml_config = {
@@ -2309,6 +2317,7 @@ def list_files():
2309
2317
  )
2310
2318
 
2311
2319
 
2320
+ @run_in_thread()
2312
2321
  def execute_shell_command(command: str):
2313
2322
  console = Console()
2314
2323
  try:
@@ -12,6 +12,8 @@ MESSAGES = {
12
12
  "index_related_files_fail": "⚠️ Failed to find related files for chunk {{ chunk_count }}",
13
13
  "index_threads_completed": "✅ Completed {{ completed_threads }}/{{ total_threads }} threads",
14
14
  "index_related_files_fail": "⚠️ Failed to find related files for chunk {{ chunk_count }}",
15
+ "index_file_removed": "🗑️ Removed non-existent file index: {{ file_path }}",
16
+ "index_file_saved": "💾 Saved index file, updated {{ updated_files }} files, removed {{ removed_files }} files",
15
17
  "human_as_model_instructions": (
16
18
  "You are now in Human as Model mode. The content has been copied to your clipboard.\n"
17
19
  "The system is waiting for your input. When finished, enter 'EOF' on a new line to submit.\n"
@@ -71,6 +73,8 @@ MESSAGES = {
71
73
  "index_related_files_fail": "⚠️ 无法为块 {{ chunk_count }} 找到相关文件",
72
74
  "index_threads_completed": "✅ 已完成 {{ completed_threads }}/{{ total_threads }} 个线程",
73
75
  "index_related_files_fail": "⚠️ 无法为块 {{ chunk_count }} 找到相关文件",
76
+ "index_file_removed": "🗑️ 已移除不存在的文件索引:{{ file_path }}",
77
+ "index_file_saved": "💾 已保存索引文件,更新了 {{ updated_files }} 个文件,移除了 {{ removed_files }} 个文件",
74
78
  "human_as_model_instructions": (
75
79
  "您现在处于人类作为模型模式。内容已复制到您的剪贴板。\n"
76
80
  "系统正在等待您的输入。完成后,在新行输入'EOF'提交。\n"
@@ -263,22 +263,21 @@ class IndexManager:
263
263
  else:
264
264
  index_data = {}
265
265
 
266
- @byzerllm.prompt()
267
- def error_message(source_dir: str, file_path: str):
268
- """
269
- The source_dir is different from the path in index file (e.g. file_path:{{ file_path }} source_dir:{{ source_dir }}).
270
- You may need to replace the prefix with the source_dir in the index file or Just delete the index file to rebuild it.
271
- """
272
-
273
- for item in index_data.keys():
274
- if not item.startswith(self.source_dir):
266
+ # 清理已不存在的文件索引
267
+ keys_to_remove = []
268
+ for file_path in index_data:
269
+ if not os.path.exists(file_path):
270
+ keys_to_remove.append(file_path)
271
+
272
+ # 删除无效条目并记录日志
273
+ for key in set(keys_to_remove):
274
+ if key in index_data:
275
+ del index_data[key]
275
276
  self.printer.print_in_terminal(
276
- "index_source_dir_mismatch",
277
+ "index_file_removed",
277
278
  style="yellow",
278
- source_dir=self.source_dir,
279
- file_path=item
279
+ file_path=key
280
280
  )
281
- break
282
281
 
283
282
  updated_sources = []
284
283
 
@@ -336,9 +335,16 @@ class IndexManager:
336
335
  index_data[module_name] = result
337
336
  updated_sources.append(module_name)
338
337
 
339
- if updated_sources:
338
+ # 如果 updated_sources 或 keys_to_remove 有值,则保存索引文件
339
+ if updated_sources or keys_to_remove:
340
340
  with open(self.index_file, "w") as file:
341
341
  json.dump(index_data, file, ensure_ascii=False, indent=2)
342
+ self.printer.print_in_terminal(
343
+ "index_file_saved",
344
+ style="green",
345
+ updated_files=len(updated_sources),
346
+ removed_files=len(keys_to_remove)
347
+ )
342
348
 
343
349
  return index_data
344
350
 
@@ -0,0 +1 @@
1
+ __version__ = "0.1.238"
@@ -1 +0,0 @@
1
- __version__ = "0.1.237"
File without changes
File without changes
File without changes
File without changes