auto-coder 0.1.375__tar.gz → 0.1.376__tar.gz

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

Potentially problematic release.


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

Files changed (354) hide show
  1. {auto_coder-0.1.375 → auto_coder-0.1.376}/PKG-INFO +1 -1
  2. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/auto_coder.egg-info/PKG-INFO +1 -1
  3. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/auto_coder.egg-info/SOURCES.txt +0 -1
  4. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/base_agent.py +9 -8
  5. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/auto_coder_rag.py +12 -0
  6. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/models.py +2 -2
  7. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/cache/local_duckdb_storage_cache.py +63 -33
  8. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/conversation_to_queries.py +37 -5
  9. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/long_context_rag.py +161 -41
  10. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/tools/recall_tool.py +2 -1
  11. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/tools/search_tool.py +2 -1
  12. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/types.py +36 -0
  13. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/_markitdown.py +59 -13
  14. auto_coder-0.1.376/src/autocoder/version.py +2 -0
  15. auto_coder-0.1.375/src/autocoder/rag/raw_rag.py +0 -96
  16. auto_coder-0.1.375/src/autocoder/version.py +0 -2
  17. {auto_coder-0.1.375 → auto_coder-0.1.376}/LICENSE +0 -0
  18. {auto_coder-0.1.375 → auto_coder-0.1.376}/README.md +0 -0
  19. {auto_coder-0.1.375 → auto_coder-0.1.376}/setup.cfg +0 -0
  20. {auto_coder-0.1.375 → auto_coder-0.1.376}/setup.py +0 -0
  21. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/auto_coder.egg-info/dependency_links.txt +0 -0
  22. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/auto_coder.egg-info/entry_points.txt +0 -0
  23. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/auto_coder.egg-info/requires.txt +0 -0
  24. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/auto_coder.egg-info/top_level.txt +0 -0
  25. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/__init__.py +0 -0
  26. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/__init__.py +0 -0
  27. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/agentic_filter.py +0 -0
  28. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/auto_demand_organizer.py +0 -0
  29. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/auto_filegroup.py +0 -0
  30. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/auto_guess_query.py +0 -0
  31. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/auto_learn.py +0 -0
  32. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/auto_learn_from_commit.py +0 -0
  33. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/auto_review_commit.py +0 -0
  34. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/auto_tool.py +0 -0
  35. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/__init__.py +0 -0
  36. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/agent_hub.py +0 -0
  37. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/agentic_lang.py +0 -0
  38. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/agentic_tool_display.py +0 -0
  39. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/default_tools.py +0 -0
  40. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/test_base_agent.py +0 -0
  41. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tool_registry.py +0 -0
  42. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/__init__.py +0 -0
  43. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/ask_followup_question_tool_resolver.py +0 -0
  44. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/attempt_completion_tool_resolver.py +0 -0
  45. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/base_tool_resolver.py +0 -0
  46. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/example_tool_resolver.py +0 -0
  47. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/execute_command_tool_resolver.py +0 -0
  48. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/list_files_tool_resolver.py +0 -0
  49. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/plan_mode_respond_tool_resolver.py +0 -0
  50. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/read_file_tool_resolver.py +0 -0
  51. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/replace_in_file_tool_resolver.py +0 -0
  52. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/search_files_tool_resolver.py +0 -0
  53. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/talk_to_group_tool_resolver.py +0 -0
  54. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/talk_to_tool_resolver.py +0 -0
  55. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/use_mcp_tool_resolver.py +0 -0
  56. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/write_to_file_tool_resolver.py +0 -0
  57. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/types.py +0 -0
  58. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/utils.py +0 -0
  59. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/coder.py +0 -0
  60. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/designer.py +0 -0
  61. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/planner.py +0 -0
  62. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/project_reader.py +0 -0
  63. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/auto_coder.py +0 -0
  64. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/auto_coder_runner.py +0 -0
  65. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/auto_coder_server.py +0 -0
  66. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/benchmark.py +0 -0
  67. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/chat/__init__.py +0 -0
  68. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/chat/conf_command.py +0 -0
  69. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/chat/models_command.py +0 -0
  70. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/chat/rules_command.py +0 -0
  71. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/chat_auto_coder.py +0 -0
  72. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/chat_auto_coder_lang.py +0 -0
  73. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/command_args.py +0 -0
  74. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/command_parser.py +0 -0
  75. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/commands/__init__.py +0 -0
  76. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/commands/auto_command.py +0 -0
  77. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/commands/auto_web.py +0 -0
  78. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/commands/tools.py +0 -0
  79. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/JupyterClient.py +0 -0
  80. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/ShellClient.py +0 -0
  81. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/__init__.py +0 -0
  82. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/action_yml_file_manager.py +0 -0
  83. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/anything2images.py +0 -0
  84. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/anything2img.py +0 -0
  85. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/audio.py +0 -0
  86. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/auto_coder_lang.py +0 -0
  87. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/auto_configure.py +0 -0
  88. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/buildin_tokenizer.py +0 -0
  89. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/chunk_validation.py +0 -0
  90. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/cleaner.py +0 -0
  91. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/code_auto_execute.py +0 -0
  92. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/code_auto_generate.py +0 -0
  93. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/code_auto_generate_diff.py +0 -0
  94. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/code_auto_generate_editblock.py +0 -0
  95. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/code_auto_generate_strict_diff.py +0 -0
  96. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/code_auto_merge.py +0 -0
  97. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/code_auto_merge_diff.py +0 -0
  98. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/code_auto_merge_editblock.py +0 -0
  99. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/code_auto_merge_strict_diff.py +0 -0
  100. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/code_modification_ranker.py +0 -0
  101. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/command_completer.py +0 -0
  102. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/command_completer_v2.py +0 -0
  103. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/command_file_manager/__init__.py +0 -0
  104. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/command_file_manager/examples.py +0 -0
  105. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/command_file_manager/manager.py +0 -0
  106. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/command_file_manager/models.py +0 -0
  107. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/command_file_manager/utils.py +0 -0
  108. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/command_generator.py +0 -0
  109. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/command_templates.py +0 -0
  110. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/computer_use.py +0 -0
  111. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/conf_import_export.py +0 -0
  112. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/conf_utils.py +0 -0
  113. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/conf_validator.py +0 -0
  114. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/const.py +0 -0
  115. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/context_pruner.py +0 -0
  116. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/conversation_pruner.py +0 -0
  117. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/conversations/__init__.py +0 -0
  118. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/conversations/compatibility.py +0 -0
  119. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/conversations/conversation_manager.py +0 -0
  120. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/conversations/example.py +0 -0
  121. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/directory_cache/__init__.py +0 -0
  122. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/directory_cache/cache.py +0 -0
  123. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/directory_cache/test_cache.py +0 -0
  124. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_checkpoint/__init__.py +0 -0
  125. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_checkpoint/backup.py +0 -0
  126. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_checkpoint/conversation_checkpoint.py +0 -0
  127. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_checkpoint/examples.py +0 -0
  128. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_checkpoint/manager.py +0 -0
  129. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_checkpoint/models.py +0 -0
  130. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_checkpoint/store.py +0 -0
  131. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_checkpoint/test_backup.py +0 -0
  132. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_checkpoint/test_manager.py +0 -0
  133. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_checkpoint/test_models.py +0 -0
  134. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_checkpoint/test_store.py +0 -0
  135. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_checkpoint/test_utils.py +0 -0
  136. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_checkpoint/utils.py +0 -0
  137. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_monitor/__init__.py +0 -0
  138. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_monitor/monitor.py +0 -0
  139. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/files.py +0 -0
  140. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/git_utils.py +0 -0
  141. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/global_cancel.py +0 -0
  142. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/ignorefiles/__init__.py +0 -0
  143. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/ignorefiles/ignore_file_utils.py +0 -0
  144. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/ignorefiles/test_ignore_file_utils.py +0 -0
  145. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/image_to_page.py +0 -0
  146. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/index_import_export.py +0 -0
  147. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/interpreter.py +0 -0
  148. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/mcp_hub.py +0 -0
  149. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/mcp_server.py +0 -0
  150. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/mcp_server_install.py +0 -0
  151. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/mcp_server_types.py +0 -0
  152. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/mcp_servers/__init__.py +0 -0
  153. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/mcp_servers/mcp_server_gpt4o_mini_search.py +0 -0
  154. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/mcp_servers/mcp_server_perplexity.py +0 -0
  155. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/mcp_tools.py +0 -0
  156. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/memory_manager.py +0 -0
  157. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/model_speed_tester.py +0 -0
  158. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/openai_content.py +0 -0
  159. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/printer.py +0 -0
  160. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/recall_validation.py +0 -0
  161. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/result_manager.py +0 -0
  162. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/rulefiles/__init__.py +0 -0
  163. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/rulefiles/autocoderrules_utils.py +0 -0
  164. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/run_cmd.py +0 -0
  165. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/save_formatted_log.py +0 -0
  166. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/screenshots.py +0 -0
  167. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/search.py +0 -0
  168. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/search_replace.py +0 -0
  169. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/shells.py +0 -0
  170. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/stats_panel.py +0 -0
  171. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/stream_out_type.py +0 -0
  172. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/sys_prompt.py +0 -0
  173. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/test_run_cmd.py +0 -0
  174. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/text.py +0 -0
  175. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/token_cost_caculate.py +0 -0
  176. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/types.py +0 -0
  177. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/utils_code_auto_generate.py +0 -0
  178. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/__init__.py +0 -0
  179. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/agent/__init__.py +0 -0
  180. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/agent/agentic_edit.py +0 -0
  181. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/agent/agentic_edit_tools/__init__.py +0 -0
  182. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/agent/agentic_edit_tools/ask_followup_question_tool_resolver.py +0 -0
  183. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/agent/agentic_edit_tools/attempt_completion_tool_resolver.py +0 -0
  184. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/agent/agentic_edit_tools/base_tool_resolver.py +0 -0
  185. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/agent/agentic_edit_tools/execute_command_tool_resolver.py +0 -0
  186. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/agent/agentic_edit_tools/list_code_definition_names_tool_resolver.py +0 -0
  187. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/agent/agentic_edit_tools/list_files_tool_resolver.py +0 -0
  188. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/agent/agentic_edit_tools/list_package_info_tool_resolver.py +0 -0
  189. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/agent/agentic_edit_tools/plan_mode_respond_tool_resolver.py +0 -0
  190. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/agent/agentic_edit_tools/read_file_tool_resolver.py +0 -0
  191. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/agent/agentic_edit_tools/replace_in_file_tool_resolver.py +0 -0
  192. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/agent/agentic_edit_tools/search_files_tool_resolver.py +0 -0
  193. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/agent/agentic_edit_tools/test_search_files_tool_resolver.py +0 -0
  194. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/agent/agentic_edit_tools/test_write_to_file_tool_resolver.py +0 -0
  195. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/agent/agentic_edit_tools/use_mcp_tool_resolver.py +0 -0
  196. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/agent/agentic_edit_tools/write_to_file_tool_resolver.py +0 -0
  197. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/agent/agentic_edit_types.py +0 -0
  198. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/agent/agentic_tool_display.py +0 -0
  199. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/code_agentic_editblock_manager.py +0 -0
  200. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/code_auto_generate.py +0 -0
  201. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/code_auto_generate_diff.py +0 -0
  202. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/code_auto_generate_editblock.py +0 -0
  203. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/code_auto_generate_strict_diff.py +0 -0
  204. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/code_auto_merge.py +0 -0
  205. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/code_auto_merge_diff.py +0 -0
  206. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/code_auto_merge_editblock.py +0 -0
  207. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/code_auto_merge_strict_diff.py +0 -0
  208. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/code_diff_manager.py +0 -0
  209. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/code_editblock_manager.py +0 -0
  210. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/code_manager.py +0 -0
  211. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/code_strict_diff_manager.py +0 -0
  212. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/compilers/__init__.py +0 -0
  213. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/compilers/base_compiler.py +0 -0
  214. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/compilers/compiler_config_api.py +0 -0
  215. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/compilers/compiler_config_manager.py +0 -0
  216. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/compilers/compiler_factory.py +0 -0
  217. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/compilers/java_compiler.py +0 -0
  218. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/compilers/models.py +0 -0
  219. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/compilers/normal_compiler.py +0 -0
  220. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/compilers/provided_compiler.py +0 -0
  221. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/compilers/python_compiler.py +0 -0
  222. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/compilers/reactjs_compiler.py +0 -0
  223. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/compilers/shadow_compiler.py +0 -0
  224. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/compilers/vue_compiler.py +0 -0
  225. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/data/byzerllm.md +0 -0
  226. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/data/tokenizer.json +0 -0
  227. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/db/__init__.py +0 -0
  228. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/db/store.py +0 -0
  229. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/dispacher/__init__.py +0 -0
  230. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/dispacher/actions/__init__.py +0 -0
  231. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/dispacher/actions/action.py +0 -0
  232. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/dispacher/actions/copilot.py +0 -0
  233. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/dispacher/actions/plugins/__init__.py +0 -0
  234. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/dispacher/actions/plugins/action_regex_project.py +0 -0
  235. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/events/__init__.py +0 -0
  236. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/events/event_content.py +0 -0
  237. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/events/event_manager.py +0 -0
  238. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/events/event_manager_singleton.py +0 -0
  239. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/events/event_store.py +0 -0
  240. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/events/event_types.py +0 -0
  241. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/helper/__init__.py +0 -0
  242. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/helper/project_creator.py +0 -0
  243. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/helper/rag_doc_creator.py +0 -0
  244. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/index/__init__.py +0 -0
  245. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/index/entry.py +0 -0
  246. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/index/filter/__init__.py +0 -0
  247. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/index/filter/normal_filter.py +0 -0
  248. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/index/filter/quick_filter.py +0 -0
  249. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/index/for_command.py +0 -0
  250. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/index/index.py +0 -0
  251. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/index/symbols_utils.py +0 -0
  252. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/index/types.py +0 -0
  253. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/lang.py +0 -0
  254. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/linters/__init__.py +0 -0
  255. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/linters/base_linter.py +0 -0
  256. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/linters/linter_factory.py +0 -0
  257. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/linters/models.py +0 -0
  258. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/linters/normal_linter.py +0 -0
  259. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/linters/python_linter.py +0 -0
  260. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/linters/reactjs_linter.py +0 -0
  261. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/linters/shadow_linter.py +0 -0
  262. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/linters/vue_linter.py +0 -0
  263. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/memory/__init__.py +0 -0
  264. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/memory/active_context_manager.py +0 -0
  265. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/memory/active_package.py +0 -0
  266. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/memory/async_processor.py +0 -0
  267. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/memory/directory_mapper.py +0 -0
  268. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/plugins/__init__.py +0 -0
  269. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/plugins/dynamic_completion_example.py +0 -0
  270. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/plugins/git_helper_plugin.py +0 -0
  271. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/plugins/sample_plugin.py +0 -0
  272. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/plugins/token_helper_plugin.py +0 -0
  273. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/plugins/utils.py +0 -0
  274. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/privacy/__init__.py +0 -0
  275. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/privacy/model_filter.py +0 -0
  276. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/pyproject/__init__.py +0 -0
  277. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/__init__.py +0 -0
  278. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/agentic_rag.py +0 -0
  279. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/api_server.py +0 -0
  280. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/cache/__init__.py +0 -0
  281. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/cache/base_cache.py +0 -0
  282. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/cache/byzer_storage_cache.py +0 -0
  283. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/cache/cache_result_merge.py +0 -0
  284. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/cache/failed_files_utils.py +0 -0
  285. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/cache/file_monitor_cache.py +0 -0
  286. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/cache/local_byzer_storage_cache.py +0 -0
  287. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/cache/rag_file_meta.py +0 -0
  288. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/cache/simple_cache.py +0 -0
  289. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/doc_filter.py +0 -0
  290. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/document_retriever.py +0 -0
  291. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/lang.py +0 -0
  292. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/llm_wrapper.py +0 -0
  293. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/loaders/__init__.py +0 -0
  294. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/loaders/docx_loader.py +0 -0
  295. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/loaders/excel_loader.py +0 -0
  296. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/loaders/filter_utils.py +0 -0
  297. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/loaders/image_loader.py +0 -0
  298. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/loaders/pdf_loader.py +0 -0
  299. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/loaders/ppt_loader.py +0 -0
  300. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/qa_conversation_strategy.py +0 -0
  301. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/rag_config.py +0 -0
  302. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/rag_entry.py +0 -0
  303. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/relevant_utils.py +0 -0
  304. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/searchable.py +0 -0
  305. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/stream_event/__init__.py +0 -0
  306. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/stream_event/event_writer.py +0 -0
  307. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/stream_event/types.py +0 -0
  308. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/test_doc_filter.py +0 -0
  309. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/test_long_context_rag.py +0 -0
  310. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/test_token_limiter.py +0 -0
  311. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/token_checker.py +0 -0
  312. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/token_counter.py +0 -0
  313. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/token_limiter.py +0 -0
  314. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/token_limiter_utils.py +0 -0
  315. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/tools/__init__.py +0 -0
  316. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/utils.py +0 -0
  317. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/variable_holder.py +0 -0
  318. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/regexproject/__init__.py +0 -0
  319. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/run_context.py +0 -0
  320. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/shadows/__init__.py +0 -0
  321. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/shadows/shadow_manager.py +0 -0
  322. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/suffixproject/__init__.py +0 -0
  323. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/tsproject/__init__.py +0 -0
  324. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/__init__.py +0 -0
  325. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/auto_coder_utils/__init__.py +0 -0
  326. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/auto_coder_utils/chat_stream_out.py +0 -0
  327. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/auto_project_type.py +0 -0
  328. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/chat_auto_coder_utils/__init__.py +0 -0
  329. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/conversation_store.py +0 -0
  330. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/llm_client_interceptors.py +0 -0
  331. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/llms.py +0 -0
  332. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/log_capture.py +0 -0
  333. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/model_provider_selector.py +0 -0
  334. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/multi_turn.py +0 -0
  335. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/operate_config_api.py +0 -0
  336. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/print_table.py +0 -0
  337. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/project_structure.py +0 -0
  338. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/queue_communicate.py +0 -0
  339. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/request_event_queue.py +0 -0
  340. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/request_queue.py +0 -0
  341. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/rest.py +0 -0
  342. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/stream_thinking.py +0 -0
  343. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/thread_utils.py +0 -0
  344. {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/types.py +0 -0
  345. {auto_coder-0.1.375 → auto_coder-0.1.376}/tests/test_action_regex_project.py +0 -0
  346. {auto_coder-0.1.375 → auto_coder-0.1.376}/tests/test_action_yml_file_manager.py +0 -0
  347. {auto_coder-0.1.375 → auto_coder-0.1.376}/tests/test_chat_auto_coder.py +0 -0
  348. {auto_coder-0.1.375 → auto_coder-0.1.376}/tests/test_code_auto_merge_editblock.py +0 -0
  349. {auto_coder-0.1.375 → auto_coder-0.1.376}/tests/test_command_completer.py +0 -0
  350. {auto_coder-0.1.375 → auto_coder-0.1.376}/tests/test_planner.py +0 -0
  351. {auto_coder-0.1.375 → auto_coder-0.1.376}/tests/test_plugins.py +0 -0
  352. {auto_coder-0.1.375 → auto_coder-0.1.376}/tests/test_privacy.py +0 -0
  353. {auto_coder-0.1.375 → auto_coder-0.1.376}/tests/test_queue_communicate.py +0 -0
  354. {auto_coder-0.1.375 → auto_coder-0.1.376}/tests/test_symbols_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: auto-coder
3
- Version: 0.1.375
3
+ Version: 0.1.376
4
4
  Summary: AutoCoder: AutoCoder
5
5
  Author: allwefantasy
6
6
  Classifier: Programming Language :: Python :: 3.10
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: auto-coder
3
- Version: 0.1.375
3
+ Version: 0.1.376
4
4
  Summary: AutoCoder: AutoCoder
5
5
  Author: allwefantasy
6
6
  Classifier: Programming Language :: Python :: 3.10
@@ -276,7 +276,6 @@ src/autocoder/rag/long_context_rag.py
276
276
  src/autocoder/rag/qa_conversation_strategy.py
277
277
  src/autocoder/rag/rag_config.py
278
278
  src/autocoder/rag/rag_entry.py
279
- src/autocoder/rag/raw_rag.py
280
279
  src/autocoder/rag/relevant_utils.py
281
280
  src/autocoder/rag/searchable.py
282
281
  src/autocoder/rag/test_doc_filter.py
@@ -511,15 +511,16 @@ class BaseAgent(ABC):
511
511
  {%endif%}
512
512
 
513
513
  # Tool Use Examples
514
- {%- set example_count = 0 -%}
515
- {%- for tool_tag, example in tool_examples.items() -%}
516
- {%- if example -%}
517
- {%- set example_count = example_count + 1 -%}
514
+ {% set example_count = 0 %}
515
+ {% for tool_tag, example in tool_examples.items() %}
516
+ {% if example %}
517
+ {% set example_count = example_count + 1 %}
518
518
  ## Example {{ example_count }}: {{ example.title }}
519
519
  {{ example.body }}
520
- {%- endif -%}
521
- {%- endfor -%}
520
+ {% endif %}
521
+ {% endfor %}
522
522
 
523
+
523
524
  # Tool Use Guidelines
524
525
 
525
526
  1. In <thinking> tags, assess what information you already have and what information you need to proceed with the task.
@@ -532,9 +533,9 @@ class BaseAgent(ABC):
532
533
  - New terminal output in reaction to the changes, which you may need to consider or act upon.
533
534
  - Any other relevant feedback or information related to the tool use.
534
535
  6. ALWAYS wait for user confirmation after each tool use before proceeding. Never assume the success of a tool use without explicit confirmation of the result from the user.
535
- {%- for tool_name, guideline in tool_guidelines.items() -%}
536
+ {% for tool_name, guideline in tool_guidelines.items() %}
536
537
  {{ loop.index + 6 }}. **{{ tool_name }}**: {{ guideline }}
537
- {%- endfor -%}
538
+ {% endfor %}
538
539
 
539
540
  It is crucial to proceed step-by-step, waiting for the user's message after each tool use before moving forward with the task. This approach allows you to:
540
541
  1. Confirm the success of each step before proceeding.
@@ -34,6 +34,7 @@ from autocoder.rag.utils import process_file_local
34
34
  import pkg_resources
35
35
  from autocoder.rag.token_counter import TokenCounter
36
36
  from autocoder.rag.types import RAGServiceInfo
37
+ from autocoder.version import __version__
37
38
 
38
39
  if platform.system() == "Windows":
39
40
  from colorama import init
@@ -169,6 +170,17 @@ def initialize_system(args):
169
170
 
170
171
 
171
172
  def main(input_args: Optional[List[str]] = None):
173
+ print(
174
+ f"""
175
+ \033[1;32m
176
+ _ _ __ __ _ _ _ _____ _____ _______ ____ _ ____
177
+ | | | | | \/ | | \ | | / \|_ _|_ _\ \ / / ____| | _ \ / \ / ___|
178
+ | | | | | |\/| |_____| \| | / _ \ | | | | \ \ / /| _| | |_) | / _ \| | _
179
+ | |___| |___| | | |_____| |\ |/ ___ \| | | | \ V / | |___ | _ < / ___ \ |_| |
180
+ |_____|_____|_| |_| |_| \_/_/ \_\_| |___| \_/ |_____| |_| \_\/_/ \_\____|
181
+ v{__version__}
182
+ \033[0m"""
183
+ )
172
184
 
173
185
  try:
174
186
  tokenizer_path = pkg_resources.resource_filename(
@@ -165,8 +165,8 @@ def load_models() -> List[Dict]:
165
165
  if model.get("api_key_path",""):
166
166
  api_key_file = os.path.join(api_key_dir, model["api_key_path"])
167
167
  if os.path.exists(api_key_file):
168
- with open(api_key_file, "r",encoding="utf-8") as f:
169
- model["api_key"] = f.read()
168
+ with open(api_key_file, "r", encoding="utf-8") as f:
169
+ model["api_key"] = f.read().strip()
170
170
  return target_models
171
171
 
172
172
  def save_models(models: List[Dict]) -> None:
@@ -10,7 +10,6 @@ from concurrent.futures import ThreadPoolExecutor, as_completed
10
10
  from typing import List, Dict, Any, Optional, Tuple, Union
11
11
  import numpy as np
12
12
  from loguru import logger
13
- from typing import Union
14
13
  from byzerllm import SimpleByzerLLM, ByzerLLM
15
14
  from autocoder.utils.llms import get_llm_names
16
15
 
@@ -31,10 +30,12 @@ from autocoder.rag.cache.base_cache import (
31
30
  FileInfo,
32
31
  CacheItem,
33
32
  )
34
- from autocoder.rag.utils import process_file_in_multi_process, process_file_local
33
+ from autocoder.rag.utils import (
34
+ process_file_in_multi_process,
35
+ process_file_local,
36
+ )
35
37
  from autocoder.rag.variable_holder import VariableHolder
36
- from byzerllm import SimpleByzerLLM, ByzerLLM
37
- from .failed_files_utils import save_failed_files, load_failed_files
38
+ from .failed_files_utils import save_failed_files
38
39
 
39
40
  if platform.system() != "Windows":
40
41
  import fcntl
@@ -66,7 +67,8 @@ class DuckDBLocalContext:
66
67
  def __enter__(self) -> "duckdb.DuckDBPyConnection":
67
68
  if not os.path.exists(os.path.dirname(self.database_path)):
68
69
  raise ValueError(
69
- f"Directory {os.path.dirname(self.database_path)} does not exist."
70
+ f"Directory {os.path.dirname(self.database_path)} "
71
+ f"does not exist."
70
72
  )
71
73
 
72
74
  self._conn = duckdb.connect(self.database_path)
@@ -97,10 +99,12 @@ class LocalDuckdbStorage:
97
99
  self.persist_dir = persist_dir
98
100
  self.cache_dir = os.path.join(self.persist_dir, ".cache")
99
101
  self.args = args
100
- logger.info(f"正在启动 DuckDBVectorStore.")
102
+ logger.info("正在启动 DuckDBVectorStore.")
101
103
 
102
104
  if self.database_name != ":memory:":
103
- self.database_path = os.path.join(self.cache_dir, self.database_name)
105
+ self.database_path = os.path.join(
106
+ self.cache_dir, self.database_name
107
+ )
104
108
 
105
109
  if self.database_name == ":memory:":
106
110
  self._conn = duckdb.connect(self.database_name)
@@ -114,7 +118,8 @@ class LocalDuckdbStorage:
114
118
  self._conn = None
115
119
  logger.info(
116
120
  f"DuckDBVectorStore 初始化完成, 存储目录: {self.cache_dir}, "
117
- f"数据库名称: {self.database_name}, 数据表名称: {self.table_name}"
121
+ f"数据库名称: {self.database_name}, "
122
+ f"数据表名称: {self.table_name}"
118
123
  )
119
124
 
120
125
  @classmethod
@@ -167,15 +172,17 @@ class LocalDuckdbStorage:
167
172
  retry_count += 1
168
173
  if retry_count >= max_retries:
169
174
  logger.error(
170
- f"Failed to get embedding after {max_retries} attempts: {str(e)}"
175
+ f"Failed to get embedding after {max_retries} "
176
+ f"attempts: {str(e)}"
171
177
  )
172
178
  raise
173
179
 
174
180
  # Sleep between 1-5 seconds before retrying
175
181
  sleep_time = 1 + (retry_count * 1.5)
176
182
  logger.warning(
177
- f"Embedding API call failed (attempt {retry_count}/{max_retries}). "
178
- f"Error: {str(e)}. Retrying in {sleep_time:.1f} seconds..."
183
+ f"Embedding API call failed (attempt {retry_count}/"
184
+ f"{max_retries}). Error: {str(e)}. Retrying in "
185
+ f"{sleep_time:.1f} seconds..."
179
186
  )
180
187
  time.sleep(sleep_time)
181
188
 
@@ -244,7 +251,9 @@ class LocalDuckdbStorage:
244
251
 
245
252
  if not context_chunk["raw_content"]:
246
253
  context_chunk["raw_content"] = "empty"
247
- context_chunk["raw_content"] = context_chunk["raw_content"][: self.args.rag_emb_text_size]
254
+ context_chunk["raw_content"] = context_chunk["raw_content"][
255
+ : self.args.rag_emb_text_size
256
+ ]
248
257
 
249
258
  return (
250
259
  context_chunk["_id"],
@@ -343,11 +352,14 @@ class LocalDuckDBStorageCache(BaseCacheManager):
343
352
  )
344
353
  self.queue = []
345
354
  self.chunk_size = 1000
346
- self.max_output_tokens = extra_params.hybrid_index_max_output_tokens
355
+ self.max_output_tokens = (
356
+ extra_params.hybrid_index_max_output_tokens
357
+ )
347
358
 
348
359
  # 设置缓存文件路径
349
360
  self.cache_dir = os.path.join(self.path, ".cache")
350
- self.cache_file = os.path.join(self.cache_dir, "duckdb_storage_speedup.jsonl")
361
+ self.cache_file = os.path.join(self.cache_dir,
362
+ "duckdb_storage_speedup.jsonl")
351
363
  self.cache: Dict[str, CacheItem] = {}
352
364
  # 创建缓存目录
353
365
  if not os.path.exists(self.cache_dir):
@@ -356,7 +368,9 @@ class LocalDuckDBStorageCache(BaseCacheManager):
356
368
  # failed files support
357
369
  from .failed_files_utils import load_failed_files
358
370
 
359
- self.failed_files_path = os.path.join(self.cache_dir, "failed_files.json")
371
+ self.failed_files_path = os.path.join(
372
+ self.cache_dir, "failed_files.json"
373
+ )
360
374
  self.failed_files = load_failed_files(self.failed_files_path)
361
375
 
362
376
  self.lock = threading.Lock()
@@ -406,7 +420,8 @@ class LocalDuckDBStorageCache(BaseCacheManager):
406
420
  continue
407
421
  return cache
408
422
  except Exception as e:
409
- logger.error(f"Error loading cache file: {str(e)}")
423
+ logger.warning(f"Error loading cache file: {str(e)}")
424
+ logger.exception(e)
410
425
  return {}
411
426
  return {}
412
427
 
@@ -421,7 +436,8 @@ class LocalDuckDBStorageCache(BaseCacheManager):
421
436
  json.dump(cache_item.model_dump(), f, ensure_ascii=False)
422
437
  f.write("\n")
423
438
  except IOError as e:
424
- logger.error(f"Error writing cache file: {str(e)}")
439
+ logger.warning(f"Error writing cache file: {str(e)}")
440
+ logger.exception(e)
425
441
  else:
426
442
  lock_file = cache_file + ".lock"
427
443
  with open(lock_file, "w", encoding="utf-8") as lockf:
@@ -510,11 +526,12 @@ class LocalDuckDBStorageCache(BaseCacheManager):
510
526
  self.write_cache()
511
527
 
512
528
  if items:
513
- logger.info("[BUILD CACHE] Clearing existing cache from DuckDB Storage")
529
+ logger.info("[BUILD CACHE] Clearing DuckDB Storage cache")
514
530
  self.storage.truncate_table()
531
+ logger.info(f"[BUILD CACHE] Preparing to write to DuckDB Storage.")
515
532
  logger.info(
516
- f"[BUILD CACHE] Preparing to write to DuckDB Storage, "
517
- f"total chunks: {len(items)}, total files: {len(files_to_process)}"
533
+ f"[BUILD CACHE] Total chunks: {len(items)}, "
534
+ f"Total files: {len(files_to_process)}"
518
535
  )
519
536
 
520
537
  # Use a fixed optimal batch size instead of dividing by worker count
@@ -526,9 +543,10 @@ class LocalDuckDBStorageCache(BaseCacheManager):
526
543
  total_batches = len(item_batches)
527
544
  completed_batches = 0
528
545
 
546
+ logger.info(f"[BUILD CACHE] Writing to DuckDB Storage.")
529
547
  logger.info(
530
- f"[BUILD CACHE] Starting to write to DuckDB Storage using {batch_size} items per batch, "
531
- f"total batches: {total_batches}"
548
+ f"[BUILD CACHE] Batch size: {batch_size}, "
549
+ f"Total batches: {total_batches}"
532
550
  )
533
551
  start_time = time.time()
534
552
 
@@ -569,18 +587,26 @@ class LocalDuckDBStorageCache(BaseCacheManager):
569
587
  or (completed_batches == total_batches)
570
588
  or (completed_batches % max(1, total_batches // 10) == 0)
571
589
  ):
590
+ progress_percent = (
591
+ completed_batches / total_batches * 100
592
+ if total_batches > 0
593
+ else 0
594
+ )
572
595
  logger.info(
573
- f"[BUILD CACHE] Progress: {completed_batches}/{total_batches} batches completed "
574
- f"({(completed_batches / total_batches * 100):.1f}%) "
575
- f"Estimated time remaining: {remaining:.1f}s"
596
+ f"[BUILD CACHE] Progress: {completed_batches}/"
597
+ f"{total_batches} ({progress_percent:.1f}%). "
598
+ f"ETA: {remaining:.1f}s"
576
599
  )
577
600
  except Exception as e:
578
601
  logger.error(f"[BUILD CACHE] Error saving batch: {str(e)}")
579
602
  # Add more detailed error information
603
+ batch_len_info = (
604
+ len(batch) if "batch" in locals() else "unknown"
605
+ )
580
606
  logger.error(
581
- f"[BUILD CACHE] Error details: batch size: "
582
- f"{len(batch) if 'batch' in locals() else 'unknown'}"
607
+ f"[BUILD CACHE] Error details: batch size: {batch_len_info}"
583
608
  )
609
+ logger.exception(e)
584
610
 
585
611
  total_time = time.time() - start_time
586
612
  logger.info(
@@ -622,6 +648,7 @@ class LocalDuckDBStorageCache(BaseCacheManager):
622
648
  time.sleep(self.extra_params.anti_quota_limit)
623
649
  except Exception as err:
624
650
  logger.error(f"Error in saving chunk: {str(err)}")
651
+ logger.exception(err)
625
652
 
626
653
  def process_queue(self):
627
654
  while self.queue:
@@ -671,7 +698,8 @@ class LocalDuckDBStorageCache(BaseCacheManager):
671
698
  self.failed_files.add(file_info.file_path)
672
699
  save_failed_files(self.failed_files_path, self.failed_files)
673
700
  except Exception as e:
674
- logger.error(f"Error in process_queue: {e}")
701
+ logger.error(f"Error in process_queue: {str(e)}")
702
+ logger.exception(e)
675
703
  self.failed_files.add(file_info.file_path)
676
704
  save_failed_files(self.failed_files_path, self.failed_files)
677
705
 
@@ -816,17 +844,18 @@ class LocalDuckDBStorageCache(BaseCacheManager):
816
844
  for doc in cached_data.content:
817
845
  if total_tokens + doc["tokens"] > self.max_output_tokens:
818
846
  logger.info(
819
- f"当前检索已超出用户设置 Hybrid Index Max Tokens:{self.max_output_tokens},"
820
- f"累计tokens: {total_tokens}, "
821
- f"经过向量搜索共检索出 {len(result.keys())} 个文档, 共 {len(self.cache.keys())} 个文档"
847
+ f"当前检索已超出用户设置 Hybrid Index Max Tokens:"
848
+ f"{self.max_output_tokens},累计tokens: {total_tokens}, "
849
+ f"经过向量搜索共检索出 {len(result.keys())} 个文档, "
850
+ f"共 {len(self.cache.keys())} 个文档"
822
851
  )
823
852
  return result
824
853
  total_tokens += doc["tokens"]
825
854
  result[file_path] = cached_data.model_dump()
826
855
  logger.info(
827
856
  f"用户Hybrid Index Max Tokens设置为:{self.max_output_tokens},"
828
- f"累计tokens: {total_tokens}, "
829
- f"经过向量搜索共检索出 {len(result.keys())} 个文档, 共 {len(self.cache.keys())} 个文档"
857
+ f"累计tokens: {total_tokens}, 经过向量搜索共检索出 "
858
+ f"{len(result.keys())} 个文档, 共 {len(self.cache.keys())} 个文档"
830
859
  )
831
860
  return result
832
861
 
@@ -904,6 +933,7 @@ class LocalDuckDBStorageCache(BaseCacheManager):
904
933
  query_results.append((query, query_result))
905
934
  except Exception as e:
906
935
  logger.error(f"处理查询 '{query}' 时出错: {str(e)}")
936
+ logger.exception(e)
907
937
 
908
938
  logger.info(f"所有查询共返回 {sum(len(r) for _, r in query_results)} 条记录")
909
939
 
@@ -2,7 +2,9 @@ from typing import List, Dict, Any, Optional, Union
2
2
  import logging
3
3
  import byzerllm
4
4
  from pydantic import BaseModel
5
+ from autocoder.rag.types import RAGStat
5
6
  from autocoder.common import AutoCoderArgs
7
+ from byzerllm import MetaHolder
6
8
 
7
9
  logger = logging.getLogger(__name__)
8
10
 
@@ -86,7 +88,7 @@ class ConversationToQueries:
86
88
  ```
87
89
  """
88
90
 
89
- def extract_queries(self, conversations: List[Dict[str, Any]], max_queries: int = 3) -> List[SearchQuery]:
91
+ def extract_queries(self, conversations: List[Dict[str, Any]], max_queries: int = 3,rag_stat:Optional[RAGStat] = None) -> List[SearchQuery]:
90
92
  """
91
93
  从对话历史中提取搜索查询。
92
94
 
@@ -99,10 +101,39 @@ class ConversationToQueries:
99
101
  """
100
102
  try:
101
103
  # 使用 prompt 函数生成搜索查询
102
- queries = self.generate_search_queries.with_llm(self.llm).with_return_type(SearchQuery).run(
104
+ model_name = self.llm.default_model_name
105
+ meta_holder = MetaHolder()
106
+ queries = self.generate_search_queries.with_llm(self.llm).with_return_type(SearchQuery).with_meta(
107
+ meta_holder).run(
103
108
  conversations=conversations,
104
109
  max_queries=max_queries
105
- )
110
+ )
111
+
112
+ # 如果有元数据且有 rag_stat,则记录模型使用情况
113
+ if meta_holder.get_meta() and rag_stat:
114
+ meta_dict = meta_holder.get_meta()
115
+ input_tokens_count = meta_dict.get("input_tokens_count", 0)
116
+ generated_tokens_count = meta_dict.get("generated_tokens_count", 0)
117
+
118
+ # 检查模型是否已存在于 other_stats 中
119
+ found = False
120
+ for other_stat in rag_stat.other_stats:
121
+ if other_stat.model_name == model_name:
122
+ # 模型已存在,累加统计数据
123
+ other_stat.total_input_tokens += input_tokens_count
124
+ other_stat.total_generated_tokens += generated_tokens_count
125
+ found = True
126
+ break
127
+
128
+ # 如果模型不存在,添加新的 OtherStat
129
+ if not found and (input_tokens_count > 0 or generated_tokens_count > 0):
130
+ from autocoder.rag.types import OtherStat
131
+ new_stat = OtherStat(
132
+ total_input_tokens=input_tokens_count,
133
+ total_generated_tokens=generated_tokens_count,
134
+ model_name=model_name
135
+ )
136
+ rag_stat.other_stats.append(new_stat)
106
137
 
107
138
  # 按重要性排序
108
139
  queries.sort(key=lambda x: x.importance, reverse=True)
@@ -116,7 +147,8 @@ def extract_search_queries(
116
147
  conversations: List[Dict[str, Any]],
117
148
  args:AutoCoderArgs,
118
149
  llm: Union[byzerllm.ByzerLLM, byzerllm.SimpleByzerLLM],
119
- max_queries: int = 3,
150
+ max_queries: int = 3,
151
+ rag_stat:Optional[RAGStat] = None
120
152
  ) -> List[SearchQuery]:
121
153
  """
122
154
  从对话历史中提取搜索查询的便捷函数。
@@ -133,7 +165,7 @@ def extract_search_queries(
133
165
  return []
134
166
  try:
135
167
  extractor = ConversationToQueries(llm)
136
- return extractor.extract_queries(conversations, max_queries)
168
+ return extractor.extract_queries(conversations, max_queries,rag_stat)
137
169
  except Exception as e:
138
170
  logger.error(f"Error extracting search queries from conversation: {str(e)}")
139
171
  return []