impl TurnHost {
async fn handle_set_skill_dirs(&mut self, dirs: Vec<String>, turn: &mut TurnState) {
let dirs: Vec<PathBuf> = dirs.into_iter().map(PathBuf::from).collect();
self.runtime.paths.set_extra_skill_dirs(dirs);
write_lock(&self.runtime.path_context).skills_dirs = self
.runtime
.paths
.current_extra_skill_dirs()
.into_iter()
.map(|dir| dir.to_string_lossy().into_owned())
.collect();
if turn.fut.is_some() {
self.request_abort(turn);
}
match self.session.kernel.harness().reload_skills_from_disk().await {
Ok(out) => self.system_line(format!(
"set skill dirs: {} loaded, {} diagnostics",
out.skills.len(),
out.diagnostics.len()
)),
Err(e) => self.error_line(format!("set skill dirs: {e:#}")),
}
}
}