Add shared skill root loading interfaces (#37439)

## What changed

- Add `SkillRootLoader` and its request/result types to `codex-skills` so skill roots can be loaded through a shared, object-safe interface.
- Add owner-managed snapshot cache handles that support reuse and use cache allocation identity for equality and hashing.
- Move `SkillError` into `codex-skills` and re-export the new loading API.

## Testing

- Verify snapshot sharing and identity semantics.
- Verify loaders can be used as shared trait objects.

GitOrigin-RevId: a26a8101008a6c862824a7346cdbe6d05f4bcc01
This commit is contained in:
felixxia-oai authored and copyberry committed 2026-08-07 12:47:14 +00:00
1 parent a7dcd20d38
commit a4b129eb3e
4 files changed
+208 -6

No files matched your search

+1 -6
View File
@@ -8,6 +8,7 @@ use codex_exec_server::ExecutorFileSystem;
use codex_exec_server::LOCAL_FS;
use codex_protocol::protocol::Product;
pub use codex_skills::SkillDependencies;
pub use codex_skills::SkillError;
pub use codex_skills::SkillInterface;
pub use codex_skills::SkillMetadata;
pub use codex_skills::SkillPolicy;
@@ -15,12 +16,6 @@ pub use codex_skills::SkillToolDependency;
use codex_utils_absolute_path::AbsolutePathBuf;
use codex_utils_path_uri::PathUri;
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct SkillError {
pub path: AbsolutePathBuf,
pub message: String,
}
#[derive(Debug, Clone, Default)]
pub struct SkillLoadOutcome {
pub skills: Vec<SkillMetadata>,