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)