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