/** * Plugin loader — scans configured search paths for MCP tool modules * and loads compliant plugins into the tool registry. * * Design: * - Filesystem-based: drop a directory of compiled .js files into a * search path, they auto-register on next server start. * - Each plugin is a standalone npm package that builds independently. */ import { type LoadedPlugin, type PluginContext, type PluginSearchPath } from "./contracts.js"; import type { StatusEvent } from "../logging/index.js"; /** * Shared runtime context that the host gives every plugin. */ export interface PluginLoaderContextBase { moodleClient: PluginContext["moodleClient"]; capabilities: PluginContext["capabilities"]; log: PluginContext["log"]; config: PluginContext["config"]; cache: PluginContext["cache"]; emitStatus?: (event: StatusEvent) => void; } /** * Scan all configured search paths and return validated plugin bundles. */ export declare function loadPlugins(searchPaths: PluginSearchPath[], baseContext: PluginLoaderContextBase): Promise; //# sourceMappingURL=loader.d.ts.map