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.
- {auto_coder-0.1.375 → auto_coder-0.1.376}/PKG-INFO +1 -1
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/auto_coder.egg-info/PKG-INFO +1 -1
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/auto_coder.egg-info/SOURCES.txt +0 -1
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/base_agent.py +9 -8
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/auto_coder_rag.py +12 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/models.py +2 -2
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/cache/local_duckdb_storage_cache.py +63 -33
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/conversation_to_queries.py +37 -5
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/long_context_rag.py +161 -41
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/tools/recall_tool.py +2 -1
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/tools/search_tool.py +2 -1
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/types.py +36 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/_markitdown.py +59 -13
- auto_coder-0.1.376/src/autocoder/version.py +2 -0
- auto_coder-0.1.375/src/autocoder/rag/raw_rag.py +0 -96
- auto_coder-0.1.375/src/autocoder/version.py +0 -2
- {auto_coder-0.1.375 → auto_coder-0.1.376}/LICENSE +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/README.md +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/setup.cfg +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/setup.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/auto_coder.egg-info/dependency_links.txt +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/auto_coder.egg-info/entry_points.txt +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/auto_coder.egg-info/requires.txt +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/auto_coder.egg-info/top_level.txt +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/agentic_filter.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/auto_demand_organizer.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/auto_filegroup.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/auto_guess_query.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/auto_learn.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/auto_learn_from_commit.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/auto_review_commit.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/auto_tool.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/agent_hub.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/agentic_lang.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/agentic_tool_display.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/default_tools.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/test_base_agent.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tool_registry.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/ask_followup_question_tool_resolver.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/attempt_completion_tool_resolver.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/base_tool_resolver.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/example_tool_resolver.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/execute_command_tool_resolver.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/list_files_tool_resolver.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/plan_mode_respond_tool_resolver.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/read_file_tool_resolver.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/replace_in_file_tool_resolver.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/search_files_tool_resolver.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/talk_to_group_tool_resolver.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/talk_to_tool_resolver.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/use_mcp_tool_resolver.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/tools/write_to_file_tool_resolver.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/types.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/base_agentic/utils.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/coder.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/designer.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/planner.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/agent/project_reader.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/auto_coder.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/auto_coder_runner.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/auto_coder_server.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/benchmark.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/chat/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/chat/conf_command.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/chat/models_command.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/chat/rules_command.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/chat_auto_coder.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/chat_auto_coder_lang.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/command_args.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/command_parser.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/commands/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/commands/auto_command.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/commands/auto_web.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/commands/tools.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/JupyterClient.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/ShellClient.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/action_yml_file_manager.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/anything2images.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/anything2img.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/audio.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/auto_coder_lang.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/auto_configure.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/buildin_tokenizer.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/chunk_validation.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/cleaner.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/code_auto_execute.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/code_auto_generate.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/code_auto_generate_diff.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/code_auto_generate_editblock.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/code_auto_generate_strict_diff.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/code_auto_merge.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/code_auto_merge_diff.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/code_auto_merge_editblock.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/code_auto_merge_strict_diff.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/code_modification_ranker.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/command_completer.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/command_completer_v2.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/command_file_manager/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/command_file_manager/examples.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/command_file_manager/manager.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/command_file_manager/models.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/command_file_manager/utils.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/command_generator.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/command_templates.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/computer_use.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/conf_import_export.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/conf_utils.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/conf_validator.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/const.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/context_pruner.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/conversation_pruner.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/conversations/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/conversations/compatibility.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/conversations/conversation_manager.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/conversations/example.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/directory_cache/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/directory_cache/cache.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/directory_cache/test_cache.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_checkpoint/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_checkpoint/backup.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_checkpoint/conversation_checkpoint.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_checkpoint/examples.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_checkpoint/manager.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_checkpoint/models.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_checkpoint/store.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_checkpoint/test_backup.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_checkpoint/test_manager.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_checkpoint/test_models.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_checkpoint/test_store.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_checkpoint/test_utils.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_checkpoint/utils.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_monitor/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/file_monitor/monitor.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/files.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/git_utils.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/global_cancel.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/ignorefiles/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/ignorefiles/ignore_file_utils.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/ignorefiles/test_ignore_file_utils.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/image_to_page.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/index_import_export.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/interpreter.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/mcp_hub.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/mcp_server.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/mcp_server_install.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/mcp_server_types.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/mcp_servers/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/mcp_servers/mcp_server_gpt4o_mini_search.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/mcp_servers/mcp_server_perplexity.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/mcp_tools.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/memory_manager.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/model_speed_tester.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/openai_content.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/printer.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/recall_validation.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/result_manager.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/rulefiles/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/rulefiles/autocoderrules_utils.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/run_cmd.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/save_formatted_log.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/screenshots.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/search.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/search_replace.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/shells.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/stats_panel.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/stream_out_type.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/sys_prompt.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/test_run_cmd.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/text.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/token_cost_caculate.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/types.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/utils_code_auto_generate.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/agent/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/agent/agentic_edit.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/agent/agentic_edit_tools/__init__.py +0 -0
- {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
- {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
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/agent/agentic_edit_tools/base_tool_resolver.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/agent/agentic_edit_types.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/agent/agentic_tool_display.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/code_agentic_editblock_manager.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/code_auto_generate.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/code_auto_generate_diff.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/code_auto_generate_editblock.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/code_auto_generate_strict_diff.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/code_auto_merge.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/code_auto_merge_diff.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/code_auto_merge_editblock.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/code_auto_merge_strict_diff.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/code_diff_manager.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/code_editblock_manager.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/code_manager.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/common/v2/code_strict_diff_manager.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/compilers/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/compilers/base_compiler.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/compilers/compiler_config_api.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/compilers/compiler_config_manager.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/compilers/compiler_factory.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/compilers/java_compiler.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/compilers/models.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/compilers/normal_compiler.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/compilers/provided_compiler.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/compilers/python_compiler.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/compilers/reactjs_compiler.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/compilers/shadow_compiler.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/compilers/vue_compiler.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/data/byzerllm.md +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/data/tokenizer.json +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/db/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/db/store.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/dispacher/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/dispacher/actions/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/dispacher/actions/action.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/dispacher/actions/copilot.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/dispacher/actions/plugins/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/dispacher/actions/plugins/action_regex_project.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/events/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/events/event_content.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/events/event_manager.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/events/event_manager_singleton.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/events/event_store.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/events/event_types.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/helper/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/helper/project_creator.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/helper/rag_doc_creator.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/index/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/index/entry.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/index/filter/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/index/filter/normal_filter.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/index/filter/quick_filter.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/index/for_command.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/index/index.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/index/symbols_utils.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/index/types.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/lang.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/linters/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/linters/base_linter.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/linters/linter_factory.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/linters/models.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/linters/normal_linter.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/linters/python_linter.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/linters/reactjs_linter.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/linters/shadow_linter.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/linters/vue_linter.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/memory/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/memory/active_context_manager.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/memory/active_package.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/memory/async_processor.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/memory/directory_mapper.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/plugins/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/plugins/dynamic_completion_example.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/plugins/git_helper_plugin.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/plugins/sample_plugin.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/plugins/token_helper_plugin.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/plugins/utils.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/privacy/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/privacy/model_filter.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/pyproject/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/agentic_rag.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/api_server.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/cache/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/cache/base_cache.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/cache/byzer_storage_cache.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/cache/cache_result_merge.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/cache/failed_files_utils.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/cache/file_monitor_cache.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/cache/local_byzer_storage_cache.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/cache/rag_file_meta.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/cache/simple_cache.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/doc_filter.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/document_retriever.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/lang.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/llm_wrapper.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/loaders/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/loaders/docx_loader.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/loaders/excel_loader.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/loaders/filter_utils.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/loaders/image_loader.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/loaders/pdf_loader.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/loaders/ppt_loader.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/qa_conversation_strategy.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/rag_config.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/rag_entry.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/relevant_utils.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/searchable.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/stream_event/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/stream_event/event_writer.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/stream_event/types.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/test_doc_filter.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/test_long_context_rag.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/test_token_limiter.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/token_checker.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/token_counter.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/token_limiter.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/token_limiter_utils.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/tools/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/utils.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/variable_holder.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/regexproject/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/run_context.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/shadows/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/shadows/shadow_manager.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/suffixproject/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/tsproject/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/auto_coder_utils/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/auto_coder_utils/chat_stream_out.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/auto_project_type.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/chat_auto_coder_utils/__init__.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/conversation_store.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/llm_client_interceptors.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/llms.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/log_capture.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/model_provider_selector.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/multi_turn.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/operate_config_api.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/print_table.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/project_structure.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/queue_communicate.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/request_event_queue.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/request_queue.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/rest.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/stream_thinking.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/thread_utils.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/utils/types.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/tests/test_action_regex_project.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/tests/test_action_yml_file_manager.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/tests/test_chat_auto_coder.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/tests/test_code_auto_merge_editblock.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/tests/test_command_completer.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/tests/test_planner.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/tests/test_plugins.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/tests/test_privacy.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/tests/test_queue_communicate.py +0 -0
- {auto_coder-0.1.375 → auto_coder-0.1.376}/tests/test_symbols_utils.py +0 -0
|
@@ -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
|
-
{
|
|
515
|
-
{
|
|
516
|
-
{
|
|
517
|
-
{
|
|
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
|
-
{
|
|
521
|
-
{
|
|
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
|
-
{
|
|
536
|
+
{% for tool_name, guideline in tool_guidelines.items() %}
|
|
536
537
|
{{ loop.index + 6 }}. **{{ tool_name }}**: {{ guideline }}
|
|
537
|
-
{
|
|
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:
|
{auto_coder-0.1.375 → auto_coder-0.1.376}/src/autocoder/rag/cache/local_duckdb_storage_cache.py
RENAMED
|
@@ -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
|
|
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
|
|
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)}
|
|
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(
|
|
102
|
+
logger.info("正在启动 DuckDBVectorStore.")
|
|
101
103
|
|
|
102
104
|
if self.database_name != ":memory:":
|
|
103
|
-
self.database_path = os.path.join(
|
|
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},
|
|
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}
|
|
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}/
|
|
178
|
-
f"Error: {str(e)}. Retrying in
|
|
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"][
|
|
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 =
|
|
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,
|
|
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(
|
|
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.
|
|
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.
|
|
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
|
|
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]
|
|
517
|
-
f"
|
|
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]
|
|
531
|
-
f"
|
|
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}/
|
|
574
|
-
f"
|
|
575
|
-
f"
|
|
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:
|
|
820
|
-
f"
|
|
821
|
-
f"经过向量搜索共检索出 {len(result.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"
|
|
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
|
-
|
|
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 []
|