33 lines
719 B
Go
33 lines
719 B
Go
package tools
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
"fmt"
|
|
"strings"
|
|
|
|
"ollie/toolsrv"
|
|
)
|
|
|
|
// SkillList lists all available skills from the global registry.
|
|
func SkillList(ctx context.Context, srv *toolsrv.Server, args json.RawMessage) (string, error) {
|
|
reg := srv.SkillsRegistry()
|
|
if reg == nil {
|
|
return "", fmt.Errorf("skill_list: no skills registry available")
|
|
}
|
|
summaries := reg.Summaries()
|
|
if len(summaries) == 0 {
|
|
return "(no skills found)", nil
|
|
}
|
|
var out strings.Builder
|
|
for _, s := range summaries {
|
|
out.WriteString(s.Name)
|
|
if s.Description != "" {
|
|
out.WriteString(" — ")
|
|
out.WriteString(s.Description)
|
|
}
|
|
out.WriteString("\n")
|
|
}
|
|
return strings.TrimRight(out.String(), "\n"), nil
|
|
}
|