auto-coder 0.1.297__tar.gz → 0.1.299__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.297 → auto_coder-0.1.299}/PKG-INFO +3 -2
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/auto_coder.egg-info/PKG-INFO +3 -2
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/auto_coder.egg-info/requires.txt +2 -1
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/auto_coder_rag.py +7 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/__init__.py +1 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/cache/byzer_storage_cache.py +2 -1
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/cache/local_byzer_storage_cache.py +1 -1
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/cache/local_duckdb_storage_cache.py +141 -31
- auto_coder-0.1.299/src/autocoder/version.py +1 -0
- auto_coder-0.1.297/src/autocoder/version.py +0 -1
- {auto_coder-0.1.297 → auto_coder-0.1.299}/LICENSE +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/README.md +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/setup.cfg +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/setup.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/auto_coder.egg-info/SOURCES.txt +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/auto_coder.egg-info/dependency_links.txt +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/auto_coder.egg-info/entry_points.txt +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/auto_coder.egg-info/top_level.txt +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/__init__.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/agent/__init__.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/agent/auto_demand_organizer.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/agent/auto_filegroup.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/agent/auto_guess_query.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/agent/auto_learn_from_commit.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/agent/auto_review_commit.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/agent/auto_tool.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/agent/coder.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/agent/designer.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/agent/planner.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/agent/project_reader.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/auto_coder.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/auto_coder_runner.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/auto_coder_server.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/benchmark.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/chat/__init__.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/chat_auto_coder.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/chat_auto_coder_lang.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/command_args.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/commands/__init__.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/commands/auto_command.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/commands/auto_web.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/commands/tools.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/JupyterClient.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/ShellClient.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/anything2images.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/anything2img.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/audio.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/auto_coder_lang.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/auto_configure.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/buildin_tokenizer.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/chunk_validation.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/cleaner.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/code_auto_execute.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/code_auto_generate.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/code_auto_generate_diff.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/code_auto_generate_editblock.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/code_auto_generate_strict_diff.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/code_auto_merge.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/code_auto_merge_diff.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/code_auto_merge_editblock.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/code_auto_merge_strict_diff.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/code_modification_ranker.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/command_completer.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/command_generator.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/command_templates.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/computer_use.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/conf_import_export.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/conf_validator.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/const.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/context_pruner.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/conversation_pruner.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/files.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/git_utils.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/global_cancel.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/image_to_page.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/index_import_export.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/interpreter.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/llm_rerank.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/mcp_hub.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/mcp_server.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/mcp_servers/__init__.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/mcp_servers/mcp_server_gpt4o_mini_search.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/mcp_servers/mcp_server_perplexity.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/mcp_tools.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/memory_manager.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/model_speed_test.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/printer.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/recall_validation.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/result_manager.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/screenshots.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/search.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/search_replace.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/shells.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/stats_panel.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/sys_prompt.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/text.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/types.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/utils_code_auto_generate.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/data/byzerllm.md +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/data/tokenizer.json +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/db/__init__.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/db/store.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/dispacher/__init__.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/dispacher/actions/__init__.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/dispacher/actions/action.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/dispacher/actions/copilot.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/dispacher/actions/plugins/__init__.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/dispacher/actions/plugins/action_regex_project.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/dispacher/actions/plugins/action_translate.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/index/__init__.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/index/entry.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/index/filter/__init__.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/index/filter/normal_filter.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/index/filter/quick_filter.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/index/for_command.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/index/index.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/index/symbols_utils.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/index/types.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/lang.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/models.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/plugins/__init__.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/plugins/dynamic_completion_example.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/plugins/git_helper_plugin.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/plugins/sample_plugin.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/plugins/token_helper_plugin.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/plugins/utils.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/privacy/__init__.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/privacy/model_filter.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/pyproject/__init__.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/__init__.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/api_server.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/cache/__init__.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/cache/base_cache.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/cache/cache_result_merge.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/cache/file_monitor_cache.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/cache/rag_file_meta.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/cache/simple_cache.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/conversation_to_queries.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/doc_filter.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/document_retriever.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/lang.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/llm_wrapper.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/loaders/__init__.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/loaders/docx_loader.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/loaders/excel_loader.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/loaders/pdf_loader.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/loaders/ppt_loader.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/long_context_rag.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/qa_conversation_strategy.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/rag_config.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/rag_entry.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/raw_rag.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/relevant_utils.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/searchable.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/simple_directory_reader.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/simple_rag.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/stream_event/__init__.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/stream_event/event_writer.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/stream_event/types.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/token_checker.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/token_counter.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/token_limiter.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/token_limiter_utils.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/types.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/utils.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/variable_holder.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/regexproject/__init__.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/suffixproject/__init__.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/tsproject/__init__.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/utils/__init__.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/utils/_markitdown.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/utils/auto_coder_utils/__init__.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/utils/auto_coder_utils/chat_stream_out.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/utils/auto_project_type.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/utils/chat_auto_coder_utils/__init__.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/utils/conversation_store.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/utils/llm_client_interceptors.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/utils/llms.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/utils/log_capture.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/utils/model_provider_selector.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/utils/multi_turn.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/utils/operate_config_api.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/utils/print_table.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/utils/project_structure.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/utils/queue_communicate.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/utils/request_event_queue.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/utils/request_queue.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/utils/rest.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/utils/stream_thinking.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/utils/tests.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/utils/thread_utils.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/utils/types.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/tests/test_action_regex_project.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/tests/test_chat_auto_coder.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/tests/test_code_auto_merge_editblock.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/tests/test_command_completer.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/tests/test_planner.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/tests/test_plugins.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/tests/test_privacy.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/tests/test_queue_communicate.py +0 -0
- {auto_coder-0.1.297 → auto_coder-0.1.299}/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.
|
|
3
|
+
Version: 0.1.299
|
|
4
4
|
Summary: AutoCoder: AutoCoder
|
|
5
5
|
Author: allwefantasy
|
|
6
6
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
@@ -26,7 +26,8 @@ Requires-Dist: tabulate
|
|
|
26
26
|
Requires-Dist: jupyter_client
|
|
27
27
|
Requires-Dist: prompt-toolkit
|
|
28
28
|
Requires-Dist: tokenizers
|
|
29
|
-
Requires-Dist:
|
|
29
|
+
Requires-Dist: aiofiles
|
|
30
|
+
Requires-Dist: byzerllm[saas]>=0.1.177
|
|
30
31
|
Requires-Dist: patch
|
|
31
32
|
Requires-Dist: diff_match_patch
|
|
32
33
|
Requires-Dist: GitPython
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: auto-coder
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.299
|
|
4
4
|
Summary: AutoCoder: AutoCoder
|
|
5
5
|
Author: allwefantasy
|
|
6
6
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
@@ -26,7 +26,8 @@ Requires-Dist: tabulate
|
|
|
26
26
|
Requires-Dist: jupyter_client
|
|
27
27
|
Requires-Dist: prompt-toolkit
|
|
28
28
|
Requires-Dist: tokenizers
|
|
29
|
-
Requires-Dist:
|
|
29
|
+
Requires-Dist: aiofiles
|
|
30
|
+
Requires-Dist: byzerllm[saas]>=0.1.177
|
|
30
31
|
Requires-Dist: patch
|
|
31
32
|
Requires-Dist: diff_match_patch
|
|
32
33
|
Requires-Dist: GitPython
|
|
@@ -187,6 +187,13 @@ def main(input_args: Optional[List[str]] = None):
|
|
|
187
187
|
help="The storage type of the RAG, duckdb or byzer-storage",
|
|
188
188
|
)
|
|
189
189
|
|
|
190
|
+
build_index_parser.add_argument(
|
|
191
|
+
"--rag_index_build_workers",
|
|
192
|
+
type=int,
|
|
193
|
+
default=5,
|
|
194
|
+
help="The number of workers to build the RAG index",
|
|
195
|
+
)
|
|
196
|
+
|
|
190
197
|
build_index_parser.add_argument(
|
|
191
198
|
"--quick", action="store_true", help="Skip system initialization"
|
|
192
199
|
)
|
|
@@ -300,6 +300,7 @@ class AutoCoderArgs(pydantic.BaseModel):
|
|
|
300
300
|
rag_duckdb_vector_dim: Optional[int] = 1024 # DuckDB 向量化存储的维度
|
|
301
301
|
rag_duckdb_query_similarity: Optional[float] = 0.1 # DuckDB 向量化检索 相似度 阈值
|
|
302
302
|
rag_duckdb_query_top_k: Optional[int] = 10000 # DuckDB 向量化检索 返回 TopK个结果(且大于相似度)
|
|
303
|
+
rag_index_build_workers: Optional[int] = 10
|
|
303
304
|
# rag 本地图床地址
|
|
304
305
|
local_image_host: Optional[str] = ""
|
|
305
306
|
rag_recall_max_queries: Optional[int] = 5
|
|
@@ -132,6 +132,7 @@ class ByzerStorageCache(BaseCacheManager):
|
|
|
132
132
|
self.path = path
|
|
133
133
|
self.ignore_spec = ignore_spec
|
|
134
134
|
self.required_exts = required_exts
|
|
135
|
+
self.extra_params = extra_params
|
|
135
136
|
self.rag_build_name = extra_params.rag_build_name
|
|
136
137
|
self.storage = ByzerStorage("byzerai_store", "rag", self.rag_build_name)
|
|
137
138
|
self.queue = []
|
|
@@ -329,7 +330,7 @@ class ByzerStorageCache(BaseCacheManager):
|
|
|
329
330
|
start_time = time.time()
|
|
330
331
|
|
|
331
332
|
# Use more workers to process the smaller batches efficiently
|
|
332
|
-
max_workers = min(
|
|
333
|
+
max_workers = min(self.extra_params.rag_index_build_workers, total_batches) # Cap at 10 workers or total batch count
|
|
333
334
|
logger.info(f"[BUILD CACHE] Using {max_workers} parallel workers for processing")
|
|
334
335
|
|
|
335
336
|
with ThreadPoolExecutor(max_workers=max_workers) as executor:
|
{auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/cache/local_byzer_storage_cache.py
RENAMED
|
@@ -338,7 +338,7 @@ class LocalByzerStorageCache(BaseCacheManager):
|
|
|
338
338
|
start_time = time.time()
|
|
339
339
|
|
|
340
340
|
# Use more workers to process the smaller batches efficiently
|
|
341
|
-
max_workers = min(
|
|
341
|
+
max_workers = min(self.extra_params.rag_index_build_workers, total_batches) # Cap at 10 workers or total batch count
|
|
342
342
|
logger.info(f"[BUILD CACHE] Using {max_workers} parallel workers for processing")
|
|
343
343
|
|
|
344
344
|
with ThreadPoolExecutor(max_workers=max_workers) as executor:
|
{auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/rag/cache/local_duckdb_storage_cache.py
RENAMED
|
@@ -133,15 +133,31 @@ class LocalDuckdbStorage:
|
|
|
133
133
|
return reduced
|
|
134
134
|
|
|
135
135
|
def _embedding(self, context: str, norm: bool = True, dim: int | None = None) -> List[float]:
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
136
|
+
max_retries = 3
|
|
137
|
+
retry_count = 0
|
|
138
|
+
|
|
139
|
+
while retry_count < max_retries:
|
|
140
|
+
try:
|
|
141
|
+
embedding = self.llm.emb_query(context)[0].output
|
|
142
|
+
|
|
143
|
+
if dim:
|
|
144
|
+
embedding = self._apply_pca(embedding, target_dim=dim) # 降维后形状 (1024,)
|
|
145
|
+
|
|
146
|
+
if norm:
|
|
147
|
+
embedding = embedding / np.linalg.norm(embedding)
|
|
148
|
+
|
|
149
|
+
return embedding.tolist()
|
|
150
|
+
except Exception as e:
|
|
151
|
+
retry_count += 1
|
|
152
|
+
if retry_count >= max_retries:
|
|
153
|
+
logger.error(f"Failed to get embedding after {max_retries} attempts: {str(e)}")
|
|
154
|
+
raise
|
|
155
|
+
|
|
156
|
+
# Sleep between 1-5 seconds before retrying
|
|
157
|
+
sleep_time = 1 + (retry_count * 1.5)
|
|
158
|
+
logger.warning(f"Embedding API call failed (attempt {retry_count}/{max_retries}). "
|
|
159
|
+
f"Error: {str(e)}. Retrying in {sleep_time:.1f} seconds...")
|
|
160
|
+
time.sleep(sleep_time)
|
|
145
161
|
|
|
146
162
|
def _initialize(self) -> None:
|
|
147
163
|
if self.embed_dim is None:
|
|
@@ -452,9 +468,9 @@ class LocalDuckDBStorageCache(BaseCacheManager):
|
|
|
452
468
|
self.write_cache()
|
|
453
469
|
|
|
454
470
|
if items:
|
|
455
|
-
logger.info("[BUILD CACHE] Clearing existing cache from
|
|
471
|
+
logger.info("[BUILD CACHE] Clearing existing cache from DuckDB Storage")
|
|
456
472
|
self.storage.truncate_table()
|
|
457
|
-
logger.info(f"[BUILD CACHE] Preparing to write to
|
|
473
|
+
logger.info(f"[BUILD CACHE] Preparing to write to DuckDB Storage, "
|
|
458
474
|
f"total chunks: {len(items)}, total files: {len(files_to_process)}")
|
|
459
475
|
|
|
460
476
|
# Use a fixed optimal batch size instead of dividing by worker count
|
|
@@ -464,12 +480,12 @@ class LocalDuckDBStorageCache(BaseCacheManager):
|
|
|
464
480
|
total_batches = len(item_batches)
|
|
465
481
|
completed_batches = 0
|
|
466
482
|
|
|
467
|
-
logger.info(f"[BUILD CACHE] Starting to write to
|
|
483
|
+
logger.info(f"[BUILD CACHE] Starting to write to DuckDB Storage using {batch_size} items per batch, "
|
|
468
484
|
f"total batches: {total_batches}")
|
|
469
485
|
start_time = time.time()
|
|
470
486
|
|
|
471
|
-
# Use more workers to process the smaller batches efficiently
|
|
472
|
-
max_workers = min(
|
|
487
|
+
# Use more workers to process the smaller batches efficiently
|
|
488
|
+
max_workers = min(self.extra_params.rag_index_build_workers, total_batches) # Cap at 10 workers or total batch count
|
|
473
489
|
logger.info(f"[BUILD CACHE] Using {max_workers} parallel workers for processing")
|
|
474
490
|
|
|
475
491
|
def batch_add_doc(_batch):
|
|
@@ -636,40 +652,68 @@ class LocalDuckDBStorageCache(BaseCacheManager):
|
|
|
636
652
|
|
|
637
653
|
return all_files
|
|
638
654
|
|
|
639
|
-
def
|
|
640
|
-
"""
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
655
|
+
def _get_single_cache(self, query: str, options: Dict[str, Any]) -> List[Dict[str, Any]]:
|
|
656
|
+
"""
|
|
657
|
+
使用单个查询检索缓存文档
|
|
658
|
+
|
|
659
|
+
参数:
|
|
660
|
+
query: 查询字符串
|
|
661
|
+
options: 包含查询选项的字典
|
|
662
|
+
|
|
663
|
+
返回:
|
|
664
|
+
包含文档信息的字典列表,每个字典包含_id、file_path、mtime和score字段
|
|
665
|
+
"""
|
|
648
666
|
logger.info(f"正在使用向量搜索检索数据, 你的问题: {query}")
|
|
649
|
-
total_tokens = 0
|
|
650
667
|
results = []
|
|
651
668
|
|
|
652
669
|
# Add vector search if enabled
|
|
653
670
|
if options.get("enable_vector_search", True):
|
|
654
671
|
# 返回值包含 [(_id, file_path, mtime, score,),]
|
|
655
|
-
# results = self.storage.vector_search(query, similarity_value=0.7, similarity_top_k=200)
|
|
656
672
|
search_results = self.storage.vector_search(
|
|
657
673
|
query,
|
|
658
674
|
similarity_value=self.extra_params.rag_duckdb_query_similarity,
|
|
659
675
|
similarity_top_k=self.extra_params.rag_duckdb_query_top_k,
|
|
660
676
|
query_dim=self.extra_params.rag_duckdb_vector_dim
|
|
661
677
|
)
|
|
662
|
-
|
|
663
|
-
|
|
678
|
+
|
|
679
|
+
# Convert tuples to dictionaries for the merger
|
|
680
|
+
for _id, file_path, mtime, score in search_results:
|
|
681
|
+
results.append({
|
|
682
|
+
"_id": _id,
|
|
683
|
+
"file_path": file_path,
|
|
684
|
+
"mtime": mtime,
|
|
685
|
+
"score": score
|
|
686
|
+
})
|
|
687
|
+
|
|
688
|
+
logger.info(f"查询 '{query}' 返回 {len(results)} 条记录")
|
|
689
|
+
return results
|
|
690
|
+
|
|
691
|
+
def _process_search_results(self, results: List[Dict[str, Any]]) -> Dict[str, Dict]:
|
|
692
|
+
"""
|
|
693
|
+
处理搜索结果,提取文件路径并构建结果字典
|
|
694
|
+
|
|
695
|
+
参数:
|
|
696
|
+
results: 搜索结果列表,每项包含文档信息的字典
|
|
697
|
+
|
|
698
|
+
返回:
|
|
699
|
+
匹配文档的字典,键为文件路径,值为文件内容
|
|
700
|
+
|
|
701
|
+
说明:
|
|
702
|
+
该方法会根据查询结果从缓存中提取文件内容,并记录累计token数,
|
|
703
|
+
当累计token数超过max_output_tokens时,将停止处理并返回已处理的结果。
|
|
704
|
+
"""
|
|
705
|
+
# 记录被处理的总tokens数
|
|
706
|
+
total_tokens = 0
|
|
707
|
+
|
|
664
708
|
# Group results by file_path and reconstruct documents while preserving order
|
|
665
709
|
# 这里还可以有排序优化,综合考虑一篇内容出现的次数以及排序位置
|
|
666
710
|
file_paths = []
|
|
667
711
|
seen = set()
|
|
668
712
|
for result in results:
|
|
669
|
-
|
|
670
|
-
if
|
|
671
|
-
seen.add(
|
|
672
|
-
file_paths.append(
|
|
713
|
+
file_path = result["file_path"]
|
|
714
|
+
if file_path not in seen:
|
|
715
|
+
seen.add(file_path)
|
|
716
|
+
file_paths.append(file_path)
|
|
673
717
|
|
|
674
718
|
# 从缓存中获取文件内容
|
|
675
719
|
result = {}
|
|
@@ -690,3 +734,69 @@ class LocalDuckDBStorageCache(BaseCacheManager):
|
|
|
690
734
|
f"累计tokens: {total_tokens}, "
|
|
691
735
|
f"经过向量搜索共检索出 {len(result.keys())} 个文档, 共 {len(self.cache.keys())} 个文档")
|
|
692
736
|
return result
|
|
737
|
+
|
|
738
|
+
def get_cache(self, options: Optional[Dict[str, Any]] = None) -> Dict[str, Dict]:
|
|
739
|
+
"""
|
|
740
|
+
获取缓存中的文档信息
|
|
741
|
+
|
|
742
|
+
参数:
|
|
743
|
+
options: 包含查询参数的字典,可以包含以下键:
|
|
744
|
+
- queries: 查询列表,可以是单个查询或多个查询
|
|
745
|
+
- enable_vector_search: 是否启用向量搜索,默认为True
|
|
746
|
+
- merge_strategy: 多查询时的合并策略,默认为WEIGHTED_RANK
|
|
747
|
+
- max_results: 最大结果数,默认为None表示不限制
|
|
748
|
+
|
|
749
|
+
返回:
|
|
750
|
+
匹配文档的字典,键为文件路径,值为文件内容
|
|
751
|
+
"""
|
|
752
|
+
self.trigger_update() # 检查更新
|
|
753
|
+
|
|
754
|
+
if options is None or "queries" not in options:
|
|
755
|
+
return {file_path: self.cache[file_path].model_dump() for file_path in self.cache}
|
|
756
|
+
|
|
757
|
+
queries = options.get("queries", [])
|
|
758
|
+
|
|
759
|
+
# 如果没有查询或只有一个查询,使用原来的方法
|
|
760
|
+
if not queries:
|
|
761
|
+
return {file_path: self.cache[file_path].model_dump() for file_path in self.cache}
|
|
762
|
+
elif len(queries) == 1:
|
|
763
|
+
results = self._get_single_cache(queries[0], options)
|
|
764
|
+
return self._process_search_results(results)
|
|
765
|
+
|
|
766
|
+
# 导入合并策略
|
|
767
|
+
from autocoder.rag.cache.cache_result_merge import CacheResultMerger, MergeStrategy
|
|
768
|
+
|
|
769
|
+
# 获取合并策略
|
|
770
|
+
merge_strategy_name = options.get("merge_strategy", MergeStrategy.WEIGHTED_RANK.value)
|
|
771
|
+
try:
|
|
772
|
+
merge_strategy = MergeStrategy(merge_strategy_name)
|
|
773
|
+
except ValueError:
|
|
774
|
+
logger.warning(f"未知的合并策略: {merge_strategy_name}, 使用默认策略 WEIGHTED_RANK")
|
|
775
|
+
merge_strategy = MergeStrategy.WEIGHTED_RANK
|
|
776
|
+
|
|
777
|
+
# 限制最大结果数
|
|
778
|
+
max_results = options.get("max_results", None)
|
|
779
|
+
merger = CacheResultMerger(max_results=max_results)
|
|
780
|
+
|
|
781
|
+
# 并发处理多个查询
|
|
782
|
+
logger.info(f"处理多查询请求,查询数量: {len(queries)}, 合并策略: {merge_strategy}")
|
|
783
|
+
query_results = []
|
|
784
|
+
with ThreadPoolExecutor(max_workers=min(len(queries), 10)) as executor:
|
|
785
|
+
future_to_query = {executor.submit(self._get_single_cache, query, options): query for query in queries}
|
|
786
|
+
for future in as_completed(future_to_query):
|
|
787
|
+
query = future_to_query[future]
|
|
788
|
+
try:
|
|
789
|
+
query_result = future.result()
|
|
790
|
+
logger.info(f"查询 '{query}' 返回 {len(query_result)} 条记录")
|
|
791
|
+
query_results.append((query, query_result))
|
|
792
|
+
except Exception as e:
|
|
793
|
+
logger.error(f"处理查询 '{query}' 时出错: {str(e)}")
|
|
794
|
+
|
|
795
|
+
logger.info(f"所有查询共返回 {sum(len(r) for _, r in query_results)} 条记录")
|
|
796
|
+
|
|
797
|
+
# 使用策略合并结果
|
|
798
|
+
merged_results = merger.merge(query_results, strategy=merge_strategy)
|
|
799
|
+
logger.info(f"合并后的结果共 {len(merged_results)} 条记录")
|
|
800
|
+
|
|
801
|
+
# 处理合并后的结果
|
|
802
|
+
return self._process_search_results(merged_results)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.1.299"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.1.297"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/code_auto_generate_editblock.py
RENAMED
|
File without changes
|
{auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/code_auto_generate_strict_diff.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/code_auto_merge_strict_diff.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/common/mcp_servers/mcp_server_perplexity.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/dispacher/actions/plugins/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/plugins/dynamic_completion_example.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/utils/auto_coder_utils/chat_stream_out.py
RENAMED
|
File without changes
|
|
File without changes
|
{auto_coder-0.1.297 → auto_coder-0.1.299}/src/autocoder/utils/chat_auto_coder_utils/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|