1#[derive(Debug, Clone, Copy, PartialEq, Eq)]
5pub enum RecordingState {
6 Idle,
7 Recording,
8 Transcribing,
9 Injecting,
10 ApprovalPending,
11 Error,
12}
13
14#[derive(Debug, Clone)]
16pub enum InputEvent {
17 Toggle,
18 KeyDown,
19 KeyUp,
20 Quit,
21}
22
23#[derive(Debug)]
25pub enum AppEvent {
26 Input(InputEvent),
27 SseConnected,
28 SseDisconnected(Option<String>),
29 PermissionAsked(crate::approval::types::PermissionRequest),
30 PermissionReplied {
31 session_id: String,
32 request_id: String,
33 reply: String,
34 },
35 QuestionAsked(crate::approval::types::QuestionRequest),
36 QuestionReplied {
37 session_id: String,
38 request_id: String,
39 answers: Vec<Vec<String>>,
40 },
41 QuestionRejected {
42 session_id: String,
43 request_id: String,
44 },
45 SessionStatus {
50 session_id: String,
51 busy: bool,
52 },
53 AudioChunk {
54 rms_energy: f32,
55 },
56 RecoverFromError,
58 Shutdown,
59}