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 PlanApprovalSwitchBuild,
77 PlanApprovalSwitchAuto,
79}
80
81#[derive(Clone, Debug)]
83pub struct InlineListItem {
84 pub title: String,
85 pub subtitle: Option<String>,
86 pub badge: Option<String>,
87 pub indent: u8,
88 pub selection: Option<InlineListSelection>,
89 pub search_value: Option<String>,
90}
91
92#[derive(Clone, Debug)]
94pub struct WizardStep {
95 pub title: String,
97 pub question: String,
99 pub items: Vec<InlineListItem>,
101 pub completed: bool,
103 pub answer: Option<InlineListSelection>,
105
106 pub allow_freeform: bool,
107 pub freeform_label: Option<String>,
108 pub freeform_placeholder: Option<String>,
109 pub freeform_default: Option<String>,
110}