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)