auto-coder 0.1.265__tar.gz → 0.1.266__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 (180) hide show
  1. {auto_coder-0.1.265 → auto_coder-0.1.266}/PKG-INFO +2 -2
  2. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/auto_coder.egg-info/PKG-INFO +2 -2
  3. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/auto_coder.egg-info/requires.txt +1 -1
  4. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/commands/auto_command.py +2 -1
  5. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/auto_coder_lang.py +6 -0
  6. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/code_auto_merge_diff.py +35 -1
  7. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/code_auto_merge_editblock.py +42 -0
  8. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/code_auto_merge_strict_diff.py +36 -1
  9. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/index/entry.py +2 -2
  10. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/index/filter/normal_filter.py +1 -1
  11. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/index/filter/quick_filter.py +1 -1
  12. auto_coder-0.1.266/src/autocoder/version.py +1 -0
  13. auto_coder-0.1.265/src/autocoder/version.py +0 -1
  14. {auto_coder-0.1.265 → auto_coder-0.1.266}/LICENSE +0 -0
  15. {auto_coder-0.1.265 → auto_coder-0.1.266}/README.md +0 -0
  16. {auto_coder-0.1.265 → auto_coder-0.1.266}/setup.cfg +0 -0
  17. {auto_coder-0.1.265 → auto_coder-0.1.266}/setup.py +0 -0
  18. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/auto_coder.egg-info/SOURCES.txt +0 -0
  19. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/auto_coder.egg-info/dependency_links.txt +0 -0
  20. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/auto_coder.egg-info/entry_points.txt +0 -0
  21. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/auto_coder.egg-info/top_level.txt +0 -0
  22. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/__init__.py +0 -0
  23. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/agent/__init__.py +0 -0
  24. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/agent/auto_demand_organizer.py +0 -0
  25. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/agent/auto_filegroup.py +0 -0
  26. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/agent/auto_guess_query.py +0 -0
  27. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/agent/auto_review_commit.py +0 -0
  28. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/agent/auto_tool.py +0 -0
  29. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/agent/coder.py +0 -0
  30. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/agent/designer.py +0 -0
  31. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/agent/planner.py +0 -0
  32. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/agent/project_reader.py +0 -0
  33. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/auto_coder.py +0 -0
  34. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/auto_coder_rag.py +0 -0
  35. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/auto_coder_rag_client_mcp.py +0 -0
  36. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/auto_coder_rag_mcp.py +0 -0
  37. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/auto_coder_server.py +0 -0
  38. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/benchmark.py +0 -0
  39. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/chat/__init__.py +0 -0
  40. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/chat_auto_coder.py +0 -0
  41. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/chat_auto_coder_lang.py +0 -0
  42. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/command_args.py +0 -0
  43. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/commands/__init__.py +0 -0
  44. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/commands/tools.py +0 -0
  45. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/JupyterClient.py +0 -0
  46. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/ShellClient.py +0 -0
  47. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/__init__.py +0 -0
  48. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/anything2images.py +0 -0
  49. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/anything2img.py +0 -0
  50. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/audio.py +0 -0
  51. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/auto_configure.py +0 -0
  52. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/buildin_tokenizer.py +0 -0
  53. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/chunk_validation.py +0 -0
  54. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/cleaner.py +0 -0
  55. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/code_auto_execute.py +0 -0
  56. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/code_auto_generate.py +0 -0
  57. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/code_auto_generate_diff.py +0 -0
  58. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/code_auto_generate_editblock.py +0 -0
  59. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/code_auto_generate_strict_diff.py +0 -0
  60. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/code_auto_merge.py +0 -0
  61. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/code_modification_ranker.py +0 -0
  62. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/command_completer.py +0 -0
  63. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/command_generator.py +0 -0
  64. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/command_templates.py +0 -0
  65. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/conf_import_export.py +0 -0
  66. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/conf_validator.py +0 -0
  67. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/const.py +0 -0
  68. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/context_pruner.py +0 -0
  69. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/conversation_pruner.py +0 -0
  70. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/files.py +0 -0
  71. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/git_utils.py +0 -0
  72. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/global_cancel.py +0 -0
  73. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/image_to_page.py +0 -0
  74. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/index_import_export.py +0 -0
  75. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/interpreter.py +0 -0
  76. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/llm_rerank.py +0 -0
  77. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/mcp_hub.py +0 -0
  78. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/mcp_server.py +0 -0
  79. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/mcp_servers/__init__.py +0 -0
  80. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/mcp_servers/mcp_server_perplexity.py +0 -0
  81. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/mcp_tools.py +0 -0
  82. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/memory_manager.py +0 -0
  83. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/model_speed_test.py +0 -0
  84. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/printer.py +0 -0
  85. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/recall_validation.py +0 -0
  86. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/result_manager.py +0 -0
  87. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/screenshots.py +0 -0
  88. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/search.py +0 -0
  89. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/search_replace.py +0 -0
  90. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/shells.py +0 -0
  91. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/stats_panel.py +0 -0
  92. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/sys_prompt.py +0 -0
  93. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/text.py +0 -0
  94. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/types.py +0 -0
  95. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/common/utils_code_auto_generate.py +0 -0
  96. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/data/byzerllm.md +0 -0
  97. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/data/tokenizer.json +0 -0
  98. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/db/__init__.py +0 -0
  99. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/db/store.py +0 -0
  100. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/dispacher/__init__.py +0 -0
  101. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/dispacher/actions/__init__.py +0 -0
  102. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/dispacher/actions/action.py +0 -0
  103. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/dispacher/actions/copilot.py +0 -0
  104. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/dispacher/actions/plugins/__init__.py +0 -0
  105. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/dispacher/actions/plugins/action_regex_project.py +0 -0
  106. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/dispacher/actions/plugins/action_translate.py +0 -0
  107. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/index/__init__.py +0 -0
  108. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/index/filter/__init__.py +0 -0
  109. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/index/for_command.py +0 -0
  110. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/index/index.py +0 -0
  111. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/index/symbols_utils.py +0 -0
  112. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/index/types.py +0 -0
  113. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/lang.py +0 -0
  114. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/models.py +0 -0
  115. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/privacy/__init__.py +0 -0
  116. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/privacy/model_filter.py +0 -0
  117. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/pyproject/__init__.py +0 -0
  118. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/__init__.py +0 -0
  119. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/api_server.py +0 -0
  120. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/cache/__init__.py +0 -0
  121. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/cache/base_cache.py +0 -0
  122. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/cache/byzer_storage_cache.py +0 -0
  123. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/cache/file_monitor_cache.py +0 -0
  124. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/cache/simple_cache.py +0 -0
  125. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/doc_filter.py +0 -0
  126. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/document_retriever.py +0 -0
  127. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/llm_wrapper.py +0 -0
  128. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/loaders/__init__.py +0 -0
  129. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/loaders/docx_loader.py +0 -0
  130. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/loaders/excel_loader.py +0 -0
  131. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/loaders/pdf_loader.py +0 -0
  132. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/loaders/ppt_loader.py +0 -0
  133. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/long_context_rag.py +0 -0
  134. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/rag_config.py +0 -0
  135. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/rag_entry.py +0 -0
  136. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/raw_rag.py +0 -0
  137. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/relevant_utils.py +0 -0
  138. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/simple_directory_reader.py +0 -0
  139. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/simple_rag.py +0 -0
  140. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/stream_event/__init__.py +0 -0
  141. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/stream_event/event_writer.py +0 -0
  142. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/stream_event/types.py +0 -0
  143. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/token_checker.py +0 -0
  144. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/token_counter.py +0 -0
  145. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/token_limiter.py +0 -0
  146. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/types.py +0 -0
  147. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/utils.py +0 -0
  148. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/rag/variable_holder.py +0 -0
  149. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/regexproject/__init__.py +0 -0
  150. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/suffixproject/__init__.py +0 -0
  151. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/tsproject/__init__.py +0 -0
  152. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/utils/__init__.py +0 -0
  153. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/utils/_markitdown.py +0 -0
  154. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/utils/auto_coder_utils/__init__.py +0 -0
  155. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/utils/auto_coder_utils/chat_stream_out.py +0 -0
  156. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/utils/chat_auto_coder_utils/__init__.py +0 -0
  157. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/utils/conversation_store.py +0 -0
  158. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/utils/llm_client_interceptors.py +0 -0
  159. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/utils/llms.py +0 -0
  160. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/utils/log_capture.py +0 -0
  161. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/utils/model_provider_selector.py +0 -0
  162. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/utils/multi_turn.py +0 -0
  163. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/utils/operate_config_api.py +0 -0
  164. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/utils/print_table.py +0 -0
  165. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/utils/project_structure.py +0 -0
  166. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/utils/queue_communicate.py +0 -0
  167. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/utils/request_event_queue.py +0 -0
  168. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/utils/request_queue.py +0 -0
  169. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/utils/rest.py +0 -0
  170. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/utils/tests.py +0 -0
  171. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/utils/thread_utils.py +0 -0
  172. {auto_coder-0.1.265 → auto_coder-0.1.266}/src/autocoder/utils/types.py +0 -0
  173. {auto_coder-0.1.265 → auto_coder-0.1.266}/tests/test_action_regex_project.py +0 -0
  174. {auto_coder-0.1.265 → auto_coder-0.1.266}/tests/test_chat_auto_coder.py +0 -0
  175. {auto_coder-0.1.265 → auto_coder-0.1.266}/tests/test_code_auto_merge_editblock.py +0 -0
  176. {auto_coder-0.1.265 → auto_coder-0.1.266}/tests/test_command_completer.py +0 -0
  177. {auto_coder-0.1.265 → auto_coder-0.1.266}/tests/test_planner.py +0 -0
  178. {auto_coder-0.1.265 → auto_coder-0.1.266}/tests/test_privacy.py +0 -0
  179. {auto_coder-0.1.265 → auto_coder-0.1.266}/tests/test_queue_communicate.py +0 -0
  180. {auto_coder-0.1.265 → auto_coder-0.1.266}/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.265
3
+ Version: 0.1.266
4
4
  Summary: AutoCoder: AutoCoder
5
5
  Author: allwefantasy
6
6
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
@@ -26,7 +26,7 @@ Requires-Dist: tabulate
26
26
  Requires-Dist: jupyter_client
27
27
  Requires-Dist: prompt-toolkit
28
28
  Requires-Dist: tokenizers
29
- Requires-Dist: byzerllm[saas]>=0.1.167
29
+ Requires-Dist: byzerllm[saas]>=0.1.168
30
30
  Requires-Dist: patch
31
31
  Requires-Dist: diff_match_patch
32
32
  Requires-Dist: GitPython
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: auto-coder
3
- Version: 0.1.265
3
+ Version: 0.1.266
4
4
  Summary: AutoCoder: AutoCoder
5
5
  Author: allwefantasy
6
6
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
@@ -26,7 +26,7 @@ Requires-Dist: tabulate
26
26
  Requires-Dist: jupyter_client
27
27
  Requires-Dist: prompt-toolkit
28
28
  Requires-Dist: tokenizers
29
- Requires-Dist: byzerllm[saas]>=0.1.167
29
+ Requires-Dist: byzerllm[saas]>=0.1.168
30
30
  Requires-Dist: patch
31
31
  Requires-Dist: diff_match_patch
32
32
  Requires-Dist: GitPython
@@ -16,7 +16,7 @@ tabulate
16
16
  jupyter_client
17
17
  prompt-toolkit
18
18
  tokenizers
19
- byzerllm[saas]>=0.1.167
19
+ byzerllm[saas]>=0.1.168
20
20
  patch
21
21
  diff_match_patch
22
22
  GitPython
@@ -641,9 +641,10 @@ class CommandAutoTuner:
641
641
  ## editblock_similarity: editblock相似度阈值
642
642
  - editblock相似度阈值,取值范围为0-1,默认值为0.9。如果设置的太低,虽然能合并进去,但是会引入错误。推荐不要修改该值。
643
643
 
644
- ## generate_times_same_model: 相同模型生成次数
644
+ ## generate_times_same_model: 相同模型生成次数,也叫采样数
645
645
  当进行生成代码时,大模型会对同一个需求生成多份代码,然后会使用 generate_rerank_model 模型对多份代码进行重排序,
646
646
  然后选择得分最高的代码。一般次数越多,最终得到正确的代码概率越高。默认值为1,推荐设置为3。但是设置值越多,可能速度就越慢,消耗的token也越多。
647
+ 当用户提到,帮我采样数设置为3, 那么你就设置该参数即可。
647
648
 
648
649
  ## skip_filter_index: 是否跳过索引过滤
649
650
  是否跳过根据用户的query 自动查找上下文。推荐设置为 false
@@ -117,6 +117,7 @@ MESSAGES = {
117
117
  "quick_filter_stats": "{{ model_names }} Quick filter completed in {{ elapsed_time }} seconds, input tokens: {{ input_tokens }}, output tokens: {{ output_tokens }}, input cost: {{ input_cost }}, output cost: {{ output_cost }} speed: {{ speed }} tokens/s",
118
118
  "upsert_file": "✅ Updated file: {{ file_path }}",
119
119
  "unmerged_blocks_title": "Unmerged Blocks",
120
+ "merged_blocks_title": "Merged Changes",
120
121
  "quick_filter_title": "{{ model_name }} is analyzing how to filter context...",
121
122
  "quick_filter_failed": "❌ Quick filter failed: {{ error }}. ",
122
123
  "unmerged_file_path": "File: {{file_path}}",
@@ -157,6 +158,8 @@ MESSAGES = {
157
158
  "conf_not_found": "Configuration file not found: {{path}}",
158
159
  "index_export_success": "Index exported successfully: {{path}}",
159
160
  "index_import_success": "Index imported successfully: {{path}}",
161
+ "edits_title": "edits",
162
+ "diff_blocks_title":"diff blocks"
160
163
  },
161
164
  "zh": {
162
165
  "invalid_file_pattern": "无效的文件模式: {{file_pattern}}. 例如: regex://.*/package-lock\\.json",
@@ -273,6 +276,7 @@ MESSAGES = {
273
276
  "merge_success": "✅ 成功合并了 {{ num_files }} 个文件中的更改 {{ num_changes }}/{{ total_blocks }} 个代码块。",
274
277
  "no_changes_made": "⚠️ 未对任何文件进行更改。这个原因可能是因为coding函数生成的文本块格式有问题,导致无法合并进项目",
275
278
  "unmerged_blocks_title": "未合并代码块",
279
+ "merged_blocks_title": "合并的更改",
276
280
  "unmerged_file_path": "文件: {{file_path}}",
277
281
  "unmerged_search_block": "Search Block({{similarity}}):",
278
282
  "unmerged_replace_block": "Replace Block:",
@@ -311,6 +315,8 @@ MESSAGES = {
311
315
  "only_one_merge_result_success": "✅ 只有一个合并结果成功,返回该候选",
312
316
  "index_export_success": "索引导出成功: {{path}}",
313
317
  "index_import_success": "索引导入成功: {{path}}",
318
+ "edits_title": "编辑块",
319
+ "diff_blocks_title": "差异块",
314
320
  }}
315
321
 
316
322
 
@@ -528,6 +528,37 @@ class CodeAutoMergeDiff:
528
528
  failed_blocks=failed_blocks
529
529
  )
530
530
 
531
+ def print_edits(self, edits: List[Tuple[str, List[str]]]):
532
+ """Print diffs for user review using rich library"""
533
+ from rich.syntax import Syntax
534
+ from rich.panel import Panel
535
+
536
+ # Group edits by file path
537
+ file_edits = {}
538
+ for path, hunk in edits:
539
+ if path not in file_edits:
540
+ file_edits[path] = []
541
+ file_edits[path].append(hunk)
542
+
543
+ # Generate formatted text for each file
544
+ formatted_text = ""
545
+ for path, hunks in file_edits.items():
546
+ formatted_text += f"##File: {path}\n"
547
+ for hunk in hunks:
548
+ formatted_text += "".join(hunk)
549
+ formatted_text += "\n"
550
+
551
+ # Print with rich panel
552
+ self.printer.print_in_terminal("edits_title", style="bold green")
553
+ self.printer.console.print(
554
+ Panel(
555
+ Syntax(formatted_text, "diff", theme="monokai"),
556
+ title="Edits",
557
+ border_style="green",
558
+ expand=False
559
+ )
560
+ )
561
+
531
562
  def _merge_code(self, content: str,force_skip_git:bool=False):
532
563
  total = 0
533
564
 
@@ -544,9 +575,12 @@ class CodeAutoMergeDiff:
544
575
  return
545
576
 
546
577
  edits = self.get_edits(content)
547
- self.apply_edits(edits)
578
+ self.apply_edits(edits)
548
579
 
549
580
  self.printer.print_in_terminal("files_merged_total", total=total)
550
581
  if not force_skip_git and not self.args.skip_commit:
551
582
  commit_result = git_utils.commit_changes(self.args.source_dir, f"auto_coder_{file_name}_{md5}\n{self.args.query}")
552
583
  git_utils.print_commit_info(commit_result=commit_result)
584
+ else:
585
+ # Print edits for review
586
+ self.print_edits(edits)
@@ -287,6 +287,7 @@ class CodeAutoMergeEditBlock:
287
287
  for path, content in file_content_mapping.items()],
288
288
  failed_blocks=failed_blocks
289
289
  )
290
+
290
291
 
291
292
  def _merge_code(self, content: str, force_skip_git: bool = False):
292
293
  file_content = FileUtils.read_file(self.args.file)
@@ -391,6 +392,7 @@ class CodeAutoMergeEditBlock:
391
392
  style="red"
392
393
  )
393
394
  return
395
+
394
396
  # Now, apply the changes
395
397
  for file_path, new_content in file_content_mapping.items():
396
398
  os.makedirs(os.path.dirname(file_path), exist_ok=True)
@@ -431,10 +433,14 @@ class CodeAutoMergeEditBlock:
431
433
  self.git_require_msg(source_dir=self.args.source_dir, error=str(e)),
432
434
  style="red"
433
435
  )
436
+ else:
437
+ self.print_merged_blocks(merged_blocks)
438
+
434
439
  self.printer.print_in_terminal("merge_success",
435
440
  num_files=len(file_content_mapping.keys()),
436
441
  num_changes=len(changes_to_make),
437
442
  total_blocks=len(codes))
443
+
438
444
  else:
439
445
  self.printer.print_in_terminal("no_changes_made")
440
446
 
@@ -455,3 +461,39 @@ class CodeAutoMergeEditBlock:
455
461
  syntax = Syntax(update, "python", theme="monokai", line_numbers=True)
456
462
  self.printer.console.print(Panel(syntax, expand=False))
457
463
  self.printer.print_in_terminal("unmerged_blocks_total", num_blocks=len(unmerged_blocks), style="bold red")
464
+
465
+
466
+ def print_merged_blocks(self, merged_blocks: List[tuple]):
467
+ """Print search/replace blocks for user review using rich library"""
468
+ from rich.syntax import Syntax
469
+ from rich.panel import Panel
470
+
471
+ # Group blocks by file path
472
+ file_blocks = {}
473
+ for file_path, head, update, similarity in merged_blocks:
474
+ if file_path not in file_blocks:
475
+ file_blocks[file_path] = []
476
+ file_blocks[file_path].append((head, update, similarity))
477
+
478
+ # Generate formatted text for each file
479
+ formatted_text = ""
480
+ for file_path, blocks in file_blocks.items():
481
+ formatted_text += f"##File: {file_path}\n"
482
+ for head, update, similarity in blocks:
483
+ formatted_text += "<<<<<<< SEARCH\n"
484
+ formatted_text += head + "\n"
485
+ formatted_text += "=======\n"
486
+ formatted_text += update + "\n"
487
+ formatted_text += ">>>>>>> REPLACE\n"
488
+ formatted_text += "\n"
489
+
490
+ # Print with rich panel
491
+ self.printer.print_in_terminal("merged_blocks_title", style="bold green")
492
+ self.printer.console.print(
493
+ Panel(
494
+ Syntax(formatted_text, "diff", theme="monokai"),
495
+ title="Merged Changes",
496
+ border_style="green",
497
+ expand=False
498
+ )
499
+ )
@@ -221,6 +221,37 @@ class CodeAutoMergeStrictDiff:
221
221
  failed_blocks=failed_blocks
222
222
  )
223
223
 
224
+ def print_diff_blocks(self, diff_blocks: List[PathAndCode]):
225
+ """Print diff blocks for user review using rich library"""
226
+ from rich.syntax import Syntax
227
+ from rich.panel import Panel
228
+
229
+ # Group blocks by file path
230
+ file_blocks = {}
231
+ for block in diff_blocks:
232
+ if block.path not in file_blocks:
233
+ file_blocks[block.path] = []
234
+ file_blocks[block.path].append(block.content)
235
+
236
+ # Generate formatted text for each file
237
+ formatted_text = ""
238
+ for path, contents in file_blocks.items():
239
+ formatted_text += f"##File: {path}\n"
240
+ for content in contents:
241
+ formatted_text += content + "\n"
242
+ formatted_text += "\n"
243
+
244
+ # Print with rich panel
245
+ self.printer.print_in_terminal("diff_blocks_title", style="bold green")
246
+ self.printer.console.print(
247
+ Panel(
248
+ Syntax(formatted_text, "diff", theme="monokai"),
249
+ title="Diff Blocks",
250
+ border_style="green",
251
+ expand=False
252
+ )
253
+ )
254
+
224
255
  def _merge_code(self, content: str, force_skip_git: bool = False):
225
256
  total = 0
226
257
 
@@ -236,7 +267,8 @@ class CodeAutoMergeStrictDiff:
236
267
  self.printer.print_in_terminal("git_init_required", style="red", source_dir=self.args.source_dir, error=str(e))
237
268
  return
238
269
 
239
- diff_blocks = self.parse_diff_block(content)
270
+ diff_blocks = self.parse_diff_block(content)
271
+
240
272
  for diff_blocks in diff_blocks:
241
273
  path = diff_blocks.path
242
274
  content = diff_blocks.content
@@ -255,6 +287,9 @@ class CodeAutoMergeStrictDiff:
255
287
  if not force_skip_git and not self.args.skip_commit:
256
288
  commit_result = git_utils.commit_changes(self.args.source_dir, f"auto_coder_{file_name}_{md5}\n{self.args.query}")
257
289
  git_utils.print_commit_info(commit_result=commit_result)
290
+ else:
291
+ # Print diff blocks for review
292
+ self.print_diff_blocks(diff_blocks)
258
293
 
259
294
  @byzerllm.prompt(render="jinja2")
260
295
  def git_require_msg(self, source_dir: str, error: str) -> str:
@@ -110,8 +110,8 @@ def build_index_and_filter_files(
110
110
  printer.print_in_terminal("quick_filter_start", style="blue", model_name=model_name)
111
111
  quick_filter = QuickFilter(index_manager,stats,sources)
112
112
  quick_filter_result = quick_filter.filter(index_manager.read_index(),args.query)
113
- if quick_filter_result.has_error:
114
- raise KeyboardInterrupt(printer.get_message_from_key_with_format("quick_filter_failed",error=quick_filter_result.error_message))
113
+ # if quick_filter_result.has_error:
114
+ # raise KeyboardInterrupt(printer.get_message_from_key_with_format("quick_filter_failed",error=quick_filter_result.error_message))
115
115
 
116
116
  # Merge quick filter results into final_files
117
117
  if args.context_prune:
@@ -31,7 +31,7 @@ class NormalFilterResult(BaseModel):
31
31
  files: Dict[str, TargetFile]
32
32
  has_error: bool
33
33
  error_message: Optional[str] = None
34
- file_positions: Optional[Dict[str, int]]
34
+ file_positions: Optional[Dict[str, int]] = {}
35
35
 
36
36
  class NormalFilter():
37
37
  def __init__(self, index_manager: IndexManager,stats:Dict[str,Any],sources:List[SourceCode]):
@@ -154,7 +154,7 @@ class QuickFilter():
154
154
  else:
155
155
  # 其他chunks直接使用with_llm
156
156
  meta_holder = MetaHolder()
157
- start_time = time.monotonic()
157
+ start_time = time.monotonic()
158
158
  file_number_list = self.quick_filter_files.with_llm(self.index_manager.index_filter_llm).with_meta(
159
159
  meta_holder).with_return_type(FileNumberList).run(chunk, self.args.query)
160
160
  end_time = time.monotonic()
@@ -0,0 +1 @@
1
+ __version__ = "0.1.266"
@@ -1 +0,0 @@
1
- __version__ = "0.1.265"
File without changes
File without changes
File without changes
File without changes