auto-coder 3.0.35__tar.gz → 3.0.36__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.
- {auto_coder-3.0.35/src/auto_coder.egg-info → auto_coder-3.0.36}/PKG-INFO +1 -1
- {auto_coder-3.0.35 → auto_coder-3.0.36}/pyproject.toml +1 -1
- {auto_coder-3.0.35 → auto_coder-3.0.36/src/auto_coder.egg-info}/PKG-INFO +1 -1
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/auto_coder.egg-info/SOURCES.txt +2 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit.py +9 -4
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/execute_external_tool_resolver.py +2 -1
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/run_named_subagents_tool_resolver.py +3 -1
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/run_subagents_tool_resolver.py +34 -13
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_types.py +6 -1
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/subagents/__init__.py +2 -0
- auto_coder-3.0.36/src/autocoder/common/v2/agent/subagents/backends/__init__.py +5 -0
- auto_coder-3.0.36/src/autocoder/common/v2/agent/subagents/backends/external_cli_drivers.py +172 -0
- auto_coder-3.0.36/src/autocoder/common/v2/agent/subagents/backends/external_cli_process.py +211 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/subagents/client.py +23 -5
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/subagents/models.py +11 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/version.py +1 -1
- auto_coder-3.0.35/src/autocoder/common/v2/agent/subagents/backends/__init__.py +0 -4
- {auto_coder-3.0.35 → auto_coder-3.0.36}/LICENSE +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/MANIFEST.in +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/README.md +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/requirements.txt +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/setup.cfg +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/setup.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/auto_coder.egg-info/dependency_links.txt +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/auto_coder.egg-info/entry_points.txt +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/auto_coder.egg-info/requires.txt +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/auto_coder.egg-info/top_level.txt +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/auto_demand_organizer.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/auto_filegroup.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/auto_guess_query.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/auto_learn.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/auto_learn_from_commit.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/auto_review_commit.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/auto_tool.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/base_agentic/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/base_agentic/agent_hub.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/base_agentic/agentic_lang.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/base_agentic/agentic_tool_display.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/base_agentic/base_agent.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/base_agentic/default_tools.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/base_agentic/test_base_agent.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/base_agentic/tool_registry.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/base_agentic/tools/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/base_agentic/tools/ask_followup_question_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/base_agentic/tools/attempt_completion_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/base_agentic/tools/base_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/base_agentic/tools/example_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/base_agentic/tools/execute_command_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/base_agentic/tools/list_files_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/base_agentic/tools/plan_mode_respond_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/base_agentic/tools/read_file_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/base_agentic/tools/replace_in_file_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/base_agentic/tools/search_files_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/base_agentic/tools/talk_to_group_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/base_agentic/tools/talk_to_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/base_agentic/tools/write_to_file_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/base_agentic/types.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/base_agentic/utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/coder.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/designer.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/entry_command_agent/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/entry_command_agent/auto_tool.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/entry_command_agent/chat.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/entry_command_agent/designer.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/entry_command_agent/generate_command.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/entry_command_agent/project_reader.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/entry_command_agent/voice2text.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/planner.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/agent/project_reader.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/auto_coder.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/auto_coder_rag.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/auto_coder_runner.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/auto_coder_terminal.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/auto_coder_terminal_v3.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/chat/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/chat/conf_command.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/chat/conf_spec.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/chat/models_command.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/chat/rules_command.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/chat_auto_coder_lang.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/command_args.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/commands/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/commands/auto_command.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/commands/auto_web.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/commands/tools.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/JupyterClient.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/ShellClient.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/ac_style_command_parser/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/ac_style_command_parser/config.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/ac_style_command_parser/parser.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/ac_style_command_parser/test_parser.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/ac_style_command_parser/test_typed_parser.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/ac_style_command_parser/typed_parser.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/action_yml_file_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/agent_events/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/agent_events/agent_event_emitter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/agent_events/event_factory.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/agent_events/examples.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/agent_events/types.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/agent_events/utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/agent_hooks/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/agent_hooks/examples.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/agent_hooks/hook_executor.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/agent_hooks/hook_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/agent_hooks/types.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/agent_hooks/utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/agent_query_queue/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/agent_query_queue/queue_executor.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/agent_query_queue/queue_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/agents/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/agents/agent_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/agents/agent_parser.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/agents/example_usage.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/agents/integration_example.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/agents/test_agent_parser.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/anything2images.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/anything2img.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/async_prompt.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/async_utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/audio.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/auto_coder_lang.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/auto_configure.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/autocoderargs_parser/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/autocoderargs_parser/parser.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/autocoderargs_parser/tests/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/autocoderargs_parser/tests/test_args_parser.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/autocoderargs_parser/tests/test_token_parser.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/autocoderargs_parser/token_parser.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/buildin_tokenizer.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/chunk_validation.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/cli_invocation.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/code_auto_execute.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/code_auto_generate.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/code_auto_generate_diff.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/code_auto_generate_editblock.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/code_auto_generate_strict_diff.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/code_auto_merge.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/code_auto_merge_diff.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/code_auto_merge_editblock.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/code_auto_merge_strict_diff.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/code_modification_ranker.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/command_completer.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/command_file_manager/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/command_file_manager/examples.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/command_file_manager/manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/command_file_manager/models.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/command_file_manager/test_command_file_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/command_file_manager/utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/command_generator.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/command_templates.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/computer_use.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/conf_import_export.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/conf_utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/conf_validator.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/const.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/conversations/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/conversations/backup/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/conversations/backup/backup_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/conversations/backup/restore_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/conversations/cache/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/conversations/cache/base_cache.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/conversations/cache/cache_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/conversations/cache/memory_cache.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/conversations/config.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/conversations/exceptions.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/conversations/file_locker.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/conversations/get_conversation_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/conversations/llm_stats_models.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/conversations/manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/conversations/models.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/conversations/runtime_registry.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/conversations/search/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/conversations/search/filter_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/conversations/search/text_searcher.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/conversations/storage/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/conversations/storage/base_storage.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/conversations/storage/file_storage.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/conversations/storage/index_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/core_config/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/core_config/agentic_mode_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/core_config/base_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/core_config/compatibility.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/core_config/config_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/core_config/conversation_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/core_config/exclude_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/core_config/file_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/core_config/human_as_model_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/core_config/lib_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/core_config/main_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/core_config/merge_utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/core_config/mode_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/core_config/models.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/core_config/test_memory_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/env_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/env_manager_usage_example.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/file_checkpoint/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/file_checkpoint/backup.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/file_checkpoint/conversation_checkpoint.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/file_checkpoint/manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/file_checkpoint/models.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/file_checkpoint/store.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/file_checkpoint/test_backup.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/file_checkpoint/test_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/file_checkpoint/test_models.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/file_checkpoint/test_store.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/file_checkpoint/test_utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/file_checkpoint/utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/file_handler/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/file_handler/add_files_handler.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/file_handler/chat_handler.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/file_handler/coding_handler.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/file_handler/commit_handler.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/file_handler/lib_handler.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/file_handler/list_files_handler.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/file_handler/models_handler.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/file_handler/remove_files_handler.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/file_monitor/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/file_monitor/monitor.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/file_monitor/test_file_monitor.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/files.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/git_utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/global_cancel.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/ignorefiles/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/ignorefiles/ignore_file_utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/ignorefiles/test_ignore_file_utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/image_to_page.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/index_import_export.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/international/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/international/demo_international.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/international/message_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/international/messages/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/international/messages/async_command_messages.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/international/messages/auto_coder_messages.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/international/messages/chat_auto_coder_messages.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/international/messages/command_help_messages.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/international/messages/conversation_command_messages.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/international/messages/fast_command_messages.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/international/messages/git_helper_plugin_messages.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/international/messages/queue_command_messages.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/international/messages/rules_command_messages.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/international/messages/sdk_messages.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/international/messages/token_helper_plugin_messages.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/international/messages/tool_display_messages.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/international/messages/workflow_exception_messages.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/international/test_international.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/interpreter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/linter_core/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/linter_core/base_linter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/linter_core/config_loader.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/linter_core/formatters/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/linter_core/formatters/base_formatter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/linter_core/formatters/raw_formatter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/linter_core/linter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/linter_core/linter_factory.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/linter_core/linter_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/linter_core/linters/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/linter_core/linters/java_linter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/linter_core/linters/python_linter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/linter_core/linters/typescript_linter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/linter_core/models/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/linter_core/models/lint_result.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/linter_core/models.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/linter_core/tests/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/linter_core/tests/test_config_loader.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/linter_core/tests/test_config_loading.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/linter_core/tests/test_factory_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/linter_core/tests/test_formatters.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/linter_core/tests/test_integration.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/linter_core/tests/test_java_linter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/linter_core/tests/test_linters.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/linter_core/tests/test_models.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/linter_core/tests/verify_config_loading.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/linter_core/tests/verify_fixes.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/llm_friendly_package/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/llm_friendly_package/base_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/llm_friendly_package/docs_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/llm_friendly_package/library_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/llm_friendly_package/main_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/llm_friendly_package/models.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/llm_friendly_package/test_llm_friendly_package.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/llms/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/llms/demo_error_handling.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/llms/factory.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/llms/manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/llms/pricing.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/llms/registry.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/llms/schema.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/llms/simple_demo.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/llms/test_quick_model.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/llms/test_remove_functionality.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/llms/tests/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/llms/tests/test_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/llms/tests/test_registry.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/memory_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/model_speed_tester.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/openai_content.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/printer.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/priority_directory_finder/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/priority_directory_finder/examples.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/priority_directory_finder/finder.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/priority_directory_finder/models.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/priority_directory_finder/test_priority_directory_finder.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/project_scanner/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/project_scanner/compat.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/project_scanner/scanner.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/project_tracker/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/project_tracker/api.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/project_tracker/demo.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/project_tracker/tracker.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/project_tracker/types.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pruner/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pruner/agentic_conversation_pruner.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pruner/context_pruner.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pruner/conversation_message_ids_api.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pruner/conversation_message_ids_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pruner/conversation_message_ids_pruner.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pruner/conversation_normalizer.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pruner/conversation_pruner.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pruner/test_agentic_conversation_pruner.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pruner/test_context_pruner.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pruner/test_conversation_normalizer.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pruner/test_tool_content_detector.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pruner/tool_content_detector.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pruner/tools/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pruner/tools/query_message_ids.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pruner/tools/test_agentic_pruning_logic.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pruner/tools/test_message_ids_pruning_only.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pull_requests/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pull_requests/base_provider.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pull_requests/config.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pull_requests/example.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pull_requests/exceptions.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pull_requests/manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pull_requests/models.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pull_requests/providers/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pull_requests/providers/gitcode_provider.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pull_requests/providers/gitee_provider.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pull_requests/providers/github_provider.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pull_requests/providers/gitlab_provider.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/pull_requests/utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/rag_manager/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/rag_manager/rag_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/recall_validation.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/result_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/rulefiles/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/rulefiles/api.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/rulefiles/core/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/rulefiles/core/manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/rulefiles/core/selector.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/rulefiles/models/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/rulefiles/models/index.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/rulefiles/models/init_rule.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/rulefiles/models/rule_file.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/rulefiles/models/rule_relevance.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/rulefiles/models/summary.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/rulefiles/test_rulefiles.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/rulefiles/test_subagents_filter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/rulefiles/utils/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/rulefiles/utils/log_utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/rulefiles/utils/monitor.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/rulefiles/utils/parser.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/run_cmd.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/save_formatted_log.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/screenshots.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/search.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/search_replace.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/search_replace_patch/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/search_replace_patch/base.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/search_replace_patch/manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/search_replace_patch/patch_replacer.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/search_replace_patch/similarity_replacer.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/search_replace_patch/string_replacer.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/search_replace_patch/tests/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/search_replace_patch/tests/run_tests.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/search_replace_patch/tests/test_base.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/search_replace_patch/tests/test_empty_line_insert.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/search_replace_patch/tests/test_integration.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/search_replace_patch/tests/test_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/search_replace_patch/tests/test_patch_replacer.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/search_replace_patch/tests/test_regex_replacer.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/search_replace_patch/tests/test_similarity_replacer.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/background_process_notifier.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/command_executor.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/error_recovery.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/exceptions.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/interactive_executor.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/interactive_pexpect_process.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/interactive_process.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/interactive_session_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/monitoring.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/process_cleanup.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/process_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/test_interactive_pexpect_process.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/tests/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/tests/conftest.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/tests/test_background_process_notifier.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/tests/test_command_executor.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/tests/test_error_recovery.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/tests/test_exceptions.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/tests/test_execute_batch.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/tests/test_indented_batch_commands.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/tests/test_integration.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/tests/test_monitoring.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/tests/test_performance.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/tests/test_process_cleanup.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/tests/test_process_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/tests/test_timeout_config.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/tests/test_timeout_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/tests/test_windows_support.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/timeout_config.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/timeout_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shell_commands/windows_support.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/shells.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/skills/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/skills/manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/stats_panel.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/stream_out_type.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/sys_prompt.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/terminal_paste/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/terminal_paste/clipboard_image.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/terminal_paste/demo.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/terminal_paste/demo_paste_functionality.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/terminal_paste/paste_handler.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/terminal_paste/paste_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/terminal_paste/tests/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/terminal_paste/tests/test_paste_handler.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/terminal_paste/tests/test_paste_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/terminal_paste/utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/test_autocoder_args.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/test_env_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/test_env_manager_integration.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/test_run_cmd.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/text_similarity/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/text_similarity/demo.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/text_similarity/examples.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/text_similarity/test_text_similarity.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/text_similarity/text_similarity.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/text_similarity/utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/todos/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/todos/cache/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/todos/cache/base_cache.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/todos/cache/cache_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/todos/cache/memory_cache.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/todos/config.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/todos/exceptions.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/todos/formatting.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/todos/get_todo_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/todos/manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/todos/models.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/todos/storage/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/todos/storage/base_storage.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/todos/storage/file_storage.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/token_cost_caculate.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/tokens/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/tokens/counter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/tokens/file_detector.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/tokens/filters.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/tokens/models.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/tools_manager/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/tools_manager/examples.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/tools_manager/manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/tools_manager/models.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/tools_manager/test_tools_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/tools_manager/utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/types.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/utils_code_auto_generate.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_callbacks.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_change_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/ac_mod_list_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/ac_mod_read_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/ac_mod_write_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/ask_followup_question_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/attempt_completion_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/base_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/conversation_message_ids_read_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/conversation_message_ids_write_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/count_tokens_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/dangerous_command_checker.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/execute_command_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/execute_workflow_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/extra_docs/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/extra_docs/ac_mod_files.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/extra_docs/interactive_session.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/extra_docs/plan_format.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/extra_docs/skill.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/extra_docs/web_research.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/extra_docs/workflow_subagents.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/extract_text_to_file_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/lint_report.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/linter_config_models.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/linter_enabled_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/list_code_definition_names_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/list_files_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/load_extra_document_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/manage_background_tasks_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/plan_mode_respond_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/read_file_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/read_image_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/repl_close_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/repl_open_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/repl_send_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/replace_in_file/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/replace_in_file/apply.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/replace_in_file/failure_report.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/replace_in_file/parsing.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/replace_in_file/paths.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/replace_in_file_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/search_files_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/test_write_to_file_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/todo_read_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/todo_write_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/use_rag_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/web_crawl_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/web_search_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/agentic_edit_tools/write_to_file_tool_resolver.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/llm_stream_parser.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/runner/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/runner/base_runner.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/runner/file_based_event_runner.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/runner/sdk_runner.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/runner/terminal_runner.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/runner/tool_display.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/subagents/backends/cli_process.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/subagents/backends/in_process.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/subagents/prompt_provider.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/subagents/tests/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/subagents/tests/test_subagent_client.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/test_agentic_callbacks.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/test_agentic_edit.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/test_agentic_edit_conversation_lifecycle.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/test_llm_stream_parser.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/tool_caller/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/tool_caller/default_tool_resolver_map.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/tool_caller/integration_test.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/tool_caller/plugins/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/tool_caller/plugins/base_plugin.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/tool_caller/plugins/examples/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/tool_caller/plugins/examples/command_policy_plugin.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/tool_caller/plugins/examples/logging_plugin.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/tool_caller/plugins/examples/security_filter_plugin.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/tool_caller/plugins/examples/workspace_delta_plugin.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/tool_caller/plugins/plugin_interface.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/tool_caller/test_hook_mechanism.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/tool_caller/test_tool_caller.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/tool_caller/tool_call_plugin_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/tool_caller/tool_caller.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/agent/tool_caller/usage_example.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/code_agentic_editblock_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/code_auto_generate.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/code_auto_generate_diff.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/code_auto_generate_editblock.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/code_auto_generate_strict_diff.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/code_auto_merge.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/code_auto_merge_diff.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/code_auto_merge_editblock.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/code_auto_merge_strict_diff.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/code_diff_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/code_editblock_events/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/code_editblock_events/manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/code_editblock_events/types.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/code_editblock_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/code_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/v2/code_strict_diff_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/wrap_llm_hint/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/wrap_llm_hint/test_wrap_llm_hint.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/wrap_llm_hint/utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/common/wrap_llm_hint/wrap_llm_hint.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/compilers/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/compilers/base_compiler.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/compilers/compiler_config_api.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/compilers/compiler_config_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/compilers/compiler_factory.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/compilers/java_compiler.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/compilers/models.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/compilers/normal_compiler.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/compilers/provided_compiler.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/compilers/python_compiler.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/compilers/reactjs_compiler.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/compilers/shadow_compiler.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/compilers/vue_compiler.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/completer/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/completer/command_completer_v2.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/completer/tests/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/completer/tests/test_task_completion.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/data/byzerllm.md +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/data/tokenizer.json +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/db/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/db/store.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/default_project/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/dispacher/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/dispacher/actions/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/dispacher/actions/action.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/dispacher/actions/copilot.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/dispacher/actions/plugins/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/dispacher/actions/plugins/action_regex_project.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/events/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/events/event_content.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/events/event_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/events/event_manager_singleton.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/events/event_store.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/events/event_types.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/helper/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/helper/project_creator.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/helper/rag_doc_creator.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/index/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/index/entry.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/index/filter/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/index/filter/agentic_filter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/index/filter/normal_filter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/index/filter/quick_filter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/index/for_command.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/index/index.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/index/symbols_utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/index/tests/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/index/tests/run_tests.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/index/tests/test_entry.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/index/tests/test_index_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/index/tests/test_module_integration.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/index/tests/test_symbols_utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/index/types.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/inner/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/inner/agentic.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/inner/async_command_handler.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/inner/conversation_command_handlers.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/inner/merge_command_handler.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/inner/queue_command_handler.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/lang.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/linters/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/linters/base_linter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/linters/linter_factory.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/linters/models.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/linters/normal_linter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/linters/python_linter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/linters/reactjs_linter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/linters/shadow_linter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/linters/test_python_linter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/linters/test_reactjs_linter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/linters/test_vue_linter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/linters/vue_linter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/memory/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/memory/agent_executor.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/memory/context_provider.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/memory/manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/memory/registry.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/memory/scheduler.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/memory/sources/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/memory/sources/ac_modules.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/memory/sources/history.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/memory/store.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/memory/tasks/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/memory/tasks/base.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/memory/tasks/history_memory_mining.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/memory/tasks/module_context_refresh.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/memory/tests/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/memory/tests/test_memory.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/models.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/plugins/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/plugins/git_helper_plugin.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/plugins/token_helper_plugin.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/plugins/utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/privacy/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/privacy/model_filter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/pyproject/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/agentic_rag.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/api_server.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/cache/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/cache/base_cache.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/cache/byzer_storage_cache.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/cache/cache_result_merge.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/cache/failed_files_utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/cache/file_monitor_cache.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/cache/local_byzer_storage_cache.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/cache/local_duckdb_storage_cache.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/cache/rag_file_meta.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/cache/simple_cache.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/conversation_to_queries.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/doc_filter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/document_retriever.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/lang.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/llm_wrapper.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/loaders/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/loaders/docx_loader.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/loaders/excel_loader.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/loaders/filter_utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/loaders/image_loader.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/loaders/pdf_loader.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/loaders/ppt_loader.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/long_context_rag.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/qa_conversation_strategy.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/rag_config.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/rag_entry.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/relevant_utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/sdk/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/sdk/client.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/sdk/models.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/sdk/utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/searchable.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/stream_event/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/stream_event/event_writer.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/stream_event/types.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/terminal/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/terminal/args.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/terminal/bootstrap.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/terminal/command_handlers.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/terminal/formatters/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/terminal/formatters/base.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/terminal/formatters/json_format.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/terminal/formatters/stream_json.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/terminal/formatters/text.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/terminal/init.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/terminal/utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/test_agentic_rag.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/test_doc_filter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/test_long_context_rag.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/test_token_limiter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/token_checker.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/token_counter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/token_limiter.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/token_limiter_utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/tools/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/tools/bochaai_example.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/tools/bochaai_sdk.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/tools/metaso_example.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/tools/metaso_sdk.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/tools/recall_tool.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/tools/run_integration_tests.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/tools/search_tool.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/tools/test_all_providers.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/tools/test_bochaai_integration.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/tools/test_final_integration.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/tools/test_metaso_integration.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/tools/test_metaso_real.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/tools/test_web_crawl_tool.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/tools/test_web_search_tool.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/tools/todo_read_tool.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/tools/todo_write_tool.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/tools/web_crawl_tool.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/tools/web_search_tool.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/tools/web_tools_example.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/types.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/variable_holder.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rag/wildcard_sync.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/rags.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/regexproject/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/run_context.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/api.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/async_runner/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/async_runner/async_executor.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/async_runner/async_handler.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/async_runner/async_service.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/async_runner/markdown_processor.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/async_runner/task_completion_provider.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/async_runner/task_metadata.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/async_runner/tests/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/async_runner/tests/test_async_service.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/async_runner/worktree_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/cli/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/cli/formatters.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/cli/handlers.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/cli/main.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/cli/options.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/constants.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/core/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/core/auto_coder_core.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/core/bridge.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/exceptions.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/formatters/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/formatters/input.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/formatters/output.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/formatters/stream.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/models/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/models/options.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/models/responses.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/utils/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/utils/formatters.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/utils/io_utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/sdk/utils/validators.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/shadows/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/shadows/shadow_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/suffixproject/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal/app.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal/args.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal/bootstrap.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal/command_processor.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal/command_registry.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal/help.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal/tasks/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal/tasks/background.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal/tasks/task_event.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal/ui/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal/ui/completer.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal/ui/keybindings.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal/ui/session.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal/ui/toolbar.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal/utils/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal/utils/errors.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal/utils/paths.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal/utils/shell.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal_core/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal_core/command_registry.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal_core/forward_input.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal_core/lifecycle.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal_core/output.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal_core/status.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal_core/task_runtime.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal_v3/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal_v3/app.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal_v3/handlers/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal_v3/handlers/command_handler.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal_v3/models/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal_v3/models/conversation_buffer.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal_v3/models/message.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal_v3/models/tool_display.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal_v3/ui/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal_v3/ui/keybindings.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal_v3/ui/layout.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/terminal_v3/ui/styles.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/tsproject/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/utils/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/utils/_markitdown.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/utils/auto_coder_utils/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/utils/auto_coder_utils/chat_stream_out.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/utils/auto_project_type.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/utils/chat_auto_coder_utils/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/utils/conversation_store.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/utils/llm_client_interceptors.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/utils/llms.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/utils/log_capture.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/utils/math_utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/utils/model_provider_selector.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/utils/multi_turn.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/utils/operate_config_api.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/utils/print_table.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/utils/project_structure.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/utils/queue_communicate.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/utils/request_event_queue.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/utils/request_queue.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/utils/rest.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/utils/stream_thinking.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/utils/thread_utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/utils/types.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/workflow_agents/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/workflow_agents/agent.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/workflow_agents/exceptions.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/workflow_agents/executor.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/workflow_agents/loader.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/workflow_agents/runner.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/workflow_agents/tests/__init__.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/workflow_agents/tests/test_loader.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/workflow_agents/tests/test_types.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/workflow_agents/tests/test_utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/workflow_agents/types.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/workflow_agents/utils.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/src/autocoder/workflow_agents/workflow_manager.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/tests/test_args_parser.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/tests/test_command_consistency.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/tests/test_conf_completions.py +0 -0
- {auto_coder-3.0.35 → auto_coder-3.0.36}/tests/test_conf_global_shorthand.py +0 -0
|
@@ -545,6 +545,8 @@ src/autocoder/common/v2/agent/subagents/models.py
|
|
|
545
545
|
src/autocoder/common/v2/agent/subagents/prompt_provider.py
|
|
546
546
|
src/autocoder/common/v2/agent/subagents/backends/__init__.py
|
|
547
547
|
src/autocoder/common/v2/agent/subagents/backends/cli_process.py
|
|
548
|
+
src/autocoder/common/v2/agent/subagents/backends/external_cli_drivers.py
|
|
549
|
+
src/autocoder/common/v2/agent/subagents/backends/external_cli_process.py
|
|
548
550
|
src/autocoder/common/v2/agent/subagents/backends/in_process.py
|
|
549
551
|
src/autocoder/common/v2/agent/subagents/tests/__init__.py
|
|
550
552
|
src/autocoder/common/v2/agent/subagents/tests/test_subagent_client.py
|
|
@@ -986,7 +986,7 @@ class AgenticEdit:
|
|
|
986
986
|
</run_named_subagents>
|
|
987
987
|
|
|
988
988
|
## run_subagents
|
|
989
|
-
Description: Run subagents using the unified SubagentClient API. Supports in-process (default, faster, shares memory)
|
|
989
|
+
Description: Run subagents using the unified SubagentClient API. Supports three backends: in-process (default, faster, shares memory), cli-process (isolated auto-coder.run subprocess), and external-cli-process (external CLI tools like Cursor CLI or Claude Code CLI). Each subagent runs in a completely isolated new session — no session sharing or resumption between subagents.
|
|
990
990
|
Parameters:
|
|
991
991
|
- subagents: (required) The subagents to run, in JSON or YAML format.
|
|
992
992
|
- A JSON Array: [{"name": "agent_name", "task": "task description", "model": "optional_model"}]
|
|
@@ -1000,7 +1000,11 @@ class AgenticEdit:
|
|
|
1000
1000
|
- name: (optional) A label for this subagent. If the name matches a pre-defined agent in .autocoderagents, its system prompt and model will be loaded automatically. Otherwise the subagent runs with the default system prompt.
|
|
1001
1001
|
- task: (required) The task description for the subagent
|
|
1002
1002
|
- model: (optional) Override the model for this specific subagent. If not specified, uses the model defined in the agent definition or the current model.
|
|
1003
|
-
- backend: (optional) Execution backend.
|
|
1003
|
+
- backend: (optional) Execution backend. Default is "in_process".
|
|
1004
|
+
- "in_process": fastest, shares memory with parent agent
|
|
1005
|
+
- "cli_process": isolated auto-coder.run subprocess
|
|
1006
|
+
- "external_cli_process": external CLI tool (requires external_cli parameter)
|
|
1007
|
+
- external_cli: (optional) Which external CLI to use when backend is "external_cli_process". Must be "cursor" (Cursor CLI) or "claude_code" (Claude Code CLI). The external CLI tool must be installed and authenticated.
|
|
1004
1008
|
- max_concurrency: (optional) Maximum number of subagents to run in parallel. Only applies when mode is "parallel". Default is no limit (all run concurrently).
|
|
1005
1009
|
Usage:
|
|
1006
1010
|
<run_subagents>
|
|
@@ -2167,7 +2171,7 @@ class AgenticEdit:
|
|
|
2167
2171
|
|
|
2168
2172
|
## Overview
|
|
2169
2173
|
|
|
2170
|
-
When facing complex tasks that can be decomposed into independent subtasks, you can leverage the `run_subagents` tool to delegate work to sub-agents. Sub-agents run in-process by default (fast, shares memory)
|
|
2174
|
+
When facing complex tasks that can be decomposed into independent subtasks, you can leverage the `run_subagents` tool to delegate work to sub-agents. Sub-agents run in-process by default (fast, shares memory), as isolated auto-coder.run CLI subprocesses, or via external CLI tools (Cursor CLI / Claude Code CLI). Each subagent always runs in a completely isolated new session — no two subagents share context or conversation history. This allows you to delegate specific, isolated tasks to separate AI instances, significantly improving efficiency and task completion speed.
|
|
2171
2175
|
|
|
2172
2176
|
## When to Use Sub-Agents
|
|
2173
2177
|
|
|
@@ -2285,8 +2289,9 @@ class AgenticEdit:
|
|
|
2285
2289
|
|
|
2286
2290
|
### Backend Selection
|
|
2287
2291
|
|
|
2288
|
-
- `in_process` (default):
|
|
2292
|
+
- `in_process` (default): Fastest, shares memory with the parent agent. Best for most tasks.
|
|
2289
2293
|
- `cli_process`: Runs as isolated `auto-coder.run` subprocess. Use when full process isolation is required.
|
|
2294
|
+
- `external_cli_process`: Runs via an external CLI tool. Set `external_cli` to `"cursor"` (Cursor CLI `agent` command) or `"claude_code"` (Claude Code CLI `claude` command). The external tool must be installed and authenticated by the user. Use when you want to leverage a different AI agent runtime.
|
|
2290
2295
|
|
|
2291
2296
|
### Task Delegation Strategy
|
|
2292
2297
|
1. Analyze the main task to identify independent subtasks
|
|
@@ -492,8 +492,9 @@ class ExecuteExternalToolResolver(BaseToolResolver):
|
|
|
492
492
|
else:
|
|
493
493
|
# 前台执行
|
|
494
494
|
timeout = self.tool.timeout
|
|
495
|
+
verbose = not get_run_context().is_terminal()
|
|
495
496
|
exit_code, output = execute_command(
|
|
496
|
-
command, timeout=timeout, verbose=
|
|
497
|
+
command, timeout=timeout, verbose=verbose, cwd=source_dir
|
|
497
498
|
)
|
|
498
499
|
|
|
499
500
|
logger.info(f"External tool executed: {masked_command}")
|
|
@@ -337,8 +337,10 @@ class RunNamedSubagentsToolResolver(BaseToolResolver):
|
|
|
337
337
|
)
|
|
338
338
|
|
|
339
339
|
project_root = self.args.source_dir or "."
|
|
340
|
+
from autocoder.run_context import get_run_context
|
|
341
|
+
verbose = not get_run_context().is_terminal()
|
|
340
342
|
process_info = execute_command_background(
|
|
341
|
-
command=argv, cwd=project_root, verbose=
|
|
343
|
+
command=argv, cwd=project_root, verbose=verbose
|
|
342
344
|
)
|
|
343
345
|
|
|
344
346
|
bg_proc: Dict[str, Any] = {
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"""
|
|
2
2
|
Run Subagents Tool Resolver
|
|
3
3
|
|
|
4
|
-
通过 SubagentClient 统一 API 执行子代理,支持 in_process / cli_process
|
|
5
|
-
|
|
4
|
+
通过 SubagentClient 统一 API 执行子代理,支持 in_process / cli_process /
|
|
5
|
+
external_cli_process 后端切换和并发控制(max_concurrency)。
|
|
6
|
+
|
|
7
|
+
每个 subagent 强制使用全新独立会话(share_mode=NEW),禁止任何会话共享或恢复。
|
|
6
8
|
|
|
7
9
|
实现了 resolve_stream(),在子代理执行期间向 TUI 推送进度信息
|
|
8
10
|
(ToolStreamEvent),避免长时间无反馈。
|
|
@@ -17,7 +19,6 @@ import yaml
|
|
|
17
19
|
from loguru import logger
|
|
18
20
|
|
|
19
21
|
from autocoder.common import AutoCoderArgs
|
|
20
|
-
from autocoder.common.agents import AgentManager
|
|
21
22
|
from autocoder.common.v2.agent.agentic_edit_tools.base_tool_resolver import (
|
|
22
23
|
BaseToolResolver,
|
|
23
24
|
)
|
|
@@ -41,9 +42,10 @@ class RunSubagentsToolResolver(BaseToolResolver):
|
|
|
41
42
|
|
|
42
43
|
与 RunNamedSubagentsToolResolver 的区别:
|
|
43
44
|
- 使用 SubagentClient 统一 API 而非 shell 命令拼接
|
|
44
|
-
- 支持 in_process
|
|
45
|
+
- 支持 in_process(默认)、cli_process 和 external_cli_process 三种后端
|
|
45
46
|
- 通过 max_concurrency 参数控制并行度
|
|
46
47
|
- 返回结构化 SubagentResult
|
|
48
|
+
- 强制每个 subagent 使用全新独立会话(share_mode=NEW)
|
|
47
49
|
"""
|
|
48
50
|
|
|
49
51
|
def __init__(
|
|
@@ -55,9 +57,6 @@ class RunSubagentsToolResolver(BaseToolResolver):
|
|
|
55
57
|
super().__init__(agent, tool, args)
|
|
56
58
|
self.tool: RunSubagentsTool = tool
|
|
57
59
|
|
|
58
|
-
project_root = args.source_dir if args.source_dir else "."
|
|
59
|
-
self.agent_manager = AgentManager(project_root)
|
|
60
|
-
|
|
61
60
|
def resolve(self) -> ToolResult:
|
|
62
61
|
from autocoder.common.v2.agent.agentic_edit_tools.run_named_subagents_tool_resolver import (
|
|
63
62
|
_check_subagent_recursion,
|
|
@@ -216,7 +215,10 @@ class RunSubagentsToolResolver(BaseToolResolver):
|
|
|
216
215
|
]
|
|
217
216
|
parallel = execution_mode == "parallel"
|
|
218
217
|
|
|
219
|
-
|
|
218
|
+
if backend_str == "external_cli_process":
|
|
219
|
+
model_display = "external CLI default"
|
|
220
|
+
else:
|
|
221
|
+
model_display = self.args.model or "unknown"
|
|
220
222
|
yield f"Starting {total} sub-agents ({execution_mode} mode, backend={backend_str}, model={model_display})...\n"
|
|
221
223
|
for i, name in enumerate(agent_names):
|
|
222
224
|
task_preview = subagents_list[i]["task"][:60]
|
|
@@ -314,11 +316,12 @@ class RunSubagentsToolResolver(BaseToolResolver):
|
|
|
314
316
|
mapping = {
|
|
315
317
|
"in_process": SubagentBackend.IN_PROCESS,
|
|
316
318
|
"cli_process": SubagentBackend.CLI_PROCESS,
|
|
319
|
+
"external_cli_process": SubagentBackend.EXTERNAL_CLI_PROCESS,
|
|
317
320
|
}
|
|
318
321
|
if backend_str not in mapping:
|
|
319
322
|
raise ValueError(
|
|
320
323
|
f"无效的 backend: '{backend_str}',"
|
|
321
|
-
f"必须是 'in_process' 或 '
|
|
324
|
+
f"必须是 'in_process'、'cli_process' 或 'external_cli_process'"
|
|
322
325
|
)
|
|
323
326
|
return mapping[backend_str]
|
|
324
327
|
|
|
@@ -371,9 +374,9 @@ class RunSubagentsToolResolver(BaseToolResolver):
|
|
|
371
374
|
) -> Dict[str, Any]:
|
|
372
375
|
"""校验格式和必填字段。
|
|
373
376
|
|
|
374
|
-
注意:run_subagents
|
|
375
|
-
|
|
376
|
-
|
|
377
|
+
注意:run_subagents 是通用工具,不会加载 .autocoderagents 中的 agent
|
|
378
|
+
定义。name 仅用于展示标签,不会触发 agent spec 查找或模型回填。
|
|
379
|
+
如需使用预定义 agent,请使用 run_named_subagents。
|
|
377
380
|
"""
|
|
378
381
|
errors: List[str] = []
|
|
379
382
|
|
|
@@ -398,23 +401,41 @@ class RunSubagentsToolResolver(BaseToolResolver):
|
|
|
398
401
|
subagents_list: List[Dict[str, str]],
|
|
399
402
|
backend: "SubagentBackend",
|
|
400
403
|
) -> List["SubagentRequest"]:
|
|
401
|
-
from autocoder.common.v2.agent.subagents import
|
|
404
|
+
from autocoder.common.v2.agent.subagents import (
|
|
405
|
+
ExternalCLIType,
|
|
406
|
+
SubagentBackend as _SubagentBackend,
|
|
407
|
+
SubagentRequest,
|
|
408
|
+
SubagentSessionOptions,
|
|
409
|
+
SubagentSessionShareMode,
|
|
410
|
+
)
|
|
402
411
|
|
|
403
412
|
requests: List[SubagentRequest] = []
|
|
404
413
|
timeout = self.args.call_subagent_timeout
|
|
414
|
+
tool_external_cli = self.tool.external_cli
|
|
405
415
|
|
|
406
416
|
for entry in subagents_list:
|
|
407
417
|
task = entry["task"]
|
|
408
418
|
agent_name = entry.get("name") or None
|
|
409
419
|
model = entry.get("model") or None
|
|
410
420
|
|
|
421
|
+
external_cli: Optional[ExternalCLIType] = None
|
|
422
|
+
if backend == _SubagentBackend.EXTERNAL_CLI_PROCESS:
|
|
423
|
+
external_cli_str = entry.get("external_cli") or tool_external_cli
|
|
424
|
+
if external_cli_str:
|
|
425
|
+
external_cli = ExternalCLIType(external_cli_str)
|
|
426
|
+
|
|
411
427
|
requests.append(
|
|
412
428
|
SubagentRequest(
|
|
413
429
|
task=task,
|
|
414
430
|
agent_name=agent_name,
|
|
415
431
|
backend=backend,
|
|
432
|
+
external_cli=external_cli,
|
|
416
433
|
model=model,
|
|
417
434
|
timeout_seconds=int(timeout) if timeout else None,
|
|
435
|
+
session=SubagentSessionOptions(
|
|
436
|
+
share_mode=SubagentSessionShareMode.NEW,
|
|
437
|
+
),
|
|
438
|
+
resolve_agent_spec=False,
|
|
418
439
|
)
|
|
419
440
|
)
|
|
420
441
|
|
|
@@ -161,11 +161,16 @@ class RunNamedSubagentsTool(BaseTool):
|
|
|
161
161
|
class RunSubagentsTool(BaseTool):
|
|
162
162
|
"""
|
|
163
163
|
Tool for running subagents via SubagentClient.
|
|
164
|
-
Supports in_process and
|
|
164
|
+
Supports in_process, cli_process and external_cli_process backends
|
|
165
|
+
with concurrency control.
|
|
166
|
+
|
|
167
|
+
When backend="external_cli_process", external_cli must be set to
|
|
168
|
+
"cursor" or "claude_code" to select the external CLI tool.
|
|
165
169
|
"""
|
|
166
170
|
|
|
167
171
|
subagents: str
|
|
168
172
|
backend: Optional[str] = "in_process"
|
|
173
|
+
external_cli: Optional[str] = None
|
|
169
174
|
max_concurrency: Optional[int] = None
|
|
170
175
|
|
|
171
176
|
|
|
@@ -19,6 +19,7 @@ Usage::
|
|
|
19
19
|
from .client import SubagentClient
|
|
20
20
|
from .models import (
|
|
21
21
|
AgentPromptSpec,
|
|
22
|
+
ExternalCLIType,
|
|
22
23
|
SubagentBackend,
|
|
23
24
|
SubagentRequest,
|
|
24
25
|
SubagentResult,
|
|
@@ -32,6 +33,7 @@ __all__ = [
|
|
|
32
33
|
"SubagentRequest",
|
|
33
34
|
"SubagentResult",
|
|
34
35
|
"SubagentBackend",
|
|
36
|
+
"ExternalCLIType",
|
|
35
37
|
"SubagentSessionShareMode",
|
|
36
38
|
"SubagentSessionOptions",
|
|
37
39
|
"AgentPromptSpec",
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"""
|
|
2
|
+
外部 CLI 驱动器协议与实现。
|
|
3
|
+
|
|
4
|
+
每种 Driver 负责:
|
|
5
|
+
- 确定 CLI 命令名
|
|
6
|
+
- 构建 argv(含 system_prompt 处理策略)
|
|
7
|
+
- 确定子进程 cwd
|
|
8
|
+
|
|
9
|
+
输出解析由 ExternalCLIProcessBackend 统一处理(Cursor / Claude Code 的
|
|
10
|
+
stream-json NDJSON 格式一致)。
|
|
11
|
+
|
|
12
|
+
model 策略:仅当 request.model 被显式指定时才传递 --model 给外部 CLI。
|
|
13
|
+
不会回退到 args.code_model / args.model,因为那些是 auto-coder 内部的模型名
|
|
14
|
+
(如 volcengine/coding/doubao-seed-2.0-pro),对外部 CLI 无意义。
|
|
15
|
+
未指定 model 时让外部 CLI 使用自身默认模型。
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
import shutil
|
|
19
|
+
from typing import List, Optional, Protocol, Tuple
|
|
20
|
+
|
|
21
|
+
from autocoder.common import AutoCoderArgs
|
|
22
|
+
from autocoder.common.cli_invocation import get_command_path as _get_command_path
|
|
23
|
+
|
|
24
|
+
from ..models import SubagentRequest
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class ExternalCLIDriver(Protocol):
|
|
28
|
+
"""外部 CLI 工具驱动器协议。"""
|
|
29
|
+
|
|
30
|
+
@property
|
|
31
|
+
def cli_name(self) -> str: ...
|
|
32
|
+
|
|
33
|
+
def get_command(self) -> str:
|
|
34
|
+
"""返回解析后的 CLI 可执行文件路径。"""
|
|
35
|
+
...
|
|
36
|
+
|
|
37
|
+
def check_available(self) -> Optional[str]:
|
|
38
|
+
"""检查 CLI 是否可用。返回 None 表示可用,否则返回错误信息。"""
|
|
39
|
+
...
|
|
40
|
+
|
|
41
|
+
def build_argv(
|
|
42
|
+
self,
|
|
43
|
+
request: SubagentRequest,
|
|
44
|
+
args: AutoCoderArgs,
|
|
45
|
+
project_root: str,
|
|
46
|
+
) -> Tuple[List[str], List[str]]:
|
|
47
|
+
"""构建 argv 和 temp_files 列表。"""
|
|
48
|
+
...
|
|
49
|
+
|
|
50
|
+
def get_cwd(self, project_root: str) -> str:
|
|
51
|
+
"""返回子进程的工作目录。"""
|
|
52
|
+
...
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
class CursorCLIDriver:
|
|
56
|
+
"""Cursor CLI (``agent``) 驱动器。
|
|
57
|
+
|
|
58
|
+
argv 模式::
|
|
59
|
+
|
|
60
|
+
agent -p --output-format stream-json --force
|
|
61
|
+
--workspace <project_root> --model <model>
|
|
62
|
+
<effective_task>
|
|
63
|
+
|
|
64
|
+
system_prompt 通过拼入 task 文本前部传递(Cursor CLI 不支持
|
|
65
|
+
--system-prompt-path 或 --append-system-prompt)。
|
|
66
|
+
"""
|
|
67
|
+
|
|
68
|
+
@property
|
|
69
|
+
def cli_name(self) -> str:
|
|
70
|
+
return "cursor"
|
|
71
|
+
|
|
72
|
+
def get_command(self) -> str:
|
|
73
|
+
return _get_command_path("agent")
|
|
74
|
+
|
|
75
|
+
def check_available(self) -> Optional[str]:
|
|
76
|
+
if shutil.which("agent") is None:
|
|
77
|
+
return (
|
|
78
|
+
"Cursor CLI 命令 'agent' 未找到。"
|
|
79
|
+
"请先安装 Cursor CLI 并通过 'agent login' 完成认证,"
|
|
80
|
+
"或设置 CURSOR_API_KEY 环境变量。"
|
|
81
|
+
)
|
|
82
|
+
return None
|
|
83
|
+
|
|
84
|
+
def build_argv(
|
|
85
|
+
self,
|
|
86
|
+
request: SubagentRequest,
|
|
87
|
+
args: AutoCoderArgs,
|
|
88
|
+
project_root: str,
|
|
89
|
+
) -> Tuple[List[str], List[str]]:
|
|
90
|
+
temp_files: List[str] = []
|
|
91
|
+
cmd = self.get_command()
|
|
92
|
+
argv = [cmd, "-p", "--output-format", "stream-json", "--force"]
|
|
93
|
+
|
|
94
|
+
argv.extend(["--workspace", project_root])
|
|
95
|
+
|
|
96
|
+
if request.model:
|
|
97
|
+
argv.extend(["--model", request.model])
|
|
98
|
+
|
|
99
|
+
effective_task = self._build_effective_task(request)
|
|
100
|
+
argv.append(effective_task)
|
|
101
|
+
|
|
102
|
+
return argv, temp_files
|
|
103
|
+
|
|
104
|
+
def get_cwd(self, project_root: str) -> str:
|
|
105
|
+
return project_root
|
|
106
|
+
|
|
107
|
+
@staticmethod
|
|
108
|
+
def _build_effective_task(request: SubagentRequest) -> str:
|
|
109
|
+
if request.system_prompt:
|
|
110
|
+
return (
|
|
111
|
+
f"<system_instructions>\n"
|
|
112
|
+
f"{request.system_prompt}\n"
|
|
113
|
+
f"</system_instructions>\n\n"
|
|
114
|
+
f"{request.task}"
|
|
115
|
+
)
|
|
116
|
+
return request.task
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
class ClaudeCodeCLIDriver:
|
|
120
|
+
"""Claude Code CLI (``claude``) 驱动器。
|
|
121
|
+
|
|
122
|
+
argv 模式::
|
|
123
|
+
|
|
124
|
+
claude -p --output-format stream-json
|
|
125
|
+
--allowedTools "Bash,Read,Edit,Write"
|
|
126
|
+
--model <model>
|
|
127
|
+
[--append-system-prompt <prompt>]
|
|
128
|
+
<task>
|
|
129
|
+
|
|
130
|
+
system_prompt 通过 ``--append-system-prompt`` 直接传递。
|
|
131
|
+
cwd 设为 project_root(Claude Code 通过工作目录确定项目范围)。
|
|
132
|
+
"""
|
|
133
|
+
|
|
134
|
+
@property
|
|
135
|
+
def cli_name(self) -> str:
|
|
136
|
+
return "claude_code"
|
|
137
|
+
|
|
138
|
+
def get_command(self) -> str:
|
|
139
|
+
return _get_command_path("claude")
|
|
140
|
+
|
|
141
|
+
def check_available(self) -> Optional[str]:
|
|
142
|
+
if shutil.which("claude") is None:
|
|
143
|
+
return (
|
|
144
|
+
"Claude Code CLI 命令 'claude' 未找到。"
|
|
145
|
+
"请先安装 Claude Code CLI 并设置 ANTHROPIC_API_KEY 环境变量。"
|
|
146
|
+
)
|
|
147
|
+
return None
|
|
148
|
+
|
|
149
|
+
def build_argv(
|
|
150
|
+
self,
|
|
151
|
+
request: SubagentRequest,
|
|
152
|
+
args: AutoCoderArgs,
|
|
153
|
+
project_root: str,
|
|
154
|
+
) -> Tuple[List[str], List[str]]:
|
|
155
|
+
temp_files: List[str] = []
|
|
156
|
+
cmd = self.get_command()
|
|
157
|
+
argv = [cmd, "-p", "--output-format", "stream-json"]
|
|
158
|
+
|
|
159
|
+
argv.extend(["--allowedTools", "Bash,Read,Edit,Write"])
|
|
160
|
+
|
|
161
|
+
if request.model:
|
|
162
|
+
argv.extend(["--model", request.model])
|
|
163
|
+
|
|
164
|
+
if request.system_prompt:
|
|
165
|
+
argv.extend(["--append-system-prompt", request.system_prompt])
|
|
166
|
+
|
|
167
|
+
argv.append(request.task)
|
|
168
|
+
|
|
169
|
+
return argv, temp_files
|
|
170
|
+
|
|
171
|
+
def get_cwd(self, project_root: str) -> str:
|
|
172
|
+
return project_root
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
"""
|
|
2
|
+
外部 CLI 后端:通过 Cursor CLI / Claude Code CLI 等外部工具执行子代理。
|
|
3
|
+
|
|
4
|
+
使用 --output-format stream-json 获取 NDJSON 事件流,两种 CLI 的输出格式
|
|
5
|
+
高度一致(type/subtype/session_id/result),由 _parse_output 统一解析。
|
|
6
|
+
|
|
7
|
+
会话约束:EXTERNAL_CLI_PROCESS 后端仅支持 share_mode=NEW(全新会话),
|
|
8
|
+
不支持 COPY_PARENT / RESUME_PARENT / RESUME。如果请求中包含非 NEW 的
|
|
9
|
+
share_mode,将直接报错。
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
import json
|
|
13
|
+
import os
|
|
14
|
+
import subprocess
|
|
15
|
+
from typing import Any, Dict, List, Optional, Tuple
|
|
16
|
+
|
|
17
|
+
from loguru import logger
|
|
18
|
+
|
|
19
|
+
from autocoder.common import AutoCoderArgs
|
|
20
|
+
from autocoder.common.global_cancel import global_cancel
|
|
21
|
+
from autocoder.common.shell_commands import execute_command
|
|
22
|
+
|
|
23
|
+
from ..models import (
|
|
24
|
+
ExternalCLIType,
|
|
25
|
+
SubagentBackend,
|
|
26
|
+
SubagentRequest,
|
|
27
|
+
SubagentResult,
|
|
28
|
+
SubagentSessionShareMode,
|
|
29
|
+
)
|
|
30
|
+
from .external_cli_drivers import (
|
|
31
|
+
ClaudeCodeCLIDriver,
|
|
32
|
+
CursorCLIDriver,
|
|
33
|
+
ExternalCLIDriver,
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
class ExternalCLIProcessBackend:
|
|
38
|
+
"""外部 CLI 后端:通过 Cursor CLI / Claude Code CLI 执行子代理。"""
|
|
39
|
+
|
|
40
|
+
def __init__(
|
|
41
|
+
self, args: AutoCoderArgs, project_root: str, driver: ExternalCLIDriver
|
|
42
|
+
) -> None:
|
|
43
|
+
self._args = args
|
|
44
|
+
self._project_root = project_root
|
|
45
|
+
self._driver = driver
|
|
46
|
+
|
|
47
|
+
@staticmethod
|
|
48
|
+
def get_driver(external_cli: Optional[ExternalCLIType]) -> ExternalCLIDriver:
|
|
49
|
+
"""根据 ExternalCLIType 返回对应的 Driver 实例。"""
|
|
50
|
+
if external_cli is None:
|
|
51
|
+
raise ValueError(
|
|
52
|
+
"EXTERNAL_CLI_PROCESS 后端必须指定 external_cli 参数 "
|
|
53
|
+
"('cursor' 或 'claude_code')"
|
|
54
|
+
)
|
|
55
|
+
if external_cli == ExternalCLIType.CURSOR:
|
|
56
|
+
return CursorCLIDriver()
|
|
57
|
+
if external_cli == ExternalCLIType.CLAUDE_CODE:
|
|
58
|
+
return ClaudeCodeCLIDriver()
|
|
59
|
+
raise ValueError(f"不支持的 external_cli 类型: {external_cli}")
|
|
60
|
+
|
|
61
|
+
def run(self, request: SubagentRequest) -> SubagentResult:
|
|
62
|
+
cli_name = self._driver.cli_name
|
|
63
|
+
temp_files: List[str] = []
|
|
64
|
+
try:
|
|
65
|
+
self._validate_session(request)
|
|
66
|
+
|
|
67
|
+
available_err = self._driver.check_available()
|
|
68
|
+
if available_err is not None:
|
|
69
|
+
logger.warning(
|
|
70
|
+
f"ExternalCLIProcessBackend[{cli_name}]: "
|
|
71
|
+
f"CLI not available: {available_err}"
|
|
72
|
+
)
|
|
73
|
+
return SubagentResult(
|
|
74
|
+
success=False,
|
|
75
|
+
backend=SubagentBackend.EXTERNAL_CLI_PROCESS,
|
|
76
|
+
error=available_err,
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
argv, new_temps = self._driver.build_argv(
|
|
80
|
+
request, self._args, self._project_root
|
|
81
|
+
)
|
|
82
|
+
temp_files.extend(new_temps)
|
|
83
|
+
cwd = self._driver.get_cwd(self._project_root)
|
|
84
|
+
|
|
85
|
+
logger.info(
|
|
86
|
+
f"ExternalCLIProcessBackend[{cli_name}]: "
|
|
87
|
+
f"launching subagent (agent_name={request.agent_name}, "
|
|
88
|
+
f"model={request.model}, cwd={cwd})"
|
|
89
|
+
)
|
|
90
|
+
logger.info(
|
|
91
|
+
f"ExternalCLIProcessBackend[{cli_name}]: "
|
|
92
|
+
f"argv={argv[:4]}... (task_len={len(request.task)})"
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
timeout = request.timeout_seconds
|
|
96
|
+
if timeout is None:
|
|
97
|
+
timeout = self._args.call_subagent_timeout
|
|
98
|
+
|
|
99
|
+
cancel_token = request.cancel_token
|
|
100
|
+
if cancel_token and global_cancel.is_requested(cancel_token):
|
|
101
|
+
return SubagentResult(
|
|
102
|
+
success=False,
|
|
103
|
+
backend=SubagentBackend.EXTERNAL_CLI_PROCESS,
|
|
104
|
+
error="cancelled before execution",
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
exit_code, output = execute_command(
|
|
108
|
+
command=argv,
|
|
109
|
+
timeout=timeout,
|
|
110
|
+
cwd=cwd,
|
|
111
|
+
stdin=subprocess.DEVNULL,
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
logger.info(
|
|
115
|
+
f"ExternalCLIProcessBackend[{cli_name}]: "
|
|
116
|
+
f"process finished (exit_code={exit_code}, "
|
|
117
|
+
f"output_len={len(output)})"
|
|
118
|
+
)
|
|
119
|
+
|
|
120
|
+
if exit_code != 0:
|
|
121
|
+
output_preview = output[:500] if output else "(empty)"
|
|
122
|
+
logger.warning(
|
|
123
|
+
f"ExternalCLIProcessBackend[{cli_name}]: "
|
|
124
|
+
f"non-zero exit code {exit_code}, "
|
|
125
|
+
f"output preview: {output_preview}"
|
|
126
|
+
)
|
|
127
|
+
|
|
128
|
+
session_id, result_text, events = self._parse_output(
|
|
129
|
+
output, request.collect_events
|
|
130
|
+
)
|
|
131
|
+
|
|
132
|
+
success = exit_code == 0 and result_text is not None
|
|
133
|
+
error_msg = None
|
|
134
|
+
if not success:
|
|
135
|
+
output_preview = output[:300] if output else "(empty)"
|
|
136
|
+
error_msg = (
|
|
137
|
+
f"exit_code={exit_code}, output_preview={output_preview}"
|
|
138
|
+
)
|
|
139
|
+
|
|
140
|
+
return SubagentResult(
|
|
141
|
+
success=success,
|
|
142
|
+
backend=SubagentBackend.EXTERNAL_CLI_PROCESS,
|
|
143
|
+
conversation_id=session_id,
|
|
144
|
+
attempt_result=result_text,
|
|
145
|
+
error=error_msg,
|
|
146
|
+
events=events,
|
|
147
|
+
)
|
|
148
|
+
except Exception:
|
|
149
|
+
logger.exception(
|
|
150
|
+
f"ExternalCLIProcessBackend[{cli_name}] error"
|
|
151
|
+
)
|
|
152
|
+
import traceback
|
|
153
|
+
|
|
154
|
+
return SubagentResult(
|
|
155
|
+
success=False,
|
|
156
|
+
backend=SubagentBackend.EXTERNAL_CLI_PROCESS,
|
|
157
|
+
error=traceback.format_exc(),
|
|
158
|
+
)
|
|
159
|
+
finally:
|
|
160
|
+
for f in temp_files:
|
|
161
|
+
try:
|
|
162
|
+
os.unlink(f)
|
|
163
|
+
except OSError:
|
|
164
|
+
pass
|
|
165
|
+
|
|
166
|
+
@staticmethod
|
|
167
|
+
def _validate_session(request: SubagentRequest) -> None:
|
|
168
|
+
"""确保外部 CLI 后端只接受 NEW 会话模式。"""
|
|
169
|
+
share_mode = request.session.share_mode
|
|
170
|
+
if share_mode != SubagentSessionShareMode.NEW:
|
|
171
|
+
raise ValueError(
|
|
172
|
+
f"EXTERNAL_CLI_PROCESS 后端不支持 share_mode={share_mode.value},"
|
|
173
|
+
f"仅支持 share_mode=NEW(全新会话)。"
|
|
174
|
+
)
|
|
175
|
+
|
|
176
|
+
@staticmethod
|
|
177
|
+
def _parse_output(
|
|
178
|
+
output: str,
|
|
179
|
+
collect_events: bool,
|
|
180
|
+
) -> Tuple[Optional[str], Optional[str], Optional[List[Dict[str, Any]]]]:
|
|
181
|
+
"""解析外部 CLI 的 stream-json NDJSON 输出。
|
|
182
|
+
|
|
183
|
+
Cursor CLI 和 Claude Code CLI 的事件格式一致:
|
|
184
|
+
- init: {"type":"system","subtype":"init","session_id":"..."}
|
|
185
|
+
- result: {"type":"result","subtype":"success","result":"..."}
|
|
186
|
+
"""
|
|
187
|
+
session_id: Optional[str] = None
|
|
188
|
+
result_text: Optional[str] = None
|
|
189
|
+
events: Optional[List[Dict[str, Any]]] = [] if collect_events else None
|
|
190
|
+
|
|
191
|
+
for line in output.splitlines():
|
|
192
|
+
line = line.strip()
|
|
193
|
+
if not line:
|
|
194
|
+
continue
|
|
195
|
+
try:
|
|
196
|
+
obj = json.loads(line)
|
|
197
|
+
except json.JSONDecodeError:
|
|
198
|
+
continue
|
|
199
|
+
|
|
200
|
+
event_type = obj.get("type", "")
|
|
201
|
+
subtype = obj.get("subtype", "")
|
|
202
|
+
|
|
203
|
+
if event_type == "system" and subtype == "init":
|
|
204
|
+
session_id = obj.get("session_id")
|
|
205
|
+
elif event_type == "result" and subtype == "success":
|
|
206
|
+
result_text = obj.get("result")
|
|
207
|
+
|
|
208
|
+
if events is not None:
|
|
209
|
+
events.append(obj)
|
|
210
|
+
|
|
211
|
+
return session_id, result_text, events
|