ui

package
v0.2.5 Latest Latest
Warning

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

Go to latest
Published: Jun 20, 2026 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ResizeSmallStep    = 5
	ResizeLargeStep    = 15
	MinSidebarWidth    = 20
	MinPanelWidth      = 20
	MaxSidebarFraction = 0.6
)
View Source
const ModalWidth = 44

Variables

View Source
var (
	ColorPrimary   lipgloss.TerminalColor = lipgloss.ANSIColor(5)  // Magenta
	ColorSecondary lipgloss.TerminalColor = lipgloss.ANSIColor(13) // Bright Magenta
	ColorBorder    lipgloss.TerminalColor = lipgloss.ANSIColor(8)  // Bright Black
	ColorFocused   lipgloss.TerminalColor = lipgloss.ANSIColor(5)  // Magenta
	ColorMuted     lipgloss.TerminalColor = lipgloss.ANSIColor(8)  // Bright Black
	ColorText      lipgloss.TerminalColor = lipgloss.ANSIColor(7)  // White
	ColorInsert    lipgloss.TerminalColor = lipgloss.ANSIColor(2)  // Green
	ColorError     lipgloss.TerminalColor = lipgloss.ANSIColor(1)  // Red
	ColorRunning   lipgloss.TerminalColor = lipgloss.ANSIColor(3)  // Yellow

	BorderNormal = lipgloss.NewStyle().
					Border(lipgloss.RoundedBorder()).
					BorderForeground(ColorBorder)

	BorderFocused = lipgloss.NewStyle().
					Border(lipgloss.RoundedBorder()).
					BorderForeground(ColorFocused)

	TitleStyle = lipgloss.NewStyle().
				Bold(true).
				Foreground(ColorPrimary)

	MutedStyle = lipgloss.NewStyle().
				Foreground(ColorMuted)

	StatusBarStyle = lipgloss.NewStyle().
					Background(lipgloss.ANSIColor(0)).
					Foreground(ColorText)

	ModeNormalStyle = lipgloss.NewStyle().
					Bold(true).
					Background(ColorPrimary).
					Foreground(lipgloss.ANSIColor(15)).
					Padding(0, 1)

	ModeInsertStyle = lipgloss.NewStyle().
					Bold(true).
					Background(ColorInsert).
					Foreground(lipgloss.ANSIColor(15)).
					Padding(0, 1)

	ModePassthroughStyle = lipgloss.NewStyle().
							Bold(true).
							Background(ColorRunning).
							Foreground(lipgloss.ANSIColor(0)).
							Padding(0, 1)

	RunningStyle = lipgloss.NewStyle().
					Bold(true).
					Foreground(ColorRunning)

	MouseAppStyle = lipgloss.NewStyle().
					Bold(true).
					Background(ColorInsert).
					Foreground(lipgloss.ANSIColor(15)).
					Padding(0, 1)

	MousePTYStyle = lipgloss.NewStyle().
					Bold(true).
					Background(ColorSecondary).
					Foreground(lipgloss.ANSIColor(15)).
					Padding(0, 1)
)

Functions

This section is empty.

Types

type AgentPanelModel added in v0.2.4

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

func NewAgentPanelModel added in v0.2.4

func NewAgentPanelModel() AgentPanelModel

func (AgentPanelModel) ActiveViewID added in v0.2.4

func (m AgentPanelModel) ActiveViewID() string

func (AgentPanelModel) AttachTermView added in v0.2.4

func (m AgentPanelModel) AttachTermView(id string, tv terminal.TermViewModel) AgentPanelModel

func (AgentPanelModel) DetachTermView added in v0.2.4

func (AgentPanelModel) HasActiveView added in v0.2.4

func (m AgentPanelModel) HasActiveView() bool

func (AgentPanelModel) RemoveSessionView added in v0.2.4

func (m AgentPanelModel) RemoveSessionView(sessionID string) AgentPanelModel

func (AgentPanelModel) ScrollTermView added in v0.2.4

func (m AgentPanelModel) ScrollTermView(direction int) (AgentPanelModel, tea.Cmd)

func (AgentPanelModel) SetFocused added in v0.2.4

func (m AgentPanelModel) SetFocused(f bool) AgentPanelModel

func (AgentPanelModel) SetMouseForwardMode added in v0.2.5

func (m AgentPanelModel) SetMouseForwardMode(b bool) AgentPanelModel

func (AgentPanelModel) SetPassthrough added in v0.2.4

func (m AgentPanelModel) SetPassthrough(b bool) AgentPanelModel

func (AgentPanelModel) SetSession added in v0.2.4

func (m AgentPanelModel) SetSession(sess agent.Session) (AgentPanelModel, tea.Cmd)

func (AgentPanelModel) SetSize added in v0.2.4

func (m AgentPanelModel) SetSize(w, h int) AgentPanelModel

func (AgentPanelModel) Update added in v0.2.4

func (m AgentPanelModel) Update(msg tea.Msg) (AgentPanelModel, tea.Cmd)

func (AgentPanelModel) View added in v0.2.4

func (m AgentPanelModel) View() string

type AgentViewModel

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

func NewAgentViewModel

func NewAgentViewModel() AgentViewModel

func (AgentViewModel) SetSize

func (m AgentViewModel) SetSize(w, h int) AgentViewModel

func (AgentViewModel) Update

func (m AgentViewModel) Update(msg tea.Msg) (AgentViewModel, tea.Cmd)

func (AgentViewModel) View

func (m AgentViewModel) View() string

type AppItem

type AppItem struct {
	Name      string
	Running   bool
	Installed bool
}

type BindingGroup

type BindingGroup struct {
	Name     string
	Bindings []key.Binding
}

type FocusPanel

type FocusPanel int
const (
	FocusSidebar FocusPanel = iota
	FocusMain
	FocusAgent
)

type HelpModel

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

func NewHelpModel

func NewHelpModel(bindings []key.Binding) HelpModel

func (HelpModel) SetBindings

func (m HelpModel) SetBindings(b []key.Binding) HelpModel

func (HelpModel) SetSize

func (m HelpModel) SetSize(w, h int) HelpModel

func (HelpModel) Toggle

func (m HelpModel) Toggle() HelpModel

func (HelpModel) Update

func (m HelpModel) Update(msg tea.Msg) (HelpModel, tea.Cmd)

func (HelpModel) View

func (m HelpModel) View() string

func (HelpModel) Visible

func (m HelpModel) Visible() bool

type LayoutMode added in v0.2.4

type LayoutMode int
const (
	LayoutSingle LayoutMode = iota
	LayoutSplit
)

type LayoutModel

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

func NewLayoutModel

func NewLayoutModel(cfg *config.Config) LayoutModel

func (LayoutModel) AgentPanel added in v0.2.4

func (m LayoutModel) AgentPanel() AgentPanelModel

func (LayoutModel) ClearInfoText

func (m LayoutModel) ClearInfoText() LayoutModel

func (LayoutModel) ClearTaskView

func (m LayoutModel) ClearTaskView() LayoutModel

func (LayoutModel) LayoutMode added in v0.2.4

func (m LayoutModel) LayoutMode() LayoutMode

func (LayoutModel) MainPanel

func (m LayoutModel) MainPanel() MainPanelModel

func (LayoutModel) MainPanelTermSize

func (m LayoutModel) MainPanelTermSize() (int, int)

func (LayoutModel) RemoveAgentSessionView added in v0.2.4

func (m LayoutModel) RemoveAgentSessionView(sessionID string) LayoutModel

func (LayoutModel) RemoveSessionView

func (m LayoutModel) RemoveSessionView(sessionID string) LayoutModel

func (LayoutModel) ResizeAgentPanel added in v0.2.4

func (m LayoutModel) ResizeAgentPanel(delta int) LayoutModel

func (LayoutModel) ResizeSidebar added in v0.2.4

func (m LayoutModel) ResizeSidebar(delta int) LayoutModel

func (LayoutModel) ScrollAgentPanel added in v0.2.4

func (m LayoutModel) ScrollAgentPanel(direction int) (LayoutModel, tea.Cmd)

func (LayoutModel) ScrollMainPanel

func (m LayoutModel) ScrollMainPanel(direction int) (LayoutModel, tea.Cmd)

func (LayoutModel) SetActiveSession

func (m LayoutModel) SetActiveSession(sess agent.Session) (LayoutModel, tea.Cmd)

func (LayoutModel) SetAgentSession added in v0.2.4

func (m LayoutModel) SetAgentSession(sess agent.Session) (LayoutModel, tea.Cmd)

func (LayoutModel) SetFocus

func (m LayoutModel) SetFocus(f FocusPanel) LayoutModel

func (LayoutModel) SetInfoText

func (m LayoutModel) SetInfoText(text string) LayoutModel

func (LayoutModel) SetKeyBindingGroups

func (m LayoutModel) SetKeyBindingGroups(groups []BindingGroup) LayoutModel

func (LayoutModel) SetLayoutMode added in v0.2.4

func (m LayoutModel) SetLayoutMode(mode LayoutMode) LayoutModel

func (LayoutModel) SetMouseForwardMode added in v0.2.5

func (m LayoutModel) SetMouseForwardMode(b bool) LayoutModel

func (LayoutModel) SetPassthrough

func (m LayoutModel) SetPassthrough(b bool) LayoutModel

func (LayoutModel) SetProjectName

func (m LayoutModel) SetProjectName(name string) LayoutModel

func (LayoutModel) SetSidebar

func (m LayoutModel) SetSidebar(d SidebarData) LayoutModel

func (LayoutModel) SetSidebarCollapsed

func (m LayoutModel) SetSidebarCollapsed(collapsed bool) LayoutModel

func (LayoutModel) SetSize

func (m LayoutModel) SetSize(w, h int, sidebarCollapsed bool) LayoutModel

func (LayoutModel) SetTaskView

func (m LayoutModel) SetTaskView(tv *TaskViewModel) LayoutModel

func (LayoutModel) ShowInfo

func (m LayoutModel) ShowInfo(show bool) LayoutModel

func (LayoutModel) TransferToAgent added in v0.2.4

func (m LayoutModel) TransferToAgent(sessionID string) LayoutModel

func (LayoutModel) TransferToMain added in v0.2.4

func (m LayoutModel) TransferToMain(sessionID string) LayoutModel

func (LayoutModel) Update

func (m LayoutModel) Update(msg tea.Msg) (LayoutModel, tea.Cmd)

func (LayoutModel) View

func (m LayoutModel) View() string

type MainPanelModel

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

func NewMainPanelModel

func NewMainPanelModel() MainPanelModel

func (MainPanelModel) ActiveSession

func (m MainPanelModel) ActiveSession() agent.Session

func (MainPanelModel) AttachTermView added in v0.2.4

func (m MainPanelModel) AttachTermView(id string, tv terminal.TermViewModel) MainPanelModel

func (MainPanelModel) ClearInfoText

func (m MainPanelModel) ClearInfoText() MainPanelModel

func (MainPanelModel) ClearTaskView

func (m MainPanelModel) ClearTaskView() MainPanelModel

func (MainPanelModel) DetachTermView added in v0.2.4

func (MainPanelModel) HasPTY

func (m MainPanelModel) HasPTY() bool

func (MainPanelModel) RemoveSessionView

func (m MainPanelModel) RemoveSessionView(sessionID string) MainPanelModel

func (MainPanelModel) ScrollTermView

func (m MainPanelModel) ScrollTermView(direction int) (MainPanelModel, tea.Cmd)

func (MainPanelModel) SetFocused

func (m MainPanelModel) SetFocused(f bool) MainPanelModel

func (MainPanelModel) SetInfoText

func (m MainPanelModel) SetInfoText(text string) MainPanelModel

func (MainPanelModel) SetKeyBindingGroups

func (m MainPanelModel) SetKeyBindingGroups(groups []BindingGroup) MainPanelModel

func (MainPanelModel) SetMouseForwardMode added in v0.2.5

func (m MainPanelModel) SetMouseForwardMode(b bool) MainPanelModel

func (MainPanelModel) SetPassthrough

func (m MainPanelModel) SetPassthrough(b bool) MainPanelModel

func (MainPanelModel) SetProjectName

func (m MainPanelModel) SetProjectName(name string) MainPanelModel

func (MainPanelModel) SetSession

func (m MainPanelModel) SetSession(sess agent.Session) (MainPanelModel, tea.Cmd)

func (MainPanelModel) SetSize

func (m MainPanelModel) SetSize(w, h int) MainPanelModel

func (MainPanelModel) SetTaskView

func (m MainPanelModel) SetTaskView(tv *TaskViewModel) MainPanelModel

func (MainPanelModel) ShowInfo

func (m MainPanelModel) ShowInfo(show bool) MainPanelModel

func (MainPanelModel) Update

func (m MainPanelModel) Update(msg tea.Msg) (MainPanelModel, tea.Cmd)

func (MainPanelModel) View

func (m MainPanelModel) View() string

type ProjectConfirmMsg

type ProjectConfirmMsg struct {
	Dir string
}

type ProjectInfoModel

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

func NewProjectInfoModel

func NewProjectInfoModel() ProjectInfoModel

func (ProjectInfoModel) SetKeyBindingGroups

func (m ProjectInfoModel) SetKeyBindingGroups(groups []BindingGroup) ProjectInfoModel

func (ProjectInfoModel) SetProjectName

func (m ProjectInfoModel) SetProjectName(name string) ProjectInfoModel

func (ProjectInfoModel) SetSize

func (m ProjectInfoModel) SetSize(w, h int) ProjectInfoModel

func (ProjectInfoModel) View

func (m ProjectInfoModel) View() string

type ProjectModal

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

func NewProjectModal

func NewProjectModal() ProjectModal

func (*ProjectModal) Close

func (m *ProjectModal) Close()

func (*ProjectModal) Open

func (m *ProjectModal) Open(projects []string)

func (*ProjectModal) SetSize

func (m *ProjectModal) SetSize(w, h int)

func (*ProjectModal) Update

func (m *ProjectModal) Update(msg tea.Msg) (*ProjectModal, tea.Cmd)

func (*ProjectModal) View

func (m *ProjectModal) View() string

func (*ProjectModal) Visible

func (m *ProjectModal) Visible() bool

type ProjectRemoveMsg

type ProjectRemoveMsg struct {
	Dir string
}

type PromptModel

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

func NewPromptModel

func NewPromptModel() PromptModel

func (PromptModel) SetSize

func (m PromptModel) SetSize(w, h int) PromptModel

func (PromptModel) View

func (m PromptModel) View() string

type SidebarData

type SidebarData struct {
	ProjectName string
	Branch      string
	Sessions    []agent.Session
	Apps        []AppItem
	Tasks       []TaskItem
	// Cursor position: which section it is in and the item index within it.
	CursorSection SidebarSection
	CursorIdx     int
}

type SidebarModel

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

func NewSidebarModel

func NewSidebarModel() SidebarModel

func (SidebarModel) SetData

func (m SidebarModel) SetData(d SidebarData) SidebarModel

func (SidebarModel) SetFocused

func (m SidebarModel) SetFocused(f bool) SidebarModel

func (SidebarModel) SetSize

func (m SidebarModel) SetSize(w, h int) SidebarModel

func (SidebarModel) Update

func (m SidebarModel) Update(msg tea.Msg) (SidebarModel, tea.Cmd)

func (SidebarModel) View

func (m SidebarModel) View() string

type SidebarSection

type SidebarSection int
const (
	SectionProjectInfo SidebarSection = iota
	SectionSessions
	SectionApps
	SectionTasks
)

type StatusBarModel

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

func NewStatusBarModel

func NewStatusBarModel() StatusBarModel

func (StatusBarModel) ClearTaskInfo

func (m StatusBarModel) ClearTaskInfo() StatusBarModel

func (StatusBarModel) SetHints

func (m StatusBarModel) SetHints(hints string) StatusBarModel

func (StatusBarModel) SetMode

func (m StatusBarModel) SetMode(mode string) StatusBarModel

func (StatusBarModel) SetMouseMode added in v0.2.5

func (m StatusBarModel) SetMouseMode(mode string) StatusBarModel

func (StatusBarModel) SetSidebarHidden

func (m StatusBarModel) SetSidebarHidden(hidden bool) StatusBarModel

func (StatusBarModel) SetTaskInfo

func (m StatusBarModel) SetTaskInfo(info string) StatusBarModel

func (StatusBarModel) SetUpdateAvailable added in v0.2.3

func (m StatusBarModel) SetUpdateAvailable(v string) StatusBarModel

func (StatusBarModel) SetVersion

func (m StatusBarModel) SetVersion(v string) StatusBarModel

func (StatusBarModel) SetWidth

func (m StatusBarModel) SetWidth(w int) StatusBarModel

func (StatusBarModel) View

func (m StatusBarModel) View() string

type TaskItem

type TaskItem struct {
	Name      string
	Source    string
	Dir       string
	Status    TaskStatus
	Preferred bool
}

type TaskStatus

type TaskStatus int
const (
	TaskPending TaskStatus = iota
	TaskRunning
	TaskCompleted
	TaskFailed
)

type TaskViewModel

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

func NewTaskViewModel

func NewTaskViewModel(label string) TaskViewModel

func (TaskViewModel) Append

func (m TaskViewModel) Append(data string) TaskViewModel

func (TaskViewModel) Content

func (m TaskViewModel) Content() string

func (TaskViewModel) SetSize

func (m TaskViewModel) SetSize(w, h int) TaskViewModel

func (TaskViewModel) Update

func (m TaskViewModel) Update(msg tea.Msg) (TaskViewModel, tea.Cmd)

func (TaskViewModel) View

func (m TaskViewModel) View() string

Jump to

Keyboard shortcuts

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