import { type PiAgentRequest } from "./pi-agent-group.js"; import { type PlainSummaryInput } from "./plain-summary.workflow.js"; declare const reviewAreas: readonly ["necessity", "duplication", "contracts", "scope_tests"]; export type SanityCheckArea = (typeof reviewAreas)[number]; export type SanityCheckMode = "serial" | "parallel"; export type SanityCheckVerdict = "keep" | "simplify" | "refactor" | "drop" | "needs_evidence"; export type SanityCheckInput = { mode?: SanityCheckMode; baseRef?: string; }; type SanityCheckConfig = { mode: SanityCheckMode; baseRef?: string; }; type EvidenceText = { text: string; truncated: boolean; }; export type ContributionEvidence = { repository: string; baseRef: string; headRevision: string; pullRequest: { available: boolean; data?: unknown; }; committed: { stat: EvidenceText; files: EvidenceText; diff: EvidenceText; }; workingTree: { status: EvidenceText; stat: EvidenceText; files: EvidenceText; diff: EvidenceText; untracked: EvidenceText; }; }; export type SanityCheckEvidence = { path: string; symbol: string; detail: string; }; export type SanityCheckAreaResult = { area: SanityCheckArea; assessment: "pass" | "concern" | "unclear"; summary: string; evidence: SanityCheckEvidence[]; alternative?: string; }; export type SanityCheckReview = { areas: SanityCheckAreaResult[]; acceptanceCase: string; questions: string[]; unknowns: string[]; }; export type SanityCheckResult = { verdict: SanityCheckVerdict; summary: string; findings: SanityCheckAreaResult[]; requiredChanges: string[]; questionsForContributor: string[]; unknowns: string[]; }; export declare function parseSanityCheckInput(value: unknown): SanityCheckConfig; export declare function collectContributionEvidence(config: SanityCheckConfig, cwd: string, signal: AbortSignal): Promise; type SanityCheckAgentPrompt = Pick; export declare function buildReviewRequests(mode: SanityCheckMode, evidence: ContributionEvidence): SanityCheckAgentPrompt[]; export declare function buildVerificationRequest(evidence: ContributionEvidence, reviews: SanityCheckReview[]): SanityCheckAgentPrompt; export declare function parseReviewOutput(value: unknown, expectedAreas: readonly SanityCheckArea[]): SanityCheckReview; export declare function parseSanityCheckResult(value: unknown): SanityCheckResult; export declare function formatSanityCheckReport(result: SanityCheckResult): string; export declare function buildDetailedSanityCheckPrompt(result: SanityCheckResult): string; export declare function buildSanityCheckSummaryInput(result: SanityCheckResult, detailedReport: string): PlainSummaryInput; export declare function parseAgentJsonOutput(text: string, agentId: string): unknown; export declare const sanityCheckWorkflow: import("../workflows/types.js").WorkflowDefinition, { readonly plainSummary: import("../workflows/types.js").WorkflowIncludeDefinition import("./plain-summary.workflow.js").PlainSummaryResult; }; }, import("../workflows/types.js").WorkflowIncludeMap> & { nodes: { readonly summarize: import("../workflows/types.js").AssistantAgentNodeDefinition; readonly finish: import("../workflows/types.js").ComputeNodeDefinition; }; includes?: import("../workflows/types.js").WorkflowIncludeMap; exits?: { readonly completed: { readonly from: "finish"; readonly validate: (value: unknown) => import("./plain-summary.workflow.js").PlainSummaryResult; }; }; }>; }> & { nodes: { readonly prepare: import("../workflows/types.js").ComputeNodeDefinition; readonly collectEvidence: import("../workflows/types.js").FunctionActionNodeDefinition; readonly review: import("../workflows/types.js").FunctionActionNodeDefinition; readonly verify: import("../workflows/types.js").FunctionActionNodeDefinition; readonly detailedReport: import("../workflows/types.js").AssistantAgentNodeDefinition; readonly finish: import("../workflows/types.js").ComputeNodeDefinition; }; includes?: { readonly plainSummary: import("../workflows/types.js").WorkflowIncludeDefinition import("./plain-summary.workflow.js").PlainSummaryResult; }; }, import("../workflows/types.js").WorkflowIncludeMap> & { nodes: { readonly summarize: import("../workflows/types.js").AssistantAgentNodeDefinition; readonly finish: import("../workflows/types.js").ComputeNodeDefinition; }; includes?: import("../workflows/types.js").WorkflowIncludeMap; exits?: { readonly completed: { readonly from: "finish"; readonly validate: (value: unknown) => import("./plain-summary.workflow.js").PlainSummaryResult; }; }; }>; }; exits?: Record; }; export default sanityCheckWorkflow;