dialog

package
v0.20.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 16, 2026 License: MIT Imports: 34 Imported by: 0

Documentation

Index

Constants

View Source
const (
	UserCommandPrefix    = "user:"
	ProjectCommandPrefix = "project:"
)

Command prefix constants

Variables

This section is empty.

Functions

func ClaudeExchangeCodeCmd added in v0.20.0

func ClaudeExchangeCodeCmd(session *auth.ClaudeLoginSession, code, redirectURI string) tea.Cmd

ClaudeExchangeCodeCmd performs the token exchange (phase 2). It is called after the TUI receives the authorization code — either from the automatic browser callback (ClaudeAutoCode) or from the manual input dialog.

func ClaudeLoginCmd added in v0.16.0

func ClaudeLoginCmd() tea.Cmd

ClaudeLoginCmd starts the OAuth flow (phase 1): initializes the session and returns ClaudeLoginStartMsg so the TUI can show the dialog and open the browser.

func ClaudeLogoutCmd added in v0.16.0

func ClaudeLogoutCmd() tea.Cmd

ClaudeLogoutCmd performs logout.

func ClaudeWaitAutoCodeCmd added in v0.20.0

func ClaudeWaitAutoCodeCmd(session *auth.ClaudeLoginSession) tea.Cmd

ClaudeWaitAutoCodeCmd waits for the automatic browser callback to deliver the authorization code. It blocks until the code arrives or the session times out.

func GetClaudeAuthStatusCmd added in v0.16.0

func GetClaudeAuthStatusCmd() tea.Cmd

GetClaudeAuthStatusCmd fetches current auth status.

func GetSelectedModel

func GetSelectedModel(cfg *config.Config) models.Model

func IsHidden

func IsHidden(file string) (bool, error)

func LoadClaudeStatsCmd added in v0.16.0

func LoadClaudeStatsCmd() tea.Cmd

LoadClaudeStatsCmd loads stats and sends ClaudeStatsMsg.

Types

type AttachmentAddedMsg

type AttachmentAddedMsg struct {
	Attachment message.Attachment
}

type ClaudeAuthStatusMsg added in v0.16.0

type ClaudeAuthStatusMsg struct {
	Status *auth.ClaudeAuthStatus
	Err    error
}

ClaudeAuthStatusMsg is sent to show auth status.

type ClaudeLoginCodeSubmitMsg added in v0.20.0

type ClaudeLoginCodeSubmitMsg struct {
	Code        string
	RedirectURI string // always auth.ClaudeManualRedirectURL
}

ClaudeLoginCodeSubmitMsg is sent when the user submits a manual authorization code.

type ClaudeLoginDialogCancelMsg added in v0.20.0

type ClaudeLoginDialogCancelMsg struct{}

ClaudeLoginDialogCancelMsg is sent when the user cancels the login dialog.

type ClaudeLoginDialogCmp added in v0.20.0

type ClaudeLoginDialogCmp struct {
	// contains filtered or unexported fields
}

ClaudeLoginDialogCmp is the OAuth login dialog. It shows the authorization URL (manual flow) and a text input for pasting the code returned by platform.claude.com. It is closed automatically when the automatic browser callback delivers the code.

func NewClaudeLoginDialogCmp added in v0.20.0

func NewClaudeLoginDialogCmp(session *auth.ClaudeLoginSession) ClaudeLoginDialogCmp

NewClaudeLoginDialogCmp creates a new login dialog for the given session.

func (ClaudeLoginDialogCmp) Bindings added in v0.20.0

func (m ClaudeLoginDialogCmp) Bindings() []key.Binding

Bindings implements layout.Bindings.

func (ClaudeLoginDialogCmp) Init added in v0.20.0

func (m ClaudeLoginDialogCmp) Init() tea.Cmd

Init implements tea.Model.

func (ClaudeLoginDialogCmp) Session added in v0.20.0

Session returns the underlying auth session (used by tui.go to exchange the code).

func (*ClaudeLoginDialogCmp) SetSize added in v0.20.0

func (m *ClaudeLoginDialogCmp) SetSize(width, height int)

SetSize propagates terminal size to the component.

func (ClaudeLoginDialogCmp) Update added in v0.20.0

func (m ClaudeLoginDialogCmp) Update(msg tea.Msg) (tea.Model, tea.Cmd)

Update implements tea.Model.

func (ClaudeLoginDialogCmp) View added in v0.20.0

func (m ClaudeLoginDialogCmp) View() string

View implements tea.Model.

type ClaudeLoginDoneMsg added in v0.16.0

type ClaudeLoginDoneMsg struct {
	DisplayName string
	Err         error
}

ClaudeLoginDoneMsg is sent after login completes (success or failure).

type ClaudeLoginStartMsg added in v0.16.0

type ClaudeLoginStartMsg struct {
	Session *auth.ClaudeLoginSession
}

ClaudeLoginStartMsg is sent when the OAuth session has been initialized. The TUI uses it to show the login dialog and open the browser.

type ClaudeLogoutDoneMsg added in v0.16.0

type ClaudeLogoutDoneMsg struct {
	Err error
}

ClaudeLogoutDoneMsg is sent after logout completes.

type ClaudeStatsMsg added in v0.16.0

type ClaudeStatsMsg struct {
	Content string // pre-formatted stats text
}

ClaudeStatsMsg is sent when stats should be shown.

type CloseCommandDialogMsg

type CloseCommandDialogMsg struct{}

CloseCommandDialogMsg is sent when the command dialog is closed.

type CloseInitDialogMsg

type CloseInitDialogMsg struct {
	Initialize bool
}

CloseInitDialogMsg is a message that is sent when the init dialog is closed.

type CloseModelDialogMsg

type CloseModelDialogMsg struct{}

CloseModelDialogMsg is sent when a model is selected

type CloseMultiArgumentsDialogMsg

type CloseMultiArgumentsDialogMsg struct {
	Submit    bool
	CommandID string
	Content   string
	Args      map[string]string
}

CloseMultiArgumentsDialogMsg is a message that is sent when the multi-arguments dialog is closed.

type CloseQuitMsg

type CloseQuitMsg struct{}

type CloseSessionDialogMsg

type CloseSessionDialogMsg struct{}

CloseSessionDialogMsg is sent when the session dialog is closed

type CloseThemeDialogMsg

type CloseThemeDialogMsg struct{}

CloseThemeDialogMsg is sent when the theme dialog is closed

type Command

type Command struct {
	ID          string
	Title       string
	Description string
	Shortcut    string
	Category    CommandCategory
	Handler     func(cmd Command) tea.Cmd
}

Command represents a command that can be executed.

func LoadCustomCommands

func LoadCustomCommands() ([]Command, error)

LoadCustomCommands loads custom commands from both XDG_CONFIG_HOME and project data directory

func (Command) Render

func (ci Command) Render(selected bool, width int) string

type CommandCategory added in v0.2.0

type CommandCategory string
const (
	CommandCategoryGeneral  CommandCategory = "General"
	CommandCategoryFiles    CommandCategory = "Files"
	CommandCategorySessions CommandCategory = "Sessions"
	CommandCategoryModels   CommandCategory = "Models"
	CommandCategoryView     CommandCategory = "View"
	CommandCategoryAccount  CommandCategory = "Account"
)

type CommandDialog

type CommandDialog interface {
	tea.Model
	layout.Bindings
	SetCommands(commands []Command)
}

CommandDialog interface for the command selection dialog.

func NewCommandDialogCmp

func NewCommandDialogCmp() CommandDialog

NewCommandDialogCmp creates a new command selection dialog.

type CommandRunCustomMsg

type CommandRunCustomMsg struct {
	Content string
	Args    map[string]string // Map of argument names to values
}

CommandRunCustomMsg is sent when a custom command is executed

type CommandSelectedMsg

type CommandSelectedMsg struct {
	Command Command
}

CommandSelectedMsg is sent when a command is selected.

type CompletionDialog

type CompletionDialog interface {
	tea.Model
	layout.Bindings
	SetWidth(width int)
}

func NewCompletionDialogCmp

func NewCompletionDialogCmp(completionProvider CompletionProvider) CompletionDialog

type CompletionDialogCloseMsg

type CompletionDialogCloseMsg struct{}

type CompletionDialogCompleteItemMsg

type CompletionDialogCompleteItemMsg struct {
	Value string
}

type CompletionItem

type CompletionItem struct {
	Title string
	Value string
	// contains filtered or unexported fields
}

func (*CompletionItem) DisplayValue

func (ci *CompletionItem) DisplayValue() string

func (*CompletionItem) GetValue

func (ci *CompletionItem) GetValue() string

func (*CompletionItem) Render

func (ci *CompletionItem) Render(selected bool, width int) string

type CompletionItemI

type CompletionItemI interface {
	utilComponents.SimpleListItem
	GetValue() string
	DisplayValue() string
}

func NewCompletionItem

func NewCompletionItem(completionItem CompletionItem) CompletionItemI

type CompletionProvider

type CompletionProvider interface {
	GetId() string
	GetEntry() CompletionItemI
	GetChildEntries(query string) ([]CompletionItemI, error)
}

type CompletionSelectedMsg

type CompletionSelectedMsg struct {
	SearchString    string
	CompletionValue string
}

type DirNode

type DirNode struct {
	// contains filtered or unexported fields
}

type FilePrickerKeyMap

type FilePrickerKeyMap struct {
	Enter          key.Binding
	Down           key.Binding
	Up             key.Binding
	Forward        key.Binding
	Backward       key.Binding
	OpenFilePicker key.Binding
	Esc            key.Binding
	InsertCWD      key.Binding
}

type FilepickerCmp

type FilepickerCmp interface {
	tea.Model
	layout.Bindings
	ToggleFilepicker(showFilepicker bool)
	IsCWDFocused() bool
}

func NewFilepickerCmp

func NewFilepickerCmp(app *app.App) FilepickerCmp

type HelpCmp

type HelpCmp interface {
	tea.Model
	SetBindings([]key.Binding)
	SetSections([]HelpSection)
}

func NewHelpCmp

func NewHelpCmp() HelpCmp

type HelpSection added in v0.2.0

type HelpSection struct {
	Title    string
	Bindings []key.Binding
}

type InitDialogCmp

type InitDialogCmp struct {
	// contains filtered or unexported fields
}

InitDialogCmp is a component that asks the user if they want to initialize the project.

func NewInitDialogCmp

func NewInitDialogCmp() InitDialogCmp

NewInitDialogCmp creates a new InitDialogCmp.

func (InitDialogCmp) Bindings

func (m InitDialogCmp) Bindings() []key.Binding

Bindings implements layout.Bindings.

func (InitDialogCmp) Init

func (m InitDialogCmp) Init() tea.Cmd

Init implements tea.Model.

func (*InitDialogCmp) SetSize

func (m *InitDialogCmp) SetSize(width, height int)

SetSize sets the size of the component.

func (InitDialogCmp) Update

func (m InitDialogCmp) Update(msg tea.Msg) (tea.Model, tea.Cmd)

Update implements tea.Model.

func (InitDialogCmp) View

func (m InitDialogCmp) View() string

View implements tea.Model.

type ModelDialog

type ModelDialog interface {
	tea.Model
	layout.Bindings
}

ModelDialog interface for the model selection dialog

func NewModelDialogCmp

func NewModelDialogCmp() ModelDialog

type ModelSelectedMsg

type ModelSelectedMsg struct {
	Model models.Model
}

ModelSelectedMsg is sent when a model is selected

type MultiArgumentsDialogCmp

type MultiArgumentsDialogCmp struct {
	// contains filtered or unexported fields
}

MultiArgumentsDialogCmp is a component that asks the user for multiple command arguments.

func NewMultiArgumentsDialogCmp

func NewMultiArgumentsDialogCmp(commandID, content string, argNames []string) MultiArgumentsDialogCmp

NewMultiArgumentsDialogCmp creates a new MultiArgumentsDialogCmp.

func (MultiArgumentsDialogCmp) Bindings

func (m MultiArgumentsDialogCmp) Bindings() []key.Binding

Bindings implements layout.Bindings.

func (MultiArgumentsDialogCmp) Init

func (m MultiArgumentsDialogCmp) Init() tea.Cmd

Init implements tea.Model.

func (*MultiArgumentsDialogCmp) SetSize

func (m *MultiArgumentsDialogCmp) SetSize(width, height int)

SetSize sets the size of the component.

func (MultiArgumentsDialogCmp) Update

func (m MultiArgumentsDialogCmp) Update(msg tea.Msg) (tea.Model, tea.Cmd)

Update implements tea.Model.

func (MultiArgumentsDialogCmp) View

View implements tea.Model.

type OpenFilepickerMsg added in v0.2.0

type OpenFilepickerMsg struct{}

type OpenModelDialogMsg added in v0.2.0

type OpenModelDialogMsg struct{}

type OpenSessionDialogMsg added in v0.2.0

type OpenSessionDialogMsg struct{}

type OpenThemeDialogMsg added in v0.2.0

type OpenThemeDialogMsg struct{}

type PermissionAction

type PermissionAction string
const (
	PermissionAllow           PermissionAction = "allow"
	PermissionAllowForSession PermissionAction = "allow_session"
	PermissionDeny            PermissionAction = "deny"
)

Permission responses

type PermissionDialogCmp

type PermissionDialogCmp interface {
	tea.Model
	layout.Bindings
	SetPermissions(permission permission.PermissionRequest) tea.Cmd
}

PermissionDialogCmp interface for permission dialog component

func NewPermissionDialogCmp

func NewPermissionDialogCmp() PermissionDialogCmp

type PermissionResponseMsg

type PermissionResponseMsg struct {
	Permission permission.PermissionRequest
	Action     PermissionAction
}

PermissionResponseMsg represents the user's response to a permission request

type QuitDialog

type QuitDialog interface {
	tea.Model
	layout.Bindings
}

func NewQuitCmp

func NewQuitCmp() QuitDialog

type SessionDialog

type SessionDialog interface {
	tea.Model
	layout.Bindings
	SetSessions(sessions []session.Session)
	SetSelectedSession(sessionID string)
}

SessionDialog interface for the session switching dialog

func NewSessionDialogCmp

func NewSessionDialogCmp() SessionDialog

NewSessionDialogCmp creates a new session switching dialog

type SessionSelectedMsg

type SessionSelectedMsg struct {
	Session session.Session
}

SessionSelectedMsg is sent when a session is selected

type ShowInitDialogMsg

type ShowInitDialogMsg struct {
	Show bool
}

ShowInitDialogMsg is a message that is sent to show the init dialog.

type ShowMultiArgumentsDialogMsg

type ShowMultiArgumentsDialogMsg struct {
	CommandID string
	Content   string
	ArgNames  []string
}

ShowMultiArgumentsDialogMsg is a message that is sent to show the multi-arguments dialog.

type ThemeChangedMsg

type ThemeChangedMsg struct {
	ThemeName string
}

ThemeChangedMsg is sent when the theme is changed

type ThemeDialog

type ThemeDialog interface {
	tea.Model
	layout.Bindings
}

ThemeDialog interface for the theme switching dialog

func NewThemeDialogCmp

func NewThemeDialogCmp() ThemeDialog

NewThemeDialogCmp creates a new theme switching dialog

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL