Skip to main content

rushai_protocol/
ops.rs

1use serde::{Deserialize, Serialize};
2
3use crate::ids::{RequestId, SessionId};
4use crate::parts::UserPart;
5use crate::permission::Decision;
6
7/// A request submitted by a frontend to the engine.
8#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
9#[serde(tag = "type", rename_all = "snake_case")]
10pub enum Op {
11    Prompt {
12        session: SessionId,
13        parts: Vec<UserPart>,
14    },
15    Cancel {
16        session: SessionId,
17    },
18    PermissionDecision {
19        request: RequestId,
20        decision: Decision,
21    },
22    Compact {
23        session: SessionId,
24    },
25    Shutdown,
26}