Unique identifier for the descriptor within its kind. Subsequent descriptors with the same id stack on top of previous entries.
High-level category of the descriptor (tool, guardrail, etc.).
Optional priorityOptional priority used during manifest loading. Higher numbers load later, allowing them to supersede earlier descriptors with the same id.
Optional enableFlag indicating whether the descriptor should be enabled by default when discovered. Manifests or overrides can still disable it explicitly.
Optional metadataArbitrary metadata for tooling or pack-specific usage.
The payload consumed by the runtime (e.g., tool factory function).
Optional sourceProvenance information for the descriptor.
Optional onOptional lifecycle hook invoked when the descriptor becomes the active entry for its id.
Optional onOptional lifecycle hook invoked when the descriptor is superseded or removed.
Optional requiredDeclares the secrets (API keys, credentials) the descriptor needs in order to function.
Unified descriptor contract consumed by the extension registry. Concrete descriptor types (e.g., tools, guardrails) extend this shape with payloads specific to their domain.