/** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */ /** * Git domain state, tracks the current repository status, staged/unstaged * changes, active branch, and recent commits. */ /** Git working tree file status codes. */ export type GitFileStatus = 'added' | 'modified' | 'deleted' | 'renamed' | 'copied' | 'untracked' | 'conflicted' | 'ignored'; /** A single file's status in the working tree. */ export interface GitFileRecord { /** Relative file path from repo root. */ path: string; /** Old path (only present for renames). */ oldPath?: string | undefined; /** Working tree status. */ workingStatus: GitFileStatus; /** Index (staged) status. */ indexStatus: GitFileStatus; /** Whether the file is staged for commit. */ staged: boolean; } /** A recent commit summary. */ export interface GitCommitSummary { /** Full commit hash. */ hash: string; /** Short commit hash (7 chars). */ shortHash: string; /** Commit message (first line). */ message: string; /** Author name. */ author: string; /** Commit timestamp (epoch ms). */ timestamp: number; } /** Branch information. */ export interface GitBranchInfo { /** Current branch name. */ name: string; /** Whether HEAD is detached. */ detached: boolean; /** Remote tracking branch (if any). */ upstream?: string | undefined; /** Number of commits ahead of upstream. */ ahead: number; /** Number of commits behind upstream. */ behind: number; } /** * GitDomainState, git repository status and change tracking. */ export interface GitDomainState { /** Monotonic revision counter; increments on every mutation. */ revision: number; /** Timestamp of last mutation (Date.now()). */ lastUpdatedAt: number; /** Subsystem that triggered the last mutation. */ source: string; /** Whether the session's project root is a git repository. */ isRepo: boolean; /** Absolute path to the repository root. */ repoRoot?: string | undefined; /** Current branch info (undefined if not a repo or not loaded). */ branch?: GitBranchInfo | undefined; /** All tracked changed files in the working tree. */ changedFiles: GitFileRecord[]; /** Count of staged files. */ stagedCount: number; /** Count of unstaged modified/deleted files. */ unstagedCount: number; /** Count of untracked files. */ untrackedCount: number; /** Count of conflicted files. */ conflictCount: number; /** Recent commits (last 20). */ recentCommits: GitCommitSummary[]; /** Hash of the HEAD commit. */ headCommitHash?: string | undefined; /** Epoch ms of the last git status refresh. */ lastRefreshedAt?: number | undefined; /** Whether a git status refresh is in progress. */ refreshing: boolean; } /** * Returns the default initial state for the git domain. */ export declare function createInitialGitState(): GitDomainState; //# sourceMappingURL=git.d.ts.map