Documentation
¶
Index ¶
- Constants
- func BoolPtr(b bool) *bool
- func Count() int
- func CountStages(workflow *schema.WorkflowDefinition) int
- func FormatStepLabel(step *schema.WorkflowStep, workflow *schema.WorkflowDefinition, ...) string
- func GetShowConfig(step *schema.WorkflowStep, workflow *schema.WorkflowDefinition) *schema.ShowConfig
- func GetViewportConfig(step *schema.WorkflowStep, workflow *schema.WorkflowDefinition) *schema.ViewportConfig
- func IsExtendedStepType(stepType string) bool
- func List() map[string]StepHandler
- func ListByCategory() map[StepCategory][]StepHandler
- func ListTypes() map[StepCategory][]string
- func Register(handler StepHandler)
- func RenderCommand(step *schema.WorkflowStep, workflow *schema.WorkflowDefinition, command string)
- func Reset()
- func ShowCommand(cfg *schema.ShowConfig) bool
- func ShowCount(cfg *schema.ShowConfig) bool
- func ShowFlags(cfg *schema.ShowConfig) bool
- func ShowHeader(cfg *schema.ShowConfig) bool
- func ShowProgress(cfg *schema.ShowConfig) bool
- func ValidateStep(step *schema.WorkflowStep) error
- func ValidateWorkflow(workflow *schema.WorkflowDefinition) []error
- type AlertHandler
- type AtmosHandler
- func (h *AtmosHandler) Execute(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (*StepResult, error)
- func (h *AtmosHandler) ExecuteWithWorkflow(ctx context.Context, step *schema.WorkflowStep, vars *Variables, ...) (*StepResult, error)
- func (h *AtmosHandler) Validate(step *schema.WorkflowStep) error
- type BaseHandler
- func (h BaseHandler) CheckTTY(step *schema.WorkflowStep) error
- func (h BaseHandler) GetCategory() StepCategory
- func (h BaseHandler) GetName() string
- func (h BaseHandler) RequiresTTY() bool
- func (h BaseHandler) ResolveCommand(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (string, error)
- func (h BaseHandler) ResolveContent(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (string, error)
- func (h BaseHandler) ResolvePrompt(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (string, error)
- func (h BaseHandler) ValidateRequired(step *schema.WorkflowStep, field, value string) error
- type ChooseHandler
- type ClearHandler
- type ConfirmHandler
- type EnvHandler
- type ExitHandler
- type FileHandler
- type FilterHandler
- type FormatHandler
- type InputHandler
- type JoinHandler
- type LinebreakHandler
- type LogHandler
- type MarkdownHandler
- type OutputMode
- type OutputModeWriter
- type PagerHandler
- type Registry
- type ShellHandler
- func (h *ShellHandler) Execute(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (*StepResult, error)
- func (h *ShellHandler) ExecuteWithWorkflow(ctx context.Context, step *schema.WorkflowStep, vars *Variables, ...) (*StepResult, error)
- func (h *ShellHandler) Validate(step *schema.WorkflowStep) error
- type SleepHandler
- type Spacing
- type SpinHandler
- type StageHandler
- type StepCategory
- type StepExecutor
- func (e *StepExecutor) Execute(ctx context.Context, step *schema.WorkflowStep) (*StepResult, error)
- func (e *StepExecutor) GetResult(name string) (*StepResult, bool)
- func (e *StepExecutor) RunAll(ctx context.Context, workflow *schema.WorkflowDefinition) error
- func (e *StepExecutor) SetEnv(key, value string)
- func (e *StepExecutor) SetWorkflow(workflow *schema.WorkflowDefinition)
- func (e *StepExecutor) Variables() *Variables
- type StepHandler
- type StepResult
- type StreamingOutputWriter
- type StyleHandler
- type TableHandler
- type TitleHandler
- type ToastHandler
- type Variables
- func (v *Variables) GetStageIndex() int
- func (v *Variables) GetTotalStages() int
- func (v *Variables) GetValue(stepName string) (string, bool)
- func (v *Variables) GetValues(stepName string) ([]string, bool)
- func (v *Variables) IncrementStageIndex() int
- func (v *Variables) LoadOSEnv()
- func (v *Variables) Resolve(input string) (string, error)
- func (v *Variables) ResolveEnvMap(envMap map[string]string) (map[string]string, error)
- func (v *Variables) Set(name string, result *StepResult)
- func (v *Variables) SetEnv(key, value string)
- func (v *Variables) SetTotalStages(total int)
- type WriteHandler
Constants ¶
const ( MetaStageIndex = "_stage_index" MetaTotalStages = "_total_stages" )
Stage tracking metadata keys.
Variables ¶
This section is empty.
Functions ¶
func BoolPtr ¶
BoolPtr is a helper to create a pointer to a bool value. Useful for setting ShowConfig fields in tests and configuration.
func CountStages ¶
func CountStages(workflow *schema.WorkflowDefinition) int
CountStages counts the number of stage steps in a workflow.
func FormatStepLabel ¶
func FormatStepLabel(step *schema.WorkflowStep, workflow *schema.WorkflowDefinition, stepIndex, totalSteps int) string
FormatStepLabel formats the step label with optional count prefix. If show.count is enabled, returns "1/3 stepname" with stepname in muted style. Otherwise returns just "stepname" in muted style.
func GetShowConfig ¶
func GetShowConfig(step *schema.WorkflowStep, workflow *schema.WorkflowDefinition) *schema.ShowConfig
GetShowConfig returns the effective show config for a step. Performs deep merge: step-level values override workflow-level values. Unset values (nil) default to false.
func GetViewportConfig ¶
func GetViewportConfig(step *schema.WorkflowStep, workflow *schema.WorkflowDefinition) *schema.ViewportConfig
GetViewportConfig returns the effective viewport config for a step.
func IsExtendedStepType ¶
IsExtendedStepType checks if a step type is an extended type (not atmos or shell).
func ListByCategory ¶
func ListByCategory() map[StepCategory][]StepHandler
ListByCategory returns handlers grouped by category.
func ListTypes ¶
func ListTypes() map[StepCategory][]string
ListTypes returns all available step type names grouped by category.
func Register ¶
func Register(handler StepHandler)
Register adds a step handler to the registry. Called from init() in each handler file. If a handler with the same name already exists, it is replaced.
func RenderCommand ¶
func RenderCommand(step *schema.WorkflowStep, workflow *schema.WorkflowDefinition, command string)
RenderCommand renders the command before execution if show.command is enabled. Displays the command with a $ prefix for shell-like appearance.
func ShowCommand ¶
func ShowCommand(cfg *schema.ShowConfig) bool
ShowCommand returns true if the command feature is enabled.
func ShowCount ¶
func ShowCount(cfg *schema.ShowConfig) bool
ShowCount returns true if the count feature is enabled.
func ShowFlags ¶
func ShowFlags(cfg *schema.ShowConfig) bool
ShowFlags returns true if the flags feature is enabled.
func ShowHeader ¶
func ShowHeader(cfg *schema.ShowConfig) bool
ShowHeader returns true if the header feature is enabled.
func ShowProgress ¶
func ShowProgress(cfg *schema.ShowConfig) bool
ShowProgress returns true if the progress feature is enabled.
func ValidateStep ¶
func ValidateStep(step *schema.WorkflowStep) error
ValidateStep validates a step configuration.
func ValidateWorkflow ¶
func ValidateWorkflow(workflow *schema.WorkflowDefinition) []error
ValidateWorkflow validates all steps in a workflow definition.
Types ¶
type AlertHandler ¶
type AlertHandler struct {
BaseHandler
}
AlertHandler plays a terminal bell sound.
func (*AlertHandler) Execute ¶
func (h *AlertHandler) Execute(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (*StepResult, error)
Execute plays the terminal bell and optionally displays a message.
func (*AlertHandler) Validate ¶
func (h *AlertHandler) Validate(step *schema.WorkflowStep) error
Validate checks that the step has valid fields.
type AtmosHandler ¶
type AtmosHandler struct {
BaseHandler
}
AtmosHandler executes atmos commands.
func (*AtmosHandler) Execute ¶
func (h *AtmosHandler) Execute(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (*StepResult, error)
Execute runs the atmos command.
func (*AtmosHandler) ExecuteWithWorkflow ¶
func (h *AtmosHandler) ExecuteWithWorkflow(ctx context.Context, step *schema.WorkflowStep, vars *Variables, workflow *schema.WorkflowDefinition) (*StepResult, error)
ExecuteWithWorkflow runs the atmos command with workflow context for output mode.
func (*AtmosHandler) Validate ¶
func (h *AtmosHandler) Validate(step *schema.WorkflowStep) error
Validate checks that the step has required fields.
type BaseHandler ¶
type BaseHandler struct {
// contains filtered or unexported fields
}
BaseHandler provides common functionality for step handlers.
func NewBaseHandler ¶
func NewBaseHandler(name string, category StepCategory, requiresTTY bool) BaseHandler
NewBaseHandler creates a new BaseHandler.
func (BaseHandler) CheckTTY ¶
func (h BaseHandler) CheckTTY(step *schema.WorkflowStep) error
CheckTTY verifies TTY availability for interactive steps. Returns an error if TTY is required but not available.
func (BaseHandler) GetCategory ¶
func (h BaseHandler) GetCategory() StepCategory
GetCategory returns the step category.
func (BaseHandler) GetName ¶
func (h BaseHandler) GetName() string
GetName returns the step type name.
func (BaseHandler) RequiresTTY ¶
func (h BaseHandler) RequiresTTY() bool
RequiresTTY returns whether this handler requires an interactive terminal.
func (BaseHandler) ResolveCommand ¶
func (h BaseHandler) ResolveCommand(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (string, error)
ResolveCommand resolves Go templates in the command field.
func (BaseHandler) ResolveContent ¶
func (h BaseHandler) ResolveContent(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (string, error)
ResolveContent resolves Go templates in the content field.
func (BaseHandler) ResolvePrompt ¶
func (h BaseHandler) ResolvePrompt(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (string, error)
ResolvePrompt resolves Go templates in the prompt field.
func (BaseHandler) ValidateRequired ¶
func (h BaseHandler) ValidateRequired(step *schema.WorkflowStep, field, value string) error
ValidateRequired checks that a required field is not empty.
type ChooseHandler ¶
type ChooseHandler struct {
BaseHandler
}
ChooseHandler prompts for single selection from a list.
func (*ChooseHandler) Execute ¶
func (h *ChooseHandler) Execute(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (*StepResult, error)
Execute prompts for selection and returns the chosen value.
func (*ChooseHandler) Validate ¶
func (h *ChooseHandler) Validate(step *schema.WorkflowStep) error
Validate checks that the step has required fields.
type ClearHandler ¶
type ClearHandler struct {
BaseHandler
}
ClearHandler clears the current terminal line.
func (*ClearHandler) Execute ¶
func (h *ClearHandler) Execute(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (*StepResult, error)
Execute clears the current terminal line.
func (*ClearHandler) Validate ¶
func (h *ClearHandler) Validate(step *schema.WorkflowStep) error
Validate checks that the step has valid fields.
type ConfirmHandler ¶
type ConfirmHandler struct {
BaseHandler
}
ConfirmHandler prompts for yes/no confirmation.
func (*ConfirmHandler) Execute ¶
func (h *ConfirmHandler) Execute(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (*StepResult, error)
Execute prompts for confirmation and returns "true" or "false".
func (*ConfirmHandler) Validate ¶
func (h *ConfirmHandler) Validate(step *schema.WorkflowStep) error
Validate checks that the step has required fields.
type EnvHandler ¶
type EnvHandler struct {
BaseHandler
}
EnvHandler sets environment variables for subsequent steps.
func (*EnvHandler) Execute ¶
func (h *EnvHandler) Execute(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (*StepResult, error)
Execute sets environment variables in the workflow context.
func (*EnvHandler) Validate ¶
func (h *EnvHandler) Validate(step *schema.WorkflowStep) error
Validate checks that the step has required fields.
type ExitHandler ¶
type ExitHandler struct {
BaseHandler
}
ExitHandler exits the workflow with a specific exit code.
func (*ExitHandler) Execute ¶
func (h *ExitHandler) Execute(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (*StepResult, error)
Execute exits the workflow with the specified exit code. It returns an error with the exit code attached that the workflow executor should handle to exit the program.
func (*ExitHandler) Validate ¶
func (h *ExitHandler) Validate(step *schema.WorkflowStep) error
Validate checks that the step has valid fields.
type FileHandler ¶
type FileHandler struct {
BaseHandler
}
FileHandler prompts for file selection.
func (*FileHandler) Execute ¶
func (h *FileHandler) Execute(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (*StepResult, error)
Execute prompts for file selection and returns the chosen path.
func (*FileHandler) Validate ¶
func (h *FileHandler) Validate(step *schema.WorkflowStep) error
Validate checks that the step has required fields.
type FilterHandler ¶
type FilterHandler struct {
BaseHandler
}
FilterHandler prompts for fuzzy filter selection.
func (*FilterHandler) Execute ¶
func (h *FilterHandler) Execute(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (*StepResult, error)
Execute prompts for filtered selection and returns the chosen value(s).
func (*FilterHandler) Validate ¶
func (h *FilterHandler) Validate(step *schema.WorkflowStep) error
Validate checks that the step has required fields.
type FormatHandler ¶
type FormatHandler struct {
BaseHandler
}
FormatHandler formats and displays text using Go templates.
func (*FormatHandler) Execute ¶
func (h *FormatHandler) Execute(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (*StepResult, error)
Execute formats and displays the content.
func (*FormatHandler) Validate ¶
func (h *FormatHandler) Validate(step *schema.WorkflowStep) error
Validate checks that the step has required fields.
type InputHandler ¶
type InputHandler struct {
BaseHandler
}
InputHandler prompts for single-line text input.
func (*InputHandler) Execute ¶
func (h *InputHandler) Execute(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (*StepResult, error)
Execute prompts for user input and returns the result.
func (*InputHandler) Validate ¶
func (h *InputHandler) Validate(step *schema.WorkflowStep) error
Validate checks that the step has required fields.
type JoinHandler ¶
type JoinHandler struct {
BaseHandler
}
JoinHandler joins multiple strings together.
func (*JoinHandler) Execute ¶
func (h *JoinHandler) Execute(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (*StepResult, error)
Execute joins strings and returns the result.
func (*JoinHandler) Validate ¶
func (h *JoinHandler) Validate(step *schema.WorkflowStep) error
Validate checks that the step has required fields.
type LinebreakHandler ¶
type LinebreakHandler struct {
BaseHandler
}
LinebreakHandler outputs one or more blank lines.
func (*LinebreakHandler) Execute ¶
func (h *LinebreakHandler) Execute(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (*StepResult, error)
Execute outputs the specified number of blank lines.
func (*LinebreakHandler) Validate ¶
func (h *LinebreakHandler) Validate(step *schema.WorkflowStep) error
Validate checks that the step has valid fields.
type LogHandler ¶
type LogHandler struct {
BaseHandler
}
LogHandler logs a message using the atmos logger.
func (*LogHandler) Execute ¶
func (h *LogHandler) Execute(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (*StepResult, error)
Execute logs the message at the specified level.
func (*LogHandler) Validate ¶
func (h *LogHandler) Validate(step *schema.WorkflowStep) error
Validate checks that the step has required fields.
type MarkdownHandler ¶
type MarkdownHandler struct {
BaseHandler
}
MarkdownHandler renders and displays markdown content.
func (*MarkdownHandler) Execute ¶
func (h *MarkdownHandler) Execute(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (*StepResult, error)
Execute renders and displays the markdown content.
func (*MarkdownHandler) Validate ¶
func (h *MarkdownHandler) Validate(step *schema.WorkflowStep) error
Validate checks that the step has required fields.
type OutputMode ¶
type OutputMode string
OutputMode controls how command output is displayed.
const ( // OutputModeViewport displays output in an interactive TUI pager. OutputModeViewport OutputMode = "viewport" // OutputModeRaw passes output directly to stdout/stderr. OutputModeRaw OutputMode = "raw" // OutputModeLog groups output with step boundaries. OutputModeLog OutputMode = "log" // OutputModeNone suppresses all output. OutputModeNone OutputMode = "none" )
func GetOutputMode ¶
func GetOutputMode(step *schema.WorkflowStep, workflow *schema.WorkflowDefinition) OutputMode
GetOutputMode returns the effective output mode for a step. Checks step-level, workflow-level, and defaults.
type OutputModeWriter ¶
type OutputModeWriter struct {
// contains filtered or unexported fields
}
OutputModeWriter wraps command execution with the specified output mode.
func NewOutputModeWriter ¶
func NewOutputModeWriter(mode OutputMode, stepName string, viewport *schema.ViewportConfig) *OutputModeWriter
NewOutputModeWriter creates a new OutputModeWriter.
type PagerHandler ¶
type PagerHandler struct {
BaseHandler
}
PagerHandler displays content in a scrollable pager.
func (*PagerHandler) Execute ¶
func (h *PagerHandler) Execute(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (*StepResult, error)
Execute displays content in a pager.
func (*PagerHandler) Validate ¶
func (h *PagerHandler) Validate(step *schema.WorkflowStep) error
Validate checks that the step has required fields. Either content or path must be provided.
type Registry ¶
type Registry struct {
// contains filtered or unexported fields
}
Registry manages step type handlers.
type ShellHandler ¶
type ShellHandler struct {
BaseHandler
}
ShellHandler executes shell commands.
func (*ShellHandler) Execute ¶
func (h *ShellHandler) Execute(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (*StepResult, error)
Execute runs the shell command.
func (*ShellHandler) ExecuteWithWorkflow ¶
func (h *ShellHandler) ExecuteWithWorkflow(ctx context.Context, step *schema.WorkflowStep, vars *Variables, workflow *schema.WorkflowDefinition) (*StepResult, error)
ExecuteWithWorkflow runs the shell command with workflow context for output mode.
func (*ShellHandler) Validate ¶
func (h *ShellHandler) Validate(step *schema.WorkflowStep) error
Validate checks that the step has required fields.
type SleepHandler ¶
type SleepHandler struct {
BaseHandler
}
SleepHandler pauses execution for a specified duration.
func (*SleepHandler) Execute ¶
func (h *SleepHandler) Execute(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (*StepResult, error)
Execute pauses execution for the specified duration.
func (*SleepHandler) Validate ¶
func (h *SleepHandler) Validate(step *schema.WorkflowStep) error
Validate checks that the step has valid fields.
type SpinHandler ¶
type SpinHandler struct {
BaseHandler
}
SpinHandler displays a spinner while executing a command.
func (*SpinHandler) Execute ¶
func (h *SpinHandler) Execute(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (*StepResult, error)
Execute runs the command with a spinner.
func (*SpinHandler) Validate ¶
func (h *SpinHandler) Validate(step *schema.WorkflowStep) error
Validate checks that the step has required fields.
type StageHandler ¶
type StageHandler struct {
BaseHandler
}
StageHandler displays workflow stage position among stage steps. Unlike the step count which shows position among all steps, stage shows position only among steps of type "stage".
func (*StageHandler) Execute ¶
func (h *StageHandler) Execute(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (*StepResult, error)
Execute renders the stage indicator. Format: [Stage 1/3] Setup.
func (*StageHandler) Validate ¶
func (h *StageHandler) Validate(step *schema.WorkflowStep) error
Validate checks that the step has valid fields.
type StepCategory ¶
type StepCategory string
StepCategory groups step types for documentation and validation.
const ( // CategoryInteractive requires user input (TTY required). CategoryInteractive StepCategory = "interactive" // CategoryOutput displays formatted output. CategoryOutput StepCategory = "output" // CategoryUI displays status messages. CategoryUI StepCategory = "ui" // CategoryCommand executes commands. CategoryCommand StepCategory = "command" )
type StepExecutor ¶
type StepExecutor struct {
// contains filtered or unexported fields
}
StepExecutor runs workflow steps using the step registry. This provides a simplified interface for executing steps with variable passing.
func NewStepExecutor ¶
func NewStepExecutor() *StepExecutor
NewStepExecutor creates a new step executor.
func NewStepExecutorWithVars ¶
func NewStepExecutorWithVars(vars *Variables) *StepExecutor
NewStepExecutorWithVars creates a new executor with pre-populated variables.
func (*StepExecutor) Execute ¶
func (e *StepExecutor) Execute(ctx context.Context, step *schema.WorkflowStep) (*StepResult, error)
Execute runs a single step and stores the result.
func (*StepExecutor) GetResult ¶
func (e *StepExecutor) GetResult(name string) (*StepResult, bool)
GetResult returns the result of a previously executed step.
func (*StepExecutor) RunAll ¶
func (e *StepExecutor) RunAll(ctx context.Context, workflow *schema.WorkflowDefinition) error
RunAll executes all steps in order.
func (*StepExecutor) SetEnv ¶
func (e *StepExecutor) SetEnv(key, value string)
SetEnv sets an environment variable for use in templates.
func (*StepExecutor) SetWorkflow ¶
func (e *StepExecutor) SetWorkflow(workflow *schema.WorkflowDefinition)
SetWorkflow sets the workflow context for output mode inheritance.
func (*StepExecutor) Variables ¶
func (e *StepExecutor) Variables() *Variables
Variables returns the executor's variable store.
type StepHandler ¶
type StepHandler interface {
// GetName returns the step type name (e.g., "input", "choose", "success").
GetName() string
// GetCategory returns the step category for grouping.
GetCategory() StepCategory
// Execute runs the step and returns the result.
Execute(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (*StepResult, error)
// Validate checks step configuration before execution.
Validate(step *schema.WorkflowStep) error
// RequiresTTY returns true if the step requires an interactive terminal.
RequiresTTY() bool
}
StepHandler defines the interface for workflow step type handlers.
type StepResult ¶
type StepResult struct {
// Value is the primary output value (for variable capture).
Value string
// Values holds multiple values for multiselect operations.
Values []string
// Metadata contains additional data from the step execution.
Metadata map[string]any
// Skipped indicates if the step was skipped.
Skipped bool
// Error captures any error message from the step.
Error string
}
StepResult captures the output of a step execution.
func NewStepResult ¶
func NewStepResult(value string) *StepResult
NewStepResult creates a new StepResult with the given value.
func (*StepResult) WithError ¶
func (r *StepResult) WithError(err string) *StepResult
WithError adds an error message to the result.
func (*StepResult) WithMetadata ¶
func (r *StepResult) WithMetadata(key string, value any) *StepResult
WithMetadata adds metadata to the result.
func (*StepResult) WithSkipped ¶
func (r *StepResult) WithSkipped() *StepResult
WithSkipped marks the result as skipped.
func (*StepResult) WithValues ¶
func (r *StepResult) WithValues(values []string) *StepResult
WithValues adds multiple values to the result.
type StreamingOutputWriter ¶
type StreamingOutputWriter struct {
// contains filtered or unexported fields
}
StreamingOutputWriter handles real-time output streaming with prefix per line.
func NewStreamingOutputWriter ¶
func NewStreamingOutputWriter(prefix string, target io.Writer) *StreamingOutputWriter
NewStreamingOutputWriter creates a writer that prefixes each line.
func (*StreamingOutputWriter) Flush ¶
func (w *StreamingOutputWriter) Flush()
Flush writes any buffered content to the target.
func (*StreamingOutputWriter) String ¶
func (w *StreamingOutputWriter) String() string
String returns the captured output, flushing any buffered content first.
type StyleHandler ¶
type StyleHandler struct {
BaseHandler
}
StyleHandler applies terminal styling to text (like gum style).
func (*StyleHandler) Execute ¶
func (h *StyleHandler) Execute(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (*StepResult, error)
Execute applies styling and displays the content.
func (*StyleHandler) Validate ¶
func (h *StyleHandler) Validate(step *schema.WorkflowStep) error
Validate checks that the step has required fields.
type TableHandler ¶
type TableHandler struct {
BaseHandler
}
TableHandler renders data as a formatted table.
func (*TableHandler) Execute ¶
func (h *TableHandler) Execute(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (*StepResult, error)
Execute renders the table.
func (*TableHandler) Validate ¶
func (h *TableHandler) Validate(step *schema.WorkflowStep) error
Validate checks that the step has required fields.
type TitleHandler ¶
type TitleHandler struct {
BaseHandler
}
TitleHandler sets the terminal window title.
func (*TitleHandler) Execute ¶
func (h *TitleHandler) Execute(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (*StepResult, error)
Execute sets or restores the terminal window title.
func (*TitleHandler) Validate ¶
func (h *TitleHandler) Validate(step *schema.WorkflowStep) error
Validate checks that the step has valid fields.
type ToastHandler ¶
type ToastHandler struct {
BaseHandler
}
ToastHandler displays a styled message with icon (success, info, warning, error).
func (*ToastHandler) Execute ¶
func (h *ToastHandler) Execute(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (*StepResult, error)
Execute displays the message with the appropriate style based on level.
func (*ToastHandler) Validate ¶
func (h *ToastHandler) Validate(step *schema.WorkflowStep) error
Validate checks that the step has required fields.
type Variables ¶
type Variables struct {
// Steps maps step names to their results.
Steps map[string]*StepResult
// Env contains environment variables.
Env map[string]string
// contains filtered or unexported fields
}
Variables holds step outputs accessible via Go templates.
func NewVariables ¶
func NewVariables() *Variables
NewVariables creates a new Variables instance with OS environment pre-populated.
func (*Variables) GetStageIndex ¶
GetStageIndex returns the current stage index.
func (*Variables) GetTotalStages ¶
GetTotalStages returns the total number of stage steps.
func (*Variables) IncrementStageIndex ¶
IncrementStageIndex increments and returns the current stage index.
func (*Variables) LoadOSEnv ¶
func (v *Variables) LoadOSEnv()
LoadOSEnv populates the Env map with all OS environment variables.
func (*Variables) ResolveEnvMap ¶
ResolveEnvMap resolves Go templates in a map of environment variables.
func (*Variables) Set ¶
func (v *Variables) Set(name string, result *StepResult)
Set stores a step result by name.
func (*Variables) SetTotalStages ¶
SetTotalStages sets the total number of stage steps in the workflow.
type WriteHandler ¶
type WriteHandler struct {
BaseHandler
}
WriteHandler prompts for multi-line text input.
func (*WriteHandler) Execute ¶
func (h *WriteHandler) Execute(ctx context.Context, step *schema.WorkflowStep, vars *Variables) (*StepResult, error)
Execute prompts for multi-line input and returns the result.
func (*WriteHandler) Validate ¶
func (h *WriteHandler) Validate(step *schema.WorkflowStep) error
Validate checks that the step has required fields.