增加/context命令、Tab补全与输入历史,命令处理提取到internal/cli

This commit is contained in:
2026-08-14 16:31:03 +08:00
parent 068c5fccf1
commit ce49bb9c1e
7 files changed
+203 -77

No files matched your search

+35
View File
@@ -0,0 +1,35 @@
package cli
import "strings"
var commands = []string{"/exit", "/quit", "/help", "/models", "/use", "/think", "/effort", "/context", "/info"}
func Complete(line string, models []string) []string {
fields := strings.Fields(line)
switch len(fields) {
case 0:
return commands
case 1:
return prefixMatch(commands, fields[0])
}
arg := fields[1]
switch fields[0] {
case "/use":
return prefixMatch(models, arg)
case "/think":
return prefixMatch([]string{"on", "off"}, arg)
case "/effort":
return prefixMatch([]string{"low", "high", "max"}, arg)
}
return nil
}
func prefixMatch(list []string, prefix string) []string {
var out []string
for _, s := range list {
if strings.HasPrefix(s, prefix) {
out = append(out, s)
}
}
return out
}