1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
//! # skill
//!
//! A library for managing AI agent skills across the open skills ecosystem.
//!
//! This crate provides the core functionality for discovering, installing,
//! listing, and removing agent skills. It is designed to be embedded in agent
//! frameworks so they gain full skills ecosystem support out of the box.
//!
//! ## Quick Start
//!
//! ```rust,no_run
//! use skill::manager::SkillManager;
//!
//! # async fn example() -> skill::error::Result<()> {
//! let manager = SkillManager::builder().build();
//!
//! // Discover skills in a repository
//! let skills = manager
//! .discover_skills(std::path::Path::new("./my-repo"), &Default::default())
//! .await?;
//!
//! // List installed skills
//! let installed = manager.list_installed(&Default::default()).await?;
//! # Ok(())
//! # }
//! ```
//!
//! ## Module Map
//!
//! - [`manager`] — [`SkillManager`] façade; the main entry point for
//! agent frameworks.
//! - [`types`] — plain data types (`Skill`, `AgentId`, `InstallScope`, …).
//! - [`error`] — library-wide [`SkillError`] / [`Result`].
//! - [`agents`] — built-in agent registry + custom registration hooks.
//! - [`skills`] — on-disk skill discovery and `SKILL.md` parsing.
//! - [`installer`] — install / remove / scan choreography.
//! - [`source`] — source-string parsing (`owner/repo`, URLs, local paths).
//! - [`providers`] — remote skill hosts (well-known, GitHub, GitLab).
//! - [`lock`] / [`local_lock`] — global and project lock-file I/O.
//! - [`blob`], [`git`], [`github`] — network transports (feature-gated).
//! - [`sanitize`] — input sanitization helpers.
//! - [`telemetry`] — anonymous usage reporting (feature-gated).
//!
//! ## Feature Flags
//!
//! - **`network`** (default) — Enables HTTP-based operations (fetching remote
//! skills, well-known providers, GitHub API).
//! - **`telemetry`** — Enables anonymous usage telemetry. Disabled by default
//! for library consumers; enabled by the CLI.
use pathdiff as _;
pub
pub
pub
pub use ;
pub use SkillManager;