/** * Runtime plugin loader: dynamic-import each reconciled plugin and let it * self-register into the `pluginRegistry`. * * Each plugin specifier resolves to an absolute path under the store's * `node_modules`; we import it via a `file://` URL so the import works inside * `bun --compile` binaries (which bundle only the literal-string switches, but * can still execute a `file://` import against the unpacked store on disk). * Failures are caught per-plugin so one broken plugin never aborts the rest. */ import { type PluginRegistry } from "@skaile/workspaces/plugin-registry"; import type { Logger } from "@skaile/workspaces/types"; /** Options for {@link loadPlugins}. */ export interface LoadOptions { log?: Logger; } /** Result of a load pass: which specs registered and which failed. */ export interface LoadResult { loaded: string[]; failed: { spec: string; error: string; }[]; } /** * Load and register each plugin in `plugins` into `registry`. * * @param projectDir - Project root holding `.skaile/plugins/node_modules`. * @param plugins - The `skaile.yaml` `plugins:` list (npm specifiers). * @param registry - Registry to register into. Defaults to the process-wide `pluginRegistry`. * @param opts - Optional logger. * @returns Loaded specs + per-plugin failures (never throws). */ export declare function loadPlugins(projectDir: string, plugins: string[], registry?: PluginRegistry, opts?: LoadOptions): Promise; //# sourceMappingURL=load.d.ts.map