auto-coder 0.1.300__tar.gz → 0.1.301__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of auto-coder might be problematic. Click here for more details.

Files changed (204) hide show
  1. {auto_coder-0.1.300 → auto_coder-0.1.301}/PKG-INFO +1 -1
  2. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/auto_coder.egg-info/PKG-INFO +1 -1
  3. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/commands/auto_command.py +19 -8
  4. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/__init__.py +4 -0
  5. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/action_yml_file_manager.py +70 -5
  6. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/code_auto_merge.py +14 -0
  7. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/code_auto_merge_diff.py +14 -0
  8. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/code_auto_merge_editblock.py +14 -0
  9. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/code_auto_merge_strict_diff.py +13 -0
  10. auto_coder-0.1.301/src/autocoder/version.py +1 -0
  11. auto_coder-0.1.300/src/autocoder/version.py +0 -1
  12. {auto_coder-0.1.300 → auto_coder-0.1.301}/LICENSE +0 -0
  13. {auto_coder-0.1.300 → auto_coder-0.1.301}/README.md +0 -0
  14. {auto_coder-0.1.300 → auto_coder-0.1.301}/setup.cfg +0 -0
  15. {auto_coder-0.1.300 → auto_coder-0.1.301}/setup.py +0 -0
  16. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/auto_coder.egg-info/SOURCES.txt +0 -0
  17. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/auto_coder.egg-info/dependency_links.txt +0 -0
  18. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/auto_coder.egg-info/entry_points.txt +0 -0
  19. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/auto_coder.egg-info/requires.txt +0 -0
  20. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/auto_coder.egg-info/top_level.txt +0 -0
  21. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/__init__.py +0 -0
  22. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/agent/__init__.py +0 -0
  23. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/agent/auto_demand_organizer.py +0 -0
  24. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/agent/auto_filegroup.py +0 -0
  25. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/agent/auto_guess_query.py +0 -0
  26. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/agent/auto_learn_from_commit.py +0 -0
  27. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/agent/auto_review_commit.py +0 -0
  28. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/agent/auto_tool.py +0 -0
  29. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/agent/coder.py +0 -0
  30. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/agent/designer.py +0 -0
  31. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/agent/planner.py +0 -0
  32. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/agent/project_reader.py +0 -0
  33. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/auto_coder.py +0 -0
  34. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/auto_coder_rag.py +0 -0
  35. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/auto_coder_runner.py +0 -0
  36. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/auto_coder_server.py +0 -0
  37. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/benchmark.py +0 -0
  38. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/chat/__init__.py +0 -0
  39. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/chat_auto_coder.py +0 -0
  40. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/chat_auto_coder_lang.py +0 -0
  41. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/command_args.py +0 -0
  42. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/command_parser.py +0 -0
  43. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/commands/__init__.py +0 -0
  44. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/commands/auto_web.py +0 -0
  45. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/commands/tools.py +0 -0
  46. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/JupyterClient.py +0 -0
  47. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/ShellClient.py +0 -0
  48. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/anything2images.py +0 -0
  49. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/anything2img.py +0 -0
  50. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/audio.py +0 -0
  51. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/auto_coder_lang.py +0 -0
  52. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/auto_configure.py +0 -0
  53. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/buildin_tokenizer.py +0 -0
  54. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/chunk_validation.py +0 -0
  55. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/cleaner.py +0 -0
  56. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/code_auto_execute.py +0 -0
  57. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/code_auto_generate.py +0 -0
  58. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/code_auto_generate_diff.py +0 -0
  59. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/code_auto_generate_editblock.py +0 -0
  60. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/code_auto_generate_strict_diff.py +0 -0
  61. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/code_modification_ranker.py +0 -0
  62. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/command_completer.py +0 -0
  63. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/command_generator.py +0 -0
  64. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/command_templates.py +0 -0
  65. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/computer_use.py +0 -0
  66. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/conf_import_export.py +0 -0
  67. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/conf_validator.py +0 -0
  68. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/const.py +0 -0
  69. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/context_pruner.py +0 -0
  70. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/conversation_pruner.py +0 -0
  71. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/files.py +0 -0
  72. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/git_utils.py +0 -0
  73. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/global_cancel.py +0 -0
  74. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/image_to_page.py +0 -0
  75. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/index_import_export.py +0 -0
  76. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/interpreter.py +0 -0
  77. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/llm_rerank.py +0 -0
  78. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/mcp_hub.py +0 -0
  79. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/mcp_server.py +0 -0
  80. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/mcp_servers/__init__.py +0 -0
  81. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/mcp_servers/mcp_server_gpt4o_mini_search.py +0 -0
  82. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/mcp_servers/mcp_server_perplexity.py +0 -0
  83. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/mcp_tools.py +0 -0
  84. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/memory_manager.py +0 -0
  85. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/model_speed_test.py +0 -0
  86. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/printer.py +0 -0
  87. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/recall_validation.py +0 -0
  88. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/result_manager.py +0 -0
  89. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/screenshots.py +0 -0
  90. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/search.py +0 -0
  91. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/search_replace.py +0 -0
  92. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/shells.py +0 -0
  93. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/stats_panel.py +0 -0
  94. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/sys_prompt.py +0 -0
  95. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/text.py +0 -0
  96. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/types.py +0 -0
  97. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/common/utils_code_auto_generate.py +0 -0
  98. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/data/byzerllm.md +0 -0
  99. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/data/tokenizer.json +0 -0
  100. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/db/__init__.py +0 -0
  101. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/db/store.py +0 -0
  102. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/dispacher/__init__.py +0 -0
  103. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/dispacher/actions/__init__.py +0 -0
  104. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/dispacher/actions/action.py +0 -0
  105. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/dispacher/actions/copilot.py +0 -0
  106. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/dispacher/actions/plugins/__init__.py +0 -0
  107. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/dispacher/actions/plugins/action_regex_project.py +0 -0
  108. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/dispacher/actions/plugins/action_translate.py +0 -0
  109. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/index/__init__.py +0 -0
  110. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/index/entry.py +0 -0
  111. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/index/filter/__init__.py +0 -0
  112. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/index/filter/normal_filter.py +0 -0
  113. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/index/filter/quick_filter.py +0 -0
  114. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/index/for_command.py +0 -0
  115. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/index/index.py +0 -0
  116. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/index/symbols_utils.py +0 -0
  117. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/index/types.py +0 -0
  118. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/lang.py +0 -0
  119. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/models.py +0 -0
  120. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/plugins/__init__.py +0 -0
  121. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/plugins/dynamic_completion_example.py +0 -0
  122. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/plugins/git_helper_plugin.py +0 -0
  123. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/plugins/sample_plugin.py +0 -0
  124. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/plugins/token_helper_plugin.py +0 -0
  125. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/plugins/utils.py +0 -0
  126. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/privacy/__init__.py +0 -0
  127. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/privacy/model_filter.py +0 -0
  128. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/pyproject/__init__.py +0 -0
  129. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/__init__.py +0 -0
  130. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/api_server.py +0 -0
  131. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/cache/__init__.py +0 -0
  132. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/cache/base_cache.py +0 -0
  133. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/cache/byzer_storage_cache.py +0 -0
  134. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/cache/cache_result_merge.py +0 -0
  135. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/cache/file_monitor_cache.py +0 -0
  136. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/cache/local_byzer_storage_cache.py +0 -0
  137. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/cache/local_duckdb_storage_cache.py +0 -0
  138. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/cache/rag_file_meta.py +0 -0
  139. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/cache/simple_cache.py +0 -0
  140. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/conversation_to_queries.py +0 -0
  141. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/doc_filter.py +0 -0
  142. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/document_retriever.py +0 -0
  143. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/lang.py +0 -0
  144. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/llm_wrapper.py +0 -0
  145. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/loaders/__init__.py +0 -0
  146. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/loaders/docx_loader.py +0 -0
  147. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/loaders/excel_loader.py +0 -0
  148. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/loaders/pdf_loader.py +0 -0
  149. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/loaders/ppt_loader.py +0 -0
  150. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/long_context_rag.py +0 -0
  151. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/qa_conversation_strategy.py +0 -0
  152. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/rag_config.py +0 -0
  153. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/rag_entry.py +0 -0
  154. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/raw_rag.py +0 -0
  155. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/relevant_utils.py +0 -0
  156. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/searchable.py +0 -0
  157. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/simple_directory_reader.py +0 -0
  158. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/simple_rag.py +0 -0
  159. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/stream_event/__init__.py +0 -0
  160. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/stream_event/event_writer.py +0 -0
  161. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/stream_event/types.py +0 -0
  162. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/token_checker.py +0 -0
  163. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/token_counter.py +0 -0
  164. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/token_limiter.py +0 -0
  165. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/token_limiter_utils.py +0 -0
  166. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/types.py +0 -0
  167. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/utils.py +0 -0
  168. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/rag/variable_holder.py +0 -0
  169. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/regexproject/__init__.py +0 -0
  170. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/suffixproject/__init__.py +0 -0
  171. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/tsproject/__init__.py +0 -0
  172. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/utils/__init__.py +0 -0
  173. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/utils/_markitdown.py +0 -0
  174. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/utils/auto_coder_utils/__init__.py +0 -0
  175. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/utils/auto_coder_utils/chat_stream_out.py +0 -0
  176. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/utils/auto_project_type.py +0 -0
  177. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/utils/chat_auto_coder_utils/__init__.py +0 -0
  178. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/utils/conversation_store.py +0 -0
  179. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/utils/llm_client_interceptors.py +0 -0
  180. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/utils/llms.py +0 -0
  181. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/utils/log_capture.py +0 -0
  182. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/utils/model_provider_selector.py +0 -0
  183. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/utils/multi_turn.py +0 -0
  184. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/utils/operate_config_api.py +0 -0
  185. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/utils/print_table.py +0 -0
  186. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/utils/project_structure.py +0 -0
  187. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/utils/queue_communicate.py +0 -0
  188. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/utils/request_event_queue.py +0 -0
  189. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/utils/request_queue.py +0 -0
  190. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/utils/rest.py +0 -0
  191. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/utils/stream_thinking.py +0 -0
  192. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/utils/tests.py +0 -0
  193. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/utils/thread_utils.py +0 -0
  194. {auto_coder-0.1.300 → auto_coder-0.1.301}/src/autocoder/utils/types.py +0 -0
  195. {auto_coder-0.1.300 → auto_coder-0.1.301}/tests/test_action_regex_project.py +0 -0
  196. {auto_coder-0.1.300 → auto_coder-0.1.301}/tests/test_action_yml_file_manager.py +0 -0
  197. {auto_coder-0.1.300 → auto_coder-0.1.301}/tests/test_chat_auto_coder.py +0 -0
  198. {auto_coder-0.1.300 → auto_coder-0.1.301}/tests/test_code_auto_merge_editblock.py +0 -0
  199. {auto_coder-0.1.300 → auto_coder-0.1.301}/tests/test_command_completer.py +0 -0
  200. {auto_coder-0.1.300 → auto_coder-0.1.301}/tests/test_planner.py +0 -0
  201. {auto_coder-0.1.300 → auto_coder-0.1.301}/tests/test_plugins.py +0 -0
  202. {auto_coder-0.1.300 → auto_coder-0.1.301}/tests/test_privacy.py +0 -0
  203. {auto_coder-0.1.300 → auto_coder-0.1.301}/tests/test_queue_communicate.py +0 -0
  204. {auto_coder-0.1.300 → auto_coder-0.1.301}/tests/test_symbols_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: auto-coder
3
- Version: 0.1.300
3
+ Version: 0.1.301
4
4
  Summary: AutoCoder: AutoCoder
5
5
  Author: allwefantasy
6
6
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: auto-coder
3
- Version: 0.1.300
3
+ Version: 0.1.301
4
4
  Summary: AutoCoder: AutoCoder
5
5
  Author: allwefantasy
6
6
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
@@ -25,7 +25,7 @@ from autocoder.common.auto_configure import config_readme
25
25
  from autocoder.utils.auto_project_type import ProjectTypeAnalyzer
26
26
  from rich.text import Text
27
27
  from autocoder.common.mcp_server import get_mcp_server,McpServerInfoRequest
28
-
28
+ from autocoder.common.action_yml_file_manager import ActionYmlFileManager
29
29
  class CommandMessage(BaseModel):
30
30
  role: str
31
31
  content: str
@@ -41,14 +41,17 @@ class CommandConversation(BaseModel):
41
41
  current_conversation: List[CommandMessage]
42
42
 
43
43
 
44
- def load_memory_file() -> CommandConversation:
45
- """Load command conversations from memory file"""
44
+ def load_memory_file(args: AutoCoderArgs) -> CommandConversation:
45
+ """Load command conversations from memory file"""
46
+
46
47
  memory_dir = os.path.join(".auto-coder", "memory")
47
48
  file_path = os.path.join(memory_dir, "command_chat_history.json")
48
49
  if os.path.exists(file_path):
49
50
  with open(file_path, "r", encoding="utf-8") as f:
50
51
  try:
51
- return CommandConversation.model_validate_json(f.read())
52
+ conversation = CommandConversation.model_validate_json(f.read())
53
+ conversation.current_conversation = conversation.current_conversation
54
+ return conversation
52
55
  except Exception:
53
56
  return CommandConversation(history={}, current_conversation=[])
54
57
  return CommandConversation(history={}, current_conversation=[])
@@ -174,8 +177,8 @@ class CommandAutoTuner:
174
177
 
175
178
  def get_conversations(self) -> List[CommandMessage]:
176
179
  """Get conversation history from memory file"""
177
- conversation = load_memory_file()
178
- return [extended_msg for extended_msg in conversation.current_conversation]
180
+ conversation = load_memory_file(args=self.args)
181
+ return [command_message.message for command_message in conversation.current_conversation]
179
182
 
180
183
  @byzerllm.prompt()
181
184
  def _analyze(self, request: AutoCommandRequest) -> str:
@@ -284,7 +287,7 @@ class CommandAutoTuner:
284
287
  "command_combination_readme": self._command_combination_readme.prompt()
285
288
  }
286
289
 
287
-
290
+ @byzerllm.prompt()
288
291
  def _command_combination_readme(self) -> str:
289
292
  """
290
293
  <function_combination_readme>
@@ -350,8 +353,16 @@ class CommandAutoTuner:
350
353
  # 获取 prompt 内容
351
354
  prompt = self._analyze.prompt(request)
352
355
 
356
+ # 获取对当前项目变更的最近8条历史人物
357
+ action_yml_file_manager = ActionYmlFileManager(self.args.source_dir)
358
+ history_tasks = action_yml_file_manager.to_tasks_prompt(limit=8)
359
+ new_messages = []
360
+ if self.args.enable_task_history:
361
+ new_messages.append({"role": "user", "content": history_tasks})
362
+ new_messages.append({"role": "assistant", "content": "好的,我知道最近的任务对项目的变更了,我会参考这些来更好的理解你的需求。"})
363
+
353
364
  # 构造对话上下文
354
- conversations = [{"role": "user", "content": prompt}]
365
+ conversations = new_messages + [{"role": "user", "content": prompt}]
355
366
 
356
367
  # 使用 stream_out 进行输出
357
368
  printer = Printer()
@@ -406,6 +406,10 @@ class AutoCoderArgs(pydantic.BaseModel):
406
406
 
407
407
  dynamic_urls: List[str] = []
408
408
 
409
+ add_updated_urls: List[str] = []
410
+
411
+ enable_task_history: Optional[bool] = False
412
+
409
413
  class Config:
410
414
  protected_namespaces = ()
411
415
 
@@ -5,7 +5,7 @@ import git
5
5
  from typing import List, Dict, Tuple, Optional, Union, Any
6
6
  from loguru import logger
7
7
  from autocoder.common.printer import Printer
8
-
8
+ import byzerllm
9
9
 
10
10
  class ActionYmlFileManager:
11
11
  """
@@ -19,15 +19,15 @@ class ActionYmlFileManager:
19
19
  - 处理 commit 消息与 YAML 文件的关联
20
20
  """
21
21
 
22
- def __init__(self, source_dir: str):
22
+ def __init__(self, source_dir: Optional[str] = None):
23
23
  """
24
24
  初始化 ActionYmlFileManager
25
25
 
26
26
  Args:
27
27
  source_dir: 项目根目录
28
28
  """
29
- self.source_dir = source_dir
30
- self.actions_dir = os.path.join(source_dir, "actions")
29
+ self.source_dir = source_dir or os.getcwd()
30
+ self.actions_dir = os.path.join(self.source_dir, "actions")
31
31
  self.printer = Printer()
32
32
 
33
33
  def ensure_actions_dir(self) -> bool:
@@ -364,4 +364,69 @@ class ActionYmlFileManager:
364
364
  yaml_content['file_name'] = file_name
365
365
  history_tasks.append(yaml_content)
366
366
 
367
- return history_tasks
367
+ return history_tasks
368
+
369
+ @byzerllm.prompt()
370
+ def _to_tasks_prompt(self, history_tasks: List[Dict]) -> str:
371
+ """
372
+ <history_tasks>
373
+ 最近的任务历史记录,从最新到最旧排序:
374
+
375
+ {% for task in history_tasks %}
376
+ ## 任务 {{ loop.index }}: {{ task.file_name }}
377
+
378
+ {% if task.query %}
379
+ **用户需求**: {{ task.query }}
380
+ {% endif %}
381
+
382
+ {% if task.urls %}
383
+ **用户提供的相关文件**:
384
+ {% if task.urls is string %}
385
+ - {{ task.urls }}
386
+ {% else %}
387
+ {% for url in task.urls %}
388
+ - {{ url }}
389
+ {% endfor %}
390
+ {% endif %}
391
+ {% endif %}
392
+
393
+ {% if task.dynamic_urls %}
394
+ **系统提取的相关文件**:
395
+ {% if task.dynamic_urls is string %}
396
+ - {{ task.dynamic_urls }}
397
+ {% else %}
398
+ {% for url in task.dynamic_urls %}
399
+ - {{ url }}
400
+ {% endfor %}
401
+ {% endif %}
402
+ {% endif %}
403
+
404
+ {% if task.add_updated_urls %}
405
+ **变更的文件**:
406
+ {% if task.add_updated_urls is string %}
407
+ - {{ task.add_updated_urls }}
408
+ {% else %}
409
+ {% for url in task.add_updated_urls %}
410
+ - {{ url }}
411
+ {% endfor %}
412
+ {% endif %}
413
+ {% endif %}
414
+
415
+ {% if task.how_to_reproduce %}
416
+ **变更过程**:
417
+ ```
418
+ {{ task.how_to_reproduce }}
419
+ ```
420
+ {% endif %}
421
+
422
+ {% if not loop.last %}
423
+ ---
424
+ {% endif %}
425
+ {% endfor %}
426
+ </history_tasks>
427
+ 请注意上述历史任务记录,以便更好地理解当前用户需求的上下文和连续性。
428
+ """
429
+
430
+ def to_tasks_prompt(self, limit: int = 5) -> str:
431
+ history_tasks = self.parse_history_tasks(limit)
432
+ return self._to_tasks_prompt.prompt(history_tasks)
@@ -10,6 +10,7 @@ import hashlib
10
10
  from autocoder.common import files as FileUtils
11
11
  from autocoder.common.printer import Printer
12
12
  from autocoder.common.auto_coder_lang import get_message
13
+ from autocoder.common.action_yml_file_manager import ActionYmlFileManager
13
14
 
14
15
  class PathAndCode(pydantic.BaseModel):
15
16
  path: str
@@ -197,4 +198,17 @@ class CodeAutoMerge:
197
198
  self.printer.print_in_terminal("files_merged", total=total)
198
199
  if not force_skip_git and not self.args.skip_commit:
199
200
  commit_result = git_utils.commit_changes(self.args.source_dir, f"{self.args.query}\nauto_coder_{file_name}_{md5}")
201
+
202
+ action_yml_file_manager = ActionYmlFileManager(self.args.source_dir)
203
+ action_file_name = os.path.basename(self.args.file)
204
+ add_updated_urls = []
205
+ commit_result.changed_files
206
+ for file in commit_result.changed_files:
207
+ add_updated_urls.append(os.path.join(self.args.source_dir, file))
208
+
209
+ self.args.add_updated_urls = add_updated_urls
210
+ update_yaml_success = action_yml_file_manager.update_yaml_field(action_file_name, "add_updated_urls", add_updated_urls)
211
+ if not update_yaml_success:
212
+ self.printer.print_in_terminal("yaml_save_error", style="red", yaml_file=action_file_name)
213
+
200
214
  git_utils.print_commit_info(commit_result=commit_result)
@@ -4,6 +4,7 @@ from autocoder.common import AutoCoderArgs,git_utils
4
4
  from typing import List,Union,Tuple
5
5
  import pydantic
6
6
  import byzerllm
7
+ from autocoder.common.action_yml_file_manager import ActionYmlFileManager
7
8
  from autocoder.common.printer import Printer
8
9
  import hashlib
9
10
  from pathlib import Path
@@ -580,6 +581,19 @@ class CodeAutoMergeDiff:
580
581
  self.printer.print_in_terminal("files_merged_total", total=total)
581
582
  if not force_skip_git and not self.args.skip_commit:
582
583
  commit_result = git_utils.commit_changes(self.args.source_dir, f"{self.args.query}\nauto_coder_{file_name}_{md5}")
584
+
585
+ action_yml_file_manager = ActionYmlFileManager(self.args.source_dir)
586
+ action_file_name = os.path.basename(self.args.file)
587
+ add_updated_urls = []
588
+ commit_result.changed_files
589
+ for file in commit_result.changed_files:
590
+ add_updated_urls.append(os.path.join(self.args.source_dir, file))
591
+
592
+ self.args.add_updated_urls = add_updated_urls
593
+ update_yaml_success = action_yml_file_manager.update_yaml_field(action_file_name, "add_updated_urls", add_updated_urls)
594
+ if not update_yaml_success:
595
+ self.printer.print_in_terminal("yaml_save_error", style="red", yaml_file=action_file_name)
596
+
583
597
  git_utils.print_commit_info(commit_result=commit_result)
584
598
  else:
585
599
  # Print edits for review
@@ -1,6 +1,7 @@
1
1
  import os
2
2
  from byzerllm.utils.client import code_utils
3
3
  from autocoder.common import AutoCoderArgs, git_utils
4
+ from autocoder.common.action_yml_file_manager import ActionYmlFileManager
4
5
  from autocoder.common.text import TextSimilarity
5
6
  from autocoder.utils.queue_communicate import (
6
7
  queue_communicate,
@@ -428,6 +429,19 @@ class CodeAutoMergeEditBlock:
428
429
  self.args.source_dir,
429
430
  f"{self.args.query}\nauto_coder_{file_name}_{md5}",
430
431
  )
432
+
433
+ action_yml_file_manager = ActionYmlFileManager(self.args.source_dir)
434
+ action_file_name = os.path.basename(self.args.file)
435
+ add_updated_urls = []
436
+ commit_result.changed_files
437
+ for file in commit_result.changed_files:
438
+ add_updated_urls.append(os.path.join(self.args.source_dir, file))
439
+
440
+ self.args.add_updated_urls = add_updated_urls
441
+ update_yaml_success = action_yml_file_manager.update_yaml_field(action_file_name, "add_updated_urls", add_updated_urls)
442
+ if not update_yaml_success:
443
+ self.printer.print_in_terminal("yaml_save_error", style="red", yaml_file=action_file_name)
444
+
431
445
  git_utils.print_commit_info(commit_result=commit_result)
432
446
  except Exception as e:
433
447
  self.printer.print_str_in_terminal(
@@ -5,6 +5,7 @@ from autocoder.common import AutoCoderArgs, git_utils
5
5
  from typing import List,Tuple
6
6
  import pydantic
7
7
  import byzerllm
8
+ from autocoder.common.action_yml_file_manager import ActionYmlFileManager
8
9
  from autocoder.common.printer import Printer
9
10
  import hashlib
10
11
  from pathlib import Path
@@ -288,6 +289,18 @@ class CodeAutoMergeStrictDiff:
288
289
  commit_result = git_utils.commit_changes(
289
290
  self.args.source_dir, f"{self.args.query}\nauto_coder_{file_name}_{md5}"
290
291
  )
292
+ action_yml_file_manager = ActionYmlFileManager(self.args.source_dir)
293
+ action_file_name = os.path.basename(self.args.file)
294
+ add_updated_urls = []
295
+ commit_result.changed_files
296
+ for file in commit_result.changed_files:
297
+ add_updated_urls.append(os.path.join(self.args.source_dir, file))
298
+
299
+ self.args.add_updated_urls = add_updated_urls
300
+ update_yaml_success = action_yml_file_manager.update_yaml_field(action_file_name, "add_updated_urls", add_updated_urls)
301
+ if not update_yaml_success:
302
+ self.printer.print_in_terminal("yaml_save_error", style="red", yaml_file=action_file_name)
303
+
291
304
  git_utils.print_commit_info(commit_result=commit_result)
292
305
  else:
293
306
  # Print diff blocks for review
@@ -0,0 +1 @@
1
+ __version__ = "0.1.301"
@@ -1 +0,0 @@
1
- __version__ = "0.1.300"
File without changes
File without changes
File without changes
File without changes