Public declaration syntax from harness-tui-kit/src/components/system/model_picker.rs Original source SHA-256: bb0ef51167dfb8d79b274ac8286fff4493b83a240e69b6688a3362779630459a Function bodies and constant values are omitted. This is not the complete implementation. Source line 21 #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub struct ModelCapabilities { /// Whether the model supports tool / function calling. pub tools: bool, /// Whether the model supports vision input. pub vision: bool, /// Whether the model exposes a "thinking" / reasoning channel. pub thinking: bool, /// Whether the model is generally available (vs. preview). pub ga: bool } Source line 35 #[must_use] pub fn none() -> Self; Source line 47 #[derive(Debug, Clone)] pub struct ModelPickerRow { /// Stable id (e.g. `"claude-opus-4.7"`). pub id: String, /// Display name (e.g. `"Claude Opus 4.7 (1M)"`). pub name: String, /// Short provider label (e.g. `"Anthropic"`). pub provider: String, /// One-line description shown below the name. pub description: String, /// Capability flags rendered as a `[T] [V] [R]` badge strip. pub capabilities: ModelCapabilities, /// Coarse cost tier label (e.g. `"$"`, `"$$"`, `"$$$"`). pub cost: String } Source line 64 #[derive(Debug, Clone, Default)] pub struct ModelPickerState { } Source line 71 #[must_use] pub fn selected(&self) -> usize; Source line 76 pub fn move_down(&mut self, len: usize); Source line 85 pub fn move_up(&mut self); Source line 90 pub fn reset(&mut self); Source line 97 #[derive(Debug, Clone)] pub struct ModelPicker<'a> { } Source line 106 #[must_use] pub fn new(rows: &'a [ModelPickerRow]) -> Self; Source line 116 #[must_use] pub fn theme(mut self, theme: &'a Theme) -> Self; Source line 123 #[must_use] pub fn title(mut self, title: &'a str) -> Self;