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// OpenDialogMsg is a message to open a dialog.
16type OpenDialogMsg struct {
17	DialogID string
18}
19
20// SessionSelectedMsg is a message indicating a session has been selected.
21type SessionSelectedMsg struct {
22	Session session.Session
23}
24
25// ModelSelectedMsg is a message indicating a model has been selected.
26type ModelSelectedMsg struct {
27	Provider catwalk.Provider
28	Model    catwalk.Model
29}
30
31// Messages for commands
32type (
33	NewSessionsMsg         struct{}
34	OpenFilePickerMsg      struct{}
35	ToggleHelpMsg          struct{}
36	ToggleCompactModeMsg   struct{}
37	ToggleThinkingMsg      struct{}
38	OpenReasoningDialogMsg struct{}
39	OpenExternalEditorMsg  struct{}
40	ToggleYoloModeMsg      struct{}
41	CompactMsg             struct {
42		SessionID string
43	}
44)