oxicode_vtui_compat/ui_protocol/
selection.rs1#[derive(Clone, Copy, Debug, PartialEq, Eq)]
5pub enum RewindAction {
6 RestoreBoth,
7 RestoreConversation,
8 RestoreCode,
9 SummarizeFromHere,
10 NeverMind,
11}
12
13#[derive(Clone, Copy, Debug, PartialEq, Eq)]
14pub enum OpenAIServiceTierChoice {
15 ProjectDefault,
16 Flex,
17 Priority,
18}
19
20#[derive(Clone, Debug, PartialEq, Eq)]
26pub enum InlineListSelection {
27 Model(usize),
28 DynamicModel(usize),
29 CustomProvider(usize),
30 RefreshDynamicModels,
31 Reasoning(String),
32 DisableReasoning,
33 OpenAIServiceTier(OpenAIServiceTierChoice),
34 CustomModel,
35 CatalogModel(usize),
38 ProviderRow(usize),
40 Theme(String),
41 Session(String),
42 SessionForkMode {
43 session_id: String,
44 summarize: bool,
45 },
46 ConfigAction(String),
47 SlashCommand(String),
48 ToolApproval(bool),
49 ToolApprovalDenyOnce,
50 ToolApprovalSession,
51 ToolApprovalPermanent,
52 ToolApprovalEnable,
53 FileConflictReload,
54 FileConflictViewDiff,
55 FileConflictAbort,
56 SessionLimitIncrease(usize),
57 RewindCheckpoint(usize),
58 RewindAction(RewindAction),
59
60 AskUserChoice {
62 tab_id: String,
63 choice_id: String,
64 text: Option<String>,
65 },
66
67 RequestUserInputAnswer {
69 question_id: String,
70 selected: Vec<String>,
71 other: Option<String>,
72 },
73
74 PlanApprovalExecute,
76 PlanApprovalEditPlan,
78 PlanApprovalDiscuss,
80 PlanApprovalAutoAccept,
82 PlanApprovalSwitchBuild,
84 PlanApprovalSwitchAuto,
86}
87
88#[derive(Clone, Debug)]
90pub struct InlineListItem {
91 pub title: String,
92 pub subtitle: Option<String>,
93 pub badge: Option<String>,
94 pub indent: u8,
95 pub selection: Option<InlineListSelection>,
96 pub search_value: Option<String>,
97}
98
99#[derive(Clone, Debug)]
101pub struct WizardStep {
102 pub title: String,
104 pub question: String,
106 pub items: Vec<InlineListItem>,
108 pub completed: bool,
110 pub answer: Option<InlineListSelection>,
112
113 pub allow_freeform: bool,
114 pub freeform_label: Option<String>,
115 pub freeform_placeholder: Option<String>,
116 pub freeform_default: Option<String>,
117}