| package shared | |
| import ( | |
| "strings" | |
| "ds2api/internal/toolcall" | |
| ) | |
| func DetectAssistantToolCalls(rawText, visibleText, exposedThinking, detectionThinking string, toolNames []string) toolcall.ToolCallParseResult { | |
| textParsed := toolcall.ParseStandaloneToolCallsDetailed(rawText, toolNames) | |
| if len(textParsed.Calls) > 0 { | |
| return textParsed | |
| } | |
| if strings.TrimSpace(visibleText) != "" { | |
| return textParsed | |
| } | |
| thinking := detectionThinking | |
| if strings.TrimSpace(thinking) == "" { | |
| thinking = exposedThinking | |
| } | |
| thinkingParsed := toolcall.ParseStandaloneToolCallsDetailed(thinking, toolNames) | |
| if len(thinkingParsed.Calls) > 0 { | |
| return thinkingParsed | |
| } | |
| return textParsed | |
| } | |