siada-cli 1.0.0__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-1.0.0 → siada_cli-1.2.0}/PKG-INFO +101 -6
  2. {siada_cli-1.0.0 → siada_cli-1.2.0}/README.md +92 -2
  3. {siada_cli-1.0.0 → siada_cli-1.2.0}/agent_config.yaml +22 -1
  4. {siada_cli-1.0.0 → 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-1.0.0 → siada_cli-1.2.0}/siada/agent_hub/coder/bug_fix_agent.py +168 -70
  8. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/agent_hub/coder/code_gen_agent.py +24 -18
  9. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/agent_hub/coder/fe_gen_agent.py +10 -9
  10. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/agent_hub/coder/issue_review_agent.py +2 -2
  11. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/base/non_interactive.py +1 -7
  12. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/base/prompt_builder.py +7 -9
  13. {siada_cli-1.0.0 → 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-1.0.0 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/bug_prompt/rules.py +19 -13
  16. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/code_gen_prompt.py +4 -3
  17. {siada_cli-1.0.0 → 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-1.0.0 → 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-1.0.0 → 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-1.0.0 → 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-1.0.0 → siada_cli-1.2.0}/siada/entrypoint/args_parser/args.py +29 -2
  34. {siada_cli-1.0.0 → 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-1.0.0 → siada_cli-1.2.0}/siada/entrypoint/interaction/turn/interface.py +1 -2
  41. {siada_cli-1.0.0 → 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-1.0.0 → 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-1.0.0 → siada_cli-1.2.0}/siada/foundation/context.py +21 -21
  46. {siada_cli-1.0.0 → 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-1.0.0 → siada_cli-1.2.0}/siada/models/converter.py +5 -1
  54. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/models/model_run_config.py +0 -6
  55. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/provider/openrouter/openroute_provider.py +3 -0
  56. {siada_cli-1.0.0 → 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-1.0.0 → siada_cli-1.2.0}/siada/services/enhanced_fix_result_check.py +3 -3
  63. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/services/file_recommendation/core/completion_engine.py +1 -2
  64. {siada_cli-1.0.0 → 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-1.0.0 → 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-1.0.0 → 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-1.0.0 → siada_cli-1.2.0}/siada/session/__init__.py +3 -3
  80. {siada_cli-1.0.0 → 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-1.0.0 → 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-1.0.0 → 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-1.0.0 → siada_cli-1.2.0}/siada/tools/coder/observation/file_observation.py +3 -3
  100. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/coder/run_cmd.py +2 -2
  101. {siada_cli-1.0.0 → 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-1.0.0 → 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-1.0.0 → siada_cli-1.2.0}/siada/utils.py +97 -2
  106. siada_cli-1.0.0/siada/agent_hub/__init__.py +0 -10
  107. siada_cli-1.0.0/siada/agent_hub/coder/prompt/bug_prompt/bug_fix_prompt.py +0 -51
  108. siada_cli-1.0.0/siada/entrypoint/__init__.py +0 -3
  109. siada_cli-1.0.0/siada/entrypoint/interaction/nointeractive_controller.py +0 -27
  110. siada_cli-1.0.0/siada/foundation/code_agent_context.py +0 -48
  111. siada_cli-1.0.0/siada/foundation/tools/get_git_diff.py +0 -105
  112. siada_cli-1.0.0/siada/services/code_context_manager.py +0 -136
  113. siada_cli-1.0.0/siada/session/session_models.py +0 -43
  114. siada_cli-1.0.0/siada/support/slash_commands.py +0 -410
  115. siada_cli-1.0.0/siada/tools/coder/cmd_runner.py +0 -132
  116. {siada_cli-1.0.0 → siada_cli-1.2.0}/LICENSE +0 -0
  117. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/__init__.py +0 -0
  118. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/__init__.py +0 -0
  119. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/base/__init__.py +0 -0
  120. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/base/capabilities.py +0 -0
  121. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/base/tool_use.py +0 -0
  122. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/agent_hub/coder/prompt/issue_review_prompt.py +0 -0
  123. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/agent_hub/coder/tracing/__init__.py +0 -0
  124. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/agent_hub/hooks/__init__.py +0 -0
  125. {siada_cli-1.0.0/siada/config → siada_cli-1.2.0/siada/agent_hub/hooks/agent_processors}/__init__.py +0 -0
  126. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/agent_hub/hooks/io_hooks.py +0 -0
  127. {siada_cli-1.0.0/siada/entrypoint/args_parser → siada_cli-1.2.0/siada/config}/__init__.py +0 -0
  128. {siada_cli-1.0.0/siada/entrypoint/interaction → siada_cli-1.2.0/siada/entrypoint/args_parser}/__init__.py +0 -0
  129. {siada_cli-1.0.0/siada/foundation → siada_cli-1.2.0/siada/entrypoint/interaction}/__init__.py +0 -0
  130. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/entrypoint/interaction/base_turn.py +0 -0
  131. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/entrypoint/interaction/config.py +0 -0
  132. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/entrypoint/interaction/turn/run_turn.py +0 -0
  133. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/entrypoint/interaction/turn_factory.py +0 -0
  134. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/entrypoint/interaction/turn_models.py +0 -0
  135. {siada_cli-1.0.0/siada/foundation/tools → siada_cli-1.2.0/siada/foundation}/__init__.py +0 -0
  136. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/foundation/config.py +0 -0
  137. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/foundation/constants.py +0 -0
  138. {siada_cli-1.0.0/siada/io → siada_cli-1.2.0/siada/foundation/tools}/__init__.py +0 -0
  139. {siada_cli-1.0.0/siada/io/components → siada_cli-1.2.0/siada/io}/__init__.py +0 -0
  140. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/io/banner.py +0 -0
  141. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/io/color_settings.py +0 -0
  142. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/io/color_utils.py +0 -0
  143. {siada_cli-1.0.0/siada/models → siada_cli-1.2.0/siada/io/components}/__init__.py +0 -0
  144. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/io/components/mdstream.py +0 -0
  145. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/io/console_printer.py +0 -0
  146. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/io/io.py +0 -0
  147. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/io/key_bindings.py +0 -0
  148. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/io/notification_command.py +0 -0
  149. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/io/test_banner.py +0 -0
  150. {siada_cli-1.0.0/siada/models/coder → siada_cli-1.2.0/siada/models}/__init__.py +0 -0
  151. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/models/agent.py +0 -0
  152. {siada_cli-1.0.0/siada/provider → siada_cli-1.2.0/siada/models/coder}/__init__.py +0 -0
  153. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/models/model_base_config.py +0 -0
  154. {siada_cli-1.0.0/siada/provider/openrouter → siada_cli-1.2.0/siada/provider}/__init__.py +0 -0
  155. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/provider/client_factory.py +0 -0
  156. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/provider/llm_client.py +0 -0
  157. {siada_cli-1.0.0/siada/support → siada_cli-1.2.0/siada/provider/openrouter}/__init__.py +0 -0
  158. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/provider/openrouter/coverter.py +0 -0
  159. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/provider/provider_factory.py +0 -0
  160. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/README.md +0 -0
  161. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  162. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  163. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  164. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  165. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  166. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  167. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  168. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  169. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  170. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  171. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  172. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  173. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  174. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  175. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  176. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  177. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  178. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  179. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  180. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  181. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  182. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  183. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  184. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  185. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  186. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  187. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  188. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  189. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/README.md +0 -0
  190. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/c-tags.scm +0 -0
  191. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  192. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  193. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/dart-tags.scm +0 -0
  194. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  195. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  196. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/elm-tags.scm +0 -0
  197. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/go-tags.scm +0 -0
  198. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  199. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/java-tags.scm +0 -0
  200. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  201. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  202. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  203. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  204. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/php-tags.scm +0 -0
  205. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/python-tags.scm +0 -0
  206. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/ql-tags.scm +0 -0
  207. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  208. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/rust-tags.scm +0 -0
  209. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/scala-tags.scm +0 -0
  210. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  211. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/services/at_file_recommendation_design_document.md +0 -0
  212. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/services/execution_trace_collector.py +0 -0
  213. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/services/file_recommendation/__init__.py +0 -0
  214. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/services/file_recommendation/core/__init__.py +0 -0
  215. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/services/file_recommendation/core/config.py +0 -0
  216. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/services/file_recommendation/core/file_discovery.py +0 -0
  217. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/services/file_recommendation/utils/__init__.py +0 -0
  218. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/services/file_recommendation/utils/path_utils.py +0 -0
  219. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/services/file_recommendation/utils/text_utils.py +0 -0
  220. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/services/handle_at_command/README.md +0 -0
  221. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/services/handle_at_command/__init__.py +0 -0
  222. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/services/handle_at_command/exceptions.py +0 -0
  223. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/services/handle_at_command/models.py +0 -0
  224. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/services/handle_at_command/parser.py +0 -0
  225. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/services/handle_at_command/processor.py +0 -0
  226. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/services/handle_at_command/resolver.py +0 -0
  227. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/services/handle_at_command/utils.py +0 -0
  228. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/services/model_info_service.py +0 -0
  229. {siada_cli-1.0.0/siada/tools → siada_cli-1.2.0/siada/support}/__init__.py +0 -0
  230. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/support/editor.py +0 -0
  231. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/support/envprocessor.py +0 -0
  232. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/support/repo.py +0 -0
  233. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/support/spinner.py +0 -0
  234. {siada_cli-1.0.0/siada/tools/coder → siada_cli-1.2.0/siada/tools}/__init__.py +0 -0
  235. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/ast/README.md +0 -0
  236. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/ast/ast_tool.py +0 -0
  237. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/ast/models.py +0 -0
  238. {siada_cli-1.0.0/siada/tools/coder/observation → siada_cli-1.2.0/siada/tools/cca}/__init__.py +0 -0
  239. {siada_cli-1.0.0/siada/tools/web → siada_cli-1.2.0/siada/tools/coder}/__init__.py +0 -0
  240. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/coder/ask_followup_question.py +0 -0
  241. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/coder/file_search/README.md +0 -0
  242. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/coder/file_search/__init__.py +0 -0
  243. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/coder/file_search/bin/rg-linux-arm64 +0 -0
  244. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/coder/file_search/bin/rg-linux-x64 +0 -0
  245. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/coder/file_search/bin/rg-macos-arm64 +0 -0
  246. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/coder/file_search/bin/rg-macos-x64 +0 -0
  247. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/coder/file_search/bin/rg.exe +0 -0
  248. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/coder/file_search/search.py +0 -0
  249. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/coder/file_search/setup_package.py +0 -0
  250. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/coder/file_search/test_search.py +0 -0
  251. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/coder/files.py +0 -0
  252. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/coder/fix_attempt_completion.py +0 -0
  253. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/coder/issue_review_completion.py +0 -0
  254. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/coder/observation/error.py +0 -0
  255. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/coder/observation/observation.py +0 -0
  256. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/coder/repo_map/__init__.py +0 -0
  257. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/coder/repo_map/dump.py +0 -0
  258. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/coder/repo_map/io.py +0 -0
  259. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/coder/repo_map/repo_map.py +0 -0
  260. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/coder/repo_map/special.py +0 -0
  261. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/coder/repo_map/token_counter.py +0 -0
  262. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/coder/repo_map/waiting.py +0 -0
  263. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/coder/reproduce_completion.py +0 -0
  264. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/coder/test_completion.py +0 -0
  265. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/coder/tool_docs.py +0 -0
  266. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/read_many_files/README.md +0 -0
  267. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/read_many_files/__init__.py +0 -0
  268. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/read_many_files/file_processor.py +0 -0
  269. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/read_many_files/filters.py +0 -0
  270. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/read_many_files/formatters.py +0 -0
  271. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/read_many_files/models.py +0 -0
  272. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/read_many_files_tool.py +0 -0
  273. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/tool_call_format/__init__.py +0 -0
  274. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/tool_call_format/file_to_language.py +0 -0
  275. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/tool_call_format/formatter_factory.py +0 -0
  276. {siada_cli-1.0.0 → siada_cli-1.2.0}/siada/tools/tool_call_format/tool_call_formatter.py +0 -0
  277. {siada_cli-1.0.0 → 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: 1.0.0
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
@@ -204,6 +208,77 @@ export OPENROUTER_API_KEY="your_openrouter_key"
204
208
  unset SIADA_MODEL
205
209
  ```
206
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
+
207
282
  ## Usage Modes
208
283
 
209
284
  Siada CLI supports two usage modes to meet different usage scenarios:
@@ -276,6 +351,15 @@ siada-cli --verbose
276
351
  # List all available models
277
352
  siada-cli --list-models
278
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
+
279
363
  ```
280
364
 
281
365
  ## Slash Commands
@@ -285,7 +369,17 @@ In the CLI, you can use slash commands for additional functionality:
285
369
  - `/shell` - Switch to shell mode to execute system commands (type `exit` or `quit` to exit shell mode)
286
370
  - `/models` - List available AI models
287
371
  - `/run <command>` or `!<command>` - Execute shell commands
288
- - `/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)
289
383
  - `/exit` or `/quit` - Exit the application
290
384
 
291
385
  ### Shell Mode Usage Guide
@@ -475,3 +569,4 @@ See [disclaimers.md](./disclaimers.md)
475
569
  <div align="center">
476
570
  Built with ❤️ by Li Auto Code Intelligence Team and the open source community
477
571
  </div>
572
+
@@ -163,6 +163,77 @@ export OPENROUTER_API_KEY="your_openrouter_key"
163
163
  unset SIADA_MODEL
164
164
  ```
165
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
+
166
237
  ## Usage Modes
167
238
 
168
239
  Siada CLI supports two usage modes to meet different usage scenarios:
@@ -235,6 +306,15 @@ siada-cli --verbose
235
306
  # List all available models
236
307
  siada-cli --list-models
237
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
+
238
318
  ```
239
319
 
240
320
  ## Slash Commands
@@ -244,7 +324,17 @@ In the CLI, you can use slash commands for additional functionality:
244
324
  - `/shell` - Switch to shell mode to execute system commands (type `exit` or `quit` to exit shell mode)
245
325
  - `/models` - List available AI models
246
326
  - `/run <command>` or `!<command>` - Execute shell commands
247
- - `/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)
248
338
  - `/exit` or `/quit` - Exit the application
249
339
 
250
340
  ### Shell Mode Usage Guide
@@ -433,4 +523,4 @@ See [disclaimers.md](./disclaimers.md)
433
523
  ----
434
524
  <div align="center">
435
525
  Built with ❤️ by Li Auto Code Intelligence Team and the open source community
436
- </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 = "1.0.0"
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