MCPcopy Create free account
hub / github.com/GCWing/BitFun / set_skill_enabled

Method set_skill_enabled

src/apps/cli/src/ui/startup.rs:1815–1866  ·  view source on GitHub ↗
(&mut self, selected: &SkillItem, enabled: bool)

Source from the content-addressed store, hash-verified

1813 }
1814
1815 fn set_skill_enabled(&mut self, selected: &SkillItem, enabled: bool) {
1816 let workspace = self.workspace_path_buf();
1817 let mode_id = self.agent_type.clone();
1818 let skill = selected.clone();
1819
1820 let result: Result<(), String> = tokio::task::block_in_place(|| {
1821 tokio::runtime::Handle::current().block_on(async {
1822 match skill.level.as_str() {
1823 "user" => {
1824 set_user_mode_skill_state(
1825 &mode_id,
1826 &skill.key,
1827 enabled,
1828 skill.default_enabled,
1829 )
1830 .await
1831 .map_err(|error| error.to_string())?;
1832 }
1833 "project" => {
1834 let mut document = load_project_mode_skills_document_local(&workspace)
1835 .await
1836 .map_err(|error| error.to_string())?;
1837 set_mode_skill_disabled_in_document(
1838 &mut document,
1839 &mode_id,
1840 &skill.key,
1841 !enabled,
1842 )
1843 .map_err(|error| error.to_string())?;
1844 save_project_mode_skills_document_local(&workspace, &document)
1845 .await
1846 .map_err(|error| error.to_string())?;
1847 }
1848 other => {
1849 return Err(format!("Unsupported skill level '{}'", other));
1850 }
1851 }
1852
1853 Ok(())
1854 })
1855 });
1856
1857 self.status = Some(match result {
1858 Ok(()) => format!(
1859 "Skill '{}' {} for mode '{}'.",
1860 selected.name,
1861 if enabled { "enabled" } else { "disabled" },
1862 self.agent_type
1863 ),
1864 Err(error) => format!("Failed to update skill '{}': {}", selected.name, error),
1865 });
1866 }
1867
1868 fn skill_item_from_info(info: SkillInfo) -> SkillItem {
1869 SkillItem {

Callers 1

Calls 7

workspace_path_bufMethod · 0.45
cloneMethod · 0.45
as_strMethod · 0.45

Tested by

no test coverage detected