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.
Files changed (277) hide show
  1. {siada_cli-0.0.1 → siada_cli-1.2.0}/PKG-INFO +125 -10
  2. {siada_cli-0.0.1 → siada_cli-1.2.0}/README.md +116 -6
  3. {siada_cli-0.0.1 → siada_cli-1.2.0}/agent_config.yaml +22 -1
  4. {siada_cli-0.0.1 → siada_cli-1.2.0}/pyproject.toml +11 -8
  5. siada_cli-1.2.0/siada/agent_hub/__init__.py +10 -0
  6. siada_cli-1.2.0/siada/agent_hub/coder/browser_agent.py +60 -0
  7. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/bug_fix_agent.py +168 -70
  8. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/code_gen_agent.py +24 -18
  9. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/fe_gen_agent.py +10 -9
  10. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/issue_review_agent.py +2 -2
  11. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/base/non_interactive.py +1 -7
  12. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/base/prompt_builder.py +7 -9
  13. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/base/rules.py +5 -1
  14. siada_cli-1.2.0/siada/agent_hub/coder/prompt/bug_prompt/bug_fix_prompt.py +122 -0
  15. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/bug_prompt/rules.py +19 -13
  16. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/code_gen_prompt.py +4 -3
  17. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/fe_gen_prompt.py +3 -3
  18. siada_cli-1.2.0/siada/agent_hub/coder/select_agent.py +220 -0
  19. siada_cli-1.2.0/siada/agent_hub/coder/tracing/bug_fix_trace_collector.py +946 -0
  20. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/tracing/logger_tracing_processor.py +36 -15
  21. siada_cli-1.2.0/siada/agent_hub/hooks/agent_processors/context_track_processor.py +26 -0
  22. siada_cli-1.2.0/siada/agent_hub/hooks/context_capture_filter.py +42 -0
  23. siada_cli-1.2.0/siada/agent_hub/hooks/processors/__init__.py +12 -0
  24. siada_cli-1.2.0/siada/agent_hub/hooks/processors/checkpointing_processor.py +34 -0
  25. siada_cli-1.2.0/siada/agent_hub/hooks/siada_agent_hooks.py +121 -0
  26. siada_cli-1.2.0/siada/agent_hub/hooks/siada_run_hooks.py +122 -0
  27. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/siada_agent.py +42 -15
  28. siada_cli-1.2.0/siada/config/agent_config_loader.py +47 -0
  29. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/config/config_loader.py +32 -3
  30. siada_cli-1.2.0/siada/config/mcp_config.py +82 -0
  31. siada_cli-1.2.0/siada/config/mcp_config_loader.py +126 -0
  32. siada_cli-1.2.0/siada/entrypoint/__init__.py +36 -0
  33. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/entrypoint/args_parser/args.py +29 -2
  34. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/entrypoint/interaction/controller.py +52 -43
  35. siada_cli-1.2.0/siada/entrypoint/interaction/nointeractive_controller.py +41 -0
  36. siada_cli-1.2.0/siada/entrypoint/interaction/running_config.py +35 -0
  37. siada_cli-1.2.0/siada/entrypoint/interaction/turn/__init__.py +26 -0
  38. siada_cli-1.2.0/siada/entrypoint/interaction/turn/command_turn.py +54 -0
  39. siada_cli-1.2.0/siada/entrypoint/interaction/turn/conversation_turn.py +603 -0
  40. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/entrypoint/interaction/turn/interface.py +1 -2
  41. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/entrypoint/interaction/turn/models.py +4 -2
  42. siada_cli-1.2.0/siada/entrypoint/interaction/turn/turn_factory.py +48 -0
  43. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/entrypoint/siadahub.py +173 -46
  44. siada_cli-1.2.0/siada/foundation/code_agent_context.py +40 -0
  45. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/foundation/context.py +21 -21
  46. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/foundation/logging.py +23 -4
  47. siada_cli-1.2.0/siada/foundation/setting.py +59 -0
  48. siada_cli-1.2.0/siada/foundation/telemetry.py +68 -0
  49. siada_cli-1.2.0/siada/foundation/tools/fix_result_checker_validator.py +688 -0
  50. siada_cli-1.2.0/siada/foundation/tools/get_git_diff.py +206 -0
  51. siada_cli-1.2.0/siada/foundation/tools/issue_type_checker_validator.py +479 -0
  52. siada_cli-1.2.0/siada/foundation/tools/swebench_extractor.py +237 -0
  53. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/models/converter.py +5 -1
  54. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/models/model_run_config.py +0 -6
  55. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/provider/openrouter/openroute_provider.py +3 -0
  56. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/__init__.py +15 -1
  57. siada_cli-1.2.0/siada/services/anomaly_checker.py +761 -0
  58. siada_cli-1.2.0/siada/services/bug_desc_optimizer.py +134 -0
  59. siada_cli-1.2.0/siada/services/checkpointer_recommendation/__init__.py +38 -0
  60. siada_cli-1.2.0/siada/services/checkpointer_recommendation/checkpoint_recommend.py +178 -0
  61. siada_cli-1.2.0/siada/services/code_context_manager.py +95 -0
  62. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/enhanced_fix_result_check.py +3 -3
  63. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/file_recommendation/core/completion_engine.py +1 -2
  64. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/file_recommendation/core/suggestion.py +1 -1
  65. siada_cli-1.2.0/siada/services/file_session.py +205 -0
  66. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/fix_result_check.py +100 -109
  67. siada_cli-1.2.0/siada/services/git_service.py +375 -0
  68. siada_cli-1.2.0/siada/services/input_processor.py +134 -0
  69. siada_cli-1.2.0/siada/services/issue_type_checker.py +496 -0
  70. siada_cli-1.2.0/siada/services/mcp_service.py +479 -0
  71. siada_cli-1.2.0/siada/services/model_wrapper.py +236 -0
  72. siada_cli-1.2.0/siada/services/siada_memory.py +54 -0
  73. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/siada_runner.py +86 -20
  74. siada_cli-1.2.0/siada/services/strict_fix_result_check.py +117 -0
  75. siada_cli-1.2.0/siada/services/version_checker/__init__.py +53 -0
  76. siada_cli-1.2.0/siada/services/version_checker/base.py +104 -0
  77. siada_cli-1.2.0/siada/services/version_checker/handlers/external_handler.py +85 -0
  78. siada_cli-1.2.0/siada/services/version_checker/version_checker.py +101 -0
  79. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/session/__init__.py +3 -3
  80. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/session/session_manager.py +20 -12
  81. siada_cli-1.2.0/siada/session/session_models.py +62 -0
  82. siada_cli-1.2.0/siada/session/task_message_state.py +89 -0
  83. siada_cli-1.2.0/siada/support/checkpoint_tracker.py +347 -0
  84. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/support/completer.py +66 -4
  85. siada_cli-1.2.0/siada/support/message_classifier.py +108 -0
  86. siada_cli-1.2.0/siada/support/slash_commands.py +944 -0
  87. siada_cli-1.2.0/siada/tools/browser/__init__.py +26 -0
  88. siada_cli-1.2.0/siada/tools/browser/browser_action_tool.py +862 -0
  89. siada_cli-1.2.0/siada/tools/browser/browsergym_action_tool.py +515 -0
  90. siada_cli-1.2.0/siada/tools/browser/browsergym_env.py +572 -0
  91. siada_cli-1.2.0/siada/tools/browser/browsergym_utils.py +699 -0
  92. siada_cli-1.2.0/siada/tools/browser/chromium_installer.py +300 -0
  93. siada_cli-1.2.0/siada/tools/browser/models.py +219 -0
  94. siada_cli-1.2.0/siada/tools/cca/compile_card.py +179 -0
  95. siada_cli-1.2.0/siada/tools/cca/get_cca_resource.py +171 -0
  96. siada_cli-1.2.0/siada/tools/coder/cmd_runner.py +262 -0
  97. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/file_operator.py +3 -0
  98. siada_cli-1.2.0/siada/tools/coder/observation/__init__.py +0 -0
  99. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/observation/file_observation.py +3 -3
  100. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/run_cmd.py +2 -2
  101. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/compression_tool.py +2 -2
  102. siada_cli-1.2.0/siada/tools/test_failure_analyzer.py +333 -0
  103. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/tool_call_format/formatters.py +17 -5
  104. siada_cli-1.2.0/siada/tools/web/__init__.py +0 -0
  105. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/utils.py +97 -2
  106. siada_cli-0.0.1/siada/agent_hub/__init__.py +0 -10
  107. siada_cli-0.0.1/siada/agent_hub/coder/prompt/bug_prompt/bug_fix_prompt.py +0 -51
  108. siada_cli-0.0.1/siada/entrypoint/__init__.py +0 -3
  109. siada_cli-0.0.1/siada/entrypoint/interaction/nointeractive_controller.py +0 -27
  110. siada_cli-0.0.1/siada/foundation/code_agent_context.py +0 -48
  111. siada_cli-0.0.1/siada/foundation/tools/get_git_diff.py +0 -105
  112. siada_cli-0.0.1/siada/services/code_context_manager.py +0 -136
  113. siada_cli-0.0.1/siada/session/session_models.py +0 -43
  114. siada_cli-0.0.1/siada/support/slash_commands.py +0 -410
  115. siada_cli-0.0.1/siada/tools/coder/cmd_runner.py +0 -132
  116. {siada_cli-0.0.1 → siada_cli-1.2.0}/LICENSE +0 -0
  117. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/__init__.py +0 -0
  118. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/__init__.py +0 -0
  119. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/base/__init__.py +0 -0
  120. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/base/capabilities.py +0 -0
  121. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/base/tool_use.py +0 -0
  122. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/issue_review_prompt.py +0 -0
  123. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/coder/tracing/__init__.py +0 -0
  124. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/hooks/__init__.py +0 -0
  125. {siada_cli-0.0.1/siada/config → siada_cli-1.2.0/siada/agent_hub/hooks/agent_processors}/__init__.py +0 -0
  126. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/agent_hub/hooks/io_hooks.py +0 -0
  127. {siada_cli-0.0.1/siada/entrypoint/args_parser → siada_cli-1.2.0/siada/config}/__init__.py +0 -0
  128. {siada_cli-0.0.1/siada/entrypoint/interaction → siada_cli-1.2.0/siada/entrypoint/args_parser}/__init__.py +0 -0
  129. {siada_cli-0.0.1/siada/foundation → siada_cli-1.2.0/siada/entrypoint/interaction}/__init__.py +0 -0
  130. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/entrypoint/interaction/base_turn.py +0 -0
  131. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/entrypoint/interaction/config.py +0 -0
  132. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/entrypoint/interaction/turn/run_turn.py +0 -0
  133. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/entrypoint/interaction/turn_factory.py +0 -0
  134. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/entrypoint/interaction/turn_models.py +0 -0
  135. {siada_cli-0.0.1/siada/foundation/tools → siada_cli-1.2.0/siada/foundation}/__init__.py +0 -0
  136. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/foundation/config.py +0 -0
  137. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/foundation/constants.py +0 -0
  138. {siada_cli-0.0.1/siada/io → siada_cli-1.2.0/siada/foundation/tools}/__init__.py +0 -0
  139. {siada_cli-0.0.1/siada/io/components → siada_cli-1.2.0/siada/io}/__init__.py +0 -0
  140. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/io/banner.py +0 -0
  141. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/io/color_settings.py +0 -0
  142. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/io/color_utils.py +0 -0
  143. {siada_cli-0.0.1/siada/models → siada_cli-1.2.0/siada/io/components}/__init__.py +0 -0
  144. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/io/components/mdstream.py +0 -0
  145. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/io/console_printer.py +0 -0
  146. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/io/io.py +0 -0
  147. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/io/key_bindings.py +0 -0
  148. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/io/notification_command.py +0 -0
  149. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/io/test_banner.py +0 -0
  150. {siada_cli-0.0.1/siada/models/coder → siada_cli-1.2.0/siada/models}/__init__.py +0 -0
  151. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/models/agent.py +0 -0
  152. {siada_cli-0.0.1/siada/provider → siada_cli-1.2.0/siada/models/coder}/__init__.py +0 -0
  153. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/models/model_base_config.py +0 -0
  154. {siada_cli-0.0.1/siada/provider/openrouter → siada_cli-1.2.0/siada/provider}/__init__.py +0 -0
  155. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/provider/client_factory.py +0 -0
  156. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/provider/llm_client.py +0 -0
  157. {siada_cli-0.0.1/siada/support → siada_cli-1.2.0/siada/provider/openrouter}/__init__.py +0 -0
  158. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/provider/openrouter/coverter.py +0 -0
  159. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/provider/provider_factory.py +0 -0
  160. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/README.md +0 -0
  161. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  162. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  163. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  164. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  165. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  166. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  167. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  168. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  169. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  170. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  171. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  172. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  173. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  174. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  175. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  176. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  177. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  178. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  179. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  180. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  181. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  182. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  183. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  184. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  185. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  186. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  187. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  188. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  189. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/README.md +0 -0
  190. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/c-tags.scm +0 -0
  191. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  192. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  193. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/dart-tags.scm +0 -0
  194. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  195. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  196. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/elm-tags.scm +0 -0
  197. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/go-tags.scm +0 -0
  198. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  199. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/java-tags.scm +0 -0
  200. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  201. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  202. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  203. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  204. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/php-tags.scm +0 -0
  205. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/python-tags.scm +0 -0
  206. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/ql-tags.scm +0 -0
  207. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  208. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/rust-tags.scm +0 -0
  209. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/scala-tags.scm +0 -0
  210. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  211. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/at_file_recommendation_design_document.md +0 -0
  212. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/execution_trace_collector.py +0 -0
  213. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/file_recommendation/__init__.py +0 -0
  214. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/file_recommendation/core/__init__.py +0 -0
  215. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/file_recommendation/core/config.py +0 -0
  216. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/file_recommendation/core/file_discovery.py +0 -0
  217. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/file_recommendation/utils/__init__.py +0 -0
  218. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/file_recommendation/utils/path_utils.py +0 -0
  219. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/file_recommendation/utils/text_utils.py +0 -0
  220. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/handle_at_command/README.md +0 -0
  221. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/handle_at_command/__init__.py +0 -0
  222. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/handle_at_command/exceptions.py +0 -0
  223. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/handle_at_command/models.py +0 -0
  224. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/handle_at_command/parser.py +0 -0
  225. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/handle_at_command/processor.py +0 -0
  226. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/handle_at_command/resolver.py +0 -0
  227. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/handle_at_command/utils.py +0 -0
  228. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/services/model_info_service.py +0 -0
  229. {siada_cli-0.0.1/siada/tools → siada_cli-1.2.0/siada/support}/__init__.py +0 -0
  230. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/support/editor.py +0 -0
  231. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/support/envprocessor.py +0 -0
  232. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/support/repo.py +0 -0
  233. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/support/spinner.py +0 -0
  234. {siada_cli-0.0.1/siada/tools/coder → siada_cli-1.2.0/siada/tools}/__init__.py +0 -0
  235. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/ast/README.md +0 -0
  236. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/ast/ast_tool.py +0 -0
  237. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/ast/models.py +0 -0
  238. {siada_cli-0.0.1/siada/tools/coder/observation → siada_cli-1.2.0/siada/tools/cca}/__init__.py +0 -0
  239. {siada_cli-0.0.1/siada/tools/web → siada_cli-1.2.0/siada/tools/coder}/__init__.py +0 -0
  240. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/ask_followup_question.py +0 -0
  241. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/file_search/README.md +0 -0
  242. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/file_search/__init__.py +0 -0
  243. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/file_search/bin/rg-linux-arm64 +0 -0
  244. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/file_search/bin/rg-linux-x64 +0 -0
  245. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/file_search/bin/rg-macos-arm64 +0 -0
  246. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/file_search/bin/rg-macos-x64 +0 -0
  247. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/file_search/bin/rg.exe +0 -0
  248. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/file_search/search.py +0 -0
  249. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/file_search/setup_package.py +0 -0
  250. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/file_search/test_search.py +0 -0
  251. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/files.py +0 -0
  252. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/fix_attempt_completion.py +0 -0
  253. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/issue_review_completion.py +0 -0
  254. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/observation/error.py +0 -0
  255. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/observation/observation.py +0 -0
  256. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/repo_map/__init__.py +0 -0
  257. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/repo_map/dump.py +0 -0
  258. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/repo_map/io.py +0 -0
  259. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/repo_map/repo_map.py +0 -0
  260. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/repo_map/special.py +0 -0
  261. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/repo_map/token_counter.py +0 -0
  262. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/repo_map/waiting.py +0 -0
  263. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/reproduce_completion.py +0 -0
  264. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/test_completion.py +0 -0
  265. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/coder/tool_docs.py +0 -0
  266. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/read_many_files/README.md +0 -0
  267. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/read_many_files/__init__.py +0 -0
  268. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/read_many_files/file_processor.py +0 -0
  269. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/read_many_files/filters.py +0 -0
  270. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/read_many_files/formatters.py +0 -0
  271. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/read_many_files/models.py +0 -0
  272. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/read_many_files_tool.py +0 -0
  273. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/tool_call_format/__init__.py +0 -0
  274. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/tool_call_format/file_to_language.py +0 -0
  275. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/tool_call_format/formatter_factory.py +0 -0
  276. {siada_cli-0.0.1 → siada_cli-1.2.0}/siada/tools/tool_call_format/tool_call_formatter.py +0 -0
  277. {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: 0.0.1
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: openai (>=1.99.9,<2.0.0)
23
- Requires-Dist: openai-agents (==0.2.5)
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,<14.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
- 1. System Requirements
64
+ ### System Requirements
61
65
  - MAC, Linux
62
66
  - GCC 11+
67
+ - uv
63
68
 
64
- 2. Installation Command
65
- TODO
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
- 1. System Requirements
19
+ ### System Requirements
20
20
  - MAC, Linux
21
21
  - GCC 11+
22
+ - uv
22
23
 
23
- 2. Installation Command
24
- TODO
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: "openrouter" # Optional:“openrouter”
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 = "0.0.1"
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.5"
31
- openai = ">=1.99.9,<2.0.0"
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,<14.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,10 @@
1
+ """
2
+ Agent Module
3
+
4
+ Provides predefined Agent instances and initialization functionality
5
+ """
6
+ from typing import Dict, Any
7
+
8
+
9
+ # Store created Agents, key is agent name, value is agent instance
10
+ agent_map: Dict[str, Any] = {}
@@ -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