auto-coder 0.1.389__tar.gz → 0.1.391__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 (367) hide show
  1. {auto_coder-0.1.389 → auto_coder-0.1.391}/PKG-INFO +2 -2
  2. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/auto_coder.egg-info/PKG-INFO +2 -2
  3. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/auto_coder.egg-info/SOURCES.txt +5 -0
  4. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/auto_coder.egg-info/requires.txt +1 -1
  5. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/auto_coder_rag.py +5 -0
  6. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/auto_coder_runner.py +12 -3
  7. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/chat_auto_coder.py +6 -2
  8. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/__init__.py +2 -0
  9. auto_coder-0.1.391/src/autocoder/common/v2/agent/agentic_edit_tools/dangerous_command_checker.py +191 -0
  10. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/agent/agentic_edit_tools/execute_command_tool_resolver.py +34 -25
  11. auto_coder-0.1.391/src/autocoder/memory/active_changes.py +255 -0
  12. auto_coder-0.1.391/src/autocoder/memory/active_diagrams.py +302 -0
  13. auto_coder-0.1.391/src/autocoder/memory/active_documents.py +287 -0
  14. auto_coder-0.1.391/src/autocoder/memory/active_header.py +88 -0
  15. auto_coder-0.1.391/src/autocoder/memory/active_package.py +355 -0
  16. auto_coder-0.1.391/src/autocoder/utils/types.py +0 -0
  17. auto_coder-0.1.391/src/autocoder/version.py +2 -0
  18. auto_coder-0.1.389/src/autocoder/memory/__init__.py +0 -7
  19. auto_coder-0.1.389/src/autocoder/memory/active_package.py +0 -611
  20. auto_coder-0.1.389/src/autocoder/version.py +0 -2
  21. {auto_coder-0.1.389 → auto_coder-0.1.391}/LICENSE +0 -0
  22. {auto_coder-0.1.389 → auto_coder-0.1.391}/README.md +0 -0
  23. {auto_coder-0.1.389 → auto_coder-0.1.391}/setup.cfg +0 -0
  24. {auto_coder-0.1.389 → auto_coder-0.1.391}/setup.py +0 -0
  25. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/auto_coder.egg-info/dependency_links.txt +0 -0
  26. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/auto_coder.egg-info/entry_points.txt +0 -0
  27. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/auto_coder.egg-info/top_level.txt +0 -0
  28. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/__init__.py +0 -0
  29. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/__init__.py +0 -0
  30. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/agentic_filter.py +0 -0
  31. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/auto_demand_organizer.py +0 -0
  32. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/auto_filegroup.py +0 -0
  33. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/auto_guess_query.py +0 -0
  34. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/auto_learn.py +0 -0
  35. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/auto_learn_from_commit.py +0 -0
  36. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/auto_review_commit.py +0 -0
  37. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/auto_tool.py +0 -0
  38. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/base_agentic/__init__.py +0 -0
  39. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/base_agentic/agent_hub.py +0 -0
  40. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/base_agentic/agentic_lang.py +0 -0
  41. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/base_agentic/agentic_tool_display.py +0 -0
  42. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/base_agentic/base_agent.py +0 -0
  43. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/base_agentic/default_tools.py +0 -0
  44. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/base_agentic/test_base_agent.py +0 -0
  45. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/base_agentic/tool_registry.py +0 -0
  46. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/base_agentic/tools/__init__.py +0 -0
  47. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/base_agentic/tools/ask_followup_question_tool_resolver.py +0 -0
  48. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/base_agentic/tools/attempt_completion_tool_resolver.py +0 -0
  49. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/base_agentic/tools/base_tool_resolver.py +0 -0
  50. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/base_agentic/tools/example_tool_resolver.py +0 -0
  51. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/base_agentic/tools/execute_command_tool_resolver.py +0 -0
  52. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/base_agentic/tools/list_files_tool_resolver.py +0 -0
  53. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/base_agentic/tools/plan_mode_respond_tool_resolver.py +0 -0
  54. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/base_agentic/tools/read_file_tool_resolver.py +0 -0
  55. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/base_agentic/tools/replace_in_file_tool_resolver.py +0 -0
  56. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/base_agentic/tools/search_files_tool_resolver.py +0 -0
  57. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/base_agentic/tools/talk_to_group_tool_resolver.py +0 -0
  58. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/base_agentic/tools/talk_to_tool_resolver.py +0 -0
  59. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/base_agentic/tools/use_mcp_tool_resolver.py +0 -0
  60. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/base_agentic/tools/write_to_file_tool_resolver.py +0 -0
  61. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/base_agentic/types.py +0 -0
  62. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/base_agentic/utils.py +0 -0
  63. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/coder.py +0 -0
  64. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/designer.py +0 -0
  65. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/planner.py +0 -0
  66. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/agent/project_reader.py +0 -0
  67. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/auto_coder.py +0 -0
  68. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/auto_coder_server.py +0 -0
  69. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/benchmark.py +0 -0
  70. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/chat/__init__.py +0 -0
  71. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/chat/conf_command.py +0 -0
  72. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/chat/models_command.py +0 -0
  73. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/chat/rules_command.py +0 -0
  74. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/chat_auto_coder_lang.py +0 -0
  75. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/command_args.py +0 -0
  76. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/command_parser.py +0 -0
  77. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/commands/__init__.py +0 -0
  78. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/commands/auto_command.py +0 -0
  79. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/commands/auto_web.py +0 -0
  80. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/commands/tools.py +0 -0
  81. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/JupyterClient.py +0 -0
  82. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/ShellClient.py +0 -0
  83. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/action_yml_file_manager.py +0 -0
  84. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/anything2images.py +0 -0
  85. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/anything2img.py +0 -0
  86. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/audio.py +0 -0
  87. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/auto_coder_lang.py +0 -0
  88. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/auto_configure.py +0 -0
  89. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/buildin_tokenizer.py +0 -0
  90. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/chunk_validation.py +0 -0
  91. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/cleaner.py +0 -0
  92. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/code_auto_execute.py +0 -0
  93. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/code_auto_generate.py +0 -0
  94. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/code_auto_generate_diff.py +0 -0
  95. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/code_auto_generate_editblock.py +0 -0
  96. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/code_auto_generate_strict_diff.py +0 -0
  97. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/code_auto_merge.py +0 -0
  98. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/code_auto_merge_diff.py +0 -0
  99. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/code_auto_merge_editblock.py +0 -0
  100. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/code_auto_merge_strict_diff.py +0 -0
  101. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/code_modification_ranker.py +0 -0
  102. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/command_completer.py +0 -0
  103. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/command_completer_v2.py +0 -0
  104. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/command_file_manager/__init__.py +0 -0
  105. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/command_file_manager/examples.py +0 -0
  106. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/command_file_manager/manager.py +0 -0
  107. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/command_file_manager/models.py +0 -0
  108. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/command_file_manager/utils.py +0 -0
  109. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/command_generator.py +0 -0
  110. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/command_templates.py +0 -0
  111. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/computer_use.py +0 -0
  112. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/conf_import_export.py +0 -0
  113. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/conf_utils.py +0 -0
  114. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/conf_validator.py +0 -0
  115. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/const.py +0 -0
  116. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/context_pruner.py +0 -0
  117. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/conversation_pruner.py +0 -0
  118. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/conversations/__init__.py +0 -0
  119. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/conversations/compatibility.py +0 -0
  120. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/conversations/conversation_manager.py +0 -0
  121. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/conversations/example.py +0 -0
  122. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/directory_cache/__init__.py +0 -0
  123. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/directory_cache/cache.py +0 -0
  124. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/directory_cache/test_cache.py +0 -0
  125. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/file_checkpoint/__init__.py +0 -0
  126. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/file_checkpoint/backup.py +0 -0
  127. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/file_checkpoint/conversation_checkpoint.py +0 -0
  128. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/file_checkpoint/examples.py +0 -0
  129. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/file_checkpoint/manager.py +0 -0
  130. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/file_checkpoint/models.py +0 -0
  131. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/file_checkpoint/store.py +0 -0
  132. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/file_checkpoint/test_backup.py +0 -0
  133. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/file_checkpoint/test_manager.py +0 -0
  134. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/file_checkpoint/test_models.py +0 -0
  135. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/file_checkpoint/test_store.py +0 -0
  136. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/file_checkpoint/test_utils.py +0 -0
  137. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/file_checkpoint/utils.py +0 -0
  138. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/file_monitor/__init__.py +0 -0
  139. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/file_monitor/monitor.py +0 -0
  140. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/files.py +0 -0
  141. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/git_utils.py +0 -0
  142. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/global_cancel.py +0 -0
  143. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/ignorefiles/__init__.py +0 -0
  144. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/ignorefiles/ignore_file_utils.py +0 -0
  145. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/ignorefiles/test_ignore_file_utils.py +0 -0
  146. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/image_to_page.py +0 -0
  147. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/index_import_export.py +0 -0
  148. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/interpreter.py +0 -0
  149. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/llm_friendly_package.py +0 -0
  150. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/llm_friendly_package_example.py +0 -0
  151. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/llm_friendly_package_test.py +0 -0
  152. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/mcp_hub.py +0 -0
  153. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/mcp_server.py +0 -0
  154. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/mcp_server_install.py +0 -0
  155. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/mcp_server_types.py +0 -0
  156. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/mcp_servers/__init__.py +0 -0
  157. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/mcp_servers/mcp_server_gpt4o_mini_search.py +0 -0
  158. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/mcp_servers/mcp_server_perplexity.py +0 -0
  159. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/mcp_tools.py +0 -0
  160. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/memory_manager.py +0 -0
  161. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/model_speed_tester.py +0 -0
  162. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/openai_content.py +0 -0
  163. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/printer.py +0 -0
  164. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/recall_validation.py +0 -0
  165. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/result_manager.py +0 -0
  166. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/rulefiles/__init__.py +0 -0
  167. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/rulefiles/autocoderrules_utils.py +0 -0
  168. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/run_cmd.py +0 -0
  169. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/save_formatted_log.py +0 -0
  170. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/screenshots.py +0 -0
  171. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/search.py +0 -0
  172. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/search_replace.py +0 -0
  173. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/shells.py +0 -0
  174. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/stats_panel.py +0 -0
  175. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/stream_out_type.py +0 -0
  176. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/sys_prompt.py +0 -0
  177. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/test_run_cmd.py +0 -0
  178. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/text.py +0 -0
  179. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/token_cost_caculate.py +0 -0
  180. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/types.py +0 -0
  181. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/utils_code_auto_generate.py +0 -0
  182. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/__init__.py +0 -0
  183. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/agent/__init__.py +0 -0
  184. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/agent/agentic_edit.py +0 -0
  185. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/agent/agentic_edit_tools/__init__.py +0 -0
  186. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/agent/agentic_edit_tools/ask_followup_question_tool_resolver.py +0 -0
  187. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/agent/agentic_edit_tools/attempt_completion_tool_resolver.py +0 -0
  188. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/agent/agentic_edit_tools/base_tool_resolver.py +0 -0
  189. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/agent/agentic_edit_tools/list_code_definition_names_tool_resolver.py +0 -0
  190. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/agent/agentic_edit_tools/list_files_tool_resolver.py +0 -0
  191. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/agent/agentic_edit_tools/list_package_info_tool_resolver.py +0 -0
  192. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/agent/agentic_edit_tools/plan_mode_respond_tool_resolver.py +0 -0
  193. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/agent/agentic_edit_tools/read_file_tool_resolver.py +0 -0
  194. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/agent/agentic_edit_tools/replace_in_file_tool_resolver.py +0 -0
  195. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/agent/agentic_edit_tools/search_files_tool_resolver.py +0 -0
  196. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/agent/agentic_edit_tools/test_execute_command_tool_resolver.py +0 -0
  197. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/agent/agentic_edit_tools/test_search_files_tool_resolver.py +0 -0
  198. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/agent/agentic_edit_tools/test_write_to_file_tool_resolver.py +0 -0
  199. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/agent/agentic_edit_tools/use_mcp_tool_resolver.py +0 -0
  200. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/agent/agentic_edit_tools/write_to_file_tool_resolver.py +0 -0
  201. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/agent/agentic_edit_types.py +0 -0
  202. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/agent/agentic_tool_display.py +0 -0
  203. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/code_agentic_editblock_manager.py +0 -0
  204. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/code_auto_generate.py +0 -0
  205. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/code_auto_generate_diff.py +0 -0
  206. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/code_auto_generate_editblock.py +0 -0
  207. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/code_auto_generate_strict_diff.py +0 -0
  208. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/code_auto_merge.py +0 -0
  209. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/code_auto_merge_diff.py +0 -0
  210. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/code_auto_merge_editblock.py +0 -0
  211. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/code_auto_merge_strict_diff.py +0 -0
  212. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/code_diff_manager.py +0 -0
  213. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/code_editblock_manager.py +0 -0
  214. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/code_manager.py +0 -0
  215. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/common/v2/code_strict_diff_manager.py +0 -0
  216. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/compilers/__init__.py +0 -0
  217. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/compilers/base_compiler.py +0 -0
  218. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/compilers/compiler_config_api.py +0 -0
  219. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/compilers/compiler_config_manager.py +0 -0
  220. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/compilers/compiler_factory.py +0 -0
  221. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/compilers/java_compiler.py +0 -0
  222. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/compilers/models.py +0 -0
  223. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/compilers/normal_compiler.py +0 -0
  224. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/compilers/provided_compiler.py +0 -0
  225. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/compilers/python_compiler.py +0 -0
  226. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/compilers/reactjs_compiler.py +0 -0
  227. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/compilers/shadow_compiler.py +0 -0
  228. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/compilers/vue_compiler.py +0 -0
  229. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/data/byzerllm.md +0 -0
  230. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/data/tokenizer.json +0 -0
  231. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/db/__init__.py +0 -0
  232. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/db/store.py +0 -0
  233. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/dispacher/__init__.py +0 -0
  234. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/dispacher/actions/__init__.py +0 -0
  235. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/dispacher/actions/action.py +0 -0
  236. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/dispacher/actions/copilot.py +0 -0
  237. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/dispacher/actions/plugins/__init__.py +0 -0
  238. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/dispacher/actions/plugins/action_regex_project.py +0 -0
  239. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/events/__init__.py +0 -0
  240. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/events/event_content.py +0 -0
  241. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/events/event_manager.py +0 -0
  242. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/events/event_manager_singleton.py +0 -0
  243. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/events/event_store.py +0 -0
  244. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/events/event_types.py +0 -0
  245. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/helper/__init__.py +0 -0
  246. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/helper/project_creator.py +0 -0
  247. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/helper/rag_doc_creator.py +0 -0
  248. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/index/__init__.py +0 -0
  249. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/index/entry.py +0 -0
  250. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/index/filter/__init__.py +0 -0
  251. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/index/filter/normal_filter.py +0 -0
  252. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/index/filter/quick_filter.py +0 -0
  253. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/index/for_command.py +0 -0
  254. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/index/index.py +0 -0
  255. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/index/symbols_utils.py +0 -0
  256. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/index/types.py +0 -0
  257. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/lang.py +0 -0
  258. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/linters/__init__.py +0 -0
  259. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/linters/base_linter.py +0 -0
  260. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/linters/linter_factory.py +0 -0
  261. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/linters/models.py +0 -0
  262. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/linters/normal_linter.py +0 -0
  263. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/linters/python_linter.py +0 -0
  264. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/linters/reactjs_linter.py +0 -0
  265. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/linters/shadow_linter.py +0 -0
  266. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/linters/test_python_linter.py +0 -0
  267. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/linters/test_reactjs_linter.py +0 -0
  268. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/linters/test_vue_linter.py +0 -0
  269. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/linters/vue_linter.py +0 -0
  270. {auto_coder-0.1.389/src/autocoder/rag → auto_coder-0.1.391/src/autocoder/memory}/__init__.py +0 -0
  271. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/memory/active_context_manager.py +0 -0
  272. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/memory/async_processor.py +0 -0
  273. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/memory/directory_mapper.py +0 -0
  274. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/models.py +0 -0
  275. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/plugins/__init__.py +0 -0
  276. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/plugins/dynamic_completion_example.py +0 -0
  277. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/plugins/git_helper_plugin.py +0 -0
  278. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/plugins/sample_plugin.py +0 -0
  279. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/plugins/token_helper_plugin.py +0 -0
  280. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/plugins/utils.py +0 -0
  281. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/privacy/__init__.py +0 -0
  282. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/privacy/model_filter.py +0 -0
  283. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/pyproject/__init__.py +0 -0
  284. {auto_coder-0.1.389/src/autocoder/rag/cache → auto_coder-0.1.391/src/autocoder/rag}/__init__.py +0 -0
  285. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/agentic_rag.py +0 -0
  286. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/api_server.py +0 -0
  287. {auto_coder-0.1.389/src/autocoder/rag/stream_event → auto_coder-0.1.391/src/autocoder/rag/cache}/__init__.py +0 -0
  288. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/cache/base_cache.py +0 -0
  289. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/cache/byzer_storage_cache.py +0 -0
  290. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/cache/cache_result_merge.py +0 -0
  291. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/cache/failed_files_utils.py +0 -0
  292. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/cache/file_monitor_cache.py +0 -0
  293. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/cache/local_byzer_storage_cache.py +0 -0
  294. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/cache/local_duckdb_storage_cache.py +0 -0
  295. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/cache/rag_file_meta.py +0 -0
  296. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/cache/simple_cache.py +0 -0
  297. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/conversation_to_queries.py +0 -0
  298. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/doc_filter.py +0 -0
  299. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/document_retriever.py +0 -0
  300. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/lang.py +0 -0
  301. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/llm_wrapper.py +0 -0
  302. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/loaders/__init__.py +0 -0
  303. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/loaders/docx_loader.py +0 -0
  304. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/loaders/excel_loader.py +0 -0
  305. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/loaders/filter_utils.py +0 -0
  306. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/loaders/image_loader.py +0 -0
  307. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/loaders/pdf_loader.py +0 -0
  308. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/loaders/ppt_loader.py +0 -0
  309. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/long_context_rag.py +0 -0
  310. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/qa_conversation_strategy.py +0 -0
  311. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/rag_config.py +0 -0
  312. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/rag_entry.py +0 -0
  313. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/relevant_utils.py +0 -0
  314. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/searchable.py +0 -0
  315. {auto_coder-0.1.389/src/autocoder/shadows → auto_coder-0.1.391/src/autocoder/rag/stream_event}/__init__.py +0 -0
  316. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/stream_event/event_writer.py +0 -0
  317. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/stream_event/types.py +0 -0
  318. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/test_doc_filter.py +0 -0
  319. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/test_long_context_rag.py +0 -0
  320. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/test_token_limiter.py +0 -0
  321. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/token_checker.py +0 -0
  322. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/token_counter.py +0 -0
  323. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/token_limiter.py +0 -0
  324. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/token_limiter_utils.py +0 -0
  325. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/tools/__init__.py +0 -0
  326. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/tools/recall_tool.py +0 -0
  327. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/tools/search_tool.py +0 -0
  328. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/types.py +0 -0
  329. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/utils.py +0 -0
  330. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/rag/variable_holder.py +0 -0
  331. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/regexproject/__init__.py +0 -0
  332. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/run_context.py +0 -0
  333. {auto_coder-0.1.389/src/autocoder/utils/auto_coder_utils → auto_coder-0.1.391/src/autocoder/shadows}/__init__.py +0 -0
  334. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/shadows/shadow_manager.py +0 -0
  335. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/suffixproject/__init__.py +0 -0
  336. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/tsproject/__init__.py +0 -0
  337. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/utils/__init__.py +0 -0
  338. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/utils/_markitdown.py +0 -0
  339. {auto_coder-0.1.389/src/autocoder/utils/chat_auto_coder_utils → auto_coder-0.1.391/src/autocoder/utils/auto_coder_utils}/__init__.py +0 -0
  340. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/utils/auto_coder_utils/chat_stream_out.py +0 -0
  341. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/utils/auto_project_type.py +0 -0
  342. /auto_coder-0.1.389/src/autocoder/utils/types.py → /auto_coder-0.1.391/src/autocoder/utils/chat_auto_coder_utils/__init__.py +0 -0
  343. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/utils/conversation_store.py +0 -0
  344. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/utils/llm_client_interceptors.py +0 -0
  345. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/utils/llms.py +0 -0
  346. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/utils/log_capture.py +0 -0
  347. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/utils/model_provider_selector.py +0 -0
  348. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/utils/multi_turn.py +0 -0
  349. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/utils/operate_config_api.py +0 -0
  350. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/utils/print_table.py +0 -0
  351. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/utils/project_structure.py +0 -0
  352. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/utils/queue_communicate.py +0 -0
  353. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/utils/request_event_queue.py +0 -0
  354. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/utils/request_queue.py +0 -0
  355. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/utils/rest.py +0 -0
  356. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/utils/stream_thinking.py +0 -0
  357. {auto_coder-0.1.389 → auto_coder-0.1.391}/src/autocoder/utils/thread_utils.py +0 -0
  358. {auto_coder-0.1.389 → auto_coder-0.1.391}/tests/test_action_regex_project.py +0 -0
  359. {auto_coder-0.1.389 → auto_coder-0.1.391}/tests/test_action_yml_file_manager.py +0 -0
  360. {auto_coder-0.1.389 → auto_coder-0.1.391}/tests/test_chat_auto_coder.py +0 -0
  361. {auto_coder-0.1.389 → auto_coder-0.1.391}/tests/test_code_auto_merge_editblock.py +0 -0
  362. {auto_coder-0.1.389 → auto_coder-0.1.391}/tests/test_command_completer.py +0 -0
  363. {auto_coder-0.1.389 → auto_coder-0.1.391}/tests/test_planner.py +0 -0
  364. {auto_coder-0.1.389 → auto_coder-0.1.391}/tests/test_plugins.py +0 -0
  365. {auto_coder-0.1.389 → auto_coder-0.1.391}/tests/test_privacy.py +0 -0
  366. {auto_coder-0.1.389 → auto_coder-0.1.391}/tests/test_queue_communicate.py +0 -0
  367. {auto_coder-0.1.389 → auto_coder-0.1.391}/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.389
3
+ Version: 0.1.391
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.187
31
+ Requires-Dist: byzerllm[saas]>=0.1.188
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.389
3
+ Version: 0.1.391
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.187
31
+ Requires-Dist: byzerllm[saas]>=0.1.188
32
32
  Requires-Dist: patch
33
33
  Requires-Dist: diff_match_patch
34
34
  Requires-Dist: GitPython
@@ -191,6 +191,7 @@ src/autocoder/common/v2/agent/agentic_edit_tools/__init__.py
191
191
  src/autocoder/common/v2/agent/agentic_edit_tools/ask_followup_question_tool_resolver.py
192
192
  src/autocoder/common/v2/agent/agentic_edit_tools/attempt_completion_tool_resolver.py
193
193
  src/autocoder/common/v2/agent/agentic_edit_tools/base_tool_resolver.py
194
+ src/autocoder/common/v2/agent/agentic_edit_tools/dangerous_command_checker.py
194
195
  src/autocoder/common/v2/agent/agentic_edit_tools/execute_command_tool_resolver.py
195
196
  src/autocoder/common/v2/agent/agentic_edit_tools/list_code_definition_names_tool_resolver.py
196
197
  src/autocoder/common/v2/agent/agentic_edit_tools/list_files_tool_resolver.py
@@ -258,7 +259,11 @@ src/autocoder/linters/test_reactjs_linter.py
258
259
  src/autocoder/linters/test_vue_linter.py
259
260
  src/autocoder/linters/vue_linter.py
260
261
  src/autocoder/memory/__init__.py
262
+ src/autocoder/memory/active_changes.py
261
263
  src/autocoder/memory/active_context_manager.py
264
+ src/autocoder/memory/active_diagrams.py
265
+ src/autocoder/memory/active_documents.py
266
+ src/autocoder/memory/active_header.py
262
267
  src/autocoder/memory/active_package.py
263
268
  src/autocoder/memory/async_processor.py
264
269
  src/autocoder/memory/directory_mapper.py
@@ -18,7 +18,7 @@ prompt-toolkit
18
18
  tokenizers
19
19
  aiofiles
20
20
  readerwriterlock
21
- byzerllm[saas]>=0.1.187
21
+ byzerllm[saas]>=0.1.188
22
22
  patch
23
23
  diff_match_patch
24
24
  GitPython
@@ -936,6 +936,11 @@ def main(input_args: Optional[List[str]] = None):
936
936
  logger.error(
937
937
  "The document retriever does not support hybrid index building"
938
938
  )
939
+ try:
940
+ monitor = FileMonitor(args.doc_dir)
941
+ monitor.stop()
942
+ except Exception as e:
943
+ logger.warning(f"Failed to stop file monitor: {e}")
939
944
 
940
945
  elif args.command == "tools":
941
946
  if args.tool == "count":
@@ -258,6 +258,7 @@ def configure_logger():
258
258
  ]
259
259
  )
260
260
 
261
+
261
262
  def init_singleton_instances():
262
263
  # 初始化文件监控系统
263
264
  try:
@@ -275,9 +276,17 @@ def init_singleton_instances():
275
276
  _ = IgnoreFileManager(project_root=project_root)
276
277
 
277
278
 
278
- if os.environ.get('autocoder_auto_init',"true") in ["true","True","True",True]:
279
- configure_logger()
280
- init_singleton_instances()
279
+ def start():
280
+ if os.environ.get('autocoder_auto_init',"true") in ["true","True","True",True]:
281
+ configure_logger()
282
+ init_singleton_instances()
283
+
284
+ def stop():
285
+ try:
286
+ FileMonitor(project_root).stop()
287
+ except Exception as e:
288
+ global_logger.error(f"Failed to stop file monitor: {e}")
289
+ global_logger.exception(e)
281
290
 
282
291
  def initialize_system(args:InitializeSystemRequest):
283
292
  from autocoder.utils.model_provider_selector import ModelProviderSelector
@@ -52,7 +52,9 @@ from autocoder.auto_coder_runner import (
52
52
  summon,
53
53
  get_memory,
54
54
  active_context,
55
- rules
55
+ rules,
56
+ start as start_engine,
57
+ stop as stop_engine
56
58
  )
57
59
  # Ensure the correct import is present
58
60
  from autocoder.chat.conf_command import handle_conf_command
@@ -269,6 +271,7 @@ ARGS = None
269
271
 
270
272
  def main():
271
273
  load_tokenizer()
274
+ start_engine()
272
275
 
273
276
  ARGS = parse_arguments()
274
277
 
@@ -668,13 +671,14 @@ def main():
668
671
  except EOFError:
669
672
  try:
670
673
  # Shutdown all plugins before exiting
671
- plugin_manager.shutdown_all()
674
+ plugin_manager.shutdown_all()
672
675
  # save_memory()
673
676
  try:
674
677
  if get_mcp_server():
675
678
  get_mcp_server().stop()
676
679
  except Exception as e:
677
680
  pass
681
+ stop_engine()
678
682
  except Exception as e:
679
683
  print(
680
684
  f"\033[91mAn error occurred while saving memory:\033[0m \033[93m{type(e).__name__}\033[0m - {str(e)}"
@@ -275,6 +275,8 @@ class AutoCoderArgs(pydantic.BaseModel):
275
275
 
276
276
  enable_agentic_filter: Optional[bool] = False
277
277
  enable_agentic_edit: Optional[bool] = True
278
+ enable_agentic_auto_approve: Optional[bool] = False
279
+ enable_agentic_dangerous_command_check: Optional[bool] = False
278
280
 
279
281
 
280
282
  index_filter_level: Optional[int] = 0
@@ -0,0 +1,191 @@
1
+ import re
2
+ from typing import List, Tuple, Optional
3
+ from loguru import logger
4
+
5
+
6
+ class DangerousCommandChecker:
7
+ """危险命令检查器,用于检测和防止执行潜在危险的系统命令"""
8
+
9
+ def __init__(self):
10
+ # 危险命令模式列表
11
+ self.dangerous_patterns = [
12
+ # 文件删除相关
13
+ (r'\brm\s+.*-[rf]', "删除文件命令"),
14
+ (r'\brm\s+-[rf]', "删除文件命令"),
15
+ (r'\bunlink\b', "删除文件命令"),
16
+
17
+ # 系统格式化和分区操作
18
+ (r'\bmkfs\b', "格式化文件系统命令"),
19
+ (r'\bfdisk\b', "磁盘分区命令"),
20
+ (r'\bparted\b', "磁盘分区命令"),
21
+ (r'\bdd\s+.*if=.*of=', "数据复制命令,可能覆盖系统文件"),
22
+
23
+ # 权限修改
24
+ (r'\bchmod\s+777\b', "危险权限修改"),
25
+ (r'\bchmod\s+\d*7\d*7\b', "危险权限修改"),
26
+ (r'\bchown\s+.*root\b', "更改文件所有者为root"),
27
+
28
+ # 提权相关
29
+ (r'\bsudo\s+.*rm\b', "使用sudo执行删除命令"),
30
+ (r'\bsu\s+-\b', "切换到root用户"),
31
+ (r'\bsu\s+root\b', "切换到root用户"),
32
+
33
+ # 系统服务相关
34
+ (r'\bsystemctl\s+stop\b', "停止系统服务"),
35
+ (r'\bsystemctl\s+disable\b', "禁用系统服务"),
36
+ (r'\bservice\s+.*stop\b', "停止系统服务"),
37
+
38
+ # 进程操作
39
+ (r'\bkill\s+-9\s+1\b', "强制终止init进程"),
40
+ (r'\bkillall\s+-9\b', "强制终止所有进程"),
41
+ (r'\bpkill\s+-9\b', "强制终止进程"),
42
+
43
+ # 系统关机重启
44
+ (r'\bshutdown\b', "系统关机命令"),
45
+ (r'\breboot\b', "系统重启命令"),
46
+ (r'\bhalt\b', "系统停机命令"),
47
+ (r'\bpoweroff\b', "系统断电命令"),
48
+
49
+ # 环境变量和系统配置
50
+ (r'\bexport\s+PATH=', "修改PATH环境变量"),
51
+ (r'\bunset\s+PATH\b', "删除PATH环境变量"),
52
+ (r'>\s*/etc/', "重定向写入系统配置文件"),
53
+ (r'\becho\s+.*>\s*/etc/', "写入系统配置文件"),
54
+
55
+ # 系统文件编辑
56
+ (r'\bvi\s+/etc/', "编辑系统配置文件"),
57
+ (r'\bnano\s+/etc/', "编辑系统配置文件"),
58
+ (r'\bemacs\s+/etc/', "编辑系统配置文件"),
59
+
60
+ # 历史和日志清理
61
+ (r'\bhistory\s+-c\b', "清空命令历史"),
62
+ (r'>\s*/dev/null\s+2>&1', "重定向所有输出到null"),
63
+ (r'\brm\s+.*\.log\b', "删除日志文件"),
64
+
65
+ # 安装和包管理(可能安装恶意软件)
66
+ (r'\bapt\s+install\s+.*--force\b', "强制安装软件包"),
67
+ (r'\byum\s+install\s+.*--assumeyes\b', "自动确认安装软件包"),
68
+ (r'\bpip\s+install\s+.*--force\b', "强制安装Python包"),
69
+ ]
70
+
71
+ # 危险字符模式
72
+ self.dangerous_chars = [
73
+ (r';', "命令分隔符,可能执行多个命令"),
74
+ (r'`.*`', "命令替换,可能执行隐藏命令"),
75
+ (r'\$\(.*\)', "命令替换,可能执行隐藏命令"),
76
+ (r'\|(?!\s*head\b|\s*tail\b|\s*grep\b|\s*sort\b|\s*uniq\b|\s*wc\b|\s*cat\b)', "管道符,可能传递敏感数据"),
77
+ (r'&&(?!\s*echo\b)', "逻辑与操作符,可能链式执行命令"),
78
+ (r'\|\|', "逻辑或操作符,可能条件执行命令"),
79
+ (r'<\(', "进程替换"),
80
+ (r'>\(', "进程替换"),
81
+ ]
82
+
83
+ # 允许的安全命令前缀(白名单)
84
+ self.safe_command_prefixes = [
85
+ 'ls', 'pwd', 'whoami', 'date', 'echo', 'cat', 'head', 'tail',
86
+ 'grep', 'find', 'which', 'man', 'help', 'cd', 'mkdir', 'touch',
87
+ 'cp', 'mv', 'wc', 'sort', 'uniq', 'diff', 'tree', 'file',
88
+ 'stat', 'du', 'df', 'ps', 'top', 'history', 'env', 'printenv'
89
+ ]
90
+
91
+ def is_command_dangerous(self, command: str) -> Tuple[bool, Optional[str]]:
92
+ """
93
+ 检查命令是否危险
94
+
95
+ Args:
96
+ command: 要检查的命令字符串
97
+
98
+ Returns:
99
+ Tuple[bool, Optional[str]]: (是否危险, 危险原因)
100
+ """
101
+ command = command.strip()
102
+
103
+ # 空命令不危险
104
+ if not command:
105
+ return False, None
106
+
107
+ # 检查危险命令模式
108
+ for pattern, reason in self.dangerous_patterns:
109
+ if re.search(pattern, command, re.IGNORECASE):
110
+ logger.warning(f"检测到危险命令模式: {pattern} in command: {command}")
111
+ return True, f"危险命令: {reason}"
112
+
113
+ # 检查危险字符
114
+ for pattern, reason in self.dangerous_chars:
115
+ if re.search(pattern, command):
116
+ # 对于 && 的特殊处理,允许 cd 命令链
117
+ if pattern == r'&&(?!\s*echo\b)' and command.strip().startswith('cd '):
118
+ continue
119
+ logger.warning(f"检测到危险字符: {pattern} in command: {command}")
120
+ return True, f"包含危险字符: {reason}"
121
+
122
+ return False, None
123
+
124
+ def is_command_in_whitelist(self, command: str) -> bool:
125
+ """
126
+ 检查命令是否在安全白名单中
127
+
128
+ Args:
129
+ command: 要检查的命令字符串
130
+
131
+ Returns:
132
+ bool: 是否在白名单中
133
+ """
134
+ command = command.strip()
135
+ if not command:
136
+ return False
137
+
138
+ # 获取命令的第一个词(命令名)
139
+ first_word = command.split()[0]
140
+
141
+ return first_word.lower() in self.safe_command_prefixes
142
+
143
+ def check_command_safety(self, command: str, allow_whitelist_bypass: bool = True) -> Tuple[bool, Optional[str]]:
144
+ """
145
+ 综合检查命令安全性
146
+
147
+ Args:
148
+ command: 要检查的命令字符串
149
+ allow_whitelist_bypass: 是否允许白名单命令绕过危险检查
150
+
151
+ Returns:
152
+ Tuple[bool, Optional[str]]: (是否安全, 不安全的原因)
153
+ """
154
+ # 首先检查是否危险
155
+ is_dangerous, danger_reason = self.is_command_dangerous(command)
156
+
157
+ if not is_dangerous:
158
+ return True, None
159
+
160
+ # 如果允许白名单绕过,且命令在白名单中,则认为安全
161
+ if allow_whitelist_bypass and self.is_command_in_whitelist(command):
162
+ logger.info(f"命令在白名单中,允许执行: {command}")
163
+ return True, None
164
+
165
+ return False, danger_reason
166
+
167
+ def get_safety_recommendations(self, command: str) -> List[str]:
168
+ """
169
+ 为不安全的命令提供安全建议
170
+
171
+ Args:
172
+ command: 要检查的命令字符串
173
+
174
+ Returns:
175
+ List[str]: 安全建议列表
176
+ """
177
+ recommendations = []
178
+
179
+ if 'rm' in command:
180
+ recommendations.append("使用 'rm -i' 进行交互式删除")
181
+ recommendations.append("在删除前使用 'ls' 确认要删除的文件")
182
+
183
+ if 'chmod 777' in command:
184
+ recommendations.append("避免使用 '777' 权限,考虑更安全的权限设置")
185
+ recommendations.append("使用 'chmod 755' 或 'chmod 644' 等更安全的权限")
186
+
187
+ if 'sudo' in command:
188
+ recommendations.append("确认您真的需要root权限")
189
+ recommendations.append("考虑使用更具体的权限而不是sudo")
190
+
191
+ return recommendations
@@ -4,6 +4,7 @@ from typing import Dict, Any, Optional
4
4
  from autocoder.common.run_cmd import run_cmd_subprocess
5
5
  from autocoder.common.v2.agent.agentic_edit_tools.base_tool_resolver import BaseToolResolver
6
6
  from autocoder.common.v2.agent.agentic_edit_types import ExecuteCommandTool, ToolResult # Import ToolResult from types
7
+ from autocoder.common.v2.agent.agentic_edit_tools.dangerous_command_checker import DangerousCommandChecker
7
8
  from autocoder.common import shells
8
9
  from autocoder.common.printer import Printer
9
10
  from loguru import logger
@@ -26,6 +27,8 @@ class ExecuteCommandToolResolver(BaseToolResolver):
26
27
  args=self.args,
27
28
  llm=self.agent.context_prune_llm
28
29
  )
30
+ # 初始化危险命令检查器
31
+ self.danger_checker = DangerousCommandChecker()
29
32
 
30
33
  def _prune_file_content(self, content: str, file_path: str) -> str:
31
34
  """对文件内容进行剪枝处理"""
@@ -60,33 +63,39 @@ class ExecuteCommandToolResolver(BaseToolResolver):
60
63
  command = self.tool.command
61
64
  requires_approval = self.tool.requires_approval
62
65
  source_dir = self.args.source_dir or "."
63
-
64
- # Basic security check (can be expanded)
65
- if ";" in command or "&&" in command or "|" in command or "`" in command:
66
- # Allow && for cd chaining, but be cautious
67
- if not command.strip().startswith("cd ") and " && " in command:
68
- pass # Allow cd chaining like 'cd subdir && command'
69
- else:
70
- return ToolResult(success=False, message=f"Command '{command}' contains potentially unsafe characters.")
66
+
67
+ if self.args.enable_agentic_dangerous_command_check:
68
+ # 使用新的危险命令检查器进行安全检查
69
+ is_safe, danger_reason = self.danger_checker.check_command_safety(command, allow_whitelist_bypass=True)
70
+
71
+ if not is_safe:
72
+ # 获取安全建议
73
+ recommendations = self.danger_checker.get_safety_recommendations(command)
74
+
75
+ error_message = f"检测到危险命令: {danger_reason}"
76
+ if recommendations:
77
+ error_message += f"\n安全建议:\n" + "\n".join(f"- {rec}" for rec in recommendations)
78
+
79
+ logger.warning(f"阻止执行危险命令: {command}, 原因: {danger_reason}")
80
+ return ToolResult(success=False, message=error_message)
71
81
 
72
82
  # Approval mechanism (simplified)
73
- if requires_approval:
74
- # In a real scenario, this would involve user interaction
75
- logger.info(f"Command requires approval: {command}")
76
- # For now, let's assume approval is granted in non-interactive mode or handled elsewhere
77
- pass
78
-
79
- logger.info(f"Executing command: {command} in {os.path.abspath(source_dir)}")
80
- try:
81
- # 使用封装的run_cmd方法执行命令
82
- if get_run_context().is_web():
83
- answer = get_event_manager(
84
- self.args.event_file).ask_user(prompt=f"Allow to execute the `{command}`?",options=["yes","no"])
85
- if answer == "yes":
86
- pass
87
- else:
88
- return ToolResult(success=False, message=f"Command '{command}' execution denied by user.")
89
-
83
+ if not self.args.enable_agentic_auto_approve and requires_approval:
84
+ logger.info(f"Executing command: {command} in {os.path.abspath(source_dir)}")
85
+ try:
86
+ # 使用封装的run_cmd方法执行命令
87
+ if get_run_context().is_web():
88
+ answer = get_event_manager(
89
+ self.args.event_file).ask_user(prompt=f"Allow to execute the `{command}`?",options=["yes","no"])
90
+ if answer == "yes":
91
+ pass
92
+ else:
93
+ return ToolResult(success=False, message=f"Command '{command}' execution denied by user.")
94
+ except Exception as e:
95
+ logger.error(f"Error when ask the user to approve the command '{command}': {str(e)}")
96
+ return ToolResult(success=False, message=f"An unexpected error occurred while asking the user to approve the command: {str(e)}")
97
+
98
+ try:
90
99
  exit_code, output = run_cmd_subprocess(command, verbose=True, cwd=source_dir)
91
100
 
92
101
  logger.info(f"Command executed: {command}")