vtcode_commons/ui_protocol/
selection.rs1#[derive(Clone, 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 FileConflictReload,
48 FileConflictViewDiff,
49 FileConflictAbort,
50 SessionLimitIncrease(usize),
51 RewindCheckpoint(usize),
52 RewindAction(RewindAction),
53
54 AskUserChoice {
56 tab_id: String,
57 choice_id: String,
58 text: Option<String>,
59 },
60
61 RequestUserInputAnswer {
63 question_id: String,
64 selected: Vec<String>,
65 other: Option<String>,
66 },
67
68 PlanApprovalExecute,
70 PlanApprovalEditPlan,
72 PlanApprovalAutoAccept,
74}
75
76#[derive(Clone, Debug)]
78pub struct InlineListItem {
79 pub title: String,
80 pub subtitle: Option<String>,
81 pub badge: Option<String>,
82 pub indent: u8,
83 pub selection: Option<InlineListSelection>,
84 pub search_value: Option<String>,
85}
86
87#[derive(Clone, Debug)]
89pub struct WizardStep {
90 pub title: String,
92 pub question: String,
94 pub items: Vec<InlineListItem>,
96 pub completed: bool,
98 pub answer: Option<InlineListSelection>,
100
101 pub allow_freeform: bool,
102 pub freeform_label: Option<String>,
103 pub freeform_placeholder: Option<String>,
104 pub freeform_default: Option<String>,
105}