picoclaw/pkg/commands/cmd_reset.go
2026-05-07 14:27:43 -07:00

38 lines
1 KiB
Go

package commands
import (
"context"
"fmt"
"strings"
)
func resetCommand() Definition {
return Definition{
Name: "reset",
Description: "Start a fresh session without deleting stored history",
Usage: "/reset [clear|off]",
Handler: func(_ context.Context, req Request, rt *Runtime) error {
if rt == nil || rt.ResetSession == nil {
return req.Reply(unavailableMsg)
}
arg := strings.ToLower(strings.TrimSpace(nthToken(req.Text, 1)))
clearOverride := arg == "clear" || arg == "off"
if arg != "" && !clearOverride {
return req.Reply("Usage: /reset [clear|off]")
}
sessionKey, err := rt.ResetSession(clearOverride)
if err != nil {
return req.Reply("Failed to reset session: " + err.Error())
}
if clearOverride {
return req.Reply("Soft reset cleared. Future messages will use the default routed session again.")
}
return req.Reply(fmt.Sprintf(
"Started a fresh session. Previous history was preserved. New session key: %s",
sessionKey,
))
},
}
}