auto-coder 0.1.360__tar.gz → 0.1.362__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.360 → auto_coder-0.1.362}/PKG-INFO +2 -1
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/auto_coder.egg-info/PKG-INFO +2 -1
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/auto_coder.egg-info/requires.txt +1 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/agent/auto_learn.py +249 -262
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/auto_coder.py +4 -4
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/auto_coder_runner.py +34 -12
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/commands/auto_command.py +227 -159
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/__init__.py +2 -2
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/code_auto_generate.py +2 -2
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/code_auto_generate_diff.py +2 -1
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/code_auto_generate_editblock.py +2 -3
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/code_auto_generate_strict_diff.py +2 -1
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/ignorefiles/ignore_file_utils.py +12 -8
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/result_manager.py +10 -2
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/rulefiles/autocoderrules_utils.py +145 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/agent/agentic_edit.py +74 -49
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/agent/agentic_edit_tools/read_file_tool_resolver.py +15 -12
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/code_auto_generate.py +2 -1
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/code_auto_generate_diff.py +2 -1
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/code_auto_generate_editblock.py +5 -2
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/code_auto_generate_strict_diff.py +3 -2
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/index/index.py +14 -8
- auto_coder-0.1.362/src/autocoder/privacy/model_filter.py +362 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/utils/_markitdown.py +22 -3
- auto_coder-0.1.362/src/autocoder/version.py +1 -0
- auto_coder-0.1.360/src/autocoder/privacy/model_filter.py +0 -100
- auto_coder-0.1.360/src/autocoder/version.py +0 -1
- {auto_coder-0.1.360 → auto_coder-0.1.362}/LICENSE +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/README.md +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/setup.cfg +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/setup.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/auto_coder.egg-info/SOURCES.txt +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/auto_coder.egg-info/dependency_links.txt +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/auto_coder.egg-info/entry_points.txt +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/auto_coder.egg-info/top_level.txt +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/agent/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/agent/agentic_filter.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/agent/auto_demand_organizer.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/agent/auto_filegroup.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/agent/auto_guess_query.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/agent/auto_learn_from_commit.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/agent/auto_review_commit.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/agent/auto_tool.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/agent/coder.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/agent/designer.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/agent/planner.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/agent/project_reader.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/auto_coder_rag.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/auto_coder_server.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/benchmark.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/chat/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/chat/conf_command.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/chat/models_command.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/chat/rules_command.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/chat_auto_coder.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/chat_auto_coder_lang.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/command_args.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/command_parser.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/commands/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/commands/auto_web.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/commands/tools.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/JupyterClient.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/ShellClient.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/action_yml_file_manager.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/anything2images.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/anything2img.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/audio.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/auto_coder_lang.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/auto_configure.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/buildin_tokenizer.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/chunk_validation.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/cleaner.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/code_auto_execute.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/code_auto_merge.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/code_auto_merge_diff.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/code_auto_merge_editblock.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/code_auto_merge_strict_diff.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/code_modification_ranker.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/command_completer.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/command_completer_v2.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/command_generator.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/command_templates.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/computer_use.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/conf_import_export.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/conf_utils.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/conf_validator.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/const.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/context_pruner.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/conversation_pruner.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/conversations/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/conversations/compatibility.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/conversations/conversation_manager.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/conversations/example.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/directory_cache/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/directory_cache/cache.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/directory_cache/test_cache.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/file_monitor/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/file_monitor/monitor.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/files.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/git_utils.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/global_cancel.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/ignorefiles/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/ignorefiles/test_ignore_file_utils.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/image_to_page.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/index_import_export.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/interpreter.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/llm_rerank.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/mcp_hub.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/mcp_server.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/mcp_server_install.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/mcp_server_types.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/mcp_servers/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/mcp_servers/mcp_server_gpt4o_mini_search.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/mcp_servers/mcp_server_perplexity.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/mcp_tools.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/memory_manager.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/model_speed_tester.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/openai_content.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/printer.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/recall_validation.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/rulefiles/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/run_cmd.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/save_formatted_log.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/screenshots.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/search.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/search_replace.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/shells.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/stats_panel.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/stream_out_type.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/sys_prompt.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/test_run_cmd.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/text.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/token_cost_caculate.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/types.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/utils_code_auto_generate.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/agent/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/agent/agentic_edit_tools/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/agent/agentic_edit_tools/ask_followup_question_tool_resolver.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/agent/agentic_edit_tools/attempt_completion_tool_resolver.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/agent/agentic_edit_tools/base_tool_resolver.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/agent/agentic_edit_tools/execute_command_tool_resolver.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/agent/agentic_edit_tools/list_code_definition_names_tool_resolver.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/agent/agentic_edit_tools/list_files_tool_resolver.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/agent/agentic_edit_tools/list_package_info_tool_resolver.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/agent/agentic_edit_tools/plan_mode_respond_tool_resolver.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/agent/agentic_edit_tools/replace_in_file_tool_resolver.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/agent/agentic_edit_tools/search_files_tool_resolver.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/agent/agentic_edit_tools/test_search_files_tool_resolver.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/agent/agentic_edit_tools/use_mcp_tool_resolver.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/agent/agentic_edit_tools/write_to_file_tool_resolver.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/agent/agentic_edit_types.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/agent/agentic_tool_display.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/code_agentic_editblock_manager.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/code_auto_merge.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/code_auto_merge_diff.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/code_auto_merge_editblock.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/code_auto_merge_strict_diff.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/code_diff_manager.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/code_editblock_manager.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/code_manager.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/common/v2/code_strict_diff_manager.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/compilers/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/compilers/base_compiler.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/compilers/compiler_config_api.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/compilers/compiler_config_manager.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/compilers/compiler_factory.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/compilers/java_compiler.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/compilers/models.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/compilers/provided_compiler.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/compilers/python_compiler.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/compilers/reactjs_compiler.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/compilers/shadow_compiler.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/compilers/vue_compiler.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/data/byzerllm.md +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/data/tokenizer.json +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/db/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/db/store.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/dispacher/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/dispacher/actions/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/dispacher/actions/action.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/dispacher/actions/copilot.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/dispacher/actions/plugins/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/dispacher/actions/plugins/action_regex_project.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/events/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/events/event_content.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/events/event_manager.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/events/event_manager_singleton.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/events/event_store.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/events/event_types.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/helper/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/helper/project_creator.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/helper/rag_doc_creator.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/index/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/index/entry.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/index/filter/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/index/filter/normal_filter.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/index/filter/quick_filter.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/index/for_command.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/index/symbols_utils.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/index/types.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/lang.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/linters/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/linters/base_linter.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/linters/linter_factory.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/linters/models.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/linters/python_linter.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/linters/reactjs_linter.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/linters/shadow_linter.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/linters/vue_linter.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/memory/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/memory/active_context_manager.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/memory/active_package.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/memory/async_processor.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/memory/directory_mapper.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/models.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/plugins/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/plugins/dynamic_completion_example.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/plugins/git_helper_plugin.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/plugins/sample_plugin.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/plugins/token_helper_plugin.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/plugins/utils.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/privacy/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/pyproject/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/api_server.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/cache/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/cache/base_cache.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/cache/byzer_storage_cache.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/cache/cache_result_merge.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/cache/failed_files_utils.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/cache/file_monitor_cache.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/cache/local_byzer_storage_cache.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/cache/local_duckdb_storage_cache.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/cache/rag_file_meta.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/cache/simple_cache.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/conversation_to_queries.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/doc_filter.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/document_retriever.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/lang.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/llm_wrapper.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/loaders/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/loaders/docx_loader.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/loaders/excel_loader.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/loaders/filter_utils.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/loaders/image_loader.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/loaders/pdf_loader.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/loaders/ppt_loader.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/loaders/test_image_loader.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/long_context_rag.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/qa_conversation_strategy.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/rag_config.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/rag_entry.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/raw_rag.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/relevant_utils.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/searchable.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/simple_directory_reader.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/simple_rag.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/stream_event/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/stream_event/event_writer.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/stream_event/types.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/token_checker.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/token_counter.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/token_limiter.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/token_limiter_utils.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/types.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/utils.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/rag/variable_holder.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/regexproject/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/run_context.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/shadows/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/shadows/shadow_manager.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/suffixproject/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/tsproject/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/utils/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/utils/auto_coder_utils/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/utils/auto_coder_utils/chat_stream_out.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/utils/auto_project_type.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/utils/chat_auto_coder_utils/__init__.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/utils/conversation_store.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/utils/llm_client_interceptors.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/utils/llms.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/utils/log_capture.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/utils/model_provider_selector.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/utils/multi_turn.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/utils/operate_config_api.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/utils/print_table.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/utils/project_structure.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/utils/queue_communicate.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/utils/request_event_queue.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/utils/request_queue.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/utils/rest.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/utils/stream_thinking.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/utils/tests.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/utils/thread_utils.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/src/autocoder/utils/types.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/tests/test_action_regex_project.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/tests/test_action_yml_file_manager.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/tests/test_chat_auto_coder.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/tests/test_code_auto_merge_editblock.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/tests/test_command_completer.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/tests/test_planner.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/tests/test_plugins.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/tests/test_privacy.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/tests/test_queue_communicate.py +0 -0
- {auto_coder-0.1.360 → auto_coder-0.1.362}/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.362
|
|
4
4
|
Summary: AutoCoder: AutoCoder
|
|
5
5
|
Author: allwefantasy
|
|
6
6
|
Classifier: Programming Language :: Python :: 3.10
|
|
@@ -64,6 +64,7 @@ Requires-Dist: pathvalidate
|
|
|
64
64
|
Requires-Dist: pexpect
|
|
65
65
|
Requires-Dist: mcp; python_version >= "3.10"
|
|
66
66
|
Requires-Dist: setuptools
|
|
67
|
+
Requires-Dist: filelock
|
|
67
68
|
|
|
68
69
|
<p align="center">
|
|
69
70
|
<picture>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: auto-coder
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.362
|
|
4
4
|
Summary: AutoCoder: AutoCoder
|
|
5
5
|
Author: allwefantasy
|
|
6
6
|
Classifier: Programming Language :: Python :: 3.10
|
|
@@ -64,6 +64,7 @@ Requires-Dist: pathvalidate
|
|
|
64
64
|
Requires-Dist: pexpect
|
|
65
65
|
Requires-Dist: mcp; python_version >= "3.10"
|
|
66
66
|
Requires-Dist: setuptools
|
|
67
|
+
Requires-Dist: filelock
|
|
67
68
|
|
|
68
69
|
<p align="center">
|
|
69
70
|
<picture>
|
|
@@ -40,9 +40,7 @@ class AutoLearn:
|
|
|
40
40
|
- 识别代码变更中具有普遍应用价值的功能点和模式
|
|
41
41
|
- 将这些功能点提炼为结构化规则,便于在其他项目中快速复用
|
|
42
42
|
- 生成清晰的使用示例,包含完整依赖和调用方式
|
|
43
|
-
- 这些规则将被存储在项目的
|
|
44
|
-
|
|
45
|
-
项目根目录: {{ project_root }}
|
|
43
|
+
- 这些规则将被存储在项目的 {{ project_root }}/.autocoderrules 目录,供后续自动化代码生成使用
|
|
46
44
|
|
|
47
45
|
## 分析对象
|
|
48
46
|
下面是本次提交的代码变更:
|
|
@@ -86,144 +84,138 @@ class AutoLearn:
|
|
|
86
84
|
## 用户需求
|
|
87
85
|
{{ new_query }}
|
|
88
86
|
|
|
89
|
-
##
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
##
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
if item.type == 'blob': # 只处理文件,不处理目录
|
|
164
|
-
file_path = item.path
|
|
165
|
-
# 首次提交前没有内容
|
|
166
|
-
before_content = None
|
|
167
|
-
# 获取提交后的内容
|
|
168
|
-
after_content = repo.git.show(f"{commit.hexsha}:{file_path}")
|
|
169
|
-
changes[file_path] = (before_content, after_content)
|
|
170
|
-
else:
|
|
171
|
-
# 获取parent commit
|
|
172
|
-
parent = commit.parents[0]
|
|
173
|
-
# 获取变更的文件列表
|
|
174
|
-
for diff_item in parent.diff(commit):
|
|
175
|
-
file_path = diff_item.a_path if diff_item.a_path else diff_item.b_path
|
|
176
|
-
|
|
177
|
-
# 获取变更前内容
|
|
178
|
-
before_content = None
|
|
179
|
-
try:
|
|
180
|
-
if diff_item.a_blob:
|
|
181
|
-
before_content = repo.git.show(f"{parent.hexsha}:{file_path}")
|
|
182
|
-
except git.exc.GitCommandError:
|
|
183
|
-
pass # 文件可能是新增的
|
|
184
|
-
|
|
185
|
-
# 获取变更后内容
|
|
186
|
-
after_content = None
|
|
187
|
-
try:
|
|
188
|
-
if diff_item.b_blob:
|
|
87
|
+
## 生成或者更新的规则文件结构
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
description: [简明描述规则的功能,20字以内]
|
|
91
|
+
globs: [匹配应用此规则的文件路径,如"src/services/*.py"]
|
|
92
|
+
alwaysApply: [是否总是应用,通常为false]
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
# [规则主标题]
|
|
96
|
+
|
|
97
|
+
## 简要说明
|
|
98
|
+
[该规则的功能、适用场景和价值,100字以内]
|
|
99
|
+
|
|
100
|
+
## 典型用法
|
|
101
|
+
```python
|
|
102
|
+
# 完整的代码示例,包含:
|
|
103
|
+
# 1. 必要的import语句
|
|
104
|
+
# 2. 类/函数定义
|
|
105
|
+
# 3. 参数说明
|
|
106
|
+
# 4. 调用方式
|
|
107
|
+
# 5. 关键注释
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## 依赖说明
|
|
111
|
+
- [必要的依赖库及版本]
|
|
112
|
+
- [环境要求]
|
|
113
|
+
- [初始化流程(如有)]
|
|
114
|
+
|
|
115
|
+
## 学习来源
|
|
116
|
+
[从哪个提交变更的哪部分代码中提取的该功能点]
|
|
117
|
+
|
|
118
|
+
## 生成或者更新的规则文件示例
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
description: Git提交分析工具
|
|
122
|
+
globs: "src/utils/git_analyzer.py"
|
|
123
|
+
alwaysApply: false
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
# Git提交分析工具
|
|
127
|
+
|
|
128
|
+
## 简要说明
|
|
129
|
+
提供从Git仓库中获取提交变更并分析差异的工具函数,支持首次提交和普通提交的差异获取,适用于代码审查、变更追踪和自动化分析场景。
|
|
130
|
+
|
|
131
|
+
## 典型用法
|
|
132
|
+
```python
|
|
133
|
+
import git
|
|
134
|
+
from typing import Dict, Tuple, List, Optional
|
|
135
|
+
|
|
136
|
+
def get_commit_changes(repo_path: str, commit_id: str) -> Dict[str, Tuple[Optional[str], Optional[str]]]:
|
|
137
|
+
'''
|
|
138
|
+
获取指定commit的文件变更内容
|
|
139
|
+
|
|
140
|
+
Args:
|
|
141
|
+
repo_path: Git仓库路径
|
|
142
|
+
commit_id: 提交ID
|
|
143
|
+
|
|
144
|
+
Returns:
|
|
145
|
+
Dict[str, Tuple[Optional[str], Optional[str]]]: 文件路径到(变更前内容,变更后内容)的映射
|
|
146
|
+
'''
|
|
147
|
+
changes = {}
|
|
148
|
+
try:
|
|
149
|
+
repo = git.Repo(repo_path)
|
|
150
|
+
commit = repo.commit(commit_id)
|
|
151
|
+
|
|
152
|
+
# 检查是否是首次提交(没有父提交)
|
|
153
|
+
if not commit.parents:
|
|
154
|
+
# 首次提交,获取所有文件
|
|
155
|
+
for item in commit.tree.traverse():
|
|
156
|
+
if item.type == 'blob': # 只处理文件,不处理目录
|
|
157
|
+
file_path = item.path
|
|
158
|
+
# 首次提交前没有内容
|
|
159
|
+
before_content = None
|
|
160
|
+
# 获取提交后的内容
|
|
189
161
|
after_content = repo.git.show(f"{commit.hexsha}:{file_path}")
|
|
190
|
-
|
|
191
|
-
|
|
162
|
+
changes[file_path] = (before_content, after_content)
|
|
163
|
+
else:
|
|
164
|
+
# 获取parent commit
|
|
165
|
+
parent = commit.parents[0]
|
|
166
|
+
# 获取变更的文件列表
|
|
167
|
+
for diff_item in parent.diff(commit):
|
|
168
|
+
file_path = diff_item.a_path if diff_item.a_path else diff_item.b_path
|
|
169
|
+
|
|
170
|
+
# 获取变更前内容
|
|
171
|
+
before_content = None
|
|
172
|
+
try:
|
|
173
|
+
if diff_item.a_blob:
|
|
174
|
+
before_content = repo.git.show(f"{parent.hexsha}:{file_path}")
|
|
175
|
+
except git.exc.GitCommandError:
|
|
176
|
+
pass # 文件可能是新增的
|
|
177
|
+
|
|
178
|
+
# 获取变更后内容
|
|
179
|
+
after_content = None
|
|
180
|
+
try:
|
|
181
|
+
if diff_item.b_blob:
|
|
182
|
+
after_content = repo.git.show(f"{commit.hexsha}:{file_path}")
|
|
183
|
+
except git.exc.GitCommandError:
|
|
184
|
+
pass # 文件可能被删除
|
|
192
185
|
|
|
193
|
-
|
|
186
|
+
changes[file_path] = (before_content, after_content)
|
|
194
187
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
188
|
+
return changes
|
|
189
|
+
except Exception as e:
|
|
190
|
+
print(f"获取提交变更时出错: {str(e)}")
|
|
191
|
+
return {}
|
|
192
|
+
```
|
|
200
193
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
194
|
+
## 依赖说明
|
|
195
|
+
- GitPython>=3.1.0
|
|
196
|
+
- Python>=3.7
|
|
204
197
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
</markdown>
|
|
198
|
+
## 学习来源
|
|
199
|
+
从代码提交变更中提取的Git仓库差异分析功能
|
|
208
200
|
|
|
209
201
|
## 索引文件更新说明
|
|
210
202
|
|
|
211
203
|
除了生成规则文件外,请务必更新index.md索引文件,记录所有规则及其作用。如果 index.md 当前内容为空,请按如下格式创建:
|
|
212
|
-
|
|
213
|
-
<markdown>
|
|
204
|
+
|
|
214
205
|
# Rules索引
|
|
215
206
|
|
|
216
207
|
本文档记录项目中所有可用的代码规则(rules)及其用途。
|
|
217
208
|
|
|
218
209
|
## [规则文件路径]
|
|
219
210
|
[规则文件的主要功能和适用场景简述]
|
|
220
|
-
</markdown>
|
|
221
211
|
|
|
222
212
|
## 评价标准
|
|
223
213
|
- 提取的功能点必须具备独立价值,能在其他项目中实际复用
|
|
224
214
|
- 代码示例必须完整、可执行,包含所有必要组件
|
|
225
215
|
- 文档结构清晰,遵循规定格式
|
|
226
216
|
- 依赖说明明确具体,便于用户快速配置环境
|
|
217
|
+
|
|
218
|
+
请根据要求生成或者更新规则文件(markdown文件),并将规则文件存储在项目的 {{ project_root }}/.autocoderrules 目录,供后续自动化代码生成使用。
|
|
227
219
|
"""
|
|
228
220
|
return {
|
|
229
221
|
"project_root": os.path.abspath(self.args.source_dir),
|
|
@@ -239,7 +231,7 @@ class AutoLearn:
|
|
|
239
231
|
- 识别代码中具有普遍应用价值的功能点和模式
|
|
240
232
|
- 将这些功能点提炼为结构化规则,便于在其他项目中快速复用
|
|
241
233
|
- 生成清晰的使用示例,包含完整依赖和调用方式
|
|
242
|
-
- 这些规则将被存储在项目的
|
|
234
|
+
- 这些规则将被存储在项目的 {{ project_root }}/.autocoderrules 目录,供后续自动化代码生成使用
|
|
243
235
|
|
|
244
236
|
项目根目录: {{ project_root }}
|
|
245
237
|
|
|
@@ -277,165 +269,160 @@ class AutoLearn:
|
|
|
277
269
|
## 用户需求
|
|
278
270
|
{{ query }}
|
|
279
271
|
|
|
280
|
-
##
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
272
|
+
## 生成或者更新的规则文件结构
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
description: [简明描述规则的功能,20字以内]
|
|
276
|
+
globs: [匹配应用此规则的文件路径,如"src/services/*.py"]
|
|
277
|
+
alwaysApply: [是否总是应用,通常为false]
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
# [规则主标题]
|
|
281
|
+
|
|
282
|
+
## 简要说明
|
|
283
|
+
[该规则的功能、适用场景和价值,100字以内]
|
|
284
|
+
|
|
285
|
+
## 典型用法
|
|
286
|
+
```python
|
|
287
|
+
# 完整的代码示例,包含:
|
|
288
|
+
# 1. 必要的import语句
|
|
289
|
+
# 2. 类/函数定义
|
|
290
|
+
# 3. 参数说明
|
|
291
|
+
# 4. 调用方式
|
|
292
|
+
# 5. 关键注释
|
|
293
|
+
|
|
294
|
+
## 依赖说明
|
|
295
|
+
- [必要的依赖库及版本]
|
|
296
|
+
- [环境要求]
|
|
297
|
+
- [初始化流程(如有)]
|
|
298
|
+
|
|
299
|
+
## 学习来源
|
|
300
|
+
[从哪个模块的哪部分代码中提取的该功能点]
|
|
301
|
+
</markdown>
|
|
302
|
+
|
|
303
|
+
## 生成或者更新的规则文件示例
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
description: RPC服务模板
|
|
307
|
+
globs: "src/services/rpc_service.py"
|
|
308
|
+
alwaysApply: false
|
|
309
|
+
---
|
|
310
|
+
|
|
311
|
+
# RPC服务快速实现模板
|
|
312
|
+
|
|
313
|
+
## 简要说明
|
|
314
|
+
提供gRPC服务端与客户端的标准实现模板,包含服务定义、请求处理、错误处理和客户端调用。适用于需要高性能RPC通信的微服务架构。
|
|
315
|
+
|
|
316
|
+
## 典型用法
|
|
317
|
+
```python
|
|
318
|
+
# 服务端实现
|
|
319
|
+
import grpc
|
|
320
|
+
from concurrent import futures
|
|
321
|
+
import logging
|
|
322
|
+
import time
|
|
323
|
+
from typing import Dict, Any
|
|
324
|
+
|
|
325
|
+
import service_pb2
|
|
326
|
+
import service_pb2_grpc
|
|
327
|
+
|
|
328
|
+
class ServiceImplementation(service_pb2_grpc.MyServiceServicer):
|
|
329
|
+
def __init__(self, config: Dict[str, Any] = None):
|
|
330
|
+
self.config = config or {}
|
|
331
|
+
logging.info("RPC服务初始化完成")
|
|
332
|
+
|
|
333
|
+
def ProcessRequest(self, request, context):
|
|
334
|
+
try:
|
|
335
|
+
# 业务逻辑处理
|
|
336
|
+
result = self._process_business_logic(request)
|
|
337
|
+
|
|
338
|
+
# 构建响应
|
|
339
|
+
return service_pb2.Response(
|
|
340
|
+
status=200,
|
|
341
|
+
message="处理成功",
|
|
342
|
+
data=result
|
|
343
|
+
)
|
|
344
|
+
except Exception as e:
|
|
345
|
+
logging.error(f"处理请求时发生错误: {str(e)}")
|
|
346
|
+
context.set_code(grpc.StatusCode.INTERNAL)
|
|
347
|
+
context.set_details(f"服务器内部错误: {str(e)}")
|
|
348
|
+
return service_pb2.Response(
|
|
349
|
+
status=500,
|
|
350
|
+
message=f"处理失败: {str(e)}",
|
|
351
|
+
data={}
|
|
352
|
+
)
|
|
353
|
+
|
|
354
|
+
def _process_business_logic(self, request):
|
|
355
|
+
# 实际业务逻辑处理
|
|
356
|
+
return {"result": request.param1 + request.param2}
|
|
357
|
+
|
|
358
|
+
def serve(port=50051, max_workers=10):
|
|
359
|
+
server = grpc.server(futures.ThreadPoolExecutor(max_workers=max_workers))
|
|
360
|
+
service_pb2_grpc.add_MyServiceServicer_to_server(
|
|
361
|
+
ServiceImplementation(), server
|
|
362
|
+
)
|
|
363
|
+
server.add_insecure_port(f'[::]:{port}')
|
|
364
|
+
server.start()
|
|
365
|
+
logging.info(f"服务已启动,监听端口: {port}")
|
|
344
366
|
|
|
345
|
-
def ProcessRequest(self, request, context):
|
|
346
367
|
try:
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
if __name__ == '__main__':
|
|
387
|
-
logging.basicConfig(level=logging.INFO)
|
|
388
|
-
serve()
|
|
389
|
-
```
|
|
390
|
-
|
|
391
|
-
## 依赖说明
|
|
392
|
-
- 需要安装 grpcio>=1.44.0 和 grpcio-tools>=1.44.0
|
|
393
|
-
- 需要预先定义proto文件并生成对应Python代码:
|
|
394
|
-
```bash
|
|
395
|
-
python -m grpc_tools.protoc -I./protos --python_out=. --grpc_python_out=. ./protos/service.proto
|
|
396
|
-
```
|
|
397
|
-
- 示例proto文件结构:
|
|
398
|
-
```protobuf
|
|
399
|
-
syntax = "proto3";
|
|
400
|
-
|
|
401
|
-
service MyService {
|
|
402
|
-
rpc ProcessRequest (Request) returns (Response) {}
|
|
403
|
-
}
|
|
404
|
-
|
|
405
|
-
message Request {
|
|
406
|
-
int32 param1 = 1;
|
|
407
|
-
int32 param2 = 2;
|
|
408
|
-
}
|
|
409
|
-
|
|
410
|
-
message Response {
|
|
411
|
-
int32 status = 1;
|
|
412
|
-
string message = 2;
|
|
413
|
-
map<string, string> data = 3;
|
|
414
|
-
}
|
|
415
|
-
```
|
|
416
|
-
|
|
417
|
-
## 学习来源
|
|
418
|
-
从src/services/rpc_service.py模块中的Server类和RequestHandler实现提取
|
|
419
|
-
</markdown>
|
|
368
|
+
while True:
|
|
369
|
+
time.sleep(86400) # 一天
|
|
370
|
+
except KeyboardInterrupt:
|
|
371
|
+
server.stop(0)
|
|
372
|
+
logging.info("服务已停止")
|
|
373
|
+
|
|
374
|
+
if __name__ == '__main__':
|
|
375
|
+
logging.basicConfig(level=logging.INFO)
|
|
376
|
+
serve()
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
## 依赖说明
|
|
380
|
+
- 需要安装 grpcio>=1.44.0 和 grpcio-tools>=1.44.0
|
|
381
|
+
- 需要预先定义proto文件并生成对应Python代码:
|
|
382
|
+
```bash
|
|
383
|
+
python -m grpc_tools.protoc -I./protos --python_out=. --grpc_python_out=. ./protos/service.proto
|
|
384
|
+
```
|
|
385
|
+
- 示例proto文件结构:
|
|
386
|
+
```protobuf
|
|
387
|
+
syntax = "proto3";
|
|
388
|
+
|
|
389
|
+
service MyService {
|
|
390
|
+
rpc ProcessRequest (Request) returns (Response) {}
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
message Request {
|
|
394
|
+
int32 param1 = 1;
|
|
395
|
+
int32 param2 = 2;
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
message Response {
|
|
399
|
+
int32 status = 1;
|
|
400
|
+
string message = 2;
|
|
401
|
+
map<string, string> data = 3;
|
|
402
|
+
}
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
## 学习来源
|
|
406
|
+
从src/services/rpc_service.py模块中的Server类和RequestHandler实现提取
|
|
420
407
|
|
|
421
408
|
## 索引文件更新说明
|
|
422
409
|
|
|
423
410
|
除了生成规则文件外,请务必更新index.md索引文件,记录所有规则及其作用。如果 index.md 当前内容为空,请按如下格式创建:
|
|
424
|
-
|
|
425
|
-
<markdown>
|
|
411
|
+
|
|
426
412
|
# Rules索引
|
|
427
413
|
|
|
428
414
|
本文档记录项目中所有可用的代码规则(rules)及其用途。
|
|
429
415
|
|
|
430
416
|
## [规则文件路径]
|
|
431
417
|
[规则文件的主要功能和适用场景简述]
|
|
432
|
-
</markdown>
|
|
433
418
|
|
|
434
419
|
## 评价标准
|
|
435
420
|
- 提取的功能点必须具备独立价值,能在其他项目中实际复用
|
|
436
421
|
- 代码示例必须完整、可执行,包含所有必要组件
|
|
437
422
|
- 文档结构清晰,遵循规定格式
|
|
438
423
|
- 依赖说明明确具体,便于用户快速配置环境
|
|
424
|
+
|
|
425
|
+
请根据要求生成或者更新规则文件(markdown文件),并将规则文件存储在项目的 {{ project_root }}/.autocoderrules 目录,供后续自动化代码生成使用。
|
|
439
426
|
"""
|
|
440
427
|
|
|
441
428
|
# 获取索引文件内容
|
|
@@ -52,7 +52,7 @@ from autocoder.common.mcp_server_types import (
|
|
|
52
52
|
McpRequest, McpInstallRequest, McpRemoveRequest, McpListRequest,
|
|
53
53
|
McpListRunningRequest, McpRefreshRequest
|
|
54
54
|
)
|
|
55
|
-
|
|
55
|
+
from autocoder.run_context import get_run_context,RunMode
|
|
56
56
|
console = Console()
|
|
57
57
|
|
|
58
58
|
|
|
@@ -438,7 +438,7 @@ def main(input_args: Optional[List[str]] = None):
|
|
|
438
438
|
llm.setup_sub_client("index_filter_model", index_filter_model)
|
|
439
439
|
|
|
440
440
|
|
|
441
|
-
if args.human_as_model:
|
|
441
|
+
if get_run_context().mode != RunMode.WEB and args.human_as_model:
|
|
442
442
|
|
|
443
443
|
def intercept_callback(
|
|
444
444
|
llm, model: str, input_value: List[Dict[str, Any]]
|
|
@@ -1069,7 +1069,7 @@ def main(input_args: Optional[List[str]] = None):
|
|
|
1069
1069
|
border_style="green",
|
|
1070
1070
|
)
|
|
1071
1071
|
)
|
|
1072
|
-
if not args.query:
|
|
1072
|
+
if not args.query or (args.query_prefix and args.query == args.query_prefix) or (args.query_suffix and args.query == args.query_suffix):
|
|
1073
1073
|
return
|
|
1074
1074
|
|
|
1075
1075
|
if os.path.exists(memory_file):
|
|
@@ -1157,7 +1157,7 @@ def main(input_args: Optional[List[str]] = None):
|
|
|
1157
1157
|
loaded_conversations = pre_conversations + \
|
|
1158
1158
|
chat_history["ask_conversation"]
|
|
1159
1159
|
|
|
1160
|
-
if args.human_as_model:
|
|
1160
|
+
if get_run_context().mode != RunMode.WEB and args.human_as_model:
|
|
1161
1161
|
console = Console()
|
|
1162
1162
|
|
|
1163
1163
|
@byzerllm.prompt()
|