feat: add structured types for graph tool outcomes and enhance candidate extraction logic

This commit is contained in:
mlogclub
2026-04-14 11:15:07 +08:00
parent 974f8a788b
commit 13903baf61
3 changed files with 114 additions and 58 deletions
@@ -9,6 +9,10 @@ import (
svc "cs-agent/internal/services"
)
type interruptMessagePreview struct {
Message string `json:"message"`
}
func buildConversationInterrupt(conversation models.Conversation, message models.Message, aiAgent models.AIAgent, summary *Summary) *models.ConversationInterrupt {
if summary == nil {
return nil
@@ -50,14 +54,11 @@ func extractInterruptMessage(infoPreview string) string {
if infoPreview == "" {
return ""
}
payload := make(map[string]any)
var payload interruptMessagePreview
if err := json.Unmarshal([]byte(infoPreview), &payload); err != nil {
return ""
}
if message, ok := payload["message"].(string); ok {
return strings.TrimSpace(message)
}
return ""
return strings.TrimSpace(payload.Message)
}
func firstInterruptID(summary *Summary) string {