models

package
v1.45.0 Latest Latest
Warning

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

Go to latest
Published: Mar 28, 2026 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Overview

Package models defines the data objects shared across lazyworktree packages.

Index

Constants

View Source
const (
	// LastSelectedFilename stores the last worktree selection for a repo.
	LastSelectedFilename = ".last-selected"
	// CacheFilename stores cached worktree metadata for faster loads.
	CacheFilename = ".worktree-cache.json"
	// CommandHistoryFilename stores the command history for the ! command.
	CommandHistoryFilename = ".command-history.json"
	// AccessHistoryFilename stores worktree access timestamps for sorting.
	AccessHistoryFilename = ".worktree-access.json"
	// CommandPaletteHistoryFilename stores command palette usage history for MRU sorting.
	CommandPaletteHistoryFilename = ".command-palette-history.json"
	// WorktreeNotesFilename stores per-worktree annotations.
	WorktreeNotesFilename = ".worktree-notes.json"
)
View Source
const (
	PRFetchStatusNotFetched = "not_fetched" // PR data has not been fetched yet
	PRFetchStatusFetching   = "fetching"    // PR data is currently being fetched
	PRFetchStatusLoaded     = "loaded"      // PR data was successfully loaded
	PRFetchStatusError      = "error"       // PR fetch encountered an error
	PRFetchStatusNoPR       = "no_pr"       // No PR exists for this branch
)

PR fetch status values for WorktreeInfo.PRFetchStatus field.

Variables

This section is empty.

Functions

func NormalizeTags added in v1.43.0

func NormalizeTags(tags []string) []string

NormalizeTags trims tags and drops empty entries whilst preserving order.

Types

type AgentActivity added in v1.43.0

type AgentActivity string

AgentActivity is the human-friendly label shown in the TUI.

const (
	// AgentActivityIdle shows no recent activity.
	AgentActivityIdle AgentActivity = "idle"
	// AgentActivityWaiting shows the agent waiting for the user.
	AgentActivityWaiting AgentActivity = "waiting"
	// AgentActivityApproval shows the agent waiting for a tool approval/result.
	AgentActivityApproval AgentActivity = "approval"
	// AgentActivityThinking shows the agent reasoning about a response.
	AgentActivityThinking AgentActivity = "thinking"
	// AgentActivityCompacting shows the agent compacting session context.
	AgentActivityCompacting AgentActivity = "compacting"
	// AgentActivityReading shows the agent reading files or data.
	AgentActivityReading AgentActivity = "reading"
	// AgentActivityWriting shows the agent editing files.
	AgentActivityWriting AgentActivity = "writing"
	// AgentActivityRunning shows the agent running a command.
	AgentActivityRunning AgentActivity = "running"
	// AgentActivitySearching shows the agent searching the workspace.
	AgentActivitySearching AgentActivity = "searching"
	// AgentActivityBrowsing shows the agent browsing external or local resources.
	AgentActivityBrowsing AgentActivity = "browsing"
	// AgentActivitySpawning shows the agent launching a sub-agent.
	AgentActivitySpawning AgentActivity = "spawning"
)

type AgentKind added in v1.43.0

type AgentKind string

AgentKind identifies the coding agent that owns a transcript.

const (
	// AgentKindClaude marks a transcript produced by Claude.
	AgentKindClaude AgentKind = "claude"
	// AgentKindPi marks a transcript produced by pi.
	AgentKindPi AgentKind = "pi"
)

type AgentOpenConfidence added in v1.43.0

type AgentOpenConfidence string

AgentOpenConfidence describes how confidently a live process was matched to a session.

const (
	// AgentOpenConfidenceNone means no live process match was found.
	AgentOpenConfidenceNone AgentOpenConfidence = "none"
	// AgentOpenConfidenceExact means a live process had the session transcript open.
	AgentOpenConfidenceExact AgentOpenConfidence = "exact"
	// AgentOpenConfidenceCWD means the live process matched by working directory only.
	AgentOpenConfidenceCWD AgentOpenConfidence = "cwd"
)

type AgentSession added in v1.43.0

type AgentSession struct {
	ID             string
	Agent          AgentKind
	JSONLPath      string
	CWD            string
	Model          string
	GitBranch      string
	DisplayName    string
	LastPromptText string
	LastReplyText  string
	LastTargetPath string
	LastCommand    string
	TaskLabel      string
	CurrentTool    string
	LastToolName   string
	LastToolAt     time.Time
	LastSummaryAt  time.Time
	LastActivity   time.Time
	Status         AgentSessionStatus
	Activity       AgentActivity
	IsOpen         bool
	OpenConfidence AgentOpenConfidence
}

AgentSession summarises a Claude or pi transcript attached to a worktree.

type AgentSessionStatus added in v1.43.0

type AgentSessionStatus string

AgentSessionStatus describes the last observable state of a transcript.

const (
	// AgentSessionStatusUnknown means no recent state could be inferred.
	AgentSessionStatusUnknown AgentSessionStatus = "unknown"
	// AgentSessionStatusWaitingForUser means the agent is waiting on input.
	AgentSessionStatusWaitingForUser AgentSessionStatus = "waiting"
	// AgentSessionStatusWaitingApproval means a delegated tool call is waiting for approval or a result.
	AgentSessionStatusWaitingApproval AgentSessionStatus = "approval"
	// AgentSessionStatusThinking means the agent is reasoning about the next step.
	AgentSessionStatusThinking AgentSessionStatus = "thinking"
	// AgentSessionStatusExecutingTool means the agent is currently invoking a tool.
	AgentSessionStatusExecutingTool AgentSessionStatus = "tool"
	// AgentSessionStatusProcessingResult means the agent is digesting a tool result.
	AgentSessionStatusProcessingResult AgentSessionStatus = "processing"
	// AgentSessionStatusIdle means the transcript has gone quiet.
	AgentSessionStatusIdle AgentSessionStatus = "idle"
)

type CICheck

type CICheck struct {
	Name       string    // Name of the check/job
	Status     string    // Status: "completed", "in_progress", "queued", "pending"
	Conclusion string    // Conclusion: "success", "failure", "skipped", "cancelled", etc.
	Link       string    // URL to the check details page
	StartedAt  time.Time // When the check started (zero if not available)
}

CICheck represents a single CI check/job status.

type CommitFile added in v1.17.0

type CommitFile struct {
	Filename   string
	ChangeType string // A=Added, M=Modified, D=Deleted, R=Renamed, C=Copied
	OldPath    string // For renames: the original path
}

CommitFile represents a file changed in a commit.

type IssueInfo added in v1.20.0

type IssueInfo struct {
	Number      int
	State       string
	Title       string
	Body        string // For branch_name_script input
	URL         string
	Author      string // Issue author username
	AuthorName  string // Issue author full name
	AuthorIsBot bool   // Whether the author is a bot
}

IssueInfo captures the relevant metadata for an issue.

type PRInfo

type PRInfo struct {
	Number      int
	State       string
	Title       string
	Body        string // For branch_name_script input
	URL         string
	Branch      string // Branch name (headRefName for GitHub, source_branch for GitLab)
	BaseBranch  string // Base branch name (baseRefName for GitHub, target_branch for GitLab)
	Author      string // PR/MR author username
	AuthorName  string // PR/MR author full name
	AuthorIsBot bool   // Whether the author is a bot
	IsDraft     bool   // Whether the PR is a draft
	CIStatus    string // Computed CI status: "success", "failure", "pending", "none"
}

PRInfo captures the relevant metadata for a pull request.

type StatusFile added in v1.29.0

type StatusFile struct {
	Filename    string
	Status      string // XY status code (e.g., ".M", "M.", " ?")
	IsUntracked bool
}

StatusFile represents a file entry from git status.

type WorktreeInfo

type WorktreeInfo struct {
	Path           string
	Branch         string
	IsMain         bool
	Dirty          bool
	Ahead          int
	Behind         int
	Unpushed       int // Commits not on any remote (for branches without upstream)
	HasUpstream    bool
	UpstreamBranch string // The upstream branch name (e.g., "origin/main" or "chmouel/feature-branch")
	LastActive     string
	LastActiveTS   int64
	LastSwitchedTS int64 // Unix timestamp of last UI access/switch
	PR             *PRInfo
	PRFetchError   string // Stores error message if PR fetch failed
	PRFetchStatus  string // "not_fetched", "fetching", "loaded", "error", "no_pr"
	Untracked      int
	Modified       int
	Staged         int
	Divergence     string
}

WorktreeInfo summarizes the information for a git worktree.

type WorktreeNote added in v1.35.0

type WorktreeNote struct {
	Note        string   `json:"note,omitempty"`
	Icon        string   `json:"icon,omitempty"`
	Color       string   `json:"color,omitempty"`
	Bold        bool     `json:"bold,omitempty"`
	Description string   `json:"description,omitempty"`
	Tags        []string `json:"tags,omitempty"`
	UpdatedAt   int64    `json:"updated_at"`
}

WorktreeNote stores user-authored metadata for a worktree.

func (WorktreeNote) IsEmpty added in v1.42.0

func (w WorktreeNote) IsEmpty() bool

IsEmpty returns true when every user-visible field is blank (after trimming whitespace).

Jump to

Keyboard shortcuts

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