Module plugin

Module plugin 

Source
Expand description

Plugin system for extending LLM-Memory-Graph functionality

This module provides a flexible plugin architecture that allows users to extend the core functionality of LLM-Memory-Graph with custom behavior. Plugins can hook into various operations to provide:

  • Validation: Content validation and rule enforcement
  • Enrichment: Automatic metadata enhancement
  • Transformation: Data transformation and normalization
  • Auditing: Custom audit logging and compliance tracking
  • Integration: External system integration

§Architecture

The plugin system is designed around these core concepts:

  • Plugin Trait: The main interface all plugins must implement
  • Plugin Context: Provides plugins with access to operation data
  • Hook Points: Specific points in the execution flow where plugins are called
  • Plugin Manager: Manages plugin lifecycle and execution

§Example

use llm_memory_graph::plugin::{Plugin, PluginBuilder, PluginContext, PluginError, PluginMetadata};
use async_trait::async_trait;

struct MyValidationPlugin {
    metadata: PluginMetadata,
}

impl MyValidationPlugin {
    pub fn new() -> Self {
        let metadata = PluginBuilder::new("my_validator", "1.0.0")
            .author("Your Name")
            .description("Custom validation plugin")
            .capability("validation")
            .build();

        Self { metadata }
    }
}

#[async_trait]
impl Plugin for MyValidationPlugin {
    fn metadata(&self) -> &PluginMetadata {
        &self.metadata
    }

    async fn before_create_node(&self, context: &PluginContext) -> Result<(), PluginError> {
        // Custom validation logic
        Ok(())
    }
}

Re-exports§

pub use hooks::HookExecutor;
pub use hooks::HookPoint;
pub use hooks::HookRegistry;
pub use manager::PluginManager;
pub use registry::PluginDiscovery;
pub use registry::PluginRegistry;

Modules§

hooks
Hook execution framework
manager
Plugin lifecycle management
registry
Plugin registry and discovery system

Structs§

PluginBuilder
Plugin builder for configuration
PluginContext
Plugin context for hooks
PluginMetadata
Plugin metadata

Enums§

PluginError
Plugin error type

Traits§

Plugin
Plugin trait - all plugins must implement this