auto-coder 3.0.44__tar.gz → 3.0.46__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (878) hide show
  1. {auto_coder-3.0.44/src/auto_coder.egg-info → auto_coder-3.0.46}/PKG-INFO +2 -1
  2. {auto_coder-3.0.44 → auto_coder-3.0.46}/README.md +1 -0
  3. {auto_coder-3.0.44 → auto_coder-3.0.46}/pyproject.toml +1 -1
  4. {auto_coder-3.0.44 → auto_coder-3.0.46/src/auto_coder.egg-info}/PKG-INFO +2 -1
  5. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/auto_coder.egg-info/SOURCES.txt +2 -0
  6. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/llms/registry.py +14 -0
  7. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shells.py +57 -10
  8. auto_coder-3.0.46/src/autocoder/terminal_core/cloud_block_command.py +86 -0
  9. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal_core/cloud_bridge.py +22 -3
  10. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal_core/cloud_command_dispatcher.py +99 -8
  11. auto_coder-3.0.46/src/autocoder/terminal_core/cloud_file_uploader.py +122 -0
  12. auto_coder-3.0.46/src/autocoder/terminal_core/output.py +68 -0
  13. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/version.py +1 -1
  14. auto_coder-3.0.44/src/autocoder/terminal_core/output.py +0 -31
  15. {auto_coder-3.0.44 → auto_coder-3.0.46}/LICENSE +0 -0
  16. {auto_coder-3.0.44 → auto_coder-3.0.46}/MANIFEST.in +0 -0
  17. {auto_coder-3.0.44 → auto_coder-3.0.46}/requirements.txt +0 -0
  18. {auto_coder-3.0.44 → auto_coder-3.0.46}/setup.cfg +0 -0
  19. {auto_coder-3.0.44 → auto_coder-3.0.46}/setup.py +0 -0
  20. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/auto_coder.egg-info/dependency_links.txt +0 -0
  21. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/auto_coder.egg-info/entry_points.txt +0 -0
  22. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/auto_coder.egg-info/requires.txt +0 -0
  23. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/auto_coder.egg-info/top_level.txt +0 -0
  24. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/__init__.py +0 -0
  25. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/__init__.py +0 -0
  26. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/auto_demand_organizer.py +0 -0
  27. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/auto_filegroup.py +0 -0
  28. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/auto_guess_query.py +0 -0
  29. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/auto_learn.py +0 -0
  30. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/auto_learn_from_commit.py +0 -0
  31. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/auto_review_commit.py +0 -0
  32. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/auto_tool.py +0 -0
  33. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/base_agentic/__init__.py +0 -0
  34. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/base_agentic/agent_hub.py +0 -0
  35. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/base_agentic/agentic_lang.py +0 -0
  36. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/base_agentic/agentic_tool_display.py +0 -0
  37. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/base_agentic/base_agent.py +0 -0
  38. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/base_agentic/default_tools.py +0 -0
  39. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/base_agentic/test_base_agent.py +0 -0
  40. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/base_agentic/tool_registry.py +0 -0
  41. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/base_agentic/tools/__init__.py +0 -0
  42. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/base_agentic/tools/ask_followup_question_tool_resolver.py +0 -0
  43. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/base_agentic/tools/attempt_completion_tool_resolver.py +0 -0
  44. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/base_agentic/tools/base_tool_resolver.py +0 -0
  45. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/base_agentic/tools/example_tool_resolver.py +0 -0
  46. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/base_agentic/tools/execute_command_tool_resolver.py +0 -0
  47. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/base_agentic/tools/list_files_tool_resolver.py +0 -0
  48. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/base_agentic/tools/plan_mode_respond_tool_resolver.py +0 -0
  49. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/base_agentic/tools/read_file_tool_resolver.py +0 -0
  50. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/base_agentic/tools/replace_in_file_tool_resolver.py +0 -0
  51. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/base_agentic/tools/search_files_tool_resolver.py +0 -0
  52. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/base_agentic/tools/talk_to_group_tool_resolver.py +0 -0
  53. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/base_agentic/tools/talk_to_tool_resolver.py +0 -0
  54. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/base_agentic/tools/write_to_file_tool_resolver.py +0 -0
  55. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/base_agentic/types.py +0 -0
  56. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/base_agentic/utils.py +0 -0
  57. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/coder.py +0 -0
  58. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/designer.py +0 -0
  59. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/entry_command_agent/__init__.py +0 -0
  60. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/entry_command_agent/auto_tool.py +0 -0
  61. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/entry_command_agent/chat.py +0 -0
  62. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/entry_command_agent/designer.py +0 -0
  63. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/entry_command_agent/generate_command.py +0 -0
  64. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/entry_command_agent/project_reader.py +0 -0
  65. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/entry_command_agent/voice2text.py +0 -0
  66. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/planner.py +0 -0
  67. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/agent/project_reader.py +0 -0
  68. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/auto_coder.py +0 -0
  69. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/auto_coder_rag.py +0 -0
  70. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/auto_coder_runner.py +0 -0
  71. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/auto_coder_terminal.py +0 -0
  72. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/auto_coder_terminal_v3.py +0 -0
  73. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/chat/__init__.py +0 -0
  74. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/chat/conf_command.py +0 -0
  75. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/chat/conf_spec.py +0 -0
  76. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/chat/models_command.py +0 -0
  77. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/chat/rules_command.py +0 -0
  78. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/chat_auto_coder_lang.py +0 -0
  79. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/command_args.py +0 -0
  80. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/commands/__init__.py +0 -0
  81. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/commands/auto_command.py +0 -0
  82. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/commands/auto_web.py +0 -0
  83. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/commands/tools.py +0 -0
  84. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/JupyterClient.py +0 -0
  85. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/ShellClient.py +0 -0
  86. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/__init__.py +0 -0
  87. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/ac_style_command_parser/__init__.py +0 -0
  88. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/ac_style_command_parser/config.py +0 -0
  89. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/ac_style_command_parser/parser.py +0 -0
  90. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/ac_style_command_parser/test_parser.py +0 -0
  91. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/ac_style_command_parser/test_typed_parser.py +0 -0
  92. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/ac_style_command_parser/typed_parser.py +0 -0
  93. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/action_yml_file_manager.py +0 -0
  94. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/agent_events/__init__.py +0 -0
  95. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/agent_events/agent_event_emitter.py +0 -0
  96. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/agent_events/event_factory.py +0 -0
  97. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/agent_events/examples.py +0 -0
  98. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/agent_events/types.py +0 -0
  99. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/agent_events/utils.py +0 -0
  100. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/agent_hooks/__init__.py +0 -0
  101. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/agent_hooks/examples.py +0 -0
  102. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/agent_hooks/hook_executor.py +0 -0
  103. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/agent_hooks/hook_manager.py +0 -0
  104. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/agent_hooks/types.py +0 -0
  105. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/agent_hooks/utils.py +0 -0
  106. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/agent_query_queue/__init__.py +0 -0
  107. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/agent_query_queue/queue_executor.py +0 -0
  108. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/agent_query_queue/queue_manager.py +0 -0
  109. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/agents/__init__.py +0 -0
  110. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/agents/agent_manager.py +0 -0
  111. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/agents/agent_parser.py +0 -0
  112. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/agents/example_usage.py +0 -0
  113. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/agents/integration_example.py +0 -0
  114. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/agents/test_agent_parser.py +0 -0
  115. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/anything2images.py +0 -0
  116. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/anything2img.py +0 -0
  117. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/async_prompt.py +0 -0
  118. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/async_utils.py +0 -0
  119. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/audio.py +0 -0
  120. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/auto_coder_lang.py +0 -0
  121. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/auto_configure.py +0 -0
  122. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/autocoderargs_parser/__init__.py +0 -0
  123. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/autocoderargs_parser/parser.py +0 -0
  124. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/autocoderargs_parser/tests/__init__.py +0 -0
  125. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/autocoderargs_parser/tests/test_args_parser.py +0 -0
  126. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/autocoderargs_parser/tests/test_token_parser.py +0 -0
  127. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/autocoderargs_parser/token_parser.py +0 -0
  128. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/buildin_tokenizer.py +0 -0
  129. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/chunk_validation.py +0 -0
  130. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/cli_invocation.py +0 -0
  131. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/code_auto_execute.py +0 -0
  132. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/code_auto_generate.py +0 -0
  133. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/code_auto_generate_diff.py +0 -0
  134. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/code_auto_generate_editblock.py +0 -0
  135. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/code_auto_generate_strict_diff.py +0 -0
  136. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/code_auto_merge.py +0 -0
  137. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/code_auto_merge_diff.py +0 -0
  138. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/code_auto_merge_editblock.py +0 -0
  139. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/code_auto_merge_strict_diff.py +0 -0
  140. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/code_modification_ranker.py +0 -0
  141. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/command_completer.py +0 -0
  142. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/command_file_manager/__init__.py +0 -0
  143. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/command_file_manager/examples.py +0 -0
  144. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/command_file_manager/manager.py +0 -0
  145. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/command_file_manager/models.py +0 -0
  146. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/command_file_manager/test_command_file_manager.py +0 -0
  147. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/command_file_manager/utils.py +0 -0
  148. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/command_generator.py +0 -0
  149. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/command_templates.py +0 -0
  150. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/computer_use.py +0 -0
  151. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/conf_import_export.py +0 -0
  152. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/conf_utils.py +0 -0
  153. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/conf_validator.py +0 -0
  154. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/const.py +0 -0
  155. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/conversations/__init__.py +0 -0
  156. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/conversations/backup/__init__.py +0 -0
  157. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/conversations/backup/backup_manager.py +0 -0
  158. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/conversations/backup/restore_manager.py +0 -0
  159. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/conversations/cache/__init__.py +0 -0
  160. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/conversations/cache/base_cache.py +0 -0
  161. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/conversations/cache/cache_manager.py +0 -0
  162. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/conversations/cache/memory_cache.py +0 -0
  163. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/conversations/config.py +0 -0
  164. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/conversations/exceptions.py +0 -0
  165. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/conversations/file_locker.py +0 -0
  166. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/conversations/get_conversation_manager.py +0 -0
  167. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/conversations/llm_stats_models.py +0 -0
  168. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/conversations/manager.py +0 -0
  169. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/conversations/models.py +0 -0
  170. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/conversations/runtime_registry.py +0 -0
  171. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/conversations/search/__init__.py +0 -0
  172. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/conversations/search/filter_manager.py +0 -0
  173. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/conversations/search/text_searcher.py +0 -0
  174. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/conversations/storage/__init__.py +0 -0
  175. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/conversations/storage/base_storage.py +0 -0
  176. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/conversations/storage/file_storage.py +0 -0
  177. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/conversations/storage/index_manager.py +0 -0
  178. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/core_config/__init__.py +0 -0
  179. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/core_config/agentic_mode_manager.py +0 -0
  180. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/core_config/base_manager.py +0 -0
  181. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/core_config/compatibility.py +0 -0
  182. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/core_config/config_manager.py +0 -0
  183. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/core_config/conversation_manager.py +0 -0
  184. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/core_config/exclude_manager.py +0 -0
  185. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/core_config/file_manager.py +0 -0
  186. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/core_config/human_as_model_manager.py +0 -0
  187. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/core_config/lib_manager.py +0 -0
  188. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/core_config/main_manager.py +0 -0
  189. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/core_config/merge_utils.py +0 -0
  190. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/core_config/mode_manager.py +0 -0
  191. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/core_config/models.py +0 -0
  192. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/core_config/test_memory_manager.py +0 -0
  193. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/env_manager.py +0 -0
  194. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/env_manager_usage_example.py +0 -0
  195. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/file_checkpoint/__init__.py +0 -0
  196. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/file_checkpoint/backup.py +0 -0
  197. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/file_checkpoint/conversation_checkpoint.py +0 -0
  198. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/file_checkpoint/manager.py +0 -0
  199. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/file_checkpoint/models.py +0 -0
  200. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/file_checkpoint/store.py +0 -0
  201. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/file_checkpoint/test_backup.py +0 -0
  202. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/file_checkpoint/test_manager.py +0 -0
  203. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/file_checkpoint/test_models.py +0 -0
  204. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/file_checkpoint/test_store.py +0 -0
  205. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/file_checkpoint/test_utils.py +0 -0
  206. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/file_checkpoint/utils.py +0 -0
  207. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/file_handler/__init__.py +0 -0
  208. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/file_handler/add_files_handler.py +0 -0
  209. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/file_handler/chat_handler.py +0 -0
  210. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/file_handler/coding_handler.py +0 -0
  211. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/file_handler/commit_handler.py +0 -0
  212. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/file_handler/lib_handler.py +0 -0
  213. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/file_handler/list_files_handler.py +0 -0
  214. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/file_handler/models_handler.py +0 -0
  215. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/file_handler/remove_files_handler.py +0 -0
  216. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/file_monitor/__init__.py +0 -0
  217. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/file_monitor/monitor.py +0 -0
  218. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/file_monitor/test_file_monitor.py +0 -0
  219. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/files.py +0 -0
  220. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/git_utils.py +0 -0
  221. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/global_cancel.py +0 -0
  222. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/ignorefiles/__init__.py +0 -0
  223. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/ignorefiles/ignore_file_utils.py +0 -0
  224. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/ignorefiles/test_ignore_file_utils.py +0 -0
  225. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/image_to_page.py +0 -0
  226. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/index_import_export.py +0 -0
  227. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/international/__init__.py +0 -0
  228. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/international/demo_international.py +0 -0
  229. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/international/message_manager.py +0 -0
  230. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/international/messages/__init__.py +0 -0
  231. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/international/messages/async_command_messages.py +0 -0
  232. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/international/messages/auto_coder_messages.py +0 -0
  233. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/international/messages/chat_auto_coder_messages.py +0 -0
  234. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/international/messages/command_help_messages.py +0 -0
  235. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/international/messages/conversation_command_messages.py +0 -0
  236. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/international/messages/fast_command_messages.py +0 -0
  237. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/international/messages/git_helper_plugin_messages.py +0 -0
  238. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/international/messages/queue_command_messages.py +0 -0
  239. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/international/messages/rules_command_messages.py +0 -0
  240. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/international/messages/sdk_messages.py +0 -0
  241. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/international/messages/token_helper_plugin_messages.py +0 -0
  242. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/international/messages/tool_display_messages.py +0 -0
  243. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/international/messages/workflow_exception_messages.py +0 -0
  244. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/international/test_international.py +0 -0
  245. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/interpreter.py +0 -0
  246. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/linter_core/__init__.py +0 -0
  247. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/linter_core/base_linter.py +0 -0
  248. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/linter_core/config_loader.py +0 -0
  249. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/linter_core/formatters/__init__.py +0 -0
  250. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/linter_core/formatters/base_formatter.py +0 -0
  251. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/linter_core/formatters/raw_formatter.py +0 -0
  252. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/linter_core/linter.py +0 -0
  253. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/linter_core/linter_factory.py +0 -0
  254. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/linter_core/linter_manager.py +0 -0
  255. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/linter_core/linters/__init__.py +0 -0
  256. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/linter_core/linters/java_linter.py +0 -0
  257. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/linter_core/linters/python_linter.py +0 -0
  258. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/linter_core/linters/typescript_linter.py +0 -0
  259. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/linter_core/models/__init__.py +0 -0
  260. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/linter_core/models/lint_result.py +0 -0
  261. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/linter_core/models.py +0 -0
  262. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/linter_core/tests/__init__.py +0 -0
  263. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/linter_core/tests/test_config_loader.py +0 -0
  264. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/linter_core/tests/test_config_loading.py +0 -0
  265. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/linter_core/tests/test_factory_manager.py +0 -0
  266. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/linter_core/tests/test_formatters.py +0 -0
  267. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/linter_core/tests/test_integration.py +0 -0
  268. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/linter_core/tests/test_java_linter.py +0 -0
  269. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/linter_core/tests/test_linters.py +0 -0
  270. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/linter_core/tests/test_models.py +0 -0
  271. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/linter_core/tests/verify_config_loading.py +0 -0
  272. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/linter_core/tests/verify_fixes.py +0 -0
  273. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/llm_friendly_package/__init__.py +0 -0
  274. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/llm_friendly_package/base_manager.py +0 -0
  275. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/llm_friendly_package/docs_manager.py +0 -0
  276. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/llm_friendly_package/library_manager.py +0 -0
  277. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/llm_friendly_package/main_manager.py +0 -0
  278. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/llm_friendly_package/models.py +0 -0
  279. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/llm_friendly_package/test_llm_friendly_package.py +0 -0
  280. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/llms/__init__.py +0 -0
  281. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/llms/demo_error_handling.py +0 -0
  282. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/llms/factory.py +0 -0
  283. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/llms/manager.py +0 -0
  284. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/llms/pricing.py +0 -0
  285. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/llms/schema.py +0 -0
  286. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/llms/simple_demo.py +0 -0
  287. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/llms/test_quick_model.py +0 -0
  288. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/llms/test_remove_functionality.py +0 -0
  289. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/llms/tests/__init__.py +0 -0
  290. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/llms/tests/test_manager.py +0 -0
  291. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/llms/tests/test_registry.py +0 -0
  292. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/memory_manager.py +0 -0
  293. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/model_speed_tester.py +0 -0
  294. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/openai_content.py +0 -0
  295. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/printer.py +0 -0
  296. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/priority_directory_finder/__init__.py +0 -0
  297. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/priority_directory_finder/examples.py +0 -0
  298. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/priority_directory_finder/finder.py +0 -0
  299. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/priority_directory_finder/models.py +0 -0
  300. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/priority_directory_finder/test_priority_directory_finder.py +0 -0
  301. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/project_scanner/__init__.py +0 -0
  302. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/project_scanner/compat.py +0 -0
  303. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/project_scanner/scanner.py +0 -0
  304. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/project_tracker/__init__.py +0 -0
  305. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/project_tracker/api.py +0 -0
  306. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/project_tracker/demo.py +0 -0
  307. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/project_tracker/tracker.py +0 -0
  308. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/project_tracker/types.py +0 -0
  309. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pruner/__init__.py +0 -0
  310. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pruner/agentic_conversation_pruner.py +0 -0
  311. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pruner/context_pruner.py +0 -0
  312. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pruner/conversation_message_ids_api.py +0 -0
  313. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pruner/conversation_message_ids_manager.py +0 -0
  314. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pruner/conversation_message_ids_pruner.py +0 -0
  315. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pruner/conversation_normalizer.py +0 -0
  316. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pruner/conversation_pruner.py +0 -0
  317. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pruner/test_agentic_conversation_pruner.py +0 -0
  318. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pruner/test_context_pruner.py +0 -0
  319. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pruner/test_conversation_normalizer.py +0 -0
  320. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pruner/test_tool_content_detector.py +0 -0
  321. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pruner/tool_content_detector.py +0 -0
  322. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pruner/tools/__init__.py +0 -0
  323. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pruner/tools/query_message_ids.py +0 -0
  324. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pruner/tools/test_agentic_pruning_logic.py +0 -0
  325. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pruner/tools/test_message_ids_pruning_only.py +0 -0
  326. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pull_requests/__init__.py +0 -0
  327. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pull_requests/base_provider.py +0 -0
  328. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pull_requests/config.py +0 -0
  329. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pull_requests/example.py +0 -0
  330. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pull_requests/exceptions.py +0 -0
  331. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pull_requests/manager.py +0 -0
  332. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pull_requests/models.py +0 -0
  333. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pull_requests/providers/__init__.py +0 -0
  334. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pull_requests/providers/gitcode_provider.py +0 -0
  335. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pull_requests/providers/gitee_provider.py +0 -0
  336. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pull_requests/providers/github_provider.py +0 -0
  337. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pull_requests/providers/gitlab_provider.py +0 -0
  338. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/pull_requests/utils.py +0 -0
  339. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/rag_manager/__init__.py +0 -0
  340. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/rag_manager/rag_manager.py +0 -0
  341. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/recall_validation.py +0 -0
  342. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/result_manager.py +0 -0
  343. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/rulefiles/__init__.py +0 -0
  344. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/rulefiles/api.py +0 -0
  345. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/rulefiles/core/__init__.py +0 -0
  346. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/rulefiles/core/manager.py +0 -0
  347. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/rulefiles/core/selector.py +0 -0
  348. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/rulefiles/models/__init__.py +0 -0
  349. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/rulefiles/models/index.py +0 -0
  350. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/rulefiles/models/init_rule.py +0 -0
  351. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/rulefiles/models/rule_file.py +0 -0
  352. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/rulefiles/models/rule_relevance.py +0 -0
  353. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/rulefiles/models/summary.py +0 -0
  354. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/rulefiles/test_rulefiles.py +0 -0
  355. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/rulefiles/test_subagents_filter.py +0 -0
  356. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/rulefiles/utils/__init__.py +0 -0
  357. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/rulefiles/utils/log_utils.py +0 -0
  358. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/rulefiles/utils/monitor.py +0 -0
  359. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/rulefiles/utils/parser.py +0 -0
  360. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/run_cmd.py +0 -0
  361. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/save_formatted_log.py +0 -0
  362. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/screenshots.py +0 -0
  363. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/search.py +0 -0
  364. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/search_replace.py +0 -0
  365. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/search_replace_patch/__init__.py +0 -0
  366. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/search_replace_patch/base.py +0 -0
  367. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/search_replace_patch/manager.py +0 -0
  368. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/search_replace_patch/patch_replacer.py +0 -0
  369. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/search_replace_patch/similarity_replacer.py +0 -0
  370. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/search_replace_patch/string_replacer.py +0 -0
  371. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/search_replace_patch/tests/__init__.py +0 -0
  372. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/search_replace_patch/tests/run_tests.py +0 -0
  373. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/search_replace_patch/tests/test_base.py +0 -0
  374. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/search_replace_patch/tests/test_empty_line_insert.py +0 -0
  375. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/search_replace_patch/tests/test_integration.py +0 -0
  376. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/search_replace_patch/tests/test_manager.py +0 -0
  377. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/search_replace_patch/tests/test_patch_replacer.py +0 -0
  378. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/search_replace_patch/tests/test_regex_replacer.py +0 -0
  379. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/search_replace_patch/tests/test_similarity_replacer.py +0 -0
  380. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/__init__.py +0 -0
  381. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/background_process_notifier.py +0 -0
  382. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/command_executor.py +0 -0
  383. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/error_recovery.py +0 -0
  384. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/exceptions.py +0 -0
  385. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/interactive_executor.py +0 -0
  386. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/interactive_pexpect_process.py +0 -0
  387. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/interactive_process.py +0 -0
  388. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/interactive_session_manager.py +0 -0
  389. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/monitoring.py +0 -0
  390. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/process_cleanup.py +0 -0
  391. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/process_manager.py +0 -0
  392. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/test_interactive_pexpect_process.py +0 -0
  393. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/tests/__init__.py +0 -0
  394. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/tests/conftest.py +0 -0
  395. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/tests/test_background_process_notifier.py +0 -0
  396. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/tests/test_command_executor.py +0 -0
  397. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/tests/test_error_recovery.py +0 -0
  398. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/tests/test_exceptions.py +0 -0
  399. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/tests/test_execute_batch.py +0 -0
  400. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/tests/test_indented_batch_commands.py +0 -0
  401. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/tests/test_integration.py +0 -0
  402. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/tests/test_monitoring.py +0 -0
  403. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/tests/test_performance.py +0 -0
  404. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/tests/test_process_cleanup.py +0 -0
  405. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/tests/test_process_manager.py +0 -0
  406. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/tests/test_timeout_config.py +0 -0
  407. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/tests/test_timeout_manager.py +0 -0
  408. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/tests/test_windows_support.py +0 -0
  409. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/timeout_config.py +0 -0
  410. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/timeout_manager.py +0 -0
  411. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/shell_commands/windows_support.py +0 -0
  412. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/skills/__init__.py +0 -0
  413. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/skills/manager.py +0 -0
  414. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/stats_panel.py +0 -0
  415. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/stream_out_type.py +0 -0
  416. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/sys_prompt.py +0 -0
  417. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/terminal_paste/__init__.py +0 -0
  418. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/terminal_paste/clipboard_image.py +0 -0
  419. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/terminal_paste/demo.py +0 -0
  420. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/terminal_paste/demo_paste_functionality.py +0 -0
  421. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/terminal_paste/paste_handler.py +0 -0
  422. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/terminal_paste/paste_manager.py +0 -0
  423. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/terminal_paste/tests/__init__.py +0 -0
  424. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/terminal_paste/tests/test_paste_handler.py +0 -0
  425. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/terminal_paste/tests/test_paste_manager.py +0 -0
  426. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/terminal_paste/utils.py +0 -0
  427. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/test_autocoder_args.py +0 -0
  428. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/test_env_manager.py +0 -0
  429. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/test_env_manager_integration.py +0 -0
  430. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/test_run_cmd.py +0 -0
  431. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/text_similarity/__init__.py +0 -0
  432. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/text_similarity/demo.py +0 -0
  433. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/text_similarity/examples.py +0 -0
  434. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/text_similarity/test_text_similarity.py +0 -0
  435. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/text_similarity/text_similarity.py +0 -0
  436. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/text_similarity/utils.py +0 -0
  437. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/todos/__init__.py +0 -0
  438. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/todos/cache/__init__.py +0 -0
  439. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/todos/cache/base_cache.py +0 -0
  440. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/todos/cache/cache_manager.py +0 -0
  441. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/todos/cache/memory_cache.py +0 -0
  442. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/todos/config.py +0 -0
  443. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/todos/exceptions.py +0 -0
  444. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/todos/formatting.py +0 -0
  445. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/todos/get_todo_manager.py +0 -0
  446. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/todos/manager.py +0 -0
  447. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/todos/models.py +0 -0
  448. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/todos/storage/__init__.py +0 -0
  449. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/todos/storage/base_storage.py +0 -0
  450. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/todos/storage/file_storage.py +0 -0
  451. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/token_cost_caculate.py +0 -0
  452. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/tokens/__init__.py +0 -0
  453. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/tokens/counter.py +0 -0
  454. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/tokens/file_detector.py +0 -0
  455. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/tokens/filters.py +0 -0
  456. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/tokens/models.py +0 -0
  457. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/tools_manager/__init__.py +0 -0
  458. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/tools_manager/examples.py +0 -0
  459. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/tools_manager/manager.py +0 -0
  460. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/tools_manager/models.py +0 -0
  461. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/tools_manager/test_tools_manager.py +0 -0
  462. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/tools_manager/utils.py +0 -0
  463. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/types.py +0 -0
  464. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/utils_code_auto_generate.py +0 -0
  465. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/__init__.py +0 -0
  466. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/__init__.py +0 -0
  467. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_callbacks.py +0 -0
  468. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit.py +0 -0
  469. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_change_manager.py +0 -0
  470. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/__init__.py +0 -0
  471. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/ac_mod_list_tool_resolver.py +0 -0
  472. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/ac_mod_read_tool_resolver.py +0 -0
  473. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/ac_mod_write_tool_resolver.py +0 -0
  474. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/ask_followup_question_tool_resolver.py +0 -0
  475. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/attempt_completion_tool_resolver.py +0 -0
  476. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/base_tool_resolver.py +0 -0
  477. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/conversation_message_ids_read_tool_resolver.py +0 -0
  478. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/conversation_message_ids_write_tool_resolver.py +0 -0
  479. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/count_tokens_tool_resolver.py +0 -0
  480. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/dangerous_command_checker.py +0 -0
  481. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/execute_command_tool_resolver.py +0 -0
  482. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/execute_external_tool_resolver.py +0 -0
  483. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/execute_workflow_tool_resolver.py +0 -0
  484. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/extra_docs/__init__.py +0 -0
  485. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/extra_docs/ac_mod_files.py +0 -0
  486. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/extra_docs/interactive_session.py +0 -0
  487. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/extra_docs/plan_format.py +0 -0
  488. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/extra_docs/skill.py +0 -0
  489. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/extra_docs/web_research.py +0 -0
  490. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/extra_docs/workflow_subagents.py +0 -0
  491. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/extract_text_to_file_tool_resolver.py +0 -0
  492. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/lint_report.py +0 -0
  493. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/linter_config_models.py +0 -0
  494. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/linter_enabled_tool_resolver.py +0 -0
  495. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/list_code_definition_names_tool_resolver.py +0 -0
  496. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/list_files_tool_resolver.py +0 -0
  497. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/load_extra_document_tool_resolver.py +0 -0
  498. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/manage_background_tasks_tool_resolver.py +0 -0
  499. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/plan_mode_respond_tool_resolver.py +0 -0
  500. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/read_file_tool_resolver.py +0 -0
  501. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/read_image_tool_resolver.py +0 -0
  502. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/repl_close_tool_resolver.py +0 -0
  503. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/repl_open_tool_resolver.py +0 -0
  504. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/repl_send_tool_resolver.py +0 -0
  505. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/replace_in_file/__init__.py +0 -0
  506. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/replace_in_file/apply.py +0 -0
  507. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/replace_in_file/failure_report.py +0 -0
  508. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/replace_in_file/parsing.py +0 -0
  509. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/replace_in_file/paths.py +0 -0
  510. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/replace_in_file_tool_resolver.py +0 -0
  511. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/run_named_subagents_tool_resolver.py +0 -0
  512. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/run_subagents_tool_resolver.py +0 -0
  513. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/search_files_tool_resolver.py +0 -0
  514. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/test_write_to_file_tool_resolver.py +0 -0
  515. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/todo_read_tool_resolver.py +0 -0
  516. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/todo_write_tool_resolver.py +0 -0
  517. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/use_rag_tool_resolver.py +0 -0
  518. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/web_crawl_tool_resolver.py +0 -0
  519. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/web_search_tool_resolver.py +0 -0
  520. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_tools/write_to_file_tool_resolver.py +0 -0
  521. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/agentic_edit_types.py +0 -0
  522. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/llm_stream_parser.py +0 -0
  523. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/runner/__init__.py +0 -0
  524. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/runner/base_runner.py +0 -0
  525. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/runner/file_based_event_runner.py +0 -0
  526. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/runner/sdk_runner.py +0 -0
  527. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/runner/terminal_runner.py +0 -0
  528. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/runner/tool_display.py +0 -0
  529. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/subagents/__init__.py +0 -0
  530. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/subagents/backends/__init__.py +0 -0
  531. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/subagents/backends/cli_process.py +0 -0
  532. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/subagents/backends/external_cli_drivers.py +0 -0
  533. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/subagents/backends/external_cli_process.py +0 -0
  534. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/subagents/backends/in_process.py +0 -0
  535. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/subagents/client.py +0 -0
  536. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/subagents/models.py +0 -0
  537. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/subagents/prompt_provider.py +0 -0
  538. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/subagents/tests/__init__.py +0 -0
  539. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/subagents/tests/test_subagent_client.py +0 -0
  540. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/test_agentic_callbacks.py +0 -0
  541. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/test_agentic_edit.py +0 -0
  542. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/test_agentic_edit_conversation_lifecycle.py +0 -0
  543. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/test_llm_stream_parser.py +0 -0
  544. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/tool_caller/__init__.py +0 -0
  545. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/tool_caller/default_tool_resolver_map.py +0 -0
  546. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/tool_caller/integration_test.py +0 -0
  547. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/tool_caller/plugins/__init__.py +0 -0
  548. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/tool_caller/plugins/base_plugin.py +0 -0
  549. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/tool_caller/plugins/examples/__init__.py +0 -0
  550. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/tool_caller/plugins/examples/command_policy_plugin.py +0 -0
  551. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/tool_caller/plugins/examples/logging_plugin.py +0 -0
  552. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/tool_caller/plugins/examples/security_filter_plugin.py +0 -0
  553. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/tool_caller/plugins/examples/workspace_delta_plugin.py +0 -0
  554. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/tool_caller/plugins/plugin_interface.py +0 -0
  555. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/tool_caller/test_hook_mechanism.py +0 -0
  556. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/tool_caller/test_tool_caller.py +0 -0
  557. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/tool_caller/tool_call_plugin_manager.py +0 -0
  558. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/tool_caller/tool_caller.py +0 -0
  559. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/agent/tool_caller/usage_example.py +0 -0
  560. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/code_agentic_editblock_manager.py +0 -0
  561. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/code_auto_generate.py +0 -0
  562. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/code_auto_generate_diff.py +0 -0
  563. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/code_auto_generate_editblock.py +0 -0
  564. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/code_auto_generate_strict_diff.py +0 -0
  565. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/code_auto_merge.py +0 -0
  566. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/code_auto_merge_diff.py +0 -0
  567. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/code_auto_merge_editblock.py +0 -0
  568. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/code_auto_merge_strict_diff.py +0 -0
  569. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/code_diff_manager.py +0 -0
  570. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/code_editblock_events/__init__.py +0 -0
  571. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/code_editblock_events/manager.py +0 -0
  572. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/code_editblock_events/types.py +0 -0
  573. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/code_editblock_manager.py +0 -0
  574. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/code_manager.py +0 -0
  575. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/v2/code_strict_diff_manager.py +0 -0
  576. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/wrap_llm_hint/__init__.py +0 -0
  577. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/wrap_llm_hint/test_wrap_llm_hint.py +0 -0
  578. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/wrap_llm_hint/utils.py +0 -0
  579. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/common/wrap_llm_hint/wrap_llm_hint.py +0 -0
  580. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/compilers/__init__.py +0 -0
  581. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/compilers/base_compiler.py +0 -0
  582. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/compilers/compiler_config_api.py +0 -0
  583. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/compilers/compiler_config_manager.py +0 -0
  584. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/compilers/compiler_factory.py +0 -0
  585. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/compilers/java_compiler.py +0 -0
  586. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/compilers/models.py +0 -0
  587. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/compilers/normal_compiler.py +0 -0
  588. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/compilers/provided_compiler.py +0 -0
  589. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/compilers/python_compiler.py +0 -0
  590. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/compilers/reactjs_compiler.py +0 -0
  591. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/compilers/shadow_compiler.py +0 -0
  592. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/compilers/vue_compiler.py +0 -0
  593. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/completer/__init__.py +0 -0
  594. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/completer/command_completer_v2.py +0 -0
  595. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/completer/tests/__init__.py +0 -0
  596. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/completer/tests/test_task_completion.py +0 -0
  597. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/data/byzerllm.md +0 -0
  598. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/data/tokenizer.json +0 -0
  599. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/db/__init__.py +0 -0
  600. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/db/store.py +0 -0
  601. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/default_project/__init__.py +0 -0
  602. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/dispacher/__init__.py +0 -0
  603. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/dispacher/actions/__init__.py +0 -0
  604. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/dispacher/actions/action.py +0 -0
  605. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/dispacher/actions/copilot.py +0 -0
  606. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/dispacher/actions/plugins/__init__.py +0 -0
  607. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/dispacher/actions/plugins/action_regex_project.py +0 -0
  608. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/events/__init__.py +0 -0
  609. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/events/event_content.py +0 -0
  610. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/events/event_manager.py +0 -0
  611. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/events/event_manager_singleton.py +0 -0
  612. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/events/event_store.py +0 -0
  613. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/events/event_types.py +0 -0
  614. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/helper/__init__.py +0 -0
  615. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/helper/project_creator.py +0 -0
  616. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/helper/rag_doc_creator.py +0 -0
  617. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/index/__init__.py +0 -0
  618. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/index/entry.py +0 -0
  619. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/index/filter/__init__.py +0 -0
  620. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/index/filter/agentic_filter.py +0 -0
  621. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/index/filter/normal_filter.py +0 -0
  622. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/index/filter/quick_filter.py +0 -0
  623. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/index/for_command.py +0 -0
  624. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/index/index.py +0 -0
  625. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/index/symbols_utils.py +0 -0
  626. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/index/tests/__init__.py +0 -0
  627. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/index/tests/run_tests.py +0 -0
  628. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/index/tests/test_entry.py +0 -0
  629. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/index/tests/test_index_manager.py +0 -0
  630. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/index/tests/test_module_integration.py +0 -0
  631. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/index/tests/test_symbols_utils.py +0 -0
  632. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/index/types.py +0 -0
  633. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/inner/__init__.py +0 -0
  634. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/inner/agentic.py +0 -0
  635. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/inner/async_command_handler.py +0 -0
  636. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/inner/conversation_command_handlers.py +0 -0
  637. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/inner/merge_command_handler.py +0 -0
  638. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/inner/queue_command_handler.py +0 -0
  639. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/lang.py +0 -0
  640. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/linters/__init__.py +0 -0
  641. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/linters/base_linter.py +0 -0
  642. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/linters/linter_factory.py +0 -0
  643. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/linters/models.py +0 -0
  644. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/linters/normal_linter.py +0 -0
  645. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/linters/python_linter.py +0 -0
  646. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/linters/reactjs_linter.py +0 -0
  647. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/linters/shadow_linter.py +0 -0
  648. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/linters/test_python_linter.py +0 -0
  649. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/linters/test_reactjs_linter.py +0 -0
  650. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/linters/test_vue_linter.py +0 -0
  651. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/linters/vue_linter.py +0 -0
  652. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/memory/__init__.py +0 -0
  653. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/memory/agent_executor.py +0 -0
  654. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/memory/context_provider.py +0 -0
  655. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/memory/manager.py +0 -0
  656. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/memory/registry.py +0 -0
  657. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/memory/scheduler.py +0 -0
  658. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/memory/sources/__init__.py +0 -0
  659. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/memory/sources/ac_modules.py +0 -0
  660. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/memory/sources/history.py +0 -0
  661. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/memory/store.py +0 -0
  662. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/memory/tasks/__init__.py +0 -0
  663. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/memory/tasks/base.py +0 -0
  664. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/memory/tasks/history_memory_mining.py +0 -0
  665. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/memory/tasks/module_context_refresh.py +0 -0
  666. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/memory/tests/__init__.py +0 -0
  667. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/memory/tests/test_memory.py +0 -0
  668. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/models.py +0 -0
  669. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/plugins/__init__.py +0 -0
  670. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/plugins/git_helper_plugin.py +0 -0
  671. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/plugins/token_helper_plugin.py +0 -0
  672. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/plugins/utils.py +0 -0
  673. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/privacy/__init__.py +0 -0
  674. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/privacy/model_filter.py +0 -0
  675. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/pyproject/__init__.py +0 -0
  676. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/__init__.py +0 -0
  677. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/agentic_rag.py +0 -0
  678. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/api_server.py +0 -0
  679. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/cache/__init__.py +0 -0
  680. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/cache/base_cache.py +0 -0
  681. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/cache/byzer_storage_cache.py +0 -0
  682. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/cache/cache_result_merge.py +0 -0
  683. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/cache/failed_files_utils.py +0 -0
  684. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/cache/file_monitor_cache.py +0 -0
  685. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/cache/local_byzer_storage_cache.py +0 -0
  686. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/cache/local_duckdb_storage_cache.py +0 -0
  687. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/cache/rag_file_meta.py +0 -0
  688. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/cache/simple_cache.py +0 -0
  689. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/conversation_to_queries.py +0 -0
  690. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/doc_filter.py +0 -0
  691. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/document_retriever.py +0 -0
  692. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/lang.py +0 -0
  693. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/llm_wrapper.py +0 -0
  694. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/loaders/__init__.py +0 -0
  695. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/loaders/docx_loader.py +0 -0
  696. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/loaders/excel_loader.py +0 -0
  697. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/loaders/filter_utils.py +0 -0
  698. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/loaders/image_loader.py +0 -0
  699. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/loaders/pdf_loader.py +0 -0
  700. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/loaders/ppt_loader.py +0 -0
  701. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/long_context_rag.py +0 -0
  702. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/qa_conversation_strategy.py +0 -0
  703. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/rag_config.py +0 -0
  704. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/rag_entry.py +0 -0
  705. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/relevant_utils.py +0 -0
  706. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/sdk/__init__.py +0 -0
  707. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/sdk/client.py +0 -0
  708. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/sdk/models.py +0 -0
  709. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/sdk/utils.py +0 -0
  710. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/searchable.py +0 -0
  711. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/stream_event/__init__.py +0 -0
  712. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/stream_event/event_writer.py +0 -0
  713. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/stream_event/types.py +0 -0
  714. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/terminal/__init__.py +0 -0
  715. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/terminal/args.py +0 -0
  716. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/terminal/bootstrap.py +0 -0
  717. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/terminal/command_handlers.py +0 -0
  718. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/terminal/formatters/__init__.py +0 -0
  719. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/terminal/formatters/base.py +0 -0
  720. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/terminal/formatters/json_format.py +0 -0
  721. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/terminal/formatters/stream_json.py +0 -0
  722. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/terminal/formatters/text.py +0 -0
  723. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/terminal/init.py +0 -0
  724. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/terminal/utils.py +0 -0
  725. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/test_agentic_rag.py +0 -0
  726. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/test_doc_filter.py +0 -0
  727. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/test_long_context_rag.py +0 -0
  728. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/test_token_limiter.py +0 -0
  729. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/token_checker.py +0 -0
  730. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/token_counter.py +0 -0
  731. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/token_limiter.py +0 -0
  732. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/token_limiter_utils.py +0 -0
  733. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/tools/__init__.py +0 -0
  734. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/tools/bochaai_example.py +0 -0
  735. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/tools/bochaai_sdk.py +0 -0
  736. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/tools/metaso_example.py +0 -0
  737. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/tools/metaso_sdk.py +0 -0
  738. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/tools/recall_tool.py +0 -0
  739. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/tools/run_integration_tests.py +0 -0
  740. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/tools/search_tool.py +0 -0
  741. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/tools/test_all_providers.py +0 -0
  742. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/tools/test_bochaai_integration.py +0 -0
  743. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/tools/test_final_integration.py +0 -0
  744. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/tools/test_metaso_integration.py +0 -0
  745. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/tools/test_metaso_real.py +0 -0
  746. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/tools/test_web_crawl_tool.py +0 -0
  747. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/tools/test_web_search_tool.py +0 -0
  748. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/tools/todo_read_tool.py +0 -0
  749. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/tools/todo_write_tool.py +0 -0
  750. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/tools/web_crawl_tool.py +0 -0
  751. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/tools/web_search_tool.py +0 -0
  752. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/tools/web_tools_example.py +0 -0
  753. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/types.py +0 -0
  754. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/utils.py +0 -0
  755. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/variable_holder.py +0 -0
  756. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rag/wildcard_sync.py +0 -0
  757. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/rags.py +0 -0
  758. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/regexproject/__init__.py +0 -0
  759. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/run_context.py +0 -0
  760. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/__init__.py +0 -0
  761. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/api.py +0 -0
  762. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/async_runner/__init__.py +0 -0
  763. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/async_runner/async_executor.py +0 -0
  764. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/async_runner/async_handler.py +0 -0
  765. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/async_runner/async_service.py +0 -0
  766. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/async_runner/markdown_processor.py +0 -0
  767. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/async_runner/task_completion_provider.py +0 -0
  768. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/async_runner/task_metadata.py +0 -0
  769. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/async_runner/tests/__init__.py +0 -0
  770. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/async_runner/tests/test_async_service.py +0 -0
  771. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/async_runner/worktree_manager.py +0 -0
  772. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/cli/__init__.py +0 -0
  773. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/cli/formatters.py +0 -0
  774. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/cli/handlers.py +0 -0
  775. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/cli/main.py +0 -0
  776. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/cli/options.py +0 -0
  777. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/constants.py +0 -0
  778. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/core/__init__.py +0 -0
  779. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/core/auto_coder_core.py +0 -0
  780. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/core/bridge.py +0 -0
  781. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/exceptions.py +0 -0
  782. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/formatters/__init__.py +0 -0
  783. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/formatters/input.py +0 -0
  784. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/formatters/output.py +0 -0
  785. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/formatters/stream.py +0 -0
  786. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/models/__init__.py +0 -0
  787. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/models/options.py +0 -0
  788. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/models/responses.py +0 -0
  789. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/utils/__init__.py +0 -0
  790. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/utils/formatters.py +0 -0
  791. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/utils/io_utils.py +0 -0
  792. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/sdk/utils/validators.py +0 -0
  793. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/shadows/__init__.py +0 -0
  794. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/shadows/shadow_manager.py +0 -0
  795. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/suffixproject/__init__.py +0 -0
  796. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal/__init__.py +0 -0
  797. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal/app.py +0 -0
  798. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal/args.py +0 -0
  799. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal/bootstrap.py +0 -0
  800. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal/command_processor.py +0 -0
  801. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal/command_registry.py +0 -0
  802. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal/help.py +0 -0
  803. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal/tasks/__init__.py +0 -0
  804. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal/tasks/background.py +0 -0
  805. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal/tasks/task_event.py +0 -0
  806. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal/ui/__init__.py +0 -0
  807. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal/ui/completer.py +0 -0
  808. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal/ui/keybindings.py +0 -0
  809. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal/ui/session.py +0 -0
  810. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal/ui/toolbar.py +0 -0
  811. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal/utils/__init__.py +0 -0
  812. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal/utils/errors.py +0 -0
  813. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal/utils/paths.py +0 -0
  814. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal/utils/shell.py +0 -0
  815. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal_core/__init__.py +0 -0
  816. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal_core/cloud_config.py +0 -0
  817. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal_core/command_registry.py +0 -0
  818. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal_core/execution_broker.py +0 -0
  819. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal_core/forward_input.py +0 -0
  820. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal_core/lifecycle.py +0 -0
  821. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal_core/status.py +0 -0
  822. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal_core/task_runtime.py +0 -0
  823. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal_core/tunnel_worker.py +0 -0
  824. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal_v3/__init__.py +0 -0
  825. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal_v3/app.py +0 -0
  826. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal_v3/handlers/__init__.py +0 -0
  827. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal_v3/handlers/command_handler.py +0 -0
  828. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal_v3/models/__init__.py +0 -0
  829. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal_v3/models/conversation_buffer.py +0 -0
  830. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal_v3/models/markdown_render.py +0 -0
  831. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal_v3/models/message.py +0 -0
  832. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal_v3/models/tool_display.py +0 -0
  833. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal_v3/ui/__init__.py +0 -0
  834. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal_v3/ui/keybindings.py +0 -0
  835. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal_v3/ui/layout.py +0 -0
  836. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/terminal_v3/ui/styles.py +0 -0
  837. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/tsproject/__init__.py +0 -0
  838. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/utils/__init__.py +0 -0
  839. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/utils/_markitdown.py +0 -0
  840. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/utils/auto_coder_utils/__init__.py +0 -0
  841. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/utils/auto_coder_utils/chat_stream_out.py +0 -0
  842. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/utils/auto_project_type.py +0 -0
  843. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/utils/chat_auto_coder_utils/__init__.py +0 -0
  844. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/utils/conversation_store.py +0 -0
  845. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/utils/llm_client_interceptors.py +0 -0
  846. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/utils/llms.py +0 -0
  847. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/utils/log_capture.py +0 -0
  848. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/utils/math_utils.py +0 -0
  849. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/utils/model_provider_selector.py +0 -0
  850. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/utils/multi_turn.py +0 -0
  851. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/utils/operate_config_api.py +0 -0
  852. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/utils/print_table.py +0 -0
  853. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/utils/project_structure.py +0 -0
  854. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/utils/queue_communicate.py +0 -0
  855. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/utils/request_event_queue.py +0 -0
  856. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/utils/request_queue.py +0 -0
  857. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/utils/rest.py +0 -0
  858. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/utils/stream_thinking.py +0 -0
  859. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/utils/thread_utils.py +0 -0
  860. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/utils/types.py +0 -0
  861. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/workflow_agents/__init__.py +0 -0
  862. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/workflow_agents/agent.py +0 -0
  863. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/workflow_agents/exceptions.py +0 -0
  864. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/workflow_agents/executor.py +0 -0
  865. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/workflow_agents/loader.py +0 -0
  866. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/workflow_agents/runner.py +0 -0
  867. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/workflow_agents/tests/__init__.py +0 -0
  868. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/workflow_agents/tests/test_loader.py +0 -0
  869. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/workflow_agents/tests/test_types.py +0 -0
  870. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/workflow_agents/tests/test_utils.py +0 -0
  871. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/workflow_agents/types.py +0 -0
  872. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/workflow_agents/utils.py +0 -0
  873. {auto_coder-3.0.44 → auto_coder-3.0.46}/src/autocoder/workflow_agents/workflow_manager.py +0 -0
  874. {auto_coder-3.0.44 → auto_coder-3.0.46}/tests/test_args_parser.py +0 -0
  875. {auto_coder-3.0.44 → auto_coder-3.0.46}/tests/test_command_consistency.py +0 -0
  876. {auto_coder-3.0.44 → auto_coder-3.0.46}/tests/test_conf_completions.py +0 -0
  877. {auto_coder-3.0.44 → auto_coder-3.0.46}/tests/test_conf_global_shorthand.py +0 -0
  878. {auto_coder-3.0.44 → auto_coder-3.0.46}/tests/test_plugin_manager.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: auto-coder
3
- Version: 3.0.44
3
+ Version: 3.0.46
4
4
  Summary: AutoCoder: AutoCoder
5
5
  Author: allwefantasy
6
6
  Author-email: allwefantasy <allwefantasy@gmail.com>
@@ -247,6 +247,7 @@ Auto-Coder (powered by Byzer-LLM)
247
247
  ---
248
248
 
249
249
  *Latest News* 🔥
250
+ - [2026/04-demo] Auto-Coder 教程视频录制演示
250
251
  - [2025/01] Release Auto-Coder 0.1.208
251
252
  - [2024/09] Release Auto-Coder 0.1.163
252
253
  - [2024/08] Release Auto-Coder 0.1.143
@@ -16,6 +16,7 @@ Auto-Coder (powered by Byzer-LLM)
16
16
  ---
17
17
 
18
18
  *Latest News* 🔥
19
+ - [2026/04-demo] Auto-Coder 教程视频录制演示
19
20
  - [2025/01] Release Auto-Coder 0.1.208
20
21
  - [2024/09] Release Auto-Coder 0.1.163
21
22
  - [2024/08] Release Auto-Coder 0.1.143
@@ -5,7 +5,7 @@ build-backend = "hatchling.build"
5
5
 
6
6
  [project]
7
7
  name = "auto-coder"
8
- version = "3.0.44"
8
+ version = "3.0.46"
9
9
  description = "AutoCoder: AutoCoder"
10
10
  authors = [
11
11
  {name = "allwefantasy", email = "allwefantasy@gmail.com"}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: auto-coder
3
- Version: 3.0.44
3
+ Version: 3.0.46
4
4
  Summary: AutoCoder: AutoCoder
5
5
  Author: allwefantasy
6
6
  Author-email: allwefantasy <allwefantasy@gmail.com>
@@ -247,6 +247,7 @@ Auto-Coder (powered by Byzer-LLM)
247
247
  ---
248
248
 
249
249
  *Latest News* 🔥
250
+ - [2026/04-demo] Auto-Coder 教程视频录制演示
250
251
  - [2025/01] Release Auto-Coder 0.1.208
251
252
  - [2024/09] Release Auto-Coder 0.1.163
252
253
  - [2024/08] Release Auto-Coder 0.1.143
@@ -805,9 +805,11 @@ src/autocoder/terminal/utils/errors.py
805
805
  src/autocoder/terminal/utils/paths.py
806
806
  src/autocoder/terminal/utils/shell.py
807
807
  src/autocoder/terminal_core/__init__.py
808
+ src/autocoder/terminal_core/cloud_block_command.py
808
809
  src/autocoder/terminal_core/cloud_bridge.py
809
810
  src/autocoder/terminal_core/cloud_command_dispatcher.py
810
811
  src/autocoder/terminal_core/cloud_config.py
812
+ src/autocoder/terminal_core/cloud_file_uploader.py
811
813
  src/autocoder/terminal_core/command_registry.py
812
814
  src/autocoder/terminal_core/execution_broker.py
813
815
  src/autocoder/terminal_core/forward_input.py
@@ -250,6 +250,20 @@ DEFAULT_MODELS = [
250
250
  "max_output_tokens": 128000,
251
251
  "context_window": 1000000,
252
252
  },
253
+ {
254
+ "name": "openrouter/claude-opus-4-7",
255
+ "description": "Claude Opus 4.7 via OpenRouter,Anthropic 最强编程模型,适合长流程 Agent 任务",
256
+ "model_name": "anthropic/claude-opus-4.7",
257
+ "model_type": "saas/openai",
258
+ "base_url": "https://openrouter.ai/api/v1",
259
+ "provider": "openrouter",
260
+ "api_key_path": "",
261
+ "is_reasoning": True,
262
+ "input_price": 36.0, # $5/百万tokens ≈ 36元
263
+ "output_price": 180.0, # $25/百万tokens ≈ 180元
264
+ "max_output_tokens": 128000,
265
+ "context_window": 1000000,
266
+ },
253
267
  {
254
268
  "name": "openrouter/openai/gpt-5",
255
269
  "description": "GPT-5 via OpenRouter,OpenAI 最新模型",
@@ -25,11 +25,15 @@ from autocoder.common.result_manager import ResultManager
25
25
  # 染绿/红,灰色小字显示 ``exit``。命令体输出保持原样(可能已含 ANSI 色),避免
26
26
  # 二次解析破坏。
27
27
  #
28
- # 读取 ``enable_rich_render`` 配置(默认 True),用户可 ``/conf enable_rich_render:false``
29
- # 关闭;环境变量 ``AUTOCODER_V3_MARKDOWN=0`` 也会关闭(与 markdown 渲染共用开关,
30
- # 因为它们本质都是"rich 美化"的一部分)
28
+ # 是否启用 Rich 美化由"消费端是否是 TTY/能渲染 ANSI"决定,通过 ``pretty`` 参数
29
+ # 由调用方显式指定:
30
+ # - TUI / 交互式 CLI → pretty=True(默认),产出 ANSI 色码
31
+ # - CloudBridge / Web / 日志文件 → pretty=False,只产出纯文本
32
+ # 另外保留 ``enable_rich_render`` 配置与 ``AUTOCODER_V3_MARKDOWN`` 环境变量作为
33
+ # TUI 侧的用户级总开关(pretty=True 时才生效);pretty=False 一律按纯文本处理,
34
+ # 不受全局配置影响,这样 CloudBridge 链路是确定的。
31
35
  def _is_rich_compact_header_enabled() -> bool:
32
- """shells.py 本身被 SDK/CLI 等多处复用,因此配置读取必须软失败。
36
+ """判断 TUI 侧用户是否把 Rich 关掉了。仅在 ``pretty=True`` 时才查询。
33
37
 
34
38
  - 环境变量优先,便于在不动配置的前提下排查问题
35
39
  - memory_manager 没初始化/读失败,一律按 True 处理
@@ -59,13 +63,27 @@ def _is_rich_compact_header_enabled() -> bool:
59
63
  return True
60
64
 
61
65
 
62
- def _print_compact_shell_header(user_command: str, return_code: int) -> None:
66
+ def _print_compact_shell_header(
67
+ user_command: str, return_code: int, pretty: bool = True
68
+ ) -> None:
63
69
  """输出 ``$ <cmd> exit <N>`` 形式的命令头。
64
70
 
65
- - rich 启用时:``$`` 深灰、命令名亮蓝加粗、``exit 0`` 绿色/非零红色
66
- - 关闭时:退回最早的 ``\\033[90m`` 手写 ANSI,保持向后兼容
71
+ Args:
72
+ user_command: 用户输入的原始命令
73
+ return_code: 进程退出码
74
+ pretty: 消费端是否是 TTY / 能渲染 ANSI。
75
+ - True(默认):TUI/交互式 CLI 场景,产出 Rich 彩色头
76
+ (用户配置关闭时退回朴素灰色 ANSI)
77
+ - False:CloudBridge/Web 等非 TTY 场景,产出纯文本,
78
+ 形如 ``$ <cmd> exit <N>``,不含任何转义序列
67
79
  """
80
+ if not pretty:
81
+ # 非 TTY 消费端:确定性纯文本,不读任何配置、不出任何 ANSI
82
+ print(f"$ {user_command} exit {return_code}")
83
+ return
84
+
68
85
  if not _is_rich_compact_header_enabled():
86
+ # TTY 消费端但用户关了 Rich:退回手写 ANSI(保持向后兼容)
69
87
  print(f"$ {user_command}\033[90m exit {return_code}\033[0m")
70
88
  return
71
89
 
@@ -99,6 +117,22 @@ def _print_compact_shell_header(user_command: str, return_code: int) -> None:
99
117
  print(f"$ {user_command}\033[90m exit {return_code}\033[0m")
100
118
 
101
119
 
120
+ # pretty=False 时注入给子进程的禁色环境变量。
121
+ # 绝大多数带 TTY 自检的 CLI(cursor-agent、git、pip、npm、cargo、uv、ripgrep、
122
+ # bat、ls、jq 等)都至少识别其中一个,从而在启动时就不产出 ANSI 色码,这样上游
123
+ # 无需再做 strip,性能和保真度都更好。
124
+ _NO_COLOR_ENV: dict[str, str] = {
125
+ "NO_COLOR": "1", # https://no-color.org/ 业界事实标准
126
+ "TERM": "dumb", # 让 readline / curses / rich 判定为非终端
127
+ "FORCE_COLOR": "0", # Node 生态(npm/pnpm/yarn/chalk)
128
+ "CLICOLOR": "0", # BSD ls / macOS ls
129
+ "CLICOLOR_FORCE": "0",
130
+ "PY_COLORS": "0", # pytest / rich 兜底
131
+ "ANSI_COLORS_DISABLED": "1",
132
+ "COLORTERM": "", # 清空防止覆盖 TERM=dumb 判断
133
+ }
134
+
135
+
102
136
  def get_terminal_name() -> str:
103
137
  """
104
138
  获取当前终端名称(自动适配 Windows/Linux/Mac)
@@ -463,6 +497,7 @@ def execute_shell_command(
463
497
  command: str,
464
498
  compact_output: bool = False,
465
499
  cancel_token: Optional[str] = None,
500
+ pretty: bool = True,
466
501
  ):
467
502
  """
468
503
  Execute a shell command with cross-platform encoding support and streaming output.
@@ -474,6 +509,13 @@ def execute_shell_command(
474
509
  no "Output streaming" banner). Used by terminal V3 ``!`` prefix.
475
510
  cancel_token: If provided, register an on_cancel callback to kill the
476
511
  subprocess when the token is cancelled.
512
+ pretty: 消费端是否能渲染 ANSI / 是否是 TTY。
513
+ - ``True``(默认):TUI、交互式 CLI 等场景,允许 Rich 输出彩色命令头,
514
+ 同时保留子进程原生输出(可能带 ANSI 色)
515
+ - ``False``:CloudBridge、Web、日志采集等非 TTY 场景,命令头降级为
516
+ 纯文本,并给子进程注入 ``NO_COLOR=1`` / ``TERM=dumb`` /
517
+ ``FORCE_COLOR=0`` 等环境变量,让绝大多数 CLI 工具(cursor-agent、
518
+ git、pip、npm 等)主动以纯文本输出,避免 ANSI 色码污染下游。
477
519
  """
478
520
  user_command = command
479
521
  console = Console()
@@ -548,6 +590,11 @@ set PYTHONIOENCODING=utf-8
548
590
  env["GIT_PAGER"] = "cat"
549
591
  env["GIT_TERMINAL_PROMPT"] = "0"
550
592
 
593
+ # 非 TTY 消费端:显式告知子进程禁用 ANSI 色码。这样 cursor-agent、git 等
594
+ # CLI 启动时就不会输出彩色,从源头避免污染 CloudBridge / Web 等下游。
595
+ if not pretty:
596
+ env.update(_NO_COLOR_ENV)
597
+
551
598
  process = subprocess.Popen(
552
599
  command,
553
600
  stdin=subprocess.DEVNULL,
@@ -594,7 +641,7 @@ set PYTHONIOENCODING=utf-8
594
641
  "return_code": return_code,
595
642
  },
596
643
  )
597
- _print_compact_shell_header(user_command, return_code)
644
+ _print_compact_shell_header(user_command, return_code, pretty=pretty)
598
645
  if merged:
599
646
  print(merged)
600
647
  return
@@ -704,7 +751,7 @@ set PYTHONIOENCODING=utf-8
704
751
  },
705
752
  )
706
753
  if compact_output:
707
- _print_compact_shell_header(user_command, 127)
754
+ _print_compact_shell_header(user_command, 127, pretty=pretty)
708
755
  print(f"Command not found: {user_command}")
709
756
  else:
710
757
  console.print(
@@ -721,7 +768,7 @@ set PYTHONIOENCODING=utf-8
721
768
  },
722
769
  )
723
770
  if compact_output:
724
- _print_compact_shell_header(user_command, 1)
771
+ _print_compact_shell_header(user_command, 1, pretty=pretty)
725
772
  print(str(e))
726
773
  else:
727
774
  console.print(
@@ -0,0 +1,86 @@
1
+ """
2
+ Block command parser and registry for `#[cmd] args` syntax.
3
+
4
+ This module provides the foundation for structured remote primitives
5
+ that the Dashboard can invoke on CLI instances. Each block command
6
+ is identified by `#[<identifier>]` followed by optional arguments.
7
+
8
+ Examples:
9
+ #[file_read] README.md
10
+ #[ls] src/
11
+ #[grep] pattern *.py
12
+ """
13
+
14
+ import re
15
+ from dataclasses import dataclass, field
16
+ from typing import Any, Callable, Dict, List, Optional, TYPE_CHECKING
17
+
18
+ if TYPE_CHECKING:
19
+ from autocoder.terminal_core.cloud_file_uploader import CloudFileUploader
20
+
21
+ BLOCK_COMMAND_RE = re.compile(
22
+ r"^#\[([A-Za-z_][A-Za-z0-9_]*)\](?:\s+(.*))?$", re.DOTALL
23
+ )
24
+
25
+
26
+ @dataclass
27
+ class ParsedBlockCommand:
28
+ cmd: str
29
+ args: str
30
+
31
+
32
+ def parse_block_command(prompt_text: str) -> Optional[ParsedBlockCommand]:
33
+ """Parse ``#[cmd] args`` from the start of *prompt_text*.
34
+
35
+ Returns ``None`` when the text does not match the block-command syntax.
36
+ """
37
+ text = prompt_text.strip()
38
+ m = BLOCK_COMMAND_RE.match(text)
39
+ if not m:
40
+ return None
41
+ return ParsedBlockCommand(cmd=m.group(1), args=(m.group(2) or "").strip())
42
+
43
+
44
+ @dataclass
45
+ class CommandOutcome:
46
+ """Unified result container for block-command handlers.
47
+
48
+ *text* – human-readable summary (written to ``resultText``)
49
+ *payload* – structured data (merged into ``resultPayloads``)
50
+ *files* – IDs of files already uploaded & registered via the uploader
51
+ """
52
+
53
+ text: str = ""
54
+ payload: Dict[str, Any] = field(default_factory=dict)
55
+ files: List[str] = field(default_factory=list)
56
+
57
+ @classmethod
58
+ def text_only(cls, s: str) -> "CommandOutcome":
59
+ return cls(text=s)
60
+
61
+
62
+ @dataclass
63
+ class CommandContext:
64
+ """Runtime context passed to block-command handlers."""
65
+
66
+ run_id: str
67
+ uploader: Optional["CloudFileUploader"] = None
68
+
69
+
70
+ BlockHandler = Callable[..., CommandOutcome]
71
+
72
+
73
+ class BlockCommandRegistry:
74
+ """Registry of ``#[cmd]`` handlers."""
75
+
76
+ def __init__(self) -> None:
77
+ self._handlers: Dict[str, BlockHandler] = {}
78
+
79
+ def register(self, cmd: str, handler: BlockHandler) -> None:
80
+ self._handlers[cmd] = handler
81
+
82
+ def has(self, cmd: str) -> bool:
83
+ return cmd in self._handlers
84
+
85
+ def get(self, cmd: str) -> Optional[BlockHandler]:
86
+ return self._handlers.get(cmd)
@@ -456,6 +456,7 @@ class CloudBridge:
456
456
  result_text: Optional[str] = None,
457
457
  error_text: Optional[str] = None,
458
458
  usage_details: Optional[List[Dict[str, Any]]] = None,
459
+ result_payloads: Optional[Dict[str, Any]] = None,
459
460
  ):
460
461
  body: Dict[str, Any] = {"status": status}
461
462
  if result_text is not None:
@@ -464,6 +465,8 @@ class CloudBridge:
464
465
  body["errorText"] = error_text
465
466
  if usage_details:
466
467
  body["usageDetails"] = usage_details
468
+ if result_payloads:
469
+ body["resultPayloads"] = result_payloads
467
470
  try:
468
471
  await asyncio.get_event_loop().run_in_executor(
469
472
  None,
@@ -685,17 +688,29 @@ class CloudBridge:
685
688
  self._run_cancel_tokens.pop(run.id, None)
686
689
 
687
690
  async def _process_command_run(self, run: PendingRun, cancel_token: Optional[str] = None):
688
- """处理斜杠命令类型的 run(如 /commit),在线程池中执行后回传结果。"""
691
+ """处理斜杠命令类型的 run(如 /commit、#[file_read]),在线程池中执行后回传结果。"""
689
692
  cancel_token = cancel_token or f"cloud-run-{run.id}"
690
693
  global_cancel.register_token(cancel_token)
691
694
  self._run_cancel_tokens[run.id] = cancel_token
692
695
 
693
696
  try:
697
+ from autocoder.terminal_core.cloud_block_command import CommandContext
698
+ from autocoder.terminal_core.cloud_file_uploader import CloudFileUploader
699
+
700
+ ctx = CommandContext(
701
+ run_id=run.id,
702
+ uploader=CloudFileUploader(
703
+ session=self._session,
704
+ base_url=self._config.base_url,
705
+ run_id=run.id,
706
+ ),
707
+ )
708
+
694
709
  loop = asyncio.get_event_loop()
695
710
  cmd_result = await loop.run_in_executor(
696
711
  None,
697
712
  lambda: self._command_dispatcher.dispatch(
698
- run.prompt_text, cancel_token=cancel_token
713
+ run.prompt_text, cancel_token=cancel_token, context=ctx
699
714
  ),
700
715
  )
701
716
  if global_cancel.is_requested(cancel_token):
@@ -705,8 +720,12 @@ class CloudBridge:
705
720
  run.id, "FAILED", error_text=cmd_result.error_text
706
721
  )
707
722
  else:
723
+ outcome = cmd_result.outcome
708
724
  await self._report_result(
709
- run.id, "COMPLETED", result_text=cmd_result.result_text or ""
725
+ run.id,
726
+ "COMPLETED",
727
+ result_text=cmd_result.result_text or "",
728
+ result_payloads=outcome.payload if outcome and outcome.payload else None,
710
729
  )
711
730
  except Exception as e:
712
731
  logger.error(f"CloudBridge command run {run.id} failed: {e}")
@@ -1,12 +1,12 @@
1
1
  """
2
2
  CloudCommandDispatcher - 云端命令分发器
3
3
 
4
- 可扩展的斜杠命令处理器,用于处理从云端下发的 /commit 等命令。
5
- 新增命令只需注册一个 handler 即可。
4
+ 可扩展的命令处理器,用于处理从云端下发的 /commit、!shell、$workflow
5
+ 以及 #[cmd] 块指令等命令。新增命令只需注册一个 handler 即可。
6
6
 
7
- 每个 handler 签名: (args: str) -> str
8
- - args: 命令后面的参数部分(已 strip)
9
- - 返回: 结果文本,回传给云端
7
+ handler 签名:
8
+ - 斜杠/前缀命令: (args: str, **kwargs) -> str
9
+ - 块指令: (args: str, *, cancel_token, context) -> CommandOutcome
10
10
  """
11
11
 
12
12
  import json
@@ -17,6 +17,13 @@ from typing import Any, Callable, Dict, Optional
17
17
 
18
18
  from loguru import logger
19
19
 
20
+ from autocoder.terminal_core.cloud_block_command import (
21
+ BlockCommandRegistry,
22
+ CommandContext,
23
+ CommandOutcome,
24
+ parse_block_command,
25
+ )
26
+
20
27
 
21
28
  CommandHandler = Callable[..., str]
22
29
 
@@ -26,6 +33,7 @@ class CommandResult:
26
33
  handled: bool
27
34
  result_text: str = ""
28
35
  error_text: str = ""
36
+ outcome: Optional[CommandOutcome] = None
29
37
 
30
38
 
31
39
  class CloudCommandDispatcher:
@@ -45,6 +53,7 @@ class CloudCommandDispatcher:
45
53
  def __init__(self):
46
54
  self._handlers: Dict[str, CommandHandler] = {}
47
55
  self._prefix_handlers: Dict[str, CommandHandler] = {}
56
+ self._block_registry = BlockCommandRegistry()
48
57
 
49
58
  def register(self, command: str, handler: CommandHandler) -> None:
50
59
  self._handlers[command] = handler
@@ -53,6 +62,10 @@ class CloudCommandDispatcher:
53
62
  """注册前缀命令(如 '!' 和 '$'),整条文本去掉前缀后作为 args。"""
54
63
  self._prefix_handlers[prefix] = handler
55
64
 
65
+ def register_block(self, cmd: str, handler: Any) -> None:
66
+ """注册 ``#[cmd]`` 块指令 handler。"""
67
+ self._block_registry.register(cmd, handler)
68
+
56
69
  def unregister(self, command: str) -> None:
57
70
  self._handlers.pop(command, None)
58
71
  self._prefix_handlers.pop(command, None)
@@ -63,6 +76,10 @@ class CloudCommandDispatcher:
63
76
 
64
77
  def is_command(self, prompt_text: str) -> bool:
65
78
  text = prompt_text.strip()
79
+ # Block commands: #[cmd] args
80
+ parsed = parse_block_command(text)
81
+ if parsed is not None and self._block_registry.has(parsed.cmd):
82
+ return True
66
83
  for prefix in self._prefix_handlers:
67
84
  if text.startswith(prefix):
68
85
  return True
@@ -72,17 +89,45 @@ class CloudCommandDispatcher:
72
89
  return cmd_word in self._handlers
73
90
 
74
91
  def dispatch(
75
- self, prompt_text: str, cancel_token: Optional[str] = None
92
+ self,
93
+ prompt_text: str,
94
+ cancel_token: Optional[str] = None,
95
+ context: Optional[CommandContext] = None,
76
96
  ) -> CommandResult:
77
97
  text = prompt_text.strip()
78
98
 
99
+ # Block commands take priority: #[cmd] args
100
+ parsed = parse_block_command(text)
101
+ if parsed is not None:
102
+ handler = self._block_registry.get(parsed.cmd)
103
+ if handler is not None:
104
+ logger.info(f"CloudCommandDispatcher: executing block #{parsed.cmd}")
105
+ try:
106
+ outcome = handler(
107
+ parsed.args,
108
+ cancel_token=cancel_token,
109
+ context=context,
110
+ )
111
+ return CommandResult(
112
+ handled=True,
113
+ result_text=outcome.text,
114
+ outcome=outcome,
115
+ )
116
+ except Exception as e:
117
+ logger.error(f"CloudCommandDispatcher: block #{parsed.cmd} failed: {e}")
118
+ return CommandResult(handled=True, error_text=str(e))
119
+
79
120
  for prefix, handler in self._prefix_handlers.items():
80
121
  if text.startswith(prefix):
81
122
  args = text[len(prefix):].strip()
82
123
  logger.info(f"CloudCommandDispatcher: executing prefix '{prefix}'")
83
124
  try:
84
125
  result_text = handler(args, cancel_token=cancel_token)
85
- return CommandResult(handled=True, result_text=result_text)
126
+ return CommandResult(
127
+ handled=True,
128
+ result_text=result_text,
129
+ outcome=CommandOutcome.text_only(result_text),
130
+ )
86
131
  except Exception as e:
87
132
  logger.error(f"CloudCommandDispatcher: prefix '{prefix}' failed: {e}")
88
133
  return CommandResult(handled=True, error_text=str(e))
@@ -101,7 +146,11 @@ class CloudCommandDispatcher:
101
146
  logger.info(f"CloudCommandDispatcher: executing {cmd_word}")
102
147
  try:
103
148
  result_text = handler(args)
104
- return CommandResult(handled=True, result_text=result_text)
149
+ return CommandResult(
150
+ handled=True,
151
+ result_text=result_text,
152
+ outcome=CommandOutcome.text_only(result_text),
153
+ )
105
154
  except Exception as e:
106
155
  logger.error(f"CloudCommandDispatcher: {cmd_word} failed: {e}")
107
156
  return CommandResult(handled=True, error_text=str(e))
@@ -114,6 +163,7 @@ class CloudCommandDispatcher:
114
163
  self.register("/tunnel", _handle_tunnel)
115
164
  self.register_prefix("!", _handle_shell)
116
165
  self.register_prefix("$", _handle_workflow_shortcut)
166
+ self.register_block("file_read", _handle_file_read)
117
167
 
118
168
 
119
169
  def _load_cloud_connection_config() -> tuple[str, str]:
@@ -961,3 +1011,44 @@ def _handle_tunnel(args: str) -> str:
961
1011
  " /tunnel stop <tunnel_id>\n"
962
1012
  " /tunnel list"
963
1013
  )
1014
+
1015
+
1016
+ # ── #[file_read] ─────────────────────────────────────────
1017
+
1018
+
1019
+ def _handle_file_read(
1020
+ args: str,
1021
+ *,
1022
+ cancel_token: Optional[str] = None,
1023
+ context: Optional[CommandContext] = None,
1024
+ ) -> CommandOutcome:
1025
+ """Handle ``#[file_read] <path>``: read a local file and upload it."""
1026
+ if not args:
1027
+ return CommandOutcome.text_only("Usage: #[file_read] <path>")
1028
+ if context is None or context.uploader is None:
1029
+ return CommandOutcome.text_only(
1030
+ "File read requires cloud context (not available in this environment)."
1031
+ )
1032
+ path = args.strip()
1033
+ if not os.path.exists(path):
1034
+ return CommandOutcome.text_only(f"File not found: {path}")
1035
+ if not os.path.isfile(path):
1036
+ return CommandOutcome.text_only(f"Not a file: {path}")
1037
+ try:
1038
+ uploaded = context.uploader.upload(path)
1039
+ return CommandOutcome(
1040
+ text=f"File uploaded: {uploaded.original_name} ({uploaded.size_bytes} bytes)",
1041
+ payload={
1042
+ "result_type": "file_read",
1043
+ "source_path": path,
1044
+ "uploaded": {
1045
+ "id": uploaded.id,
1046
+ "original_name": uploaded.original_name,
1047
+ "size_bytes": uploaded.size_bytes,
1048
+ "content_type": uploaded.content_type,
1049
+ },
1050
+ },
1051
+ files=[uploaded.id],
1052
+ )
1053
+ except Exception as e:
1054
+ return CommandOutcome.text_only(f"Upload failed: {e}")
@@ -0,0 +1,122 @@
1
+ """
2
+ CloudFileUploader – upload local files to auto-coder.chat cloud storage.
3
+
4
+ Three-step protocol per file:
5
+ 1. POST /api/client/runs/{id}/uploads/init → validate & get mode
6
+ 2. POST /api/client/runs/{id}/uploads/proxy → multipart upload (server proxies to blob)
7
+ 3. POST /api/client/runs/{id}/files → register LiteRunFile record(s)
8
+
9
+ Step 3 supports batch registration (multiple files in one call).
10
+ """
11
+
12
+ import mimetypes
13
+ import os
14
+ from dataclasses import dataclass
15
+ from typing import Any, Dict, List
16
+
17
+ from loguru import logger
18
+ from requests import Session
19
+
20
+ MAX_UPLOAD_SIZE = 10 * 1024 * 1024 # 10 MB – must match server-side limit
21
+
22
+
23
+ @dataclass
24
+ class UploadedFile:
25
+ id: str
26
+ original_name: str
27
+ size_bytes: int
28
+ content_type: str
29
+
30
+
31
+ class CloudFileUploader:
32
+ def __init__(self, session: Session, base_url: str, run_id: str) -> None:
33
+ self._session = session
34
+ self._base_url = base_url.rstrip("/")
35
+ self._run_id = run_id
36
+
37
+ def _url(self, path: str) -> str:
38
+ return f"{self._base_url}{path}"
39
+
40
+ # ------------------------------------------------------------------
41
+ # Public API
42
+ # ------------------------------------------------------------------
43
+
44
+ def upload(self, file_path: str) -> UploadedFile:
45
+ """Upload a single file and register it."""
46
+ return self.upload_batch([file_path])[0]
47
+
48
+ def upload_batch(self, file_paths: List[str]) -> List[UploadedFile]:
49
+ """Upload multiple files (init + proxy each), then batch-register."""
50
+ stored: List[Dict[str, Any]] = []
51
+ for p in file_paths:
52
+ meta = self._upload_one(p)
53
+ stored.append(meta)
54
+
55
+ resp = self._session.post(
56
+ self._url(f"/api/client/runs/{self._run_id}/files"),
57
+ json={"files": stored},
58
+ )
59
+ resp.raise_for_status()
60
+ data = resp.json().get("files", [])
61
+ return [
62
+ UploadedFile(
63
+ id=f["id"],
64
+ original_name=f["originalName"],
65
+ size_bytes=f["sizeBytes"],
66
+ content_type=f["contentType"],
67
+ )
68
+ for f in data
69
+ ]
70
+
71
+ # ------------------------------------------------------------------
72
+ # Internal
73
+ # ------------------------------------------------------------------
74
+
75
+ def _upload_one(self, path: str) -> Dict[str, Any]:
76
+ size = os.path.getsize(path)
77
+ if size > MAX_UPLOAD_SIZE:
78
+ raise ValueError(
79
+ f"File too large ({size} bytes, limit {MAX_UPLOAD_SIZE}): {path}"
80
+ )
81
+
82
+ filename = os.path.basename(path)
83
+ content_type, _ = mimetypes.guess_type(path)
84
+ content_type = content_type or "application/octet-stream"
85
+
86
+ logger.info(
87
+ f"CloudFileUploader: uploading {filename} "
88
+ f"({size} bytes, {content_type})"
89
+ )
90
+
91
+ # 1. init
92
+ init_resp = self._session.post(
93
+ self._url(f"/api/client/runs/{self._run_id}/uploads/init"),
94
+ json={
95
+ "filename": filename,
96
+ "contentType": content_type,
97
+ "sizeBytes": size,
98
+ },
99
+ )
100
+ init_resp.raise_for_status()
101
+
102
+ # 2. proxy upload (multipart)
103
+ # Session-level headers carry Content-Type: application/json. When
104
+ # we call session.post(..., files=...), `requests` MERGES call-level
105
+ # headers with session headers, so a Content-Type already set on the
106
+ # session is kept and `files=` never gets a chance to inject its
107
+ # own `multipart/form-data; boundary=...` header — the request goes
108
+ # out as application/json and the server rejects the multipart parse.
109
+ #
110
+ # The documented way to drop a session-level header for a single call
111
+ # is to pass the key with value `None` at call level:
112
+ # https://requests.readthedocs.io/en/master/user/advanced/
113
+ # ("Sometimes you'll want to omit session-level keys ... set that
114
+ # key's value to None in the method-level parameter.")
115
+ with open(path, "rb") as f:
116
+ proxy_resp = self._session.post(
117
+ self._url(f"/api/client/runs/{self._run_id}/uploads/proxy"),
118
+ files={"file": (filename, f, content_type)},
119
+ headers={"Content-Type": None},
120
+ )
121
+ proxy_resp.raise_for_status()
122
+ return proxy_resp.json()