auto-coder 0.1.264__tar.gz → 0.1.265__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 (181) hide show
  1. {auto_coder-0.1.264 → auto_coder-0.1.265}/PKG-INFO +1 -1
  2. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/auto_coder.egg-info/PKG-INFO +1 -1
  3. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/auto_coder.egg-info/SOURCES.txt +2 -0
  4. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/agent/planner.py +4 -4
  5. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/auto_coder.py +26 -21
  6. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/auto_coder_server.py +7 -7
  7. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/chat_auto_coder.py +150 -49
  8. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/commands/auto_command.py +81 -4
  9. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/commands/tools.py +48 -50
  10. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/__init__.py +0 -1
  11. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/auto_coder_lang.py +37 -3
  12. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/code_auto_generate.py +3 -3
  13. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/code_auto_generate_diff.py +3 -6
  14. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/code_auto_generate_editblock.py +3 -3
  15. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/code_auto_generate_strict_diff.py +3 -3
  16. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/code_auto_merge_diff.py +2 -2
  17. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/code_auto_merge_editblock.py +1 -1
  18. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/code_auto_merge_strict_diff.py +3 -3
  19. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/command_completer.py +3 -0
  20. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/command_generator.py +24 -8
  21. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/command_templates.py +2 -2
  22. auto_coder-0.1.265/src/autocoder/common/conf_import_export.py +105 -0
  23. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/conf_validator.py +1 -1
  24. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/files.py +41 -2
  25. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/image_to_page.py +11 -11
  26. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/index_import_export.py +38 -18
  27. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/mcp_hub.py +3 -3
  28. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/mcp_server.py +2 -2
  29. auto_coder-0.1.265/src/autocoder/common/shells.py +482 -0
  30. auto_coder-0.1.265/src/autocoder/common/stats_panel.py +126 -0
  31. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/dispacher/actions/action.py +6 -18
  32. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/dispacher/actions/copilot.py +2 -2
  33. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/dispacher/actions/plugins/action_regex_project.py +1 -3
  34. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/dispacher/actions/plugins/action_translate.py +1 -1
  35. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/index/index.py +5 -5
  36. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/models.py +2 -2
  37. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/pyproject/__init__.py +5 -5
  38. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/cache/byzer_storage_cache.py +4 -4
  39. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/cache/file_monitor_cache.py +2 -2
  40. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/cache/simple_cache.py +4 -4
  41. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/long_context_rag.py +2 -2
  42. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/regexproject/__init__.py +3 -2
  43. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/suffixproject/__init__.py +3 -2
  44. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/tsproject/__init__.py +3 -2
  45. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/utils/conversation_store.py +1 -1
  46. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/utils/operate_config_api.py +3 -3
  47. auto_coder-0.1.265/src/autocoder/version.py +1 -0
  48. auto_coder-0.1.264/src/autocoder/common/shells.py +0 -241
  49. auto_coder-0.1.264/src/autocoder/version.py +0 -1
  50. {auto_coder-0.1.264 → auto_coder-0.1.265}/LICENSE +0 -0
  51. {auto_coder-0.1.264 → auto_coder-0.1.265}/README.md +0 -0
  52. {auto_coder-0.1.264 → auto_coder-0.1.265}/setup.cfg +0 -0
  53. {auto_coder-0.1.264 → auto_coder-0.1.265}/setup.py +0 -0
  54. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/auto_coder.egg-info/dependency_links.txt +0 -0
  55. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/auto_coder.egg-info/entry_points.txt +0 -0
  56. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/auto_coder.egg-info/requires.txt +0 -0
  57. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/auto_coder.egg-info/top_level.txt +0 -0
  58. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/__init__.py +0 -0
  59. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/agent/__init__.py +0 -0
  60. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/agent/auto_demand_organizer.py +0 -0
  61. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/agent/auto_filegroup.py +0 -0
  62. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/agent/auto_guess_query.py +0 -0
  63. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/agent/auto_review_commit.py +0 -0
  64. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/agent/auto_tool.py +0 -0
  65. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/agent/coder.py +0 -0
  66. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/agent/designer.py +0 -0
  67. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/agent/project_reader.py +0 -0
  68. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/auto_coder_rag.py +0 -0
  69. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/auto_coder_rag_client_mcp.py +0 -0
  70. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/auto_coder_rag_mcp.py +0 -0
  71. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/benchmark.py +0 -0
  72. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/chat/__init__.py +0 -0
  73. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/chat_auto_coder_lang.py +0 -0
  74. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/command_args.py +0 -0
  75. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/commands/__init__.py +0 -0
  76. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/JupyterClient.py +0 -0
  77. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/ShellClient.py +0 -0
  78. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/anything2images.py +0 -0
  79. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/anything2img.py +0 -0
  80. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/audio.py +0 -0
  81. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/auto_configure.py +0 -0
  82. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/buildin_tokenizer.py +0 -0
  83. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/chunk_validation.py +0 -0
  84. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/cleaner.py +0 -0
  85. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/code_auto_execute.py +0 -0
  86. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/code_auto_merge.py +0 -0
  87. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/code_modification_ranker.py +0 -0
  88. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/const.py +0 -0
  89. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/context_pruner.py +0 -0
  90. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/conversation_pruner.py +0 -0
  91. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/git_utils.py +0 -0
  92. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/global_cancel.py +0 -0
  93. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/interpreter.py +0 -0
  94. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/llm_rerank.py +0 -0
  95. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/mcp_servers/__init__.py +0 -0
  96. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/mcp_servers/mcp_server_perplexity.py +0 -0
  97. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/mcp_tools.py +0 -0
  98. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/memory_manager.py +0 -0
  99. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/model_speed_test.py +0 -0
  100. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/printer.py +0 -0
  101. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/recall_validation.py +0 -0
  102. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/result_manager.py +0 -0
  103. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/screenshots.py +0 -0
  104. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/search.py +0 -0
  105. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/search_replace.py +0 -0
  106. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/sys_prompt.py +0 -0
  107. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/text.py +0 -0
  108. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/types.py +0 -0
  109. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/common/utils_code_auto_generate.py +0 -0
  110. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/data/byzerllm.md +0 -0
  111. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/data/tokenizer.json +0 -0
  112. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/db/__init__.py +0 -0
  113. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/db/store.py +0 -0
  114. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/dispacher/__init__.py +0 -0
  115. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/dispacher/actions/__init__.py +0 -0
  116. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/dispacher/actions/plugins/__init__.py +0 -0
  117. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/index/__init__.py +0 -0
  118. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/index/entry.py +0 -0
  119. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/index/filter/__init__.py +0 -0
  120. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/index/filter/normal_filter.py +0 -0
  121. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/index/filter/quick_filter.py +0 -0
  122. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/index/for_command.py +0 -0
  123. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/index/symbols_utils.py +0 -0
  124. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/index/types.py +0 -0
  125. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/lang.py +0 -0
  126. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/privacy/__init__.py +0 -0
  127. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/privacy/model_filter.py +0 -0
  128. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/__init__.py +0 -0
  129. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/api_server.py +0 -0
  130. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/cache/__init__.py +0 -0
  131. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/cache/base_cache.py +0 -0
  132. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/doc_filter.py +0 -0
  133. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/document_retriever.py +0 -0
  134. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/llm_wrapper.py +0 -0
  135. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/loaders/__init__.py +0 -0
  136. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/loaders/docx_loader.py +0 -0
  137. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/loaders/excel_loader.py +0 -0
  138. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/loaders/pdf_loader.py +0 -0
  139. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/loaders/ppt_loader.py +0 -0
  140. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/rag_config.py +0 -0
  141. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/rag_entry.py +0 -0
  142. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/raw_rag.py +0 -0
  143. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/relevant_utils.py +0 -0
  144. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/simple_directory_reader.py +0 -0
  145. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/simple_rag.py +0 -0
  146. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/stream_event/__init__.py +0 -0
  147. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/stream_event/event_writer.py +0 -0
  148. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/stream_event/types.py +0 -0
  149. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/token_checker.py +0 -0
  150. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/token_counter.py +0 -0
  151. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/token_limiter.py +0 -0
  152. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/types.py +0 -0
  153. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/utils.py +0 -0
  154. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/rag/variable_holder.py +0 -0
  155. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/utils/__init__.py +0 -0
  156. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/utils/_markitdown.py +0 -0
  157. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/utils/auto_coder_utils/__init__.py +0 -0
  158. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/utils/auto_coder_utils/chat_stream_out.py +0 -0
  159. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/utils/chat_auto_coder_utils/__init__.py +0 -0
  160. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/utils/llm_client_interceptors.py +0 -0
  161. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/utils/llms.py +0 -0
  162. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/utils/log_capture.py +0 -0
  163. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/utils/model_provider_selector.py +0 -0
  164. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/utils/multi_turn.py +0 -0
  165. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/utils/print_table.py +0 -0
  166. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/utils/project_structure.py +0 -0
  167. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/utils/queue_communicate.py +0 -0
  168. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/utils/request_event_queue.py +0 -0
  169. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/utils/request_queue.py +0 -0
  170. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/utils/rest.py +0 -0
  171. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/utils/tests.py +0 -0
  172. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/utils/thread_utils.py +0 -0
  173. {auto_coder-0.1.264 → auto_coder-0.1.265}/src/autocoder/utils/types.py +0 -0
  174. {auto_coder-0.1.264 → auto_coder-0.1.265}/tests/test_action_regex_project.py +0 -0
  175. {auto_coder-0.1.264 → auto_coder-0.1.265}/tests/test_chat_auto_coder.py +0 -0
  176. {auto_coder-0.1.264 → auto_coder-0.1.265}/tests/test_code_auto_merge_editblock.py +0 -0
  177. {auto_coder-0.1.264 → auto_coder-0.1.265}/tests/test_command_completer.py +0 -0
  178. {auto_coder-0.1.264 → auto_coder-0.1.265}/tests/test_planner.py +0 -0
  179. {auto_coder-0.1.264 → auto_coder-0.1.265}/tests/test_privacy.py +0 -0
  180. {auto_coder-0.1.264 → auto_coder-0.1.265}/tests/test_queue_communicate.py +0 -0
  181. {auto_coder-0.1.264 → auto_coder-0.1.265}/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.264
3
+ Version: 0.1.265
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.264
3
+ Version: 0.1.265
4
4
  Summary: AutoCoder: AutoCoder
5
5
  Author: allwefantasy
6
6
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
@@ -58,6 +58,7 @@ src/autocoder/common/code_modification_ranker.py
58
58
  src/autocoder/common/command_completer.py
59
59
  src/autocoder/common/command_generator.py
60
60
  src/autocoder/common/command_templates.py
61
+ src/autocoder/common/conf_import_export.py
61
62
  src/autocoder/common/conf_validator.py
62
63
  src/autocoder/common/const.py
63
64
  src/autocoder/common/context_pruner.py
@@ -81,6 +82,7 @@ src/autocoder/common/screenshots.py
81
82
  src/autocoder/common/search.py
82
83
  src/autocoder/common/search_replace.py
83
84
  src/autocoder/common/shells.py
85
+ src/autocoder/common/stats_panel.py
84
86
  src/autocoder/common/sys_prompt.py
85
87
  src/autocoder/common/text.py
86
88
  src/autocoder/common/types.py
@@ -119,11 +119,11 @@ def get_tools(args: AutoCoderArgs, llm: byzerllm.ByzerLLM):
119
119
 
120
120
  if not prev_files:
121
121
  new_file = os.path.join(actions_dir, f"{new_seq}_{yaml_file_name}.yml")
122
- with open(new_file, "w") as f:
122
+ with open(new_file, "w",encoding="utf-8") as f:
123
123
  pass
124
124
  else:
125
125
  prev_file = sorted(prev_files)[-1] # 取序号最大的文件
126
- with open(os.path.join(actions_dir, prev_file), "r") as f:
126
+ with open(os.path.join(actions_dir, prev_file), "r",encoding="utf-8") as f:
127
127
  content = f.read()
128
128
 
129
129
  yaml_content = yaml.safe_load(content)
@@ -137,7 +137,7 @@ def get_tools(args: AutoCoderArgs, llm: byzerllm.ByzerLLM):
137
137
 
138
138
  new_content = yaml.safe_dump(yaml_content, allow_unicode=True, default_flow_style=False)
139
139
  new_file = os.path.join(actions_dir, f"{new_seq}_{yaml_file_name}.yml")
140
- with open(new_file, "w") as f:
140
+ with open(new_file, "w",encoding="utf-8") as f:
141
141
  f.write(new_content + "\n" + yaml_str)
142
142
 
143
143
  return new_file
@@ -151,7 +151,7 @@ def get_tools(args: AutoCoderArgs, llm: byzerllm.ByzerLLM):
151
151
  paths = [p.strip() for p in paths.split(",")]
152
152
  source_code_str = ""
153
153
  for path in paths:
154
- with open(path, "r") as f:
154
+ with open(path, "r",encoding="utf-8") as f:
155
155
  source_code = f.read()
156
156
  sc = SourceCode(module_name=path, source_code=source_code)
157
157
  source_code_str += f"##File: {sc.module_name}\n"
@@ -75,7 +75,7 @@ def load_include_files(config, base_path, max_depth=10, current_depth=0):
75
75
 
76
76
  for include_file in include_files:
77
77
  abs_include_path = resolve_include_path(base_path, include_file)
78
- with open(abs_include_path, "r") as f:
78
+ with open(abs_include_path, "r",encoding="utf-8") as f:
79
79
  include_config = yaml.safe_load(f)
80
80
  if not include_config:
81
81
  logger.info(
@@ -103,7 +103,7 @@ def main(input_args: Optional[List[str]] = None):
103
103
  args: AutoCoderArgs = args
104
104
 
105
105
  if args.file:
106
- with open(args.file, "r") as f:
106
+ with open(args.file, "r",encoding="utf-8") as f:
107
107
  config = yaml.safe_load(f)
108
108
  config = load_include_files(config, args.file)
109
109
  for key, value in config.items():
@@ -178,8 +178,8 @@ def main(input_args: Optional[List[str]] = None):
178
178
 
179
179
  with open(os.path.join(source_dir, ".gitignore"), "a") as f:
180
180
  f.write("\n.auto-coder/")
181
- f.write("\nactions/")
182
- f.write("\noutput.txt")
181
+ f.write("\n/actions/")
182
+ f.write("\n/output.txt")
183
183
 
184
184
  print(
185
185
  f"""Successfully initialized auto-coder project in {os.path.abspath(args.source_dir)}."""
@@ -224,11 +224,11 @@ def main(input_args: Optional[List[str]] = None):
224
224
  f for f in action_files if f.startswith(raw_args.from_yaml)]
225
225
  if from_files:
226
226
  from_file = from_files[0] # Take the first match
227
- with open(os.path.join(actions_dir, from_file), "r") as f:
227
+ with open(os.path.join(actions_dir, from_file), "r",encoding="utf-8") as f:
228
228
  content = f.read()
229
229
  new_file = os.path.join(
230
230
  actions_dir, f"{new_seq}_{raw_args.name}.yml")
231
- with open(new_file, "w") as f:
231
+ with open(new_file, "w",encoding="utf-8") as f:
232
232
  f.write(content)
233
233
  else:
234
234
  print(
@@ -239,15 +239,15 @@ def main(input_args: Optional[List[str]] = None):
239
239
  if not prev_files:
240
240
  new_file = os.path.join(
241
241
  actions_dir, f"{new_seq}_{raw_args.name}.yml")
242
- with open(new_file, "w") as f:
242
+ with open(new_file, "w",encoding="utf-8") as f:
243
243
  pass
244
244
  else:
245
245
  prev_file = sorted(prev_files)[-1] # 取序号最大的文件
246
- with open(os.path.join(actions_dir, prev_file), "r") as f:
246
+ with open(os.path.join(actions_dir, prev_file), "r",encoding="utf-8") as f:
247
247
  content = f.read()
248
248
  new_file = os.path.join(
249
249
  actions_dir, f"{new_seq}_{raw_args.name}.yml")
250
- with open(new_file, "w") as f:
250
+ with open(new_file, "w",encoding="utf-8") as f:
251
251
  f.write(content)
252
252
  # open_yaml_file_in_editor(new_file)
253
253
  return
@@ -485,6 +485,9 @@ def main(input_args: Optional[List[str]] = None):
485
485
  )
486
486
  instruction = input_value[0]["instruction"]
487
487
  final_ins = instruction
488
+
489
+ with open(args.target_file, "w",encoding="utf-8") as f:
490
+ f.write(final_ins)
488
491
 
489
492
  try:
490
493
  import pyperclip
@@ -959,7 +962,7 @@ def main(input_args: Optional[List[str]] = None):
959
962
  )
960
963
  )
961
964
 
962
- with open(os.path.join(".auto-coder", "exchange.txt"), "w") as f:
965
+ with open(os.path.join(".auto-coder", "exchange.txt"), "w",encoding="utf-8") as f:
963
966
  f.write(transcription)
964
967
 
965
968
  request_queue.add_request(
@@ -987,7 +990,7 @@ def main(input_args: Optional[List[str]] = None):
987
990
  )
988
991
  )
989
992
 
990
- with open(os.path.join(".auto-coder", "exchange.txt"), "w") as f:
993
+ with open(os.path.join(".auto-coder", "exchange.txt"), "w",encoding="utf-8") as f:
991
994
  f.write(shell_script)
992
995
 
993
996
  request_queue.add_request(
@@ -1066,7 +1069,7 @@ def main(input_args: Optional[List[str]] = None):
1066
1069
  result_manager = ResultManager()
1067
1070
  if args.new_session:
1068
1071
  if os.path.exists(memory_file):
1069
- with open(memory_file, "r") as f:
1072
+ with open(memory_file, "r",encoding="utf-8") as f:
1070
1073
  old_chat_history = json.load(f)
1071
1074
  if "conversation_history" not in old_chat_history:
1072
1075
  old_chat_history["conversation_history"] = []
@@ -1077,7 +1080,7 @@ def main(input_args: Optional[List[str]] = None):
1077
1080
  else:
1078
1081
  chat_history = {"ask_conversation": [],
1079
1082
  "conversation_history": []}
1080
- with open(memory_file, "w") as f:
1083
+ with open(memory_file, "w",encoding="utf-8") as f:
1081
1084
  json.dump(chat_history, f, ensure_ascii=False)
1082
1085
 
1083
1086
  result_manager.add_result(content=get_message("new_session_started"), meta={
@@ -1098,7 +1101,7 @@ def main(input_args: Optional[List[str]] = None):
1098
1101
  return
1099
1102
 
1100
1103
  if os.path.exists(memory_file):
1101
- with open(memory_file, "r") as f:
1104
+ with open(memory_file, "r",encoding="utf-8") as f:
1102
1105
  chat_history = json.load(f)
1103
1106
  if "conversation_history" not in chat_history:
1104
1107
  chat_history["conversation_history"] = []
@@ -1218,7 +1221,11 @@ def main(input_args: Optional[List[str]] = None):
1218
1221
  source_codes=source_codes,
1219
1222
  pre_conversations=loaded_conversations[source_count * 2: -1],
1220
1223
  last_conversation=loaded_conversations[-1],
1221
- )
1224
+ )
1225
+
1226
+ with open(args.target_file, "w",encoding="utf-8") as f:
1227
+ f.write(chat_content)
1228
+
1222
1229
  try:
1223
1230
  import pyperclip
1224
1231
 
@@ -1274,9 +1281,7 @@ def main(input_args: Optional[List[str]] = None):
1274
1281
  lines.append(line)
1275
1282
 
1276
1283
  result = "\n".join(lines)
1277
-
1278
- with open(args.target_file, "w") as f:
1279
- f.write(chat_content)
1284
+
1280
1285
 
1281
1286
  result_manager = ResultManager()
1282
1287
  result_manager.append(content=result,
@@ -1289,7 +1294,7 @@ def main(input_args: Optional[List[str]] = None):
1289
1294
  {"role": "assistant", "content": result}
1290
1295
  )
1291
1296
 
1292
- with open(memory_file, "w") as f:
1297
+ with open(memory_file, "w",encoding="utf-8") as f:
1293
1298
  json.dump(chat_history, f, ensure_ascii=False)
1294
1299
 
1295
1300
  request_queue.add_request(
@@ -1397,7 +1402,7 @@ def main(input_args: Optional[List[str]] = None):
1397
1402
  {"role": "assistant", "content": assistant_response}
1398
1403
  )
1399
1404
 
1400
- with open(memory_file, "w") as f:
1405
+ with open(memory_file, "w",encoding="utf-8") as f:
1401
1406
  json.dump(chat_history, f, ensure_ascii=False)
1402
1407
 
1403
1408
  if "copy" in args.action:
@@ -1500,7 +1505,7 @@ def main(input_args: Optional[List[str]] = None):
1500
1505
  else:
1501
1506
  http_doc = HttpDoc(args=args, llm=llm, urls=None)
1502
1507
  source_codes = http_doc.crawl_urls()
1503
- with open(args.target_file, "w") as f:
1508
+ with open(args.target_file, "w",encoding="utf-8") as f:
1504
1509
  f.write("\n".join([sc.source_code for sc in source_codes]))
1505
1510
  return
1506
1511
 
@@ -88,7 +88,7 @@ def load_memory():
88
88
  global memory
89
89
  memory_path = os.path.join(base_persist_dir, "memory.json")
90
90
  if os.path.exists(memory_path):
91
- with open(memory_path, "r") as f:
91
+ with open(memory_path, "r",encoding="utf-8") as f:
92
92
  memory = json.load(f)
93
93
 
94
94
 
@@ -222,7 +222,7 @@ async def coding(request: QueryRequest, background_tasks: BackgroundTasks):
222
222
 
223
223
  yaml_content = convert_yaml_config_to_str(yaml_config=yaml_config)
224
224
  execute_file = os.path.join("actions", latest_yaml_file)
225
- with open(execute_file, "w") as f:
225
+ with open(execute_file, "w", encoding="utf-8") as f:
226
226
  f.write(yaml_content)
227
227
 
228
228
  try:
@@ -262,7 +262,7 @@ async def chat(request: QueryRequest, background_tasks: BackgroundTasks):
262
262
  file_contents = []
263
263
  for file in current_files:
264
264
  if os.path.exists(file):
265
- with open(file, "r") as f:
265
+ with open(file, "r",encoding="utf-8") as f:
266
266
  content = f.read()
267
267
  s = f"##File: {file}\n{content}\n\n"
268
268
  file_contents.append(s)
@@ -282,7 +282,7 @@ async def chat(request: QueryRequest, background_tasks: BackgroundTasks):
282
282
 
283
283
  yaml_content = convert_yaml_config_to_str(yaml_config=yaml_config)
284
284
 
285
- with open(execute_file, "w") as f:
285
+ with open(execute_file, "w",encoding="utf-8") as f:
286
286
  f.write(yaml_content)
287
287
  auto_coder_main(
288
288
  ["agent", "chat", "--file", execute_file, "--request_id", request_id]
@@ -318,7 +318,7 @@ async def ask(request: QueryRequest, background_tasks: BackgroundTasks):
318
318
 
319
319
  execute_file = os.path.join("actions", f"{uuid.uuid4()}.yml")
320
320
 
321
- with open(execute_file, "w") as f:
321
+ with open(execute_file, "w", encoding="utf-8") as f:
322
322
  f.write(yaml_content)
323
323
 
324
324
  try:
@@ -372,7 +372,7 @@ async def index_build(background_tasks: BackgroundTasks):
372
372
  include_file:
373
373
  - ./base/base.yml
374
374
  """
375
- with open(yaml_file, "w") as f:
375
+ with open(yaml_file, "w", encoding="utf-8") as f:
376
376
  f.write(yaml_content)
377
377
 
378
378
  log_capture = LogCapture(request_id=request_id)
@@ -400,7 +400,7 @@ async def index_query(request: QueryRequest, background_tasks: BackgroundTasks):
400
400
  query: |
401
401
  {request.query}
402
402
  """
403
- with open(yaml_file, "w") as f:
403
+ with open(yaml_file, "w", encoding="utf-8") as f:
404
404
  f.write(yaml_content)
405
405
  try:
406
406
  auto_coder_main(