Variable INITIAL_STATEConst
INITIAL_STATE: {
activeIssues: {
createdAt: string;
id: number;
labels: string[];
number: number;
repo: string;
status: "candidate" | "claimed" | "in_progress" | "pr_submitted";
title: string;
updatedAt: string;
url: string;
vetted: boolean;
vettingResult?: {
checks: {
clearRequirements: boolean;
contributionGuidelinesFound: boolean;
noExistingPR: boolean;
notClaimed: boolean;
projectActive: boolean;
};
contributionGuidelines?: {
branchNamingConvention?: string;
claRequired?: boolean;
commitMessageFormat?: string;
formatter?: string;
issueClaimProcess?: string;
linter?: string;
prTitleFormat?: string;
rawContent?: string;
requiredChecks?: string[];
reviewProcess?: string;
styleGuideUrl?: string;
testCoverageRequired?: boolean;
testFileNaming?: string;
testFramework?: string;
};
notes: string[];
passedAllChecks: boolean;
};
}[];
closedPRs?: { closedAt: string; title: string; url: string }[];
config: {
aiPolicyBlocklist: string[];
approachingDormantDays: number;
dismissedIssues: Record<string, string>;
dormantThresholdDays: number;
excludeOrgs?: string[];
excludeRepos: string[];
githubUsername: string;
includeDocIssues: boolean;
issueListPath?: string;
labels: string[];
languages: string[];
localRepoScanPaths?: string[];
maxActivePRs: number;
maxIssueAgeDays: number;
minRepoScoreThreshold: number;
minStars: number;
preferredOrgs: string[];
projectCategories: (
| "nonprofit"
| "devtools"
| "infrastructure"
| "web-frameworks"
| "data-ml"
| "education"
)[];
scope?: ("advanced" | "beginner" | "intermediate")[];
scoreThreshold: number;
setupComplete: boolean;
setupCompletedAt?: string;
shelvedPRUrls: string[];
showHealthCheck?: boolean;
squashByDefault: boolean | "ask";
starredRepos: string[];
starredReposLastFetched?: string;
statusOverrides?: Record<
string,
{
lastActivityAt: string;
setAt: string;
status: "needs_addressing"
| "waiting_on_maintainer";
},
>;
trustedProjects: string[];
};
dailyActivityCounts?: Record<string, number>;
events: {
at: string;
data: Record<string, unknown>;
id: string;
type:
| "pr_tracked"
| "pr_merged"
| "pr_closed"
| "pr_dormant"
| "daily_check"
| "comment_posted";
}[];
lastDigest?: {
autoUnshelvedPRs: {
daysSinceActivity: number;
number: number;
repo: string;
status: "needs_addressing"
| "waiting_on_maintainer";
title: string;
url: string;
}[];
generatedAt: string;
needsAddressingPRs: any[];
openPRs: any[];
recentlyClosedPRs: {
closedAt: string;
closedBy?: string;
number: number;
repo: string;
title: string;
url: string;
}[];
recentlyMergedPRs: {
mergedAt: string;
number: number;
repo: string;
title: string;
url: string;
}[];
shelvedPRs: {
daysSinceActivity: number;
number: number;
repo: string;
status: "needs_addressing"
| "waiting_on_maintainer";
title: string;
url: string;
}[];
summary: {
mergeRate: number;
totalActivePRs: number;
totalMergedAllTime: number;
totalNeedingAttention: number;
};
waitingOnMaintainerPRs: any[];
};
lastDigestAt?: string;
lastRunAt: string;
localRepoCache?: {
cachedAt: string;
repos: Record<
string,
{ currentBranch: string
| null; exists: boolean; path: string },
>;
scanPaths: string[];
};
mergedPRs?: { mergedAt: string; title: string; url: string }[];
monthlyClosedCounts?: Record<string, number>;
monthlyMergedCounts?: Record<string, number>;
monthlyOpenedCounts?: Record<string, number>;
repoScores: Record<
string,
{
avgResponseDays: number
| null;
closedWithoutMergeCount: number;
language?: string | null;
lastEvaluatedAt: string;
lastMergedAt?: string;
mergedPRCount: number;
repo: string;
score: number;
signals: {
hasActiveMaintainers: boolean;
hasHostileComments: boolean;
isResponsive: boolean;
};
stargazersCount?: number;
},
>;
version: 2;
} = ...
Type Declaration
activeIssues: {
createdAt: string;
id: number;
labels: string[];
number: number;
repo: string;
status: "candidate" | "claimed" | "in_progress" | "pr_submitted";
title: string;
updatedAt: string;
url: string;
vetted: boolean;
vettingResult?: {
checks: {
clearRequirements: boolean;
contributionGuidelinesFound: boolean;
noExistingPR: boolean;
notClaimed: boolean;
projectActive: boolean;
};
contributionGuidelines?: {
branchNamingConvention?: string;
claRequired?: boolean;
commitMessageFormat?: string;
formatter?: string;
issueClaimProcess?: string;
linter?: string;
prTitleFormat?: string;
rawContent?: string;
requiredChecks?: string[];
reviewProcess?: string;
styleGuideUrl?: string;
testCoverageRequired?: boolean;
testFileNaming?: string;
testFramework?: string;
};
notes: string[];
passedAllChecks: boolean;
};
}[]
OptionalclosedPRs?: { closedAt: string; title: string; url: string }[]
config: {
aiPolicyBlocklist: string[];
approachingDormantDays: number;
dismissedIssues: Record<string, string>;
dormantThresholdDays: number;
excludeOrgs?: string[];
excludeRepos: string[];
githubUsername: string;
includeDocIssues: boolean;
issueListPath?: string;
labels: string[];
languages: string[];
localRepoScanPaths?: string[];
maxActivePRs: number;
maxIssueAgeDays: number;
minRepoScoreThreshold: number;
minStars: number;
preferredOrgs: string[];
projectCategories: (
| "nonprofit"
| "devtools"
| "infrastructure"
| "web-frameworks"
| "data-ml"
| "education"
)[];
scope?: ("advanced" | "beginner" | "intermediate")[];
scoreThreshold: number;
setupComplete: boolean;
setupCompletedAt?: string;
shelvedPRUrls: string[];
showHealthCheck?: boolean;
squashByDefault: boolean | "ask";
starredRepos: string[];
starredReposLastFetched?: string;
statusOverrides?: Record<
string,
{
lastActivityAt: string;
setAt: string;
status: "needs_addressing"
| "waiting_on_maintainer";
},
>;
trustedProjects: string[];
}
OptionaldailyActivityCounts?: Record<string, number>
events: {
at: string;
data: Record<string, unknown>;
id: string;
type:
| "pr_tracked"
| "pr_merged"
| "pr_closed"
| "pr_dormant"
| "daily_check"
| "comment_posted";
}[]
OptionallastDigest?: {
autoUnshelvedPRs: {
daysSinceActivity: number;
number: number;
repo: string;
status: "needs_addressing" | "waiting_on_maintainer";
title: string;
url: string;
}[];
generatedAt: string;
needsAddressingPRs: any[];
openPRs: any[];
recentlyClosedPRs: {
closedAt: string;
closedBy?: string;
number: number;
repo: string;
title: string;
url: string;
}[];
recentlyMergedPRs: {
mergedAt: string;
number: number;
repo: string;
title: string;
url: string;
}[];
shelvedPRs: {
daysSinceActivity: number;
number: number;
repo: string;
status: "needs_addressing"
| "waiting_on_maintainer";
title: string;
url: string;
}[];
summary: {
mergeRate: number;
totalActivePRs: number;
totalMergedAllTime: number;
totalNeedingAttention: number;
};
waitingOnMaintainerPRs: any[];
}
OptionallastDigestAt?: string
lastRunAt: string
OptionallocalRepoCache?: {
cachedAt: string;
repos: Record<
string,
{ currentBranch: string
| null; exists: boolean; path: string },
>;
scanPaths: string[];
}
OptionalmergedPRs?: { mergedAt: string; title: string; url: string }[]
OptionalmonthlyClosedCounts?: Record<string, number>
OptionalmonthlyMergedCounts?: Record<string, number>
OptionalmonthlyOpenedCounts?: Record<string, number>
repoScores: Record<
string,
{
avgResponseDays: number
| null;
closedWithoutMergeCount: number;
language?: string | null;
lastEvaluatedAt: string;
lastMergedAt?: string;
mergedPRCount: number;
repo: string;
score: number;
signals: {
hasActiveMaintainers: boolean;
hasHostileComments: boolean;
isResponsive: boolean;
};
stargazersCount?: number;
},
>
version: 2
Initial state written to
~/.oss-autopilot/state.jsonon first run. Uses v2 architecture.