(&mut self)
| 1742 | } |
| 1743 | |
| 1744 | fn show_available_skill_list(&mut self) { |
| 1745 | let skills = tokio::task::block_in_place(|| { |
| 1746 | let workspace = self.workspace_path_buf(); |
| 1747 | let agent_type = self.agent_type.clone(); |
| 1748 | tokio::runtime::Handle::current().block_on(async { |
| 1749 | let registry = SkillRegistry::global(); |
| 1750 | registry |
| 1751 | .get_resolved_skills_for_workspace(Some(workspace.as_path()), Some(&agent_type)) |
| 1752 | .await |
| 1753 | }) |
| 1754 | }); |
| 1755 | |
| 1756 | if skills.is_empty() { |
| 1757 | self.status = Some(format!( |
| 1758 | "No enabled skills found for agent mode '{}'.", |
| 1759 | self.agent_type |
| 1760 | )); |
| 1761 | return; |
| 1762 | } |
| 1763 | |
| 1764 | let skill_items: Vec<SkillItem> = |
| 1765 | skills.into_iter().map(Self::skill_item_from_info).collect(); |
| 1766 | |
| 1767 | if skill_items.is_empty() { |
| 1768 | self.status = Some("No skills found.".to_string()); |
| 1769 | return; |
| 1770 | } |
| 1771 | |
| 1772 | self.skill_selector.show_list(skill_items); |
| 1773 | } |
| 1774 | |
| 1775 | fn show_skill_config_selector(&mut self) { |
| 1776 | let skills = tokio::task::block_in_place(|| { |
no test coverage detected