Module Spoc_framework_registry.Framework_registry

val debug_enabled : bool

Enable debug logging via environment variable

val debugf : ('a, Stdlib.out_channel, unit, unit, unit, unit) Stdlib.format6 -> 'a
val warnf : ('a, Stdlib.out_channel, unit, unit, unit, unit) Stdlib.format6 -> 'a
val plugins : (string, (module Spoc_framework.Framework_sig.S)) Stdlib.Hashtbl.t

Registered plugins - keyed by name

val backends : (string, (module Spoc_framework.Framework_sig.BACKEND)) Stdlib.Hashtbl.t

Full backend plugins with complete functionality

val priorities : (string, int) Stdlib.Hashtbl.t

Priority ordering for auto-selection (higher = preferred)

val register : ?priority:int -> (module Spoc_framework.Framework_sig.S) -> unit

Register a minimal plugin (name, version, is_available)

val register_backend : ?priority:int -> (module Spoc_framework.Framework_sig.BACKEND) -> unit

Register a full backend plugin

val find : string -> (module Spoc_framework.Framework_sig.S) option

Find a plugin by name

val find_backend : string -> (module Spoc_framework.Framework_sig.BACKEND) option

Find a full backend by name

val names : unit -> string list

List all registered plugin names

val available : unit -> (module Spoc_framework.Framework_sig.S) list

List all available plugins (those where is_available returns true)

val available_backends : unit -> (module Spoc_framework.Framework_sig.BACKEND) list

List all available full backends

val best_backend : unit -> (module Spoc_framework.Framework_sig.BACKEND) option

Get the best available backend (highest priority)

val priority : string -> int

Get plugin priority

val all_backend_names : unit -> string list

Get all registered backend names sorted by priority (highest first)