MCPcopy Create free account
hub / github.com/astercloud/aster / handleToolControl

Method handleToolControl

server/handlers/websocket.go:775–797  ·  view source on GitHub ↗

handleToolControl 处理工具控制指令

(wsConn *WebSocketConnection, payload map[string]any)

Source from the content-addressed store, hash-verified

773
774// handleToolControl 处理工具控制指令
775func (h *WebSocketHandler) handleToolControl(wsConn *WebSocketConnection, payload map[string]any) {
776 if wsConn.Agent == nil {
777 h.sendError(wsConn, "agent_not_ready", "agent is not initialized")
778 return
779 }
780
781 callID, _ := payload["tool_call_id"].(string)
782 if callID == "" {
783 callID, _ = payload["call_id"].(string)
784 }
785 action, _ := payload["action"].(string)
786 note, _ := payload["note"].(string)
787
788 if callID == "" || action == "" {
789 h.sendError(wsConn, "invalid_control", "tool_call_id and action are required")
790 return
791 }
792
793 if err := wsConn.Agent.ControlTool(callID, action, note); err != nil {
794 h.sendError(wsConn, "control_failed", err.Error())
795 return
796 }
797}
798
799// broadcastToAll broadcasts a message to all connected WebSocket clients
800func (h *WebSocketHandler) broadcastToAll(messageType string, payload map[string]any) {

Callers 1

handleMessageMethod · 0.95

Calls 3

sendErrorMethod · 0.95
ControlToolMethod · 0.80
ErrorMethod · 0.65

Tested by

no test coverage detected