Raxol.Core.Runtime.Plugins.PluginManager (Raxol v2.0.1)

View Source

Manages the loading, initialization, and lifecycle of plugins in the Raxol runtime.

This module has been refactored to delegate operations to specialized modules:

  • Lifecycle operations (load, enable, disable, reload)
  • State management (get/set plugin states and configs)
  • Event handling (GenServer callbacks)
  • Utility functions (error handling, cleanup)

Summary

Types

plugin_id()

@type plugin_id() :: String.t()

plugin_metadata()

@type plugin_metadata() :: map()

plugin_state()

@type plugin_state() :: map()

t()

@type t() :: %{plugins: map(), state: term(), config: map()}

Functions

call_hook(manager_pid, plugin_name, hook_name, args)

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

disable_plugin(plugin_id)

enable_plugin(plugin_id)

get_commands(state)

get_loaded_plugins(manager_pid)

get_metadata(state)

get_plugin(plugin_id)

get_plugin_config(manager_pid, plugin_name)

get_plugin_state(plugin_id)

handle_cleanup(context)

handle_command(state, command, args)

handle_error(error, context)

handle_event(state, event)

initialize()

initialize_plugin(manager_pid, plugin_name, config)

initialize_with_config(config)

list_plugins()

load_plugin(plugin_id)

load_plugin(name, config)

load_plugin_by_module(module, config \\ %{})

plugin_loaded?(manager_pid, plugin_name)

reload_plugin(plugin_id)

set_plugin_state(plugin_id, new_state)

start_link(init_opts \\ [])

stop(pid \\ __MODULE__)

unload_plugin(plugin_id)

unload_plugin(manager_pid, plugin_name)

update_plugin(plugin_id, update_fun)

update_plugin_config(manager_pid, plugin_name, config)

validate_plugin_config(plugin_name, config)