status

package
v0.1.0 Latest Latest
Warning

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

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

Documentation

Overview

Package status builds and renders structured Codog runtime status reports.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RenderText

func RenderText(w io.Writer, snapshot Snapshot)

RenderText writes a human-readable status snapshot.

Types

type AllowedToolsStatus

type AllowedToolsStatus struct {
	Source     string            `json:"source"`
	Restricted bool              `json:"restricted"`
	Entries    []string          `json:"entries,omitempty"`
	Available  []string          `json:"available"`
	Aliases    map[string]string `json:"aliases"`
}

AllowedToolsStatus describes the active allowed-tools restriction contract.

type BootBinaryPreflightStatus

type BootBinaryPreflightStatus struct {
	Name      string `json:"name"`
	Available bool   `json:"available"`
	Path      string `json:"path,omitempty"`
}

BootBinaryPreflightStatus reports availability for one startup binary.

type BootComponentPreflightStatus

type BootComponentPreflightStatus struct {
	Eligible   bool   `json:"eligible"`
	Configured int    `json:"configured"`
	Loaded     int    `json:"loaded,omitempty"`
	Invalid    int    `json:"invalid,omitempty"`
	Error      string `json:"error,omitempty"`
}

BootComponentPreflightStatus reports startup eligibility for optional runtime subsystems.

type BootPreflightStatus

type BootPreflightStatus struct {
	Repo                 BootRepoPreflightStatus      `json:"repo"`
	Trust                BootTrustPreflightStatus     `json:"trust"`
	RequiredBinaries     []BootBinaryPreflightStatus  `json:"required_binaries,omitempty"`
	MCPStartup           BootComponentPreflightStatus `json:"mcp_startup"`
	PluginStartup        BootComponentPreflightStatus `json:"plugin_startup"`
	LastFailedBootReason string                       `json:"last_failed_boot_reason,omitempty"`
}

BootPreflightStatus reports static startup readiness signals before runtime initialization.

type BootRepoPreflightStatus

type BootRepoPreflightStatus struct {
	WorkspaceExists bool                    `json:"workspace_exists"`
	GitDirExists    bool                    `json:"git_dir_exists"`
	GitAvailable    bool                    `json:"git_available"`
	Identity        *gitops.Identity        `json:"identity,omitempty"`
	BranchFreshness *gitops.BranchFreshness `json:"branch_freshness,omitempty"`
	BaseCommit      *gitops.BaseCommitCheck `json:"base_commit,omitempty"`
}

BootRepoPreflightStatus summarizes workspace and git availability at startup.

type BootTrustPreflightStatus

type BootTrustPreflightStatus struct {
	Allowed           bool `json:"allowed"`
	TrustedRootsCount int  `json:"trusted_roots_count"`
}

BootTrustPreflightStatus reports whether the workspace passes the trust gate.

type ConfigStatus

type ConfigStatus struct {
	ConfigHome                  string                         `json:"config_home"`
	Model                       string                         `json:"model"`
	ModelEnvVar                 string                         `json:"model_env_var,omitempty"`
	FastMode                    bool                           `json:"fast_mode"`
	BaseURL                     string                         `json:"base_url"`
	RuntimeProvider             string                         `json:"runtime_provider,omitempty"`
	RuntimeProviderSource       string                         `json:"runtime_provider_source,omitempty"`
	ProviderEndpoint            modelrouting.BaseURLDiagnostic `json:"provider_endpoint"`
	PermissionMode              string                         `json:"permission_mode"`
	PermissionModeRaw           string                         `json:"permission_mode_raw"`
	PermissionModeSource        string                         `json:"permission_mode_source"`
	PermissionModeEnvVar        string                         `json:"permission_mode_env_var,omitempty"`
	PermissionRules             PermissionRulesStatus          `json:"permission_rules,omitempty"`
	MaxTokens                   int                            `json:"max_tokens"`
	MaxTurns                    int                            `json:"max_turns"`
	AutoCompactMessages         int                            `json:"auto_compact_messages"`
	Auth                        providerdiag.AuthDiagnostic    `json:"auth"`
	AuthConfigured              bool                           `json:"auth_configured"`
	MCPServerCount              int                            `json:"mcp_server_count"`
	UserPromptSubmitHookCount   int                            `json:"user_prompt_submit_hook_count"`
	SessionStartHookCount       int                            `json:"session_start_hook_count"`
	SessionEndHookCount         int                            `json:"session_end_hook_count"`
	SetupHookCount              int                            `json:"setup_hook_count"`
	PreHookCount                int                            `json:"pre_hook_count"`
	PostHookCount               int                            `json:"post_hook_count"`
	PostFailureHookCount        int                            `json:"post_tool_use_failure_hook_count"`
	PermissionRequestHookCount  int                            `json:"permission_request_hook_count"`
	PermissionDeniedHookCount   int                            `json:"permission_denied_hook_count"`
	StopHookCount               int                            `json:"stop_hook_count"`
	StopFailureHookCount        int                            `json:"stop_failure_hook_count"`
	PreCompactHookCount         int                            `json:"pre_compact_hook_count"`
	PostCompactHookCount        int                            `json:"post_compact_hook_count"`
	NotificationHookCount       int                            `json:"notification_hook_count"`
	SubagentStartHookCount      int                            `json:"subagent_start_hook_count"`
	SubagentStopHookCount       int                            `json:"subagent_stop_hook_count"`
	WorktreeCreateHookCount     int                            `json:"worktree_create_hook_count"`
	WorktreeRemoveHookCount     int                            `json:"worktree_remove_hook_count"`
	CwdChangedHookCount         int                            `json:"cwd_changed_hook_count"`
	TaskCreatedHookCount        int                            `json:"task_created_hook_count"`
	TaskCompletedHookCount      int                            `json:"task_completed_hook_count"`
	InstructionsLoadedHookCount int                            `json:"instructions_loaded_hook_count"`
	FileChangedHookCount        int                            `json:"file_changed_hook_count"`
	EnabledSkillCount           int                            `json:"enabled_skill_count"`
}

ConfigStatus summarizes the effective runtime configuration.

type ConfigValidationStatus

type ConfigValidationStatus struct {
	Status       string   `json:"status"`
	FileCount    int      `json:"file_count"`
	PresentCount int      `json:"present_count"`
	ErrorCount   int      `json:"error_count"`
	WarningCount int      `json:"warning_count"`
	Paths        []string `json:"paths,omitempty"`
}

ConfigValidationStatus summarizes static configuration file validation.

type GitStatus

type GitStatus struct {
	Available    bool                    `json:"available"`
	Error        string                  `json:"error,omitempty"`
	Branch       string                  `json:"branch,omitempty"`
	Upstream     string                  `json:"upstream,omitempty"`
	HasUpstream  bool                    `json:"has_upstream"`
	HeadSHA      string                  `json:"head_sha,omitempty"`
	HeadShortSHA string                  `json:"head_short_sha,omitempty"`
	HeadRef      string                  `json:"head_ref,omitempty"`
	IsDetached   bool                    `json:"is_detached"`
	IsBare       bool                    `json:"is_bare"`
	IsWorktree   bool                    `json:"is_worktree"`
	GitDir       string                  `json:"git_dir,omitempty"`
	Clean        bool                    `json:"clean"`
	Staged       int                     `json:"staged"`
	Unstaged     int                     `json:"unstaged"`
	Untracked    int                     `json:"untracked"`
	Conflicts    int                     `json:"conflicts"`
	Freshness    *gitops.BranchFreshness `json:"freshness,omitempty"`
	BaseCommit   *gitops.BaseCommitCheck `json:"base_commit,omitempty"`
	Operation    *gitops.Operation       `json:"operation,omitempty"`
	Raw          string                  `json:"raw,omitempty"`
}

GitStatus summarizes local git state for the workspace.

type HookValidationStatus

type HookValidationStatus struct {
	ValidCount   int               `json:"valid_count"`
	InvalidCount int               `json:"invalid_count"`
	InvalidHooks []ValidationIssue `json:"invalid_hooks,omitempty"`
}

HookValidationStatus summarizes static hook configuration validation.

type LaneBoardStatus

type LaneBoardStatus struct {
	StatusJSONSupported bool                        `json:"status_json_supported"`
	FreshnessStates     []background.LaneFreshness  `json:"freshness_states"`
	Available           bool                        `json:"available"`
	Error               string                      `json:"error,omitempty"`
	ActiveCount         int                         `json:"active_count"`
	BlockedCount        int                         `json:"blocked_count"`
	FinishedCount       int                         `json:"finished_count"`
	GeneratedAt         string                      `json:"generated_at,omitempty"`
	Active              []background.LaneBoardEntry `json:"active,omitempty"`
	Blocked             []background.LaneBoardEntry `json:"blocked,omitempty"`
	Finished            []background.LaneBoardEntry `json:"finished,omitempty"`
}

LaneBoardStatus summarizes background task lanes.

type MCPValidationStatus

type MCPValidationStatus struct {
	TotalConfigured int               `json:"total_configured"`
	ValidCount      int               `json:"valid_count"`
	RequiredCount   int               `json:"required_count"`
	OptionalCount   int               `json:"optional_count"`
	InvalidCount    int               `json:"invalid_count"`
	InvalidServers  []ValidationIssue `json:"invalid_servers,omitempty"`
}

MCPValidationStatus summarizes static MCP server configuration validation.

type MemoryFileStatus

type MemoryFileStatus struct {
	Path           string `json:"path"`
	Name           string `json:"name"`
	Source         string `json:"source,omitempty"`
	Origin         string `json:"origin,omitempty"`
	Scope          string `json:"scope"`
	ScopePath      string `json:"scope_path,omitempty"`
	OutsideProject bool   `json:"outside_project,omitempty"`
	Chars          int    `json:"chars"`
	Lines          int    `json:"lines"`
	Words          int    `json:"words"`
	SizeBytes      int64  `json:"size_bytes"`
	ModifiedAt     string `json:"modified_at,omitempty"`
	AgeSeconds     int64  `json:"age_seconds"`
	Empty          bool   `json:"empty"`
	Contributes    bool   `json:"contributes"`
	Truncated      bool   `json:"truncated,omitempty"`
}

MemoryFileStatus describes one instruction file loaded into context.

type Options

type Options struct {
	Version                     string
	FormatSource                string
	FormatRaw                   string
	FormatOverridden            bool
	ConfigLoadError             string
	ConfigLoadErrorKind         string
	Workspace                   string
	ConfigHome                  string
	Model                       string
	ModelEnvVar                 string
	RuntimeProvider             string
	RuntimeProviderSource       string
	FastMode                    bool
	BaseURL                     string
	PermissionMode              string
	PermissionModeRaw           string
	PermissionModeSource        string
	PermissionModeEnvVar        string
	PermissionRules             config.PermissionRules
	MaxTokens                   int
	MaxTurns                    int
	AutoCompactMessages         int
	APIKey                      string
	AuthToken                   string
	AuthConfigured              bool
	MCPServerCount              int
	InstalledPluginCount        int
	PluginLoadError             string
	TrustedRoots                []string
	LastFailedBootReason        string
	UserPromptSubmitHookCount   int
	SessionStartHookCount       int
	SessionEndHookCount         int
	SetupHookCount              int
	PreHookCount                int
	PostHookCount               int
	PostFailureHookCount        int
	PermissionRequestHookCount  int
	PermissionDeniedHookCount   int
	StopHookCount               int
	StopFailureHookCount        int
	PreCompactHookCount         int
	PostCompactHookCount        int
	NotificationHookCount       int
	SubagentStartHookCount      int
	SubagentStopHookCount       int
	WorktreeCreateHookCount     int
	WorktreeRemoveHookCount     int
	CwdChangedHookCount         int
	TaskCreatedHookCount        int
	TaskCompletedHookCount      int
	InstructionsLoadedHookCount int
	FileChangedHookCount        int
	EnabledSkillCount           int
	ConfigValidation            ConfigValidationStatus
	MCPValidation               MCPValidationStatus
	HookValidation              HookValidationStatus
	PlanActive                  bool
	PlanText                    string
	PlanUpdatedAt               string
	MemoryFiles                 []MemoryFileStatus
	ToolNames                   []string
	AllowedToolSource           string
	AllowedToolEntries          []string
	ToolAliases                 map[string]string
	SessionID                   string
	SessionPath                 string
	SessionNamespacePath        string
	SessionWorkspace            string
	SessionWorkspaceFingerprint string
	SessionMessages             int
	SessionCount                int
	SessionCreatedAtMS          int64
	SessionUpdatedAtMS          int64
	SessionModifiedEpochMillis  int64
	SessionParentSessionID      string
	SessionBranchName           string
	SessionLifecycleKind        string
	SessionLifecycleSignal      string
	GitStatus                   string
	GitError                    string
	GitFreshness                *gitops.BranchFreshness
	GitIdentity                 *gitops.Identity
	GitBaseCommit               *gitops.BaseCommitCheck
	GitOperation                *gitops.Operation
	LaneBoard                   *background.LaneBoard
	LaneBoardError              string
	SandboxOS                   string
	SandboxDefault              string
	SandboxStrategies           []string
	SandboxAvailable            bool
	Executable                  string
}

Options contains the runtime inputs needed to build a status snapshot.

type PermissionRuleStatus

type PermissionRuleStatus struct {
	Raw              string   `json:"raw"`
	Tool             string   `json:"tool,omitempty"`
	ResolvedToolName string   `json:"resolved_tool_name,omitempty"`
	Matcher          string   `json:"matcher,omitempty"`
	UnknownTool      bool     `json:"unknown_tool,omitempty"`
	Suggestions      []string `json:"suggestions,omitempty"`
}

PermissionRuleStatus describes one configured permission rule.

type PermissionRulesStatus

type PermissionRulesStatus struct {
	Allow        []PermissionRuleStatus `json:"allow,omitempty"`
	Deny         []PermissionRuleStatus `json:"deny,omitempty"`
	Ask          []PermissionRuleStatus `json:"ask,omitempty"`
	DeniedTools  []PermissionRuleStatus `json:"denied_tools,omitempty"`
	UnknownCount int                    `json:"unknown_count,omitempty"`
}

PermissionRulesStatus exposes parsed permission rules for automation audits.

func BuildPermissionRulesStatus

func BuildPermissionRulesStatus(rules config.PermissionRules, toolNames []string, toolAliases map[string]string) PermissionRulesStatus

BuildPermissionRulesStatus parses configured permission rules against the active tool registry so status and doctor use the same audit semantics.

type PlanStatus

type PlanStatus struct {
	Active    bool   `json:"active"`
	Text      string `json:"text,omitempty"`
	UpdatedAt string `json:"updated_at,omitempty"`
}

PlanStatus reports whether plan mode is active for the workspace.

type RuntimeStatus

type RuntimeStatus struct {
	OS         string `json:"os"`
	Arch       string `json:"arch"`
	GoVersion  string `json:"go_version"`
	Executable string `json:"executable,omitempty"`
}

RuntimeStatus reports the Codog process and Go runtime details.

type SandboxStatus

type SandboxStatus struct {
	OS         string   `json:"os"`
	Default    string   `json:"default,omitempty"`
	Strategies []string `json:"strategies,omitempty"`
	Available  bool     `json:"available"`
}

SandboxStatus reports sandbox detection and configured execution strategy.

type SessionLifecycleStatus

type SessionLifecycleStatus struct {
	Kind      string `json:"kind"`
	Signal    string `json:"signal"`
	Saved     bool   `json:"saved"`
	Abandoned bool   `json:"abandoned"`
}

SessionLifecycleStatus describes whether a saved session is complete or abandoned.

type SessionStatus

type SessionStatus struct {
	Active               bool                    `json:"active"`
	ID                   string                  `json:"id,omitempty"`
	Path                 string                  `json:"path,omitempty"`
	NamespacePath        string                  `json:"namespace_path,omitempty"`
	Workspace            string                  `json:"workspace,omitempty"`
	WorkspaceFingerprint string                  `json:"workspace_fingerprint,omitempty"`
	MessageCount         int                     `json:"message_count"`
	SavedCount           int                     `json:"saved_count"`
	CreatedAtMS          int64                   `json:"created_at_ms,omitempty"`
	UpdatedAtMS          int64                   `json:"updated_at_ms,omitempty"`
	ModifiedEpochMillis  int64                   `json:"modified_epoch_millis,omitempty"`
	ParentSessionID      string                  `json:"parent_session_id,omitempty"`
	BranchName           string                  `json:"branch_name,omitempty"`
	Lifecycle            *SessionLifecycleStatus `json:"lifecycle,omitempty"`
}

SessionStatus summarizes the active session and saved session ledger.

type Snapshot

type Snapshot struct {
	Kind                string                 `json:"kind"`
	Action              string                 `json:"action"`
	Status              string                 `json:"status"`
	FormatSource        string                 `json:"format_source"`
	FormatRaw           string                 `json:"format_raw"`
	FormatOverridden    bool                   `json:"format_overridden"`
	ConfigLoadError     string                 `json:"config_load_error,omitempty"`
	ConfigLoadErrorKind string                 `json:"config_load_error_kind,omitempty"`
	Version             string                 `json:"version"`
	Workspace           WorkspaceStatus        `json:"workspace"`
	Config              ConfigStatus           `json:"config"`
	Session             SessionStatus          `json:"session"`
	Plan                PlanStatus             `json:"plan"`
	Tools               ToolsStatus            `json:"tools"`
	AllowedTools        AllowedToolsStatus     `json:"allowed_tools"`
	Git                 GitStatus              `json:"git"`
	LaneBoard           LaneBoardStatus        `json:"lane_board"`
	Sandbox             SandboxStatus          `json:"sandbox"`
	Runtime             RuntimeStatus          `json:"runtime"`
	BootPreflight       BootPreflightStatus    `json:"boot_preflight"`
	ConfigValidation    ConfigValidationStatus `json:"config_validation"`
	MCPValidation       MCPValidationStatus    `json:"mcp_validation"`
	HookValidation      HookValidationStatus   `json:"hook_validation"`
}

Snapshot is the stable JSON payload returned by `codog status --json`.

func Build

func Build(opts Options) Snapshot

Build converts runtime options into a status snapshot.

type ToolsStatus

type ToolsStatus struct {
	Count int      `json:"count"`
	Names []string `json:"names"`
}

ToolsStatus lists the registered tool names visible to the model runtime.

type ValidationIssue

type ValidationIssue struct {
	Name       string `json:"name,omitempty"`
	Event      string `json:"event,omitempty"`
	Index      *int   `json:"index,omitempty"`
	HookIndex  *int   `json:"hook_index,omitempty"`
	Kind       string `json:"kind,omitempty"`
	ErrorField string `json:"error_field,omitempty"`
	Reason     string `json:"reason"`
	Command    string `json:"command,omitempty"`
	Matcher    string `json:"matcher,omitempty"`
	Valid      bool   `json:"valid"`
}

ValidationIssue describes one invalid MCP server or hook entry.

type WorkspaceStatus

type WorkspaceStatus struct {
	Path            string             `json:"path"`
	Name            string             `json:"name"`
	MemoryFileCount int                `json:"memory_file_count"`
	MemoryFiles     []MemoryFileStatus `json:"memory_files,omitempty"`
}

WorkspaceStatus describes the active workspace and loaded project memory.

Jump to

Keyboard shortcuts

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