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
//! `agents-skills` as a library: a high-level [`Manager`] facade over the low-level [`core`] module.
//!
//! The library is pure data — it never prints to stdout/stderr and never calls
//! `process::exit`. The CLI binary (see `src/main.rs` + `src/commands`) is responsible
//! for rendering outcomes and deciding exit codes.
//!
//! # Quick tour
//!
//! ```
//! use agents_skills::{ListRequest, Manager};
//!
//! // Point the manager at a scratch environment (hermetic, no real home access).
//! let manager = Manager::builder()
//! .home("/tmp/home")
//! .config("/tmp/config")
//! .cwd("/tmp/project")
//! .build();
//!
//! // Install every skill from a source (see [`Manager::add`] for a local example).
//! // List what's installed.
//! let skills = manager.list(&ListRequest::default())?;
//!
//! # Ok::<(), agents_skills::Error>(())
//! ```
//!
//! # Layering
//!
//! The crate root exposes only the high-level [`Manager`] facade, its request/outcome types,
//! and the unified [`error`] types. Lower-level primitives (source parsing, agent directories,
//! SKILL.md discovery, install, agent links, lock) live under [`core`] and are accessed as
//! `agents_skills::core::...`.
// High-level facade.
pub use ;
// Link/unlink outcome enum (surfaced by the facade's link result types).
pub use LinkOutcome;
// Errors.
pub use ;