mirror of
https://github.com/usestrix/strix.git
synced 2026-08-20 02:23:35 +02:00
53 lines
1.4 KiB
Go
53 lines
1.4 KiB
Go
package render
|
|
|
|
import (
|
|
"strings"
|
|
)
|
|
|
|
// ---------------------------------------------------------------------------
|
|
// Simple tools (think, web_search, load_skill) + generic fallback
|
|
// ---------------------------------------------------------------------------
|
|
|
|
func renderThink(args map[string]any) string {
|
|
thought := StringValue(args["thought"])
|
|
var b strings.Builder
|
|
b.WriteString("🧠 " + Bold(Purple).Render("Thinking") + "\n ")
|
|
if thought != "" {
|
|
b.WriteString(Dim().Italic(true).Render(thought))
|
|
} else {
|
|
b.WriteString(Dim().Italic(true).Render("Thinking..."))
|
|
}
|
|
return b.String()
|
|
}
|
|
|
|
func renderWebSearch(args map[string]any) string {
|
|
query := StringValue(args["query"])
|
|
var b strings.Builder
|
|
b.WriteString("🌐 " + Bold(InfoBlue).Render("Searching the web..."))
|
|
if query != "" {
|
|
b.WriteString("\n " + Dim().Render(query))
|
|
}
|
|
return b.String()
|
|
}
|
|
|
|
func renderLoadSkill(args map[string]any, result any) string {
|
|
var requested string
|
|
if list, ok := args["skills"].([]any); ok {
|
|
var parts []string
|
|
for _, s := range list {
|
|
parts = append(parts, StringValue(s))
|
|
}
|
|
requested = strings.Join(parts, ", ")
|
|
} else {
|
|
requested = StringValue(args["skills"])
|
|
}
|
|
var b strings.Builder
|
|
b.WriteString(Col(Emerald).Render("◇ ") + Dim().Render("loading skill"))
|
|
if requested != "" {
|
|
b.WriteString(" " + Col(Emerald).Render(requested))
|
|
} else if result == nil {
|
|
b.WriteString("\n " + Dim().Render("Loading..."))
|
|
}
|
|
return b.String()
|
|
}
|