MCPcopy
hub / github.com/wavetermdev/waveterm / SendToolProgress

Function SendToolProgress

pkg/aiusechat/aiutil/aiutil.go:286–314  ·  view source on GitHub ↗

SendToolProgress sends tool progress updates via SSE if the tool has a progress descriptor

(toolCallID, toolName string, jsonData []byte, chatOpts uctypes.WaveChatOpts, sseHandler *sse.SSEHandlerCh, usePartialParse bool)

Source from the content-addressed store, hash-verified

284
285// SendToolProgress sends tool progress updates via SSE if the tool has a progress descriptor
286func SendToolProgress(toolCallID, toolName string, jsonData []byte, chatOpts uctypes.WaveChatOpts, sseHandler *sse.SSEHandlerCh, usePartialParse bool) {
287 toolDef := chatOpts.GetToolDefinition(toolName)
288 if toolDef == nil || toolDef.ToolProgressDesc == nil {
289 return
290 }
291
292 var parsedJSON any
293 var err error
294 if usePartialParse {
295 parsedJSON, err = utilfn.ParsePartialJson(jsonData)
296 } else {
297 err = json.Unmarshal(jsonData, &parsedJSON)
298 }
299 if err != nil {
300 return
301 }
302
303 statusLines, err := toolDef.ToolProgressDesc(parsedJSON)
304 if err != nil {
305 return
306 }
307
308 progressData := &uctypes.UIMessageDataToolProgress{
309 ToolCallId: toolCallID,
310 ToolName: toolName,
311 StatusLines: statusLines,
312 }
313 _ = sseHandler.AiMsgData("data-toolprogress", "progress-"+toolCallID, progressData)
314}

Callers 3

processGeminiStreamFunction · 0.92
handleAnthropicEventFunction · 0.92
handleOpenAIEventFunction · 0.92

Calls 3

ParsePartialJsonFunction · 0.92
GetToolDefinitionMethod · 0.80
AiMsgDataMethod · 0.80

Tested by

no test coverage detected