Documentation
¶
Overview ¶
Package cli provides command-line interface commands for ntm. activity.go implements the `ntm activity` command for displaying agent activity states.
Package cli provides command-line interface commands for ntm. work.go implements the `ntm work` command for intelligent work distribution.
Index ¶
- Constants
- Variables
- func AccentText(text string) string
- func Badge(text string, color lipgloss.Color) string
- func BoldText(text string) string
- func CheckCycles(verbose bool) ([][]string, error)
- func ClearSpawnState(projectDir string) error
- func EnableProfilingIfRequested()
- func ErrorMessage(msg string) string
- func Execute() error
- func FilterCyclicBeads(beads []bv.BeadPreview, verbose bool) ([]bv.BeadPreview, int)
- func FormatRecoveryPrompt(rc *RecoveryContext, agentType AgentType) string
- func FormatTimestamp(t time.Time) string
- func GetFormatter() *output.Formatter
- func GetOutputFormat() output.Format
- func GetProjectRoot() string
- func HasAnyTag(paneTags, filterTags []string) bool
- func InfoMessage(msg string) string
- func IsBeadInCycle(beadID string, cycles [][]string) bool
- func IsInteractive(w io.Writer) bool
- func IsJSONOutput() bool
- func KeyValue(key, value string, keyWidth int) string
- func MaybeRunStartupCleanup(enabled bool, maxAgeHours int, verbose bool)
- func NewAgentSpecsValue(agentType AgentType, specs *AgentSpecs) *agentSpecsValue
- func OnBeadCompletion(session string, completedBeadID string, verbose bool) ([]bv.BeadPreview, error)
- func PrintCompactHelp(w io.Writer)
- func PrintMinimalHelp(w io.Writer)
- func PrintProfilingIfEnabled()
- func PrintStunningHelp(w io.Writer)
- func ProfileConfigLoad() func()
- func ResolveCassContext(query, dir string) (string, error)
- func ResolveModel(agentType AgentType, modelSpec string) string
- func RunPreflightCheck(prompt string, strict bool) (bool, []string, error)
- func SanitizeFilename(name string) string
- func SectionDivider(width int) string
- func SectionHeader(title string) string
- func SpawnStateExists(projectDir string) bool
- func SubtleText(text string) string
- func SuccessMessage(msg string) string
- func ValidateModelAlias(agentType AgentType, alias string) error
- func WarningMessage(msg string) string
- func WatchForCompletions(opts *AutoReassignOptions) error
- type AddOptions
- type AdoptOptions
- type AdoptResult
- type AdoptedAgentCounts
- type AdoptedPaneInfo
- type AgentFilter
- type AgentMailStatus
- type AgentSpawnContext
- type AgentSpec
- type AgentSpecs
- type AgentStats
- type AgentType
- type Alert
- type AlertsResponse
- type AllocationOutput
- type AnalyticsStats
- type ApprovalResult
- type AssignCommandOptions
- type AssignEnvelope
- type AssignError
- type AssignOutputEnhanced
- type AssignSummaryEnhanced
- type AssignmentItem
- type AtRiskItem
- type AutoReassignOptions
- type AutoReassignResult
- type AutomationResponse
- type BatchPrompt
- type BatchPromptResult
- type BatchResult
- type BeadEvent
- type BeadHistory
- type BlockedResponse
- type BurndownProgress
- type BurndownResponse
- type CheckDCGVerdict
- type CheckPolicyVerdict
- type CheckResponse
- type CleanupStats
- type ClearAllResult
- type ClearAssignmentResult
- type ClearAssignmentsData
- type ClearAssignmentsEnvelope
- type ClearAssignmentsError
- type ClearAssignmentsSummary
- type CommitInfo
- type ConfigCheck
- type ConfigLocation
- type ConfirmRotationResult
- type ControllerInput
- type ControllerResponse
- type CopyOptions
- type DaemonCheck
- type DepCheck
- type DependencyAwareResult
- type DepsInput
- type DirectAssignData
- type DirectAssignFileReservations
- type DirectAssignItem
- type DirectAssignResult
- type DoctorReport
- type ErrorEntry
- type ErrorsOptions
- type ErrorsResult
- type ExtractResponse
- type FlatAgent
- type ForceReleaseResult
- type ForecastItem
- type ForecastResponse
- type GitHubAsset
- type GitHubRelease
- type GitInfo
- type GitStatusResult
- type GitSyncResult
- type GraphResponse
- type GrepMatch
- type GrepOptions
- type GrepResult
- type GuardsInstallResponse
- type GuardsStatusResponse
- type GuardsUninstallResponse
- type HealthOutput
- type HistoryListEntry
- type HistoryListResult
- type HistoryResponse
- type HistoryShowResult
- type HistoryStats
- type ImpactResponse
- type ImpactResult
- type InitWizardModel
- type InvariantCheck
- type LabelDependency
- type LabelFlowResponse
- type LabelHealth
- type LabelHealthResponse
- type LabelHealthResults
- type LockResult
- type LocksResult
- type OpenAPIGenerateInput
- type OpenAPIGenerateResponse
- type PaneOutput
- type PendingRotationInfo
- type PendingRotationsResult
- type PersonaAgentInfo
- type PersonaSpec
- type PersonaSpecs
- type PolicyRulesDetail
- type PolicyShowResponse
- type PolicyStats
- type PolicyValidateResponse
- type PreflightFinding
- type PreflightInput
- type PreflightResult
- type ProfileSwitchResult
- type ProjectType
- type PromptStatus
- type PullResult
- type PushResult
- type ReassignData
- type ReassignEnvelope
- type ReassignError
- type RecipeInfo
- type RecipeShowResult
- type RecipesListResult
- type RecoveryAssignmentSummary
- type RecoveryBVSummary
- type RecoveryBead
- type RecoveryCMMemories
- type RecoveryCMRule
- type RecoveryCheckpoint
- type RecoveryContext
- type RecoveryError
- type RecoveryMessage
- type RecoverySession
- type RedactionSummary
- type RenewResult
- type ResolvedPersonaAgent
- type ResumeHandoffInfo
- type ResumeInjectInfo
- type ResumeResult
- type ResumeSpawnInfo
- type RetryData
- type RetryItem
- type RetrySkippedItem
- type RetrySummary
- type RotationHistoryResult
- type RotationStatsResult
- type RuleSummary
- type SafetyStatusResponse
- type ScopeChange
- type SearchResponse
- type SearchResult
- type SendDryRunEntry
- type SendDryRunResult
- type SendOptions
- type SendResult
- type SendRoutingResult
- type SendTarget
- type SendTargets
- type SessionAttachInput
- type SessionCreateInput
- type SessionHealthInput
- type SessionInterruptInput
- type SessionKillInput
- type SessionListInput
- type SessionOutput
- type SessionResolution
- type SessionResolveOptions
- type SessionStatusInput
- type SessionSummary
- type SessionTemplateInfo
- type SessionTemplateShowResult
- type SessionTemplatesListResult
- type SessionViewInput
- type SessionZoomInput
- type SessionsListResult
- type SessionsRestoreResult
- type SessionsSaveResult
- type SessionsShowResult
- type SetupResponse
- type SkippedItem
- type SpawnAssignResult
- type SpawnContext
- type SpawnInitResult
- type SpawnOptions
- type SpawnState
- func (s *SpawnState) AddPrompt(pane, paneID string, order int, scheduledAt time.Time)
- func (s *SpawnState) GetPromptStatuses() []PromptStatus
- func (s *SpawnState) IsComplete() bool
- func (s *SpawnState) MarkComplete()
- func (s *SpawnState) MarkSent(paneID string)
- func (s *SpawnState) PendingCount() int
- func (s *SpawnState) Save(projectDir string) error
- func (s *SpawnState) TimeUntilNextPrompt() time.Duration
- type StyledTable
- func (t *StyledTable) AddRow(cols ...string)
- func (t *StyledTable) Render() string
- func (t *StyledTable) RowCount() int
- func (t *StyledTable) String() string
- func (t *StyledTable) WithFooter(footer string) *StyledTable
- func (t *StyledTable) WithStyle(style TableStyle) *StyledTable
- func (t *StyledTable) WithTitle(title string) *StyledTable
- type SwarmPlanOutput
- type TableStyle
- type TemplateListItem
- type TemplateShowOutput
- type TemplateVariableOutput
- type TimelineCleanupResult
- type TimelineEventStats
- type TimelineListResult
- type TimelineShowResult
- type TimelineStatsResult
- type ToolCheck
- type UnblockedBead
- type UnlockResult
- type ValidationIssue
- type ValidationReport
- type ValidationResult
- type ValidationSummary
- type VersionInput
- type WaitAgentInfo
- type WaitCondition
- type WaitErrorStateError
- type WaitOptions
- type WaitResult
- type WaitTimeoutError
- type WatchLoop
- type WizardResult
- type WizardStep
- type WorkflowInfo
- type WorkflowShowResult
- type WorkflowsListResult
Constants ¶
const CompleteIdleThreshold = 5 * time.Second
CompleteIdleThreshold is the time without activity to consider "complete".
const DefaultWaitPoll = 2 * time.Second
DefaultWaitPoll is the default polling interval.
const DefaultWaitTimeout = 5 * time.Minute
DefaultWaitTimeout is the default maximum wait time.
Variables ¶
var ( // Build information - set by goreleaser via ldflags Version = "dev" Commit = "none" Date = "unknown" BuiltBy = "unknown" )
Functions ¶
func CheckCycles ¶
CheckCycles returns any dependency cycles detected in the current project. Beads in cycles should be excluded from automatic assignment. Enhanced with retry logic and comprehensive error handling.
func ClearSpawnState ¶
ClearSpawnState removes the spawn state file.
func EnableProfilingIfRequested ¶
func EnableProfilingIfRequested()
EnableProfilingIfRequested enables profiling if --profile-startup was set. Call this at the start of command execution.
func ErrorMessage ¶
ErrorMessage renders an error message with icon
func FilterCyclicBeads ¶
func FilterCyclicBeads(beads []bv.BeadPreview, verbose bool) ([]bv.BeadPreview, int)
FilterCyclicBeads removes beads that are part of dependency cycles from the list.
func FormatRecoveryPrompt ¶
func FormatRecoveryPrompt(rc *RecoveryContext, agentType AgentType) string
FormatRecoveryPrompt formats the full recovery context as a prompt injection. This combines beads, Agent Mail messages, file reservations, and CM memories into a single markdown section for agent injection. The agentType parameter controls formatting: Codex agents need brackets escaped because zsh interprets [] as glob patterns.
func FormatTimestamp ¶ added in v1.7.0
FormatTimestamp formats a time for robot output.
func GetFormatter ¶
GetFormatter returns a formatter configured for the current output mode
func GetOutputFormat ¶
GetOutputFormat returns the current output format
func GetProjectRoot ¶
func GetProjectRoot() string
GetProjectRoot returns the git root of the current working directory, or the cwd itself if no git root is found or on error.
func HasAnyTag ¶
HasAnyTag checks if any of the pane's tags match any of the filter tags. Comparison is case-insensitive.
func InfoMessage ¶
InfoMessage renders an info message with icon
func IsBeadInCycle ¶
IsBeadInCycle checks if a bead ID is part of any detected dependency cycle.
func IsInteractive ¶
IsInteractive returns true when the writer is a terminal. The pane/session selectors rely on user input; in tests or piped execution they should not run.
func MaybeRunStartupCleanup ¶
MaybeRunStartupCleanup runs cleanup if auto cleanup is enabled and enough time has passed since the last cleanup. This prevents cleanup from running on every NTM command invocation.
func NewAgentSpecsValue ¶
func NewAgentSpecsValue(agentType AgentType, specs *AgentSpecs) *agentSpecsValue
AgentSpecsValue creates a flag value that accumulates into the given slice with the specified agent type
func OnBeadCompletion ¶
func OnBeadCompletion(session string, completedBeadID string, verbose bool) ([]bv.BeadPreview, error)
OnBeadCompletion is called when an assigned bead is marked as completed. It performs the unblock check and returns beads ready for assignment. This is designed to be called from: - Assignment store status update (when bead marked completed) - Watch mode polling - Manual completion notification
func PrintCompactHelp ¶
PrintCompactHelp prints a more compact version for --help flag
func PrintMinimalHelp ¶
PrintMinimalHelp prints a minimal help showing only essential commands
func PrintProfilingIfEnabled ¶
func PrintProfilingIfEnabled()
PrintProfilingIfEnabled prints profiling output if enabled. Call this at the end of command execution.
func PrintStunningHelp ¶
PrintStunningHelp prints a beautifully styled help output
func ProfileConfigLoad ¶
func ProfileConfigLoad() func()
ProfileConfigLoad profiles config loading if profiling is enabled. Returns a function to call when loading is complete.
func ResolveCassContext ¶
ResolveCassContext queries CASS for relevant past sessions based on a query string and returns a formatted markdown summary.
func ResolveModel ¶
ResolveModel resolves a model alias to its full name using config Returns the default model if alias is empty
func RunPreflightCheck ¶ added in v1.7.0
RunPreflightCheck is a helper for use by other commands (like send). Returns (blocked, warnings, error).
func SanitizeFilename ¶
SanitizeFilename removes/replaces characters that are invalid in filenames. It ensures the filename is safe for the filesystem and truncated correctly.
func SectionDivider ¶
SectionDivider renders a subtle divider line
func SectionHeader ¶
SectionHeader renders a styled section header
func SpawnStateExists ¶
SpawnStateExists returns whether a spawn state file exists.
func SuccessMessage ¶
SuccessMessage renders a success message with icon
func ValidateModelAlias ¶
ValidateModelAlias checks if a model alias exists in config
func WarningMessage ¶
WarningMessage renders a warning message with icon
func WatchForCompletions ¶
func WatchForCompletions(opts *AutoReassignOptions) error
WatchForCompletions starts a background watcher that monitors for bead completions and triggers auto-reassignment. This implements the active monitoring component.
Types ¶
type AddOptions ¶
type AddOptions struct {
Session string
Agents AgentSpecs
PluginMap map[string]plugins.AgentPlugin
PersonaMap map[string]*persona.Persona
CassContextQuery string
NoCassContext bool
Prompt string
}
AddOptions configures agent addition
type AdoptOptions ¶
type AdoptOptions struct {
Session string
AutoName bool
DryRun bool
CCPanes []int
CodPanes []int
GmiPanes []int
UserPanes []int
}
AdoptOptions configures session adoption
type AdoptResult ¶
type AdoptResult struct {
Success bool `json:"success"`
Session string `json:"session"`
AdoptedPanes []AdoptedPaneInfo `json:"adopted_panes"`
TotalPanes int `json:"total_panes"`
Agents AdoptedAgentCounts `json:"agents"`
DryRun bool `json:"dry_run"`
Error string `json:"error,omitempty"`
}
AdoptResult represents the result of an adopt operation
func (*AdoptResult) JSON ¶
func (r *AdoptResult) JSON() interface{}
type AdoptedAgentCounts ¶
type AdoptedAgentCounts struct {
Claude int `json:"cc"`
Codex int `json:"cod"`
Gemini int `json:"gmi"`
User int `json:"user"`
}
AdoptedAgentCounts tracks agent counts by type
func (AdoptedAgentCounts) Total ¶
func (a AdoptedAgentCounts) Total() int
type AdoptedPaneInfo ¶
type AdoptedPaneInfo struct {
PaneID string `json:"pane_id"`
PaneIndex int `json:"pane_index"`
AgentType string `json:"agent_type"`
OldTitle string `json:"old_title,omitempty"`
NewTitle string `json:"new_title"`
NTMIndex int `json:"ntm_index"`
}
AdoptedPaneInfo describes a pane that was adopted
type AgentFilter ¶
AgentFilter specifies which agent types to target
func (AgentFilter) IsEmpty ¶
func (f AgentFilter) IsEmpty() bool
type AgentMailStatus ¶
type AgentMailStatus struct {
Available bool `json:"available"`
RegisteredAgent string `json:"registered_agent,omitempty"`
LockCount int `json:"lock_count"`
ConflictCount int `json:"conflict_count"`
}
AgentMailStatus contains Agent Mail coordination info.
type AgentSpawnContext ¶
type AgentSpawnContext struct {
SpawnContext
Order int // 1-based position in spawn order (1, 2, 3...)
StaggerDelay time.Duration // Delay before this agent receives its prompt
}
AgentSpawnContext holds spawn context for a specific agent.
func (*AgentSpawnContext) AnnotatePrompt ¶
func (asc *AgentSpawnContext) AnnotatePrompt(prompt string, includeAnnotation bool) string
AnnotatePrompt prepends the spawn context annotation to the prompt. Returns the original prompt unchanged if annotation is empty.
func (*AgentSpawnContext) EnvVarPrefix ¶
func (asc *AgentSpawnContext) EnvVarPrefix() string
EnvVarPrefix returns a shell command prefix that sets the spawn context for the following command (VAR=... form).
We intentionally avoid `export ...;` here because callers often wrap the command as `cd <dir> && <command>`, and a `;` would break the conditional chain.
Example: "NTM_SPAWN_ORDER=2 NTM_SPAWN_TOTAL=4 NTM_SPAWN_BATCH_ID='spawn-abc123' "
func (*AgentSpawnContext) EnvVars ¶
func (asc *AgentSpawnContext) EnvVars() map[string]string
EnvVars returns environment variables to set for this agent. These variables allow agents to programmatically access their spawn context.
func (*AgentSpawnContext) PromptAnnotation ¶
func (asc *AgentSpawnContext) PromptAnnotation() string
PromptAnnotation returns a minimal context annotation for the prompt. Only used when stagger is enabled to help agents understand their position. Format: "[Spawn context: Agent 2/4, batch spawn-abc123]"
type AgentSpec ¶
type AgentSpec struct {
Type AgentType
Count int
Model string // Optional, empty = use default model
}
AgentSpec represents a parsed agent specification with optional model
func ParseAgentSpec ¶
ParseAgentSpec parses a single agent specification string Format: "N" or "N:model" where N is count, model is optional alias
type AgentSpecs ¶
type AgentSpecs []AgentSpec
AgentSpecs is a slice of AgentSpec that implements the flag.Value interface for accumulating multiple agent specifications
func ToAgentSpecs ¶
func ToAgentSpecs(resolved []ResolvedPersonaAgent) (AgentSpecs, map[int]string)
ToAgentSpecs converts resolved persona agents to AgentSpecs for spawning Returns the agent specs and a map from agent index to persona name for pane naming
func (AgentSpecs) ByType ¶
func (s AgentSpecs) ByType(t AgentType) AgentSpecs
ByType returns specs filtered by agent type
func (AgentSpecs) Flatten ¶
func (s AgentSpecs) Flatten() []FlatAgent
Flatten expands all specs into individual agent entries
func (*AgentSpecs) Set ¶
func (s *AgentSpecs) Set(value string) error
Set implements flag.Value for parsing and accumulating specs
func (AgentSpecs) TotalCount ¶
func (s AgentSpecs) TotalCount() int
TotalCount returns the sum of all agent counts
type AgentStats ¶
type AgentStats struct {
Count int `json:"count"`
Prompts int `json:"prompts"`
CharsSent int `json:"chars_sent"`
TokensEst int `json:"tokens_estimated"`
}
AgentStats holds per-agent-type statistics.
type Alert ¶
type Alert struct {
Type string `json:"type"`
Severity string `json:"severity"`
Message string `json:"message"`
IssueID string `json:"issue_id,omitempty"`
Labels []string `json:"labels,omitempty"`
}
Alert represents a bv alert
type AlertsResponse ¶
type AlertsResponse struct {
Alerts []Alert `json:"alerts"`
}
AlertsResponse contains bv alerts
type AllocationOutput ¶
type AnalyticsStats ¶
type AnalyticsStats struct {
Period string `json:"period"`
TotalSessions int `json:"total_sessions"`
TotalAgents int `json:"total_agents"`
TotalPrompts int `json:"total_prompts"`
TotalCharsSent int `json:"total_chars_sent"`
TotalTokensEst int `json:"total_tokens_estimated"`
AgentBreakdown map[string]AgentStats `json:"agent_breakdown"`
SessionDetails []SessionSummary `json:"sessions,omitempty"`
ErrorCount int `json:"error_count"`
ErrorTypes map[string]int `json:"error_types,omitempty"`
}
AnalyticsStats holds aggregated analytics data.
type ApprovalResult ¶
type ApprovalResult struct {
Success bool `json:"success"`
ID string `json:"id"`
Action string `json:"action"`
Resource string `json:"resource"`
Status string `json:"status"`
Error string `json:"error,omitempty"`
}
ApprovalResult represents the result of an approval operation.
type AssignCommandOptions ¶
type AssignCommandOptions struct {
Session string
BeadIDs []string
Strategy string
Limit int
AgentTypeFilter string
Template string
TemplateFile string
Verbose bool
Quiet bool
Timeout time.Duration
ReserveFiles bool // Reserve file paths via Agent Mail before assignment
// Direct pane assignment options
Pane int // Direct pane assignment (-1 = disabled)
Force bool // Force assignment even if pane busy
IgnoreDeps bool // Ignore dependency checks
Prompt string // Custom prompt for direct assignment
// Clear assignment options
Clear string // Clear specific bead assignments (comma-separated)
ClearPane int // Clear all assignments for a pane (-1 = disabled)
}
AssignCommandOptions holds all options for the assign command
type AssignEnvelope ¶
type AssignEnvelope[T any] struct { Command string `json:"command"` Subcommand string `json:"subcommand,omitempty"` Session string `json:"session"` Timestamp string `json:"timestamp"` Success bool `json:"success"` Data *T `json:"data,omitempty"` Warnings []string `json:"warnings"` Error *AssignError `json:"error,omitempty"` }
AssignEnvelope is the standard JSON envelope for assign operations.
type AssignError ¶
type AssignError struct {
Code string `json:"code"`
Message string `json:"message"`
Details map[string]interface{} `json:"details,omitempty"`
}
AssignError represents an error in assign JSON output.
type AssignOutputEnhanced ¶
type AssignOutputEnhanced struct {
Strategy string `json:"strategy"`
Assignments []AssignmentItem `json:"assignments"`
Skipped []SkippedItem `json:"skipped"`
Summary AssignSummaryEnhanced `json:"summary"`
Errors []string `json:"-"`
}
AssignOutputEnhanced is the enhanced output structure matching the spec.
type AssignSummaryEnhanced ¶
type AssignSummaryEnhanced struct {
TotalBeadCount int `json:"total_bead_count"`
ActionableCount int `json:"actionable_count"` // Beads with no blockers
BlockedCount int `json:"blocked_count"` // Beads blocked by dependencies
AssignedCount int `json:"assigned_count"`
SkippedCount int `json:"skipped_count"`
IdleAgents int `json:"idle_agent_count"`
CycleWarningCount int `json:"cycle_warning_count,omitempty"` // Beads in dependency cycles
}
AssignSummaryEnhanced contains summary statistics
type AssignmentItem ¶
type AssignmentItem struct {
BeadID string `json:"bead_id"`
BeadTitle string `json:"bead_title"`
Pane int `json:"pane"`
AgentType string `json:"agent_type"`
AgentName string `json:"agent_name"`
Status string `json:"status"` // assigned|working|completed|failed
PromptSent bool `json:"prompt_sent"` // Whether prompt was sent
AssignedAt string `json:"assigned_at"` // ISO8601 timestamp
Score float64 `json:"score,omitempty"`
Reasoning string `json:"-"`
}
AssignmentItem represents a single assignment in JSON output.
type AtRiskItem ¶
type AtRiskItem struct {
ID string `json:"id"`
Title string `json:"title"`
Risk string `json:"risk"` // behind_schedule, blocked, scope_creep
Reasons []string `json:"reasons"`
}
AtRiskItem represents an at-risk sprint item
type AutoReassignOptions ¶
type AutoReassignOptions struct {
Session string
Strategy string
Template string
TemplateFile string
ReserveFiles bool
Verbose bool
Quiet bool
Timeout time.Duration
AgentTypeFilter string
}
AutoReassignOptions contains options for auto-reassignment
type AutoReassignResult ¶
type AutoReassignResult struct {
TriggerBeadID string `json:"trigger_bead_id"`
NewlyUnblocked []UnblockedBead `json:"newly_unblocked"`
Assignments []AssignmentItem `json:"assignments"`
Skipped []SkippedItem `json:"skipped"`
IdleAgents int `json:"idle_agents"`
Errors []string `json:"errors,omitempty"`
CyclesDetected [][]string `json:"cycles_detected,omitempty"`
CompletionTime time.Time `json:"completion_time"`
}
AutoReassignResult contains the result of an auto-reassignment operation
func PerformAutoReassignment ¶
func PerformAutoReassignment(completedBeadID string, opts *AutoReassignOptions) (*AutoReassignResult, error)
PerformAutoReassignment handles automatic reassignment when a bead completes. This is the main entry point for dependency-aware auto-reassignment. It: 1. Detects newly unblocked beads after the completion 2. Finds idle agents that can take new work 3. Assigns unblocked beads to idle agents using the specified strategy 4. Handles file reservations and prompt generation
func TriggerCompletionCheck ¶
func TriggerCompletionCheck(session, completedBeadID string, opts *AutoReassignOptions) (*AutoReassignResult, error)
TriggerCompletionCheck manually triggers a completion check and auto-reassignment. This can be called from external completion notifications or manual triggers.
type AutomationResponse ¶
type AutomationResponse struct {
output.TimestampedResponse
AutoCommit bool `json:"auto_commit"`
AutoPush bool `json:"auto_push"`
ForceRelease string `json:"force_release"`
Modified bool `json:"modified,omitempty"`
}
AutomationResponse is the JSON output for automation settings.
type BatchPrompt ¶ added in v1.7.0
type BatchPromptResult ¶
type BatchPromptResult struct {
Index int `json:"index"`
PromptPreview string `json:"prompt_preview"`
Success bool `json:"success"`
Targets []int `json:"targets,omitempty"`
Delivered int `json:"delivered"`
Error string `json:"error,omitempty"`
Skipped bool `json:"skipped,omitempty"`
}
BatchPromptResult represents the result of sending a single prompt in a batch
type BatchResult ¶
type BatchResult struct {
Success bool `json:"success"`
Session string `json:"session"`
Total int `json:"batch_total"`
Delivered int `json:"batch_delivered"`
Failed int `json:"batch_failed"`
Skipped int `json:"batch_skipped"`
Results []BatchPromptResult `json:"results"`
Error string `json:"error,omitempty"`
}
BatchResult represents the JSON output for batch send operations
type BeadEvent ¶
type BeadEvent struct {
Timestamp time.Time `json:"timestamp"`
Event string `json:"event"`
Status string `json:"status,omitempty"`
}
BeadEvent represents a bead state change
type BeadHistory ¶
type BeadHistory struct {
ID string `json:"id"`
Title string `json:"title"`
Events []BeadEvent `json:"events"`
Commits []string `json:"commits"`
Milestones []string `json:"milestones"`
}
BeadHistory contains history for a single bead
type BlockedResponse ¶
type BlockedResponse struct {
output.TimestampedResponse
Entries []policy.BlockedEntry `json:"entries"`
Count int `json:"count"`
}
BlockedResponse is the JSON output for blocked commands.
type BurndownProgress ¶
type BurndownProgress struct {
TotalPoints int `json:"total_points"`
CompletedPoints int `json:"completed_points"`
PercentComplete float64 `json:"percent_complete"`
DaysRemaining int `json:"days_remaining"`
}
BurndownProgress contains progress metrics
type BurndownResponse ¶
type BurndownResponse struct {
Sprint string `json:"sprint"`
Progress BurndownProgress `json:"progress"`
ScopeChanges []ScopeChange `json:"scope_changes,omitempty"`
AtRisk []AtRiskItem `json:"at_risk,omitempty"`
}
BurndownResponse contains sprint burndown data
type CheckDCGVerdict ¶ added in v1.7.0
type CheckPolicyVerdict ¶ added in v1.7.0
type CheckResponse ¶
type CheckResponse struct {
output.TimestampedResponse
Command string `json:"command"`
Action string `json:"action"` // allow, block, approve
Pattern string `json:"pattern,omitempty"`
Reason string `json:"reason,omitempty"`
Policy *CheckPolicyVerdict `json:"policy,omitempty"`
DCG *CheckDCGVerdict `json:"dcg,omitempty"`
}
CheckResponse is the JSON output for safety check.
type CleanupStats ¶
type CleanupStats struct {
TotalFiles int
TotalSize int64
DeletedFiles int
DeletedSize int64
Errors int
}
CleanupStats holds statistics from a cleanup operation
func RunStartupCleanup ¶
func RunStartupCleanup(maxAgeHours int, verbose bool) (CleanupStats, error)
RunStartupCleanup performs a silent cleanup of stale NTM temp files. This is called during startup if auto cleanup is enabled in config. It returns the cleanup stats and any error encountered.
type ClearAllResult ¶
type ClearAllResult struct {
Pane int `json:"pane"`
AgentType string `json:"agent_type"`
Success bool `json:"success"`
Error string `json:"error,omitempty"`
ClearedBeads []ClearAssignmentResult `json:"cleared_beads"`
}
ClearAllResult represents result of clearing all assignments for a pane.
type ClearAssignmentResult ¶
type ClearAssignmentResult struct {
BeadID string `json:"bead_id"`
BeadTitle string `json:"bead_title,omitempty"`
PreviousPane int `json:"previous_pane,omitempty"`
PreviousAgent string `json:"previous_agent,omitempty"`
PreviousAgentType string `json:"previous_agent_type,omitempty"`
PreviousStatus string `json:"previous_status,omitempty"`
AssignmentFound bool `json:"assignment_found"`
FileReservationsReleased bool `json:"file_reservations_released"`
FilesReleased []string `json:"files_released,omitempty"`
Success bool `json:"success"`
Error string `json:"error,omitempty"`
ErrorCode string `json:"error_code,omitempty"`
}
ClearAssignmentResult represents the result of clearing a single assignment.
type ClearAssignmentsData ¶
type ClearAssignmentsData struct {
Cleared []ClearAssignmentResult `json:"cleared"`
Summary ClearAssignmentsSummary `json:"summary"`
Pane *int `json:"pane,omitempty"`
AgentType string `json:"agent_type,omitempty"`
}
ClearAssignmentsData is the data payload for clear operations.
type ClearAssignmentsEnvelope ¶
type ClearAssignmentsEnvelope struct {
Command string `json:"command"`
Subcommand string `json:"subcommand"`
Session string `json:"session"`
Timestamp string `json:"timestamp"`
Success bool `json:"success"`
Data *ClearAssignmentsData `json:"data,omitempty"`
Warnings []string `json:"warnings"`
Error *ClearAssignmentsError `json:"error,omitempty"`
}
ClearAssignmentsEnvelope is the standard JSON envelope for clear operations.
type ClearAssignmentsError ¶
type ClearAssignmentsError struct {
Code string `json:"code"`
Message string `json:"message"`
Details map[string]interface{} `json:"details,omitempty"`
}
ClearAssignmentsError represents an error in the clear envelope.
type ClearAssignmentsSummary ¶
type ClearAssignmentsSummary struct {
ClearedCount int `json:"cleared_count"`
ReservationsReleased int `json:"reservations_released"`
FailedCount int `json:"failed_count,omitempty"`
}
ClearAssignmentsSummary provides a summary of a clear operation.
type CommitInfo ¶
type CommitInfo struct {
Hash string `json:"hash"`
Timestamp time.Time `json:"timestamp"`
Message string `json:"message"`
Beads []string `json:"beads,omitempty"`
}
CommitInfo contains commit details
type ConfigCheck ¶
type ConfigCheck struct {
Name string `json:"name"`
Valid bool `json:"valid"`
Status string `json:"status"`
Message string `json:"message,omitempty"`
}
ConfigCheck represents a configuration check result
type ConfigLocation ¶
ConfigLocation represents a discovered config file.
type ConfirmRotationResult ¶
type ConfirmRotationResult struct {
AgentID string `json:"agent_id"`
Action string `json:"action"`
Success bool `json:"success"`
Message string `json:"message"`
}
ConfirmRotationResult contains the confirmation result
func (*ConfirmRotationResult) JSON ¶
func (r *ConfirmRotationResult) JSON() interface{}
type ControllerInput ¶
type ControllerInput struct {
Session string `json:"session"`
AgentType string `json:"agent_type,omitempty"`
PromptFile string `json:"prompt_file,omitempty"`
NoPrompt bool `json:"no_prompt,omitempty"`
}
ControllerInput is the kernel input for sessions.controller.
type ControllerResponse ¶
type ControllerResponse struct {
output.TimestampedResponse
Session string `json:"session"`
PaneID string `json:"pane_id"`
PaneIndex int `json:"pane_index"`
AgentType string `json:"agent_type"`
PromptUsed string `json:"prompt_used,omitempty"`
AgentCount int `json:"agent_count"`
AgentList string `json:"agent_list,omitempty"`
}
ControllerResponse is the JSON output for the controller command.
type CopyOptions ¶
type CopyOptions struct {
Last int
Pattern string
Code bool
Headers bool
Output string
Quiet bool
PaneSpec string
}
CopyOptions defines options for the copy command
type DaemonCheck ¶
type DaemonCheck struct {
Name string `json:"name"`
Running bool `json:"running"`
Port int `json:"port,omitempty"`
PID int `json:"pid,omitempty"`
Status string `json:"status"`
Message string `json:"message,omitempty"`
}
DaemonCheck represents a daemon health check result
type DepCheck ¶
type DepCheck struct {
Name string `json:"name"`
Installed bool `json:"installed"`
Version string `json:"version,omitempty"`
MinVersion string `json:"min_version,omitempty"`
Status string `json:"status"`
Message string `json:"message,omitempty"`
}
DepCheck represents a dependency check result
type DependencyAwareResult ¶
type DependencyAwareResult struct {
CompletedBeadID string `json:"completed_bead_id"`
NewlyUnblocked []UnblockedBead `json:"newly_unblocked"`
CyclesDetected [][]string `json:"cycles_detected,omitempty"`
Errors []string `json:"errors,omitempty"`
}
DependencyAwareResult contains the result of an unblock check
func GetNewlyUnblockedBeads ¶
func GetNewlyUnblockedBeads(completedBeadID string, verbose bool) (*DependencyAwareResult, error)
GetNewlyUnblockedBeads checks what beads are now unblocked after a bead completion. This is the core function for dependency-aware reassignment. It refreshes the dependency graph from bv and identifies beads that: 1. Were previously blocked by the completed bead 2. Have no remaining blockers (all their dependencies are now completed)
type DepsInput ¶
type DepsInput struct {
Verbose bool `json:"verbose,omitempty"`
}
DepsInput is the kernel input for core.deps.
type DirectAssignData ¶
type DirectAssignData struct {
Assignment *DirectAssignItem `json:"assignment"`
FileReservations *DirectAssignFileReservations `json:"file_reservations,omitempty"`
}
DirectAssignData holds the data for a direct pane assignment.
type DirectAssignFileReservations ¶
type DirectAssignFileReservations struct {
Requested []string `json:"requested"`
Granted []string `json:"granted"`
Denied []string `json:"denied"`
}
DirectAssignFileReservations holds file reservation details for direct assignment.
type DirectAssignItem ¶
type DirectAssignItem struct {
BeadID string `json:"bead_id"`
BeadTitle string `json:"bead_title"`
Pane int `json:"pane"`
AgentType string `json:"agent_type"`
Status string `json:"status"`
Prompt string `json:"prompt"`
PromptSent bool `json:"prompt_sent"`
AssignedAt string `json:"assigned_at"`
PaneWasBusy bool `json:"pane_was_busy,omitempty"`
DepsIgnored bool `json:"deps_ignored,omitempty"`
BlockedByIDs []string `json:"blocked_by_ids,omitempty"`
}
DirectAssignItem represents a single direct assignment in JSON output.
type DirectAssignResult ¶
type DirectAssignResult struct {
BeadID string `json:"bead_id"`
BeadTitle string `json:"bead_title,omitempty"`
Pane int `json:"pane"`
AgentType string `json:"agent_type"`
AgentName string `json:"agent_name,omitempty"`
PromptSent string `json:"prompt_sent"`
Success bool `json:"success"`
Error string `json:"error,omitempty"`
Reservations *assign.FileReservationResult `json:"reservations,omitempty"`
PaneWasBusy bool `json:"pane_was_busy,omitempty"`
DepsIgnored bool `json:"deps_ignored,omitempty"`
BlockedByBeads []string `json:"blocked_by_beads,omitempty"`
}
DirectAssignResult is the result of a direct pane assignment
type DoctorReport ¶
type DoctorReport struct {
Timestamp time.Time `json:"timestamp"`
Overall string `json:"overall"` // "healthy", "warning", "unhealthy"
Tools []ToolCheck `json:"tools"`
Dependencies []DepCheck `json:"dependencies"`
Daemons []DaemonCheck `json:"daemons"`
Configuration []ConfigCheck `json:"configuration"`
Invariants []InvariantCheck `json:"invariants"`
Warnings int `json:"warnings"`
Errors int `json:"errors"`
}
DoctorReport contains the full health check report
type ErrorEntry ¶
type ErrorEntry struct {
Timestamp time.Time `json:"timestamp"`
Session string `json:"session"`
Pane string `json:"pane"`
PaneIndex int `json:"pane_index"`
Line int `json:"line"`
Content string `json:"content"`
MatchType string `json:"match_type"`
Context []string `json:"context,omitempty"`
AgentType string `json:"agent_type,omitempty"`
}
ErrorEntry represents a single error detected in pane output
type ErrorsOptions ¶
type ErrorsOptions struct {
Since time.Duration
Panes []int
ContextLines int
MaxLines int
Follow bool
Filter AgentFilter
}
ErrorsOptions contains options for the errors operation
type ErrorsResult ¶
type ErrorsResult struct {
Session string `json:"session"`
Errors []ErrorEntry `json:"errors"`
TotalErrors int `json:"total_errors"`
TotalLines int `json:"total_lines_searched"`
PaneCount int `json:"panes_searched"`
Timestamp time.Time `json:"timestamp"`
}
ErrorsResult contains all errors found in a session
func (*ErrorsResult) JSON ¶
func (r *ErrorsResult) JSON() interface{}
JSON returns the JSON-serializable data
type ExtractResponse ¶
type ExtractResponse struct {
output.TimestampedResponse
Session string `json:"session"`
Source string `json:"source"` // Session or session:pane
Blocks []codeblock.CodeBlock `json:"blocks"`
TotalFound int `json:"total_found"`
}
ExtractResponse is the JSON output format for extract command.
type FlatAgent ¶
type FlatAgent struct {
Type AgentType
Index int // 1-based index within type
Model string // Resolved model (may be empty for default)
}
Flatten expands specs into individual agents with their models
type ForceReleaseResult ¶
type ForceReleaseResult struct {
Success bool `json:"success"`
Session string `json:"session"`
Agent string `json:"agent"`
ReservationID int `json:"reservation_id"`
PreviousHolder string `json:"previous_holder,omitempty"`
PathPattern string `json:"path_pattern,omitempty"`
ReleasedAt *time.Time `json:"released_at,omitempty"`
Notified bool `json:"notified,omitempty"`
Error string `json:"error,omitempty"`
}
ForceReleaseResult is the JSON output for force-release.
type ForecastItem ¶
type ForecastItem struct {
ID string `json:"id"`
Title string `json:"title"`
EstimatedETA time.Time `json:"estimated_eta"`
ConfidenceLevel float64 `json:"confidence_level"`
DependencyCount int `json:"dependency_count"`
CriticalPath bool `json:"critical_path"`
BlockingFactors []string `json:"blocking_factors,omitempty"`
}
ForecastItem represents a forecast for a single issue
type ForecastResponse ¶
type ForecastResponse struct {
Forecasts []ForecastItem `json:"forecasts"`
}
ForecastResponse contains ETA predictions
type GitHubAsset ¶
type GitHubAsset struct {
Name string `json:"name"`
Size int64 `json:"size"`
BrowserDownloadURL string `json:"browser_download_url"`
ContentType string `json:"content_type"`
}
GitHubAsset represents a release asset
type GitHubRelease ¶
type GitHubRelease struct {
TagName string `json:"tag_name"`
Name string `json:"name"`
Draft bool `json:"draft"`
Prerelease bool `json:"prerelease"`
PublishedAt time.Time `json:"published_at"`
Body string `json:"body"`
Assets []GitHubAsset `json:"assets"`
HTMLURL string `json:"html_url"`
}
GitHubRelease represents a GitHub release
type GitInfo ¶
type GitInfo struct {
Branch string `json:"branch"`
Commit string `json:"commit"`
CommitShort string `json:"commit_short"`
Dirty bool `json:"dirty"`
Ahead int `json:"ahead"`
Behind int `json:"behind"`
StagedFiles []string `json:"staged_files,omitempty"`
ModifiedFiles []string `json:"modified_files,omitempty"`
UntrackedFiles []string `json:"untracked_files,omitempty"`
ConflictedFiles []string `json:"conflicted_files,omitempty"`
}
GitInfo contains git repository information.
type GitStatusResult ¶
type GitStatusResult struct {
Success bool `json:"success"`
Session string `json:"session,omitempty"`
WorkingDir string `json:"working_dir"`
Git *GitInfo `json:"git,omitempty"`
Reservations []agentmail.InboxMessage `json:"reservations,omitempty"`
Locks []agentmail.FileReservation `json:"locks,omitempty"`
AgentMail *AgentMailStatus `json:"agent_mail,omitempty"`
Error string `json:"error,omitempty"`
}
GitStatusResult represents the combined git and Agent Mail status.
type GitSyncResult ¶
type GitSyncResult struct {
Success bool `json:"success"`
Session string `json:"session,omitempty"`
WorkingDir string `json:"working_dir"`
PullResult *PullResult `json:"pull_result,omitempty"`
PushResult *PushResult `json:"push_result,omitempty"`
HasConflict bool `json:"has_conflict"`
Error string `json:"error,omitempty"`
}
GitSyncResult represents the result of a git sync operation.
type GraphResponse ¶
type GraphResponse struct {
Format string `json:"format"`
Data interface{} `json:"data"`
}
GraphResponse contains dependency graph data
type GrepMatch ¶
type GrepMatch struct {
Session string `json:"session"`
Pane string `json:"pane"`
PaneID string `json:"pane_id"`
Line int `json:"line"`
Content string `json:"content"`
Context []string `json:"context,omitempty"`
// ContextBefore/After track how many lines in Context are before/after the match.
// This avoids assuming a symmetric split when only -A or -B is provided.
ContextBefore int `json:"context_before,omitempty"`
ContextAfter int `json:"context_after,omitempty"`
}
GrepMatch represents a single search match in pane output
type GrepOptions ¶
type GrepOptions struct {
AllSessions bool
CaseInsensitive bool
InvertMatch bool
ContextLines int
AfterLines int
BeforeLines int
MaxLines int
ListOnly bool
Filter AgentFilter
}
GrepOptions contains options for the grep operation
type GrepResult ¶
type GrepResult struct {
Pattern string `json:"pattern"`
Session string `json:"session"`
Matches []GrepMatch `json:"matches"`
TotalLines int `json:"total_lines_searched"`
MatchCount int `json:"match_count"`
PaneCount int `json:"panes_searched"`
CaseInsensitive bool `json:"case_insensitive,omitempty"`
}
GrepResult contains all matches from a grep operation
func (*GrepResult) JSON ¶
func (r *GrepResult) JSON() interface{}
JSON returns the JSON-serializable data
type GuardsInstallResponse ¶
type GuardsInstallResponse struct {
output.TimestampedResponse
Success bool `json:"success"`
RepoPath string `json:"repo_path"`
ProjectKey string `json:"project_key"`
HookPath string `json:"hook_path"`
Message string `json:"message,omitempty"`
}
GuardsInstallResponse is the JSON output for guards install.
type GuardsStatusResponse ¶
type GuardsStatusResponse struct {
output.TimestampedResponse
Installed bool `json:"installed"`
RepoPath string `json:"repo_path"`
HookPath string `json:"hook_path"`
ProjectKey string `json:"project_key,omitempty"`
IsNTMGuard bool `json:"is_ntm_guard"`
OtherHook bool `json:"other_hook"`
MCPAvailable bool `json:"mcp_available"`
}
GuardsStatusResponse is the JSON output for guards status.
type GuardsUninstallResponse ¶
type GuardsUninstallResponse struct {
output.TimestampedResponse
Success bool `json:"success"`
RepoPath string `json:"repo_path"`
HookPath string `json:"hook_path"`
Message string `json:"message,omitempty"`
}
GuardsUninstallResponse is the JSON output for guards uninstall.
type HealthOutput ¶
type HealthOutput struct {
*health.SessionHealth
Error string `json:"error,omitempty"`
}
HealthOutput mirrors the JSON output for the health command.
type HistoryListEntry ¶
type HistoryListEntry struct {
ID string `json:"id"`
Timestamp time.Time `json:"ts"`
Session string `json:"session"`
Targets []string `json:"targets"`
Prompt string `json:"prompt"`
Source string `json:"source"`
Template string `json:"template,omitempty"`
Success bool `json:"success"`
Error string `json:"error,omitempty"`
DurationMs int `json:"duration_ms,omitempty"`
}
HistoryListEntry is a pared-down view for JSON output to keep field names stable.
type HistoryListResult ¶
type HistoryListResult struct {
Entries []history.HistoryEntry `json:"entries"`
TotalCount int `json:"total_count"`
Showing int `json:"showing"`
}
HistoryListResult contains the history list output
func (*HistoryListResult) JSON ¶
func (r *HistoryListResult) JSON() interface{}
func (*HistoryListResult) MarshalJSON ¶
func (r *HistoryListResult) MarshalJSON() ([]byte, error)
MarshalJSON ensures new fields remain stable for JSON consumers.
type HistoryResponse ¶
type HistoryResponse struct {
Stats HistoryStats `json:"stats"`
Histories []BeadHistory `json:"histories"`
CommitIndex map[string]CommitInfo `json:"commit_index"`
}
HistoryResponse contains bead-to-commit correlation data
type HistoryShowResult ¶
type HistoryShowResult struct {
Entry *history.HistoryEntry `json:"entry"`
}
HistoryShowResult contains a single entry's details
func (*HistoryShowResult) JSON ¶
func (r *HistoryShowResult) JSON() interface{}
type HistoryStats ¶
type HistoryStats struct {
TotalBeads int `json:"total_beads"`
TotalCommits int `json:"total_commits"`
}
HistoryStats contains overall history statistics
type ImpactResponse ¶
type ImpactResponse struct {
Files []ImpactResult `json:"files"`
TotalBeads int `json:"total_beads"`
UniqueBeads int `json:"unique_beads"`
}
ImpactResponse contains bv impact analysis
type ImpactResult ¶
type ImpactResult struct {
File string `json:"file"`
ImpactedIDs []string `json:"impacted_ids"`
TotalImpact int `json:"total_impact"`
DirectImpact int `json:"direct_impact"`
}
ImpactResult represents an impact analysis result
type InitWizardModel ¶
type InitWizardModel struct {
// contains filtered or unexported fields
}
InitWizardModel is the Bubble Tea model for the init wizard
func NewInitWizard ¶
func NewInitWizard() InitWizardModel
NewInitWizard creates a new init wizard model
func (InitWizardModel) Init ¶
func (m InitWizardModel) Init() tea.Cmd
Init initializes the wizard model
func (InitWizardModel) Result ¶
func (m InitWizardModel) Result() WizardResult
Result returns the wizard result
type InvariantCheck ¶
type InvariantCheck struct {
ID string `json:"id"`
Name string `json:"name"`
Status string `json:"status"` // "ok", "warning", "error"
Message string `json:"message,omitempty"`
Details []string `json:"details,omitempty"`
}
InvariantCheck represents a design invariant check result
type LabelDependency ¶
type LabelDependency struct {
From string `json:"from"`
To string `json:"to"`
Count int `json:"count"`
Weight float64 `json:"weight"`
}
LabelDependency represents a dependency between labels
type LabelFlowResponse ¶
type LabelFlowResponse struct {
FlowMatrix map[string]map[string]int `json:"flow_matrix"`
Dependencies []LabelDependency `json:"dependencies"`
BottleneckLabels []string `json:"bottleneck_labels"`
}
LabelFlowResponse contains cross-label dependency analysis
type LabelHealth ¶
type LabelHealth struct {
Label string `json:"label"`
HealthLevel string `json:"health_level"` // healthy, warning, critical
VelocityScore float64 `json:"velocity_score"`
Staleness float64 `json:"staleness"`
BlockedCount int `json:"blocked_count"`
}
LabelHealth contains health metrics for a single label
type LabelHealthResponse ¶
type LabelHealthResponse struct {
Results LabelHealthResults `json:"results"`
}
LabelHealthResponse contains health metrics per label
type LabelHealthResults ¶
type LabelHealthResults struct {
Labels []LabelHealth `json:"labels"`
}
LabelHealthResults contains the actual health data
type LockResult ¶
type LockResult struct {
Success bool `json:"success"`
Session string `json:"session"`
Agent string `json:"agent"`
Granted []agentmail.FileReservation `json:"granted,omitempty"`
Conflicts []agentmail.ReservationConflict `json:"conflicts,omitempty"`
TTL string `json:"ttl"`
ExpiresAt *time.Time `json:"expires_at,omitempty"`
Error string `json:"error,omitempty"`
}
LockResult represents the result of a lock operation.
type LocksResult ¶
type LocksResult struct {
Success bool `json:"success"`
Session string `json:"session"`
Agent string `json:"agent,omitempty"`
ProjectKey string `json:"project_key"`
Reservations []agentmail.FileReservation `json:"reservations"`
Count int `json:"count"`
Error string `json:"error,omitempty"`
}
LocksResult contains the list of active file reservations.
type OpenAPIGenerateInput ¶
type OpenAPIGenerateInput struct {
Output string `json:"output"`
Version string `json:"version"`
ServerURL string `json:"server_url"`
Stdout bool `json:"stdout"`
}
OpenAPIGenerateInput holds input parameters for OpenAPI generation.
type OpenAPIGenerateResponse ¶
type OpenAPIGenerateResponse struct {
Success bool `json:"success"`
OutputPath string `json:"output_path,omitempty"`
Message string `json:"message,omitempty"`
}
OpenAPIGenerateResponse holds the result of OpenAPI generation.
type PaneOutput ¶
type PendingRotationInfo ¶
type PendingRotationInfo struct {
AgentID string `json:"agent_id"`
SessionName string `json:"session_name"`
ContextPercent float64 `json:"context_percent"`
TimeoutSeconds int `json:"timeout_seconds"`
DefaultAction string `json:"default_action"`
CreatedAt string `json:"created_at"`
}
PendingRotationInfo contains info about a pending rotation for display
type PendingRotationsResult ¶
type PendingRotationsResult struct {
Pending []PendingRotationInfo `json:"pending"`
Count int `json:"count"`
}
PendingRotationsResult contains the pending rotations output
func (*PendingRotationsResult) JSON ¶
func (r *PendingRotationsResult) JSON() interface{}
type PersonaAgentInfo ¶
PersonaAgentInfo holds information about an agent spawned from a persona
func FlattenPersonas ¶
func FlattenPersonas(resolved []ResolvedPersonaAgent) []PersonaAgentInfo
FlattenPersonas expands resolved personas into individual agent entries
type PersonaSpec ¶
PersonaSpec represents a parsed persona specification with optional count
func ParsePersonaSpec ¶
func ParsePersonaSpec(value string) (PersonaSpec, error)
ParsePersonaSpec parses a single persona specification string Format: "name" or "name:count" where count defaults to 1
type PersonaSpecs ¶
type PersonaSpecs []PersonaSpec
PersonaSpecs is a slice of PersonaSpec that implements the flag.Value interface
func (*PersonaSpecs) Set ¶
func (s *PersonaSpecs) Set(value string) error
Set implements flag.Value for parsing and accumulating persona specs
func (PersonaSpecs) TotalCount ¶
func (s PersonaSpecs) TotalCount() int
TotalCount returns the sum of all persona counts
func (*PersonaSpecs) Type ¶
func (s *PersonaSpecs) Type() string
Type returns the type name for pflag
type PolicyRulesDetail ¶
type PolicyRulesDetail struct {
Blocked []RuleSummary `json:"blocked,omitempty"`
ApprovalRequired []RuleSummary `json:"approval_required,omitempty"`
Allowed []RuleSummary `json:"allowed,omitempty"`
}
PolicyRulesDetail contains detailed rule information.
type PolicyShowResponse ¶
type PolicyShowResponse struct {
output.TimestampedResponse
Version int `json:"version"`
PolicyPath string `json:"policy_path,omitempty"`
IsDefault bool `json:"is_default"`
Stats PolicyStats `json:"stats"`
Automation policy.AutomationConfig `json:"automation"`
Rules *PolicyRulesDetail `json:"rules,omitempty"`
}
PolicyShowResponse is the JSON output for policy show.
type PolicyStats ¶
type PolicyStats struct {
Blocked int `json:"blocked"`
Approval int `json:"approval"`
Allowed int `json:"allowed"`
SLBRules int `json:"slb_rules"`
}
PolicyStats contains rule counts.
type PolicyValidateResponse ¶
type PolicyValidateResponse struct {
output.TimestampedResponse
Valid bool `json:"valid"`
PolicyPath string `json:"policy_path"`
Errors []string `json:"errors,omitempty"`
Warnings []string `json:"warnings,omitempty"`
}
PolicyValidateResponse is the JSON output for policy validate.
type PreflightFinding ¶ added in v1.7.0
type PreflightFinding struct {
ID string `json:"id"`
Severity string `json:"severity"`
Message string `json:"message"`
Help string `json:"help"`
Metadata map[string]any `json:"metadata,omitempty"`
Start int `json:"start,omitempty"`
End int `json:"end,omitempty"`
Line int `json:"line,omitempty"`
}
PreflightFinding represents a single lint finding in preflight output.
type PreflightInput ¶ added in v1.7.0
PreflightInput is the input for the kernel command.
type PreflightResult ¶ added in v1.7.0
type PreflightResult struct {
robot.RobotResponse
// Core results
PreviewHash string `json:"preview_hash"`
PreviewLen int `json:"preview_len"`
EstimatedTokens int `json:"estimated_tokens"`
Findings []PreflightFinding `json:"findings"`
// Summary counts
ErrorCount int `json:"error_count"`
WarningCount int `json:"warning_count"`
InfoCount int `json:"info_count"`
// Prompt preview (truncated if long)
Preview string `json:"preview,omitempty"`
// DCG integration status
DCGAvailable bool `json:"dcg_available"`
}
PreflightResult is the JSON output for the preflight command.
type ProfileSwitchResult ¶
type ProfileSwitchResult struct {
Success bool `json:"success"`
AgentID string `json:"agent_id"`
PaneID string `json:"pane_id"`
OldProfile string `json:"old_profile,omitempty"`
NewProfile string `json:"new_profile"`
Message string `json:"message,omitempty"`
Error string `json:"error,omitempty"`
}
ProfileSwitchResult contains the result of a profile switch operation
type ProjectType ¶
type ProjectType int
ProjectType represents the type of project being initialized
const ( ProjectGo ProjectType = iota ProjectPython ProjectNode ProjectRust ProjectOther )
func (ProjectType) String ¶
func (p ProjectType) String() string
type PromptStatus ¶
type PromptStatus struct {
// Pane is the pane title (e.g., "proj__cc_1")
Pane string `json:"pane"`
// PaneID is the tmux pane ID for reliable lookup
PaneID string `json:"pane_id"`
// Order is the 1-based spawn order
Order int `json:"order"`
// ScheduledAt is when the prompt is scheduled to be sent
ScheduledAt time.Time `json:"scheduled"`
// Sent indicates whether the prompt has been delivered
Sent bool `json:"sent"`
// SentAt is when the prompt was actually sent (zero if not sent)
SentAt time.Time `json:"sent_at,omitempty"`
}
PromptStatus tracks the delivery status of a single agent's prompt.
type PullResult ¶
type PullResult struct {
Success bool `json:"success"`
FastForward bool `json:"fast_forward"`
Behind int `json:"behind"`
Merged int `json:"merged"`
Files []string `json:"files,omitempty"`
Conflicts []string `json:"conflicts,omitempty"`
Error string `json:"error,omitempty"`
AlreadyUpToDate bool `json:"already_up_to_date"`
}
PullResult contains the result of a git pull operation.
type PushResult ¶
type PushResult struct {
Success bool `json:"success"`
Ahead int `json:"ahead"`
Pushed int `json:"pushed"`
Remote string `json:"remote"`
Branch string `json:"branch"`
Error string `json:"error,omitempty"`
NothingToPush bool `json:"nothing_to_push"`
}
PushResult contains the result of a git push operation.
type ReassignData ¶
type ReassignData struct {
BeadID string `json:"bead_id"`
BeadTitle string `json:"bead_title"`
Pane int `json:"pane"`
AgentType string `json:"agent_type"`
AgentName string `json:"agent_name,omitempty"`
Status string `json:"status"`
PromptSent bool `json:"prompt_sent"`
AssignedAt string `json:"assigned_at"`
PreviousPane int `json:"previous_pane"`
PreviousAgent string `json:"previous_agent,omitempty"`
PreviousAgentType string `json:"previous_agent_type"`
PreviousStatus string `json:"previous_status"`
FileReservationsTransferred bool `json:"file_reservations_transferred"`
FileReservationsReleasedFrom int `json:"file_reservations_released_from,omitempty"`
FileReservationsCreatedFor int `json:"file_reservations_created_for,omitempty"`
}
ReassignData holds the successful reassignment data.
type ReassignEnvelope ¶
type ReassignEnvelope struct {
Command string `json:"command"`
Subcommand string `json:"subcommand"`
Session string `json:"session"`
Timestamp string `json:"timestamp"`
Success bool `json:"success"`
Data *ReassignData `json:"data,omitempty"`
Warnings []string `json:"warnings"`
Error *ReassignError `json:"error,omitempty"`
}
ReassignEnvelope is the standard JSON envelope for reassignment operations.
type ReassignError ¶
type ReassignError struct {
Code string `json:"code"`
Message string `json:"message"`
Details map[string]interface{} `json:"details,omitempty"`
}
ReassignError represents an error in the reassignment envelope.
type RecipeInfo ¶
type RecipeInfo struct {
Name string `json:"name"`
Description string `json:"description"`
Source string `json:"source"`
TotalAgents int `json:"total_agents"`
}
RecipeInfo is a recipe summary for JSON output.
type RecipeShowResult ¶
type RecipeShowResult struct {
Name string `json:"name"`
Description string `json:"description"`
Source string `json:"source"`
TotalAgents int `json:"total_agents"`
Agents []recipe.AgentSpec `json:"agents"`
}
RecipeShowResult is the JSON output for recipes show command.
type RecipesListResult ¶
type RecipesListResult struct {
Recipes []RecipeInfo `json:"recipes"`
Total int `json:"total"`
}
RecipesListResult is the JSON output for recipes list command.
type RecoveryAssignmentSummary ¶
type RecoveryAssignmentSummary struct {
Total int `json:"total"`
Assigned int `json:"assigned,omitempty"`
Working int `json:"working,omitempty"`
Completed int `json:"completed,omitempty"`
Failed int `json:"failed,omitempty"`
Reassigned int `json:"reassigned,omitempty"`
}
RecoveryAssignmentSummary captures assignment status counts from a checkpoint.
type RecoveryBVSummary ¶
type RecoveryBVSummary struct {
OpenCount int `json:"open_count"`
ActionableCount int `json:"actionable_count"`
BlockedCount int `json:"blocked_count"`
InProgressCount int `json:"in_progress_count"`
TopPicks []string `json:"top_picks,omitempty"`
CapturedAt time.Time `json:"captured_at"`
}
RecoveryBVSummary captures BV snapshot counts from a checkpoint.
type RecoveryBead ¶
type RecoveryBead struct {
ID string `json:"id"`
Title string `json:"title"`
Assignee string `json:"assignee,omitempty"`
}
RecoveryBead represents a bead in recovery context
type RecoveryCMMemories ¶
type RecoveryCMMemories struct {
Rules []RecoveryCMRule `json:"rules,omitempty"`
AntiPatterns []RecoveryCMRule `json:"anti_patterns,omitempty"`
}
RecoveryCMMemories contains procedural memories from CASS Memory (CM)
type RecoveryCMRule ¶
type RecoveryCMRule struct {
ID string `json:"id"`
Content string `json:"content"`
Category string `json:"category,omitempty"`
}
RecoveryCMRule represents a rule from CM playbook
type RecoveryCheckpoint ¶
type RecoveryCheckpoint struct {
ID string `json:"id"`
Name string `json:"name"`
Description string `json:"description"`
CreatedAt time.Time `json:"created_at"`
PaneCount int `json:"pane_count"`
HasGitPatch bool `json:"has_git_patch"`
Assignments *RecoveryAssignmentSummary `json:"assignments_summary,omitempty"`
BVSummary *RecoveryBVSummary `json:"bv_summary,omitempty"`
}
RecoveryCheckpoint represents checkpoint info for recovery.
type RecoveryContext ¶
type RecoveryContext struct {
// Checkpoint contains checkpoint info for recovery
Checkpoint *RecoveryCheckpoint `json:"checkpoint,omitempty"`
// Beads contains in-progress beads from BV
Beads []RecoveryBead `json:"beads,omitempty"`
// CompletedBeads contains recently completed beads for context
CompletedBeads []RecoveryBead `json:"completed_beads,omitempty"`
// BlockedBeads contains blocked beads for awareness
BlockedBeads []RecoveryBead `json:"blocked_beads,omitempty"`
// Messages contains recent Agent Mail messages
Messages []RecoveryMessage `json:"messages,omitempty"`
// CMMemories contains procedural memories from CM
CMMemories *RecoveryCMMemories `json:"cm_memories,omitempty"`
// FileReservations contains files currently reserved by this session
FileReservations []string `json:"file_reservations,omitempty"`
// ReservationTransfer contains results from attempting to transfer reservations
ReservationTransfer *handoff.ReservationTransferResult `json:"reservation_transfer,omitempty"`
// Sessions contains past sessions for recovery context
Sessions []RecoverySession `json:"sessions,omitempty"`
// Summary is a human-readable summary of the recovery context
Summary string `json:"summary,omitempty"`
// TokenCount is an estimate of the total token count
TokenCount int `json:"token_count,omitempty"`
// Error contains error info if recovery was partial
Error *RecoveryError `json:"error,omitempty"`
}
RecoveryContext holds all the information needed to help an agent recover from a previous session, including beads, messages, and procedural memories.
type RecoveryError ¶
type RecoveryError struct {
Code string `json:"code"`
Message string `json:"message"`
Component string `json:"component"` // Which component failed
Recoverable bool `json:"recoverable"`
Details []string `json:"details,omitempty"`
}
RecoveryError represents an error during recovery context building.
type RecoveryMessage ¶
type RecoveryMessage struct {
ID int `json:"id"`
From string `json:"from"`
Subject string `json:"subject"`
Body string `json:"body,omitempty"`
Importance string `json:"importance,omitempty"`
CreatedAt time.Time `json:"created_at"`
}
RecoveryMessage represents an Agent Mail message in recovery context
type RecoverySession ¶
type RecoverySession struct {
Name string `json:"name"`
CreatedAt time.Time `json:"created_at"`
AgentType string `json:"agent_type"`
}
RecoverySession represents a previous session for recovery.
type RedactionSummary ¶ added in v1.7.0
type RedactionSummary struct {
Mode string `json:"mode"`
Findings int `json:"findings"`
Categories map[string]int `json:"categories,omitempty"`
Action string `json:"action,omitempty"` // warn|redact|block
}
RedactionSummary is a safe-to-print summary of redaction findings. It intentionally does NOT include the matched secret values.
type RenewResult ¶
type RenewResult struct {
Success bool `json:"success"`
Session string `json:"session"`
Agent string `json:"agent"`
ExtendMinutes int `json:"extend_minutes"`
Error string `json:"error,omitempty"`
}
RenewResult is the JSON output for renew.
type ResolvedPersonaAgent ¶
type ResolvedPersonaAgent struct {
Persona *persona.Persona
Type AgentType
Model string
Index int // 1-based index within this persona
}
ResolvedPersonaAgent represents a resolved persona ready to spawn
func ResolvePersonas ¶
func ResolvePersonas(specs PersonaSpecs, projectDir string) ([]ResolvedPersonaAgent, error)
ResolvePersonas converts persona specs into resolved agents using the registry Returns the resolved agents and any validation errors
type ResumeHandoffInfo ¶
type ResumeHandoffInfo struct {
Path string `json:"path"`
Session string `json:"session"`
Goal string `json:"goal"`
Now string `json:"now"`
Status string `json:"status"`
Outcome string `json:"outcome,omitempty"`
Decisions map[string]string `json:"decisions,omitempty"`
Next []string `json:"next,omitempty"`
Blockers []string `json:"blockers,omitempty"`
AgeSeconds int64 `json:"age_seconds"`
FileCount int `json:"file_count"`
}
ResumeHandoffInfo contains handoff details for JSON output.
type ResumeInjectInfo ¶
type ResumeInjectInfo struct {
Session string `json:"session"`
PanesSent int `json:"panes_sent"`
PanesFailed int `json:"panes_failed"`
}
ResumeInjectInfo contains inject operation details.
type ResumeResult ¶
type ResumeResult struct {
Success bool `json:"success"`
Action string `json:"action"` // display, spawn, inject
Handoff *ResumeHandoffInfo `json:"handoff,omitempty"`
SpawnInfo *ResumeSpawnInfo `json:"spawn_info,omitempty"`
InjectInfo *ResumeInjectInfo `json:"inject_info,omitempty"`
Error string `json:"error,omitempty"`
}
ResumeResult is the JSON output for the resume command.
type ResumeSpawnInfo ¶
type ResumeSpawnInfo struct {
Session string `json:"session"`
PaneCount int `json:"pane_count"`
PaneIDs []string `json:"pane_ids,omitempty"`
}
ResumeSpawnInfo contains spawn operation details.
type RetryData ¶
type RetryData struct {
Retried []RetryItem `json:"retried"`
Skipped []RetrySkippedItem `json:"skipped"`
Summary RetrySummary `json:"summary"`
}
RetryData holds the data payload for retry operations.
type RetryItem ¶
type RetryItem struct {
BeadID string `json:"bead_id"`
BeadTitle string `json:"bead_title"`
Pane int `json:"pane"`
AgentType string `json:"agent_type"`
AgentName string `json:"agent_name,omitempty"`
Status string `json:"status"`
PromptSent bool `json:"prompt_sent"`
AssignedAt string `json:"assigned_at"`
PreviousPane int `json:"previous_pane"`
PreviousAgent string `json:"previous_agent,omitempty"`
PreviousFailReason string `json:"previous_fail_reason,omitempty"`
RetryCount int `json:"retry_count"`
}
RetryItem holds data for a single retried assignment.
type RetrySkippedItem ¶
RetrySkippedItem holds data for a skipped retry.
type RetrySummary ¶
type RetrySummary struct {
TotalFailed int `json:"total_failed"`
RetriedCount int `json:"retried_count"`
SkippedCount int `json:"skipped_count"`
}
RetrySummary provides summary statistics for retry operations.
type RotationHistoryResult ¶
type RotationHistoryResult struct {
Records []ctxmon.RotationRecord `json:"records"`
TotalCount int `json:"total_count"`
Showing int `json:"showing"`
}
RotationHistoryResult contains the rotation history output
func (*RotationHistoryResult) JSON ¶
func (r *RotationHistoryResult) JSON() interface{}
type RotationStatsResult ¶
type RotationStatsResult struct {
*ctxmon.RotationStats
}
RotationStatsResult contains the rotation statistics output
func (*RotationStatsResult) JSON ¶
func (r *RotationStatsResult) JSON() interface{}
type RuleSummary ¶
type RuleSummary struct {
Pattern string `json:"pattern"`
Reason string `json:"reason,omitempty"`
SLB bool `json:"slb,omitempty"`
}
RuleSummary is a simplified rule representation.
type SafetyStatusResponse ¶
type SafetyStatusResponse struct {
output.TimestampedResponse
Installed bool `json:"installed"`
PolicyPath string `json:"policy_path,omitempty"`
BlockedCount int `json:"blocked_rules"`
ApprovalCount int `json:"approval_rules"`
AllowedCount int `json:"allowed_rules"`
WrapperPath string `json:"wrapper_path,omitempty"`
HookInstalled bool `json:"hook_installed"`
}
SafetyStatusResponse is the JSON output for safety status.
type ScopeChange ¶
type ScopeChange struct {
Timestamp time.Time `json:"timestamp"`
Action string `json:"action"` // added, removed, modified
IssueID string `json:"issue_id"`
Points int `json:"points"`
}
ScopeChange represents a change in sprint scope
type SearchResponse ¶
type SearchResponse struct {
Query string `json:"query"`
Results []SearchResult `json:"results"`
}
SearchResponse contains bv search results
type SearchResult ¶
type SearchResult struct {
ID string `json:"id"`
Title string `json:"title"`
Score float64 `json:"score"`
Status string `json:"status"`
Priority int `json:"priority"`
Snippet string `json:"snippet,omitempty"`
}
SearchResult represents a search result from bv
type SendDryRunEntry ¶ added in v1.7.0
type SendDryRunResult ¶ added in v1.7.0
type SendDryRunResult struct {
Success bool `json:"success"`
DryRun bool `json:"dry_run"`
Session string `json:"session"`
Redaction *RedactionSummary `json:"redaction,omitempty"`
Warnings []string `json:"warnings,omitempty"`
Blocked bool `json:"blocked,omitempty"`
ErrorCode string `json:"error_code,omitempty"`
Total int `json:"total"`
WouldSend []SendDryRunEntry `json:"would_send"`
RoutedTo *SendRoutingResult `json:"routed_to,omitempty"`
Message string `json:"message,omitempty"`
Error string `json:"error,omitempty"`
}
type SendOptions ¶
type SendOptions struct {
Session string
Prompt string
PromptSource string
Targets SendTargets
TargetAll bool
SkipFirst bool
PaneIndex int
Panes []int // Specific pane indices to target
PanesSpecified bool // True if --panes was explicitly set
TemplateName string
Tags []string
DryRun bool
// Smart routing options
SmartRoute bool // Use smart routing to select best agent
RouteStrategy string // Routing strategy (least-loaded, round-robin, etc.)
// CASS check options
CassCheck bool
CassSimilarity float64
CassCheckDays int
// Hooks
NoHooks bool
// Batch processing options
BatchFile string // Path to batch file
BatchDelay time.Duration // Delay between prompts
BatchConfirm bool // Confirm each prompt before sending
BatchStopOnErr bool // Stop on first error
BatchBroadcast bool // Send same prompt to all agents simultaneously
BatchAgentIndex int // Send to specific agent index (-1 = round-robin)
// contains filtered or unexported fields
}
SendOptions configures the send operation
type SendResult ¶
type SendResult struct {
Success bool `json:"success"`
Session string `json:"session"`
PromptPreview string `json:"prompt_preview,omitempty"`
Redaction *RedactionSummary `json:"redaction,omitempty"`
Warnings []string `json:"warnings,omitempty"`
Blocked bool `json:"blocked,omitempty"`
ErrorCode string `json:"error_code,omitempty"`
Targets []int `json:"targets"`
Delivered int `json:"delivered"`
Failed int `json:"failed"`
RoutedTo *SendRoutingResult `json:"routed_to,omitempty"`
Error string `json:"error,omitempty"`
}
SendResult is the JSON output for the send command.
type SendRoutingResult ¶
type SendRoutingResult struct {
PaneIndex int `json:"pane_index"`
AgentType string `json:"agent_type"`
Strategy string `json:"strategy"`
Reason string `json:"reason"`
Score float64 `json:"score"`
}
SendRoutingResult contains routing decision info for smart routing.
type SendTarget ¶
type SendTarget struct {
Type AgentType
Variant string // Empty = all agents of type; non-empty = filter by variant
}
SendTarget represents a send target with optional variant filter. Used for --cc:opus style flags where variant filters to specific model/persona.
type SendTargets ¶
type SendTargets []SendTarget
SendTargets is a slice of SendTarget that implements pflag.Value for accumulating
func (SendTargets) HasTargetsForType ¶
func (s SendTargets) HasTargetsForType(t AgentType) bool
HasTargetsForType checks if any targets match the given agent type
func (SendTargets) MatchesPane ¶
func (s SendTargets) MatchesPane(pane tmux.Pane) bool
MatchesPane checks if any target matches the given pane
func (*SendTargets) Set ¶
func (s *SendTargets) Set(value string) error
func (*SendTargets) String ¶
func (s *SendTargets) String() string
func (*SendTargets) Type ¶
func (s *SendTargets) Type() string
type SessionAttachInput ¶
type SessionAttachInput struct {
Session string `json:"session"`
}
SessionAttachInput is the kernel input for sessions.attach.
type SessionCreateInput ¶
type SessionCreateInput struct {
Session string `json:"session"`
Panes int `json:"panes,omitempty"`
}
SessionCreateInput is the kernel input for sessions.create.
type SessionHealthInput ¶
type SessionHealthInput struct {
Session string `json:"session"`
Pane *int `json:"pane,omitempty"`
Status string `json:"status,omitempty"`
Verbose bool `json:"verbose,omitempty"`
}
SessionHealthInput is the kernel input for sessions.health.
type SessionInterruptInput ¶
type SessionInterruptInput struct {
Session string `json:"session"`
Tags []string `json:"tags,omitempty"`
}
SessionInterruptInput is the kernel input for sessions.interrupt.
type SessionKillInput ¶
type SessionKillInput struct {
Session string `json:"session"`
Force bool `json:"force,omitempty"`
Tags []string `json:"tags,omitempty"`
NoHooks bool `json:"no_hooks,omitempty"`
Summarize bool `json:"summarize,omitempty"` // Generate summary before killing
}
SessionKillInput is the kernel input for sessions.kill.
type SessionListInput ¶
type SessionListInput struct {
Tags []string `json:"tags,omitempty"`
}
SessionListInput is the kernel input for sessions.list.
type SessionOutput ¶
type SessionOutput struct {
Name string `json:"name"`
AgentType string `json:"agent_type"`
PaneCount int `json:"pane_count"`
Panes []PaneOutput `json:"panes"`
}
type SessionResolution ¶
type SessionResolution struct {
Session string
Reason string
Inferred bool // Session arg was omitted and we resolved automatically/with chooser.
Prompted bool // User picked from a selector (may be canceled).
}
func ResolveSession ¶
func ResolveSession(session string, w io.Writer) (SessionResolution, error)
ResolveSession resolves an optional session argument using a shared algorithm: 1) Current tmux session (if inside tmux) 2) Best-effort inference from cwd/project 3) Single running session auto-pick 4) Interactive chooser (when allowed)
If the user cancels the chooser, SessionResolution.Session is empty and error is nil.
func ResolveSessionWithOptions ¶
func ResolveSessionWithOptions(session string, w io.Writer, opts SessionResolveOptions) (SessionResolution, error)
func (SessionResolution) ExplainIfInferred ¶
func (r SessionResolution) ExplainIfInferred(w io.Writer)
type SessionResolveOptions ¶
type SessionResolveOptions struct {
// TreatAsJSON disables prompting for local-json subcommands that don't use the global flag.
TreatAsJSON bool
}
type SessionStatusInput ¶
type SessionStatusInput struct {
Session string `json:"session"`
Tags []string `json:"tags,omitempty"`
ShowAssignments bool `json:"show_assignments,omitempty"`
FilterStatus string `json:"status,omitempty"`
FilterAgent string `json:"agent,omitempty"`
FilterPane *int `json:"pane,omitempty"`
ShowSummary bool `json:"summary,omitempty"`
}
SessionStatusInput is the kernel input for sessions.status.
type SessionSummary ¶
type SessionSummary struct {
Name string `json:"name"`
CreatedAt time.Time `json:"created_at"`
AgentCount int `json:"agent_count"`
PromptCount int `json:"prompt_count"`
}
SessionSummary provides details about a single session.
type SessionTemplateInfo ¶
type SessionTemplateInfo struct {
Name string `json:"name"`
Description string `json:"description"`
Source string `json:"source"`
Tags []string `json:"tags,omitempty"`
AgentCount int `json:"agent_count"`
}
SessionTemplateInfo is a session template summary for JSON output.
type SessionTemplateShowResult ¶
type SessionTemplateShowResult struct {
Name string `json:"name"`
Description string `json:"description"`
Source string `json:"source"`
Tags []string `json:"tags,omitempty"`
Agents *templates.AgentsSpec `json:"agents"`
Prompts *templates.PromptsSpec `json:"prompts,omitempty"`
CASS *templates.CASSSpec `json:"cass,omitempty"`
Beads *templates.BeadsSpec `json:"beads,omitempty"`
Options *templates.SessionOptionsSpec `json:"options,omitempty"`
}
SessionTemplateShowResult is the JSON output for session-templates show command.
type SessionTemplatesListResult ¶
type SessionTemplatesListResult struct {
Templates []SessionTemplateInfo `json:"templates"`
Total int `json:"total"`
}
SessionTemplatesListResult is the JSON output for session-templates list command.
type SessionViewInput ¶
type SessionViewInput struct {
Session string `json:"session"`
}
SessionViewInput is the kernel input for sessions.view.
type SessionZoomInput ¶
SessionZoomInput is the kernel input for sessions.zoom.
type SessionsListResult ¶
type SessionsListResult struct {
Sessions []session.SavedSession `json:"sessions"`
Count int `json:"count"`
}
SessionsListResult contains the list of saved sessions.
func (*SessionsListResult) JSON ¶
func (r *SessionsListResult) JSON() interface{}
type SessionsRestoreResult ¶
type SessionsRestoreResult struct {
Success bool `json:"success"`
SavedName string `json:"saved_name"`
RestoredAs string `json:"restored_as"`
State *session.SessionState `json:"state,omitempty"`
AgentCount int `json:"agent_count"`
Error string `json:"error,omitempty"`
GitWarning string `json:"git_warning,omitempty"`
}
SessionsRestoreResult represents the result of a restore operation.
func (*SessionsRestoreResult) JSON ¶
func (r *SessionsRestoreResult) JSON() interface{}
type SessionsSaveResult ¶
type SessionsSaveResult struct {
Success bool `json:"success"`
Session string `json:"session"`
SavedAs string `json:"saved_as"`
FilePath string `json:"file_path"`
State *session.SessionState `json:"state,omitempty"`
Error string `json:"error,omitempty"`
}
SessionsSaveResult represents the result of a save operation.
func (*SessionsSaveResult) JSON ¶
func (r *SessionsSaveResult) JSON() interface{}
type SessionsShowResult ¶
type SessionsShowResult struct {
State *session.SessionState `json:"state"`
}
SessionsShowResult contains a saved session's full state.
func (*SessionsShowResult) JSON ¶
func (r *SessionsShowResult) JSON() interface{}
type SetupResponse ¶
type SetupResponse struct {
output.TimestampedResponse
Success bool `json:"success"`
ProjectPath string `json:"project_path"`
NTMDir string `json:"ntm_dir"`
CreatedDirs []string `json:"created_dirs"`
CreatedFiles []string `json:"created_files"`
WrappersInstalled bool `json:"wrappers_installed,omitempty"`
HooksInstalled bool `json:"hooks_installed,omitempty"`
BeadsInitialized bool `json:"beads_initialized,omitempty"`
BeadsWarning string `json:"beads_warning,omitempty"`
}
SetupResponse is the JSON output for setup command.
type SkippedItem ¶
type SkippedItem struct {
BeadID string `json:"bead_id"`
BeadTitle string `json:"bead_title"`
Reason string `json:"reason"`
BlockedByIDs []string `json:"blocked_by_ids,omitempty"` // Only set when reason is "blocked"
}
SkippedItem represents a skipped bead
type SpawnAssignResult ¶
type SpawnAssignResult struct {
Spawn *output.SpawnResponse `json:"spawn"`
Init *SpawnInitResult `json:"init,omitempty"`
Assign *AssignOutputEnhanced `json:"assign,omitempty"`
}
SpawnAssignResult holds the combined result of spawn+assign workflow.
type SpawnContext ¶
type SpawnContext struct {
BatchID string // Unique identifier for this spawn batch
TotalAgents int // Total number of agents in this spawn
CreatedAt time.Time // When the spawn batch was initiated
}
SpawnContext holds information about the spawn batch for agent coordination. This context enables agents to self-coordinate based on their position in the spawn order.
func NewSpawnContext ¶
func NewSpawnContext(totalAgents int) *SpawnContext
NewSpawnContext creates a new spawn context with a unique batch ID.
func (*SpawnContext) ForAgent ¶
func (sc *SpawnContext) ForAgent(order int, staggerDelay time.Duration) *AgentSpawnContext
ForAgent creates an agent-specific context for the given agent position.
type SpawnInitResult ¶
type SpawnInitResult struct {
PromptSent bool `json:"prompt_sent"`
AgentsReached int `json:"agents_reached"`
}
SpawnInitResult describes the init phase result.
type SpawnOptions ¶
type SpawnOptions struct {
Session string
Agents []FlatAgent
CCCount int
CodCount int
GmiCount int
CursorCount int
WindsurfCount int
AiderCount int
UserPane bool
AutoRestart bool
RecipeName string
PersonaMap map[string]*persona.Persona
PluginMap map[string]plugins.AgentPlugin
// Profile mapping: list of persona names to map to agents in order
ProfileList []*persona.Persona
// CASS Context
CassContextQuery string
NoCassContext bool
Prompt string
InitPrompt string
LocalModel string
LocalHost string
// Hooks
NoHooks bool
// Safety mode: fail if session already exists
Safety bool
// Stagger configuration for thundering herd prevention
// StaggerMode: "smart", "fixed", or "none" (default)
// - smart: Use learned optimal delays from RateLimitTracker
// - fixed: Use fixed delay (StaggerDelay)
// - none: No staggering (backward compatible default)
StaggerMode string // "smart", "fixed", or "none"
StaggerDelay time.Duration // Delay for fixed mode (default 30s)
// Legacy stagger fields (deprecated, kept for backward compatibility)
Stagger time.Duration // Delay between agent prompt delivery
StaggerEnabled bool // True if --stagger flag was provided
// Assignment configuration for spawn+assign workflow
Assign bool // Enable auto-assignment after spawn
AssignStrategy string // Assignment strategy: balanced, speed, quality, dependency, round-robin
AssignLimit int // Maximum assignments (0 = unlimited)
AssignReadyTimeout time.Duration // Timeout waiting for agents to become ready
AssignVerbose bool // Show detailed scoring/decision logs during assignment
AssignQuiet bool // Suppress non-essential assignment output
AssignTimeout time.Duration // Timeout for external calls during assignment (bv, br, Agent Mail)
AssignAgentType string // Filter assignment to specific agent type (claude, codex, gemini)
// Git worktree isolation configuration
UseWorktrees bool // Enable git worktree isolation for agents
// Privacy mode configuration (bd-2u3tv)
PrivacyMode bool // Enable privacy mode (no persistence)
AllowPersist bool // Allow persistence even in privacy mode
}
SpawnOptions configures session creation and agent spawning
type SpawnState ¶
type SpawnState struct {
// BatchID is the unique identifier for this spawn batch
BatchID string `json:"batch_id"`
// StartedAt is when the spawn began
StartedAt time.Time `json:"started_at"`
// StaggerSeconds is the interval between agent prompts
StaggerSeconds int `json:"stagger_seconds"`
// TotalAgents is the total number of agents spawned
TotalAgents int `json:"total_agents"`
// Prompts tracks the status of each agent's prompt delivery
Prompts []PromptStatus `json:"prompts"`
// CompletedAt is when all prompts were delivered (zero if still in progress)
CompletedAt time.Time `json:"completed_at,omitempty"`
// contains filtered or unexported fields
}
SpawnState tracks the stagger schedule for dashboard display. Written by spawn command, read by dashboard for countdown display.
func LoadSpawnState ¶
func LoadSpawnState(projectDir string) (*SpawnState, error)
LoadSpawnState loads spawn state from disk.
func NewSpawnState ¶
func NewSpawnState(batchID string, staggerSeconds int, totalAgents int) *SpawnState
NewSpawnState creates a new spawn state for tracking staggered prompts.
func (*SpawnState) AddPrompt ¶
func (s *SpawnState) AddPrompt(pane, paneID string, order int, scheduledAt time.Time)
AddPrompt adds a prompt to the schedule.
func (*SpawnState) GetPromptStatuses ¶
func (s *SpawnState) GetPromptStatuses() []PromptStatus
GetPromptStatuses returns a copy of all prompt statuses.
func (*SpawnState) IsComplete ¶
func (s *SpawnState) IsComplete() bool
IsComplete returns whether all prompts have been delivered.
func (*SpawnState) MarkComplete ¶
func (s *SpawnState) MarkComplete()
MarkComplete marks the spawn as complete.
func (*SpawnState) MarkSent ¶
func (s *SpawnState) MarkSent(paneID string)
MarkSent marks a prompt as sent.
func (*SpawnState) PendingCount ¶
func (s *SpawnState) PendingCount() int
PendingCount returns the number of prompts not yet sent.
func (*SpawnState) Save ¶
func (s *SpawnState) Save(projectDir string) error
Save writes the spawn state to disk.
func (*SpawnState) TimeUntilNextPrompt ¶
func (s *SpawnState) TimeUntilNextPrompt() time.Duration
TimeUntilNextPrompt returns the duration until the next pending prompt. Returns zero if all prompts are sent or if there's no pending prompt.
type StyledTable ¶
type StyledTable struct {
// contains filtered or unexported fields
}
StyledTable renders beautiful terminal tables with box-drawing
func NewStyledTable ¶
func NewStyledTable(headers ...string) *StyledTable
NewStyledTable creates a new styled table with headers
func (*StyledTable) AddRow ¶
func (t *StyledTable) AddRow(cols ...string)
AddRow adds a row to the table
func (*StyledTable) Render ¶
func (t *StyledTable) Render() string
Render returns the table as a styled string
func (*StyledTable) RowCount ¶
func (t *StyledTable) RowCount() int
RowCount returns the number of rows
func (*StyledTable) WithFooter ¶
func (t *StyledTable) WithFooter(footer string) *StyledTable
WithFooter adds a footer to the table
func (*StyledTable) WithStyle ¶
func (t *StyledTable) WithStyle(style TableStyle) *StyledTable
WithStyle sets the table style
func (*StyledTable) WithTitle ¶
func (t *StyledTable) WithTitle(title string) *StyledTable
WithTitle adds a title to the table
type SwarmPlanOutput ¶
type SwarmPlanOutput struct {
ScanDir string `json:"scan_dir"`
TotalCC int `json:"total_cc"`
TotalCod int `json:"total_cod"`
TotalGmi int `json:"total_gmi"`
TotalAgents int `json:"total_agents"`
SessionsPerType int `json:"sessions_per_type"`
PanesPerSession int `json:"panes_per_session"`
Allocations []AllocationOutput `json:"allocations"`
Sessions []SessionOutput `json:"sessions"`
DryRun bool `json:"dry_run"`
Error string `json:"error,omitempty"`
}
SwarmPlanOutput is the JSON output format for swarm plan
type TableStyle ¶
type TableStyle int
TableStyle defines the visual style of a table
const ( // TableStyleRounded uses rounded box-drawing corners TableStyleRounded TableStyle = iota // TableStyleSimple uses simple line separators TableStyleSimple // TableStyleMinimal uses dots and subtle lines TableStyleMinimal )
type TemplateListItem ¶
type TemplateListItem struct {
Name string `json:"name"`
Description string `json:"description"`
Source string `json:"source"`
SourcePath string `json:"source_path,omitempty"`
Tags []string `json:"tags,omitempty"`
Variables []string `json:"variables,omitempty"`
}
TemplateListItem is the JSON output for a single template.
type TemplateShowOutput ¶
type TemplateShowOutput struct {
Name string `json:"name"`
Description string `json:"description"`
Source string `json:"source"`
SourcePath string `json:"source_path,omitempty"`
Tags []string `json:"tags,omitempty"`
Variables []TemplateVariableOutput `json:"variables,omitempty"`
Body string `json:"body,omitempty"`
}
TemplateShowOutput is the JSON output for template show.
type TemplateVariableOutput ¶
type TemplateVariableOutput struct {
Name string `json:"name"`
Description string `json:"description,omitempty"`
Required bool `json:"required"`
Default string `json:"default,omitempty"`
}
TemplateVariableOutput is the JSON output for a template variable.
type TimelineCleanupResult ¶
type TimelineCleanupResult struct {
Deleted int `json:"deleted"`
Remaining int `json:"remaining"`
Compressed int `json:"compressed"`
}
TimelineCleanupResult contains cleanup results
func (*TimelineCleanupResult) JSON ¶
func (r *TimelineCleanupResult) JSON() interface{}
type TimelineEventStats ¶
type TimelineEventStats struct {
TotalEvents int `json:"total_events"`
UniqueAgents int `json:"unique_agents"`
AgentBreakdown map[string]int `json:"agent_breakdown"`
StateBreakdown map[state.TimelineState]int `json:"state_breakdown"`
Duration time.Duration `json:"duration"`
FirstEvent time.Time `json:"first_event"`
LastEvent time.Time `json:"last_event"`
}
TimelineEventStats contains aggregated statistics
type TimelineListResult ¶
type TimelineListResult struct {
Timelines []state.TimelineInfo `json:"timelines"`
TotalCount int `json:"total_count"`
Showing int `json:"showing"`
}
TimelineListResult contains the list output
func (*TimelineListResult) JSON ¶
func (r *TimelineListResult) JSON() interface{}
type TimelineShowResult ¶
type TimelineShowResult struct {
Info *state.TimelineInfo `json:"info"`
Events []state.AgentEvent `json:"events,omitempty"`
Stats *TimelineEventStats `json:"stats"`
}
TimelineShowResult contains timeline details
func (*TimelineShowResult) JSON ¶
func (r *TimelineShowResult) JSON() interface{}
type TimelineStatsResult ¶
type TimelineStatsResult struct {
TotalTimelines int `json:"total_timelines"`
TotalEvents int `json:"total_events"`
TotalAgents int `json:"total_agents"`
TotalSize int64 `json:"total_size_bytes"`
CompressedCount int `json:"compressed_count"`
OldestTimeline string `json:"oldest_timeline,omitempty"`
NewestTimeline string `json:"newest_timeline,omitempty"`
}
TimelineStatsResult contains overall statistics
func (*TimelineStatsResult) JSON ¶
func (r *TimelineStatsResult) JSON() interface{}
type ToolCheck ¶
type ToolCheck struct {
Name string `json:"name"`
Installed bool `json:"installed"`
Version string `json:"version,omitempty"`
Path string `json:"path,omitempty"`
Capabilities []string `json:"capabilities,omitempty"`
Required bool `json:"required"`
Status string `json:"status"` // "ok", "warning", "error"
Message string `json:"message,omitempty"`
}
ToolCheck represents a tool health check result
type UnblockedBead ¶
type UnblockedBead struct {
ID string `json:"id"`
Title string `json:"title"`
Priority int `json:"priority"`
PrevBlockers []string `json:"previous_blockers"`
UnblockedByID string `json:"unblocked_by_id"` // The blocker that was completed
}
UnblockedBead represents a bead that was previously blocked but is now actionable
type UnlockResult ¶
type UnlockResult struct {
Success bool `json:"success"`
Session string `json:"session"`
Agent string `json:"agent"`
Released int `json:"released"`
ReleasedAt *time.Time `json:"released_at,omitempty"`
Error string `json:"error,omitempty"`
}
UnlockResult represents the result of an unlock operation.
type ValidationIssue ¶
type ValidationIssue struct {
Field string `json:"field,omitempty"`
Message string `json:"message"`
Fixable bool `json:"fixable,omitempty"`
}
ValidationIssue represents a single validation error or warning.
type ValidationReport ¶
type ValidationReport struct {
Valid bool `json:"valid"`
Results []ValidationResult `json:"results"`
Summary ValidationSummary `json:"summary"`
}
ValidationReport is the complete validation output.
type ValidationResult ¶
type ValidationResult struct {
Path string `json:"path"`
Type string `json:"type"` // "main", "project", "recipes", "personas", "policy"
Valid bool `json:"valid"`
Errors []ValidationIssue `json:"errors,omitempty"`
Warnings []ValidationIssue `json:"warnings,omitempty"`
Info []string `json:"info,omitempty"`
}
ValidationResult represents the outcome of validating a config file or section.
type ValidationSummary ¶
type ValidationSummary struct {
FilesChecked int `json:"files_checked"`
ErrorCount int `json:"error_count"`
WarningCount int `json:"warning_count"`
FixableCount int `json:"fixable_count"`
}
ValidationSummary provides counts of issues found.
type VersionInput ¶
type VersionInput struct {
Short bool `json:"short,omitempty"`
}
VersionInput is the kernel input for core.version.
type WaitAgentInfo ¶
type WaitAgentInfo struct {
Pane string `json:"pane"`
State string `json:"state"`
MetAt time.Time `json:"met_at"`
AgentType string `json:"agent_type,omitempty"`
}
WaitAgentInfo describes an agent's state when the wait completed.
type WaitCondition ¶
type WaitCondition string
WaitCondition represents a condition to wait for.
const ( // ConditionIdle waits for agent(s) in WAITING state. ConditionIdle WaitCondition = "idle" // ConditionComplete waits for all agents idle AND no recent activity. ConditionComplete WaitCondition = "complete" // ConditionGenerating waits for at least one agent actively generating. ConditionGenerating WaitCondition = "generating" // ConditionHealthy waits for all agents in healthy state (not ERROR/STALLED). ConditionHealthy WaitCondition = "healthy" )
type WaitErrorStateError ¶
type WaitErrorStateError struct {
Pane string
}
WaitErrorStateError indicates an agent entered error state.
func (*WaitErrorStateError) Error ¶
func (e *WaitErrorStateError) Error() string
func (*WaitErrorStateError) ExitCode ¶
func (e *WaitErrorStateError) ExitCode() int
ExitCode returns the exit code for this error (3 for error state).
type WaitOptions ¶
type WaitOptions struct {
Session string
Condition WaitCondition
Timeout time.Duration
PollInterval time.Duration
PaneIndex int // -1 means all panes
AgentType string
WaitForAny bool // If true, wait for ANY agent; otherwise wait for ALL
ExitOnError bool // If true, exit immediately on ERROR state
CountN int // With --any, wait for at least N agents (default 1)
}
WaitOptions configures the wait operation.
type WaitResult ¶
type WaitResult struct {
Success bool `json:"success"`
Timestamp string `json:"timestamp"`
Session string `json:"session"`
Condition string `json:"condition"`
WaitedSeconds float64 `json:"waited_seconds"`
Agents []WaitAgentInfo `json:"agents,omitempty"`
AgentsPending []string `json:"agents_pending,omitempty"`
Error string `json:"error,omitempty"`
ErrorCode string `json:"error_code,omitempty"`
Hint string `json:"hint,omitempty"`
}
WaitResult is the JSON output for robot mode.
type WaitTimeoutError ¶
WaitTimeoutError indicates the wait timed out.
func (*WaitTimeoutError) Error ¶
func (e *WaitTimeoutError) Error() string
func (*WaitTimeoutError) ExitCode ¶
func (e *WaitTimeoutError) ExitCode() int
ExitCode returns the exit code for this error (1 for timeout).
type WatchLoop ¶
type WatchLoop struct {
// contains filtered or unexported fields
}
WatchLoop manages the continuous auto-assignment watch mode
func NewWatchLoop ¶
func NewWatchLoop(session string, store *assignment.AssignmentStore, opts *AutoReassignOptions) *WatchLoop
NewWatchLoop creates a new watch loop for a session
type WizardResult ¶
type WizardResult struct {
ProjectType ProjectType
AgentCount int
EnableAgentMail bool
EnableCASS bool
EnableCM bool
AutoFileReserve bool
Cancelled bool
}
WizardResult contains the wizard configuration choices
func RunInitWizard ¶
func RunInitWizard() (WizardResult, error)
RunInitWizard runs the init wizard and returns the result
type WizardStep ¶
type WizardStep int
WizardStep represents the current step in the init wizard
const ( StepProjectType WizardStep = iota StepAgentCount StepIntegrations StepConfirm StepDone )
type WorkflowInfo ¶
type WorkflowInfo struct {
Name string `json:"name"`
Description string `json:"description"`
Source string `json:"source"`
Coordination string `json:"coordination"`
AgentCount int `json:"agent_count"`
}
WorkflowInfo is a workflow summary for JSON output.
type WorkflowShowResult ¶
type WorkflowShowResult struct {
Name string `json:"name"`
Description string `json:"description"`
Source string `json:"source"`
Coordination string `json:"coordination"`
AgentCount int `json:"agent_count"`
Agents []workflow.WorkflowAgent `json:"agents"`
Flow *workflow.FlowConfig `json:"flow,omitempty"`
Prompts []workflow.SetupPrompt `json:"prompts,omitempty"`
ErrorHandling *workflow.ErrorConfig `json:"error_handling,omitempty"`
}
WorkflowShowResult is the JSON output for workflows show command.
type WorkflowsListResult ¶
type WorkflowsListResult struct {
Workflows []WorkflowInfo `json:"workflows"`
Total int `json:"total"`
}
WorkflowsListResult is the JSON output for workflows list command.
Source Files
¶
- activity.go
- add.go
- adopt.go
- agent_spec.go
- agents_cmd.go
- agents_template.go
- analytics.go
- approve.go
- assign.go
- beads.go
- bind.go
- bugs.go
- cass.go
- changes.go
- checkpoint.go
- cleanup.go
- colors.go
- completion_helpers.go
- context.go
- controller.go
- coordinator.go
- copy.go
- create.go
- dashboard.go
- deps.go
- diff.go
- doctor.go
- ensemble.go
- ensemble_compare.go
- ensemble_estimate.go
- ensemble_presets.go
- ensemble_spawn_stub.go
- ensemble_suggest.go
- errors.go
- extract.go
- get_all_session_text.go
- git.go
- grep.go
- guards.go
- handoff.go
- health.go
- help.go
- history.go
- hooks.go
- init.go
- init_wizard.go
- kernel.go
- level.go
- lock.go
- locks.go
- logs.go
- mail.go
- memory.go
- message.go
- metrics_cmd.go
- modes.go
- monitor.go
- openapi.go
- palette.go
- persona_spec.go
- personas.go
- pipeline.go
- plugins.go
- policy_cmd.go
- preflight.go
- profile.go
- profile_switch.go
- quick.go
- quota.go
- recipes.go
- redaction_io.go
- replay.go
- repo.go
- respawn.go
- resume.go
- rollback.go
- root.go
- rotate.go
- rotate_context.go
- safety.go
- save.go
- scan.go
- scrub.go
- send.go
- serve.go
- session.go
- session_persist.go
- session_templates.go
- setup.go
- spawn.go
- spawn_context.go
- spawn_state.go
- spawn_unix.go
- summary.go
- support_bundle.go
- swarm.go
- table.go
- template.go
- timeline.go
- tutorial.go
- unlock.go
- upgrade.go
- util.go
- validate.go
- view.go
- wait.go
- watch.go
- work.go
- workflows.go
- worktree.go
- worktrees.go
- zoom.go
Directories
¶
| Path | Synopsis |
|---|---|
|
Package tiers provides command tier taxonomy for progressive CLI discovery.
|
Package tiers provides command tier taxonomy for progressive CLI discovery. |