# Interface ProposalState

Internal proposal state managed by the engine.

interface ProposalState {
proposal: {
id?: string;
title: string;
description: string;
algorithm:
| "simple_majority"
| "supermajority"
| "unanimous"
| "proof_of_learning"
| "opinion_wise"
| "higher_order";
timeout?: number;
requiredVoters?: string[];
metadata?: Record<string, unknown>;
createdAt?: string;
};
status: | "timeout"
| "closed"
| "pending"
| "rejected"
| "voting"
| "approved";
votes: Map<
string,
{
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;
},
>;
voteWeights: Map<string, number>;
startedAt: Date;
timeoutId?: Timeout;
expansionRounds?: number;
}

- Defined in packages/nexus-agents/src/consensus/types-core.ts:328

##### Index

### Properties

proposal
status
votes
voteWeights
startedAt
timeoutId?
expansionRounds?

## Properties

### proposal

proposal: {
id?: string;
title: string;
description: string;
algorithm:
| "simple_majority"
| "supermajority"
| "unanimous"
| "proof_of_learning"
| "opinion_wise"
| "higher_order";
timeout?: number;
requiredVoters?: string[];
metadata?: Record<string, unknown>;
createdAt?: string;
}

- Defined in packages/nexus-agents/src/consensus/types-core.ts:329

### status

status: "timeout" | "closed" | "pending" | "rejected" | "voting" | "approved"

- Defined in packages/nexus-agents/src/consensus/types-core.ts:330

### votes

votes: Map<
string,
{
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;
},
>

- Defined in packages/nexus-agents/src/consensus/types-core.ts:331

### voteWeights

voteWeights: Map<string, number>

- Defined in packages/nexus-agents/src/consensus/types-core.ts:332

### startedAt

startedAt: Date

- Defined in packages/nexus-agents/src/consensus/types-core.ts:333

### `Optional` timeoutId

timeoutId?: Timeout

- Defined in packages/nexus-agents/src/consensus/types-core.ts:334

### `Optional` expansionRounds

expansionRounds?: number

Number of incremental quorum expansions applied (Issue #1408).

- Defined in packages/nexus-agents/src/consensus/types-core.ts:336