handleToolControl 处理工具控制指令
(wsConn *WebSocketConnection, payload map[string]any)
| 773 | |
| 774 | // handleToolControl 处理工具控制指令 |
| 775 | func (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 |
| 800 | func (h *WebSocketHandler) broadcastToAll(messageType string, payload map[string]any) { |
no test coverage detected