siada-cli 0.0.1__tar.gz → 1.2.0__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.
- {siada_cli-0.0.1 → siada_cli-1.2.0}/PKG-INFO +125 -10
- {siada_cli-0.0.1 → siada_cli-1.2.0}/README.md +116 -6
- {siada_cli-0.0.1 → siada_cli-1.2.0}/agent_config.yaml +22 -1
- {siada_cli-0.0.1 → siada_cli-1.2.0}/pyproject.toml +11 -8
- siada_cli-1.2.0/siada/agent_hub/__init__.py +10 -0
- siada_cli-1.2.0/siada/agent_hub/coder/browser_agent.py +60 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/bug_fix_agent.py +168 -70
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/code_gen_agent.py +24 -18
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/fe_gen_agent.py +10 -9
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/issue_review_agent.py +2 -2
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/base/non_interactive.py +1 -7
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/base/prompt_builder.py +7 -9
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/base/rules.py +5 -1
- siada_cli-1.2.0/siada/agent_hub/coder/prompt/bug_prompt/bug_fix_prompt.py +122 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/bug_prompt/rules.py +19 -13
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/code_gen_prompt.py +4 -3
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/fe_gen_prompt.py +3 -3
- siada_cli-1.2.0/siada/agent_hub/coder/select_agent.py +220 -0
- siada_cli-1.2.0/siada/agent_hub/coder/tracing/bug_fix_trace_collector.py +946 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/tracing/logger_tracing_processor.py +36 -15
- siada_cli-1.2.0/siada/agent_hub/hooks/agent_processors/context_track_processor.py +26 -0
- siada_cli-1.2.0/siada/agent_hub/hooks/context_capture_filter.py +42 -0
- siada_cli-1.2.0/siada/agent_hub/hooks/processors/__init__.py +12 -0
- siada_cli-1.2.0/siada/agent_hub/hooks/processors/checkpointing_processor.py +34 -0
- siada_cli-1.2.0/siada/agent_hub/hooks/siada_agent_hooks.py +121 -0
- siada_cli-1.2.0/siada/agent_hub/hooks/siada_run_hooks.py +122 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/siada_agent.py +42 -15
- siada_cli-1.2.0/siada/config/agent_config_loader.py +47 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/config/config_loader.py +32 -3
- siada_cli-1.2.0/siada/config/mcp_config.py +82 -0
- siada_cli-1.2.0/siada/config/mcp_config_loader.py +126 -0
- siada_cli-1.2.0/siada/entrypoint/__init__.py +36 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/entrypoint/args_parser/args.py +29 -2
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/entrypoint/interaction/controller.py +52 -43
- siada_cli-1.2.0/siada/entrypoint/interaction/nointeractive_controller.py +41 -0
- siada_cli-1.2.0/siada/entrypoint/interaction/running_config.py +35 -0
- siada_cli-1.2.0/siada/entrypoint/interaction/turn/__init__.py +26 -0
- siada_cli-1.2.0/siada/entrypoint/interaction/turn/command_turn.py +54 -0
- siada_cli-1.2.0/siada/entrypoint/interaction/turn/conversation_turn.py +603 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/entrypoint/interaction/turn/interface.py +1 -2
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/entrypoint/interaction/turn/models.py +4 -2
- siada_cli-1.2.0/siada/entrypoint/interaction/turn/turn_factory.py +48 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/entrypoint/siadahub.py +173 -46
- siada_cli-1.2.0/siada/foundation/code_agent_context.py +40 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/foundation/context.py +21 -21
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/foundation/logging.py +23 -4
- siada_cli-1.2.0/siada/foundation/setting.py +59 -0
- siada_cli-1.2.0/siada/foundation/telemetry.py +68 -0
- siada_cli-1.2.0/siada/foundation/tools/fix_result_checker_validator.py +688 -0
- siada_cli-1.2.0/siada/foundation/tools/get_git_diff.py +206 -0
- siada_cli-1.2.0/siada/foundation/tools/issue_type_checker_validator.py +479 -0
- siada_cli-1.2.0/siada/foundation/tools/swebench_extractor.py +237 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/models/converter.py +5 -1
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/models/model_run_config.py +0 -6
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/provider/openrouter/openroute_provider.py +3 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/__init__.py +15 -1
- siada_cli-1.2.0/siada/services/anomaly_checker.py +761 -0
- siada_cli-1.2.0/siada/services/bug_desc_optimizer.py +134 -0
- siada_cli-1.2.0/siada/services/checkpointer_recommendation/__init__.py +38 -0
- siada_cli-1.2.0/siada/services/checkpointer_recommendation/checkpoint_recommend.py +178 -0
- siada_cli-1.2.0/siada/services/code_context_manager.py +95 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/enhanced_fix_result_check.py +3 -3
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/file_recommendation/core/completion_engine.py +1 -2
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/file_recommendation/core/suggestion.py +1 -1
- siada_cli-1.2.0/siada/services/file_session.py +205 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/fix_result_check.py +100 -109
- siada_cli-1.2.0/siada/services/git_service.py +375 -0
- siada_cli-1.2.0/siada/services/input_processor.py +134 -0
- siada_cli-1.2.0/siada/services/issue_type_checker.py +496 -0
- siada_cli-1.2.0/siada/services/mcp_service.py +479 -0
- siada_cli-1.2.0/siada/services/model_wrapper.py +236 -0
- siada_cli-1.2.0/siada/services/siada_memory.py +54 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/siada_runner.py +86 -20
- siada_cli-1.2.0/siada/services/strict_fix_result_check.py +117 -0
- siada_cli-1.2.0/siada/services/version_checker/__init__.py +53 -0
- siada_cli-1.2.0/siada/services/version_checker/base.py +104 -0
- siada_cli-1.2.0/siada/services/version_checker/handlers/external_handler.py +85 -0
- siada_cli-1.2.0/siada/services/version_checker/version_checker.py +101 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/session/__init__.py +3 -3
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/session/session_manager.py +20 -12
- siada_cli-1.2.0/siada/session/session_models.py +62 -0
- siada_cli-1.2.0/siada/session/task_message_state.py +89 -0
- siada_cli-1.2.0/siada/support/checkpoint_tracker.py +347 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/support/completer.py +66 -4
- siada_cli-1.2.0/siada/support/message_classifier.py +108 -0
- siada_cli-1.2.0/siada/support/slash_commands.py +944 -0
- siada_cli-1.2.0/siada/tools/browser/__init__.py +26 -0
- siada_cli-1.2.0/siada/tools/browser/browser_action_tool.py +862 -0
- siada_cli-1.2.0/siada/tools/browser/browsergym_action_tool.py +515 -0
- siada_cli-1.2.0/siada/tools/browser/browsergym_env.py +572 -0
- siada_cli-1.2.0/siada/tools/browser/browsergym_utils.py +699 -0
- siada_cli-1.2.0/siada/tools/browser/chromium_installer.py +300 -0
- siada_cli-1.2.0/siada/tools/browser/models.py +219 -0
- siada_cli-1.2.0/siada/tools/cca/compile_card.py +179 -0
- siada_cli-1.2.0/siada/tools/cca/get_cca_resource.py +171 -0
- siada_cli-1.2.0/siada/tools/coder/cmd_runner.py +262 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/file_operator.py +3 -0
- siada_cli-1.2.0/siada/tools/coder/observation/__init__.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/observation/file_observation.py +3 -3
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/run_cmd.py +2 -2
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/compression_tool.py +2 -2
- siada_cli-1.2.0/siada/tools/test_failure_analyzer.py +333 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/tool_call_format/formatters.py +17 -5
- siada_cli-1.2.0/siada/tools/web/__init__.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/utils.py +97 -2
- siada_cli-0.0.1/siada/agent_hub/__init__.py +0 -10
- siada_cli-0.0.1/siada/agent_hub/coder/prompt/bug_prompt/bug_fix_prompt.py +0 -51
- siada_cli-0.0.1/siada/entrypoint/__init__.py +0 -3
- siada_cli-0.0.1/siada/entrypoint/interaction/nointeractive_controller.py +0 -27
- siada_cli-0.0.1/siada/foundation/code_agent_context.py +0 -48
- siada_cli-0.0.1/siada/foundation/tools/get_git_diff.py +0 -105
- siada_cli-0.0.1/siada/services/code_context_manager.py +0 -136
- siada_cli-0.0.1/siada/session/session_models.py +0 -43
- siada_cli-0.0.1/siada/support/slash_commands.py +0 -410
- siada_cli-0.0.1/siada/tools/coder/cmd_runner.py +0 -132
- {siada_cli-0.0.1 → siada_cli-1.2.0}/LICENSE +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/__init__.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/__init__.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/base/__init__.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/base/capabilities.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/base/tool_use.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/issue_review_prompt.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/tracing/__init__.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/hooks/__init__.py +0 -0
- {siada_cli-0.0.1/siada/config → siada_cli-1.2.0/siada/agent_hub/hooks/agent_processors}/__init__.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/hooks/io_hooks.py +0 -0
- {siada_cli-0.0.1/siada/entrypoint/args_parser → siada_cli-1.2.0/siada/config}/__init__.py +0 -0
- {siada_cli-0.0.1/siada/entrypoint/interaction → siada_cli-1.2.0/siada/entrypoint/args_parser}/__init__.py +0 -0
- {siada_cli-0.0.1/siada/foundation → siada_cli-1.2.0/siada/entrypoint/interaction}/__init__.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/entrypoint/interaction/base_turn.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/entrypoint/interaction/config.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/entrypoint/interaction/turn/run_turn.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/entrypoint/interaction/turn_factory.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/entrypoint/interaction/turn_models.py +0 -0
- {siada_cli-0.0.1/siada/foundation/tools → siada_cli-1.2.0/siada/foundation}/__init__.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/foundation/config.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/foundation/constants.py +0 -0
- {siada_cli-0.0.1/siada/io → siada_cli-1.2.0/siada/foundation/tools}/__init__.py +0 -0
- {siada_cli-0.0.1/siada/io/components → siada_cli-1.2.0/siada/io}/__init__.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/io/banner.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/io/color_settings.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/io/color_utils.py +0 -0
- {siada_cli-0.0.1/siada/models → siada_cli-1.2.0/siada/io/components}/__init__.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/io/components/mdstream.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/io/console_printer.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/io/io.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/io/key_bindings.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/io/notification_command.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/io/test_banner.py +0 -0
- {siada_cli-0.0.1/siada/models/coder → siada_cli-1.2.0/siada/models}/__init__.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/models/agent.py +0 -0
- {siada_cli-0.0.1/siada/provider → siada_cli-1.2.0/siada/models/coder}/__init__.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/models/model_base_config.py +0 -0
- {siada_cli-0.0.1/siada/provider/openrouter → siada_cli-1.2.0/siada/provider}/__init__.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/provider/client_factory.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/provider/llm_client.py +0 -0
- {siada_cli-0.0.1/siada/support → siada_cli-1.2.0/siada/provider/openrouter}/__init__.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/provider/openrouter/coverter.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/provider/provider_factory.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/README.md +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/c-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/d-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/go-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/java-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/python-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/r-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/README.md +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/c-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/cpp-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/dart-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/elisp-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/elixir-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/elm-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/go-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/hcl-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/java-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/javascript-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/php-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/python-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/ql-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/ruby-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/rust-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/scala-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/typescript-tags.scm +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/at_file_recommendation_design_document.md +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/execution_trace_collector.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/file_recommendation/__init__.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/file_recommendation/core/__init__.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/file_recommendation/core/config.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/file_recommendation/core/file_discovery.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/file_recommendation/utils/__init__.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/file_recommendation/utils/path_utils.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/file_recommendation/utils/text_utils.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/handle_at_command/README.md +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/handle_at_command/__init__.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/handle_at_command/exceptions.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/handle_at_command/models.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/handle_at_command/parser.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/handle_at_command/processor.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/handle_at_command/resolver.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/handle_at_command/utils.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/model_info_service.py +0 -0
- {siada_cli-0.0.1/siada/tools → siada_cli-1.2.0/siada/support}/__init__.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/support/editor.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/support/envprocessor.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/support/repo.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/support/spinner.py +0 -0
- {siada_cli-0.0.1/siada/tools/coder → siada_cli-1.2.0/siada/tools}/__init__.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/ast/README.md +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/ast/ast_tool.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/ast/models.py +0 -0
- {siada_cli-0.0.1/siada/tools/coder/observation → siada_cli-1.2.0/siada/tools/cca}/__init__.py +0 -0
- {siada_cli-0.0.1/siada/tools/web → siada_cli-1.2.0/siada/tools/coder}/__init__.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/ask_followup_question.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/file_search/README.md +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/file_search/__init__.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/file_search/bin/rg-linux-arm64 +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/file_search/bin/rg-linux-x64 +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/file_search/bin/rg-macos-arm64 +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/file_search/bin/rg-macos-x64 +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/file_search/bin/rg.exe +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/file_search/search.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/file_search/setup_package.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/file_search/test_search.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/files.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/fix_attempt_completion.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/issue_review_completion.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/observation/error.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/observation/observation.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/repo_map/__init__.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/repo_map/dump.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/repo_map/io.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/repo_map/repo_map.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/repo_map/special.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/repo_map/token_counter.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/repo_map/waiting.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/reproduce_completion.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/test_completion.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/tool_docs.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/read_many_files/README.md +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/read_many_files/__init__.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/read_many_files/file_processor.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/read_many_files/filters.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/read_many_files/formatters.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/read_many_files/models.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/read_many_files_tool.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/tool_call_format/__init__.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/tool_call_format/file_to_language.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/tool_call_format/formatter_factory.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/tool_call_format/tool_call_formatter.py +0 -0
- {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/web/web_crawl.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: siada-cli
|
|
3
|
-
Version:
|
|
3
|
+
Version: 1.2.0
|
|
4
4
|
Summary: Siada CLI is a Ai Pair Programming Tool in terminal
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
Requires-Python: >=3.12,<4.0
|
|
@@ -12,31 +12,35 @@ Classifier: Programming Language :: Python :: 3
|
|
|
12
12
|
Classifier: Programming Language :: Python :: 3.12
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.13
|
|
14
14
|
Classifier: Topic :: Software Development
|
|
15
|
+
Requires-Dist: aiohttp (>=3.8.0,<4.0.0)
|
|
15
16
|
Requires-Dist: binaryornot (==0.4.4)
|
|
16
17
|
Requires-Dist: click (>=8.2.1,<9.0.0)
|
|
17
18
|
Requires-Dist: configargparse (>=1.7,<2.0.0)
|
|
18
19
|
Requires-Dist: diskcache (==5.6.3)
|
|
19
20
|
Requires-Dist: fastapi (>=0.110.0,<1.0.0)
|
|
21
|
+
Requires-Dist: gitpython (>=3.1.0,<4.0.0)
|
|
20
22
|
Requires-Dist: grep-ast (>=0.9.0,<1.0.0)
|
|
21
23
|
Requires-Dist: litellm (>=1.72.6,<2.0.0)
|
|
22
|
-
Requires-Dist:
|
|
23
|
-
Requires-Dist:
|
|
24
|
+
Requires-Dist: mcp (>=1.0.0,<2.0.0)
|
|
25
|
+
Requires-Dist: networkx (>=3.5.0,<4.0.0)
|
|
26
|
+
Requires-Dist: openai (>=1.102.0)
|
|
27
|
+
Requires-Dist: openai-agents (==0.2.9)
|
|
24
28
|
Requires-Dist: openhands-aci (==0.3.0)
|
|
25
29
|
Requires-Dist: partial-json-parser (>=0.2.1.1.post6,<1.0.0)
|
|
26
30
|
Requires-Dist: patch-ng (>=1.18.1,<2.0.0)
|
|
27
31
|
Requires-Dist: pexpect (>=4.9.0,<5.0.0)
|
|
32
|
+
Requires-Dist: playwright (>=1.40.0,<2.0.0)
|
|
28
33
|
Requires-Dist: prompt-toolkit (>=3.0.51,<4.0.0)
|
|
29
34
|
Requires-Dist: psutil (>=7.0.0,<8.0.0)
|
|
30
35
|
Requires-Dist: pydantic (>=2.6.0,<3.0.0)
|
|
31
36
|
Requires-Dist: pydantic-settings (>=2.2.0,<3.0.0)
|
|
32
37
|
Requires-Dist: pygments (>=2.19.1,<3.0.0)
|
|
33
|
-
Requires-Dist: rich (>=13.0.0
|
|
38
|
+
Requires-Dist: rich (>=13.0.0,<=14.1.0)
|
|
34
39
|
Requires-Dist: shtab (>=1.7,<2.0.0)
|
|
35
40
|
Requires-Dist: termcolor (>=3.1.0,<4.0.0)
|
|
36
41
|
Requires-Dist: tqdm (>=4.67.1,<5.0.0)
|
|
37
42
|
Requires-Dist: trafilatura (>=2.0.0,<3.0.0)
|
|
38
43
|
Requires-Dist: uvicorn (>=0.27.0,<1.0.0)
|
|
39
|
-
Project-URL: Homepage, https://github.com/liauto-siada/siada-cli
|
|
40
44
|
Description-Content-Type: text/markdown
|
|
41
45
|
|
|
42
46
|
# Siada CLI
|
|
@@ -57,13 +61,33 @@ With Siada CLI you can:
|
|
|
57
61
|
|
|
58
62
|
## Installation/Update
|
|
59
63
|
|
|
60
|
-
|
|
64
|
+
### System Requirements
|
|
61
65
|
- MAC, Linux
|
|
62
66
|
- GCC 11+
|
|
67
|
+
- uv
|
|
63
68
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
69
|
+
### Installation
|
|
70
|
+
|
|
71
|
+
1. Install uv
|
|
72
|
+
```bash
|
|
73
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
74
|
+
```
|
|
75
|
+
2. Install siada-cli
|
|
76
|
+
```bash
|
|
77
|
+
uv tool install --force --python python3.12 --with pip siada-cli@latest
|
|
78
|
+
```
|
|
79
|
+
If the siada-cli directory is not present on the PATH, run the follow command to update the shell
|
|
80
|
+
```bash
|
|
81
|
+
uv tool update-shell
|
|
82
|
+
```
|
|
83
|
+
### Update
|
|
84
|
+
```bash
|
|
85
|
+
uv tool upgrade siada-cli
|
|
86
|
+
```
|
|
87
|
+
### Uninstall
|
|
88
|
+
```bash
|
|
89
|
+
uv tool uninstall siada-cli
|
|
90
|
+
```
|
|
67
91
|
|
|
68
92
|
## Installation (Developer Mode)
|
|
69
93
|
|
|
@@ -184,6 +208,77 @@ export OPENROUTER_API_KEY="your_openrouter_key"
|
|
|
184
208
|
unset SIADA_MODEL
|
|
185
209
|
```
|
|
186
210
|
|
|
211
|
+
### Checkpoints Configuration
|
|
212
|
+
|
|
213
|
+
Siada CLI provides checkpoint tracking functionality to automatically save session states and enable recovery from previous points in your development workflow.
|
|
214
|
+
|
|
215
|
+
**What are Checkpoints?**
|
|
216
|
+
- Automatic snapshots of your session state after significant tool operations
|
|
217
|
+
- Includes conversation history, modified files, and git state
|
|
218
|
+
- Enables rollback to previous states and comparison between different points in time
|
|
219
|
+
|
|
220
|
+
**Enable Checkpoint Tracking:**
|
|
221
|
+
|
|
222
|
+
**Method 1: Command Line Parameter**
|
|
223
|
+
```bash
|
|
224
|
+
# Enable checkpoints when starting CLI
|
|
225
|
+
siada-cli --checkpointing
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
**Method 2: Environment Variable**
|
|
229
|
+
```bash
|
|
230
|
+
# Enable checkpoints globally
|
|
231
|
+
export SIADA_CHECKPOINTING=true
|
|
232
|
+
siada-cli --agent coder
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
**Method 3: Configuration File**
|
|
236
|
+
|
|
237
|
+
edit `~/.siada-cli/conf.yaml`:
|
|
238
|
+
```yaml
|
|
239
|
+
checkpoint_config:
|
|
240
|
+
enable: true
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
**Checkpoint Usage:**
|
|
244
|
+
- Checkpoints are automatically created after tool operations like file edits and command executions
|
|
245
|
+
- Use `/restore <checkpoint_file>` to restore to a previous state
|
|
246
|
+
- Use `/undo <checkpoint_file>` to undo changes made by a checkpoint, restoring to the state before the checkpoint was created
|
|
247
|
+
- Use `/compare <checkpoint_file>` to see differences between current state and a checkpoint
|
|
248
|
+
|
|
249
|
+
**Storage Location:**
|
|
250
|
+
- location: `~/.siada-cli/data/tmp/{project_hash}/checkpoints/session_id/`
|
|
251
|
+
|
|
252
|
+
### MCP Configuration
|
|
253
|
+
|
|
254
|
+
Siada CLI integrates MCP (Model Context Protocol) service to provide extended tools and resources for AI agents.
|
|
255
|
+
|
|
256
|
+
**MCP Configuration File `~/.siada-cli/mcp_config.json`**
|
|
257
|
+
|
|
258
|
+
Parameter descriptions:
|
|
259
|
+
- `enabled`: Controls global/individual MCP server switches
|
|
260
|
+
- `type`: Connection type (`stdio`/`http`/`sse`)
|
|
261
|
+
|
|
262
|
+
Configuration file example:
|
|
263
|
+
```json
|
|
264
|
+
{
|
|
265
|
+
"enabled": true,
|
|
266
|
+
"mcpServers": {
|
|
267
|
+
"filesystem": {
|
|
268
|
+
"enabled": true,
|
|
269
|
+
"type": "stdio",
|
|
270
|
+
"command": "npx",
|
|
271
|
+
"args": ["-y", "@modelcontextprotocolserver-filesystem", "./"]
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
**MCP Slash Commands**
|
|
278
|
+
|
|
279
|
+
- `/mcp-server`: List all MCP servers
|
|
280
|
+
- `/mcp-list`: List all MCP servers and their available tools
|
|
281
|
+
|
|
187
282
|
## Usage Modes
|
|
188
283
|
|
|
189
284
|
Siada CLI supports two usage modes to meet different usage scenarios:
|
|
@@ -256,6 +351,15 @@ siada-cli --verbose
|
|
|
256
351
|
# List all available models
|
|
257
352
|
siada-cli --list-models
|
|
258
353
|
siada-cli --models
|
|
354
|
+
|
|
355
|
+
# Enable checkpoint tracking (for session recovery)
|
|
356
|
+
siada-cli --checkpointing
|
|
357
|
+
|
|
358
|
+
## Version Check and Update
|
|
359
|
+
siada-cli --just-check-update # Check version only, without executing update
|
|
360
|
+
siada-cli --upgrade # Upgrade to the latest version immediately
|
|
361
|
+
siada-cli --check-update # Check and prompt for updates on startup (enabled by default)
|
|
362
|
+
|
|
259
363
|
```
|
|
260
364
|
|
|
261
365
|
## Slash Commands
|
|
@@ -265,7 +369,17 @@ In the CLI, you can use slash commands for additional functionality:
|
|
|
265
369
|
- `/shell` - Switch to shell mode to execute system commands (type `exit` or `quit` to exit shell mode)
|
|
266
370
|
- `/models` - List available AI models
|
|
267
371
|
- `/run <command>` or `!<command>` - Execute shell commands
|
|
268
|
-
- `/editor` - Open editor for multiline input
|
|
372
|
+
- `/editor` or `/edit` - Open editor for multiline input
|
|
373
|
+
- `/multiline-mode` - Toggle multiline mode (changes behavior of Enter and Meta+Enter keys)
|
|
374
|
+
- Enter key for line break
|
|
375
|
+
- Meta+Enter key to end multiline mode and send content to the model
|
|
376
|
+
- `/init [--force]` - Analyze the project and create a tailored siada.md file
|
|
377
|
+
- `/restore <checkpoint_file>` - Restore session state from a checkpoint file (requires checkpoint tracking enabled)
|
|
378
|
+
- `/undo <checkpoint_file>` - Undo changes made by a checkpoint, restoring to the state before the checkpoint was created (requires checkpoint tracking enabled)
|
|
379
|
+
- `/compare <checkpoint_file>` - Compare current state with a checkpoint file to see differences
|
|
380
|
+
- `/memory-refresh` - Refresh user memory content from siada.md file
|
|
381
|
+
- `/memory-status` - Display current user memory status (file info, size, loaded status)
|
|
382
|
+
- `/status` - Display current session status (model, agent, session ID, and workspace)
|
|
269
383
|
- `/exit` or `/quit` - Exit the application
|
|
270
384
|
|
|
271
385
|
### Shell Mode Usage Guide
|
|
@@ -455,3 +569,4 @@ See [disclaimers.md](./disclaimers.md)
|
|
|
455
569
|
<div align="center">
|
|
456
570
|
Built with ❤️ by Li Auto Code Intelligence Team and the open source community
|
|
457
571
|
</div>
|
|
572
|
+
|
|
@@ -16,13 +16,33 @@ With Siada CLI you can:
|
|
|
16
16
|
|
|
17
17
|
## Installation/Update
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
### System Requirements
|
|
20
20
|
- MAC, Linux
|
|
21
21
|
- GCC 11+
|
|
22
|
+
- uv
|
|
22
23
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
### Installation
|
|
25
|
+
|
|
26
|
+
1. Install uv
|
|
27
|
+
```bash
|
|
28
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
29
|
+
```
|
|
30
|
+
2. Install siada-cli
|
|
31
|
+
```bash
|
|
32
|
+
uv tool install --force --python python3.12 --with pip siada-cli@latest
|
|
33
|
+
```
|
|
34
|
+
If the siada-cli directory is not present on the PATH, run the follow command to update the shell
|
|
35
|
+
```bash
|
|
36
|
+
uv tool update-shell
|
|
37
|
+
```
|
|
38
|
+
### Update
|
|
39
|
+
```bash
|
|
40
|
+
uv tool upgrade siada-cli
|
|
41
|
+
```
|
|
42
|
+
### Uninstall
|
|
43
|
+
```bash
|
|
44
|
+
uv tool uninstall siada-cli
|
|
45
|
+
```
|
|
26
46
|
|
|
27
47
|
## Installation (Developer Mode)
|
|
28
48
|
|
|
@@ -143,6 +163,77 @@ export OPENROUTER_API_KEY="your_openrouter_key"
|
|
|
143
163
|
unset SIADA_MODEL
|
|
144
164
|
```
|
|
145
165
|
|
|
166
|
+
### Checkpoints Configuration
|
|
167
|
+
|
|
168
|
+
Siada CLI provides checkpoint tracking functionality to automatically save session states and enable recovery from previous points in your development workflow.
|
|
169
|
+
|
|
170
|
+
**What are Checkpoints?**
|
|
171
|
+
- Automatic snapshots of your session state after significant tool operations
|
|
172
|
+
- Includes conversation history, modified files, and git state
|
|
173
|
+
- Enables rollback to previous states and comparison between different points in time
|
|
174
|
+
|
|
175
|
+
**Enable Checkpoint Tracking:**
|
|
176
|
+
|
|
177
|
+
**Method 1: Command Line Parameter**
|
|
178
|
+
```bash
|
|
179
|
+
# Enable checkpoints when starting CLI
|
|
180
|
+
siada-cli --checkpointing
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
**Method 2: Environment Variable**
|
|
184
|
+
```bash
|
|
185
|
+
# Enable checkpoints globally
|
|
186
|
+
export SIADA_CHECKPOINTING=true
|
|
187
|
+
siada-cli --agent coder
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
**Method 3: Configuration File**
|
|
191
|
+
|
|
192
|
+
edit `~/.siada-cli/conf.yaml`:
|
|
193
|
+
```yaml
|
|
194
|
+
checkpoint_config:
|
|
195
|
+
enable: true
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
**Checkpoint Usage:**
|
|
199
|
+
- Checkpoints are automatically created after tool operations like file edits and command executions
|
|
200
|
+
- Use `/restore <checkpoint_file>` to restore to a previous state
|
|
201
|
+
- Use `/undo <checkpoint_file>` to undo changes made by a checkpoint, restoring to the state before the checkpoint was created
|
|
202
|
+
- Use `/compare <checkpoint_file>` to see differences between current state and a checkpoint
|
|
203
|
+
|
|
204
|
+
**Storage Location:**
|
|
205
|
+
- location: `~/.siada-cli/data/tmp/{project_hash}/checkpoints/session_id/`
|
|
206
|
+
|
|
207
|
+
### MCP Configuration
|
|
208
|
+
|
|
209
|
+
Siada CLI integrates MCP (Model Context Protocol) service to provide extended tools and resources for AI agents.
|
|
210
|
+
|
|
211
|
+
**MCP Configuration File `~/.siada-cli/mcp_config.json`**
|
|
212
|
+
|
|
213
|
+
Parameter descriptions:
|
|
214
|
+
- `enabled`: Controls global/individual MCP server switches
|
|
215
|
+
- `type`: Connection type (`stdio`/`http`/`sse`)
|
|
216
|
+
|
|
217
|
+
Configuration file example:
|
|
218
|
+
```json
|
|
219
|
+
{
|
|
220
|
+
"enabled": true,
|
|
221
|
+
"mcpServers": {
|
|
222
|
+
"filesystem": {
|
|
223
|
+
"enabled": true,
|
|
224
|
+
"type": "stdio",
|
|
225
|
+
"command": "npx",
|
|
226
|
+
"args": ["-y", "@modelcontextprotocolserver-filesystem", "./"]
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
**MCP Slash Commands**
|
|
233
|
+
|
|
234
|
+
- `/mcp-server`: List all MCP servers
|
|
235
|
+
- `/mcp-list`: List all MCP servers and their available tools
|
|
236
|
+
|
|
146
237
|
## Usage Modes
|
|
147
238
|
|
|
148
239
|
Siada CLI supports two usage modes to meet different usage scenarios:
|
|
@@ -215,6 +306,15 @@ siada-cli --verbose
|
|
|
215
306
|
# List all available models
|
|
216
307
|
siada-cli --list-models
|
|
217
308
|
siada-cli --models
|
|
309
|
+
|
|
310
|
+
# Enable checkpoint tracking (for session recovery)
|
|
311
|
+
siada-cli --checkpointing
|
|
312
|
+
|
|
313
|
+
## Version Check and Update
|
|
314
|
+
siada-cli --just-check-update # Check version only, without executing update
|
|
315
|
+
siada-cli --upgrade # Upgrade to the latest version immediately
|
|
316
|
+
siada-cli --check-update # Check and prompt for updates on startup (enabled by default)
|
|
317
|
+
|
|
218
318
|
```
|
|
219
319
|
|
|
220
320
|
## Slash Commands
|
|
@@ -224,7 +324,17 @@ In the CLI, you can use slash commands for additional functionality:
|
|
|
224
324
|
- `/shell` - Switch to shell mode to execute system commands (type `exit` or `quit` to exit shell mode)
|
|
225
325
|
- `/models` - List available AI models
|
|
226
326
|
- `/run <command>` or `!<command>` - Execute shell commands
|
|
227
|
-
- `/editor` - Open editor for multiline input
|
|
327
|
+
- `/editor` or `/edit` - Open editor for multiline input
|
|
328
|
+
- `/multiline-mode` - Toggle multiline mode (changes behavior of Enter and Meta+Enter keys)
|
|
329
|
+
- Enter key for line break
|
|
330
|
+
- Meta+Enter key to end multiline mode and send content to the model
|
|
331
|
+
- `/init [--force]` - Analyze the project and create a tailored siada.md file
|
|
332
|
+
- `/restore <checkpoint_file>` - Restore session state from a checkpoint file (requires checkpoint tracking enabled)
|
|
333
|
+
- `/undo <checkpoint_file>` - Undo changes made by a checkpoint, restoring to the state before the checkpoint was created (requires checkpoint tracking enabled)
|
|
334
|
+
- `/compare <checkpoint_file>` - Compare current state with a checkpoint file to see differences
|
|
335
|
+
- `/memory-refresh` - Refresh user memory content from siada.md file
|
|
336
|
+
- `/memory-status` - Display current user memory status (file info, size, loaded status)
|
|
337
|
+
- `/status` - Display current session status (model, agent, session ID, and workspace)
|
|
228
338
|
- `/exit` or `/quit` - Exit the application
|
|
229
339
|
|
|
230
340
|
### Shell Mode Usage Guide
|
|
@@ -413,4 +523,4 @@ See [disclaimers.md](./disclaimers.md)
|
|
|
413
523
|
----
|
|
414
524
|
<div align="center">
|
|
415
525
|
Built with ❤️ by Li Auto Code Intelligence Team and the open source community
|
|
416
|
-
</div>
|
|
526
|
+
</div>
|
|
@@ -7,22 +7,43 @@ agents:
|
|
|
7
7
|
class: "siada.agent_hub.coder.bug_fix_agent.BugFixAgent"
|
|
8
8
|
description: "Specialized agent for code bug fixing"
|
|
9
9
|
enabled: true
|
|
10
|
+
supported_modes: "non_interactive"
|
|
10
11
|
|
|
11
12
|
# Code Development Agent (not implemented yet)
|
|
12
13
|
coder:
|
|
13
14
|
class: "siada.agent_hub.coder.code_gen_agent.CodeGenAgent"
|
|
14
15
|
description: "General-purpose code development agent"
|
|
15
16
|
enabled: true
|
|
17
|
+
supported_modes: "all"
|
|
16
18
|
|
|
17
19
|
# Frontend Generation Agent
|
|
18
20
|
fegen:
|
|
19
21
|
class: "siada.agent_hub.coder.fe_gen_agent.FeGenAgent"
|
|
20
22
|
description: "Frontend code generation agent"
|
|
21
23
|
enabled: false
|
|
24
|
+
supported_modes: "non_interactive"
|
|
25
|
+
|
|
26
|
+
browser:
|
|
27
|
+
class: "siada.agent_hub.coder.browser_agent.BrowserAgent"
|
|
28
|
+
description: "Browser operate agent"
|
|
29
|
+
enabled: true
|
|
30
|
+
supported_modes: "interactive"
|
|
31
|
+
|
|
32
|
+
bugreproduce:
|
|
33
|
+
class: "siada.agent_hub.coder.bug_reproduce_agent.BugReproduceAgent"
|
|
34
|
+
description: "Bug reproduction agent"
|
|
35
|
+
enabled: false
|
|
36
|
+
supported_modes: "non_interactive"
|
|
37
|
+
|
|
38
|
+
test:
|
|
39
|
+
class: "siada.agent_hub.coder.test_agent.TestAgent"
|
|
40
|
+
description: "Test agent"
|
|
41
|
+
enabled: false
|
|
42
|
+
supported_modes: "non_interactive"
|
|
22
43
|
|
|
23
44
|
# LLM Configuration
|
|
24
45
|
llm_config:
|
|
25
|
-
provider: "
|
|
46
|
+
provider: "li" # Optional: ”li“ , “openrouter”
|
|
26
47
|
model_name: "claude-sonnet-4"
|
|
27
48
|
repo_map_tokens: 8192 # repo map max token
|
|
28
49
|
repo_map_mul_no_files: 16 # Multiple without chat files
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "siada-cli"
|
|
3
|
-
version = "
|
|
3
|
+
version = "1.2.0"
|
|
4
4
|
description = "Siada CLI is a Ai Pair Programming Tool in terminal"
|
|
5
5
|
packages = [{include = "siada"}, {include = "agent_config.yaml"}]
|
|
6
6
|
include = ["agent_config.yaml"]
|
|
7
7
|
license = "Apache-2.0"
|
|
8
8
|
readme = "README.md"
|
|
9
|
-
|
|
9
|
+
|
|
10
10
|
classifiers = [
|
|
11
11
|
"Environment :: Console",
|
|
12
12
|
"Intended Audience :: Developers",
|
|
@@ -16,9 +16,6 @@ classifiers = [
|
|
|
16
16
|
"Topic :: Software Development",
|
|
17
17
|
]
|
|
18
18
|
|
|
19
|
-
[tool.poetry.urls]
|
|
20
|
-
Homepage = "https://github.com/liauto-siada/siada-cli"
|
|
21
|
-
|
|
22
19
|
[tool.poetry.scripts]
|
|
23
20
|
siada-cli = "siada.entrypoint.siadahub:main"
|
|
24
21
|
[tool.poetry.dependencies]
|
|
@@ -27,8 +24,8 @@ fastapi = ">=0.110.0,<1.0.0"
|
|
|
27
24
|
uvicorn = ">=0.27.0,<1.0.0"
|
|
28
25
|
pydantic = ">=2.6.0,<3.0.0"
|
|
29
26
|
pydantic-settings = ">=2.2.0,<3.0.0"
|
|
30
|
-
openai-agents = "0.2.
|
|
31
|
-
openai = ">=1.
|
|
27
|
+
openai-agents = "0.2.9"
|
|
28
|
+
openai = ">=1.102.0"
|
|
32
29
|
litellm = ">=1.72.6,<2.0.0"
|
|
33
30
|
openhands-aci = "0.3.0"
|
|
34
31
|
termcolor = ">=3.1.0,<4.0.0"
|
|
@@ -36,7 +33,7 @@ psutil = ">=7.0.0,<8.0.0"
|
|
|
36
33
|
pexpect = ">=4.9.0,<5.0.0"
|
|
37
34
|
binaryornot = "0.4.4"
|
|
38
35
|
diskcache = "5.6.3"
|
|
39
|
-
rich = ">=13.0.0
|
|
36
|
+
rich = ">=13.0.0,<=14.1.0"
|
|
40
37
|
tqdm = ">=4.67.1,<5.0.0"
|
|
41
38
|
pygments = ">=2.19.1,<3.0.0"
|
|
42
39
|
grep-ast = ">=0.9.0,<1.0.0"
|
|
@@ -47,6 +44,12 @@ patch-ng = ">=1.18.1,<2.0.0"
|
|
|
47
44
|
trafilatura = ">=2.0.0,<3.0.0"
|
|
48
45
|
prompt-toolkit = ">=3.0.51,<4.0.0"
|
|
49
46
|
partial-json-parser = ">=0.2.1.1.post6,<1.0.0"
|
|
47
|
+
networkx = ">=3.5.0,<4.0.0"
|
|
48
|
+
playwright = ">=1.40.0,<2.0.0"
|
|
49
|
+
gitpython = ">=3.1.0,<4.0.0"
|
|
50
|
+
mcp = ">=1.0.0,<2.0.0"
|
|
51
|
+
aiohttp = ">=3.8.0,<4.0.0"
|
|
52
|
+
|
|
50
53
|
|
|
51
54
|
[tool.poetry.group.dev.dependencies]
|
|
52
55
|
pytest = ">=8.0.0,<9.0.0"
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
from agents import RunContextWrapper
|
|
2
|
+
|
|
3
|
+
from siada.foundation.code_agent_context import CodeAgentContext
|
|
4
|
+
from siada.agent_hub.coder.code_gen_agent import CodeGenAgent
|
|
5
|
+
from siada.agent_hub.coder.prompt import fe_gen_prompt
|
|
6
|
+
from siada.tools.browser.browser_action_tool import browser_operate
|
|
7
|
+
from siada.tools.browser.browsergym_action_tool import browser_operate_by_gym
|
|
8
|
+
from siada.tools.coder.file_operator import edit
|
|
9
|
+
from siada.tools.coder.file_search import regex_search_files
|
|
10
|
+
from siada.tools.coder.run_cmd import run_cmd
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class BrowserAgent(CodeGenAgent):
|
|
14
|
+
|
|
15
|
+
def __init__(self, *args, **kwargs):
|
|
16
|
+
|
|
17
|
+
super().__init__(
|
|
18
|
+
name="BrowserAgent",
|
|
19
|
+
#tools=[edit, regex_search_files, run_cmd, browser_operate],
|
|
20
|
+
tools=[browser_operate_by_gym],
|
|
21
|
+
*args,
|
|
22
|
+
**kwargs
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
async def get_system_prompt(self, run_context: RunContextWrapper[CodeAgentContext]) -> str | None:
|
|
26
|
+
# 使用专门的浏览器操作提示词,而不是前端生成提示词
|
|
27
|
+
instructions = """
|
|
28
|
+
You are a Browser Operation Agent specialized in web automation tasks.
|
|
29
|
+
|
|
30
|
+
Your primary responsibility is to perform browser operations according to user instructions using the browser_operate tool.
|
|
31
|
+
|
|
32
|
+
IMPORTANT GUIDELINES:
|
|
33
|
+
1. **Screenshot Analysis**: Always carefully analyze the screenshot after each action to understand the current page state
|
|
34
|
+
2. **Coordinate Accuracy**: When clicking elements, examine the screenshot to determine precise coordinates
|
|
35
|
+
3. **Element Identification**: Look for visual cues like buttons, input fields, links, and other interactive elements
|
|
36
|
+
4. **Wait for Loading**: Allow sufficient time for pages to load before taking actions
|
|
37
|
+
5. **Error Handling**: If an action doesn't produce the expected result, analyze the screenshot and try alternative approaches
|
|
38
|
+
|
|
39
|
+
BROWSER OPERATION WORKFLOW:
|
|
40
|
+
1. Launch browser with the target URL
|
|
41
|
+
2. Wait for page to fully load
|
|
42
|
+
3. Analyze the screenshot to identify target elements
|
|
43
|
+
4. Perform actions (click, type, scroll) based on visual analysis
|
|
44
|
+
5. Verify results by examining subsequent screenshots
|
|
45
|
+
6. Close browser when task is complete
|
|
46
|
+
|
|
47
|
+
COORDINATE SELECTION TIPS:
|
|
48
|
+
- Click in the center of buttons and input fields
|
|
49
|
+
- For text input, click on the input field first, then type
|
|
50
|
+
- For search operations, locate the search button visually
|
|
51
|
+
- Use scroll actions if elements are not visible
|
|
52
|
+
|
|
53
|
+
Remember: You can see the page through screenshots, so use this visual information to make accurate decisions about where to click and what actions to take.
|
|
54
|
+
"""
|
|
55
|
+
return instructions
|
|
56
|
+
|
|
57
|
+
async def get_context(self) -> CodeAgentContext:
|
|
58
|
+
current_working_dir = "/Users/yunan/code/test/fe_gen"
|
|
59
|
+
context = CodeAgentContext(root_dir=current_working_dir)
|
|
60
|
+
return context
|