auto-coder 0.1.300__tar.gz → 0.1.302__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.300 → auto_coder-0.1.302}/PKG-INFO +1 -1
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/auto_coder.egg-info/PKG-INFO +1 -1
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/auto_coder.py +1 -4
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/auto_coder_runner.py +2 -2
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/commands/auto_command.py +51 -11
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/__init__.py +4 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/action_yml_file_manager.py +76 -11
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/auto_coder_lang.py +2 -2
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/code_auto_merge.py +15 -1
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/code_auto_merge_diff.py +15 -1
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/code_auto_merge_editblock.py +15 -1
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/code_auto_merge_strict_diff.py +14 -1
- auto_coder-0.1.302/src/autocoder/version.py +1 -0
- auto_coder-0.1.300/src/autocoder/version.py +0 -1
- {auto_coder-0.1.300 → auto_coder-0.1.302}/LICENSE +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/README.md +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/setup.cfg +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/setup.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/auto_coder.egg-info/SOURCES.txt +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/auto_coder.egg-info/dependency_links.txt +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/auto_coder.egg-info/entry_points.txt +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/auto_coder.egg-info/requires.txt +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/auto_coder.egg-info/top_level.txt +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/__init__.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/agent/__init__.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/agent/auto_demand_organizer.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/agent/auto_filegroup.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/agent/auto_guess_query.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/agent/auto_learn_from_commit.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/agent/auto_review_commit.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/agent/auto_tool.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/agent/coder.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/agent/designer.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/agent/planner.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/agent/project_reader.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/auto_coder_rag.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/auto_coder_server.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/benchmark.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/chat/__init__.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/chat_auto_coder.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/chat_auto_coder_lang.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/command_args.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/command_parser.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/commands/__init__.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/commands/auto_web.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/commands/tools.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/JupyterClient.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/ShellClient.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/anything2images.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/anything2img.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/audio.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/auto_configure.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/buildin_tokenizer.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/chunk_validation.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/cleaner.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/code_auto_execute.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/code_auto_generate.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/code_auto_generate_diff.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/code_auto_generate_editblock.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/code_auto_generate_strict_diff.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/code_modification_ranker.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/command_completer.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/command_generator.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/command_templates.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/computer_use.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/conf_import_export.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/conf_validator.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/const.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/context_pruner.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/conversation_pruner.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/files.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/git_utils.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/global_cancel.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/image_to_page.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/index_import_export.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/interpreter.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/llm_rerank.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/mcp_hub.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/mcp_server.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/mcp_servers/__init__.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/mcp_servers/mcp_server_gpt4o_mini_search.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/mcp_servers/mcp_server_perplexity.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/mcp_tools.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/memory_manager.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/model_speed_test.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/printer.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/recall_validation.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/result_manager.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/screenshots.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/search.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/search_replace.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/shells.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/stats_panel.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/sys_prompt.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/text.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/types.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/utils_code_auto_generate.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/data/byzerllm.md +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/data/tokenizer.json +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/db/__init__.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/db/store.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/dispacher/__init__.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/dispacher/actions/__init__.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/dispacher/actions/action.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/dispacher/actions/copilot.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/dispacher/actions/plugins/__init__.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/dispacher/actions/plugins/action_regex_project.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/dispacher/actions/plugins/action_translate.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/index/__init__.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/index/entry.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/index/filter/__init__.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/index/filter/normal_filter.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/index/filter/quick_filter.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/index/for_command.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/index/index.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/index/symbols_utils.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/index/types.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/lang.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/models.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/plugins/__init__.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/plugins/dynamic_completion_example.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/plugins/git_helper_plugin.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/plugins/sample_plugin.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/plugins/token_helper_plugin.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/plugins/utils.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/privacy/__init__.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/privacy/model_filter.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/pyproject/__init__.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/__init__.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/api_server.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/cache/__init__.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/cache/base_cache.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/cache/byzer_storage_cache.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/cache/cache_result_merge.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/cache/file_monitor_cache.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/cache/local_byzer_storage_cache.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/cache/local_duckdb_storage_cache.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/cache/rag_file_meta.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/cache/simple_cache.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/conversation_to_queries.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/doc_filter.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/document_retriever.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/lang.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/llm_wrapper.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/loaders/__init__.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/loaders/docx_loader.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/loaders/excel_loader.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/loaders/pdf_loader.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/loaders/ppt_loader.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/long_context_rag.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/qa_conversation_strategy.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/rag_config.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/rag_entry.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/raw_rag.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/relevant_utils.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/searchable.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/simple_directory_reader.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/simple_rag.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/stream_event/__init__.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/stream_event/event_writer.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/stream_event/types.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/token_checker.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/token_counter.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/token_limiter.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/token_limiter_utils.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/types.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/utils.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/rag/variable_holder.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/regexproject/__init__.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/suffixproject/__init__.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/tsproject/__init__.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/utils/__init__.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/utils/_markitdown.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/utils/auto_coder_utils/__init__.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/utils/auto_coder_utils/chat_stream_out.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/utils/auto_project_type.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/utils/chat_auto_coder_utils/__init__.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/utils/conversation_store.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/utils/llm_client_interceptors.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/utils/llms.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/utils/log_capture.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/utils/model_provider_selector.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/utils/multi_turn.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/utils/operate_config_api.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/utils/print_table.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/utils/project_structure.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/utils/queue_communicate.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/utils/request_event_queue.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/utils/request_queue.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/utils/rest.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/utils/stream_thinking.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/utils/tests.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/utils/thread_utils.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/utils/types.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/tests/test_action_regex_project.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/tests/test_action_yml_file_manager.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/tests/test_chat_auto_coder.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/tests/test_code_auto_merge_editblock.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/tests/test_command_completer.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/tests/test_planner.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/tests/test_plugins.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/tests/test_privacy.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/tests/test_queue_communicate.py +0 -0
- {auto_coder-0.1.300 → auto_coder-0.1.302}/tests/test_symbols_utils.py +0 -0
|
@@ -120,12 +120,9 @@ def main(input_args: Optional[List[str]] = None):
|
|
|
120
120
|
if raw_args.command == "revert":
|
|
121
121
|
repo_path = args.source_dir
|
|
122
122
|
|
|
123
|
-
file_content = open(args.file).read()
|
|
124
|
-
md5 = hashlib.md5(file_content.encode("utf-8")).hexdigest()
|
|
125
123
|
file_name = os.path.basename(args.file)
|
|
126
|
-
|
|
127
124
|
revert_result = git_utils.revert_changes(
|
|
128
|
-
repo_path, f"auto_coder_{file_name}
|
|
125
|
+
repo_path, f"auto_coder_{file_name}"
|
|
129
126
|
)
|
|
130
127
|
if revert_result:
|
|
131
128
|
print(f"Successfully reverted changes for {args.file}")
|
|
@@ -1402,7 +1402,7 @@ def commit(query: str):
|
|
|
1402
1402
|
md5 = hashlib.md5(file_content.encode("utf-8")).hexdigest()
|
|
1403
1403
|
file_name = os.path.basename(execute_file)
|
|
1404
1404
|
commit_result = git_utils.commit_changes(
|
|
1405
|
-
".", f"{commit_message}\nauto_coder_{file_name}
|
|
1405
|
+
".", f"{commit_message}\nauto_coder_{file_name}"
|
|
1406
1406
|
)
|
|
1407
1407
|
git_utils.print_commit_info(commit_result=commit_result)
|
|
1408
1408
|
if commit_message:
|
|
@@ -1542,7 +1542,7 @@ def coding(query: str):
|
|
|
1542
1542
|
cmd = ["--file", execute_file]
|
|
1543
1543
|
auto_coder_main(cmd)
|
|
1544
1544
|
result_manager = ResultManager()
|
|
1545
|
-
result_manager.append(content="", meta={"commit_message": f"auto_coder_{latest_yaml_file}
|
|
1545
|
+
result_manager.append(content="", meta={"commit_message": f"auto_coder_{latest_yaml_file}","action": "coding", "input":{
|
|
1546
1546
|
"query": query
|
|
1547
1547
|
}})
|
|
1548
1548
|
|
|
@@ -25,7 +25,7 @@ from autocoder.common.auto_configure import config_readme
|
|
|
25
25
|
from autocoder.utils.auto_project_type import ProjectTypeAnalyzer
|
|
26
26
|
from rich.text import Text
|
|
27
27
|
from autocoder.common.mcp_server import get_mcp_server,McpServerInfoRequest
|
|
28
|
-
|
|
28
|
+
from autocoder.common.action_yml_file_manager import ActionYmlFileManager
|
|
29
29
|
class CommandMessage(BaseModel):
|
|
30
30
|
role: str
|
|
31
31
|
content: str
|
|
@@ -41,35 +41,52 @@ class CommandConversation(BaseModel):
|
|
|
41
41
|
current_conversation: List[CommandMessage]
|
|
42
42
|
|
|
43
43
|
|
|
44
|
-
def load_memory_file() -> CommandConversation:
|
|
45
|
-
"""Load command conversations from memory file"""
|
|
44
|
+
def load_memory_file(args: AutoCoderArgs) -> CommandConversation:
|
|
45
|
+
"""Load command conversations from memory file"""
|
|
46
|
+
|
|
46
47
|
memory_dir = os.path.join(".auto-coder", "memory")
|
|
47
48
|
file_path = os.path.join(memory_dir, "command_chat_history.json")
|
|
48
49
|
if os.path.exists(file_path):
|
|
49
50
|
with open(file_path, "r", encoding="utf-8") as f:
|
|
50
51
|
try:
|
|
51
|
-
|
|
52
|
+
conversation = CommandConversation.model_validate_json(f.read())
|
|
53
|
+
conversation.current_conversation = conversation.current_conversation
|
|
54
|
+
return conversation
|
|
52
55
|
except Exception:
|
|
53
56
|
return CommandConversation(history={}, current_conversation=[])
|
|
54
57
|
return CommandConversation(history={}, current_conversation=[])
|
|
55
58
|
|
|
56
59
|
|
|
60
|
+
class TimeBasedStrategy:
|
|
61
|
+
def __init__(self, max_idle_time=3600): # 1 hour in seconds
|
|
62
|
+
self.max_idle_time = max_idle_time
|
|
63
|
+
|
|
64
|
+
def should_archive(self, last_message_time):
|
|
65
|
+
"""Check if the conversation should be archived based on last message time"""
|
|
66
|
+
current_time = time.time()
|
|
67
|
+
return current_time - last_message_time > self.max_idle_time
|
|
68
|
+
|
|
57
69
|
def save_to_memory_file(query: str, response: str):
|
|
58
70
|
"""Save command conversation to memory file using CommandConversation structure"""
|
|
59
71
|
memory_dir = os.path.join(".auto-coder", "memory")
|
|
60
72
|
os.makedirs(memory_dir, exist_ok=True)
|
|
61
73
|
file_path = os.path.join(memory_dir, "command_chat_history.json")
|
|
74
|
+
|
|
75
|
+
# Initialize time-based strategy
|
|
76
|
+
time_strategy = TimeBasedStrategy()
|
|
77
|
+
|
|
62
78
|
# Create new message objects
|
|
79
|
+
current_time = time.time()
|
|
63
80
|
user_msg = CommandMessage(role="user", content=query)
|
|
64
81
|
assistant_msg = CommandMessage(role="assistant", content=response)
|
|
65
82
|
|
|
66
83
|
extended_user_msg = ExtendedCommandMessage(
|
|
67
84
|
message=user_msg,
|
|
68
|
-
timestamp=str(int(
|
|
85
|
+
timestamp=str(int(current_time))
|
|
69
86
|
)
|
|
70
87
|
extended_assistant_msg = ExtendedCommandMessage(
|
|
71
88
|
message=assistant_msg,
|
|
72
|
-
timestamp=str(int(
|
|
89
|
+
timestamp=str(int(current_time))
|
|
73
90
|
)
|
|
74
91
|
|
|
75
92
|
# Load existing conversation or create new
|
|
@@ -78,6 +95,14 @@ def save_to_memory_file(query: str, response: str):
|
|
|
78
95
|
try:
|
|
79
96
|
existing_conv = CommandConversation.model_validate_json(
|
|
80
97
|
f.read())
|
|
98
|
+
# Check if we should archive current conversation
|
|
99
|
+
if existing_conv.current_conversation:
|
|
100
|
+
last_message_time = float(existing_conv.current_conversation[-1].timestamp)
|
|
101
|
+
if time_strategy.should_archive(last_message_time):
|
|
102
|
+
# Move current conversation to history
|
|
103
|
+
timestamp = str(int(last_message_time))
|
|
104
|
+
existing_conv.history[timestamp] = existing_conv.current_conversation
|
|
105
|
+
existing_conv.current_conversation = []
|
|
81
106
|
except Exception:
|
|
82
107
|
existing_conv = CommandConversation(
|
|
83
108
|
history={},
|
|
@@ -174,8 +199,8 @@ class CommandAutoTuner:
|
|
|
174
199
|
|
|
175
200
|
def get_conversations(self) -> List[CommandMessage]:
|
|
176
201
|
"""Get conversation history from memory file"""
|
|
177
|
-
conversation = load_memory_file()
|
|
178
|
-
return [
|
|
202
|
+
conversation = load_memory_file(args=self.args)
|
|
203
|
+
return [command_message.message for command_message in conversation.current_conversation]
|
|
179
204
|
|
|
180
205
|
@byzerllm.prompt()
|
|
181
206
|
def _analyze(self, request: AutoCommandRequest) -> str:
|
|
@@ -284,7 +309,7 @@ class CommandAutoTuner:
|
|
|
284
309
|
"command_combination_readme": self._command_combination_readme.prompt()
|
|
285
310
|
}
|
|
286
311
|
|
|
287
|
-
|
|
312
|
+
@byzerllm.prompt()
|
|
288
313
|
def _command_combination_readme(self) -> str:
|
|
289
314
|
"""
|
|
290
315
|
<function_combination_readme>
|
|
@@ -311,12 +336,19 @@ class CommandAutoTuner:
|
|
|
311
336
|
### 关于对话大小的问题
|
|
312
337
|
我们对话历史以及查看的内容累计不能超过 {{ conversation_safe_zone_tokens }} 个tokens,当你读取索引文件 (get_project_map) 的时候,你可以看到
|
|
313
338
|
每个文件的tokens数,你可以根据这个信息来决定如何读取这个文件。如果不确定,使用 count_file_tokens 函数来获取文件的tokens数,再决定如何读取。
|
|
314
|
-
而对于分析一个超大文件推荐组合 read_files 带上 line_ranges 参数来读取,或者组合
|
|
339
|
+
而对于分析一个超大文件推荐组合 read_files 带上 line_ranges 参数来读取,或者组合 read_file_with_keyword_ranges 等来读取,
|
|
315
340
|
每个函数你还可以使用多次来获取更多信息。
|
|
316
341
|
|
|
317
342
|
### 善用脚本完成一些基本的操作
|
|
318
343
|
根据操作系统,终端类型,脚本类型等各种信息,在涉及到路径或者脚本的时候,需要考虑平台差异性。
|
|
319
344
|
|
|
345
|
+
### 关于查看文件的技巧
|
|
346
|
+
在使用 read_files 之前,如果你有明确的目标,比如查看这个文件某个函数在这个文件的实现,你可以先用 read_file_with_keyword_ranges 函数来大致定位,该函数会返回你看到的
|
|
347
|
+
内容的行号范围,你可以通过拓展这个行号范围继续使用 read_file_with_line_ranges 来查看完整函数信息,或者使用 read_files 函数带上 line_ranges 参数来精确读取。
|
|
348
|
+
|
|
349
|
+
如果你没有明确目标,需要单纯查看这个文件获取必要的信息,可以先通过 count_file_tokens 函数来获取文件的tokens数,如果数目小于安全对话窗口的tokens数的1/2, 那么可以直接用
|
|
350
|
+
read_files 函数来读取,否则建议一次读取200-600行,多次读取直到找到合适的信息。
|
|
351
|
+
|
|
320
352
|
## 其他一些注意事项
|
|
321
353
|
1. 使用 read_files 时,一次性读取文件数量不要超过1个,每次只读取200行。如果发现读取的内容不够,则继续读取下面200行。
|
|
322
354
|
2. 确实有必要才使用 get_project_structure 函数,否则可以多使用 list_files 函数来查看目录。
|
|
@@ -350,8 +382,16 @@ class CommandAutoTuner:
|
|
|
350
382
|
# 获取 prompt 内容
|
|
351
383
|
prompt = self._analyze.prompt(request)
|
|
352
384
|
|
|
385
|
+
# 获取对当前项目变更的最近8条历史人物
|
|
386
|
+
action_yml_file_manager = ActionYmlFileManager(self.args.source_dir)
|
|
387
|
+
history_tasks = action_yml_file_manager.to_tasks_prompt(limit=8)
|
|
388
|
+
new_messages = []
|
|
389
|
+
if self.args.enable_task_history:
|
|
390
|
+
new_messages.append({"role": "user", "content": history_tasks})
|
|
391
|
+
new_messages.append({"role": "assistant", "content": "好的,我知道最近的任务对项目的变更了,我会参考这些来更好的理解你的需求。"})
|
|
392
|
+
|
|
353
393
|
# 构造对话上下文
|
|
354
|
-
conversations = [{"role": "user", "content": prompt}]
|
|
394
|
+
conversations = new_messages + [{"role": "user", "content": prompt}]
|
|
355
395
|
|
|
356
396
|
# 使用 stream_out 进行输出
|
|
357
397
|
printer = Printer()
|
|
@@ -5,7 +5,7 @@ import git
|
|
|
5
5
|
from typing import List, Dict, Tuple, Optional, Union, Any
|
|
6
6
|
from loguru import logger
|
|
7
7
|
from autocoder.common.printer import Printer
|
|
8
|
-
|
|
8
|
+
import byzerllm
|
|
9
9
|
|
|
10
10
|
class ActionYmlFileManager:
|
|
11
11
|
"""
|
|
@@ -19,15 +19,15 @@ class ActionYmlFileManager:
|
|
|
19
19
|
- 处理 commit 消息与 YAML 文件的关联
|
|
20
20
|
"""
|
|
21
21
|
|
|
22
|
-
def __init__(self, source_dir: str):
|
|
22
|
+
def __init__(self, source_dir: Optional[str] = None):
|
|
23
23
|
"""
|
|
24
24
|
初始化 ActionYmlFileManager
|
|
25
25
|
|
|
26
26
|
Args:
|
|
27
27
|
source_dir: 项目根目录
|
|
28
28
|
"""
|
|
29
|
-
self.source_dir = source_dir
|
|
30
|
-
self.actions_dir = os.path.join(source_dir, "actions")
|
|
29
|
+
self.source_dir = source_dir or os.getcwd()
|
|
30
|
+
self.actions_dir = os.path.join(self.source_dir, "actions")
|
|
31
31
|
self.printer = Printer()
|
|
32
32
|
|
|
33
33
|
def ensure_actions_dir(self) -> bool:
|
|
@@ -249,7 +249,7 @@ class ActionYmlFileManager:
|
|
|
249
249
|
with open(yaml_path, 'r', encoding='utf-8') as f:
|
|
250
250
|
yaml_content = f.read()
|
|
251
251
|
file_md5 = hashlib.md5(yaml_content.encode("utf-8")).hexdigest()
|
|
252
|
-
return f"auto_coder_{file_name}
|
|
252
|
+
return f"auto_coder_{file_name}"
|
|
253
253
|
except Exception as e:
|
|
254
254
|
logger.error(f"Failed to calculate commit ID: {e}")
|
|
255
255
|
return None
|
|
@@ -269,11 +269,11 @@ class ActionYmlFileManager:
|
|
|
269
269
|
|
|
270
270
|
try:
|
|
271
271
|
# auto_coder_000000001926_chat_action.yml_88614d5bd4046a068786c252fbc39c13
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
return "_".join(
|
|
272
|
+
# auto_coder_000000001926_chat_action.yml
|
|
273
|
+
if commit_id.endswith("_chat_action.yml"):
|
|
274
|
+
return commit_id[len("auto_coder_"):]
|
|
275
|
+
else:
|
|
276
|
+
return "_".join(commit_id[len("auto_coder_"):].split("_")[0:-1])
|
|
277
277
|
return None
|
|
278
278
|
except Exception:
|
|
279
279
|
return None
|
|
@@ -364,4 +364,69 @@ class ActionYmlFileManager:
|
|
|
364
364
|
yaml_content['file_name'] = file_name
|
|
365
365
|
history_tasks.append(yaml_content)
|
|
366
366
|
|
|
367
|
-
return history_tasks
|
|
367
|
+
return history_tasks
|
|
368
|
+
|
|
369
|
+
@byzerllm.prompt()
|
|
370
|
+
def _to_tasks_prompt(self, history_tasks: List[Dict]) -> str:
|
|
371
|
+
"""
|
|
372
|
+
<history_tasks>
|
|
373
|
+
最近的任务历史记录,从最新到最旧排序:
|
|
374
|
+
|
|
375
|
+
{% for task in history_tasks %}
|
|
376
|
+
## 任务 {{ loop.index }}: {{ task.file_name }}
|
|
377
|
+
|
|
378
|
+
{% if task.query %}
|
|
379
|
+
**用户需求**: {{ task.query }}
|
|
380
|
+
{% endif %}
|
|
381
|
+
|
|
382
|
+
{% if task.urls %}
|
|
383
|
+
**用户提供的相关文件**:
|
|
384
|
+
{% if task.urls is string %}
|
|
385
|
+
- {{ task.urls }}
|
|
386
|
+
{% else %}
|
|
387
|
+
{% for url in task.urls %}
|
|
388
|
+
- {{ url }}
|
|
389
|
+
{% endfor %}
|
|
390
|
+
{% endif %}
|
|
391
|
+
{% endif %}
|
|
392
|
+
|
|
393
|
+
{% if task.dynamic_urls %}
|
|
394
|
+
**系统提取的相关文件**:
|
|
395
|
+
{% if task.dynamic_urls is string %}
|
|
396
|
+
- {{ task.dynamic_urls }}
|
|
397
|
+
{% else %}
|
|
398
|
+
{% for url in task.dynamic_urls %}
|
|
399
|
+
- {{ url }}
|
|
400
|
+
{% endfor %}
|
|
401
|
+
{% endif %}
|
|
402
|
+
{% endif %}
|
|
403
|
+
|
|
404
|
+
{% if task.add_updated_urls %}
|
|
405
|
+
**变更的文件**:
|
|
406
|
+
{% if task.add_updated_urls is string %}
|
|
407
|
+
- {{ task.add_updated_urls }}
|
|
408
|
+
{% else %}
|
|
409
|
+
{% for url in task.add_updated_urls %}
|
|
410
|
+
- {{ url }}
|
|
411
|
+
{% endfor %}
|
|
412
|
+
{% endif %}
|
|
413
|
+
{% endif %}
|
|
414
|
+
|
|
415
|
+
{% if task.how_to_reproduce %}
|
|
416
|
+
**变更过程**:
|
|
417
|
+
```
|
|
418
|
+
{{ task.how_to_reproduce }}
|
|
419
|
+
```
|
|
420
|
+
{% endif %}
|
|
421
|
+
|
|
422
|
+
{% if not loop.last %}
|
|
423
|
+
---
|
|
424
|
+
{% endif %}
|
|
425
|
+
{% endfor %}
|
|
426
|
+
</history_tasks>
|
|
427
|
+
请注意上述历史任务记录,以便更好地理解当前用户需求的上下文和连续性。
|
|
428
|
+
"""
|
|
429
|
+
|
|
430
|
+
def to_tasks_prompt(self, limit: int = 5) -> str:
|
|
431
|
+
history_tasks = self.parse_history_tasks(limit)
|
|
432
|
+
return self._to_tasks_prompt.prompt(history_tasks)
|
|
@@ -195,7 +195,7 @@ MESSAGES = {
|
|
|
195
195
|
"mcp_server_info_error": "Error getting MCP server info: {{ error }}",
|
|
196
196
|
"mcp_server_info_title": "Connected MCP Server Info",
|
|
197
197
|
"no_commit_file_name": "Cannot get the file name of the commit_id in the actions directory: {{commit_id}}",
|
|
198
|
-
"yaml_update_success": "✅ Successfully updated YAML file: {{yaml_file}}
|
|
198
|
+
"yaml_update_success": "✅ Successfully updated YAML file: {{yaml_file}}",
|
|
199
199
|
"yaml_save_error": "❌ Error saving YAML file {{yaml_file}}: {{error}}",
|
|
200
200
|
},
|
|
201
201
|
"zh": {
|
|
@@ -389,7 +389,7 @@ MESSAGES = {
|
|
|
389
389
|
"mcp_server_info_error": "获取MCP服务器信息时出错: {{ error }}",
|
|
390
390
|
"mcp_server_info_title": "已连接的MCP服务器信息",
|
|
391
391
|
"no_commit_file_name": "无法获取commit_id关联的actions 目录下的文件名: {{commit_id}}",
|
|
392
|
-
"yaml_update_success": "✅ 成功更新YAML文件: {{yaml_file}}
|
|
392
|
+
"yaml_update_success": "✅ 成功更新YAML文件: {{yaml_file}}",
|
|
393
393
|
"yaml_save_error": "❌ 保存YAML文件出错 {{yaml_file}}: {{error}}",
|
|
394
394
|
}}
|
|
395
395
|
|
|
@@ -10,6 +10,7 @@ import hashlib
|
|
|
10
10
|
from autocoder.common import files as FileUtils
|
|
11
11
|
from autocoder.common.printer import Printer
|
|
12
12
|
from autocoder.common.auto_coder_lang import get_message
|
|
13
|
+
from autocoder.common.action_yml_file_manager import ActionYmlFileManager
|
|
13
14
|
|
|
14
15
|
class PathAndCode(pydantic.BaseModel):
|
|
15
16
|
path: str
|
|
@@ -196,5 +197,18 @@ class CodeAutoMerge:
|
|
|
196
197
|
|
|
197
198
|
self.printer.print_in_terminal("files_merged", total=total)
|
|
198
199
|
if not force_skip_git and not self.args.skip_commit:
|
|
199
|
-
commit_result = git_utils.commit_changes(self.args.source_dir, f"{self.args.query}\nauto_coder_{file_name}
|
|
200
|
+
commit_result = git_utils.commit_changes(self.args.source_dir, f"{self.args.query}\nauto_coder_{file_name}")
|
|
201
|
+
|
|
202
|
+
action_yml_file_manager = ActionYmlFileManager(self.args.source_dir)
|
|
203
|
+
action_file_name = os.path.basename(self.args.file)
|
|
204
|
+
add_updated_urls = []
|
|
205
|
+
commit_result.changed_files
|
|
206
|
+
for file in commit_result.changed_files:
|
|
207
|
+
add_updated_urls.append(os.path.join(self.args.source_dir, file))
|
|
208
|
+
|
|
209
|
+
self.args.add_updated_urls = add_updated_urls
|
|
210
|
+
update_yaml_success = action_yml_file_manager.update_yaml_field(action_file_name, "add_updated_urls", add_updated_urls)
|
|
211
|
+
if not update_yaml_success:
|
|
212
|
+
self.printer.print_in_terminal("yaml_save_error", style="red", yaml_file=action_file_name)
|
|
213
|
+
|
|
200
214
|
git_utils.print_commit_info(commit_result=commit_result)
|
|
@@ -4,6 +4,7 @@ from autocoder.common import AutoCoderArgs,git_utils
|
|
|
4
4
|
from typing import List,Union,Tuple
|
|
5
5
|
import pydantic
|
|
6
6
|
import byzerllm
|
|
7
|
+
from autocoder.common.action_yml_file_manager import ActionYmlFileManager
|
|
7
8
|
from autocoder.common.printer import Printer
|
|
8
9
|
import hashlib
|
|
9
10
|
from pathlib import Path
|
|
@@ -579,7 +580,20 @@ class CodeAutoMergeDiff:
|
|
|
579
580
|
|
|
580
581
|
self.printer.print_in_terminal("files_merged_total", total=total)
|
|
581
582
|
if not force_skip_git and not self.args.skip_commit:
|
|
582
|
-
commit_result = git_utils.commit_changes(self.args.source_dir, f"{self.args.query}\nauto_coder_{file_name}
|
|
583
|
+
commit_result = git_utils.commit_changes(self.args.source_dir, f"{self.args.query}\nauto_coder_{file_name}")
|
|
584
|
+
|
|
585
|
+
action_yml_file_manager = ActionYmlFileManager(self.args.source_dir)
|
|
586
|
+
action_file_name = os.path.basename(self.args.file)
|
|
587
|
+
add_updated_urls = []
|
|
588
|
+
commit_result.changed_files
|
|
589
|
+
for file in commit_result.changed_files:
|
|
590
|
+
add_updated_urls.append(os.path.join(self.args.source_dir, file))
|
|
591
|
+
|
|
592
|
+
self.args.add_updated_urls = add_updated_urls
|
|
593
|
+
update_yaml_success = action_yml_file_manager.update_yaml_field(action_file_name, "add_updated_urls", add_updated_urls)
|
|
594
|
+
if not update_yaml_success:
|
|
595
|
+
self.printer.print_in_terminal("yaml_save_error", style="red", yaml_file=action_file_name)
|
|
596
|
+
|
|
583
597
|
git_utils.print_commit_info(commit_result=commit_result)
|
|
584
598
|
else:
|
|
585
599
|
# Print edits for review
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import os
|
|
2
2
|
from byzerllm.utils.client import code_utils
|
|
3
3
|
from autocoder.common import AutoCoderArgs, git_utils
|
|
4
|
+
from autocoder.common.action_yml_file_manager import ActionYmlFileManager
|
|
4
5
|
from autocoder.common.text import TextSimilarity
|
|
5
6
|
from autocoder.utils.queue_communicate import (
|
|
6
7
|
queue_communicate,
|
|
@@ -426,8 +427,21 @@ class CodeAutoMergeEditBlock:
|
|
|
426
427
|
try:
|
|
427
428
|
commit_result = git_utils.commit_changes(
|
|
428
429
|
self.args.source_dir,
|
|
429
|
-
f"{self.args.query}\nauto_coder_{file_name}
|
|
430
|
+
f"{self.args.query}\nauto_coder_{file_name}",
|
|
430
431
|
)
|
|
432
|
+
|
|
433
|
+
action_yml_file_manager = ActionYmlFileManager(self.args.source_dir)
|
|
434
|
+
action_file_name = os.path.basename(self.args.file)
|
|
435
|
+
add_updated_urls = []
|
|
436
|
+
commit_result.changed_files
|
|
437
|
+
for file in commit_result.changed_files:
|
|
438
|
+
add_updated_urls.append(os.path.join(self.args.source_dir, file))
|
|
439
|
+
|
|
440
|
+
self.args.add_updated_urls = add_updated_urls
|
|
441
|
+
update_yaml_success = action_yml_file_manager.update_yaml_field(action_file_name, "add_updated_urls", add_updated_urls)
|
|
442
|
+
if not update_yaml_success:
|
|
443
|
+
self.printer.print_in_terminal("yaml_save_error", style="red", yaml_file=action_file_name)
|
|
444
|
+
|
|
431
445
|
git_utils.print_commit_info(commit_result=commit_result)
|
|
432
446
|
except Exception as e:
|
|
433
447
|
self.printer.print_str_in_terminal(
|
{auto_coder-0.1.300 → auto_coder-0.1.302}/src/autocoder/common/code_auto_merge_strict_diff.py
RENAMED
|
@@ -5,6 +5,7 @@ from autocoder.common import AutoCoderArgs, git_utils
|
|
|
5
5
|
from typing import List,Tuple
|
|
6
6
|
import pydantic
|
|
7
7
|
import byzerllm
|
|
8
|
+
from autocoder.common.action_yml_file_manager import ActionYmlFileManager
|
|
8
9
|
from autocoder.common.printer import Printer
|
|
9
10
|
import hashlib
|
|
10
11
|
from pathlib import Path
|
|
@@ -286,8 +287,20 @@ class CodeAutoMergeStrictDiff:
|
|
|
286
287
|
self.printer.print_in_terminal("files_merged_total", total=total)
|
|
287
288
|
if not force_skip_git and not self.args.skip_commit:
|
|
288
289
|
commit_result = git_utils.commit_changes(
|
|
289
|
-
self.args.source_dir, f"{self.args.query}\nauto_coder_{file_name}
|
|
290
|
+
self.args.source_dir, f"{self.args.query}\nauto_coder_{file_name}"
|
|
290
291
|
)
|
|
292
|
+
action_yml_file_manager = ActionYmlFileManager(self.args.source_dir)
|
|
293
|
+
action_file_name = os.path.basename(self.args.file)
|
|
294
|
+
add_updated_urls = []
|
|
295
|
+
commit_result.changed_files
|
|
296
|
+
for file in commit_result.changed_files:
|
|
297
|
+
add_updated_urls.append(os.path.join(self.args.source_dir, file))
|
|
298
|
+
|
|
299
|
+
self.args.add_updated_urls = add_updated_urls
|
|
300
|
+
update_yaml_success = action_yml_file_manager.update_yaml_field(action_file_name, "add_updated_urls", add_updated_urls)
|
|
301
|
+
if not update_yaml_success:
|
|
302
|
+
self.printer.print_in_terminal("yaml_save_error", style="red", yaml_file=action_file_name)
|
|
303
|
+
|
|
291
304
|
git_utils.print_commit_info(commit_result=commit_result)
|
|
292
305
|
else:
|
|
293
306
|
# Print diff blocks for review
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.1.302"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.1.300"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.300 → auto_coder-0.1.302}/src/autocoder/common/code_auto_generate_editblock.py
RENAMED
|
File without changes
|
{auto_coder-0.1.300 → auto_coder-0.1.302}/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
|