auto-coder 0.1.372__tar.gz → 0.1.374__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 (354) hide show
  1. {auto_coder-0.1.372 → auto_coder-0.1.374}/PKG-INFO +2 -2
  2. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/auto_coder.egg-info/PKG-INFO +2 -2
  3. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/auto_coder.egg-info/SOURCES.txt +0 -4
  4. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/auto_coder.egg-info/requires.txt +1 -1
  5. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/auto_tool.py +4 -3
  6. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/planner.py +3 -3
  7. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/project_reader.py +4 -4
  8. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/chat_auto_coder.py +10 -19
  9. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/agent/agentic_edit.py +10 -6
  10. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/agent/agentic_edit_tools/ask_followup_question_tool_resolver.py +2 -1
  11. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/agent/agentic_edit_tools/replace_in_file_tool_resolver.py +47 -141
  12. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/agent/agentic_edit_tools/write_to_file_tool_resolver.py +47 -102
  13. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/index/index.py +1 -1
  14. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/linters/linter_factory.py +4 -1
  15. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/linters/normal_linter.py +2 -4
  16. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/linters/python_linter.py +18 -115
  17. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/llm_wrapper.py +1 -2
  18. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/rag_entry.py +2 -6
  19. auto_coder-0.1.374/src/autocoder/version.py +2 -0
  20. {auto_coder-0.1.372 → auto_coder-0.1.374}/tests/test_planner.py +0 -3
  21. auto_coder-0.1.372/src/autocoder/common/llm_rerank.py +0 -84
  22. auto_coder-0.1.372/src/autocoder/rag/simple_directory_reader.py +0 -646
  23. auto_coder-0.1.372/src/autocoder/rag/simple_rag.py +0 -404
  24. auto_coder-0.1.372/src/autocoder/utils/tests.py +0 -37
  25. auto_coder-0.1.372/src/autocoder/version.py +0 -2
  26. {auto_coder-0.1.372 → auto_coder-0.1.374}/LICENSE +0 -0
  27. {auto_coder-0.1.372 → auto_coder-0.1.374}/README.md +0 -0
  28. {auto_coder-0.1.372 → auto_coder-0.1.374}/setup.cfg +0 -0
  29. {auto_coder-0.1.372 → auto_coder-0.1.374}/setup.py +0 -0
  30. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/auto_coder.egg-info/dependency_links.txt +0 -0
  31. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/auto_coder.egg-info/entry_points.txt +0 -0
  32. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/auto_coder.egg-info/top_level.txt +0 -0
  33. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/__init__.py +0 -0
  34. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/__init__.py +0 -0
  35. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/agentic_filter.py +0 -0
  36. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/auto_demand_organizer.py +0 -0
  37. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/auto_filegroup.py +0 -0
  38. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/auto_guess_query.py +0 -0
  39. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/auto_learn.py +0 -0
  40. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/auto_learn_from_commit.py +0 -0
  41. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/auto_review_commit.py +0 -0
  42. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/base_agentic/__init__.py +0 -0
  43. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/base_agentic/agent_hub.py +0 -0
  44. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/base_agentic/agentic_lang.py +0 -0
  45. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/base_agentic/agentic_tool_display.py +0 -0
  46. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/base_agentic/base_agent.py +0 -0
  47. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/base_agentic/default_tools.py +0 -0
  48. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/base_agentic/test_base_agent.py +0 -0
  49. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/base_agentic/tool_registry.py +0 -0
  50. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/base_agentic/tools/__init__.py +0 -0
  51. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/base_agentic/tools/ask_followup_question_tool_resolver.py +0 -0
  52. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/base_agentic/tools/attempt_completion_tool_resolver.py +0 -0
  53. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/base_agentic/tools/base_tool_resolver.py +0 -0
  54. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/base_agentic/tools/example_tool_resolver.py +0 -0
  55. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/base_agentic/tools/execute_command_tool_resolver.py +0 -0
  56. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/base_agentic/tools/list_files_tool_resolver.py +0 -0
  57. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/base_agentic/tools/plan_mode_respond_tool_resolver.py +0 -0
  58. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/base_agentic/tools/read_file_tool_resolver.py +0 -0
  59. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/base_agentic/tools/replace_in_file_tool_resolver.py +0 -0
  60. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/base_agentic/tools/search_files_tool_resolver.py +0 -0
  61. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/base_agentic/tools/talk_to_group_tool_resolver.py +0 -0
  62. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/base_agentic/tools/talk_to_tool_resolver.py +0 -0
  63. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/base_agentic/tools/use_mcp_tool_resolver.py +0 -0
  64. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/base_agentic/tools/write_to_file_tool_resolver.py +0 -0
  65. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/base_agentic/types.py +0 -0
  66. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/base_agentic/utils.py +0 -0
  67. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/coder.py +0 -0
  68. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/agent/designer.py +0 -0
  69. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/auto_coder.py +0 -0
  70. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/auto_coder_rag.py +0 -0
  71. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/auto_coder_runner.py +0 -0
  72. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/auto_coder_server.py +0 -0
  73. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/benchmark.py +0 -0
  74. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/chat/__init__.py +0 -0
  75. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/chat/conf_command.py +0 -0
  76. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/chat/models_command.py +0 -0
  77. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/chat/rules_command.py +0 -0
  78. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/chat_auto_coder_lang.py +0 -0
  79. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/command_args.py +0 -0
  80. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/command_parser.py +0 -0
  81. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/commands/__init__.py +0 -0
  82. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/commands/auto_command.py +0 -0
  83. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/commands/auto_web.py +0 -0
  84. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/commands/tools.py +0 -0
  85. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/JupyterClient.py +0 -0
  86. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/ShellClient.py +0 -0
  87. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/__init__.py +0 -0
  88. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/action_yml_file_manager.py +0 -0
  89. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/anything2images.py +0 -0
  90. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/anything2img.py +0 -0
  91. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/audio.py +0 -0
  92. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/auto_coder_lang.py +0 -0
  93. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/auto_configure.py +0 -0
  94. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/buildin_tokenizer.py +0 -0
  95. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/chunk_validation.py +0 -0
  96. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/cleaner.py +0 -0
  97. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/code_auto_execute.py +0 -0
  98. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/code_auto_generate.py +0 -0
  99. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/code_auto_generate_diff.py +0 -0
  100. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/code_auto_generate_editblock.py +0 -0
  101. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/code_auto_generate_strict_diff.py +0 -0
  102. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/code_auto_merge.py +0 -0
  103. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/code_auto_merge_diff.py +0 -0
  104. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/code_auto_merge_editblock.py +0 -0
  105. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/code_auto_merge_strict_diff.py +0 -0
  106. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/code_modification_ranker.py +0 -0
  107. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/command_completer.py +0 -0
  108. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/command_completer_v2.py +0 -0
  109. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/command_file_manager/__init__.py +0 -0
  110. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/command_file_manager/examples.py +0 -0
  111. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/command_file_manager/manager.py +0 -0
  112. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/command_file_manager/models.py +0 -0
  113. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/command_file_manager/utils.py +0 -0
  114. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/command_generator.py +0 -0
  115. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/command_templates.py +0 -0
  116. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/computer_use.py +0 -0
  117. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/conf_import_export.py +0 -0
  118. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/conf_utils.py +0 -0
  119. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/conf_validator.py +0 -0
  120. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/const.py +0 -0
  121. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/context_pruner.py +0 -0
  122. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/conversation_pruner.py +0 -0
  123. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/conversations/__init__.py +0 -0
  124. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/conversations/compatibility.py +0 -0
  125. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/conversations/conversation_manager.py +0 -0
  126. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/conversations/example.py +0 -0
  127. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/directory_cache/__init__.py +0 -0
  128. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/directory_cache/cache.py +0 -0
  129. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/directory_cache/test_cache.py +0 -0
  130. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/file_checkpoint/__init__.py +0 -0
  131. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/file_checkpoint/backup.py +0 -0
  132. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/file_checkpoint/conversation_checkpoint.py +0 -0
  133. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/file_checkpoint/examples.py +0 -0
  134. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/file_checkpoint/manager.py +0 -0
  135. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/file_checkpoint/models.py +0 -0
  136. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/file_checkpoint/store.py +0 -0
  137. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/file_checkpoint/test_backup.py +0 -0
  138. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/file_checkpoint/test_manager.py +0 -0
  139. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/file_checkpoint/test_models.py +0 -0
  140. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/file_checkpoint/test_store.py +0 -0
  141. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/file_checkpoint/test_utils.py +0 -0
  142. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/file_checkpoint/utils.py +0 -0
  143. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/file_monitor/__init__.py +0 -0
  144. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/file_monitor/monitor.py +0 -0
  145. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/files.py +0 -0
  146. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/git_utils.py +0 -0
  147. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/global_cancel.py +0 -0
  148. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/ignorefiles/__init__.py +0 -0
  149. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/ignorefiles/ignore_file_utils.py +0 -0
  150. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/ignorefiles/test_ignore_file_utils.py +0 -0
  151. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/image_to_page.py +0 -0
  152. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/index_import_export.py +0 -0
  153. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/interpreter.py +0 -0
  154. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/mcp_hub.py +0 -0
  155. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/mcp_server.py +0 -0
  156. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/mcp_server_install.py +0 -0
  157. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/mcp_server_types.py +0 -0
  158. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/mcp_servers/__init__.py +0 -0
  159. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/mcp_servers/mcp_server_gpt4o_mini_search.py +0 -0
  160. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/mcp_servers/mcp_server_perplexity.py +0 -0
  161. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/mcp_tools.py +0 -0
  162. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/memory_manager.py +0 -0
  163. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/model_speed_tester.py +0 -0
  164. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/openai_content.py +0 -0
  165. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/printer.py +0 -0
  166. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/recall_validation.py +0 -0
  167. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/result_manager.py +0 -0
  168. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/rulefiles/__init__.py +0 -0
  169. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/rulefiles/autocoderrules_utils.py +0 -0
  170. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/run_cmd.py +0 -0
  171. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/save_formatted_log.py +0 -0
  172. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/screenshots.py +0 -0
  173. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/search.py +0 -0
  174. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/search_replace.py +0 -0
  175. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/shells.py +0 -0
  176. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/stats_panel.py +0 -0
  177. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/stream_out_type.py +0 -0
  178. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/sys_prompt.py +0 -0
  179. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/test_run_cmd.py +0 -0
  180. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/text.py +0 -0
  181. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/token_cost_caculate.py +0 -0
  182. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/types.py +0 -0
  183. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/utils_code_auto_generate.py +0 -0
  184. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/__init__.py +0 -0
  185. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/agent/__init__.py +0 -0
  186. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/agent/agentic_edit_tools/__init__.py +0 -0
  187. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/agent/agentic_edit_tools/attempt_completion_tool_resolver.py +0 -0
  188. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/agent/agentic_edit_tools/base_tool_resolver.py +0 -0
  189. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/agent/agentic_edit_tools/execute_command_tool_resolver.py +0 -0
  190. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/agent/agentic_edit_tools/list_code_definition_names_tool_resolver.py +0 -0
  191. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/agent/agentic_edit_tools/list_files_tool_resolver.py +0 -0
  192. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/agent/agentic_edit_tools/list_package_info_tool_resolver.py +0 -0
  193. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/agent/agentic_edit_tools/plan_mode_respond_tool_resolver.py +0 -0
  194. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/agent/agentic_edit_tools/read_file_tool_resolver.py +0 -0
  195. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/agent/agentic_edit_tools/search_files_tool_resolver.py +0 -0
  196. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/agent/agentic_edit_tools/test_search_files_tool_resolver.py +0 -0
  197. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/agent/agentic_edit_tools/test_write_to_file_tool_resolver.py +0 -0
  198. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/agent/agentic_edit_tools/use_mcp_tool_resolver.py +0 -0
  199. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/agent/agentic_edit_types.py +0 -0
  200. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/agent/agentic_tool_display.py +0 -0
  201. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/code_agentic_editblock_manager.py +0 -0
  202. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/code_auto_generate.py +0 -0
  203. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/code_auto_generate_diff.py +0 -0
  204. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/code_auto_generate_editblock.py +0 -0
  205. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/code_auto_generate_strict_diff.py +0 -0
  206. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/code_auto_merge.py +0 -0
  207. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/code_auto_merge_diff.py +0 -0
  208. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/code_auto_merge_editblock.py +0 -0
  209. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/code_auto_merge_strict_diff.py +0 -0
  210. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/code_diff_manager.py +0 -0
  211. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/code_editblock_manager.py +0 -0
  212. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/code_manager.py +0 -0
  213. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/common/v2/code_strict_diff_manager.py +0 -0
  214. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/compilers/__init__.py +0 -0
  215. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/compilers/base_compiler.py +0 -0
  216. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/compilers/compiler_config_api.py +0 -0
  217. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/compilers/compiler_config_manager.py +0 -0
  218. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/compilers/compiler_factory.py +0 -0
  219. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/compilers/java_compiler.py +0 -0
  220. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/compilers/models.py +0 -0
  221. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/compilers/normal_compiler.py +0 -0
  222. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/compilers/provided_compiler.py +0 -0
  223. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/compilers/python_compiler.py +0 -0
  224. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/compilers/reactjs_compiler.py +0 -0
  225. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/compilers/shadow_compiler.py +0 -0
  226. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/compilers/vue_compiler.py +0 -0
  227. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/data/byzerllm.md +0 -0
  228. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/data/tokenizer.json +0 -0
  229. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/db/__init__.py +0 -0
  230. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/db/store.py +0 -0
  231. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/dispacher/__init__.py +0 -0
  232. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/dispacher/actions/__init__.py +0 -0
  233. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/dispacher/actions/action.py +0 -0
  234. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/dispacher/actions/copilot.py +0 -0
  235. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/dispacher/actions/plugins/__init__.py +0 -0
  236. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/dispacher/actions/plugins/action_regex_project.py +0 -0
  237. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/events/__init__.py +0 -0
  238. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/events/event_content.py +0 -0
  239. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/events/event_manager.py +0 -0
  240. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/events/event_manager_singleton.py +0 -0
  241. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/events/event_store.py +0 -0
  242. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/events/event_types.py +0 -0
  243. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/helper/__init__.py +0 -0
  244. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/helper/project_creator.py +0 -0
  245. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/helper/rag_doc_creator.py +0 -0
  246. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/index/__init__.py +0 -0
  247. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/index/entry.py +0 -0
  248. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/index/filter/__init__.py +0 -0
  249. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/index/filter/normal_filter.py +0 -0
  250. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/index/filter/quick_filter.py +0 -0
  251. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/index/for_command.py +0 -0
  252. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/index/symbols_utils.py +0 -0
  253. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/index/types.py +0 -0
  254. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/lang.py +0 -0
  255. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/linters/__init__.py +0 -0
  256. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/linters/base_linter.py +0 -0
  257. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/linters/models.py +0 -0
  258. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/linters/reactjs_linter.py +0 -0
  259. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/linters/shadow_linter.py +0 -0
  260. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/linters/vue_linter.py +0 -0
  261. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/memory/__init__.py +0 -0
  262. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/memory/active_context_manager.py +0 -0
  263. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/memory/active_package.py +0 -0
  264. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/memory/async_processor.py +0 -0
  265. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/memory/directory_mapper.py +0 -0
  266. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/models.py +0 -0
  267. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/plugins/__init__.py +0 -0
  268. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/plugins/dynamic_completion_example.py +0 -0
  269. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/plugins/git_helper_plugin.py +0 -0
  270. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/plugins/sample_plugin.py +0 -0
  271. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/plugins/token_helper_plugin.py +0 -0
  272. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/plugins/utils.py +0 -0
  273. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/privacy/__init__.py +0 -0
  274. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/privacy/model_filter.py +0 -0
  275. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/pyproject/__init__.py +0 -0
  276. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/__init__.py +0 -0
  277. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/api_server.py +0 -0
  278. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/cache/__init__.py +0 -0
  279. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/cache/base_cache.py +0 -0
  280. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/cache/byzer_storage_cache.py +0 -0
  281. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/cache/cache_result_merge.py +0 -0
  282. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/cache/failed_files_utils.py +0 -0
  283. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/cache/file_monitor_cache.py +0 -0
  284. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/cache/local_byzer_storage_cache.py +0 -0
  285. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/cache/local_duckdb_storage_cache.py +0 -0
  286. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/cache/rag_file_meta.py +0 -0
  287. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/cache/simple_cache.py +0 -0
  288. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/conversation_to_queries.py +0 -0
  289. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/doc_filter.py +0 -0
  290. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/document_retriever.py +0 -0
  291. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/lang.py +0 -0
  292. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/loaders/__init__.py +0 -0
  293. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/loaders/docx_loader.py +0 -0
  294. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/loaders/excel_loader.py +0 -0
  295. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/loaders/filter_utils.py +0 -0
  296. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/loaders/image_loader.py +0 -0
  297. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/loaders/pdf_loader.py +0 -0
  298. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/loaders/ppt_loader.py +0 -0
  299. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/long_context_rag.py +0 -0
  300. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/qa_conversation_strategy.py +0 -0
  301. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/rag_config.py +0 -0
  302. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/raw_rag.py +0 -0
  303. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/relevant_utils.py +0 -0
  304. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/searchable.py +0 -0
  305. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/stream_event/__init__.py +0 -0
  306. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/stream_event/event_writer.py +0 -0
  307. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/stream_event/types.py +0 -0
  308. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/test_doc_filter.py +0 -0
  309. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/test_long_context_rag.py +0 -0
  310. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/test_token_limiter.py +0 -0
  311. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/token_checker.py +0 -0
  312. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/token_counter.py +0 -0
  313. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/token_limiter.py +0 -0
  314. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/token_limiter_utils.py +0 -0
  315. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/types.py +0 -0
  316. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/utils.py +0 -0
  317. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/rag/variable_holder.py +0 -0
  318. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/regexproject/__init__.py +0 -0
  319. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/run_context.py +0 -0
  320. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/shadows/__init__.py +0 -0
  321. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/shadows/shadow_manager.py +0 -0
  322. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/suffixproject/__init__.py +0 -0
  323. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/tsproject/__init__.py +0 -0
  324. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/utils/__init__.py +0 -0
  325. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/utils/_markitdown.py +0 -0
  326. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/utils/auto_coder_utils/__init__.py +0 -0
  327. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/utils/auto_coder_utils/chat_stream_out.py +0 -0
  328. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/utils/auto_project_type.py +0 -0
  329. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/utils/chat_auto_coder_utils/__init__.py +0 -0
  330. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/utils/conversation_store.py +0 -0
  331. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/utils/llm_client_interceptors.py +0 -0
  332. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/utils/llms.py +0 -0
  333. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/utils/log_capture.py +0 -0
  334. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/utils/model_provider_selector.py +0 -0
  335. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/utils/multi_turn.py +0 -0
  336. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/utils/operate_config_api.py +0 -0
  337. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/utils/print_table.py +0 -0
  338. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/utils/project_structure.py +0 -0
  339. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/utils/queue_communicate.py +0 -0
  340. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/utils/request_event_queue.py +0 -0
  341. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/utils/request_queue.py +0 -0
  342. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/utils/rest.py +0 -0
  343. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/utils/stream_thinking.py +0 -0
  344. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/utils/thread_utils.py +0 -0
  345. {auto_coder-0.1.372 → auto_coder-0.1.374}/src/autocoder/utils/types.py +0 -0
  346. {auto_coder-0.1.372 → auto_coder-0.1.374}/tests/test_action_regex_project.py +0 -0
  347. {auto_coder-0.1.372 → auto_coder-0.1.374}/tests/test_action_yml_file_manager.py +0 -0
  348. {auto_coder-0.1.372 → auto_coder-0.1.374}/tests/test_chat_auto_coder.py +0 -0
  349. {auto_coder-0.1.372 → auto_coder-0.1.374}/tests/test_code_auto_merge_editblock.py +0 -0
  350. {auto_coder-0.1.372 → auto_coder-0.1.374}/tests/test_command_completer.py +0 -0
  351. {auto_coder-0.1.372 → auto_coder-0.1.374}/tests/test_plugins.py +0 -0
  352. {auto_coder-0.1.372 → auto_coder-0.1.374}/tests/test_privacy.py +0 -0
  353. {auto_coder-0.1.372 → auto_coder-0.1.374}/tests/test_queue_communicate.py +0 -0
  354. {auto_coder-0.1.372 → auto_coder-0.1.374}/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.372
3
+ Version: 0.1.374
4
4
  Summary: AutoCoder: AutoCoder
5
5
  Author: allwefantasy
6
6
  Classifier: Programming Language :: Python :: 3.10
@@ -28,7 +28,7 @@ Requires-Dist: prompt-toolkit
28
28
  Requires-Dist: tokenizers
29
29
  Requires-Dist: aiofiles
30
30
  Requires-Dist: readerwriterlock
31
- Requires-Dist: byzerllm[saas]>=0.1.182
31
+ Requires-Dist: byzerllm[saas]>=0.1.184
32
32
  Requires-Dist: patch
33
33
  Requires-Dist: diff_match_patch
34
34
  Requires-Dist: GitPython
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: auto-coder
3
- Version: 0.1.372
3
+ Version: 0.1.374
4
4
  Summary: AutoCoder: AutoCoder
5
5
  Author: allwefantasy
6
6
  Classifier: Programming Language :: Python :: 3.10
@@ -28,7 +28,7 @@ Requires-Dist: prompt-toolkit
28
28
  Requires-Dist: tokenizers
29
29
  Requires-Dist: aiofiles
30
30
  Requires-Dist: readerwriterlock
31
- Requires-Dist: byzerllm[saas]>=0.1.182
31
+ Requires-Dist: byzerllm[saas]>=0.1.184
32
32
  Requires-Dist: patch
33
33
  Requires-Dist: diff_match_patch
34
34
  Requires-Dist: GitPython
@@ -106,7 +106,6 @@ src/autocoder/common/global_cancel.py
106
106
  src/autocoder/common/image_to_page.py
107
107
  src/autocoder/common/index_import_export.py
108
108
  src/autocoder/common/interpreter.py
109
- src/autocoder/common/llm_rerank.py
110
109
  src/autocoder/common/mcp_hub.py
111
110
  src/autocoder/common/mcp_server.py
112
111
  src/autocoder/common/mcp_server_install.py
@@ -279,8 +278,6 @@ src/autocoder/rag/rag_entry.py
279
278
  src/autocoder/rag/raw_rag.py
280
279
  src/autocoder/rag/relevant_utils.py
281
280
  src/autocoder/rag/searchable.py
282
- src/autocoder/rag/simple_directory_reader.py
283
- src/autocoder/rag/simple_rag.py
284
281
  src/autocoder/rag/test_doc_filter.py
285
282
  src/autocoder/rag/test_long_context_rag.py
286
283
  src/autocoder/rag/test_token_limiter.py
@@ -333,7 +330,6 @@ src/autocoder/utils/request_event_queue.py
333
330
  src/autocoder/utils/request_queue.py
334
331
  src/autocoder/utils/rest.py
335
332
  src/autocoder/utils/stream_thinking.py
336
- src/autocoder/utils/tests.py
337
333
  src/autocoder/utils/thread_utils.py
338
334
  src/autocoder/utils/types.py
339
335
  src/autocoder/utils/auto_coder_utils/__init__.py
@@ -18,7 +18,7 @@ prompt-toolkit
18
18
  tokenizers
19
19
  aiofiles
20
20
  readerwriterlock
21
- byzerllm[saas]>=0.1.182
21
+ byzerllm[saas]>=0.1.184
22
22
  patch
23
23
  diff_match_patch
24
24
  GitPython
@@ -1,5 +1,3 @@
1
- from llama_index.core.agent import ReActAgent
2
- from llama_index.core.tools import FunctionTool
3
1
  from autocoder.pyproject import PyProject
4
2
  from autocoder.tsproject import TSProject
5
3
  from autocoder.suffixproject import SuffixProject
@@ -7,7 +5,6 @@ from autocoder.common import AutoCoderArgs
7
5
  from autocoder.common.interpreter import Interpreter
8
6
  from autocoder.common import ExecuteSteps, ExecuteStep, detect_env
9
7
  from autocoder.common import code_auto_execute
10
- from byzerllm.apps.llama_index.byzerai import ByzerAI
11
8
  from loguru import logger
12
9
  import os
13
10
  import io
@@ -252,6 +249,8 @@ def get_tools(args: AutoCoderArgs, llm: byzerllm.ByzerLLM):
252
249
 
253
250
  console.print("[bold red]达到最大尝试次数,任务未能完成。[/bold red]")
254
251
  return result
252
+
253
+ from llama_index.core.tools import FunctionTool
255
254
 
256
255
  tools = [
257
256
  FunctionTool.from_defaults(run_python_code),
@@ -284,6 +283,8 @@ class AutoTool:
284
283
  return self.pp.get_tree_like_directory_structure.prompt()
285
284
 
286
285
  def run(self, query: str, max_iterations: int = 20):
286
+ from byzerllm.apps.llama_index.byzerai import ByzerAI
287
+ from llama_index.core.agent import ReActAgent
287
288
  agent = ReActAgent.from_tools(
288
289
  tools=self.tools,
289
290
  llm=ByzerAI(llm=self.code_model),
@@ -1,5 +1,3 @@
1
- from llama_index.core.agent import ReActAgent
2
- from llama_index.core.tools import FunctionTool
3
1
  from autocoder.index.index import IndexManager
4
2
  from autocoder.pyproject import PyProject
5
3
  from autocoder.tsproject import TSProject
@@ -182,7 +180,8 @@ def get_tools(args: AutoCoderArgs, llm: byzerllm.ByzerLLM):
182
180
  args.collections = old_collections
183
181
 
184
182
  return "\n".join([sc.source_code for sc in source_codes])
185
-
183
+
184
+ from llama_index.core.tools import FunctionTool
186
185
  tools = [
187
186
  FunctionTool.from_defaults(get_project_related_files),
188
187
  FunctionTool.from_defaults(generate_auto_coder_yaml),
@@ -202,6 +201,7 @@ class Planner:
202
201
 
203
202
  def run(self, query: str, max_iterations: int = 10):
204
203
  from byzerllm.apps.llama_index.byzerai import ByzerAI
204
+ from llama_index.core.agent import ReActAgent
205
205
  agent = ReActAgent.from_tools(
206
206
  tools=self.tools,
207
207
  llm=ByzerAI(llm=self.llm),
@@ -1,5 +1,3 @@
1
- from llama_index.core.agent import ReActAgent
2
- from llama_index.core.tools import FunctionTool
3
1
  from autocoder.index.index import IndexManager
4
2
  from autocoder.pyproject import PyProject
5
3
  from autocoder.tsproject import TSProject
@@ -176,7 +174,7 @@ def detect_rm_command(command: str) -> Bool:
176
174
 
177
175
 
178
176
  def get_tools(args: AutoCoderArgs, llm: byzerllm.ByzerLLM):
179
-
177
+
180
178
  def ask_user(question:str) -> str:
181
179
  '''
182
180
  如果你对用户的问题有什么疑问,或者你想从用户收集一些额外信息,可以调用
@@ -404,7 +402,8 @@ def get_tools(args: AutoCoderArgs, llm: byzerllm.ByzerLLM):
404
402
  pass
405
403
 
406
404
  return ",".join(matched_files)
407
-
405
+
406
+ from llama_index.core.tools import FunctionTool
408
407
  tools = [
409
408
  # FunctionTool.from_defaults(get_project_related_files),
410
409
  FunctionTool.from_defaults(get_related_files_by_symbols),
@@ -440,6 +439,7 @@ class ProjectReader:
440
439
 
441
440
  def run(self, query: str, max_iterations: int = 20):
442
441
  from byzerllm.apps.llama_index.byzerai import ByzerAI
442
+ from llama_index.core.agent import ReActAgent
443
443
  agent = ReActAgent.from_tools(
444
444
  tools=self.tools,
445
445
  llm=ByzerAI(llm=self.llm),
@@ -19,12 +19,11 @@ from autocoder.events.event_manager_singleton import gengerate_event_file_path
19
19
  from autocoder.common.global_cancel import global_cancel
20
20
  from autocoder.chat.models_command import handle_models_command
21
21
  from autocoder.auto_coder_runner import (
22
- auto_command,
23
- load_memory,
24
- save_memory,
22
+ auto_command,
25
23
  configure, # Keep configure if it's used elsewhere or by handle_conf_command internally (though we adapted handle_conf_command not to)
26
24
  # manage_models, # Removed
27
25
  # print_conf, # Removed
26
+ save_memory,
28
27
  exclude_dirs,
29
28
  exclude_files,
30
29
  ask,
@@ -122,10 +121,7 @@ def show_help():
122
121
  )
123
122
  print(
124
123
  f" \033[94m/coding\033[0m \033[93m<query>\033[0m - \033[92m{get_message('coding_desc')}\033[0m"
125
- )
126
- print(
127
- f" \033[94m/ask\033[0m \033[93m<query>\033[0m - \033[92m{get_message('ask_desc')}\033[0m"
128
- )
124
+ )
129
125
  print(
130
126
  f" \033[94m/summon\033[0m \033[93m<query>\033[0m - \033[92m{get_message('summon_desc')}\033[0m"
131
127
  )
@@ -302,7 +298,6 @@ def main():
302
298
  # 加载保存的运行时配置
303
299
  plugin_manager.load_runtime_cfg()
304
300
 
305
- load_memory()
306
301
  memory = get_memory()
307
302
 
308
303
  configure(f"product_mode:{ARGS.product_mode}")
@@ -345,7 +340,8 @@ def main():
345
340
  memory["mode"] = "voice_input"
346
341
  else: # voice_input
347
342
  memory["mode"] = "normal"
348
-
343
+
344
+ save_memory()
349
345
  event.app.invalidate()
350
346
 
351
347
  @kb.add("c-n")
@@ -467,8 +463,8 @@ def main():
467
463
  else:
468
464
  user_input = session.prompt(FormattedText(prompt_message), style=style)
469
465
  new_prompt = ""
470
-
471
- if "mode" not in memory:
466
+
467
+ if "mode" not in memory:
472
468
  memory["mode"] = "auto_detect"
473
469
 
474
470
  # 处理 user_input 的空格
@@ -545,9 +541,11 @@ def main():
545
541
  print(memory["mode"])
546
542
  else:
547
543
  memory["mode"] = conf
544
+ save_memory()
548
545
 
549
546
  elif user_input.startswith("/conf/export"):
550
547
  from autocoder.common.conf_import_export import export_conf
548
+ export_conf(os.getcwd(), user_input[len("/conf/export") :].strip() or ".")
551
549
 
552
550
  elif user_input.startswith("/plugins"):
553
551
  # 提取命令参数并交由 plugin_manager 处理
@@ -580,14 +578,7 @@ def main():
580
578
 
581
579
  elif user_input.startswith("/exclude_files"):
582
580
  query = user_input[len("/exclude_files") :].strip()
583
- exclude_files(query)
584
-
585
- elif user_input.startswith("/ask"):
586
- query = user_input[len("/ask") :].strip()
587
- if not query:
588
- print("Please enter your question.")
589
- else:
590
- ask(query)
581
+ exclude_files(query)
591
582
 
592
583
  elif user_input.startswith("/exit"):
593
584
  raise EOFError()
@@ -850,7 +850,8 @@ class AgenticEdit:
850
850
 
851
851
  iteration_count = 0
852
852
  tool_executed = False
853
- should_yield_completion_event = False
853
+ should_yield_completion_event = False
854
+ completion_event = None
854
855
 
855
856
  while True:
856
857
  iteration_count += 1
@@ -860,10 +861,13 @@ class AgenticEdit:
860
861
  if last_message["role"] == "assistant":
861
862
  logger.info(f"Last message is assistant, skipping LLM interaction cycle")
862
863
  if should_yield_completion_event:
863
- yield CompletionEvent(completion=AttemptCompletionTool(
864
- result=last_message["content"],
865
- command=""
866
- ), completion_xml="")
864
+ if completion_event is None:
865
+ yield CompletionEvent(completion=AttemptCompletionTool(
866
+ result=last_message["content"],
867
+ command=""
868
+ ), completion_xml="")
869
+ else:
870
+ yield completion_event
867
871
  break
868
872
  logger.info(
869
873
  f"Starting LLM interaction cycle. History size: {len(conversations)}")
@@ -935,7 +939,7 @@ class AgenticEdit:
935
939
  logger.info(
936
940
  "AttemptCompletionTool received. Finalizing session.")
937
941
  logger.info(f"Completion result: {tool_obj.result[:50]}...")
938
- # yield CompletionEvent(completion=tool_obj, completion_xml=tool_xml)
942
+ completion_event = CompletionEvent(completion=tool_obj, completion_xml=tool_xml)
939
943
  logger.info(
940
944
  "AgenticEdit analyze loop finished due to AttemptCompletion.")
941
945
  save_formatted_log(self.args.source_dir, json.dumps(conversations, ensure_ascii=False), "agentic_conversation")
@@ -13,7 +13,7 @@ from rich.console import Console
13
13
  from rich.panel import Panel
14
14
  from rich.text import Text
15
15
  from autocoder.common.result_manager import ResultManager
16
-
16
+ from autocoder.common.printer import Printer
17
17
  if typing.TYPE_CHECKING:
18
18
  from autocoder.common.v2.agent.agentic_edit import AgenticEdit
19
19
 
@@ -22,6 +22,7 @@ class AskFollowupQuestionToolResolver(BaseToolResolver):
22
22
  super().__init__(agent, tool, args)
23
23
  self.tool: AskFollowupQuestionTool = tool # For type hinting
24
24
  self.result_manager = ResultManager()
25
+ self.printer = Printer()
25
26
 
26
27
  def resolve(self) -> ToolResult:
27
28
  """
@@ -7,6 +7,7 @@ from autocoder.common.v2.agent.agentic_edit_tools.base_tool_resolver import Base
7
7
  from autocoder.common.v2.agent.agentic_edit_types import ReplaceInFileTool, ToolResult
8
8
  from autocoder.common.file_checkpoint.models import FileChange as CheckpointFileChange
9
9
  from autocoder.common.file_checkpoint.manager import FileChangeManager as CheckpointFileChangeManager
10
+ from autocoder.linters.models import IssueSeverity, FileLintResult
10
11
  from loguru import logger
11
12
  from autocoder.common.auto_coder_lang import get_message_with_format
12
13
  if typing.TYPE_CHECKING:
@@ -62,7 +63,38 @@ class ReplaceInFileToolResolver(BaseToolResolver):
62
63
  logger.warning(f"Could not parse any SEARCH/REPLACE blocks from diff: {diff_content}")
63
64
  return blocks
64
65
 
65
- def _format_lint_issues(self, lint_result):
66
+ def _filter_lint_issues(self, lint_result:FileLintResult, levels: List[IssueSeverity] = [IssueSeverity.ERROR, IssueSeverity.WARNING]):
67
+ """
68
+ 过滤 lint 结果,只保留指定级别的问题
69
+
70
+ 参数:
71
+ lint_result: 单个文件的 lint 结果对象
72
+ levels: 要保留的问题级别列表,默认保留 ERROR 和 WARNING 级别
73
+
74
+ 返回:
75
+ 过滤后的 lint 结果对象(原对象的副本)
76
+ """
77
+ if not lint_result or not lint_result.issues:
78
+ return lint_result
79
+
80
+ # 创建一个新的 issues 列表,只包含指定级别的问题
81
+ filtered_issues = []
82
+ for issue in lint_result.issues:
83
+ if issue.severity in levels:
84
+ filtered_issues.append(issue)
85
+
86
+ # 更新 lint_result 的副本
87
+ filtered_result = lint_result
88
+ filtered_result.issues = filtered_issues
89
+
90
+ # 更新计数
91
+ filtered_result.error_count = sum(1 for issue in filtered_result.issues if issue.severity == IssueSeverity.ERROR)
92
+ filtered_result.warning_count = sum(1 for issue in filtered_result.issues if issue.severity == IssueSeverity.WARNING)
93
+ filtered_result.info_count = sum(1 for issue in filtered_result.issues if issue.severity == IssueSeverity.INFO)
94
+
95
+ return filtered_result
96
+
97
+ def _format_lint_issues(self, lint_result:FileLintResult):
66
98
  """
67
99
  将 lint 结果格式化为可读的文本格式
68
100
 
@@ -86,130 +118,7 @@ class ReplaceInFileToolResolver(BaseToolResolver):
86
118
 
87
119
  return "\n".join(formatted_issues)
88
120
 
89
- def replace_in_file_with_shadow(self, file_path: str, diff_content: str, source_dir: str, abs_project_dir: str, abs_file_path: str) -> ToolResult:
90
- """Replace content in file using shadow manager for path translation"""
91
- try:
92
- # Determine target path: shadow file
93
- target_path = self.shadow_manager.to_shadow_path(abs_file_path)
94
-
95
- # Read original content
96
- if os.path.exists(target_path) and os.path.isfile(target_path):
97
- with open(target_path, 'r', encoding='utf-8', errors='replace') as f:
98
- original_content = f.read()
99
- elif os.path.exists(abs_file_path) and os.path.isfile(abs_file_path):
100
- # If shadow doesn't exist, but original exists, read original content
101
- with open(abs_file_path, 'r', encoding='utf-8', errors='replace') as f:
102
- original_content = f.read()
103
- # create parent dirs of shadow if needed
104
- os.makedirs(os.path.dirname(target_path), exist_ok=True)
105
- # write original content into shadow file as baseline
106
- with open(target_path, 'w', encoding='utf-8') as f:
107
- f.write(original_content)
108
- logger.info(f"[Shadow] Initialized shadow file from original: {target_path}")
109
- else:
110
- return ToolResult(success=False, message=get_message_with_format("replace_in_file.file_not_found", file_path=file_path))
111
-
112
- parsed_blocks = self.parse_diff(diff_content)
113
- if not parsed_blocks:
114
- return ToolResult(success=False, message=get_message_with_format("replace_in_file.no_valid_blocks"))
115
-
116
- current_content = original_content
117
- applied_count = 0
118
- errors = []
119
-
120
- # Apply blocks sequentially
121
- for i, (search_block, replace_block) in enumerate(parsed_blocks):
122
- start_index = current_content.find(search_block)
123
-
124
- if start_index != -1:
125
- current_content = current_content[:start_index] + replace_block + current_content[start_index + len(search_block):]
126
- applied_count += 1
127
- logger.info(f"Applied SEARCH/REPLACE block {i+1} in file {file_path}")
128
- else:
129
- error_message = f"SEARCH block {i+1} not found in the current file content. Content to search:\n---\n{search_block}\n---"
130
- logger.warning(error_message)
131
- context_start = max(0, original_content.find(search_block[:20]) - 100)
132
- context_end = min(len(original_content), context_start + 200 + len(search_block[:20]))
133
- logger.warning(f"Approximate context in file:\n---\n{original_content[context_start:context_end]}\n---")
134
- errors.append(error_message)
135
-
136
- if applied_count == 0 and errors:
137
- return ToolResult(success=False, message=get_message_with_format("replace_in_file.apply_failed", errors="\n".join(errors)))
138
-
139
- # Write the modified content back to shadow file
140
- os.makedirs(os.path.dirname(target_path), exist_ok=True)
141
- with open(target_path, 'w', encoding='utf-8') as f:
142
- f.write(current_content)
143
-
144
- logger.info(f"Successfully applied {applied_count}/{len(parsed_blocks)} changes to shadow file: {file_path}")
145
-
146
- # 新增:执行代码质量检查
147
- lint_results = None
148
- lint_message = ""
149
- formatted_issues = ""
150
- has_lint_issues = False
151
-
152
- # 检查是否启用了Lint功能
153
- enable_lint = self.args.enable_auto_fix_lint
154
-
155
- if enable_lint:
156
- try:
157
- if self.shadow_linter and self.shadow_manager:
158
- # 对修改后的文件进行 lint 检查
159
- shadow_path = target_path # 已经是影子路径
160
- lint_results = self.shadow_linter.lint_shadow_file(shadow_path)
161
-
162
- if lint_results and lint_results.issues:
163
- has_lint_issues = True
164
- # 格式化 lint 问题
165
- formatted_issues = self._format_lint_issues(lint_results)
166
- lint_message = f"\n\n代码质量检查发现 {len(lint_results.issues)} 个问题:\n{formatted_issues}"
167
- else:
168
- lint_message = "\n\n代码质量检查通过,未发现问题。"
169
- except Exception as e:
170
- logger.error(f"Lint 检查失败: {str(e)}")
171
- lint_message = "\n\n尝试进行代码质量检查时出错。"
172
- else:
173
- logger.info("代码质量检查已禁用")
174
-
175
- # 构建包含 lint 结果的返回消息
176
- if errors:
177
- message = get_message_with_format("replace_in_file.apply_success_with_warnings",
178
- applied=applied_count,
179
- total=len(parsed_blocks),
180
- file_path=file_path,
181
- errors="\n".join(errors))
182
- else:
183
- message = get_message_with_format("replace_in_file.apply_success",
184
- applied=applied_count,
185
- total=len(parsed_blocks),
186
- file_path=file_path)
187
-
188
- # 将 lint 消息添加到结果中,如果启用了Lint
189
- if enable_lint:
190
- message += lint_message
191
-
192
- # 变更跟踪,回调AgenticEdit
193
- if self.agent:
194
- rel_path = os.path.relpath(abs_file_path, abs_project_dir)
195
- self.agent.record_file_change(rel_path, "modified", diff=diff_content, content=current_content)
196
-
197
- # 附加 lint 结果到返回内容
198
- result_content = {
199
- "content": current_content,
200
- }
201
-
202
- # 只有在启用Lint时才添加Lint结果
203
- if enable_lint:
204
- result_content["lint_results"] = {
205
- "has_issues": has_lint_issues,
206
- "issues": formatted_issues if has_lint_issues else None
207
- }
208
-
209
- return ToolResult(success=True, message=message, content=result_content)
210
- except Exception as e:
211
- logger.error(f"Error writing replaced content to shadow file '{file_path}': {str(e)}")
212
- return ToolResult(success=False, message=get_message_with_format("replace_in_file.write_error", error=str(e)))
121
+
213
122
 
214
123
  def replace_in_file_normal(self, file_path: str, diff_content: str, source_dir: str, abs_project_dir: str, abs_file_path: str) -> ToolResult:
215
124
  """Replace content in file directly without using shadow manager"""
@@ -282,16 +191,20 @@ class ReplaceInFileToolResolver(BaseToolResolver):
282
191
 
283
192
  # 检查是否启用了Lint功能
284
193
  enable_lint = self.args.enable_auto_fix_lint
194
+ logger.info(f"检查Lint功能状态: enable_lint={enable_lint}")
285
195
 
286
196
  if enable_lint:
287
197
  try:
288
198
  if self.agent.linter:
289
199
  lint_results = self.agent.linter.lint_file(file_path)
290
200
  if lint_results and lint_results.issues:
291
- has_lint_issues = True
292
- # 格式化 lint 问题
293
- formatted_issues = self._format_lint_issues(lint_results)
294
- lint_message = f"\n\n代码质量检查发现 {len(lint_results.issues)} 个问题:\n{formatted_issues}"
201
+ # 过滤 lint 结果,只保留 ERROR 和 WARNING 级别的问题
202
+ filtered_results = self._filter_lint_issues(lint_results)
203
+ if filtered_results.issues:
204
+ has_lint_issues = True
205
+ # 格式化 lint 问题
206
+ formatted_issues = self._format_lint_issues(filtered_results)
207
+ lint_message = f"\n\n代码质量检查发现 {len(filtered_results.issues)} 个问题"
295
208
  except Exception as e:
296
209
  logger.error(f"Lint 检查失败: {str(e)}")
297
210
  lint_message = "\n\n尝试进行代码质量检查时出错。"
@@ -309,17 +222,13 @@ class ReplaceInFileToolResolver(BaseToolResolver):
309
222
  message = get_message_with_format("replace_in_file.apply_success",
310
223
  applied=applied_count,
311
224
  total=len(parsed_blocks),
312
- file_path=file_path)
313
-
314
- # 将 lint 消息添加到结果中,如果启用了Lint
315
- if enable_lint:
316
- message += lint_message
225
+ file_path=file_path)
317
226
 
318
227
  # 变更跟踪,回调AgenticEdit
319
228
  if self.agent:
320
229
  rel_path = os.path.relpath(abs_file_path, abs_project_dir)
321
230
  self.agent.record_file_change(rel_path, "modified", diff=diff_content, content=current_content)
322
-
231
+
323
232
  # 附加 lint 结果到返回内容
324
233
  result_content = {
325
234
  "content": current_content,
@@ -327,6 +236,7 @@ class ReplaceInFileToolResolver(BaseToolResolver):
327
236
 
328
237
  # 只有在启用Lint时才添加Lint结果
329
238
  if enable_lint:
239
+ message = message + "\n" + lint_message
330
240
  result_content["lint_results"] = {
331
241
  "has_issues": has_lint_issues,
332
242
  "issues": formatted_issues if has_lint_issues else None
@@ -348,9 +258,5 @@ class ReplaceInFileToolResolver(BaseToolResolver):
348
258
  # Security check
349
259
  if not abs_file_path.startswith(abs_project_dir):
350
260
  return ToolResult(success=False, message=get_message_with_format("replace_in_file.access_denied", file_path=file_path))
351
-
352
- # Choose the appropriate implementation based on whether shadow_manager is available
353
- if self.shadow_manager:
354
- return self.replace_in_file_with_shadow(file_path, diff_content, source_dir, abs_project_dir, abs_file_path)
355
- else:
356
- return self.replace_in_file_normal(file_path, diff_content, source_dir, abs_project_dir, abs_file_path)
261
+
262
+ return self.replace_in_file_normal(file_path, diff_content, source_dir, abs_project_dir, abs_file_path)