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)
| 284 | |
| 285 | // SendToolProgress sends tool progress updates via SSE if the tool has a progress descriptor |
| 286 | func 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 | } |
no test coverage detected