vtcode_commons/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 Theme(String),
36 Session(String),
37 SessionForkMode {
38 session_id: String,
39 summarize: bool,
40 },
41 ConfigAction(String),
42 SlashCommand(String),
43 ToolApproval(bool),
44 ToolApprovalDenyOnce,
45 ToolApprovalSession,
46 ToolApprovalPermanent,
47 ToolApprovalEnable,
48 FileConflictReload,
49 FileConflictViewDiff,
50 FileConflictAbort,
51 SessionLimitIncrease(usize),
52 RewindCheckpoint(usize),
53 RewindAction(RewindAction),
54
55 AskUserChoice {
57 tab_id: String,
58 choice_id: String,
59 text: Option<String>,
60 },
61
62 RequestUserInputAnswer {
64 question_id: String,
65 selected: Vec<String>,
66 other: Option<String>,
67 },
68
69 PlanApprovalExecute,
71 PlanApprovalEditPlan,
73 PlanApprovalAutoAccept,
75}
76
77#[derive(Clone, Debug)]
79pub struct InlineListItem {
80 pub title: String,
81 pub subtitle: Option<String>,
82 pub badge: Option<String>,
83 pub indent: u8,
84 pub selection: Option<InlineListSelection>,
85 pub search_value: Option<String>,
86}
87
88#[derive(Clone, Debug)]
90pub struct WizardStep {
91 pub title: String,
93 pub question: String,
95 pub items: Vec<InlineListItem>,
97 pub completed: bool,
99 pub answer: Option<InlineListSelection>,
101
102 pub allow_freeform: bool,
103 pub freeform_label: Option<String>,
104 pub freeform_placeholder: Option<String>,
105 pub freeform_default: Option<String>,
106}