Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | export interface RepoSizeMetrics {
/** Format version for forward compatibility */
version: number;
/** When this snapshot was taken (ISO 8601, UTC recommended) */
timestamp: string;
/** Repository identity */
repo: {
headCommit: string;
headBranch: string;
};
/** Intrinsic repository structure (commit-based) */
intrinsic: {
commitCount: number;
totalCommitCount: number;
trackedFileCount: number;
trackedDirCount: number;
trackedContentBytes: number;
};
/** Git object database metrics */
gitObjects: {
looseObjectCount: number;
looseObjectSizeKiB: number;
packedObjectCount: number;
packfileCount: number;
packfileSizeKiB: number;
prunePackableSizeKiB: number;
garbageObjectCount: number;
garbageSizeKiB: number;
};
/** Largest blobs ever committed */
largestBlobs: Array<{
path: string;
sizeBytes: number;
}>;
/** Disk usage (checkout-specific) */
diskUsage: {
worktreeBytes: number;
worktreeExcludingGitBytes: number;
gitDirBytes: number;
topLevelDirs: Array<{
path: string;
sizeBytes: number;
}>;
};
}
export interface ProjectStatistics {
timestamp: string;
fileTypes: Array<{
fileType: string;
count: number;
totalLines: number;
totalWords: number;
totalBytes?: number;
}>;
includedFiles?: Array<{
path: string;
fileType: string;
lines: number;
words: number;
bytes: number;
}>;
excludedFolders?: string[];
excludedFiles?: string[];
repoSizeMetrics?: RepoSizeMetrics;
totals: {
files: number;
lines: number;
words: number;
bytes?: number;
};
}
|