50 std::unique_ptr<Transport> transport);
79 std::string
execute(
const std::string& tool_name,
80 const std::string& args_json);
87 std::pair<std::vector<std::string>, std::vector<std::string>>
103 const std::string&
name()
const {
return name_; }
114 void interrupt() {
if (transport_) { transport_->interrupt(); } }
118 std::unique_ptr<Transport> transport_;
119 std::string cached_tools_json_;
120 std::vector<std::string> cached_tool_names_;
121 mutable std::mutex tools_mutex_;
124 static constexpr uint32_t DEFAULT_TIMEOUT_MS = 30000;
125 static constexpr uint32_t INIT_TIMEOUT_MS = 10000;
135 std::string build_request(
const std::string& method,
136 const std::string& params =
"{}");
144 bool send_initialize();
153 bool validate_init_response(
const std::string& response);
170 static std::string extract_tool_result(
171 const std::string& response_json);
181 static std::string build_response(
const std::string& result_text,
182 bool is_error =
false);