auto-coder 3.0.2__tar.gz → 3.0.4__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.
Files changed (834) hide show
  1. {auto_coder-3.0.2/src/auto_coder.egg-info → auto_coder-3.0.4}/PKG-INFO +1 -1
  2. {auto_coder-3.0.2 → auto_coder-3.0.4}/pyproject.toml +1 -1
  3. {auto_coder-3.0.2 → auto_coder-3.0.4/src/auto_coder.egg-info}/PKG-INFO +1 -1
  4. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/__init__.py +7 -0
  5. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/git_utils.py +90 -7
  6. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/tools_manager/utils.py +32 -3
  7. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit.py +12 -4
  8. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/ask_followup_question_tool_resolver.py +80 -6
  9. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/events/event_manager.py +150 -107
  10. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/version.py +1 -1
  11. {auto_coder-3.0.2 → auto_coder-3.0.4}/LICENSE +0 -0
  12. {auto_coder-3.0.2 → auto_coder-3.0.4}/MANIFEST.in +0 -0
  13. {auto_coder-3.0.2 → auto_coder-3.0.4}/README.md +0 -0
  14. {auto_coder-3.0.2 → auto_coder-3.0.4}/requirements.txt +0 -0
  15. {auto_coder-3.0.2 → auto_coder-3.0.4}/setup.cfg +0 -0
  16. {auto_coder-3.0.2 → auto_coder-3.0.4}/setup.py +0 -0
  17. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/auto_coder.egg-info/SOURCES.txt +0 -0
  18. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/auto_coder.egg-info/dependency_links.txt +0 -0
  19. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/auto_coder.egg-info/entry_points.txt +0 -0
  20. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/auto_coder.egg-info/requires.txt +0 -0
  21. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/auto_coder.egg-info/top_level.txt +0 -0
  22. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/__init__.py +0 -0
  23. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/__init__.py +0 -0
  24. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/auto_demand_organizer.py +0 -0
  25. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/auto_filegroup.py +0 -0
  26. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/auto_guess_query.py +0 -0
  27. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/auto_learn.py +0 -0
  28. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/auto_learn_from_commit.py +0 -0
  29. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/auto_review_commit.py +0 -0
  30. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/auto_tool.py +0 -0
  31. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/base_agentic/__init__.py +0 -0
  32. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/base_agentic/agent_hub.py +0 -0
  33. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/base_agentic/agentic_lang.py +0 -0
  34. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/base_agentic/agentic_tool_display.py +0 -0
  35. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/base_agentic/base_agent.py +0 -0
  36. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/base_agentic/default_tools.py +0 -0
  37. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/base_agentic/test_base_agent.py +0 -0
  38. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/base_agentic/tool_registry.py +0 -0
  39. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/base_agentic/tools/__init__.py +0 -0
  40. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/base_agentic/tools/ask_followup_question_tool_resolver.py +0 -0
  41. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/base_agentic/tools/attempt_completion_tool_resolver.py +0 -0
  42. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/base_agentic/tools/base_tool_resolver.py +0 -0
  43. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/base_agentic/tools/example_tool_resolver.py +0 -0
  44. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/base_agentic/tools/execute_command_tool_resolver.py +0 -0
  45. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/base_agentic/tools/list_files_tool_resolver.py +0 -0
  46. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/base_agentic/tools/plan_mode_respond_tool_resolver.py +0 -0
  47. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/base_agentic/tools/read_file_tool_resolver.py +0 -0
  48. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/base_agentic/tools/replace_in_file_tool_resolver.py +0 -0
  49. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/base_agentic/tools/search_files_tool_resolver.py +0 -0
  50. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/base_agentic/tools/talk_to_group_tool_resolver.py +0 -0
  51. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/base_agentic/tools/talk_to_tool_resolver.py +0 -0
  52. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/base_agentic/tools/use_mcp_tool_resolver.py +0 -0
  53. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/base_agentic/tools/write_to_file_tool_resolver.py +0 -0
  54. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/base_agentic/types.py +0 -0
  55. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/base_agentic/utils.py +0 -0
  56. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/coder.py +0 -0
  57. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/designer.py +0 -0
  58. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/entry_command_agent/__init__.py +0 -0
  59. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/entry_command_agent/auto_tool.py +0 -0
  60. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/entry_command_agent/chat.py +0 -0
  61. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/entry_command_agent/designer.py +0 -0
  62. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/entry_command_agent/generate_command.py +0 -0
  63. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/entry_command_agent/project_reader.py +0 -0
  64. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/entry_command_agent/voice2text.py +0 -0
  65. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/planner.py +0 -0
  66. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/agent/project_reader.py +0 -0
  67. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/auto_coder.py +0 -0
  68. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/auto_coder_rag.py +0 -0
  69. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/auto_coder_runner.py +0 -0
  70. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/auto_coder_terminal.py +0 -0
  71. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/auto_coder_terminal_v3.py +0 -0
  72. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/chat/__init__.py +0 -0
  73. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/chat/conf_command.py +0 -0
  74. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/chat/models_command.py +0 -0
  75. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/chat/rules_command.py +0 -0
  76. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/chat_auto_coder.py +0 -0
  77. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/chat_auto_coder_lang.py +0 -0
  78. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/command_args.py +0 -0
  79. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/commands/__init__.py +0 -0
  80. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/commands/auto_command.py +0 -0
  81. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/commands/auto_web.py +0 -0
  82. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/commands/tools.py +0 -0
  83. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/JupyterClient.py +0 -0
  84. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/ShellClient.py +0 -0
  85. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/ac_style_command_parser/__init__.py +0 -0
  86. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/ac_style_command_parser/config.py +0 -0
  87. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/ac_style_command_parser/parser.py +0 -0
  88. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/ac_style_command_parser/test_parser.py +0 -0
  89. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/ac_style_command_parser/test_typed_parser.py +0 -0
  90. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/ac_style_command_parser/typed_parser.py +0 -0
  91. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/action_yml_file_manager.py +0 -0
  92. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/agent_events/__init__.py +0 -0
  93. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/agent_events/agent_event_emitter.py +0 -0
  94. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/agent_events/event_factory.py +0 -0
  95. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/agent_events/examples.py +0 -0
  96. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/agent_events/types.py +0 -0
  97. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/agent_events/utils.py +0 -0
  98. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/agent_hooks/__init__.py +0 -0
  99. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/agent_hooks/examples.py +0 -0
  100. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/agent_hooks/hook_executor.py +0 -0
  101. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/agent_hooks/hook_manager.py +0 -0
  102. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/agent_hooks/types.py +0 -0
  103. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/agent_hooks/utils.py +0 -0
  104. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/agent_query_queue/__init__.py +0 -0
  105. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/agent_query_queue/queue_executor.py +0 -0
  106. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/agent_query_queue/queue_manager.py +0 -0
  107. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/agents/__init__.py +0 -0
  108. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/agents/agent_manager.py +0 -0
  109. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/agents/agent_parser.py +0 -0
  110. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/agents/example_usage.py +0 -0
  111. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/agents/integration_example.py +0 -0
  112. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/agents/test_agent_parser.py +0 -0
  113. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/anything2images.py +0 -0
  114. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/anything2img.py +0 -0
  115. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/async_prompt.py +0 -0
  116. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/async_utils.py +0 -0
  117. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/audio.py +0 -0
  118. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/auto_coder_lang.py +0 -0
  119. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/auto_configure.py +0 -0
  120. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/autocoderargs_parser/__init__.py +0 -0
  121. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/autocoderargs_parser/parser.py +0 -0
  122. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/autocoderargs_parser/tests/__init__.py +0 -0
  123. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/autocoderargs_parser/tests/test_args_parser.py +0 -0
  124. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/autocoderargs_parser/tests/test_token_parser.py +0 -0
  125. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/autocoderargs_parser/token_parser.py +0 -0
  126. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/buildin_tokenizer.py +0 -0
  127. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/chunk_validation.py +0 -0
  128. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/code_auto_execute.py +0 -0
  129. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/code_auto_generate.py +0 -0
  130. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/code_auto_generate_diff.py +0 -0
  131. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/code_auto_generate_editblock.py +0 -0
  132. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/code_auto_generate_strict_diff.py +0 -0
  133. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/code_auto_merge.py +0 -0
  134. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/code_auto_merge_diff.py +0 -0
  135. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/code_auto_merge_editblock.py +0 -0
  136. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/code_auto_merge_strict_diff.py +0 -0
  137. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/code_modification_ranker.py +0 -0
  138. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/command_completer.py +0 -0
  139. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/command_file_manager/__init__.py +0 -0
  140. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/command_file_manager/examples.py +0 -0
  141. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/command_file_manager/manager.py +0 -0
  142. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/command_file_manager/models.py +0 -0
  143. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/command_file_manager/test_command_file_manager.py +0 -0
  144. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/command_file_manager/utils.py +0 -0
  145. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/command_generator.py +0 -0
  146. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/command_templates.py +0 -0
  147. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/computer_use.py +0 -0
  148. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/conf_import_export.py +0 -0
  149. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/conf_utils.py +0 -0
  150. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/conf_validator.py +0 -0
  151. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/const.py +0 -0
  152. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/conversations/__init__.py +0 -0
  153. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/conversations/backup/__init__.py +0 -0
  154. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/conversations/backup/backup_manager.py +0 -0
  155. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/conversations/backup/restore_manager.py +0 -0
  156. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/conversations/cache/__init__.py +0 -0
  157. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/conversations/cache/base_cache.py +0 -0
  158. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/conversations/cache/cache_manager.py +0 -0
  159. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/conversations/cache/memory_cache.py +0 -0
  160. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/conversations/config.py +0 -0
  161. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/conversations/exceptions.py +0 -0
  162. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/conversations/file_locker.py +0 -0
  163. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/conversations/get_conversation_manager.py +0 -0
  164. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/conversations/llm_stats_models.py +0 -0
  165. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/conversations/manager.py +0 -0
  166. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/conversations/models.py +0 -0
  167. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/conversations/search/__init__.py +0 -0
  168. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/conversations/search/filter_manager.py +0 -0
  169. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/conversations/search/text_searcher.py +0 -0
  170. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/conversations/storage/__init__.py +0 -0
  171. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/conversations/storage/base_storage.py +0 -0
  172. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/conversations/storage/file_storage.py +0 -0
  173. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/conversations/storage/index_manager.py +0 -0
  174. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/core_config/__init__.py +0 -0
  175. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/core_config/agentic_mode_manager.py +0 -0
  176. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/core_config/base_manager.py +0 -0
  177. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/core_config/compatibility.py +0 -0
  178. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/core_config/config_manager.py +0 -0
  179. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/core_config/conversation_manager.py +0 -0
  180. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/core_config/exclude_manager.py +0 -0
  181. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/core_config/file_manager.py +0 -0
  182. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/core_config/human_as_model_manager.py +0 -0
  183. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/core_config/lib_manager.py +0 -0
  184. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/core_config/main_manager.py +0 -0
  185. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/core_config/merge_utils.py +0 -0
  186. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/core_config/mode_manager.py +0 -0
  187. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/core_config/models.py +0 -0
  188. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/core_config/test_memory_manager.py +0 -0
  189. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/env_manager.py +0 -0
  190. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/env_manager_usage_example.py +0 -0
  191. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/file_checkpoint/__init__.py +0 -0
  192. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/file_checkpoint/backup.py +0 -0
  193. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/file_checkpoint/conversation_checkpoint.py +0 -0
  194. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/file_checkpoint/manager.py +0 -0
  195. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/file_checkpoint/models.py +0 -0
  196. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/file_checkpoint/store.py +0 -0
  197. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/file_checkpoint/test_backup.py +0 -0
  198. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/file_checkpoint/test_manager.py +0 -0
  199. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/file_checkpoint/test_models.py +0 -0
  200. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/file_checkpoint/test_store.py +0 -0
  201. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/file_checkpoint/test_utils.py +0 -0
  202. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/file_checkpoint/utils.py +0 -0
  203. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/file_handler/__init__.py +0 -0
  204. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/file_handler/active_context_handler.py +0 -0
  205. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/file_handler/add_files_handler.py +0 -0
  206. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/file_handler/chat_handler.py +0 -0
  207. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/file_handler/coding_handler.py +0 -0
  208. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/file_handler/commit_handler.py +0 -0
  209. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/file_handler/lib_handler.py +0 -0
  210. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/file_handler/list_files_handler.py +0 -0
  211. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/file_handler/mcp_handler.py +0 -0
  212. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/file_handler/models_handler.py +0 -0
  213. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/file_handler/remove_files_handler.py +0 -0
  214. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/file_monitor/__init__.py +0 -0
  215. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/file_monitor/monitor.py +0 -0
  216. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/file_monitor/test_file_monitor.py +0 -0
  217. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/files.py +0 -0
  218. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/global_cancel.py +0 -0
  219. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/ignorefiles/__init__.py +0 -0
  220. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/ignorefiles/ignore_file_utils.py +0 -0
  221. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/ignorefiles/test_ignore_file_utils.py +0 -0
  222. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/image_to_page.py +0 -0
  223. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/index_import_export.py +0 -0
  224. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/international/__init__.py +0 -0
  225. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/international/demo_international.py +0 -0
  226. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/international/message_manager.py +0 -0
  227. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/international/messages/__init__.py +0 -0
  228. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/international/messages/async_command_messages.py +0 -0
  229. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/international/messages/auto_coder_messages.py +0 -0
  230. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/international/messages/chat_auto_coder_messages.py +0 -0
  231. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/international/messages/command_help_messages.py +0 -0
  232. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/international/messages/conversation_command_messages.py +0 -0
  233. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/international/messages/git_helper_plugin_messages.py +0 -0
  234. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/international/messages/queue_command_messages.py +0 -0
  235. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/international/messages/rules_command_messages.py +0 -0
  236. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/international/messages/sdk_messages.py +0 -0
  237. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/international/messages/token_helper_plugin_messages.py +0 -0
  238. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/international/messages/tool_display_messages.py +0 -0
  239. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/international/messages/workflow_exception_messages.py +0 -0
  240. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/international/test_international.py +0 -0
  241. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/interpreter.py +0 -0
  242. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/linter_core/__init__.py +0 -0
  243. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/linter_core/base_linter.py +0 -0
  244. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/linter_core/config_loader.py +0 -0
  245. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/linter_core/formatters/__init__.py +0 -0
  246. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/linter_core/formatters/base_formatter.py +0 -0
  247. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/linter_core/formatters/raw_formatter.py +0 -0
  248. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/linter_core/linter.py +0 -0
  249. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/linter_core/linter_factory.py +0 -0
  250. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/linter_core/linter_manager.py +0 -0
  251. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/linter_core/linters/__init__.py +0 -0
  252. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/linter_core/linters/java_linter.py +0 -0
  253. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/linter_core/linters/python_linter.py +0 -0
  254. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/linter_core/linters/typescript_linter.py +0 -0
  255. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/linter_core/models/__init__.py +0 -0
  256. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/linter_core/models/lint_result.py +0 -0
  257. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/linter_core/models.py +0 -0
  258. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/linter_core/tests/__init__.py +0 -0
  259. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/linter_core/tests/test_config_loader.py +0 -0
  260. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/linter_core/tests/test_config_loading.py +0 -0
  261. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/linter_core/tests/test_factory_manager.py +0 -0
  262. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/linter_core/tests/test_formatters.py +0 -0
  263. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/linter_core/tests/test_integration.py +0 -0
  264. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/linter_core/tests/test_java_linter.py +0 -0
  265. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/linter_core/tests/test_linters.py +0 -0
  266. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/linter_core/tests/test_models.py +0 -0
  267. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/linter_core/tests/verify_config_loading.py +0 -0
  268. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/linter_core/tests/verify_fixes.py +0 -0
  269. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/llm_friendly_package/__init__.py +0 -0
  270. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/llm_friendly_package/base_manager.py +0 -0
  271. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/llm_friendly_package/docs_manager.py +0 -0
  272. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/llm_friendly_package/library_manager.py +0 -0
  273. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/llm_friendly_package/main_manager.py +0 -0
  274. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/llm_friendly_package/models.py +0 -0
  275. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/llm_friendly_package/test_llm_friendly_package.py +0 -0
  276. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/llms/__init__.py +0 -0
  277. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/llms/demo_error_handling.py +0 -0
  278. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/llms/factory.py +0 -0
  279. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/llms/manager.py +0 -0
  280. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/llms/pricing.py +0 -0
  281. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/llms/registry.py +0 -0
  282. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/llms/schema.py +0 -0
  283. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/llms/simple_demo.py +0 -0
  284. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/llms/test_quick_model.py +0 -0
  285. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/llms/test_remove_functionality.py +0 -0
  286. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/llms/tests/__init__.py +0 -0
  287. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/llms/tests/test_manager.py +0 -0
  288. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/llms/tests/test_registry.py +0 -0
  289. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/mcp_servers/__init__.py +0 -0
  290. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/mcp_servers/mcp_server_gpt4o_mini_search.py +0 -0
  291. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/mcp_servers/mcp_server_perplexity.py +0 -0
  292. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/mcp_tools/__init__.py +0 -0
  293. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/mcp_tools/executor.py +0 -0
  294. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/mcp_tools/hub.py +0 -0
  295. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/mcp_tools/installer.py +0 -0
  296. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/mcp_tools/server.py +0 -0
  297. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/mcp_tools/test_keyboard_interrupt.py +0 -0
  298. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/mcp_tools/test_mcp_tools.py +0 -0
  299. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/mcp_tools/types.py +0 -0
  300. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/mcp_tools/verify_functionality.py +0 -0
  301. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/memory_manager.py +0 -0
  302. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/model_speed_tester.py +0 -0
  303. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/openai_content.py +0 -0
  304. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/printer.py +0 -0
  305. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/priority_directory_finder/__init__.py +0 -0
  306. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/priority_directory_finder/examples.py +0 -0
  307. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/priority_directory_finder/finder.py +0 -0
  308. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/priority_directory_finder/models.py +0 -0
  309. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/priority_directory_finder/test_priority_directory_finder.py +0 -0
  310. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/project_scanner/__init__.py +0 -0
  311. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/project_scanner/compat.py +0 -0
  312. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/project_scanner/scanner.py +0 -0
  313. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/project_tracker/__init__.py +0 -0
  314. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/project_tracker/api.py +0 -0
  315. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/project_tracker/demo.py +0 -0
  316. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/project_tracker/tracker.py +0 -0
  317. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/project_tracker/types.py +0 -0
  318. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pruner/__init__.py +0 -0
  319. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pruner/agentic_conversation_pruner.py +0 -0
  320. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pruner/context_pruner.py +0 -0
  321. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pruner/conversation_message_ids_api.py +0 -0
  322. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pruner/conversation_message_ids_manager.py +0 -0
  323. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pruner/conversation_message_ids_pruner.py +0 -0
  324. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pruner/conversation_normalizer.py +0 -0
  325. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pruner/conversation_pruner.py +0 -0
  326. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pruner/test_agentic_conversation_pruner.py +0 -0
  327. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pruner/test_context_pruner.py +0 -0
  328. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pruner/test_conversation_normalizer.py +0 -0
  329. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pruner/test_tool_content_detector.py +0 -0
  330. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pruner/tool_content_detector.py +0 -0
  331. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pruner/tools/__init__.py +0 -0
  332. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pruner/tools/query_message_ids.py +0 -0
  333. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pruner/tools/test_agentic_pruning_logic.py +0 -0
  334. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pruner/tools/test_message_ids_pruning_only.py +0 -0
  335. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pull_requests/__init__.py +0 -0
  336. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pull_requests/base_provider.py +0 -0
  337. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pull_requests/config.py +0 -0
  338. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pull_requests/example.py +0 -0
  339. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pull_requests/exceptions.py +0 -0
  340. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pull_requests/manager.py +0 -0
  341. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pull_requests/models.py +0 -0
  342. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pull_requests/providers/__init__.py +0 -0
  343. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pull_requests/providers/gitcode_provider.py +0 -0
  344. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pull_requests/providers/gitee_provider.py +0 -0
  345. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pull_requests/providers/github_provider.py +0 -0
  346. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pull_requests/providers/gitlab_provider.py +0 -0
  347. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/pull_requests/utils.py +0 -0
  348. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/rag_manager/__init__.py +0 -0
  349. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/rag_manager/rag_manager.py +0 -0
  350. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/recall_validation.py +0 -0
  351. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/result_manager.py +0 -0
  352. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/rulefiles/__init__.py +0 -0
  353. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/rulefiles/api.py +0 -0
  354. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/rulefiles/core/__init__.py +0 -0
  355. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/rulefiles/core/manager.py +0 -0
  356. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/rulefiles/core/selector.py +0 -0
  357. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/rulefiles/models/__init__.py +0 -0
  358. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/rulefiles/models/index.py +0 -0
  359. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/rulefiles/models/init_rule.py +0 -0
  360. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/rulefiles/models/rule_file.py +0 -0
  361. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/rulefiles/models/rule_relevance.py +0 -0
  362. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/rulefiles/models/summary.py +0 -0
  363. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/rulefiles/test_rulefiles.py +0 -0
  364. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/rulefiles/utils/__init__.py +0 -0
  365. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/rulefiles/utils/log_utils.py +0 -0
  366. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/rulefiles/utils/monitor.py +0 -0
  367. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/rulefiles/utils/parser.py +0 -0
  368. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/run_cmd.py +0 -0
  369. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/save_formatted_log.py +0 -0
  370. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/screenshots.py +0 -0
  371. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/search.py +0 -0
  372. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/search_replace.py +0 -0
  373. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/search_replace_patch/__init__.py +0 -0
  374. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/search_replace_patch/base.py +0 -0
  375. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/search_replace_patch/manager.py +0 -0
  376. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/search_replace_patch/patch_replacer.py +0 -0
  377. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/search_replace_patch/similarity_replacer.py +0 -0
  378. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/search_replace_patch/string_replacer.py +0 -0
  379. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/search_replace_patch/tests/__init__.py +0 -0
  380. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/search_replace_patch/tests/run_tests.py +0 -0
  381. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/search_replace_patch/tests/test_base.py +0 -0
  382. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/search_replace_patch/tests/test_empty_line_insert.py +0 -0
  383. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/search_replace_patch/tests/test_integration.py +0 -0
  384. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/search_replace_patch/tests/test_manager.py +0 -0
  385. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/search_replace_patch/tests/test_patch_replacer.py +0 -0
  386. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/search_replace_patch/tests/test_regex_replacer.py +0 -0
  387. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/search_replace_patch/tests/test_similarity_replacer.py +0 -0
  388. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/__init__.py +0 -0
  389. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/background_process_notifier.py +0 -0
  390. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/command_executor.py +0 -0
  391. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/error_recovery.py +0 -0
  392. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/exceptions.py +0 -0
  393. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/interactive_executor.py +0 -0
  394. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/interactive_pexpect_process.py +0 -0
  395. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/interactive_process.py +0 -0
  396. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/interactive_session_manager.py +0 -0
  397. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/monitoring.py +0 -0
  398. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/process_cleanup.py +0 -0
  399. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/process_manager.py +0 -0
  400. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/test_interactive_pexpect_process.py +0 -0
  401. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/tests/__init__.py +0 -0
  402. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/tests/conftest.py +0 -0
  403. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/tests/test_background_process_notifier.py +0 -0
  404. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/tests/test_command_executor.py +0 -0
  405. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/tests/test_error_recovery.py +0 -0
  406. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/tests/test_exceptions.py +0 -0
  407. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/tests/test_execute_batch.py +0 -0
  408. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/tests/test_indented_batch_commands.py +0 -0
  409. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/tests/test_integration.py +0 -0
  410. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/tests/test_monitoring.py +0 -0
  411. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/tests/test_performance.py +0 -0
  412. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/tests/test_process_cleanup.py +0 -0
  413. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/tests/test_process_manager.py +0 -0
  414. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/tests/test_timeout_config.py +0 -0
  415. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/tests/test_timeout_manager.py +0 -0
  416. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/timeout_config.py +0 -0
  417. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shell_commands/timeout_manager.py +0 -0
  418. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/shells.py +0 -0
  419. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/skills/__init__.py +0 -0
  420. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/skills/manager.py +0 -0
  421. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/stats_panel.py +0 -0
  422. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/stream_out_type.py +0 -0
  423. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/sys_prompt.py +0 -0
  424. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/terminal_paste/__init__.py +0 -0
  425. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/terminal_paste/demo.py +0 -0
  426. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/terminal_paste/demo_paste_functionality.py +0 -0
  427. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/terminal_paste/paste_handler.py +0 -0
  428. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/terminal_paste/paste_manager.py +0 -0
  429. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/terminal_paste/tests/__init__.py +0 -0
  430. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/terminal_paste/tests/test_paste_handler.py +0 -0
  431. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/terminal_paste/tests/test_paste_manager.py +0 -0
  432. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/terminal_paste/utils.py +0 -0
  433. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/test_autocoder_args.py +0 -0
  434. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/test_env_manager.py +0 -0
  435. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/test_env_manager_integration.py +0 -0
  436. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/test_run_cmd.py +0 -0
  437. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/text_similarity/__init__.py +0 -0
  438. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/text_similarity/demo.py +0 -0
  439. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/text_similarity/examples.py +0 -0
  440. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/text_similarity/test_text_similarity.py +0 -0
  441. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/text_similarity/text_similarity.py +0 -0
  442. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/text_similarity/utils.py +0 -0
  443. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/todos/__init__.py +0 -0
  444. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/todos/cache/__init__.py +0 -0
  445. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/todos/cache/base_cache.py +0 -0
  446. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/todos/cache/cache_manager.py +0 -0
  447. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/todos/cache/memory_cache.py +0 -0
  448. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/todos/config.py +0 -0
  449. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/todos/exceptions.py +0 -0
  450. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/todos/get_todo_manager.py +0 -0
  451. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/todos/manager.py +0 -0
  452. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/todos/models.py +0 -0
  453. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/todos/storage/__init__.py +0 -0
  454. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/todos/storage/base_storage.py +0 -0
  455. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/todos/storage/file_storage.py +0 -0
  456. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/token_cost_caculate.py +0 -0
  457. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/tokens/__init__.py +0 -0
  458. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/tokens/counter.py +0 -0
  459. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/tokens/file_detector.py +0 -0
  460. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/tokens/filters.py +0 -0
  461. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/tokens/models.py +0 -0
  462. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/tools_manager/__init__.py +0 -0
  463. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/tools_manager/examples.py +0 -0
  464. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/tools_manager/manager.py +0 -0
  465. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/tools_manager/models.py +0 -0
  466. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/tools_manager/test_tools_manager.py +0 -0
  467. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/types.py +0 -0
  468. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/utils_code_auto_generate.py +0 -0
  469. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/__init__.py +0 -0
  470. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/__init__.py +0 -0
  471. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_callbacks.py +0 -0
  472. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_change_manager.py +0 -0
  473. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/__init__.py +0 -0
  474. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/ac_mod_list_tool_resolver.py +0 -0
  475. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/ac_mod_read_tool_resolver.py +0 -0
  476. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/ac_mod_write_tool_resolver.py +0 -0
  477. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/attempt_completion_tool_resolver.py +0 -0
  478. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/background_task_tool_resolver.py +0 -0
  479. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/base_tool_resolver.py +0 -0
  480. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/conversation_message_ids_read_tool_resolver.py +0 -0
  481. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/conversation_message_ids_write_tool_resolver.py +0 -0
  482. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/count_tokens_tool_resolver.py +0 -0
  483. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/dangerous_command_checker.py +0 -0
  484. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/execute_command_tool_resolver.py +0 -0
  485. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/execute_external_tool_resolver.py +0 -0
  486. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/execute_workflow_tool_resolver.py +0 -0
  487. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/extra_docs/__init__.py +0 -0
  488. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/extra_docs/ac_mod_files.py +0 -0
  489. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/extra_docs/interactive_session.py +0 -0
  490. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/extra_docs/plan_format.py +0 -0
  491. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/extra_docs/skill.py +0 -0
  492. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/extra_docs/web_research.py +0 -0
  493. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/extra_docs/workflow_subagents.py +0 -0
  494. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/extract_to_text_tool_resolver.py +0 -0
  495. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/lint_report.py +0 -0
  496. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/linter_config_models.py +0 -0
  497. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/linter_enabled_tool_resolver.py +0 -0
  498. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/list_code_definition_names_tool_resolver.py +0 -0
  499. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/list_files_tool_resolver.py +0 -0
  500. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/load_extra_document_tool_resolver.py +0 -0
  501. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/plan_mode_respond_tool_resolver.py +0 -0
  502. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/read_file_tool_resolver.py +0 -0
  503. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/read_image_tool_resolver.py +0 -0
  504. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/replace_in_file/__init__.py +0 -0
  505. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/replace_in_file/apply.py +0 -0
  506. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/replace_in_file/failure_report.py +0 -0
  507. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/replace_in_file/parsing.py +0 -0
  508. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/replace_in_file/paths.py +0 -0
  509. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/replace_in_file_tool_resolver.py +0 -0
  510. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/run_named_subagents_tool_resolver.py +0 -0
  511. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/search_files_tool_resolver.py +0 -0
  512. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/session_interactive_tool_resolver.py +0 -0
  513. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/session_start_tool_resolver.py +0 -0
  514. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/session_stop_tool_resolver.py +0 -0
  515. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/test_write_to_file_tool_resolver.py +0 -0
  516. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/todo_read_tool_resolver.py +0 -0
  517. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/todo_write_tool_resolver.py +0 -0
  518. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/use_mcp_tool_resolver.py +0 -0
  519. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/use_rag_tool_resolver.py +0 -0
  520. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/web_crawl_tool_resolver.py +0 -0
  521. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/web_search_tool_resolver.py +0 -0
  522. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_tools/write_to_file_tool_resolver.py +0 -0
  523. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/agentic_edit_types.py +0 -0
  524. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/llm_stream_parser.py +0 -0
  525. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/runner/__init__.py +0 -0
  526. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/runner/base_runner.py +0 -0
  527. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/runner/file_based_event_runner.py +0 -0
  528. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/runner/sdk_runner.py +0 -0
  529. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/runner/terminal_runner.py +0 -0
  530. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/runner/tool_display.py +0 -0
  531. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/test_agentic_callbacks.py +0 -0
  532. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/test_agentic_edit.py +0 -0
  533. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/test_llm_stream_parser.py +0 -0
  534. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/tool_caller/__init__.py +0 -0
  535. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/tool_caller/default_tool_resolver_map.py +0 -0
  536. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/tool_caller/integration_test.py +0 -0
  537. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/tool_caller/plugins/__init__.py +0 -0
  538. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/tool_caller/plugins/base_plugin.py +0 -0
  539. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/tool_caller/plugins/examples/__init__.py +0 -0
  540. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/tool_caller/plugins/examples/logging_plugin.py +0 -0
  541. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/tool_caller/plugins/examples/security_filter_plugin.py +0 -0
  542. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/tool_caller/plugins/plugin_interface.py +0 -0
  543. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/tool_caller/test_tool_caller.py +0 -0
  544. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/tool_caller/tool_call_plugin_manager.py +0 -0
  545. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/tool_caller/tool_caller.py +0 -0
  546. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/agent/tool_caller/usage_example.py +0 -0
  547. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/code_agentic_editblock_manager.py +0 -0
  548. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/code_auto_generate.py +0 -0
  549. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/code_auto_generate_diff.py +0 -0
  550. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/code_auto_generate_editblock.py +0 -0
  551. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/code_auto_generate_strict_diff.py +0 -0
  552. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/code_auto_merge.py +0 -0
  553. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/code_auto_merge_diff.py +0 -0
  554. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/code_auto_merge_editblock.py +0 -0
  555. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/code_auto_merge_strict_diff.py +0 -0
  556. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/code_diff_manager.py +0 -0
  557. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/code_editblock_manager.py +0 -0
  558. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/code_manager.py +0 -0
  559. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/v2/code_strict_diff_manager.py +0 -0
  560. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/wrap_llm_hint/__init__.py +0 -0
  561. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/wrap_llm_hint/test_wrap_llm_hint.py +0 -0
  562. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/wrap_llm_hint/utils.py +0 -0
  563. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/common/wrap_llm_hint/wrap_llm_hint.py +0 -0
  564. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/compilers/__init__.py +0 -0
  565. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/compilers/base_compiler.py +0 -0
  566. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/compilers/compiler_config_api.py +0 -0
  567. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/compilers/compiler_config_manager.py +0 -0
  568. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/compilers/compiler_factory.py +0 -0
  569. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/compilers/java_compiler.py +0 -0
  570. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/compilers/models.py +0 -0
  571. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/compilers/normal_compiler.py +0 -0
  572. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/compilers/provided_compiler.py +0 -0
  573. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/compilers/python_compiler.py +0 -0
  574. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/compilers/reactjs_compiler.py +0 -0
  575. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/compilers/shadow_compiler.py +0 -0
  576. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/compilers/vue_compiler.py +0 -0
  577. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/completer/__init__.py +0 -0
  578. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/completer/command_completer_v2.py +0 -0
  579. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/data/byzerllm.md +0 -0
  580. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/data/tokenizer.json +0 -0
  581. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/db/__init__.py +0 -0
  582. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/db/store.py +0 -0
  583. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/default_project/__init__.py +0 -0
  584. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/dispacher/__init__.py +0 -0
  585. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/dispacher/actions/__init__.py +0 -0
  586. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/dispacher/actions/action.py +0 -0
  587. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/dispacher/actions/copilot.py +0 -0
  588. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/dispacher/actions/plugins/__init__.py +0 -0
  589. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/dispacher/actions/plugins/action_regex_project.py +0 -0
  590. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/events/__init__.py +0 -0
  591. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/events/event_content.py +0 -0
  592. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/events/event_manager_singleton.py +0 -0
  593. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/events/event_store.py +0 -0
  594. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/events/event_types.py +0 -0
  595. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/helper/__init__.py +0 -0
  596. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/helper/project_creator.py +0 -0
  597. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/helper/rag_doc_creator.py +0 -0
  598. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/index/__init__.py +0 -0
  599. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/index/entry.py +0 -0
  600. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/index/filter/__init__.py +0 -0
  601. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/index/filter/agentic_filter.py +0 -0
  602. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/index/filter/normal_filter.py +0 -0
  603. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/index/filter/quick_filter.py +0 -0
  604. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/index/for_command.py +0 -0
  605. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/index/index.py +0 -0
  606. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/index/symbols_utils.py +0 -0
  607. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/index/tests/__init__.py +0 -0
  608. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/index/tests/run_tests.py +0 -0
  609. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/index/tests/test_entry.py +0 -0
  610. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/index/tests/test_index_manager.py +0 -0
  611. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/index/tests/test_module_integration.py +0 -0
  612. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/index/tests/test_symbols_utils.py +0 -0
  613. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/index/types.py +0 -0
  614. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/inner/__init__.py +0 -0
  615. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/inner/agentic.py +0 -0
  616. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/inner/async_command_handler.py +0 -0
  617. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/inner/conversation_command_handlers.py +0 -0
  618. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/inner/merge_command_handler.py +0 -0
  619. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/inner/queue_command_handler.py +0 -0
  620. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/lang.py +0 -0
  621. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/linters/__init__.py +0 -0
  622. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/linters/base_linter.py +0 -0
  623. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/linters/linter_factory.py +0 -0
  624. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/linters/models.py +0 -0
  625. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/linters/normal_linter.py +0 -0
  626. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/linters/python_linter.py +0 -0
  627. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/linters/reactjs_linter.py +0 -0
  628. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/linters/shadow_linter.py +0 -0
  629. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/linters/test_python_linter.py +0 -0
  630. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/linters/test_reactjs_linter.py +0 -0
  631. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/linters/test_vue_linter.py +0 -0
  632. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/linters/vue_linter.py +0 -0
  633. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/memory/__init__.py +0 -0
  634. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/memory/active_changes.py +0 -0
  635. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/memory/active_context_manager.py +0 -0
  636. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/memory/active_diagrams.py +0 -0
  637. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/memory/active_documents.py +0 -0
  638. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/memory/active_header.py +0 -0
  639. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/memory/active_package.py +0 -0
  640. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/memory/async_processor.py +0 -0
  641. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/memory/directory_mapper.py +0 -0
  642. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/models.py +0 -0
  643. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/plugins/__init__.py +0 -0
  644. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/plugins/git_helper_plugin.py +0 -0
  645. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/plugins/token_helper_plugin.py +0 -0
  646. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/plugins/utils.py +0 -0
  647. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/privacy/__init__.py +0 -0
  648. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/privacy/model_filter.py +0 -0
  649. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/pyproject/__init__.py +0 -0
  650. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/__init__.py +0 -0
  651. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/agentic_rag.py +0 -0
  652. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/api_server.py +0 -0
  653. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/cache/__init__.py +0 -0
  654. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/cache/base_cache.py +0 -0
  655. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/cache/byzer_storage_cache.py +0 -0
  656. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/cache/cache_result_merge.py +0 -0
  657. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/cache/failed_files_utils.py +0 -0
  658. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/cache/file_monitor_cache.py +0 -0
  659. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/cache/local_byzer_storage_cache.py +0 -0
  660. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/cache/local_duckdb_storage_cache.py +0 -0
  661. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/cache/rag_file_meta.py +0 -0
  662. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/cache/simple_cache.py +0 -0
  663. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/conversation_to_queries.py +0 -0
  664. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/doc_filter.py +0 -0
  665. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/document_retriever.py +0 -0
  666. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/lang.py +0 -0
  667. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/llm_wrapper.py +0 -0
  668. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/loaders/__init__.py +0 -0
  669. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/loaders/docx_loader.py +0 -0
  670. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/loaders/excel_loader.py +0 -0
  671. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/loaders/filter_utils.py +0 -0
  672. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/loaders/image_loader.py +0 -0
  673. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/loaders/pdf_loader.py +0 -0
  674. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/loaders/ppt_loader.py +0 -0
  675. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/long_context_rag.py +0 -0
  676. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/qa_conversation_strategy.py +0 -0
  677. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/rag_config.py +0 -0
  678. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/rag_entry.py +0 -0
  679. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/relevant_utils.py +0 -0
  680. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/sdk/__init__.py +0 -0
  681. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/sdk/client.py +0 -0
  682. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/sdk/models.py +0 -0
  683. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/sdk/utils.py +0 -0
  684. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/searchable.py +0 -0
  685. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/stream_event/__init__.py +0 -0
  686. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/stream_event/event_writer.py +0 -0
  687. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/stream_event/types.py +0 -0
  688. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/terminal/__init__.py +0 -0
  689. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/terminal/args.py +0 -0
  690. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/terminal/bootstrap.py +0 -0
  691. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/terminal/command_handlers.py +0 -0
  692. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/terminal/formatters/__init__.py +0 -0
  693. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/terminal/formatters/base.py +0 -0
  694. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/terminal/formatters/json_format.py +0 -0
  695. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/terminal/formatters/stream_json.py +0 -0
  696. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/terminal/formatters/text.py +0 -0
  697. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/terminal/init.py +0 -0
  698. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/terminal/utils.py +0 -0
  699. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/test_agentic_rag.py +0 -0
  700. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/test_doc_filter.py +0 -0
  701. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/test_long_context_rag.py +0 -0
  702. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/test_token_limiter.py +0 -0
  703. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/token_checker.py +0 -0
  704. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/token_counter.py +0 -0
  705. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/token_limiter.py +0 -0
  706. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/token_limiter_utils.py +0 -0
  707. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/tools/__init__.py +0 -0
  708. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/tools/bochaai_example.py +0 -0
  709. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/tools/bochaai_sdk.py +0 -0
  710. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/tools/metaso_example.py +0 -0
  711. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/tools/metaso_sdk.py +0 -0
  712. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/tools/recall_tool.py +0 -0
  713. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/tools/run_integration_tests.py +0 -0
  714. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/tools/search_tool.py +0 -0
  715. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/tools/test_all_providers.py +0 -0
  716. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/tools/test_bochaai_integration.py +0 -0
  717. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/tools/test_final_integration.py +0 -0
  718. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/tools/test_metaso_integration.py +0 -0
  719. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/tools/test_metaso_real.py +0 -0
  720. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/tools/test_web_crawl_tool.py +0 -0
  721. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/tools/test_web_search_tool.py +0 -0
  722. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/tools/todo_read_tool.py +0 -0
  723. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/tools/todo_write_tool.py +0 -0
  724. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/tools/web_crawl_tool.py +0 -0
  725. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/tools/web_search_tool.py +0 -0
  726. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/tools/web_tools_example.py +0 -0
  727. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/types.py +0 -0
  728. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/utils.py +0 -0
  729. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rag/variable_holder.py +0 -0
  730. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/rags.py +0 -0
  731. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/regexproject/__init__.py +0 -0
  732. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/remote_service/__init__.py +0 -0
  733. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/remote_service/api_client.py +0 -0
  734. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/remote_service/manager.py +0 -0
  735. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/remote_service/models.py +0 -0
  736. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/run_context.py +0 -0
  737. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/sdk/__init__.py +0 -0
  738. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/sdk/api.py +0 -0
  739. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/sdk/async_runner/__init__.py +0 -0
  740. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/sdk/async_runner/async_executor.py +0 -0
  741. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/sdk/async_runner/async_handler.py +0 -0
  742. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/sdk/async_runner/markdown_processor.py +0 -0
  743. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/sdk/async_runner/task_metadata.py +0 -0
  744. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/sdk/async_runner/worktree_manager.py +0 -0
  745. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/sdk/cli/__init__.py +0 -0
  746. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/sdk/cli/formatters.py +0 -0
  747. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/sdk/cli/handlers.py +0 -0
  748. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/sdk/cli/main.py +0 -0
  749. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/sdk/cli/options.py +0 -0
  750. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/sdk/constants.py +0 -0
  751. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/sdk/core/__init__.py +0 -0
  752. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/sdk/core/auto_coder_core.py +0 -0
  753. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/sdk/core/bridge.py +0 -0
  754. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/sdk/exceptions.py +0 -0
  755. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/sdk/formatters/__init__.py +0 -0
  756. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/sdk/formatters/input.py +0 -0
  757. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/sdk/formatters/output.py +0 -0
  758. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/sdk/formatters/stream.py +0 -0
  759. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/sdk/models/__init__.py +0 -0
  760. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/sdk/models/options.py +0 -0
  761. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/sdk/models/responses.py +0 -0
  762. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/sdk/utils/__init__.py +0 -0
  763. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/sdk/utils/formatters.py +0 -0
  764. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/sdk/utils/io_utils.py +0 -0
  765. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/sdk/utils/validators.py +0 -0
  766. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/shadows/__init__.py +0 -0
  767. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/shadows/shadow_manager.py +0 -0
  768. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/suffixproject/__init__.py +0 -0
  769. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal/__init__.py +0 -0
  770. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal/app.py +0 -0
  771. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal/args.py +0 -0
  772. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal/bootstrap.py +0 -0
  773. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal/command_processor.py +0 -0
  774. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal/command_registry.py +0 -0
  775. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal/help.py +0 -0
  776. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal/tasks/__init__.py +0 -0
  777. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal/tasks/background.py +0 -0
  778. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal/tasks/task_event.py +0 -0
  779. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal/ui/__init__.py +0 -0
  780. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal/ui/completer.py +0 -0
  781. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal/ui/keybindings.py +0 -0
  782. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal/ui/session.py +0 -0
  783. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal/ui/toolbar.py +0 -0
  784. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal/utils/__init__.py +0 -0
  785. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal/utils/errors.py +0 -0
  786. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal/utils/paths.py +0 -0
  787. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal/utils/shell.py +0 -0
  788. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal_v3/__init__.py +0 -0
  789. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal_v3/app.py +0 -0
  790. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal_v3/handlers/__init__.py +0 -0
  791. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal_v3/handlers/command_handler.py +0 -0
  792. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal_v3/models/__init__.py +0 -0
  793. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal_v3/models/conversation_buffer.py +0 -0
  794. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal_v3/models/message.py +0 -0
  795. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal_v3/models/tool_display.py +0 -0
  796. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal_v3/ui/__init__.py +0 -0
  797. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal_v3/ui/keybindings.py +0 -0
  798. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal_v3/ui/layout.py +0 -0
  799. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/terminal_v3/ui/styles.py +0 -0
  800. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/tsproject/__init__.py +0 -0
  801. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/utils/__init__.py +0 -0
  802. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/utils/_markitdown.py +0 -0
  803. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/utils/auto_coder_utils/__init__.py +0 -0
  804. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/utils/auto_coder_utils/chat_stream_out.py +0 -0
  805. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/utils/auto_project_type.py +0 -0
  806. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/utils/chat_auto_coder_utils/__init__.py +0 -0
  807. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/utils/conversation_store.py +0 -0
  808. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/utils/llm_client_interceptors.py +0 -0
  809. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/utils/llms.py +0 -0
  810. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/utils/log_capture.py +0 -0
  811. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/utils/math_utils.py +0 -0
  812. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/utils/model_provider_selector.py +0 -0
  813. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/utils/multi_turn.py +0 -0
  814. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/utils/operate_config_api.py +0 -0
  815. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/utils/print_table.py +0 -0
  816. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/utils/project_structure.py +0 -0
  817. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/utils/queue_communicate.py +0 -0
  818. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/utils/request_event_queue.py +0 -0
  819. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/utils/request_queue.py +0 -0
  820. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/utils/rest.py +0 -0
  821. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/utils/stream_thinking.py +0 -0
  822. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/utils/thread_utils.py +0 -0
  823. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/utils/types.py +0 -0
  824. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/workflow_agents/__init__.py +0 -0
  825. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/workflow_agents/agent.py +0 -0
  826. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/workflow_agents/exceptions.py +0 -0
  827. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/workflow_agents/executor.py +0 -0
  828. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/workflow_agents/loader.py +0 -0
  829. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/workflow_agents/runner.py +0 -0
  830. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/workflow_agents/types.py +0 -0
  831. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/workflow_agents/utils.py +0 -0
  832. {auto_coder-3.0.2 → auto_coder-3.0.4}/src/autocoder/workflow_agents/workflow_manager.py +0 -0
  833. {auto_coder-3.0.2 → auto_coder-3.0.4}/tests/test_args_parser.py +0 -0
  834. {auto_coder-3.0.2 → auto_coder-3.0.4}/tests/test_conf_global_shorthand.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: auto-coder
3
- Version: 3.0.2
3
+ Version: 3.0.4
4
4
  Summary: AutoCoder: AutoCoder
5
5
  Author: allwefantasy
6
6
  Author-email: allwefantasy <allwefantasy@gmail.com>
@@ -5,7 +5,7 @@ build-backend = "hatchling.build"
5
5
 
6
6
  [project]
7
7
  name = "auto-coder"
8
- version = "3.0.2"
8
+ version = "3.0.4"
9
9
  description = "AutoCoder: AutoCoder"
10
10
  authors = [
11
11
  {name = "allwefantasy", email = "allwefantasy@gmail.com"}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: auto-coder
3
- Version: 3.0.2
3
+ Version: 3.0.4
4
4
  Summary: AutoCoder: AutoCoder
5
5
  Author: allwefantasy
6
6
  Author-email: allwefantasy <allwefantasy@gmail.com>
@@ -288,6 +288,9 @@ class AutoCoderArgs(pydantic.BaseModel):
288
288
  enable_agentic_dangerous_command_check: bool = False
289
289
  enable_display_agentic_reasoning_content: bool = True
290
290
  enable_agentic_interleaving_thinking: bool = True
291
+
292
+ enable_agentic_replace_ask_followup_question_with_attempt_completion: bool = True
293
+
291
294
  agentic_max_rounds: int = 10000
292
295
  agentic_mode: str = "act" # plan|act
293
296
  agentic_connection_retries: int = 10
@@ -475,6 +478,10 @@ class AutoCoderArgs(pydantic.BaseModel):
475
478
  # Default to 30 minutes
476
479
  call_subagent_timeout: float = 30 * 60
477
480
 
481
+ # Timeout (in seconds) for waiting user input in ask_followup_question / ask_user.
482
+ # None means no timeout (block forever in terminal, default 3600s in web).
483
+ ask_user_timeout_seconds: Optional[float] = 3600
484
+
478
485
  # RAG cache build workers, 0 means use half of cpu count
479
486
  rag_cache_build_workers: int = 0
480
487
 
@@ -1,4 +1,6 @@
1
1
  import os
2
+ import locale
3
+ import subprocess
2
4
  from loguru import logger
3
5
  from typing import List, Optional, Dict, Any
4
6
  from pydantic import BaseModel
@@ -52,6 +54,58 @@ class CommitResult(BaseModel):
52
54
  error_message: Optional[str] = None
53
55
 
54
56
 
57
+ def _safe_decode_output(data: Any) -> str:
58
+ """
59
+ Safely decode subprocess output bytes to string.
60
+
61
+ - Prefer UTF-8 when possible (common for git output).
62
+ - Fallback to system preferred encoding.
63
+ - Never raise UnicodeDecodeError (use replacement as last resort).
64
+ """
65
+ if data is None:
66
+ return ""
67
+ if isinstance(data, str):
68
+ return data
69
+ if isinstance(data, memoryview):
70
+ data = data.tobytes()
71
+ if not isinstance(data, (bytes, bytearray)):
72
+ return str(data)
73
+
74
+ preferred = locale.getpreferredencoding(False) or "utf-8"
75
+ for enc in ("utf-8", preferred):
76
+ try:
77
+ return bytes(data).decode(enc)
78
+ except UnicodeDecodeError:
79
+ continue
80
+ return bytes(data).decode(preferred, errors="replace")
81
+
82
+
83
+ def _run_git_capture(repo_path: str, args: List[str]) -> tuple[int, str, str]:
84
+ """
85
+ Run `git` with binary capture to avoid Windows locale decode crashes.
86
+ Returns: (exit_code, stdout_text, stderr_text)
87
+ """
88
+ try:
89
+ completed = subprocess.run(
90
+ ["git", *args],
91
+ cwd=repo_path,
92
+ capture_output=True,
93
+ text=False, # critical: avoid implicit decoding (gbk/cp936) in reader threads
94
+ check=False,
95
+ )
96
+ return (
97
+ completed.returncode,
98
+ _safe_decode_output(completed.stdout),
99
+ _safe_decode_output(completed.stderr),
100
+ )
101
+ except FileNotFoundError as e:
102
+ # GitPython requires git executable anyway, but keep this error readable.
103
+ msg = str(e)
104
+ return 127, "", msg
105
+ except Exception as e:
106
+ return 1, "", str(e)
107
+
108
+
55
109
  def init(repo_path: str) -> bool:
56
110
  if not GIT_AVAILABLE:
57
111
  logger.warning("Git is not available. Skipping Git initialization.")
@@ -111,16 +165,45 @@ def commit_changes(repo_path: str, message: str) -> CommitResult:
111
165
  )
112
166
 
113
167
  if commit.parents:
114
- changed_files = repo.git.diff(
115
- commit.parents[0].hexsha, commit.hexsha, name_only=True
116
- ).split("\n")
117
- result.changed_files = [file for file in changed_files if file.strip()]
168
+ parent_hexsha = commit.parents[0].hexsha
169
+
170
+ # Use `git` CLI in binary mode to avoid UnicodeDecodeError on Windows GBK locale.
171
+ # GitPython's internal decoding can crash in subprocess reader threads when output
172
+ # contains non-GBK bytes (e.g., UTF-8 diff content).
173
+ rc, stdout, stderr = _run_git_capture(
174
+ repo_path,
175
+ [
176
+ "-c",
177
+ "core.quotepath=false",
178
+ "diff",
179
+ "--name-only",
180
+ parent_hexsha,
181
+ commit.hexsha,
182
+ ],
183
+ )
184
+ if rc != 0 and stderr:
185
+ logger.warning(f"git diff --name-only failed: {stderr}")
186
+
187
+ changed_files = [line.strip() for line in stdout.splitlines() if line.strip()]
188
+ result.changed_files = changed_files
118
189
 
119
190
  for file in result.changed_files:
120
- diff = repo.git.diff(
121
- commit.parents[0].hexsha, commit.hexsha, "--", file
191
+ rc, diff_out, diff_err = _run_git_capture(
192
+ repo_path,
193
+ [
194
+ "-c",
195
+ "core.quotepath=false",
196
+ "diff",
197
+ "--no-color",
198
+ parent_hexsha,
199
+ commit.hexsha,
200
+ "--",
201
+ file,
202
+ ],
122
203
  )
123
- result.diffs[file] = diff
204
+ if rc != 0 and diff_err:
205
+ logger.warning(f"git diff for {file} failed: {diff_err}")
206
+ result.diffs[file] = diff_out
124
207
  else:
125
208
  result.error_message = (
126
209
  "This is the initial commit, no parent to compare against."
@@ -5,12 +5,39 @@ Tools Manager Utility Functions
5
5
  """
6
6
 
7
7
  import os
8
+ import locale
8
9
  import subprocess
9
10
  from pathlib import Path
10
11
  from typing import Optional, List
11
12
  from loguru import logger
12
13
 
13
14
 
15
+ def _safe_decode_output(data: object) -> str:
16
+ """
17
+ Safely decode subprocess output to string.
18
+
19
+ - Prefer UTF-8 when possible.
20
+ - Fallback to system preferred encoding.
21
+ - Never raise UnicodeDecodeError.
22
+ """
23
+ if data is None:
24
+ return ""
25
+ if isinstance(data, str):
26
+ return data
27
+ if isinstance(data, memoryview):
28
+ data = data.tobytes()
29
+ if not isinstance(data, (bytes, bytearray)):
30
+ return str(data)
31
+
32
+ preferred = locale.getpreferredencoding(False) or "utf-8"
33
+ for enc in ("utf-8", preferred):
34
+ try:
35
+ return bytes(data).decode(enc)
36
+ except UnicodeDecodeError:
37
+ continue
38
+ return bytes(data).decode(preferred, errors="replace")
39
+
40
+
14
41
  def is_tool_command_file(file_path: str) -> bool:
15
42
  """
16
43
  检查文件是否是有效的工具命令文件
@@ -93,12 +120,14 @@ def _try_command_line_help(file_path: str) -> Optional[str]:
93
120
  result = subprocess.run(
94
121
  cmd,
95
122
  capture_output=True,
96
- text=True,
123
+ text=False, # Avoid Windows locale decode crashes (gbk/cp936 strict)
97
124
  timeout=5,
98
125
  cwd=Path(file_path).parent
99
126
  )
100
- if result.returncode == 0 and (result.stdout.strip() or result.stderr.strip()):
101
- return result.stdout.strip() or result.stderr.strip()
127
+ stdout = _safe_decode_output(result.stdout).strip()
128
+ stderr = _safe_decode_output(result.stderr).strip()
129
+ if result.returncode == 0 and (stdout or stderr):
130
+ return stdout or stderr
102
131
  except Exception:
103
132
  continue
104
133
  return None
@@ -664,7 +664,7 @@ class AgenticEdit:
664
664
  <list_code_definition_names>
665
665
  <path>Directory path here</path>
666
666
  </list_code_definition_names>
667
-
667
+ {% if not enable_agentic_replace_ask_followup_question_with_attempt_completion %}
668
668
  ## ask_followup_question
669
669
  Description: Ask the user a question to gather additional information needed to complete the task. This tool should be used when you encounter ambiguities, need clarification, or require more details to proceed effectively. It allows for interactive problem-solving by enabling direct communication with the user. Use this tool judiciously to maintain a balance between gathering necessary information and avoiding excessive back-and-forth.
670
670
  Parameters:
@@ -677,7 +677,7 @@ class AgenticEdit:
677
677
  Array of options here (optional), e.g. ["Option 1", "Option 2", "Option 3"]
678
678
  </options>
679
679
  </ask_followup_question>
680
-
680
+ {% endif %}
681
681
  ## todo_read
682
682
  Description: Request to read the current todo list for the session. This tool helps you track progress, organize complex tasks, and understand the current status of ongoing work. Use this tool proactively to stay aware of task progress and demonstrate thoroughness.
683
683
  Parameters:
@@ -710,6 +710,9 @@ class AgenticEdit:
710
710
  ## attempt_completion
711
711
  Description: After each tool use, the user will respond with the result of that tool use, i.e. if it succeeded or failed, along with any reasons for failure. Once you've received the results of tool uses and can confirm that the task is complete, use this tool to present the result of your work to the user. Optionally you may provide a CLI command to showcase the result of your work. The user may respond with feedback if they are not satisfied with the result, which you can use to make improvements and try again.
712
712
  IMPORTANT NOTE: This tool CANNOT be used until you've confirmed from the user that any previous tool uses were successful. Failure to do so will result in code corruption and system failure. Before using this tool, you must ask yourself in <thinking></thinking> tags if you've confirmed from the user that any previous tool uses were successful. If not, then DO NOT use this tool.
713
+ {% if enable_agentic_replace_ask_followup_question_with_attempt_completion %}
714
+ If you need to ask the user a question to get additional information, you should use the attempt_completion tool to ask the user a question,just put the question in the result field.
715
+ {% endif %}
713
716
  Parameters:
714
717
  - result: (required) The result of the task. Formulate this result in a way that is final and does not require further input from the user. Don't end your result with questions or offers for further assistance.
715
718
  - command: (optional) A CLI command to execute to show a live demo of the result to the user. For example, use `open index.html` to display a created html website, or `open localhost:3000` to display a locally running development server. But DO NOT use commands like `echo` or `cat` that merely print text. This command should be valid for the current operating system. Ensure the command is properly formatted and does not contain any harmful instructions.
@@ -2351,8 +2354,12 @@ class AgenticEdit:
2351
2354
  - When making changes to code, always consider the context in which the code is being used. Ensure that your changes are compatible with the existing codebase and that they follow the project's coding standards and best practices.
2352
2355
  - When you want to modify a file, use the replace_in_file or write_to_file tool directly with the desired changes. You do not need to display the changes before using the tool.
2353
2356
  - Do not ask for more information than necessary. Use the tools provided to accomplish the user's request efficiently and effectively. When you've completed your task, you must use the attempt_completion tool to present the result to the user. The user may provide feedback, which you can use to make improvements and try again.
2357
+ {% if not enable_agentic_replace_ask_followup_question_with_attempt_completion %}
2354
2358
  - You are only allowed to ask the user questions using the ask_followup_question tool. Use this tool only when you need additional details to complete a task, and be sure to use a clear and concise question that will help you move forward with the task. However if you can use the available tools to avoid having to ask the user questions, you should do so. For example, if the user mentions a file that may be in an outside directory like the Desktop, you should use the list_files tool to list the files in the Desktop and check if the file they are talking about is there, rather than asking the user to provide the file path themselves.
2355
- - When executing commands, if you don't see the expected output, assume the terminal executed the command successfully and proceed with the task. The user's terminal may be unable to stream the output back properly. If you absolutely need to see the actual terminal output, use the ask_followup_question tool to request the user to copy and paste it back to you.
2359
+ {% else %}
2360
+ - If you need to ask the user a question to get additional information, you should use the attempt_completion tool to ask the user a question.
2361
+ {% endif %}
2362
+ - When executing commands, if you don't see the expected output, assume the terminal executed the command successfully and proceed with the task. The user's terminal may be unable to stream the output back properly. If you absolutely need to see the actual terminal output, use the {% if not enable_agentic_replace_ask_followup_question_with_attempt_completion %}ask_followup_question{% else %}attempt_completion{% endif %} tool to request the user to copy and paste it back to you.
2356
2363
  - The user may provide a file's contents directly in their message, in which case you shouldn't use the read_file tool to get the file contents again since you already have it.
2357
2364
  - Your goal is to try to accomplish the user's task, NOT engage in a back and forth conversation.
2358
2365
  - NEVER end attempt_completion result with a question or request to engage in further conversation! Formulate the end of your result in a way that is final and does not require further input from the user.
@@ -2390,7 +2397,7 @@ class AgenticEdit:
2390
2397
 
2391
2398
  1. Analyze the user's task and set clear, achievable goals to accomplish it. Prioritize these goals in a logical order.
2392
2399
  2. Work through these goals sequentially, utilizing available tools one at a time as necessary. Each goal should correspond to a distinct step in your problem-solving process. You will be informed on the work completed and what's remaining as you go.
2393
- 3. Remember, you have extensive capabilities with access to a wide range of tools that can be used in powerful and clever ways as necessary to accomplish each goal. Before calling a tool, do some analysis within <thinking></thinking> tags. First, analyze the file structure provided in environment_details to gain context and insights for proceeding effectively. Then, think about which of the provided tools is the most relevant tool to accomplish the user's task. Next, go through each of the required parameters of the relevant tool and determine if the user has directly provided or given enough information to infer a value. When deciding if the parameter can be inferred, carefully consider all the context to see if it supports a specific value. If all of the required parameters are present or can be reasonably inferred, close the thinking tag and proceed with the tool use. BUT, if one of the values for a required parameter is missing, DO NOT invoke the tool (not even with fillers for the missing params) and instead, ask the user to provide the missing parameters using the ask_followup_question tool. DO NOT ask for more information on optional parameters if it is not provided.
2400
+ 3. Remember, you have extensive capabilities with access to a wide range of tools that can be used in powerful and clever ways as necessary to accomplish each goal. Before calling a tool, do some analysis within <thinking></thinking> tags. First, analyze the file structure provided in environment_details to gain context and insights for proceeding effectively. Then, think about which of the provided tools is the most relevant tool to accomplish the user's task. Next, go through each of the required parameters of the relevant tool and determine if the user has directly provided or given enough information to infer a value. When deciding if the parameter can be inferred, carefully consider all the context to see if it supports a specific value. If all of the required parameters are present or can be reasonably inferred, close the thinking tag and proceed with the tool use. BUT, if one of the values for a required parameter is missing, DO NOT invoke the tool (not even with fillers for the missing params) and instead, ask the user to provide the missing parameters using the {% if not enable_agentic_replace_ask_followup_question_with_attempt_completion %}ask_followup_question{% else %}attempt_completion{% endif %} tool. DO NOT ask for more information on optional parameters if it is not provided.
2394
2401
  4. Once you've completed the user's task, you must use the attempt_completion tool to present the result of the task to the user. You may also provide a CLI command to showcase the result of your task; this can be particularly useful for web development tasks, where you can run e.g. `open index.html` to show the website you've built.
2395
2402
  5. The user may provide feedback, which you can use to make improvements and try again. But DO NOT continue in pointless back and forth conversations, i.e. don't end your responses with questions or offers for further assistance.
2396
2403
  6. Work through these goals sequentially, **ALWAYS STARTING WITH COMPREHENSIVE SEARCH AND EXPLORATION** using available tools. For any code-related task, begin with check AC MODULEs exits/list_files to understand structure, then use search_files/commands(grep) to find relevant patterns, and read_file to examine context before making changes.
@@ -2439,6 +2446,7 @@ class AgenticEdit:
2439
2446
  or "You are a highly skilled software engineer with extensive knowledge in many programming languages, frameworks, design patterns, and best practices.",
2440
2447
  "sub_agents_content": sub_agents_content,
2441
2448
  "agentic_mode": self.args.agentic_mode,
2449
+ "enable_agentic_replace_ask_followup_question_with_attempt_completion": self.args.enable_agentic_replace_ask_followup_question_with_attempt_completion,
2442
2450
  } # type: ignore[misc]
2443
2451
 
2444
2452
  # Removed _execute_command_result and execute_auto_command methods
@@ -8,6 +8,8 @@ from autocoder.common.v2.agent.agentic_edit_types import (
8
8
  ) # Import ToolResult from types
9
9
  from loguru import logger
10
10
  import typing
11
+ import asyncio
12
+ from concurrent.futures import ThreadPoolExecutor
11
13
  from autocoder.common import AutoCoderArgs
12
14
  from autocoder.run_context import get_run_context
13
15
  from autocoder.events.event_manager_singleton import get_event_manager
@@ -22,6 +24,11 @@ from autocoder.common.printer import Printer
22
24
  if typing.TYPE_CHECKING:
23
25
  from autocoder.common.v2.agent.agentic_edit import AgenticEdit
24
26
 
27
+ # 用于 terminal 模式超时的线程池
28
+ _timeout_executor = ThreadPoolExecutor(
29
+ max_workers=1, thread_name_prefix="ask_user_timeout"
30
+ )
31
+
25
32
 
26
33
  class AskFollowupQuestionToolResolver(BaseToolResolver):
27
34
  def __init__(
@@ -35,10 +42,48 @@ class AskFollowupQuestionToolResolver(BaseToolResolver):
35
42
  self.result_manager = ResultManager()
36
43
  self.printer = Printer()
37
44
 
45
+ def _prompt_with_timeout(self, timeout_seconds: float) -> str:
46
+ """
47
+ 在独立的事件循环中运行 prompt_async 并应用超时。
48
+ 如果超时则返回空字符串。
49
+ """
50
+
51
+ async def _inner() -> str:
52
+ from prompt_toolkit import PromptSession as _RawPromptSession
53
+
54
+ session = _RawPromptSession(
55
+ message=self.printer.get_message_from_key("tool_ask_user")
56
+ )
57
+ return await asyncio.wait_for(
58
+ session.prompt_async(), timeout=timeout_seconds
59
+ )
60
+
61
+ # 在新线程中创建全新的事件循环来运行 prompt_async,
62
+ # 避免与调用方可能存在的 running loop 冲突
63
+ future = _timeout_executor.submit(asyncio.run, _inner())
64
+ try:
65
+ return future.result()
66
+ except asyncio.TimeoutError:
67
+ logger.warning(f"Terminal prompt timed out after {timeout_seconds}s")
68
+ return ""
69
+ except Exception as e:
70
+ logger.warning(
71
+ f"Terminal prompt with timeout failed ({e}), falling back to blocking prompt"
72
+ )
73
+ # 降级:使用普通阻塞 prompt(无超时)
74
+ session = PromptSession(
75
+ message=self.printer.get_message_from_key("tool_ask_user")
76
+ )
77
+ try:
78
+ return session.prompt()
79
+ except KeyboardInterrupt:
80
+ return ""
81
+
38
82
  def resolve(self) -> ToolResult:
39
83
  """
40
84
  Packages the question and options to be handled by the main loop/UI.
41
85
  This resolver doesn't directly ask the user but prepares the data for it.
86
+ Supports optional timeout via args.ask_user_timeout_seconds.
42
87
  """
43
88
  # Check if running in CLI mode, if so return immediately with a message
44
89
  # instructing the model to solve the problem on its own
@@ -53,12 +98,28 @@ class AskFollowupQuestionToolResolver(BaseToolResolver):
53
98
  options_text = "\n".join(
54
99
  [f"{i+1}. {option}" for i, option in enumerate(options)]
55
100
  )
101
+
102
+ # 统一的超时来源
103
+ timeout_seconds: Optional[float] = self.args.ask_user_timeout_seconds
104
+
56
105
  if get_run_context().is_web():
57
- answer = get_event_manager(self.args.event_file).ask_user(prompt=question)
106
+ answer = get_event_manager(self.args.event_file).ask_user(
107
+ prompt=question, timeout=timeout_seconds
108
+ )
58
109
  self.result_manager.append(
59
110
  content=answer + ("\n" + options_text if options_text else ""),
60
111
  meta={"action": "ask_user", "input": {"question": question}},
61
112
  )
113
+ if not answer:
114
+ return ToolResult(
115
+ success=False,
116
+ message=(
117
+ "I did not have time to answer your question. you can decide to how to handle this situation by yourself or ask me to answer the question later."
118
+ if timeout_seconds is not None
119
+ else "Error: Question not answered."
120
+ ),
121
+ content="",
122
+ )
62
123
  return ToolResult(
63
124
  success=True, message="Follow-up question prepared.", content=answer
64
125
  )
@@ -77,18 +138,31 @@ class AskFollowupQuestionToolResolver(BaseToolResolver):
77
138
  # 显示问题面板
78
139
  console.print(question_panel)
79
140
 
80
- session = PromptSession(
81
- message=self.printer.get_message_from_key("tool_ask_user")
82
- )
141
+ if timeout_seconds is not None:
142
+ console.print(f"[dim](timeout: {timeout_seconds}s)[/dim]")
143
+
83
144
  try:
84
- answer = session.prompt()
145
+ if timeout_seconds is not None:
146
+ answer = self._prompt_with_timeout(timeout_seconds)
147
+ else:
148
+ session = PromptSession(
149
+ message=self.printer.get_message_from_key("tool_ask_user")
150
+ )
151
+ answer = session.prompt()
85
152
  except KeyboardInterrupt:
86
153
  answer = ""
87
154
 
88
155
  # The actual asking logic resides outside the resolver, typically in the agent's main loop
89
156
  # or UI interaction layer. The resolver's job is to validate and package the request.
90
157
  if not answer:
91
- return ToolResult(success=False, message="Error: Question not answered.")
158
+ return ToolResult(
159
+ success=False,
160
+ message=(
161
+ "I did not have time to answer your question. you can decide to how to handle this situation by yourself or ask me to answer the question later."
162
+ if timeout_seconds is not None
163
+ else "Error: Question not answered."
164
+ ),
165
+ )
92
166
 
93
167
  # Indicate success in preparing the question data
94
168
  return ToolResult(