import type { ProductGraph } from '../graph/graph-types.js'; import type { IncrementalSpec } from '../incremental/types.js'; import type { ReviewerAgent } from '../reviewers/reviewer.js'; import type { ReviewFinding } from '../reviewers/types.js'; import type { GraphSlice } from '../generator/contracts.js'; export type PartyRole = 'architect' | 'security' | 'developer' | 'qa' | 'ux'; export interface PartyAgent { readonly role: PartyRole; readonly reviewer: ReviewerAgent; } export interface PartyConfig { readonly agents: readonly PartyAgent[]; readonly coordinationMode: 'sequential' | 'parallel'; readonly maxRounds: number; } export interface PartyRound { readonly roundNumber: number; readonly agentResults: readonly PartyAgentResult[]; readonly consensusReached: boolean; } export interface PartyAgentResult { readonly role: PartyRole; readonly findings: readonly ReviewFinding[]; } export interface PartyResult { readonly rounds: readonly PartyRound[]; readonly finalConsensus: boolean; readonly totalFindings: number; } /** * Get the graph slices relevant to a party role. */ export declare function getSlicesForRole(graph: ProductGraph, role: PartyRole): readonly GraphSlice[]; /** * Run a party-mode review session. * * Each round: * 1. Each agent reviews the full graph (agents are reviewers with role context) * 2. Findings are collected * 3. Consensus is checked — no new critical/error findings → done * 4. If max rounds reached → stop */ export declare function runParty(graph: ProductGraph, spec: IncrementalSpec, config: PartyConfig): PartyResult; /** * Format party results for human output. */ export declare function formatPartyHuman(result: PartyResult): string; //# sourceMappingURL=party.d.ts.map