feat: optimize WebUI stream output and sanitize user-facing answers
This commit is contained in:
@@ -220,14 +220,7 @@ func runMessageChannel(ctx context.Context, cfg config.Config, engine *agent.Orc
|
||||
return engine.HandleMessage(ctx, msg.ChatID, msg.UserID, msg.Text)
|
||||
},
|
||||
func(ctx context.Context, msg webui.IncomingMessage, callback webui.StreamEventCallback) (string, error) {
|
||||
return engine.HandleMessageStream(ctx, msg.ChatID, msg.UserID, msg.Text, func(event agent.StreamEvent) error {
|
||||
return callback(webui.StreamEvent{
|
||||
Type: webui.StreamEventType(event.Type),
|
||||
Content: event.Content,
|
||||
Step: event.Step,
|
||||
ToolName: event.ToolName,
|
||||
})
|
||||
})
|
||||
return engine.HandleMessageStream(ctx, msg.ChatID, msg.UserID, msg.Text, buildWebUIStreamForwarder(callback))
|
||||
},
|
||||
func(ctx context.Context, chatID, userID string, files []llm.InputFile) ([]string, error) {
|
||||
return engine.UploadAndCacheFiles(ctx, chatID, userID, files)
|
||||
@@ -237,3 +230,20 @@ func runMessageChannel(ctx context.Context, cfg config.Config, engine *agent.Orc
|
||||
return fmt.Errorf("unsupported message channel: %s", cfg.MessageChannel)
|
||||
}
|
||||
}
|
||||
|
||||
func buildWebUIStreamForwarder(callback webui.StreamEventCallback) agent.StreamEventCallback {
|
||||
return func(event agent.StreamEvent) error {
|
||||
if callback == nil {
|
||||
return nil
|
||||
}
|
||||
switch event.Type {
|
||||
case agent.StreamEventTypeFinal, agent.StreamEventTypeError:
|
||||
return callback(webui.StreamEvent{
|
||||
Type: webui.StreamEventType(event.Type),
|
||||
Content: event.Content,
|
||||
})
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user