Skip to main content

Module extensions

Module extensions 

Source
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.