1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Deserialize, Serialize)]
4pub struct Submission {
5 pub id: String,
7 pub op: Op,
9}
10
11#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
13#[serde(tag = "type", rename_all = "snake_case")]
14#[allow(clippy::large_enum_variant)]
15#[non_exhaustive]
16pub enum Op {
17 ConfigureSession {
19 provider: (),
21
22 model: String,
24
25 cwd: std::path::PathBuf,
26 },
27
28 Interrupt,
29
30 UserInput {
32 items: Vec<InputItem>,
34 },
35
36 AddToHistory {
37 text: String,
39 },
40}
41
42#[non_exhaustive]
44#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
45#[serde(tag = "type", rename_all = "snake_case")]
46pub enum InputItem {
47 Text { text: String },
48}