app

package
v1.0.5 Latest Latest
Warning

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

Go to latest
Published: Jul 30, 2026 License: MIT Imports: 27 Imported by: 0

Documentation

Overview

Package app implements the main Bubbletea application for the interactive workflow dispatcher TUI.

Index

Constants

View Source
const (
	MaxHistoryEntries = 10
	MinTerminalHeight = 20
	MinTerminalWidth  = 80
	TableHeaderHeight = 14
)

UI layout and history limits.

Variables

View Source
var ErrLogManagerNotInitialized = errors.New("log manager not initialized")

ErrLogManagerNotInitialized indicates logs were requested before the log manager was set up.

View Source
var ErrNoChainStateOrRunID = errors.New("no chain state or run ID provided")

ErrNoChainStateOrRunID indicates a log fetch request lacked both chain state and a run ID.

Functions

This section is empty.

Types

type ChainUpdateMsg

type ChainUpdateMsg struct {
	Update chain.ChainUpdate
}

ChainUpdateMsg is sent when a chain execution state changes.

type FetchLogsMsg

type FetchLogsMsg struct {
	ChainState *chain.ChainState
	Workflow   string
	Branch     string
	RunID      int64
	ErrorsOnly bool
}

FetchLogsMsg requests fetching logs for a chain or run.

type FocusedPane

type FocusedPane int

FocusedPane represents which pane currently has focus.

const (
	PaneWorkflows FocusedPane = iota
	PaneHistory
	PaneConfig
)

Panes available in the TUI, in tab order.

type KeyMap

type KeyMap struct {
	Branch   key.Binding
	Chain    key.Binding
	Clear    key.Binding
	ClearAll key.Binding
	Copy     key.Binding
	Down     key.Binding
	Edit     key.Binding
	Enter    key.Binding
	Escape   key.Binding
	Filter   key.Binding
	Help     key.Binding
	LiveView key.Binding
	Quit     key.Binding
	Reset    key.Binding
	ShiftTab key.Binding
	Space    key.Binding
	Tab      key.Binding
	TabNext  key.Binding
	TabPrev  key.Binding
	Up       key.Binding
	Watch    key.Binding

	Input0 key.Binding
	Input1 key.Binding
	Input2 key.Binding
	Input3 key.Binding
	Input4 key.Binding
	Input5 key.Binding
	Input6 key.Binding
	Input7 key.Binding
	Input8 key.Binding
	Input9 key.Binding

	Workflow0 key.Binding
	Workflow1 key.Binding
	Workflow2 key.Binding
	Workflow3 key.Binding
	Workflow4 key.Binding
	Workflow5 key.Binding
	Workflow6 key.Binding
	Workflow7 key.Binding
	Workflow8 key.Binding
	Workflow9 key.Binding
}

KeyMap defines all keyboard shortcuts for the application.

func DefaultKeyMap

func DefaultKeyMap() KeyMap

DefaultKeyMap returns the default keyboard shortcuts.

func (KeyMap) FullHelp

func (k KeyMap) FullHelp() [][]key.Binding

FullHelp returns the full list of key bindings for the help view.

func (KeyMap) InputKeys

func (k KeyMap) InputKeys() []key.Binding

InputKeys returns all input key bindings as a slice indexed 0-9.

func (KeyMap) ShortHelp

func (k KeyMap) ShortHelp() []key.Binding

ShortHelp returns a short list of key bindings for the help view.

func (KeyMap) WorkflowKeys

func (k KeyMap) WorkflowKeys() []key.Binding

WorkflowKeys returns all workflow key bindings as a slice indexed 0-9.

type LogStreamUpdateMsg

type LogStreamUpdateMsg struct {
	Update logs.StreamUpdate
}

LogStreamUpdateMsg contains new log content from streaming.

type LogsFetchedMsg

type LogsFetchedMsg struct {
	Error      error
	Logs       *logs.RunLogs
	Workflow   string
	RunID      int64
	ErrorsOnly bool
}

LogsFetchedMsg contains fetched logs or an error.

type Model

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

Model is the root bubbletea model for the application.

func New

func New(workflows []workflow.File, history *frecency.Store, repo string) Model

New creates a new application model.

func (Model) Init

func (Model) Init() tea.Cmd

Init implements tea.Model.

func (Model) SelectedWorkflow

func (m Model) SelectedWorkflow() *workflow.File

SelectedWorkflow returns the currently selected workflow.

func (Model) Update

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

Update implements tea.Model.

func (Model) View

func (m Model) View() tea.View

View implements tea.Model.

type RunUpdateMsg

type RunUpdateMsg struct {
	Update watcher.RunUpdate
}

RunUpdateMsg is sent when a watched run is updated.

type ShowLogsViewerMsg

type ShowLogsViewerMsg struct {
	Logs       *logs.RunLogs
	Workflow   string
	RunID      int64
	ErrorsOnly bool
}

ShowLogsViewerMsg opens the logs viewer modal.

type StartLogStreamMsg

type StartLogStreamMsg struct {
	Workflow   string
	RunID      int64
	AutoScroll bool
}

StartLogStreamMsg begins streaming logs for an active run.

type StopLogStreamMsg

type StopLogStreamMsg struct {
	RunID int64
}

StopLogStreamMsg stops streaming logs for a run.

type ViewMode

type ViewMode int

ViewMode represents the current view mode.

const (
	WorkflowListMode ViewMode = iota
	HistoryPreviewMode
	InputDetailMode
)

View modes for the config pane.

Jump to

Keyboard shortcuts

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