summaryrefslogtreecommitdiff
path: root/frontend/src/store/flowStore.ts
diff options
context:
space:
mode:
authorYurenHao0426 <blackhao0426@gmail.com>2026-02-13 23:08:05 +0000
committerYurenHao0426 <blackhao0426@gmail.com>2026-02-13 23:08:05 +0000
commitcb59ecf3ac3b38ba883fc74bf810ae9e82e2a469 (patch)
treed0cab16f3ddb7708528ceb3cbb126d9437aed91b /frontend/src/store/flowStore.ts
parent2adacdbfa1d1049a0497e55f2b3ed00551bf876f (diff)
Add LLM Debate mode for multi-round iterative model discussions
Implements a debate feature alongside Council mode where 2-6 models engage in multi-round discussions with configurable judge modes (external judge, self-convergence, display-only), debate formats (free discussion, structured opposition, iterative improvement, custom), and early termination conditions. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'frontend/src/store/flowStore.ts')
-rw-r--r--frontend/src/store/flowStore.ts27
1 files changed, 27 insertions, 0 deletions
diff --git a/frontend/src/store/flowStore.ts b/frontend/src/store/flowStore.ts
index f31720e..c1c8b99 100644
--- a/frontend/src/store/flowStore.ts
+++ b/frontend/src/store/flowStore.ts
@@ -91,6 +91,23 @@ export interface CouncilData {
stage3: { model: string; response: string } | null;
}
+export interface DebateRound {
+ round: number;
+ responses: Array<{ model: string; response: string }>;
+ judgeDecision?: { continue: boolean; reasoning: string };
+ converged?: boolean;
+}
+
+export interface DebateData {
+ rounds: DebateRound[];
+ finalVerdict: { model: string; response: string } | null;
+ config: {
+ judgeMode: 'external_judge' | 'self_convergence' | 'display_only';
+ format: 'free_discussion' | 'structured_opposition' | 'iterative_improvement' | 'custom';
+ maxRounds: number;
+ };
+}
+
export interface NodeData {
label: string;
model: string;
@@ -110,6 +127,16 @@ export interface NodeData {
chairmanModel?: CouncilMemberConfig;
councilData?: CouncilData;
+ // Debate mode
+ debateMode?: boolean;
+ debateModels?: CouncilMemberConfig[];
+ judgeModel?: CouncilMemberConfig;
+ debateJudgeMode?: 'external_judge' | 'self_convergence' | 'display_only';
+ debateFormat?: 'free_discussion' | 'structured_opposition' | 'iterative_improvement' | 'custom';
+ debateCustomPrompt?: string;
+ debateMaxRounds?: number;
+ debateData?: DebateData;
+
// Traces logic
traces: Trace[]; // INCOMING Traces
outgoingTraces: Trace[]; // ALL Outgoing (inherited + self + forks + merged)