Referencia de @styx/plugin-sdk generada de su TSDoc.
packages/plugin-sdk/package.jsonPágina generada desde
el TSDoc de @styx/plugin-sdk. No se edita a mano:bun run docs:genla regenera ybun run docs:checkfalla si difiere.
Registry de extensiones embebidas de un servicio.
readonlypluginIds: readonlystring[]
Ids registrados, en orden de id (determinista).
discover<
K>(kind): readonlyIPluginBinding<K>[]
Todos los plugins que cubren un extension point, ordenados por precedencia (mejor primero). Incluye los no servibles — el caller ve el panorama completo.
K extends keyof PluginExportsByKind
K
Extension point.
readonly IPluginBinding<K>[]
Bindings ordenados por precedencia.
healthOf(
pluginId):Result<PluginHealthState,ResultError<"PLUGIN_NOT_FOUND">>
Health actual de un plugin.
string
Id del plugin.
Result<PluginHealthState, ResultError<"PLUGIN_NOT_FOUND">>
Result con el health, o PLUGIN_NOT_FOUND.
initialize(
host):Promise<IRegistryInitReport>
Inicializa todos los plugins no desactivados, cada uno con su contexto scoped y bajo timeout.
No devuelve Result a propósito: el arranque del registry no es una
operación fallible — un plugin caído no debe tumbar el servicio (r48 §3.2).
Ningún fallo se traga: cada uno viaja en outcomes[].result y en failed[],
para que el servicio lo loguee con su extension.id.
Fuente host-level de config/secrets/principal.
Promise<IRegistryInitReport>
Reporte con el outcome de cada plugin.
lifecycleOf(
pluginId):Result<PluginLifecycleState,ResultError<"PLUGIN_NOT_FOUND">>
Lifecycle actual de un plugin.
string
Id del plugin.
Result<PluginLifecycleState, ResultError<"PLUGIN_NOT_FOUND">>
Result con el lifecycle, o PLUGIN_NOT_FOUND.
probeHealth(
pluginId):Promise<Result<PluginHealthState,ResultError<"INVALID_HEALTH_TRANSITION"|"PLUGIN_NOT_FOUND">>>
Sondea el health de un plugin llamando a su health() y aplica la transición.
string
Id del plugin.
Promise<Result<PluginHealthState, ResultError<"INVALID_HEALTH_TRANSITION" | "PLUGIN_NOT_FOUND">>>
Result con el health resultante, o el motivo del rechazo.
select<
K>(kind):Result<IPluginBinding<K>,ResultError<"NO_PLUGIN_AVAILABLE">>
El plugin de mayor precedencia que puede servir ese extension point.
Salta los no servibles (failed, disabled, unavailable, misconfigured):
ahí es donde un provider caído deja paso al siguiente en vez de romper el flujo.
K extends keyof PluginExportsByKind
K
Extension point.
Result<IPluginBinding<K>, ResultError<"NO_PLUGIN_AVAILABLE">>
Result con el binding ganador, o NO_PLUGIN_AVAILABLE.
setHealth(
pluginId,next):Result<PluginHealthState,ResultError<"INVALID_HEALTH_TRANSITION"|"PLUGIN_NOT_FOUND">>
Fuerza una transición de health (acción de operador: disable/enable, o un health check externo al plugin).
string
Id del plugin.
Health destino.
Result<PluginHealthState, ResultError<"INVALID_HEALTH_TRANSITION" | "PLUGIN_NOT_FOUND">>
Result con el health resultante, o el motivo del rechazo.
shutdown():
Promise<readonlyIPluginShutdownOutcome[]>
Apaga los plugins activos.
Como initialize(), no falla en bloque: devuelve el outcome de cada uno.
Promise<readonly IPluginShutdownOutcome[]>
Outcome de shutdown por plugin, en orden de id.