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:
ABCAbstract 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: ...- 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.