MCPcopy Create free account
hub / github.com/diillson/chatcli / Search

Method Search

cli/session_adapter.go:29–54  ·  view source on GitHub ↗

Search runs a free-text search across saved sessions.

(_ context.Context, query string, limit int)

Source from the content-addressed store, hash-verified

27
28// Search runs a free-text search across saved sessions.
29func (a *sessionPluginAdapter) Search(_ context.Context, query string, limit int) (string, error) {
30 if a.cli == nil || a.cli.sessionManager == nil {
31 return "", fmt.Errorf("%s", i18n.T("session.tool.unavailable"))
32 }
33 hits, err := a.cli.sessionManager.SearchSessions(query, limit)
34 if err != nil {
35 return "", err
36 }
37 if len(hits) == 0 {
38 return i18n.T("session.tool.no_match", query), nil
39 }
40
41 var b strings.Builder
42 b.WriteString(i18n.T("session.tool.match_header", query))
43 b.WriteByte('\n')
44 for _, h := range hits {
45 fmt.Fprintf(&b, "\n• %s (%s)\n", h.Session, i18n.T("session.tool.match_count", h.Matches))
46 for _, sn := range h.Snippets {
47 sn = strings.TrimSpace(sn)
48 if sn != "" {
49 b.WriteString(" … " + sn + "\n")
50 }
51 }
52 }
53 return strings.TrimRight(b.String(), "\n"), nil
54}
55
56// List returns the saved session names.
57func (a *sessionPluginAdapter) List(_ context.Context) (string, error) {

Callers 2

Calls 4

TFunction · 0.92
ErrorfMethod · 0.80
SearchSessionsMethod · 0.80
StringMethod · 0.45

Tested by 2