settings

package
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Apr 13, 2026 License: MIT Imports: 21 Imported by: 0

Documentation

Overview

Package settings implements the lango settings command.

Index

Constants

View Source
const (
	TierBasic    = 0
	TierAdvanced = 1
)

Tier constants for category visibility.

Variables

View Source
var ExperimentalCategories = map[string]bool{
	"economy":                true,
	"economy_risk":           true,
	"economy_negotiation":    true,
	"economy_pricing":        true,
	"economy_escrow":         true,
	"economy_escrow_onchain": true,
	"smartaccount":           true,
	"smartaccount_session":   true,
	"smartaccount_paymaster": true,
	"smartaccount_modules":   true,
	"p2p":                    true,
	"p2p_workspace":          true,
	"p2p_zkp":                true,
	"p2p_pricing":            true,
	"p2p_owner":              true,
	"p2p_sandbox":            true,
	"ontology":               true,
	"a2a":                    true,
	"multi_agent":            true,
	"runledger":              true,
	"provenance":             true,
	"graph":                  true,
	"os_sandbox":             true,
	"observability":          true,
	"alerting":               true,
	"hooks":                  true,
	"agent_memory":           true,
	"librarian":              true,
}

ExperimentalCategories lists settings category IDs for features with Experimental stability status. Used by the menu badge renderer and the @experimental search filter. Source of truth for TUI display; feature-level maturity is documented in docs/features/index.md.

Functions

func FetchEmbeddingModelOptions

func FetchEmbeddingModelOptions(providerID string, cfg *config.Config, currentModel string) []string

FetchEmbeddingModelOptions fetches models and filters for embedding-capable ones. Falls back to the full model list if no embedding models are found.

func FetchEmbeddingModelOptionsCmd added in v0.4.0

func FetchEmbeddingModelOptionsCmd(fieldKey, providerID string, cfg *config.Config, currentModel string) tea.Cmd

FetchEmbeddingModelOptionsCmd returns a Bubble Tea Cmd that fetches embedding model options asynchronously.

func FetchModelOptions

func FetchModelOptions(providerID string, cfg *config.Config, currentModel string) []string

FetchModelOptions fetches available models from a provider. Returns a sorted list of model IDs, or nil if fetching fails. The currentModel (if non-empty) is always included in the result.

func FetchModelOptionsCmd added in v0.4.0

func FetchModelOptionsCmd(fieldKey, providerID string, cfg *config.Config, currentModel string) tea.Cmd

FetchModelOptionsCmd returns a Bubble Tea Cmd that fetches model options asynchronously and sends a FieldOptionsLoadedMsg when complete.

func FetchModelOptionsWithError

func FetchModelOptionsWithError(providerID string, cfg *config.Config, currentModel string) ([]string, error)

FetchModelOptionsWithError is like FetchModelOptions but also returns the error when model fetching fails, for diagnostic feedback.

func NewA2AForm

func NewA2AForm(cfg *config.Config) *tuicore.FormModel

NewA2AForm creates the A2A Protocol configuration form.

func NewAgentForm

func NewAgentForm(cfg *config.Config) *tuicore.FormModel

NewAgentForm creates the Agent configuration form.

func NewAgentMemoryForm added in v0.4.0

func NewAgentMemoryForm(cfg *config.Config) *tuicore.FormModel

NewAgentMemoryForm creates the Agent Memory configuration form.

func NewAlertingForm added in v0.7.0

func NewAlertingForm(cfg *config.Config) *tuicore.FormModel

NewAlertingForm creates the Alerting configuration form.

func NewAutoAdjustForm added in v0.7.0

func NewAutoAdjustForm(cfg *config.Config) *tuicore.FormModel

NewAutoAdjustForm creates the Auto-Adjust configuration form.

func NewBackgroundForm

func NewBackgroundForm(cfg *config.Config) *tuicore.FormModel

NewBackgroundForm creates the Background Tasks configuration form.

func NewChannelsForm

func NewChannelsForm(cfg *config.Config) *tuicore.FormModel

NewChannelsForm creates the Channels configuration form.

func NewCommand

func NewCommand() *cobra.Command

NewCommand creates the settings command.

func NewContextBudgetForm added in v0.7.0

func NewContextBudgetForm(cfg *config.Config) *tuicore.FormModel

NewContextBudgetForm creates the Context Budget configuration form.

func NewContextProfileForm added in v0.7.0

func NewContextProfileForm(cfg *config.Config) *tuicore.FormModel

NewContextProfileForm creates the Context Profile configuration form.

func NewCronForm

func NewCronForm(cfg *config.Config) *tuicore.FormModel

NewCronForm creates the Cron Scheduler configuration form.

func NewDBEncryptionForm

func NewDBEncryptionForm(cfg *config.Config) *tuicore.FormModel

NewDBEncryptionForm creates the Security DB Encryption configuration form.

func NewEconomyEscrowForm added in v0.5.0

func NewEconomyEscrowForm(cfg *config.Config) *tuicore.FormModel

NewEconomyEscrowForm creates the Economy Escrow configuration form.

func NewEconomyEscrowOnChainForm added in v0.5.0

func NewEconomyEscrowOnChainForm(cfg *config.Config) *tuicore.FormModel

NewEconomyEscrowOnChainForm creates the on-chain escrow configuration form.

func NewEconomyForm added in v0.5.0

func NewEconomyForm(cfg *config.Config) *tuicore.FormModel

NewEconomyForm creates the Economy configuration form.

func NewEconomyNegotiationForm added in v0.5.0

func NewEconomyNegotiationForm(cfg *config.Config) *tuicore.FormModel

NewEconomyNegotiationForm creates the Economy Negotiation configuration form.

func NewEconomyPricingForm added in v0.5.0

func NewEconomyPricingForm(cfg *config.Config) *tuicore.FormModel

NewEconomyPricingForm creates the Economy Dynamic Pricing configuration form.

func NewEconomyRiskForm added in v0.5.0

func NewEconomyRiskForm(cfg *config.Config) *tuicore.FormModel

NewEconomyRiskForm creates the Economy Risk configuration form.

func NewEmbeddingForm

func NewEmbeddingForm(cfg *config.Config) *tuicore.FormModel

NewEmbeddingForm creates the Embedding & RAG configuration form.

func NewGatekeeperForm added in v0.6.0

func NewGatekeeperForm(cfg *config.Config) *tuicore.FormModel

NewGatekeeperForm creates the Gatekeeper (response sanitization) configuration form.

func NewGraphForm

func NewGraphForm(cfg *config.Config) *tuicore.FormModel

NewGraphForm creates the Graph Store configuration form.

func NewHooksForm added in v0.4.0

func NewHooksForm(cfg *config.Config) *tuicore.FormModel

NewHooksForm creates the Hooks configuration form.

func NewKMSForm

func NewKMSForm(cfg *config.Config) *tuicore.FormModel

NewKMSForm creates the Security KMS configuration form.

func NewKnowledgeForm

func NewKnowledgeForm(cfg *config.Config) *tuicore.FormModel

NewKnowledgeForm creates the Knowledge configuration form.

func NewLibrarianForm

func NewLibrarianForm(cfg *config.Config) *tuicore.FormModel

NewLibrarianForm creates the Librarian configuration form.

func NewLoggingForm added in v0.6.0

func NewLoggingForm(cfg *config.Config) *tuicore.FormModel

NewLoggingForm creates the Logging configuration form.

func NewMCPForm added in v0.4.0

func NewMCPForm(cfg *config.Config) *tuicore.FormModel

NewMCPForm creates the MCP Servers configuration form.

func NewMCPServerForm added in v0.4.0

func NewMCPServerForm(name string, srv config.MCPServerConfig) *tuicore.FormModel

NewMCPServerForm creates a form for adding or editing a single MCP server.

func NewMultiAgentForm

func NewMultiAgentForm(cfg *config.Config) *tuicore.FormModel

NewMultiAgentForm creates the Multi-Agent configuration form.

func NewOIDCProviderForm

func NewOIDCProviderForm(id string, cfg config.OIDCProviderConfig) *tuicore.FormModel

NewOIDCProviderForm creates the OIDC Provider configuration form.

func NewOSSandboxForm added in v0.7.0

func NewOSSandboxForm(cfg *config.Config) *tuicore.FormModel

NewOSSandboxForm creates the OS Sandbox configuration form. Field keys use the "os_sandbox_" prefix to avoid collisions with the P2P sandbox form which uses the "sandbox_" prefix.

func NewObservabilityForm added in v0.5.0

func NewObservabilityForm(cfg *config.Config) *tuicore.FormModel

NewObservabilityForm creates the Observability configuration form.

func NewObservationalMemoryForm

func NewObservationalMemoryForm(cfg *config.Config) *tuicore.FormModel

NewObservationalMemoryForm creates the Observational Memory configuration form.

func NewOntologyForm added in v0.7.0

func NewOntologyForm(cfg *config.Config) *tuicore.FormModel

NewOntologyForm creates the Ontology configuration form covering the main toggle, ACL, governance, and P2P exchange sub-sections.

func NewOutputManagerForm added in v0.6.0

func NewOutputManagerForm(cfg *config.Config) *tuicore.FormModel

NewOutputManagerForm creates the Output Manager configuration form.

func NewP2PForm

func NewP2PForm(cfg *config.Config) *tuicore.FormModel

NewP2PForm creates the P2P Network configuration form.

func NewP2POwnerProtectionForm

func NewP2POwnerProtectionForm(cfg *config.Config) *tuicore.FormModel

NewP2POwnerProtectionForm creates the P2P Owner Protection configuration form.

func NewP2PPricingForm

func NewP2PPricingForm(cfg *config.Config) *tuicore.FormModel

NewP2PPricingForm creates the P2P Pricing configuration form.

func NewP2PSandboxForm

func NewP2PSandboxForm(cfg *config.Config) *tuicore.FormModel

NewP2PSandboxForm creates the P2P Sandbox configuration form.

func NewP2PWorkspaceForm added in v0.6.0

func NewP2PWorkspaceForm(cfg *config.Config) *tuicore.FormModel

NewP2PWorkspaceForm creates the P2P Workspace configuration form.

func NewP2PZKPForm

func NewP2PZKPForm(cfg *config.Config) *tuicore.FormModel

NewP2PZKPForm creates the P2P ZKP configuration form.

func NewPaymentForm

func NewPaymentForm(cfg *config.Config) *tuicore.FormModel

NewPaymentForm creates the Payment configuration form.

func NewProvenanceForm added in v0.7.0

func NewProvenanceForm(cfg *config.Config) *tuicore.FormModel

NewProvenanceForm creates the Provenance configuration form.

func NewProviderForm

func NewProviderForm(id string, cfg config.ProviderConfig) *tuicore.FormModel

NewProviderForm creates a Provider configuration form.

func NewProviderFromConfig

func NewProviderFromConfig(id string, pCfg config.ProviderConfig) provider.Provider

NewProviderFromConfig creates a lightweight provider instance from config. Returns nil if the provider cannot be created (missing API key, unknown type, etc.). Environment variable references (${VAR}) in APIKey and BaseURL are expanded.

func NewRetrievalForm added in v0.7.0

func NewRetrievalForm(cfg *config.Config) *tuicore.FormModel

NewRetrievalForm creates the Retrieval configuration form.

func NewRunLedgerForm added in v0.7.0

func NewRunLedgerForm(cfg *config.Config) *tuicore.FormModel

NewRunLedgerForm creates the RunLedger configuration form.

func NewSecurityForm

func NewSecurityForm(cfg *config.Config) *tuicore.FormModel

NewSecurityForm creates the Security configuration form.

func NewServerForm

func NewServerForm(cfg *config.Config) *tuicore.FormModel

NewServerForm creates the Server configuration form.

func NewSessionForm

func NewSessionForm(cfg *config.Config) *tuicore.FormModel

NewSessionForm creates the Session configuration form.

func NewSkillForm

func NewSkillForm(cfg *config.Config) *tuicore.FormModel

NewSkillForm creates the Skill configuration form.

func NewSmartAccountForm added in v0.5.0

func NewSmartAccountForm(cfg *config.Config) *tuicore.FormModel

NewSmartAccountForm creates the Smart Account configuration form.

func NewSmartAccountModulesForm added in v0.5.0

func NewSmartAccountModulesForm(cfg *config.Config) *tuicore.FormModel

NewSmartAccountModulesForm creates the Smart Account Modules configuration form.

func NewSmartAccountPaymasterForm added in v0.5.0

func NewSmartAccountPaymasterForm(cfg *config.Config) *tuicore.FormModel

NewSmartAccountPaymasterForm creates the Smart Account Paymaster configuration form.

func NewSmartAccountSessionForm added in v0.5.0

func NewSmartAccountSessionForm(cfg *config.Config) *tuicore.FormModel

NewSmartAccountSessionForm creates the Smart Account Session configuration form.

func NewToolsForm

func NewToolsForm(cfg *config.Config) *tuicore.FormModel

NewToolsForm creates the Tools configuration form.

func NewWorkflowForm

func NewWorkflowForm(cfg *config.Config) *tuicore.FormModel

NewWorkflowForm creates the Workflow Engine configuration form.

func ParseCustomPatterns

func ParseCustomPatterns(val string) map[string]string

ParseCustomPatterns parses a comma-separated "name:regex" string into a map.

Types

type AuthProviderItem

type AuthProviderItem struct {
	ID        string
	IssuerURL string
}

AuthProviderItem represents an OIDC provider in the list.

type AuthProvidersListModel

type AuthProvidersListModel struct {
	Providers []AuthProviderItem
	Cursor    int
	Selected  string // ID of selected provider, or "NEW"
	Deleted   string // ID of provider to delete
	Exit      bool   // True if user wants to go back
}

AuthProvidersListModel manages the OIDC provider list UI.

func NewAuthProvidersListModel

func NewAuthProvidersListModel(cfg *config.Config) AuthProvidersListModel

NewAuthProvidersListModel creates a new model from config.

func (AuthProvidersListModel) Init

func (m AuthProvidersListModel) Init() tea.Cmd

Init implements tea.Model.

func (AuthProvidersListModel) Update

Update handles key events for the OIDC provider list.

func (AuthProvidersListModel) View

func (m AuthProvidersListModel) View() string

View renders the OIDC provider list.

type Category

type Category struct {
	ID    string
	Title string
	Desc  string
	Tier  int // TierBasic or TierAdvanced
}

Category represents a configuration category in the menu.

type DepResult added in v0.6.0

type DepResult struct {
	Dependency
	Status DepStatus
}

DepResult holds the evaluated result of a single dependency check.

type DepStatus added in v0.6.0

type DepStatus int

DepStatus represents the status of a dependency.

const (
	// DepMet means the dependency is satisfied.
	DepMet DepStatus = iota
	// DepNotEnabled means the required feature is not enabled.
	DepNotEnabled
	// DepMisconfigured means the feature is enabled but misconfigured.
	DepMisconfigured
)

type Dependency added in v0.6.0

type Dependency struct {
	// CategoryID is the settings category that must be configured.
	CategoryID string
	// Label is a human-readable name shown in the prerequisite panel.
	Label string
	// Required marks whether the dependency is mandatory (vs. optional/enhancing).
	Required bool
	// Check evaluates the dependency against the current config.
	Check func(cfg *config.Config) DepStatus
	// FixHint is a short hint shown when the dependency is unmet.
	FixHint string
}

Dependency describes a single prerequisite for a feature category.

type DependencyIndex added in v0.6.0

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

DependencyIndex provides O(1) lookup of dependencies by target category ID.

func NewDependencyIndex added in v0.6.0

func NewDependencyIndex() *DependencyIndex

NewDependencyIndex builds the index from the default dependency graph.

func (*DependencyIndex) AllTransitiveUnmet added in v0.6.0

func (idx *DependencyIndex) AllTransitiveUnmet(categoryID string, cfg *config.Config) []DepResult

AllTransitiveUnmet collects all transitively unmet required dependencies. It guards against cycles via a visited set.

func (*DependencyIndex) Dependents added in v0.6.0

func (idx *DependencyIndex) Dependents(categoryID string) []string

Dependents returns the list of category IDs that depend on the given category.

func (*DependencyIndex) Evaluate added in v0.6.0

func (idx *DependencyIndex) Evaluate(categoryID string, cfg *config.Config) []DepResult

Evaluate returns evaluated dependency results for the given category.

func (*DependencyIndex) HasDependencies added in v0.6.0

func (idx *DependencyIndex) HasDependencies(categoryID string) bool

HasDependencies returns true if the category has any registered dependencies.

func (*DependencyIndex) UnmetRequired added in v0.6.0

func (idx *DependencyIndex) UnmetRequired(categoryID string, cfg *config.Config) int

UnmetRequired returns the count of unmet required dependencies for a category.

type DependencyPanel added in v0.6.0

type DependencyPanel struct {
	Results    []DepResult
	Cursor     int
	CategoryID string
}

DependencyPanel shows prerequisite status for a category. It is a pure rendering component with cursor navigation.

func NewDependencyPanel added in v0.6.0

func NewDependencyPanel(categoryID string, results []DepResult) *DependencyPanel

NewDependencyPanel creates a panel for the given category's dependency results. Returns nil if all dependencies are met (no panel needed).

func (*DependencyPanel) MoveDown added in v0.6.0

func (p *DependencyPanel) MoveDown()

MoveDown moves the cursor down.

func (*DependencyPanel) MoveUp added in v0.6.0

func (p *DependencyPanel) MoveUp()

MoveUp moves the cursor up.

func (*DependencyPanel) SelectedCategoryID added in v0.6.0

func (p *DependencyPanel) SelectedCategoryID() string

SelectedCategoryID returns the category ID at the current cursor position.

func (*DependencyPanel) SelectedIsUnmet added in v0.6.0

func (p *DependencyPanel) SelectedIsUnmet() bool

SelectedIsUnmet returns true if the currently selected dependency is unmet.

func (*DependencyPanel) StatusSummary added in v0.6.0

func (p *DependencyPanel) StatusSummary() string

StatusSummary returns a short summary like "1/3 met".

func (*DependencyPanel) UnmetCount added in v0.6.0

func (p *DependencyPanel) UnmetCount() int

UnmetCount returns the number of unmet (required) dependencies.

func (*DependencyPanel) View added in v0.6.0

func (p *DependencyPanel) View() string

View renders the dependency panel.

type Editor

type Editor struct {

	// Embedded mode
	OnSave OnSaveFunc // if set, save calls this instead of tea.Quit

	// Public status
	Completed bool
	Cancelled bool
	// contains filtered or unexported fields
}

Editor is the main bubbletea model for the settings editor.

func NewEditor

func NewEditor() *Editor

NewEditor creates a new settings editor with default config.

func NewEditorForEmbedding added in v0.7.0

func NewEditorForEmbedding(cfg *config.Config, onSave OnSaveFunc) *Editor

NewEditorForEmbedding creates a settings editor suitable for embedding in another TUI (e.g. cockpit). It skips the welcome step and uses the provided callback for save instead of calling tea.Quit.

func NewEditorWithConfig

func NewEditorWithConfig(cfg *config.Config) *Editor

NewEditorWithConfig creates a new settings editor pre-loaded with the given config.

func (*Editor) Config

func (e *Editor) Config() *config.Config

Config returns the current configuration from the editor state.

func (*Editor) Init

func (e *Editor) Init() tea.Cmd

Init implements tea.Model.

func (*Editor) Update

func (e *Editor) Update(msg tea.Msg) (tea.Model, tea.Cmd)

Update implements tea.Model.

func (*Editor) View

func (e *Editor) View() string

View implements tea.Model.

type EditorStep

type EditorStep int

EditorStep represents the current step in the settings editor.

const (
	StepWelcome EditorStep = iota
	StepMenu
	StepForm
	StepProvidersList
	StepAuthProvidersList
	StepMCPServersList
	StepSetupFlow
	StepComplete
)

type MCPServerItem added in v0.4.0

type MCPServerItem struct {
	Name      string
	Transport string
	Enabled   bool
}

MCPServerItem represents an MCP server in the list.

type MCPServersListModel added in v0.4.0

type MCPServersListModel struct {
	Servers  []MCPServerItem
	Cursor   int
	Selected string // Name of selected server, or "NEW"
	Deleted  string // Name of server to delete
	Exit     bool   // True if user wants to go back
}

MCPServersListModel manages the MCP server list UI.

func NewMCPServersListModel added in v0.4.0

func NewMCPServersListModel(cfg *config.Config) MCPServersListModel

NewMCPServersListModel creates a new model from config.

func (MCPServersListModel) Init added in v0.4.0

func (m MCPServersListModel) Init() tea.Cmd

Init implements tea.Model.

func (MCPServersListModel) Update added in v0.4.0

Update handles key events for the MCP server list.

func (MCPServersListModel) View added in v0.4.0

func (m MCPServersListModel) View() string

View renders the MCP server list.

type MenuModel struct {
	Sections []Section
	Cursor   int
	Selected string
	Width    int
	Height   int

	// Checkers for smart filters
	DirtyChecker      func(string) bool // returns true if category config has been modified
	EnabledChecker    func(string) bool // returns true if category feature is enabled
	DependencyChecker func(string) int  // returns count of unmet required dependencies
	// contains filtered or unexported fields
}

MenuModel manages the configuration menu.

func NewMenuModel

func NewMenuModel() MenuModel

NewMenuModel creates a new menu model with grouped configuration categories.

func (m MenuModel) ActiveSectionTitle() string

ActiveSectionTitle returns the title of the currently active section (Level 2).

func (m MenuModel) AllCategories() []Category

AllCategories returns a flat list of all categories (public, for tests).

func (m MenuModel) InCategoryLevel() bool

InCategoryLevel returns true when the menu is at Level 2 (categories within a section).

func (m MenuModel) Init() tea.Cmd

Init implements tea.Model.

func (m MenuModel) IsSearching() bool

IsSearching returns true when the menu is in search mode.

func (m MenuModel) ShowAdvanced() bool

ShowAdvanced returns the current advanced mode state.

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

Update handles key events for the menu.

func (m MenuModel) View() string

View renders the configuration menu.

type OnSaveFunc added in v0.7.0

type OnSaveFunc func(cfg *config.Config, dirtyKeys map[string]bool) error

OnSaveFunc is the callback type for embedded-mode save. It receives the current config and a map of dirty (modified) field keys.

type ProviderItem

type ProviderItem struct {
	ID   string
	Type string
}

ProviderItem represents a provider in the list.

type ProvidersListModel

type ProvidersListModel struct {
	Providers []ProviderItem
	Cursor    int
	Selected  string // ID of selected provider, or "NEW"
	Deleted   string // ID of provider to delete
	Exit      bool   // True if user wants to go back
}

ProvidersListModel manages the provider list UI.

func NewProvidersListModel

func NewProvidersListModel(cfg *config.Config) ProvidersListModel

NewProvidersListModel creates a new model from config.

func (ProvidersListModel) Init

func (m ProvidersListModel) Init() tea.Cmd

Init implements tea.Model.

func (ProvidersListModel) Update

Update handles key events for the provider list.

func (ProvidersListModel) View

func (m ProvidersListModel) View() string

View renders the provider list.

type Section

type Section struct {
	Title      string
	Categories []Category
}

Section groups related categories under a heading.

type SetupFlow added in v0.6.0

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

SetupFlow chains dependency forms before the target form.

func NewSetupFlow added in v0.6.0

func NewSetupFlow(targetID string, unmetDeps []DepResult, configState *tuicore.ConfigState) *SetupFlow

NewSetupFlow creates a guided setup flow from unmet transitive dependencies. Returns nil if fewer than 1 unmet dependency (no flow needed).

func (*SetupFlow) ActiveForm added in v0.6.0

func (sf *SetupFlow) ActiveForm() *tuicore.FormModel

ActiveForm returns the form model for the current step.

func (*SetupFlow) Cancel added in v0.6.0

func (sf *SetupFlow) Cancel()

Cancel cancels the setup flow.

func (*SetupFlow) NextStep added in v0.6.0

func (sf *SetupFlow) NextStep()

NextStep saves the current form and advances to the next step.

func (*SetupFlow) SkipStep added in v0.6.0

func (sf *SetupFlow) SkipStep()

SkipStep marks the current step as skipped and advances.

func (*SetupFlow) State added in v0.6.0

func (sf *SetupFlow) State() SetupFlowState

State returns the current flow state.

func (*SetupFlow) TargetID added in v0.6.0

func (sf *SetupFlow) TargetID() string

TargetID returns the target category that triggered this flow.

func (*SetupFlow) View added in v0.6.0

func (sf *SetupFlow) View() string

View renders the setup flow UI.

type SetupFlowState added in v0.6.0

type SetupFlowState int

SetupFlowState tracks the guided setup flow lifecycle.

const (
	SetupInProgress SetupFlowState = iota
	SetupCompleted
	SetupCancelled
)

type SetupStep added in v0.6.0

type SetupStep struct {
	CategoryID string
	Label      string
	Completed  bool
	Skipped    bool
}

SetupStep represents a single step in the guided setup flow.

Jump to

Keyboard shortcuts

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