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

Method handleSessionCommand

cli/command_handler.go:277–340  ·  view source on GitHub ↗

handleSessionCommand foi movido para cá para consolidar a lógica do handler

(ctx context.Context, userInput string)

Source from the content-addressed store, hash-verified

275
276// handleSessionCommand foi movido para cá para consolidar a lógica do handler
277func (ch *CommandHandler) handleSessionCommand(ctx context.Context, userInput string) {
278 args := strings.Fields(userInput)
279 if len(args) < 2 {
280 fmt.Println(i18n.T("session.usage_header"))
281 fmt.Println(i18n.T("session.usage_save"))
282 fmt.Println(i18n.T("session.usage_load"))
283 fmt.Println(i18n.T("session.usage_list"))
284 fmt.Println(i18n.T("session.usage_search"))
285 fmt.Println(i18n.T("session.usage_delete"))
286 fmt.Println(i18n.T("session.usage_new"))
287 return
288 }
289
290 command := args[1]
291 var name string
292 if len(args) > 2 {
293 name = args[2]
294 }
295
296 switch command {
297 case "save":
298 if name == "" {
299 fmt.Println(i18n.T("session.error_name_required_save"))
300 return
301 }
302 ch.cli.handleSaveSession(ctx, name)
303 case "load":
304 if name == "" {
305 fmt.Println(i18n.T("session.error_name_required_load"))
306 return
307 }
308 ch.cli.handleLoadSession(ctx, name)
309 case "list":
310 ch.cli.handleListSessions(ctx)
311 case "search":
312 // Everything after "search" is the query (may contain spaces).
313 query := strings.TrimSpace(strings.TrimPrefix(userInput, args[0]))
314 query = strings.TrimSpace(strings.TrimPrefix(query, "search"))
315 if query == "" {
316 fmt.Println(colorize(" "+i18n.T("session.search.usage"), ColorYellow))
317 return
318 }
319 ch.cli.handleSearchSessions(query)
320 case "delete":
321 if name == "" {
322 fmt.Println(i18n.T("session.error_name_required_delete"))
323 return
324 }
325 ch.cli.handleDeleteSession(ctx, name)
326 case "new":
327 ch.cli.clearAllHistories()
328 ch.cli.currentSessionName = ""
329 fmt.Println(i18n.T("session.new_session_started"))
330 case "fork":
331 if name == "" {
332 fmt.Println(colorize(" "+i18n.T("cmd.core.session_fork_usage"), ColorYellow))
333 return
334 }

Callers 1

buildRoutesMethod · 0.95

Calls 9

TFunction · 0.92
colorizeFunction · 0.85
handleSaveSessionMethod · 0.80
handleLoadSessionMethod · 0.80
handleListSessionsMethod · 0.80
handleSearchSessionsMethod · 0.80
handleDeleteSessionMethod · 0.80
clearAllHistoriesMethod · 0.80
handleForkSessionMethod · 0.80

Tested by

no test coverage detected