Expand description
The embedder-facing skill API (R4).
§Why this module exists
Before this, an embedder wanting to list or install a skill had to reach
into uar::runtime::skills::service::SkillService — an internal type whose
signature is free to change. Every path was pub all the way down, so the
crate had no seam between “what we support” and “what happens to be
reachable”.
This module is that seam. It is deliberately narrow: five verbs over
Skill, nothing else. An embedded host — a mobile app, a desktop shell, a
test — should not need to know that a SkillRegistry exists, that
persistence is optional, or that matching has a configurable algorithm.
§What this is NOT
It is not a re-export of SkillService. Handing back the internal type
would name it in the public API and re-create the coupling this module
removes. The facade owns an Arc<SkillService> privately and exposes only
the operations R4 names.
§Example
use universal_agent_runtime::skills_api::SkillsApi;
// Everything an embedder needs, without touching runtime internals.
let all = api.list().await;
if let Some(skill) = api.get("some-skill").await {
api.toggle(&skill.skill_id, false).await;
}
let matches = api.query("summarise a document").await;Structs§
- Skills
Api - The public skill surface for embedders.