Packages

Multi-surface application runtime for Elixir. One TEA module renders to terminal, browser (LiveView), SSH, and MCP (agents). 30+ widgets, flexbox + CSS grid, AI agent runtime, distributed swarm with CRDTs, time-travel debugging, session recording, sandboxed REPL, and agentic commerce.

Current section

Files

Jump to
raxol lib raxol core runtime plugins loader_behaviour.ex
Raw

lib/raxol/core/runtime/plugins/loader_behaviour.ex

defmodule Raxol.Core.Runtime.Plugins.LoaderBehaviour do
@moduledoc """
Behavior for plugin loading functionality.
"""
@doc """
Loads a plugin from a given path or configuration.
"""
@callback load_plugin(plugin_spec :: term(), opts :: keyword()) ::
{:ok, term()} | {:error, term()}
@doc """
Unloads a plugin.
"""
@callback unload_plugin(plugin_id :: String.t()) :: :ok | {:error, term()}
@doc """
Lists available plugins.
"""
@callback list_available_plugins(opts :: keyword()) :: list(String.t())
@doc """
Validates a plugin before loading.
"""
@callback validate_plugin(plugin_spec :: term()) :: :ok | {:error, term()}
end