package vip.mate.plugin.api;
/**
* Plugin SPI contract — all MateClaw plugins implement this interface.
*
*
Lifecycle:
*
* - {@link #onLoad(PluginContext)} — called when the plugin is loaded, platform context injected
* - {@link #onEnable()} — called when the plugin is enabled, register features to the platform
* - {@link #onDisable()} — called when the plugin is disabled, clean up resources
*
*
* @author MateClaw Team
*/
public interface MateClawPlugin {
/**
* Called when the plugin is loaded. Use the provided context to register
* tools, providers, channels, or memory providers.
*
* @param context platform context providing registration APIs
*/
void onLoad(PluginContext context);
/**
* Called when the plugin is enabled. Perform any startup logic here.
*/
void onEnable();
/**
* Called when the plugin is disabled. Clean up resources, close connections, etc.
*/
void onDisable();
}