auto-coder 0.1.265__tar.gz → 0.1.267__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.265 → auto_coder-0.1.267}/PKG-INFO +2 -2
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/auto_coder.egg-info/PKG-INFO +2 -2
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/auto_coder.egg-info/requires.txt +1 -1
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/chat_auto_coder.py +41 -8
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/commands/auto_command.py +30 -10
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/auto_coder_lang.py +6 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/auto_configure.py +4 -1
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/code_auto_merge_diff.py +35 -1
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/code_auto_merge_editblock.py +42 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/code_auto_merge_strict_diff.py +36 -1
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/index/entry.py +6 -5
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/index/filter/normal_filter.py +1 -1
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/index/filter/quick_filter.py +1 -1
- auto_coder-0.1.267/src/autocoder/version.py +1 -0
- auto_coder-0.1.265/src/autocoder/version.py +0 -1
- {auto_coder-0.1.265 → auto_coder-0.1.267}/LICENSE +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/README.md +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/setup.cfg +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/setup.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/auto_coder.egg-info/SOURCES.txt +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/auto_coder.egg-info/dependency_links.txt +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/auto_coder.egg-info/entry_points.txt +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/auto_coder.egg-info/top_level.txt +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/__init__.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/agent/__init__.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/agent/auto_demand_organizer.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/agent/auto_filegroup.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/agent/auto_guess_query.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/agent/auto_review_commit.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/agent/auto_tool.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/agent/coder.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/agent/designer.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/agent/planner.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/agent/project_reader.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/auto_coder.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/auto_coder_rag.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/auto_coder_rag_client_mcp.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/auto_coder_rag_mcp.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/auto_coder_server.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/benchmark.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/chat/__init__.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/chat_auto_coder_lang.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/command_args.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/commands/__init__.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/commands/tools.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/JupyterClient.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/ShellClient.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/__init__.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/anything2images.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/anything2img.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/audio.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/buildin_tokenizer.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/chunk_validation.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/cleaner.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/code_auto_execute.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/code_auto_generate.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/code_auto_generate_diff.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/code_auto_generate_editblock.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/code_auto_generate_strict_diff.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/code_auto_merge.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/code_modification_ranker.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/command_completer.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/command_generator.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/command_templates.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/conf_import_export.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/conf_validator.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/const.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/context_pruner.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/conversation_pruner.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/files.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/git_utils.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/global_cancel.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/image_to_page.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/index_import_export.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/interpreter.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/llm_rerank.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/mcp_hub.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/mcp_server.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/mcp_servers/__init__.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/mcp_servers/mcp_server_perplexity.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/mcp_tools.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/memory_manager.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/model_speed_test.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/printer.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/recall_validation.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/result_manager.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/screenshots.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/search.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/search_replace.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/shells.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/stats_panel.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/sys_prompt.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/text.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/types.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/utils_code_auto_generate.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/data/byzerllm.md +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/data/tokenizer.json +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/db/__init__.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/db/store.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/dispacher/__init__.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/dispacher/actions/__init__.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/dispacher/actions/action.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/dispacher/actions/copilot.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/dispacher/actions/plugins/__init__.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/dispacher/actions/plugins/action_regex_project.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/dispacher/actions/plugins/action_translate.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/index/__init__.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/index/filter/__init__.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/index/for_command.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/index/index.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/index/symbols_utils.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/index/types.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/lang.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/models.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/privacy/__init__.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/privacy/model_filter.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/pyproject/__init__.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/__init__.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/api_server.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/cache/__init__.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/cache/base_cache.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/cache/byzer_storage_cache.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/cache/file_monitor_cache.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/cache/simple_cache.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/doc_filter.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/document_retriever.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/llm_wrapper.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/loaders/__init__.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/loaders/docx_loader.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/loaders/excel_loader.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/loaders/pdf_loader.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/loaders/ppt_loader.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/long_context_rag.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/rag_config.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/rag_entry.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/raw_rag.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/relevant_utils.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/simple_directory_reader.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/simple_rag.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/stream_event/__init__.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/stream_event/event_writer.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/stream_event/types.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/token_checker.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/token_counter.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/token_limiter.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/types.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/utils.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/rag/variable_holder.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/regexproject/__init__.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/suffixproject/__init__.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/tsproject/__init__.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/utils/__init__.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/utils/_markitdown.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/utils/auto_coder_utils/__init__.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/utils/auto_coder_utils/chat_stream_out.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/utils/chat_auto_coder_utils/__init__.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/utils/conversation_store.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/utils/llm_client_interceptors.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/utils/llms.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/utils/log_capture.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/utils/model_provider_selector.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/utils/multi_turn.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/utils/operate_config_api.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/utils/print_table.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/utils/project_structure.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/utils/queue_communicate.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/utils/request_event_queue.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/utils/request_queue.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/utils/rest.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/utils/tests.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/utils/thread_utils.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/utils/types.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/tests/test_action_regex_project.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/tests/test_chat_auto_coder.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/tests/test_code_auto_merge_editblock.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/tests/test_command_completer.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/tests/test_planner.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/tests/test_privacy.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/tests/test_queue_communicate.py +0 -0
- {auto_coder-0.1.265 → auto_coder-0.1.267}/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.267
|
|
4
4
|
Summary: AutoCoder: AutoCoder
|
|
5
5
|
Author: allwefantasy
|
|
6
6
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
@@ -26,7 +26,7 @@ Requires-Dist: tabulate
|
|
|
26
26
|
Requires-Dist: jupyter_client
|
|
27
27
|
Requires-Dist: prompt-toolkit
|
|
28
28
|
Requires-Dist: tokenizers
|
|
29
|
-
Requires-Dist: byzerllm[saas]>=0.1.
|
|
29
|
+
Requires-Dist: byzerllm[saas]>=0.1.168
|
|
30
30
|
Requires-Dist: patch
|
|
31
31
|
Requires-Dist: diff_match_patch
|
|
32
32
|
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.267
|
|
4
4
|
Summary: AutoCoder: AutoCoder
|
|
5
5
|
Author: allwefantasy
|
|
6
6
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
@@ -26,7 +26,7 @@ Requires-Dist: tabulate
|
|
|
26
26
|
Requires-Dist: jupyter_client
|
|
27
27
|
Requires-Dist: prompt-toolkit
|
|
28
28
|
Requires-Dist: tokenizers
|
|
29
|
-
Requires-Dist: byzerllm[saas]>=0.1.
|
|
29
|
+
Requires-Dist: byzerllm[saas]>=0.1.168
|
|
30
30
|
Requires-Dist: patch
|
|
31
31
|
Requires-Dist: diff_match_patch
|
|
32
32
|
Requires-Dist: GitPython
|
|
@@ -133,8 +133,7 @@ commands = [
|
|
|
133
133
|
"/index/build",
|
|
134
134
|
"/index/export",
|
|
135
135
|
"/index/import",
|
|
136
|
-
"/
|
|
137
|
-
"/exclude_files",
|
|
136
|
+
"/exclude_files",
|
|
138
137
|
"/help",
|
|
139
138
|
"/shell",
|
|
140
139
|
"/voice_input",
|
|
@@ -148,6 +147,7 @@ commands = [
|
|
|
148
147
|
"/auto",
|
|
149
148
|
"/conf/export",
|
|
150
149
|
"/conf/import",
|
|
150
|
+
"/exclude_dirs",
|
|
151
151
|
]
|
|
152
152
|
|
|
153
153
|
|
|
@@ -2284,10 +2284,44 @@ def exclude_dirs(dir_names: List[str]):
|
|
|
2284
2284
|
save_memory()
|
|
2285
2285
|
completer.refresh_files()
|
|
2286
2286
|
|
|
2287
|
-
def exclude_files(
|
|
2287
|
+
def exclude_files(query: str):
|
|
2288
2288
|
result_manager = ResultManager()
|
|
2289
2289
|
printer = Printer()
|
|
2290
|
-
|
|
2290
|
+
if "/list" in query:
|
|
2291
|
+
query = query.replace("/list", "", 1).strip()
|
|
2292
|
+
existing_file_patterns = memory.get("exclude_files", [])
|
|
2293
|
+
console = Console()
|
|
2294
|
+
# 打印表格
|
|
2295
|
+
table = Table(title="Exclude Files")
|
|
2296
|
+
table.add_column("File Pattern")
|
|
2297
|
+
for file_pattern in existing_file_patterns:
|
|
2298
|
+
table.add_row(file_pattern)
|
|
2299
|
+
console.print(table)
|
|
2300
|
+
result_manager.add_result(content=f"Exclude files: {existing_file_patterns}",meta={
|
|
2301
|
+
"action": "exclude_files",
|
|
2302
|
+
"input": {
|
|
2303
|
+
"query": query
|
|
2304
|
+
}
|
|
2305
|
+
})
|
|
2306
|
+
return
|
|
2307
|
+
|
|
2308
|
+
if "/drop" in query:
|
|
2309
|
+
query = query.replace("/drop", "", 1).strip()
|
|
2310
|
+
existing_file_patterns = memory.get("exclude_files", [])
|
|
2311
|
+
existing_file_patterns.remove(query.strip())
|
|
2312
|
+
memory["exclude_files"] = existing_file_patterns
|
|
2313
|
+
save_memory()
|
|
2314
|
+
completer.refresh_files()
|
|
2315
|
+
result_manager.add_result(content=f"Dropped exclude files: {query}",meta={
|
|
2316
|
+
"action": "exclude_files",
|
|
2317
|
+
"input": {
|
|
2318
|
+
"query": query
|
|
2319
|
+
}
|
|
2320
|
+
})
|
|
2321
|
+
return
|
|
2322
|
+
|
|
2323
|
+
new_file_patterns = query.strip().split(",")
|
|
2324
|
+
|
|
2291
2325
|
existing_file_patterns = memory.get("exclude_files", [])
|
|
2292
2326
|
file_patterns_to_add = [f for f in new_file_patterns if f not in existing_file_patterns]
|
|
2293
2327
|
|
|
@@ -2383,7 +2417,7 @@ def help(query: str):
|
|
|
2383
2417
|
args = get_final_config()
|
|
2384
2418
|
product_mode = memory.get("product_mode", "lite")
|
|
2385
2419
|
llm = get_single_llm(args.chat_model or args.model, product_mode=product_mode)
|
|
2386
|
-
auto_config_tuner = ConfigAutoTuner(llm=llm, memory_config=MemoryConfig(memory=memory, save_memory_func=save_memory))
|
|
2420
|
+
auto_config_tuner = ConfigAutoTuner(args=args, llm=llm, memory_config=MemoryConfig(memory=memory, save_memory_func=save_memory))
|
|
2387
2421
|
auto_config_tuner.tune(AutoConfigRequest(query=query))
|
|
2388
2422
|
|
|
2389
2423
|
@run_in_raw_thread()
|
|
@@ -2924,9 +2958,8 @@ def main():
|
|
|
2924
2958
|
exclude_dirs(dir_names)
|
|
2925
2959
|
|
|
2926
2960
|
elif user_input.startswith("/exclude_files"):
|
|
2927
|
-
|
|
2928
|
-
|
|
2929
|
-
exclude_files(file_patterns)
|
|
2961
|
+
query = user_input[len("/exclude_files"):].strip()
|
|
2962
|
+
exclude_files(query)
|
|
2930
2963
|
|
|
2931
2964
|
elif user_input.startswith("/ask"):
|
|
2932
2965
|
query = user_input[len("/ask"):].strip()
|
|
@@ -302,8 +302,7 @@ class CommandAutoTuner:
|
|
|
302
302
|
# 提取 JSON 并转换为 AutoCommandResponse
|
|
303
303
|
try:
|
|
304
304
|
response = to_model(content, AutoCommandResponse)
|
|
305
|
-
if response.suggestions:
|
|
306
|
-
print(response)
|
|
305
|
+
if response.suggestions:
|
|
307
306
|
command = response.suggestions[0].command
|
|
308
307
|
parameters = response.suggestions[0].parameters
|
|
309
308
|
if parameters:
|
|
@@ -507,11 +506,21 @@ class CommandAutoTuner:
|
|
|
507
506
|
如果你检测到用户的coding执行结果,缺少必要的文件修改,可以尝试使用该函数先添加文件再执行coding。
|
|
508
507
|
</description>
|
|
509
508
|
<usage>
|
|
510
|
-
该方法只有一个参数 args,args
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
509
|
+
该方法只有一个参数 args,args 是一个列表,列表的元素是字符串。
|
|
510
|
+
|
|
511
|
+
如果没有包含子指令,单纯的添加文件,那么 args 列表的元素是文件路径,注意我们需要使用绝对路径。
|
|
512
|
+
|
|
513
|
+
使用例子:
|
|
514
|
+
|
|
515
|
+
add_files(args=["/absolute/path/to/file1.py"])
|
|
516
|
+
|
|
517
|
+
也支持glob 语法,例如:
|
|
518
|
+
|
|
519
|
+
add_files(args=["**/*.py"])
|
|
520
|
+
|
|
521
|
+
这样会把项目根目录下的所有.py文件添加到活跃区,尽量确保少的添加文件。
|
|
522
|
+
|
|
523
|
+
如果是有子指令,参考下面是常见的子指令说明。
|
|
515
524
|
|
|
516
525
|
## /refresh 刷新文件列表
|
|
517
526
|
刷新文件列表
|
|
@@ -641,9 +650,10 @@ class CommandAutoTuner:
|
|
|
641
650
|
## editblock_similarity: editblock相似度阈值
|
|
642
651
|
- editblock相似度阈值,取值范围为0-1,默认值为0.9。如果设置的太低,虽然能合并进去,但是会引入错误。推荐不要修改该值。
|
|
643
652
|
|
|
644
|
-
## generate_times_same_model:
|
|
653
|
+
## generate_times_same_model: 相同模型生成次数,也叫采样数
|
|
645
654
|
当进行生成代码时,大模型会对同一个需求生成多份代码,然后会使用 generate_rerank_model 模型对多份代码进行重排序,
|
|
646
655
|
然后选择得分最高的代码。一般次数越多,最终得到正确的代码概率越高。默认值为1,推荐设置为3。但是设置值越多,可能速度就越慢,消耗的token也越多。
|
|
656
|
+
当用户提到,帮我采样数设置为3, 那么你就设置该参数即可。
|
|
647
657
|
|
|
648
658
|
## skip_filter_index: 是否跳过索引过滤
|
|
649
659
|
是否跳过根据用户的query 自动查找上下文。推荐设置为 false
|
|
@@ -756,6 +766,8 @@ class CommandAutoTuner:
|
|
|
756
766
|
coding(query="@auth.py 添加JWT认证")
|
|
757
767
|
coding(query="@@login 优化错误处理")
|
|
758
768
|
coding(query="<img>design/flow.png</img> 实现这个流程图的功能")
|
|
769
|
+
|
|
770
|
+
在使用 coding 函数时,建议通过 ask_user 来确认是否执行 coding 函数,除非用户明确说不要询问,直接执行。
|
|
759
771
|
</usage>
|
|
760
772
|
</command>
|
|
761
773
|
|
|
@@ -1169,15 +1181,23 @@ class CommandAutoTuner:
|
|
|
1169
1181
|
<name>exclude_files</name>
|
|
1170
1182
|
<description>排除指定文件。</description>
|
|
1171
1183
|
<usage>
|
|
1172
|
-
该命令接受一个参数
|
|
1184
|
+
该命令接受一个参数 query, 为要排除的文件模式字符串,多个文件模式用逗号分隔。
|
|
1173
1185
|
|
|
1174
1186
|
使用例子,比如你想要排除 package-lock.json 文件,你可以这样调用:
|
|
1175
1187
|
|
|
1176
|
-
exclude_files(
|
|
1188
|
+
exclude_files(query="regex://.*/package-lock\.json")
|
|
1177
1189
|
|
|
1178
1190
|
注意:
|
|
1179
1191
|
- 文件模式字符串必须以 regex:// 开头
|
|
1180
1192
|
- regex:// 后面部分是标准的正则表达式
|
|
1193
|
+
|
|
1194
|
+
也支持子命令:
|
|
1195
|
+
/list 列出当前排除的文件模式
|
|
1196
|
+
/drop 删除指定的文件模式
|
|
1197
|
+
|
|
1198
|
+
使用例子:
|
|
1199
|
+
exclude_files(query="/list")
|
|
1200
|
+
exclude_files(query="/drop regex://.*/package-lock\.json")
|
|
1181
1201
|
</usage>
|
|
1182
1202
|
</command>
|
|
1183
1203
|
</commands>
|
|
@@ -117,6 +117,7 @@ MESSAGES = {
|
|
|
117
117
|
"quick_filter_stats": "{{ model_names }} Quick filter completed in {{ elapsed_time }} seconds, input tokens: {{ input_tokens }}, output tokens: {{ output_tokens }}, input cost: {{ input_cost }}, output cost: {{ output_cost }} speed: {{ speed }} tokens/s",
|
|
118
118
|
"upsert_file": "✅ Updated file: {{ file_path }}",
|
|
119
119
|
"unmerged_blocks_title": "Unmerged Blocks",
|
|
120
|
+
"merged_blocks_title": "Merged Changes",
|
|
120
121
|
"quick_filter_title": "{{ model_name }} is analyzing how to filter context...",
|
|
121
122
|
"quick_filter_failed": "❌ Quick filter failed: {{ error }}. ",
|
|
122
123
|
"unmerged_file_path": "File: {{file_path}}",
|
|
@@ -157,6 +158,8 @@ MESSAGES = {
|
|
|
157
158
|
"conf_not_found": "Configuration file not found: {{path}}",
|
|
158
159
|
"index_export_success": "Index exported successfully: {{path}}",
|
|
159
160
|
"index_import_success": "Index imported successfully: {{path}}",
|
|
161
|
+
"edits_title": "edits",
|
|
162
|
+
"diff_blocks_title":"diff blocks"
|
|
160
163
|
},
|
|
161
164
|
"zh": {
|
|
162
165
|
"invalid_file_pattern": "无效的文件模式: {{file_pattern}}. 例如: regex://.*/package-lock\\.json",
|
|
@@ -273,6 +276,7 @@ MESSAGES = {
|
|
|
273
276
|
"merge_success": "✅ 成功合并了 {{ num_files }} 个文件中的更改 {{ num_changes }}/{{ total_blocks }} 个代码块。",
|
|
274
277
|
"no_changes_made": "⚠️ 未对任何文件进行更改。这个原因可能是因为coding函数生成的文本块格式有问题,导致无法合并进项目",
|
|
275
278
|
"unmerged_blocks_title": "未合并代码块",
|
|
279
|
+
"merged_blocks_title": "合并的更改",
|
|
276
280
|
"unmerged_file_path": "文件: {{file_path}}",
|
|
277
281
|
"unmerged_search_block": "Search Block({{similarity}}):",
|
|
278
282
|
"unmerged_replace_block": "Replace Block:",
|
|
@@ -311,6 +315,8 @@ MESSAGES = {
|
|
|
311
315
|
"only_one_merge_result_success": "✅ 只有一个合并结果成功,返回该候选",
|
|
312
316
|
"index_export_success": "索引导出成功: {{path}}",
|
|
313
317
|
"index_import_success": "索引导入成功: {{path}}",
|
|
318
|
+
"edits_title": "编辑块",
|
|
319
|
+
"diff_blocks_title": "差异块",
|
|
314
320
|
}}
|
|
315
321
|
|
|
316
322
|
|
|
@@ -14,6 +14,8 @@ from byzerllm.utils.str2model import to_model
|
|
|
14
14
|
from autocoder.utils.auto_coder_utils.chat_stream_out import stream_out
|
|
15
15
|
from autocoder.common.result_manager import ResultManager
|
|
16
16
|
from autocoder.utils import llms as llms_utils
|
|
17
|
+
from autocoder.common import AutoCoderArgs
|
|
18
|
+
|
|
17
19
|
logger = logging.getLogger(__name__)
|
|
18
20
|
|
|
19
21
|
class ConfigMessage(BaseModel):
|
|
@@ -120,9 +122,10 @@ class AutoConfigResponse(BaseModel):
|
|
|
120
122
|
reasoning: str = ""
|
|
121
123
|
|
|
122
124
|
class ConfigAutoTuner:
|
|
123
|
-
def __init__(self, llm: Union[byzerllm.ByzerLLM, byzerllm.SimpleByzerLLM], memory_config: MemoryConfig):
|
|
125
|
+
def __init__(self,args: AutoCoderArgs, llm: Union[byzerllm.ByzerLLM, byzerllm.SimpleByzerLLM], memory_config: MemoryConfig):
|
|
124
126
|
self.llm = llm
|
|
125
127
|
self.memory_config = memory_config
|
|
128
|
+
self.args = args
|
|
126
129
|
|
|
127
130
|
|
|
128
131
|
def configure(self, conf: str, skip_print: bool = False) -> None:
|
|
@@ -528,6 +528,37 @@ class CodeAutoMergeDiff:
|
|
|
528
528
|
failed_blocks=failed_blocks
|
|
529
529
|
)
|
|
530
530
|
|
|
531
|
+
def print_edits(self, edits: List[Tuple[str, List[str]]]):
|
|
532
|
+
"""Print diffs for user review using rich library"""
|
|
533
|
+
from rich.syntax import Syntax
|
|
534
|
+
from rich.panel import Panel
|
|
535
|
+
|
|
536
|
+
# Group edits by file path
|
|
537
|
+
file_edits = {}
|
|
538
|
+
for path, hunk in edits:
|
|
539
|
+
if path not in file_edits:
|
|
540
|
+
file_edits[path] = []
|
|
541
|
+
file_edits[path].append(hunk)
|
|
542
|
+
|
|
543
|
+
# Generate formatted text for each file
|
|
544
|
+
formatted_text = ""
|
|
545
|
+
for path, hunks in file_edits.items():
|
|
546
|
+
formatted_text += f"##File: {path}\n"
|
|
547
|
+
for hunk in hunks:
|
|
548
|
+
formatted_text += "".join(hunk)
|
|
549
|
+
formatted_text += "\n"
|
|
550
|
+
|
|
551
|
+
# Print with rich panel
|
|
552
|
+
self.printer.print_in_terminal("edits_title", style="bold green")
|
|
553
|
+
self.printer.console.print(
|
|
554
|
+
Panel(
|
|
555
|
+
Syntax(formatted_text, "diff", theme="monokai"),
|
|
556
|
+
title="Edits",
|
|
557
|
+
border_style="green",
|
|
558
|
+
expand=False
|
|
559
|
+
)
|
|
560
|
+
)
|
|
561
|
+
|
|
531
562
|
def _merge_code(self, content: str,force_skip_git:bool=False):
|
|
532
563
|
total = 0
|
|
533
564
|
|
|
@@ -544,9 +575,12 @@ class CodeAutoMergeDiff:
|
|
|
544
575
|
return
|
|
545
576
|
|
|
546
577
|
edits = self.get_edits(content)
|
|
547
|
-
self.apply_edits(edits)
|
|
578
|
+
self.apply_edits(edits)
|
|
548
579
|
|
|
549
580
|
self.printer.print_in_terminal("files_merged_total", total=total)
|
|
550
581
|
if not force_skip_git and not self.args.skip_commit:
|
|
551
582
|
commit_result = git_utils.commit_changes(self.args.source_dir, f"auto_coder_{file_name}_{md5}\n{self.args.query}")
|
|
552
583
|
git_utils.print_commit_info(commit_result=commit_result)
|
|
584
|
+
else:
|
|
585
|
+
# Print edits for review
|
|
586
|
+
self.print_edits(edits)
|
|
@@ -287,6 +287,7 @@ class CodeAutoMergeEditBlock:
|
|
|
287
287
|
for path, content in file_content_mapping.items()],
|
|
288
288
|
failed_blocks=failed_blocks
|
|
289
289
|
)
|
|
290
|
+
|
|
290
291
|
|
|
291
292
|
def _merge_code(self, content: str, force_skip_git: bool = False):
|
|
292
293
|
file_content = FileUtils.read_file(self.args.file)
|
|
@@ -391,6 +392,7 @@ class CodeAutoMergeEditBlock:
|
|
|
391
392
|
style="red"
|
|
392
393
|
)
|
|
393
394
|
return
|
|
395
|
+
|
|
394
396
|
# Now, apply the changes
|
|
395
397
|
for file_path, new_content in file_content_mapping.items():
|
|
396
398
|
os.makedirs(os.path.dirname(file_path), exist_ok=True)
|
|
@@ -431,10 +433,14 @@ class CodeAutoMergeEditBlock:
|
|
|
431
433
|
self.git_require_msg(source_dir=self.args.source_dir, error=str(e)),
|
|
432
434
|
style="red"
|
|
433
435
|
)
|
|
436
|
+
else:
|
|
437
|
+
self.print_merged_blocks(merged_blocks)
|
|
438
|
+
|
|
434
439
|
self.printer.print_in_terminal("merge_success",
|
|
435
440
|
num_files=len(file_content_mapping.keys()),
|
|
436
441
|
num_changes=len(changes_to_make),
|
|
437
442
|
total_blocks=len(codes))
|
|
443
|
+
|
|
438
444
|
else:
|
|
439
445
|
self.printer.print_in_terminal("no_changes_made")
|
|
440
446
|
|
|
@@ -455,3 +461,39 @@ class CodeAutoMergeEditBlock:
|
|
|
455
461
|
syntax = Syntax(update, "python", theme="monokai", line_numbers=True)
|
|
456
462
|
self.printer.console.print(Panel(syntax, expand=False))
|
|
457
463
|
self.printer.print_in_terminal("unmerged_blocks_total", num_blocks=len(unmerged_blocks), style="bold red")
|
|
464
|
+
|
|
465
|
+
|
|
466
|
+
def print_merged_blocks(self, merged_blocks: List[tuple]):
|
|
467
|
+
"""Print search/replace blocks for user review using rich library"""
|
|
468
|
+
from rich.syntax import Syntax
|
|
469
|
+
from rich.panel import Panel
|
|
470
|
+
|
|
471
|
+
# Group blocks by file path
|
|
472
|
+
file_blocks = {}
|
|
473
|
+
for file_path, head, update, similarity in merged_blocks:
|
|
474
|
+
if file_path not in file_blocks:
|
|
475
|
+
file_blocks[file_path] = []
|
|
476
|
+
file_blocks[file_path].append((head, update, similarity))
|
|
477
|
+
|
|
478
|
+
# Generate formatted text for each file
|
|
479
|
+
formatted_text = ""
|
|
480
|
+
for file_path, blocks in file_blocks.items():
|
|
481
|
+
formatted_text += f"##File: {file_path}\n"
|
|
482
|
+
for head, update, similarity in blocks:
|
|
483
|
+
formatted_text += "<<<<<<< SEARCH\n"
|
|
484
|
+
formatted_text += head + "\n"
|
|
485
|
+
formatted_text += "=======\n"
|
|
486
|
+
formatted_text += update + "\n"
|
|
487
|
+
formatted_text += ">>>>>>> REPLACE\n"
|
|
488
|
+
formatted_text += "\n"
|
|
489
|
+
|
|
490
|
+
# Print with rich panel
|
|
491
|
+
self.printer.print_in_terminal("merged_blocks_title", style="bold green")
|
|
492
|
+
self.printer.console.print(
|
|
493
|
+
Panel(
|
|
494
|
+
Syntax(formatted_text, "diff", theme="monokai"),
|
|
495
|
+
title="Merged Changes",
|
|
496
|
+
border_style="green",
|
|
497
|
+
expand=False
|
|
498
|
+
)
|
|
499
|
+
)
|
{auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/code_auto_merge_strict_diff.py
RENAMED
|
@@ -221,6 +221,37 @@ class CodeAutoMergeStrictDiff:
|
|
|
221
221
|
failed_blocks=failed_blocks
|
|
222
222
|
)
|
|
223
223
|
|
|
224
|
+
def print_diff_blocks(self, diff_blocks: List[PathAndCode]):
|
|
225
|
+
"""Print diff blocks for user review using rich library"""
|
|
226
|
+
from rich.syntax import Syntax
|
|
227
|
+
from rich.panel import Panel
|
|
228
|
+
|
|
229
|
+
# Group blocks by file path
|
|
230
|
+
file_blocks = {}
|
|
231
|
+
for block in diff_blocks:
|
|
232
|
+
if block.path not in file_blocks:
|
|
233
|
+
file_blocks[block.path] = []
|
|
234
|
+
file_blocks[block.path].append(block.content)
|
|
235
|
+
|
|
236
|
+
# Generate formatted text for each file
|
|
237
|
+
formatted_text = ""
|
|
238
|
+
for path, contents in file_blocks.items():
|
|
239
|
+
formatted_text += f"##File: {path}\n"
|
|
240
|
+
for content in contents:
|
|
241
|
+
formatted_text += content + "\n"
|
|
242
|
+
formatted_text += "\n"
|
|
243
|
+
|
|
244
|
+
# Print with rich panel
|
|
245
|
+
self.printer.print_in_terminal("diff_blocks_title", style="bold green")
|
|
246
|
+
self.printer.console.print(
|
|
247
|
+
Panel(
|
|
248
|
+
Syntax(formatted_text, "diff", theme="monokai"),
|
|
249
|
+
title="Diff Blocks",
|
|
250
|
+
border_style="green",
|
|
251
|
+
expand=False
|
|
252
|
+
)
|
|
253
|
+
)
|
|
254
|
+
|
|
224
255
|
def _merge_code(self, content: str, force_skip_git: bool = False):
|
|
225
256
|
total = 0
|
|
226
257
|
|
|
@@ -236,7 +267,8 @@ class CodeAutoMergeStrictDiff:
|
|
|
236
267
|
self.printer.print_in_terminal("git_init_required", style="red", source_dir=self.args.source_dir, error=str(e))
|
|
237
268
|
return
|
|
238
269
|
|
|
239
|
-
diff_blocks = self.parse_diff_block(content)
|
|
270
|
+
diff_blocks = self.parse_diff_block(content)
|
|
271
|
+
|
|
240
272
|
for diff_blocks in diff_blocks:
|
|
241
273
|
path = diff_blocks.path
|
|
242
274
|
content = diff_blocks.content
|
|
@@ -255,6 +287,9 @@ class CodeAutoMergeStrictDiff:
|
|
|
255
287
|
if not force_skip_git and not self.args.skip_commit:
|
|
256
288
|
commit_result = git_utils.commit_changes(self.args.source_dir, f"auto_coder_{file_name}_{md5}\n{self.args.query}")
|
|
257
289
|
git_utils.print_commit_info(commit_result=commit_result)
|
|
290
|
+
else:
|
|
291
|
+
# Print diff blocks for review
|
|
292
|
+
self.print_diff_blocks(diff_blocks)
|
|
258
293
|
|
|
259
294
|
@byzerllm.prompt(render="jinja2")
|
|
260
295
|
def git_require_msg(self, source_dir: str, error: str) -> str:
|
|
@@ -110,8 +110,8 @@ def build_index_and_filter_files(
|
|
|
110
110
|
printer.print_in_terminal("quick_filter_start", style="blue", model_name=model_name)
|
|
111
111
|
quick_filter = QuickFilter(index_manager,stats,sources)
|
|
112
112
|
quick_filter_result = quick_filter.filter(index_manager.read_index(),args.query)
|
|
113
|
-
if quick_filter_result.has_error:
|
|
114
|
-
|
|
113
|
+
# if quick_filter_result.has_error:
|
|
114
|
+
# raise KeyboardInterrupt(printer.get_message_from_key_with_format("quick_filter_failed",error=quick_filter_result.error_message))
|
|
115
115
|
|
|
116
116
|
# Merge quick filter results into final_files
|
|
117
117
|
if args.context_prune:
|
|
@@ -128,8 +128,9 @@ def build_index_and_filter_files(
|
|
|
128
128
|
model_name = "unknown(without default model name)"
|
|
129
129
|
printer.print_in_terminal("normal_filter_start", style="blue",model_name=model_name)
|
|
130
130
|
normal_filter = NormalFilter(index_manager,stats,sources)
|
|
131
|
+
normal_filter_result = normal_filter.filter(index_manager.read_index(),args.query)
|
|
131
132
|
# Merge normal filter results into final_files
|
|
132
|
-
final_files.update(
|
|
133
|
+
final_files.update(normal_filter_result.files)
|
|
133
134
|
|
|
134
135
|
|
|
135
136
|
def display_table_and_get_selections(data):
|
|
@@ -212,7 +213,7 @@ def build_index_and_filter_files(
|
|
|
212
213
|
|
|
213
214
|
# Phase 6: File selection and limitation
|
|
214
215
|
printer.print_in_terminal("phase6_file_selection")
|
|
215
|
-
phase_start = time.monotonic()
|
|
216
|
+
phase_start = time.monotonic()
|
|
216
217
|
|
|
217
218
|
if args.index_filter_file_num > 0:
|
|
218
219
|
logger.info(
|
|
@@ -278,7 +279,7 @@ def build_index_and_filter_files(
|
|
|
278
279
|
event=CommunicateEvent(
|
|
279
280
|
event_type=CommunicateEventType.CODE_INDEX_FILTER_FILE_SELECTED.value,
|
|
280
281
|
data=json.dumps([
|
|
281
|
-
(file
|
|
282
|
+
(file["file_path"], file.reason)
|
|
282
283
|
for file in final_files.values()
|
|
283
284
|
if file.file_path in depulicated_sources
|
|
284
285
|
])
|
|
@@ -31,7 +31,7 @@ class NormalFilterResult(BaseModel):
|
|
|
31
31
|
files: Dict[str, TargetFile]
|
|
32
32
|
has_error: bool
|
|
33
33
|
error_message: Optional[str] = None
|
|
34
|
-
file_positions: Optional[Dict[str, int]]
|
|
34
|
+
file_positions: Optional[Dict[str, int]] = {}
|
|
35
35
|
|
|
36
36
|
class NormalFilter():
|
|
37
37
|
def __init__(self, index_manager: IndexManager,stats:Dict[str,Any],sources:List[SourceCode]):
|
|
@@ -154,7 +154,7 @@ class QuickFilter():
|
|
|
154
154
|
else:
|
|
155
155
|
# 其他chunks直接使用with_llm
|
|
156
156
|
meta_holder = MetaHolder()
|
|
157
|
-
start_time = time.monotonic()
|
|
157
|
+
start_time = time.monotonic()
|
|
158
158
|
file_number_list = self.quick_filter_files.with_llm(self.index_manager.index_filter_llm).with_meta(
|
|
159
159
|
meta_holder).with_return_type(FileNumberList).run(chunk, self.args.query)
|
|
160
160
|
end_time = time.monotonic()
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.1.267"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.1.265"
|
|
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.265 → auto_coder-0.1.267}/src/autocoder/common/code_auto_generate_editblock.py
RENAMED
|
File without changes
|
{auto_coder-0.1.265 → auto_coder-0.1.267}/src/autocoder/common/code_auto_generate_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
|
{auto_coder-0.1.265 → auto_coder-0.1.267}/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.265 → auto_coder-0.1.267}/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
|
|
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.265 → auto_coder-0.1.267}/src/autocoder/utils/auto_coder_utils/chat_stream_out.py
RENAMED
|
File without changes
|
{auto_coder-0.1.265 → auto_coder-0.1.267}/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
|