nexus-agents - v2.80.0
    Preparing search index...

    Interface IVotingProtocol

    Interface for the multi-round voting protocol. (Source: Issue #100, arXiv:2512.21352)

    interface IVotingProtocol {
        createSession(
            topic: string,
            committee: string[],
            config?: Partial<VotingProtocolConfig>,
        ): VotingSession;
        startAnalysisRound(sessionId: string): Promise<VotingRound>;
        submitFindings(
            sessionId: string,
            agentId: string,
            findings: {
                agentId: string;
                category:
                    | "security"
                    | "documentation"
                    | "design"
                    | "performance"
                    | "bug"
                    | "other"
                    | "style";
                severity: "critical"
                | "suggestion"
                | "minor"
                | "major";
                description: string;
                location?: string;
                suggestion?: string;
                confidence: number;
                timestamp?: string;
            }[],
        ): Promise<void>;
        startDeliberationRound(sessionId: string): Promise<VotingRound>;
        voteOnFinding(
            sessionId: string,
            vote: {
                agentId: string;
                findingId: string;
                agree: boolean;
                reasoning?: string;
                amendedSeverity?: "critical" | "suggestion" | "minor" | "major";
            },
        ): Promise<void>;
        startConsensusRound(sessionId: string): Promise<VotingRound>;
        submitFinalVote(
            sessionId: string,
            agentId: string,
            vote: {
                decision: "approve" | "reject" | "abstain";
                reasoning: string;
                confidence: number;
                conditions?: string[];
                rejectionCategories?: (
                    | "YAGNI"
                    | "DRY_VIOLATION"
                    | "OVER_ENGINEERING"
                    | "SCOPE_CREEP"
                    | "SECURITY_RISK"
                    | "MISALIGNED"
                    | "INSUFFICIENT_EVIDENCE"
                )[];
                findings?: {
                    summary: string;
                    location: string;
                    severity: "low"
                    | "medium"
                    | "high"
                    | "critical";
                    gate: {
                        reread_cited_line: "failed" | "skipped" | "passed";
                        traced_call_path: "failed" | "skipped" | "passed";
                        named_assertion: string;
                        ruled_out_language_non_issue: "failed" | "skipped" | "passed";
                    };
                    claim: string;
                }[];
                timestamp?: string;
            },
        ): Promise<void>;
        getResult(sessionId: string): Promise<VotingProtocolResult | null>;
        detectSycophancy(sessionId: string): SycophancyReport;
        getSession(sessionId: string): VotingSession | undefined;
    }

    Implemented by

    Index

    Methods

    • Submit findings from an agent during analysis

      Parameters

      • sessionId: string
      • agentId: string
      • findings: {
            agentId: string;
            category:
                | "security"
                | "documentation"
                | "design"
                | "performance"
                | "bug"
                | "other"
                | "style";
            severity: "critical"
            | "suggestion"
            | "minor"
            | "major";
            description: string;
            location?: string;
            suggestion?: string;
            confidence: number;
            timestamp?: string;
        }[]

      Returns Promise<void>

    • Vote on findings during deliberation

      Parameters

      • sessionId: string
      • vote: {
            agentId: string;
            findingId: string;
            agree: boolean;
            reasoning?: string;
            amendedSeverity?: "critical" | "suggestion" | "minor" | "major";
        }

      Returns Promise<void>

    • Submit final vote during consensus

      Parameters

      • sessionId: string
      • agentId: string
      • vote: {
            decision: "approve" | "reject" | "abstain";
            reasoning: string;
            confidence: number;
            conditions?: string[];
            rejectionCategories?: (
                | "YAGNI"
                | "DRY_VIOLATION"
                | "OVER_ENGINEERING"
                | "SCOPE_CREEP"
                | "SECURITY_RISK"
                | "MISALIGNED"
                | "INSUFFICIENT_EVIDENCE"
            )[];
            findings?: {
                summary: string;
                location: string;
                severity: "low"
                | "medium"
                | "high"
                | "critical";
                gate: {
                    reread_cited_line: "failed" | "skipped" | "passed";
                    traced_call_path: "failed" | "skipped" | "passed";
                    named_assertion: string;
                    ruled_out_language_non_issue: "failed" | "skipped" | "passed";
                };
                claim: string;
            }[];
            timestamp?: string;
        }
        • decision: "approve" | "reject" | "abstain"
        • reasoning: string
        • confidence: number
        • Optionalconditions?: string[]
        • OptionalrejectionCategories?: (
              | "YAGNI"
              | "DRY_VIOLATION"
              | "OVER_ENGINEERING"
              | "SCOPE_CREEP"
              | "SECURITY_RISK"
              | "MISALIGNED"
              | "INSUFFICIENT_EVIDENCE"
          )[]

          Structured rejection categories for reject→refine→re-vote loops (Issue #1213).

        • Optionalfindings?: {
              summary: string;
              location: string;
              severity: "low" | "medium" | "high" | "critical";
              gate: {
                  reread_cited_line: "failed" | "skipped" | "passed";
                  traced_call_path: "failed" | "skipped" | "passed";
                  named_assertion: string;
                  ruled_out_language_non_issue: "failed" | "skipped" | "passed";
              };
              claim: string;
          }[]

          Pre-verified PR-review findings (#2245 v4 follow-up). Optional; populated only when the voter emits the structured top-level array.

        • Optionaltimestamp?: string

      Returns Promise<void>