← back to Dw Boardroom Governance
frontend/src/types.ts
93 lines
export type DecisionType = 'A' | 'B' | 'C';
export type DecisionStatus = 'pending' | 'approved' | 'rejected' | 'modified' | 'deferred' | 'auto_approved';
export type HumanDecision = 'approve' | 'reject' | 'modify' | 'defer';
export type RiskLevel = 'low' | 'medium' | 'high' | 'critical';
export type DelegationStatus = 'active' | 'completed' | 'revoked' | 'expired';
export type InitiativeStatus = 'proposed' | 'active' | 'paused' | 'completed' | 'cancelled';
export type MeetingStatus = 'scheduled' | 'in_progress' | 'completed' | 'halted' | 'crashed';
export interface Decision {
id: string;
topic: string;
decision_type: DecisionType;
recommendation: string | null;
human_decision: HumanDecision | null;
owner: string;
autonomy_level: number;
deadline: string | null;
status: DecisionStatus;
source: string | null;
score: number | null;
reasoning: string | null;
notes: string | null;
created_at: string;
resolved_at: string | null;
}
export interface DelegationContract {
id: string;
decision_id: string | null;
owner: string;
delegate: string;
autonomy_level: number;
metric: string | null;
checkpoint_date: string | null;
status: DelegationStatus;
routing_keywords: string[] | null;
hierarchy_path: string | null;
created_at: string;
}
export interface Initiative {
id: string;
title: string;
description: string | null;
driver_agent: string;
kpi: string | null;
risk_level: RiskLevel;
capital_allocated: number;
status: InitiativeStatus;
progress: number;
created_at: string;
}
export interface Meeting {
id: string;
meeting_type: string;
phase: string;
started_at: string | null;
ended_at: string | null;
status: MeetingStatus;
attendees: string[];
summary: string | null;
messages?: MeetingMessage[];
created_at: string;
}
export interface MeetingMessage {
id: number;
meeting_id: string;
agent_id: string;
agent_name: string;
message: string;
message_type: string;
created_at: string;
}
export interface WSEvent {
type: string;
payload: any;
timestamp: string;
}
export interface GovernanceStatus {
meeting: { active: boolean; activeMeetingId: string | null };
decisions: Record<string, number>;
delegations: Record<string, number>;
initiatives: Record<string, number>;
meetings: Record<string, number>;
config: Record<string, any>;
websocket: { connections: number };
uptime: number;
}