Public declaration syntax from harness-tui-kit/src/components/harness/component_tree.rs Original source SHA-256: c2ab4ba26ebc1b7d59aeda6453043ee9a89ba8e83056d01d0018295ed572a489 Function bodies and constant values are omitted. This is not the complete implementation. Source line 17 #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum HarnessComponentStatus { /// Editable + currently in sync with the last commit. Clean, /// Editable + has uncommitted edits in the current iteration. Dirty, /// Read-only — the runtime owns it (e.g. `ShortTermMemory`). ReadOnly, } Source line 38 #[derive(Debug, Clone)] pub struct HarnessComponentRow { /// Stable id (e.g. `"system_prompt"`). The SDK consumer sets /// this from `HarnessComponentKind::as_key()`. pub id: String, /// Human-readable label (e.g. `"system prompt"`). pub label: String, /// Mount path relative to the workspace root. pub mount: String, /// Status badge. pub status: HarnessComponentStatus, /// Number of edits applied to this component in the current /// iteration. Rendered as `+N` next to the label. pub edit_count: u32 } Source line 55 #[derive(Debug, Clone, Default)] pub struct HarnessComponentTreeState { } Source line 62 #[must_use] pub fn selected(&self) -> usize; Source line 67 pub fn move_down(&mut self, len: usize); Source line 76 pub fn move_up(&mut self); Source line 81 pub fn reset(&mut self); Source line 88 #[derive(Debug, Clone)] pub struct HarnessComponentTree<'a> { } Source line 97 #[must_use] pub fn new(rows: &'a [HarnessComponentRow]) -> Self; Source line 107 #[must_use] pub fn theme(mut self, theme: &'a Theme) -> Self; Source line 114 #[must_use] pub fn title(mut self, title: &'a str) -> Self;