@dxos/app-framework - v0.15.0
    Preparing search index...

    Type Alias ManagerOptions

    type ManagerOptions = {
        activationTimeout?: Duration.Input;
        atomIdleTTL?: Duration.Input;
        core?: string[];
        enabled?: string[];
        loadTimeout?: Duration.Input;
        onRemove?: (id: string) => Effect.Effect<void, unknown>;
        pluginLoader: (id: string) => Effect.Effect<LoadedPlugin, Error>;
        pluginRegistryProvider?: PluginProvider;
        plugins?: Plugin.Plugin[];
        registry?: Registry.AtomRegistry;
        whenIdle?: Effect.Effect<void>;
    }
    Index

    Properties

    activationTimeout?: Duration.Input

    Maximum time allowed for a single module's activate() Effect to settle. Modules that exceed this fail with PluginTimeoutError; the owning plugin is recorded on failed and auto-disabled. Defaults to 30 seconds; pass Duration.infinity to disable.

    atomIdleTTL?: Duration.Input

    Grace period before an atom with no subscribers is removed from the registry this manager creates. Defaults to AtomEx.DEFAULT_IDLE_TTL; see AtomEx.makeRegistry.

    core?: string[]

    Ids of plugins the host pins on: always enabled, never disableable.

    Defaults to every plugin declaring system in meta.profile.tags. Hosts pass this when the tag is the wrong authority — a plugin's dx.config.ts declares one system tag for every host, so without an override the CLI inherits Composer's judgment about what a user may turn off. Ids not present in plugins are ignored.

    enabled?: string[]
    loadTimeout?: Duration.Input

    Maximum time allowed for a lazy plugin's dynamic import() to resolve. Plugins that exceed this are flagged on the PluginManager.failed atom and auto-disabled so a stuck remote host can't stall app boot. Defaults to 30 seconds; pass Duration.infinity to disable.

    onRemove?: (id: string) => Effect.Effect<void, unknown>

    Hook called when a plugin is removed via PluginManager.remove. Used by the host app to clean up persisted state (e.g. evict offline-cached plugin assets). Failures are logged and swallowed; removal still succeeds even if the hook fails.

    pluginLoader: (id: string) => Effect.Effect<LoadedPlugin, Error>
    pluginRegistryProvider?: PluginProvider

    Backend for the plugin registry catalog. When omitted the manager exposes a no-op pluginRegistry (empty list, no versions endpoint). Implementations live in app-framework alongside the interface (e.g. EdgeRegistryPluginProvider); the host app instantiates one and passes it in.

    plugins?: Plugin.Plugin[]
    registry?: Registry.AtomRegistry

    Registry to use instead of creating one; atomIdleTTL does not apply to it.

    whenIdle?: Effect.Effect<void>

    Completes when the host is idle, gating the Idle wave. Defaults to the real paint/idle wait, which resolves immediately off-browser; Effect.never models a browser that has not idled.