Plugin Types

Base classes for extending Lightfall with custom functionality.

SettingsPlugin

PanelPlugin

PlanPlugin

EnginePlugin

ThemePlugin

StatusBarPlugin

ControllerPlugin

MCPToolPlugin

SkillPlugin

Infrastructure

PluginType (Base Class)

class lightfall.plugins.types.PluginType[source]

Bases: ABC

Abstract base class for all NCS plugins.

All plugin implementations must inherit from a PluginType subclass. The type defines the interface contract for that category of plugins.

Class Attributes:

type_name: Unique identifier for this plugin type (e.g., “plan”). is_singleton: Whether only one instance should exist per plugin.

Properties:

description: Human-readable description of this plugin type.

Example subclass:

class PlanPlugin(PluginType):
    type_name = "plan"
    description = "Bluesky plan plugin"
    is_singleton = True

    @property
    def name(self) -> str:
        return "my_plan"

    @abstractmethod
    def get_plan_function(self) -> Callable:
        ...
property description : str

Human-readable description of this plugin type.

get_introspection_data() dict[str, Any][source]

Get introspection data for MCP tools.

Override in subclasses to provide type-specific data.

Returns:

Dictionary with plugin information.

abstract property name : str

Plugin instance name.

This should return a unique name within this plugin type.

classmethod validate_class(plugin_class: type) bool[source]

Validate that a class is a valid plugin of this type.

Override in subclasses for type-specific validation.

Args:

plugin_class: The class to validate.

Returns:

True if the class is valid for this plugin type.

PluginManifest

PluginEntry

PluginRegistry

PluginLoader

PluginInfo

PluginStatus