Expand description
Extension subsystem — spawn-per-event subprocess hooks.
See docs/superpowers/specs/2026-05-21-capo-v0.7-design.md for the
design rationale (spawn-per-event vs long-lived; codex-style; minimal
scope).
Module structure mirrors mcp/:
manifest.rs — TOML schema + parsing
wire.rs — Event / Action serde types (JSONL line shape)
registry.rs — validated, indexed view of loaded extensions
dispatcher.rs — spawn-and-await; chain semantics; timeout
diagnostic.rs — surfaced via /extensions slash command
Re-exports§
pub use diagnostic::DiagnosticSeverity;pub use diagnostic::ExtensionDiagnostic;pub use manifest::parse_str;pub use manifest::ExtensionEntry;pub use manifest::ExtensionManifestFile;pub use registry::ExtensionRegistry;pub use registry::RegisteredExtension;pub use wire::Action;pub use wire::Event;pub use wire::EventName;
Modules§
- diagnostic
- Diagnostic surface for the extension subsystem — load-time issues
(missing fields, duplicates, built-in conflicts) and runtime spawn
failures collect here and are surfaced via
/extensions. - dispatcher
- Spawn-per-event dispatcher.
- manifest
- TOML manifest schema and parser. Implemented in Task 2.
- registry
- Validated, indexed runtime view of loaded extensions.
- wire
- Event/Action wire types — the single JSON line over stdio. Implemented in Task 4.
Functions§
- load_
extensions_ manifest - Load the manifest at
path(missing-file = empty registry, no error) and validate it. Returns the registry and any diagnostics collected.