auto-coder 0.1.399__tar.gz → 0.1.400__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 (431) hide show
  1. {auto_coder-0.1.399 → auto_coder-0.1.400}/PKG-INFO +1 -1
  2. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/auto_coder.egg-info/PKG-INFO +1 -1
  3. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/auto_coder.egg-info/SOURCES.txt +19 -2
  4. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/auto_coder_runner.py +2 -1
  5. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/ac_style_command_parser/parser.py +27 -12
  6. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/auto_coder_lang.py +78 -0
  7. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/command_completer_v2.py +1 -1
  8. auto_coder-0.1.400/src/autocoder/common/pull_requests/__init__.py +256 -0
  9. auto_coder-0.1.400/src/autocoder/common/pull_requests/base_provider.py +191 -0
  10. auto_coder-0.1.400/src/autocoder/common/pull_requests/config.py +66 -0
  11. auto_coder-0.1.400/src/autocoder/common/pull_requests/example.py +1 -0
  12. auto_coder-0.1.400/src/autocoder/common/pull_requests/exceptions.py +46 -0
  13. auto_coder-0.1.400/src/autocoder/common/pull_requests/manager.py +201 -0
  14. auto_coder-0.1.400/src/autocoder/common/pull_requests/models.py +164 -0
  15. auto_coder-0.1.400/src/autocoder/common/pull_requests/providers/__init__.py +23 -0
  16. auto_coder-0.1.400/src/autocoder/common/pull_requests/providers/gitcode_provider.py +19 -0
  17. auto_coder-0.1.400/src/autocoder/common/pull_requests/providers/gitee_provider.py +20 -0
  18. auto_coder-0.1.400/src/autocoder/common/pull_requests/providers/github_provider.py +214 -0
  19. auto_coder-0.1.400/src/autocoder/common/pull_requests/providers/gitlab_provider.py +29 -0
  20. auto_coder-0.1.400/src/autocoder/common/pull_requests/test_module.py +1 -0
  21. auto_coder-0.1.400/src/autocoder/common/pull_requests/utils.py +344 -0
  22. auto_coder-0.1.400/src/autocoder/common/tokens/__init__.py +62 -0
  23. auto_coder-0.1.400/src/autocoder/common/tokens/counter.py +211 -0
  24. auto_coder-0.1.400/src/autocoder/common/tokens/file_detector.py +105 -0
  25. auto_coder-0.1.400/src/autocoder/common/tokens/filters.py +111 -0
  26. auto_coder-0.1.400/src/autocoder/common/tokens/models.py +28 -0
  27. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/agent/agentic_edit.py +182 -68
  28. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/agent/agentic_edit_types.py +1 -0
  29. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/sdk/cli/handlers.py +2 -1
  30. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/sdk/cli/main.py +4 -2
  31. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/sdk/cli/options.py +4 -3
  32. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/sdk/core/auto_coder_core.py +14 -1
  33. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/sdk/core/bridge.py +3 -0
  34. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/sdk/models/options.py +8 -6
  35. auto_coder-0.1.400/src/autocoder/version.py +2 -0
  36. auto_coder-0.1.399/src/autocoder/common/ac_style_command_parser/example.py +0 -7
  37. auto_coder-0.1.399/src/autocoder/sdk/example.py +0 -0
  38. auto_coder-0.1.399/src/autocoder/version.py +0 -2
  39. {auto_coder-0.1.399 → auto_coder-0.1.400}/LICENSE +0 -0
  40. {auto_coder-0.1.399 → auto_coder-0.1.400}/README.md +0 -0
  41. {auto_coder-0.1.399 → auto_coder-0.1.400}/setup.cfg +0 -0
  42. {auto_coder-0.1.399 → auto_coder-0.1.400}/setup.py +0 -0
  43. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/auto_coder.egg-info/dependency_links.txt +0 -0
  44. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/auto_coder.egg-info/entry_points.txt +0 -0
  45. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/auto_coder.egg-info/requires.txt +0 -0
  46. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/auto_coder.egg-info/top_level.txt +0 -0
  47. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/__init__.py +0 -0
  48. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/__init__.py +0 -0
  49. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/agentic_filter.py +0 -0
  50. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/auto_demand_organizer.py +0 -0
  51. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/auto_filegroup.py +0 -0
  52. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/auto_guess_query.py +0 -0
  53. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/auto_learn.py +0 -0
  54. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/auto_learn_from_commit.py +0 -0
  55. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/auto_review_commit.py +0 -0
  56. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/auto_tool.py +0 -0
  57. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/base_agentic/__init__.py +0 -0
  58. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/base_agentic/agent_hub.py +0 -0
  59. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/base_agentic/agentic_lang.py +0 -0
  60. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/base_agentic/agentic_tool_display.py +0 -0
  61. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/base_agentic/base_agent.py +0 -0
  62. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/base_agentic/default_tools.py +0 -0
  63. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/base_agentic/test_base_agent.py +0 -0
  64. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/base_agentic/tool_registry.py +0 -0
  65. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/base_agentic/tools/__init__.py +0 -0
  66. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/base_agentic/tools/ask_followup_question_tool_resolver.py +0 -0
  67. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/base_agentic/tools/attempt_completion_tool_resolver.py +0 -0
  68. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/base_agentic/tools/base_tool_resolver.py +0 -0
  69. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/base_agentic/tools/example_tool_resolver.py +0 -0
  70. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/base_agentic/tools/execute_command_tool_resolver.py +0 -0
  71. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/base_agentic/tools/list_files_tool_resolver.py +0 -0
  72. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/base_agentic/tools/plan_mode_respond_tool_resolver.py +0 -0
  73. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/base_agentic/tools/read_file_tool_resolver.py +0 -0
  74. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/base_agentic/tools/replace_in_file_tool_resolver.py +0 -0
  75. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/base_agentic/tools/search_files_tool_resolver.py +0 -0
  76. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/base_agentic/tools/talk_to_group_tool_resolver.py +0 -0
  77. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/base_agentic/tools/talk_to_tool_resolver.py +0 -0
  78. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/base_agentic/tools/use_mcp_tool_resolver.py +0 -0
  79. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/base_agentic/tools/write_to_file_tool_resolver.py +0 -0
  80. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/base_agentic/types.py +0 -0
  81. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/base_agentic/utils.py +0 -0
  82. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/coder.py +0 -0
  83. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/designer.py +0 -0
  84. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/entry_command_agent/__init__.py +0 -0
  85. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/entry_command_agent/auto_tool.py +0 -0
  86. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/entry_command_agent/chat.py +0 -0
  87. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/entry_command_agent/designer.py +0 -0
  88. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/entry_command_agent/generate_command.py +0 -0
  89. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/entry_command_agent/project_reader.py +0 -0
  90. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/entry_command_agent/voice2text.py +0 -0
  91. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/planner.py +0 -0
  92. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/agent/project_reader.py +0 -0
  93. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/auto_coder.py +0 -0
  94. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/auto_coder_rag.py +0 -0
  95. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/auto_coder_server.py +0 -0
  96. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/benchmark.py +0 -0
  97. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/chat/__init__.py +0 -0
  98. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/chat/conf_command.py +0 -0
  99. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/chat/models_command.py +0 -0
  100. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/chat/rules_command.py +0 -0
  101. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/chat_auto_coder.py +0 -0
  102. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/chat_auto_coder_lang.py +0 -0
  103. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/command_args.py +0 -0
  104. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/commands/__init__.py +0 -0
  105. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/commands/auto_command.py +0 -0
  106. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/commands/auto_web.py +0 -0
  107. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/commands/tools.py +0 -0
  108. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/JupyterClient.py +0 -0
  109. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/ShellClient.py +0 -0
  110. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/__init__.py +0 -0
  111. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/ac_style_command_parser/__init__.py +0 -0
  112. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/ac_style_command_parser/test_parser.py +0 -0
  113. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/action_yml_file_manager.py +0 -0
  114. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/anything2images.py +0 -0
  115. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/anything2img.py +0 -0
  116. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/audio.py +0 -0
  117. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/auto_configure.py +0 -0
  118. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/buildin_tokenizer.py +0 -0
  119. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/chunk_validation.py +0 -0
  120. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/cleaner.py +0 -0
  121. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/code_auto_execute.py +0 -0
  122. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/code_auto_generate.py +0 -0
  123. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/code_auto_generate_diff.py +0 -0
  124. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/code_auto_generate_editblock.py +0 -0
  125. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/code_auto_generate_strict_diff.py +0 -0
  126. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/code_auto_merge.py +0 -0
  127. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/code_auto_merge_diff.py +0 -0
  128. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/code_auto_merge_editblock.py +0 -0
  129. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/code_auto_merge_strict_diff.py +0 -0
  130. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/code_modification_ranker.py +0 -0
  131. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/command_completer.py +0 -0
  132. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/command_file_manager/__init__.py +0 -0
  133. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/command_file_manager/examples.py +0 -0
  134. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/command_file_manager/manager.py +0 -0
  135. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/command_file_manager/models.py +0 -0
  136. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/command_file_manager/utils.py +0 -0
  137. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/command_generator.py +0 -0
  138. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/command_templates.py +0 -0
  139. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/computer_use.py +0 -0
  140. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/conf_import_export.py +0 -0
  141. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/conf_utils.py +0 -0
  142. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/conf_validator.py +0 -0
  143. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/const.py +0 -0
  144. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/context_pruner.py +0 -0
  145. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/conversation_pruner.py +0 -0
  146. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/conversations/__init__.py +0 -0
  147. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/conversations/backup/__init__.py +0 -0
  148. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/conversations/backup/backup_manager.py +0 -0
  149. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/conversations/backup/restore_manager.py +0 -0
  150. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/conversations/cache/__init__.py +0 -0
  151. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/conversations/cache/base_cache.py +0 -0
  152. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/conversations/cache/cache_manager.py +0 -0
  153. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/conversations/cache/memory_cache.py +0 -0
  154. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/conversations/config.py +0 -0
  155. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/conversations/exceptions.py +0 -0
  156. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/conversations/file_locker.py +0 -0
  157. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/conversations/get_conversation_manager.py +0 -0
  158. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/conversations/manager.py +0 -0
  159. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/conversations/models.py +0 -0
  160. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/conversations/search/__init__.py +0 -0
  161. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/conversations/search/filter_manager.py +0 -0
  162. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/conversations/search/text_searcher.py +0 -0
  163. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/conversations/storage/__init__.py +0 -0
  164. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/conversations/storage/base_storage.py +0 -0
  165. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/conversations/storage/file_storage.py +0 -0
  166. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/conversations/storage/index_manager.py +0 -0
  167. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/directory_cache/__init__.py +0 -0
  168. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/directory_cache/cache.py +0 -0
  169. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/directory_cache/test_cache.py +0 -0
  170. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/file_checkpoint/__init__.py +0 -0
  171. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/file_checkpoint/backup.py +0 -0
  172. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/file_checkpoint/conversation_checkpoint.py +0 -0
  173. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/file_checkpoint/examples.py +0 -0
  174. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/file_checkpoint/manager.py +0 -0
  175. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/file_checkpoint/models.py +0 -0
  176. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/file_checkpoint/store.py +0 -0
  177. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/file_checkpoint/test_backup.py +0 -0
  178. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/file_checkpoint/test_manager.py +0 -0
  179. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/file_checkpoint/test_models.py +0 -0
  180. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/file_checkpoint/test_store.py +0 -0
  181. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/file_checkpoint/test_utils.py +0 -0
  182. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/file_checkpoint/utils.py +0 -0
  183. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/file_monitor/__init__.py +0 -0
  184. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/file_monitor/monitor.py +0 -0
  185. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/files.py +0 -0
  186. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/git_utils.py +0 -0
  187. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/global_cancel.py +0 -0
  188. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/ignorefiles/__init__.py +0 -0
  189. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/ignorefiles/ignore_file_utils.py +0 -0
  190. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/ignorefiles/test_ignore_file_utils.py +0 -0
  191. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/image_to_page.py +0 -0
  192. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/index_import_export.py +0 -0
  193. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/interpreter.py +0 -0
  194. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/llm_friendly_package.py +0 -0
  195. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/llm_friendly_package_example.py +0 -0
  196. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/llm_friendly_package_test.py +0 -0
  197. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/mcp_hub.py +0 -0
  198. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/mcp_server.py +0 -0
  199. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/mcp_server_install.py +0 -0
  200. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/mcp_server_types.py +0 -0
  201. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/mcp_servers/__init__.py +0 -0
  202. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/mcp_servers/mcp_server_gpt4o_mini_search.py +0 -0
  203. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/mcp_servers/mcp_server_perplexity.py +0 -0
  204. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/mcp_tools.py +0 -0
  205. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/memory_manager.py +0 -0
  206. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/model_speed_tester.py +0 -0
  207. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/openai_content.py +0 -0
  208. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/printer.py +0 -0
  209. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/rag_manager/__init__.py +0 -0
  210. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/rag_manager/rag_manager.py +0 -0
  211. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/recall_validation.py +0 -0
  212. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/result_manager.py +0 -0
  213. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/rulefiles/__init__.py +0 -0
  214. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/rulefiles/autocoderrules_utils.py +0 -0
  215. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/run_cmd.py +0 -0
  216. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/save_formatted_log.py +0 -0
  217. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/screenshots.py +0 -0
  218. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/search.py +0 -0
  219. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/search_replace.py +0 -0
  220. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/shells.py +0 -0
  221. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/stats_panel.py +0 -0
  222. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/stream_out_type.py +0 -0
  223. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/sys_prompt.py +0 -0
  224. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/test_run_cmd.py +0 -0
  225. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/text.py +0 -0
  226. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/token_cost_caculate.py +0 -0
  227. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/types.py +0 -0
  228. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/utils_code_auto_generate.py +0 -0
  229. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/__init__.py +0 -0
  230. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/agent/__init__.py +0 -0
  231. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/agent/agentic_edit_tools/__init__.py +0 -0
  232. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/agent/agentic_edit_tools/ask_followup_question_tool_resolver.py +0 -0
  233. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/agent/agentic_edit_tools/attempt_completion_tool_resolver.py +0 -0
  234. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/agent/agentic_edit_tools/base_tool_resolver.py +0 -0
  235. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/agent/agentic_edit_tools/dangerous_command_checker.py +0 -0
  236. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/agent/agentic_edit_tools/execute_command_tool_resolver.py +0 -0
  237. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/agent/agentic_edit_tools/list_code_definition_names_tool_resolver.py +0 -0
  238. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/agent/agentic_edit_tools/list_files_tool_resolver.py +0 -0
  239. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/agent/agentic_edit_tools/list_package_info_tool_resolver.py +0 -0
  240. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/agent/agentic_edit_tools/plan_mode_respond_tool_resolver.py +0 -0
  241. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/agent/agentic_edit_tools/read_file_tool_resolver.py +0 -0
  242. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/agent/agentic_edit_tools/replace_in_file_tool_resolver.py +0 -0
  243. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/agent/agentic_edit_tools/search_files_tool_resolver.py +0 -0
  244. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/agent/agentic_edit_tools/test_execute_command_tool_resolver.py +0 -0
  245. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/agent/agentic_edit_tools/test_search_files_tool_resolver.py +0 -0
  246. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/agent/agentic_edit_tools/test_write_to_file_tool_resolver.py +0 -0
  247. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/agent/agentic_edit_tools/use_mcp_tool_resolver.py +0 -0
  248. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/agent/agentic_edit_tools/use_rag_tool_resolver.py +0 -0
  249. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/agent/agentic_edit_tools/write_to_file_tool_resolver.py +0 -0
  250. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/agent/agentic_tool_display.py +0 -0
  251. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/code_agentic_editblock_manager.py +0 -0
  252. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/code_auto_generate.py +0 -0
  253. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/code_auto_generate_diff.py +0 -0
  254. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/code_auto_generate_editblock.py +0 -0
  255. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/code_auto_generate_strict_diff.py +0 -0
  256. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/code_auto_merge.py +0 -0
  257. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/code_auto_merge_diff.py +0 -0
  258. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/code_auto_merge_editblock.py +0 -0
  259. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/code_auto_merge_strict_diff.py +0 -0
  260. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/code_diff_manager.py +0 -0
  261. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/code_editblock_manager.py +0 -0
  262. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/code_manager.py +0 -0
  263. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/common/v2/code_strict_diff_manager.py +0 -0
  264. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/compilers/__init__.py +0 -0
  265. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/compilers/base_compiler.py +0 -0
  266. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/compilers/compiler_config_api.py +0 -0
  267. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/compilers/compiler_config_manager.py +0 -0
  268. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/compilers/compiler_factory.py +0 -0
  269. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/compilers/java_compiler.py +0 -0
  270. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/compilers/models.py +0 -0
  271. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/compilers/normal_compiler.py +0 -0
  272. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/compilers/provided_compiler.py +0 -0
  273. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/compilers/python_compiler.py +0 -0
  274. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/compilers/reactjs_compiler.py +0 -0
  275. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/compilers/shadow_compiler.py +0 -0
  276. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/compilers/vue_compiler.py +0 -0
  277. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/data/byzerllm.md +0 -0
  278. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/data/tokenizer.json +0 -0
  279. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/db/__init__.py +0 -0
  280. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/db/store.py +0 -0
  281. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/dispacher/__init__.py +0 -0
  282. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/dispacher/actions/__init__.py +0 -0
  283. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/dispacher/actions/action.py +0 -0
  284. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/dispacher/actions/copilot.py +0 -0
  285. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/dispacher/actions/plugins/__init__.py +0 -0
  286. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/dispacher/actions/plugins/action_regex_project.py +0 -0
  287. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/events/__init__.py +0 -0
  288. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/events/event_content.py +0 -0
  289. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/events/event_manager.py +0 -0
  290. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/events/event_manager_singleton.py +0 -0
  291. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/events/event_store.py +0 -0
  292. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/events/event_types.py +0 -0
  293. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/helper/__init__.py +0 -0
  294. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/helper/project_creator.py +0 -0
  295. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/helper/rag_doc_creator.py +0 -0
  296. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/index/__init__.py +0 -0
  297. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/index/entry.py +0 -0
  298. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/index/filter/__init__.py +0 -0
  299. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/index/filter/normal_filter.py +0 -0
  300. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/index/filter/quick_filter.py +0 -0
  301. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/index/for_command.py +0 -0
  302. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/index/index.py +0 -0
  303. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/index/symbols_utils.py +0 -0
  304. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/index/types.py +0 -0
  305. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/lang.py +0 -0
  306. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/linters/__init__.py +0 -0
  307. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/linters/base_linter.py +0 -0
  308. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/linters/linter_factory.py +0 -0
  309. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/linters/models.py +0 -0
  310. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/linters/normal_linter.py +0 -0
  311. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/linters/python_linter.py +0 -0
  312. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/linters/reactjs_linter.py +0 -0
  313. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/linters/shadow_linter.py +0 -0
  314. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/linters/test_python_linter.py +0 -0
  315. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/linters/test_reactjs_linter.py +0 -0
  316. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/linters/test_vue_linter.py +0 -0
  317. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/linters/vue_linter.py +0 -0
  318. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/memory/__init__.py +0 -0
  319. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/memory/active_changes.py +0 -0
  320. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/memory/active_context_manager.py +0 -0
  321. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/memory/active_diagrams.py +0 -0
  322. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/memory/active_documents.py +0 -0
  323. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/memory/active_header.py +0 -0
  324. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/memory/active_package.py +0 -0
  325. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/memory/async_processor.py +0 -0
  326. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/memory/directory_mapper.py +0 -0
  327. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/models.py +0 -0
  328. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/plugins/__init__.py +0 -0
  329. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/plugins/dynamic_completion_example.py +0 -0
  330. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/plugins/git_helper_plugin.py +0 -0
  331. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/plugins/sample_plugin.py +0 -0
  332. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/plugins/token_helper_plugin.py +0 -0
  333. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/plugins/utils.py +0 -0
  334. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/privacy/__init__.py +0 -0
  335. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/privacy/model_filter.py +0 -0
  336. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/pyproject/__init__.py +0 -0
  337. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/__init__.py +0 -0
  338. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/agentic_rag.py +0 -0
  339. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/api_server.py +0 -0
  340. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/cache/__init__.py +0 -0
  341. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/cache/base_cache.py +0 -0
  342. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/cache/byzer_storage_cache.py +0 -0
  343. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/cache/cache_result_merge.py +0 -0
  344. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/cache/failed_files_utils.py +0 -0
  345. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/cache/file_monitor_cache.py +0 -0
  346. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/cache/local_byzer_storage_cache.py +0 -0
  347. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/cache/local_duckdb_storage_cache.py +0 -0
  348. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/cache/rag_file_meta.py +0 -0
  349. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/cache/simple_cache.py +0 -0
  350. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/conversation_to_queries.py +0 -0
  351. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/doc_filter.py +0 -0
  352. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/document_retriever.py +0 -0
  353. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/lang.py +0 -0
  354. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/llm_wrapper.py +0 -0
  355. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/loaders/__init__.py +0 -0
  356. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/loaders/docx_loader.py +0 -0
  357. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/loaders/excel_loader.py +0 -0
  358. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/loaders/filter_utils.py +0 -0
  359. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/loaders/image_loader.py +0 -0
  360. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/loaders/pdf_loader.py +0 -0
  361. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/loaders/ppt_loader.py +0 -0
  362. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/long_context_rag.py +0 -0
  363. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/qa_conversation_strategy.py +0 -0
  364. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/rag_config.py +0 -0
  365. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/rag_entry.py +0 -0
  366. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/relevant_utils.py +0 -0
  367. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/searchable.py +0 -0
  368. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/stream_event/__init__.py +0 -0
  369. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/stream_event/event_writer.py +0 -0
  370. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/stream_event/types.py +0 -0
  371. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/test_doc_filter.py +0 -0
  372. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/test_long_context_rag.py +0 -0
  373. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/test_token_limiter.py +0 -0
  374. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/token_checker.py +0 -0
  375. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/token_counter.py +0 -0
  376. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/token_limiter.py +0 -0
  377. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/token_limiter_utils.py +0 -0
  378. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/tools/__init__.py +0 -0
  379. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/tools/recall_tool.py +0 -0
  380. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/tools/search_tool.py +0 -0
  381. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/types.py +0 -0
  382. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/utils.py +0 -0
  383. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rag/variable_holder.py +0 -0
  384. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/rags.py +0 -0
  385. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/regexproject/__init__.py +0 -0
  386. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/run_context.py +0 -0
  387. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/sdk/__init__.py +0 -0
  388. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/sdk/cli/__init__.py +0 -0
  389. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/sdk/cli/__main__.py +0 -0
  390. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/sdk/cli/completion_wrapper.py +0 -0
  391. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/sdk/cli/formatters.py +0 -0
  392. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/sdk/cli/install_completion.py +0 -0
  393. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/sdk/constants.py +0 -0
  394. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/sdk/core/__init__.py +0 -0
  395. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/sdk/exceptions.py +0 -0
  396. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/sdk/models/__init__.py +0 -0
  397. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/sdk/models/messages.py +0 -0
  398. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/sdk/models/responses.py +0 -0
  399. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/sdk/session/__init__.py +0 -0
  400. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/sdk/session/session.py +0 -0
  401. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/sdk/session/session_manager.py +0 -0
  402. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/sdk/utils/__init__.py +0 -0
  403. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/sdk/utils/formatters.py +0 -0
  404. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/sdk/utils/io_utils.py +0 -0
  405. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/sdk/utils/validators.py +0 -0
  406. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/shadows/__init__.py +0 -0
  407. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/shadows/shadow_manager.py +0 -0
  408. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/suffixproject/__init__.py +0 -0
  409. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/tsproject/__init__.py +0 -0
  410. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/utils/__init__.py +0 -0
  411. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/utils/_markitdown.py +0 -0
  412. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/utils/auto_coder_utils/__init__.py +0 -0
  413. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/utils/auto_coder_utils/chat_stream_out.py +0 -0
  414. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/utils/auto_project_type.py +0 -0
  415. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/utils/chat_auto_coder_utils/__init__.py +0 -0
  416. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/utils/conversation_store.py +0 -0
  417. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/utils/llm_client_interceptors.py +0 -0
  418. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/utils/llms.py +0 -0
  419. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/utils/log_capture.py +0 -0
  420. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/utils/model_provider_selector.py +0 -0
  421. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/utils/multi_turn.py +0 -0
  422. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/utils/operate_config_api.py +0 -0
  423. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/utils/print_table.py +0 -0
  424. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/utils/project_structure.py +0 -0
  425. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/utils/queue_communicate.py +0 -0
  426. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/utils/request_event_queue.py +0 -0
  427. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/utils/request_queue.py +0 -0
  428. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/utils/rest.py +0 -0
  429. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/utils/stream_thinking.py +0 -0
  430. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/utils/thread_utils.py +0 -0
  431. {auto_coder-0.1.399 → auto_coder-0.1.400}/src/autocoder/utils/types.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: auto-coder
3
- Version: 0.1.399
3
+ Version: 0.1.400
4
4
  Summary: AutoCoder: AutoCoder
5
5
  Author: allwefantasy
6
6
  Classifier: Programming Language :: Python :: 3.10
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: auto-coder
3
- Version: 0.1.399
3
+ Version: 0.1.400
4
4
  Summary: AutoCoder: AutoCoder
5
5
  Author: allwefantasy
6
6
  Classifier: Programming Language :: Python :: 3.10
@@ -142,7 +142,6 @@ src/autocoder/common/token_cost_caculate.py
142
142
  src/autocoder/common/types.py
143
143
  src/autocoder/common/utils_code_auto_generate.py
144
144
  src/autocoder/common/ac_style_command_parser/__init__.py
145
- src/autocoder/common/ac_style_command_parser/example.py
146
145
  src/autocoder/common/ac_style_command_parser/parser.py
147
146
  src/autocoder/common/ac_style_command_parser/test_parser.py
148
147
  src/autocoder/common/command_file_manager/__init__.py
@@ -195,10 +194,29 @@ src/autocoder/common/ignorefiles/test_ignore_file_utils.py
195
194
  src/autocoder/common/mcp_servers/__init__.py
196
195
  src/autocoder/common/mcp_servers/mcp_server_gpt4o_mini_search.py
197
196
  src/autocoder/common/mcp_servers/mcp_server_perplexity.py
197
+ src/autocoder/common/pull_requests/__init__.py
198
+ src/autocoder/common/pull_requests/base_provider.py
199
+ src/autocoder/common/pull_requests/config.py
200
+ src/autocoder/common/pull_requests/example.py
201
+ src/autocoder/common/pull_requests/exceptions.py
202
+ src/autocoder/common/pull_requests/manager.py
203
+ src/autocoder/common/pull_requests/models.py
204
+ src/autocoder/common/pull_requests/test_module.py
205
+ src/autocoder/common/pull_requests/utils.py
206
+ src/autocoder/common/pull_requests/providers/__init__.py
207
+ src/autocoder/common/pull_requests/providers/gitcode_provider.py
208
+ src/autocoder/common/pull_requests/providers/gitee_provider.py
209
+ src/autocoder/common/pull_requests/providers/github_provider.py
210
+ src/autocoder/common/pull_requests/providers/gitlab_provider.py
198
211
  src/autocoder/common/rag_manager/__init__.py
199
212
  src/autocoder/common/rag_manager/rag_manager.py
200
213
  src/autocoder/common/rulefiles/__init__.py
201
214
  src/autocoder/common/rulefiles/autocoderrules_utils.py
215
+ src/autocoder/common/tokens/__init__.py
216
+ src/autocoder/common/tokens/counter.py
217
+ src/autocoder/common/tokens/file_detector.py
218
+ src/autocoder/common/tokens/filters.py
219
+ src/autocoder/common/tokens/models.py
202
220
  src/autocoder/common/v2/__init__.py
203
221
  src/autocoder/common/v2/code_agentic_editblock_manager.py
204
222
  src/autocoder/common/v2/code_auto_generate.py
@@ -357,7 +375,6 @@ src/autocoder/rag/tools/search_tool.py
357
375
  src/autocoder/regexproject/__init__.py
358
376
  src/autocoder/sdk/__init__.py
359
377
  src/autocoder/sdk/constants.py
360
- src/autocoder/sdk/example.py
361
378
  src/autocoder/sdk/exceptions.py
362
379
  src/autocoder/sdk/cli/__init__.py
363
380
  src/autocoder/sdk/cli/__main__.py
@@ -3357,7 +3357,8 @@ def run_auto_command(query: str,
3357
3357
  conversation_config.action = "command"
3358
3358
  task_query = render_command_file_with_variables(command_infos)
3359
3359
 
3360
- conversation_config.query = task_query
3360
+ conversation_config.query = task_query
3361
+ conversation_config.pull_request = pr
3361
3362
 
3362
3363
  agent = AgenticEdit(llm=llm,args=args,files=SourceCodeList(sources=sources),
3363
3364
  conversation_history=conversation_history,
@@ -22,8 +22,8 @@ class CommandParser:
22
22
  # 匹配命令的正则表达式 - 必须是以/开头,后跟单词字符,且不能后跟/或.
23
23
  # (?<!\S) 确保命令前是字符串开头或空白字符
24
24
  self.command_pattern = r'(?<!\S)/(\w+)(?!/|\.)'
25
- # 匹配键值对参数的正则表达式,支持带引号的值
26
- self.key_value_pattern = r'(\w+)=(?:"([^"]*?)"|\'([^\']*?)\'|([^\s"\']+))(?:\s|$)'
25
+ # 匹配键值对参数的正则表达式,支持带引号的值(包括三重引号)
26
+ self.key_value_pattern = r'(\w+)=(?:\'\'\'([^\']*?)\'\'\'|"""([^"]*?)"""|"([^"]*?)"|\'([^\']*?)\'|([^\s"\']*))(?:\s|$)'
27
27
  # 匹配路径模式的正则表达式
28
28
  self.path_pattern = r'/\w+(?:/[^/\s]+)+'
29
29
 
@@ -119,8 +119,9 @@ class CommandParser:
119
119
  if key_value_pairs:
120
120
  for match in key_value_pairs:
121
121
  key = match[0]
122
- # 值可能在三个捕获组中的一个,取非空的那个
123
- value = match[1] or match[2] or match[3]
122
+ # 值可能在六个捕获组中的一个,取非空的那个
123
+ # match[1]: 三重单引号, match[2]: 三重双引号, match[3]: 双引号, match[4]: 单引号, match[5]: 无引号
124
+ value = match[1] or match[2] or match[3] or match[4] or match[5]
124
125
  kwargs[key] = value.strip()
125
126
 
126
127
  # 替换带引号的键值对
@@ -131,15 +132,22 @@ class CommandParser:
131
132
 
132
133
  # 现在 processed_params_str 中应该只剩下位置参数
133
134
 
134
- # 处理带引号的位置参数
135
- quote_pattern = r'(?:"([^"]*?)"|\'([^\']*?)\')'
135
+ # 处理带引号的位置参数(包括三重引号)
136
+ quote_pattern = r'(?:\'\'\'([^\']*?)\'\'\'|"""([^"]*?)"""|"([^"]*?)"|\'([^\']*?)\')'
136
137
  quoted_args = re.findall(quote_pattern, processed_params_str)
137
138
  for quoted_arg in quoted_args:
138
139
  # 取非空的那个捕获组
139
- arg = quoted_arg[0] or quoted_arg[1]
140
+ arg = quoted_arg[0] or quoted_arg[1] or quoted_arg[2] or quoted_arg[3]
140
141
  args.append(arg)
141
142
  # 从参数字符串中移除这个带引号的参数
142
- quoted_pattern = f'"{arg}"' if quoted_arg[0] else f"'{arg}'"
143
+ if quoted_arg[0]: # 三重单引号
144
+ quoted_pattern = f"'''{arg}'''"
145
+ elif quoted_arg[1]: # 三重双引号
146
+ quoted_pattern = f'"""{arg}"""'
147
+ elif quoted_arg[2]: # 双引号
148
+ quoted_pattern = f'"{arg}"'
149
+ else: # 单引号
150
+ quoted_pattern = f"'{arg}'"
143
151
  processed_params_str = processed_params_str.replace(quoted_pattern, "", 1).strip()
144
152
 
145
153
  # 分割剩余的位置参数(不带引号的)
@@ -148,17 +156,24 @@ class CommandParser:
148
156
  else:
149
157
  # 如果没有键值对,处理所有参数作为位置参数
150
158
 
151
- # 处理带引号的位置参数
152
- quote_pattern = r'(?:"([^"]*?)"|\'([^\']*?)\')'
159
+ # 处理带引号的位置参数(包括三重引号)
160
+ quote_pattern = r'(?:\'\'\'([^\']*?)\'\'\'|"""([^"]*?)"""|"([^"]*?)"|\'([^\']*?)\')'
153
161
  quoted_args = re.findall(quote_pattern, params_str)
154
162
  processed_params_str = params_str
155
163
 
156
164
  for quoted_arg in quoted_args:
157
165
  # 取非空的那个捕获组
158
- arg = quoted_arg[0] or quoted_arg[1]
166
+ arg = quoted_arg[0] or quoted_arg[1] or quoted_arg[2] or quoted_arg[3]
159
167
  args.append(arg)
160
168
  # 从参数字符串中移除这个带引号的参数
161
- quoted_pattern = f'"{arg}"' if quoted_arg[0] else f"'{arg}'"
169
+ if quoted_arg[0]: # 三重单引号
170
+ quoted_pattern = f"'''{arg}'''"
171
+ elif quoted_arg[1]: # 三重双引号
172
+ quoted_pattern = f'"""{arg}"""'
173
+ elif quoted_arg[2]: # 双引号
174
+ quoted_pattern = f'"{arg}"'
175
+ else: # 单引号
176
+ quoted_pattern = f"'{arg}'"
162
177
  processed_params_str = processed_params_str.replace(quoted_pattern, "", 1).strip()
163
178
 
164
179
  # 分割剩余的位置参数(不带引号的)
@@ -849,6 +849,84 @@ MESSAGES = {
849
849
  "/agent/edit/apply_changes":{
850
850
  "en":"Commit the changes in preview steps",
851
851
  "zh":"提交前面步骤的修改"
852
+ },
853
+ "/agent/edit/pull_request/branch_name_failed": {
854
+ "en": "Unable to get current branch name, skipping PR creation",
855
+ "zh": "无法获取当前分支名,跳过 PR 创建"
856
+ },
857
+ "/agent/edit/pull_request/title": {
858
+ "en": "AutoCoder: {{query}}",
859
+ "zh": "AutoCoder: {{query}}"
860
+ },
861
+ "/agent/edit/pull_request/default_query": {
862
+ "en": "Code auto generation",
863
+ "zh": "代码自动生成"
864
+ },
865
+ "/agent/edit/pull_request/description": {
866
+ "en": """## 🤖 AutoCoder Generated Pull Request
867
+
868
+ **Task Description**: {{query}}
869
+
870
+ ### 📝 Change Summary
871
+ - Modified {{file_count}} files
872
+ - Commit Hash: `{{commit_hash}}`
873
+
874
+ ### 📂 Changed Files List
875
+ {{file_list}}
876
+
877
+ ### ⚙️ Generation Configuration
878
+ - Source Branch: `{{source_branch}}`
879
+ - Target Branch: `{{target_branch}}`
880
+ - Auto-generated Time: {{timestamp}}
881
+
882
+ ### 🔍 Next Steps
883
+ - [ ] Code Review
884
+ - [ ] Test Verification
885
+ - [ ] Merge to Main Branch
886
+
887
+ ---
888
+ *This PR was automatically created by AutoCoder*
889
+ """,
890
+ "zh": """## 🤖 AutoCoder 自动生成的 Pull Request
891
+
892
+ **任务描述**: {{query}}
893
+
894
+ ### 📝 变更摘要
895
+ - 共修改 {{file_count}} 个文件
896
+ - 提交哈希: `{{commit_hash}}`
897
+
898
+ ### 📂 变更文件列表
899
+ {{file_list}}
900
+
901
+ ### ⚙️ 生成配置
902
+ - 源分支: `{{source_branch}}`
903
+ - 目标分支: `{{target_branch}}`
904
+ - 自动生成时间: {{timestamp}}
905
+
906
+ ### 🔍 下一步
907
+ - [ ] 代码审查
908
+ - [ ] 测试验证
909
+ - [ ] 合并到主分支
910
+
911
+ ---
912
+ *此 PR 由 AutoCoder 自动创建*
913
+ """
914
+ },
915
+ "/agent/edit/pull_request/creating": {
916
+ "en": "Creating Pull Request: {{title}}",
917
+ "zh": "正在创建 Pull Request: {{title}}"
918
+ },
919
+ "/agent/edit/pull_request/success": {
920
+ "en": "✅ Pull Request created successfully",
921
+ "zh": "✅ Pull Request 创建成功"
922
+ },
923
+ "/agent/edit/pull_request/failed": {
924
+ "en": "❌ Pull Request creation failed: {{error}}",
925
+ "zh": "❌ Pull Request 创建失败: {{error}}"
926
+ },
927
+ "/agent/edit/pull_request/exception": {
928
+ "en": "❌ Exception occurred while creating Pull Request: {{error}}",
929
+ "zh": "❌ 创建 Pull Request 时发生异常: {{error}}"
852
930
  }
853
931
  }
854
932
 
@@ -22,7 +22,7 @@ COMMAND_HIERARCHY = {
22
22
  "/mcp": {"/add": {}, "/remove": {}, "/list": {}, "/list_running": {}, "/refresh": {}, "/info": {}},
23
23
  "/lib": {"/add": {}, "/remove": {}, "/list": {}, "/set-proxy": {}, "/refresh": {}, "/get": {}},
24
24
  "/models": {"/chat": {}, "/add": {}, "/add_model": {}, "/remove": {}, "/list": {}, "/speed": {}, "/speed-test": {}, "/input_price": {}, "/output_price": {}, "/activate": {}},
25
- "/auto": {"/new": {}, "/id": {}, "/list": {}},
25
+ "/auto": {"/new": {}, "/resume": {}, "/list": {},"/command":{}},
26
26
  "/shell": {"/chat": {}},
27
27
  "/active_context": {"/list": {}, "/run": {}},
28
28
  "/index": {"/query": {}, "/build": {}, "/export": {}, "/import": {}},
@@ -0,0 +1,256 @@
1
+ """
2
+ Pull Request 统一管理模块
3
+
4
+ 统一的 Pull Request 创建和管理模块,支持 GitHub、GitLab、Gitee、GitCode 四大代码托管平台的 PR 操作。
5
+ """
6
+ from typing import Optional, List, Dict, Any
7
+ from loguru import logger
8
+
9
+ from .models import (
10
+ PRConfig, PRResult, PRInfo, PRData, RepoInfo, PlatformType,
11
+ DEFAULT_TEMPLATES
12
+ )
13
+ from .manager import PullRequestManager, get_global_manager, set_global_config
14
+ from .exceptions import (
15
+ PRError, AuthenticationError, RepositoryNotFoundError,
16
+ BranchNotFoundError, NetworkError, RateLimitError,
17
+ ValidationError, PlatformNotSupportedError, ConfigurationError
18
+ )
19
+ from .config import get_config
20
+ from .utils import (
21
+ parse_git_url, detect_platform_from_repo, get_repo_info_from_path,
22
+ get_current_branch, branch_exists, is_git_repo, get_default_remote_branch,
23
+ ensure_branch_exists_remotely, is_main_branch, create_and_checkout_branch,
24
+ generate_auto_branch_name
25
+ )
26
+
27
+
28
+ def create_pull_request(
29
+ repo_path: str,
30
+ title: str,
31
+ source_branch: Optional[str] = None,
32
+ target_branch: Optional[str] = None,
33
+ description: str = "",
34
+ labels: Optional[List[str]] = None,
35
+ assignees: Optional[List[str]] = None,
36
+ reviewers: Optional[List[str]] = None,
37
+ draft: bool = False,
38
+ template_type: Optional[str] = None,
39
+ template_vars: Optional[Dict[str, str]] = None,
40
+ platform: Optional[str] = None,
41
+ token: Optional[str] = None,
42
+ **kwargs
43
+ ) -> PRResult:
44
+ """
45
+ 创建 Pull Request(主要接口函数)
46
+
47
+ Args:
48
+ repo_path: 仓库路径
49
+ title: PR标题
50
+ source_branch: 源分支(可选,默认为当前分支)
51
+ target_branch: 目标分支(可选,默认为远程默认分支或main)
52
+ description: PR描述
53
+ labels: 标签列表
54
+ assignees: 负责人列表
55
+ reviewers: 审查者列表
56
+ draft: 是否为草稿PR
57
+ template_type: 模板类型
58
+ template_vars: 模板变量
59
+ platform: 平台类型(可选,会自动检测)
60
+ token: 访问令牌(可选)
61
+ **kwargs: 其他配置参数
62
+
63
+ Returns:
64
+ PR创建结果
65
+ """
66
+ # 处理可选的分支参数
67
+ if source_branch is None:
68
+ source_branch = get_current_branch(repo_path)
69
+ if not source_branch:
70
+ raise ValidationError("无法获取当前分支,请指定source_branch参数")
71
+
72
+ # 从当前分支,自动创建新分支
73
+ auto_branch_name = generate_auto_branch_name()
74
+ logger.info(f"检测到当前分支 '{source_branch}' 为主分支,自动创建新分支: {auto_branch_name}")
75
+
76
+ if not create_and_checkout_branch(repo_path, auto_branch_name):
77
+ raise ValidationError(f"无法从主分支 '{source_branch}' 创建新分支 '{auto_branch_name}'")
78
+
79
+ source_branch = auto_branch_name
80
+ logger.info(f"已切换到新分支: {source_branch}")
81
+
82
+ if target_branch is None:
83
+ target_branch = get_default_remote_branch(repo_path)
84
+ if not target_branch:
85
+ target_branch = "main" # 默认值
86
+
87
+ # 验证仓库是否为Git仓库
88
+ if not is_git_repo(repo_path):
89
+ raise ValidationError(f"路径 {repo_path} 不是一个有效的Git仓库")
90
+
91
+ # 检查源分支和目标分支是否相同
92
+ if source_branch == target_branch:
93
+ raise ValidationError(f"源分支和目标分支不能相同: {source_branch}")
94
+
95
+ # 确保源分支存在于远程仓库,如果不存在则自动推送
96
+ if not ensure_branch_exists_remotely(repo_path, source_branch):
97
+ raise BranchNotFoundError(
98
+ f"源分支 '{source_branch}' 在本地不存在或推送失败。"
99
+ f"请检查分支是否存在或网络连接是否正常。"
100
+ )
101
+
102
+ # 检查目标分支是否存在于远程仓库
103
+ if not branch_exists(repo_path, target_branch, remote=True):
104
+ raise BranchNotFoundError(
105
+ f"目标分支 '{target_branch}' 在远程仓库中不存在。"
106
+ )
107
+
108
+ # 如果提供了token,创建临时配置
109
+ manager = get_global_manager()
110
+
111
+ if token:
112
+ # 自动检测平台或使用指定平台
113
+ if not platform:
114
+ detected_platform = detect_platform_from_repo(repo_path)
115
+ if detected_platform:
116
+ platform = detected_platform.value
117
+ else:
118
+ raise ValidationError("无法检测平台类型,请指定platform参数")
119
+
120
+ # 创建临时配置
121
+ temp_config = PRConfig(platform=PlatformType(platform), token=token)
122
+ temp_manager = PullRequestManager(temp_config)
123
+
124
+ return temp_manager.create_pull_request(
125
+ repo_path=repo_path,
126
+ source_branch=source_branch,
127
+ target_branch=target_branch,
128
+ title=title,
129
+ description=description,
130
+ labels=labels,
131
+ assignees=assignees,
132
+ reviewers=reviewers,
133
+ draft=draft,
134
+ template_type=template_type,
135
+ template_vars=template_vars,
136
+ platform=platform
137
+ )
138
+ else:
139
+ # 使用全局管理器
140
+ return manager.create_pull_request(
141
+ repo_path=repo_path,
142
+ source_branch=source_branch,
143
+ target_branch=target_branch,
144
+ title=title,
145
+ description=description,
146
+ labels=labels,
147
+ assignees=assignees,
148
+ reviewers=reviewers,
149
+ draft=draft,
150
+ template_type=template_type,
151
+ template_vars=template_vars,
152
+ platform=platform
153
+ )
154
+
155
+
156
+ def get_pull_request(
157
+ repo_path: str,
158
+ pr_number: int,
159
+ platform: Optional[str] = None,
160
+ token: Optional[str] = None,
161
+ **kwargs
162
+ ) -> PRResult:
163
+ """获取 Pull Request 信息"""
164
+ manager = get_global_manager()
165
+
166
+ if token:
167
+ if not platform:
168
+ detected_platform = detect_platform_from_repo(repo_path)
169
+ if detected_platform:
170
+ platform = detected_platform.value
171
+ else:
172
+ raise ValidationError("无法检测平台类型,请指定platform参数")
173
+
174
+ config_data = {"token": token}
175
+ config_data.update(kwargs)
176
+ temp_config = PRConfig(platform=platform, **config_data)
177
+ temp_manager = PullRequestManager(temp_config)
178
+
179
+ return temp_manager.get_pull_request(repo_path, pr_number, platform)
180
+ else:
181
+ return manager.get_pull_request(repo_path, pr_number, platform)
182
+
183
+
184
+ def list_pull_requests(
185
+ repo_path: str,
186
+ state: str = "open",
187
+ per_page: int = 30,
188
+ page: int = 1,
189
+ platform: Optional[str] = None,
190
+ token: Optional[str] = None,
191
+ **kwargs
192
+ ) -> List[PRInfo]:
193
+ """列出 Pull Requests"""
194
+ manager = get_global_manager()
195
+
196
+ if token:
197
+ if not platform:
198
+ detected_platform = detect_platform_from_repo(repo_path)
199
+ if detected_platform:
200
+ platform = detected_platform.value
201
+ else:
202
+ raise ValidationError("无法检测平台类型,请指定platform参数")
203
+
204
+ config_data = {"token": token}
205
+ config_data.update(kwargs)
206
+ temp_config = PRConfig(platform=platform, **config_data)
207
+ temp_manager = PullRequestManager(temp_config)
208
+
209
+ return temp_manager.list_pull_requests(repo_path, state, per_page, page, platform)
210
+ else:
211
+ return manager.list_pull_requests(repo_path, state, per_page, page, platform)
212
+
213
+
214
+ # 导出所有公共接口
215
+ __all__ = [
216
+ # 主要函数
217
+ 'create_pull_request',
218
+ 'get_pull_request',
219
+ 'list_pull_requests',
220
+
221
+ # 类和模型
222
+ 'PullRequestManager',
223
+ 'PRConfig',
224
+ 'PRResult',
225
+ 'PRInfo',
226
+ 'PRData',
227
+ 'RepoInfo',
228
+ 'PlatformType',
229
+
230
+ # 异常
231
+ 'PRError',
232
+ 'AuthenticationError',
233
+ 'RepositoryNotFoundError',
234
+ 'BranchNotFoundError',
235
+ 'NetworkError',
236
+ 'RateLimitError',
237
+ 'ValidationError',
238
+ 'PlatformNotSupportedError',
239
+ 'ConfigurationError',
240
+
241
+ # 工具函数
242
+ 'parse_git_url',
243
+ 'detect_platform_from_repo',
244
+ 'get_repo_info_from_path',
245
+ 'get_current_branch',
246
+ 'branch_exists',
247
+ 'is_git_repo',
248
+
249
+ # 配置函数
250
+ 'get_config',
251
+ 'set_global_config',
252
+ 'get_global_manager',
253
+
254
+ # 模板
255
+ 'DEFAULT_TEMPLATES'
256
+ ]