messages.go

 1package dialog
 2
 3import (
 4	tea "charm.land/bubbletea/v2"
 5	"github.com/charmbracelet/catwalk/pkg/catwalk"
 6	"github.com/charmbracelet/crush/internal/session"
 7)
 8
 9// CloseMsg is a message to close the current dialog.
10type CloseMsg struct{}
11
12// QuitMsg is a message to quit the application.
13type QuitMsg = tea.QuitMsg
14
15// SessionSelectedMsg is a message indicating a session has been selected.
16type SessionSelectedMsg struct {
17	Session session.Session
18}
19
20// ModelSelectedMsg is a message indicating a model has been selected.
21type ModelSelectedMsg struct {
22	Provider catwalk.Provider
23	Model    catwalk.Model
24}
25
26// Messages for commands
27type (
28	SwitchSessionsMsg      struct{}
29	NewSessionsMsg         struct{}
30	SwitchModelMsg         struct{}
31	OpenFilePickerMsg      struct{}
32	ToggleHelpMsg          struct{}
33	ToggleCompactModeMsg   struct{}
34	ToggleThinkingMsg      struct{}
35	OpenReasoningDialogMsg struct{}
36	OpenExternalEditorMsg  struct{}
37	ToggleYoloModeMsg      struct{}
38	CompactMsg             struct {
39		SessionID string
40	}
41)