Expose the online-list TLS column through list_online_hosts, search_hosts and get_host_detail. The value comes from the flag the client reports at login, so old clients always read false. Add list_network_connections and kill_network_connection on top of the connection manager sub-connection protocol. The kill path matches the original 110-byte record instead of rebuilding addresses, supports a dry run, refuses UDP/IPv6 targets, and verifies that the quadruple really disappeared instead of assuming success. Add a host_* family backed by the machine manager protocol: ten read tools covering every tab of the host management dialog, and four recoverable write tools for process freeze/thaw, window restore/hide/ maximize/minimize, service start/stop/pause/continue/restart, and scheduled task run/stop. Every write re-reads the snapshot before sending and re-checks afterwards, reporting -32009 for stale targets rather than acting blindly. The family is gated by McpMachine, the risky subset by McpMachineDangerous, and writes additionally require read-only mode to be off. Route managed sub-connections from MessageHandle and OfflineProc, keep the single-in-flight rule by sharing the pending table with a request kind, and move the shared JSON/lock/encoding helpers into McpInternal so both tool families use one implementation. Settings dialog, design docs and en_US/zh_TW/de_DE translations are updated accordingly. Co-Authored-By: deepseek-flash
32 lines
1.3 KiB
C++
32 lines
1.3 KiB
C++
#pragma once
|
|
|
|
// 主机管理(10 个标签页)与连接管理(连接列表 / 强制断开)MCP 工具族。
|
|
//
|
|
// 协议(详见 docs/Mcp_Machine_Design.md):
|
|
// 主机管理:主连接 COMMAND_MACHINE_MANAGE(162) → 客户端 MachineManager 子连接回
|
|
// TOKEN_SYSINFOLIST(61) → 发 1 字节 tab(0..9) → 回 TOKEN_MACHINE_*(31..42)。
|
|
// 连接管理:主连接 COMMAND_CONNECTION(253) → CConnectionsManager 子连接回
|
|
// TOKEN_CONNECTION_LIST(255) → 发 254+原始 110 字节记录强制断开。
|
|
//
|
|
// 会话状态由 CMcpServer 持有(与 m_Pending 共用单飞行表),本模块只负责工具 schema、
|
|
// 参数校验、组包与解析。
|
|
|
|
#include "jsoncpp/json.h"
|
|
#include <string>
|
|
|
|
class CMy2015RemoteDlg;
|
|
|
|
namespace McpMachine {
|
|
|
|
// 是否由本模块处理(AppendTools 与 Call 必须保持一致)。
|
|
bool Handles(const std::string& toolName);
|
|
|
|
// 按当前开关(McpMachine / McpMachineDangerous / McpReadonly)追加可见工具。
|
|
void AppendTools(Json::Value& tools);
|
|
|
|
// 执行工具;返回完整 JSON-RPC 响应字符串(成功 = BuildResult,失败 = BuildError)。
|
|
std::string Call(const Json::Value& id, const std::string& toolName,
|
|
const Json::Value& args, CMy2015RemoteDlg* parent);
|
|
|
|
} // namespace McpMachine
|