Namespace DotBoxD.Plugins.Runtime
Namespaces
Classes
- RemoteHookRegistry
Client-side hook registration surface for a remote plugin server. The fluent stages are lowered by the analyzer; a
Runterminal installs the generated verified-IR package through the supplied control-plane callback, while aRunLocalterminal additionally registers its native delegate in the supplied local-handler registry so the server can push filtered+projected values back to it.
- RemoteSubscriptionRegistry
Client-side fire-and-forget subscription registration surface for a remote plugin server. A
RunLocalterminal registers its native delegate in the supplied local-handler registry so the server can push filtered+projected values back to it per matching event.
- ResultHookDispatchOptions<TResult>
Per-dispatch options for result-returning hooks. Local handlers keep the existing in-process semantics; the timeout applies only to remote result handlers because they cross an IPC boundary that can stall.
Structs
- ResultHookFault
A fault caught while dispatching a result-returning hook (
.Register(...)/.RegisterLocal(...)) for one hook context type.HookRegistry.FireAsyncisolates a faulting handler — it abstains and falls through to the next registration so one bad handler cannot break the hook point — but that isolation is otherwise silent, which would let a veto-bearing handler (a successful result carrying e.g.CanDie = false) that throws fail open to the host default with no trace. The host observes these faults viaPluginServer.Create(onResultHookFault: ...)to surface the failure in its log, mirroring SubscriptionDeliveryFault for fire-and-forget subscriptions. Control flow is unchanged: a faulted handler is still skipped and dispatch still falls through to the next registration.
- SubscriptionDeliveryFault
A fault caught while delivering a published event to a subscription. Delivery runs on a background task and these faults are otherwise swallowed (so the game loop is never blocked or crashed by plugin code); the host observes them via
PluginServer.Create(onSubscriptionFault: ...)to surface the failure in its log, so a misbehavingSubscriptions.On<T>().Where(...).RunLocal(...)chain is diagnosable instead of silently doing nothing.
Interfaces
- IErasedPluginEventAdapter
A type-erased, wire-capable view of a registered IPluginEventAdapter<TEvent>. The closure is captured once at registration time (when the event type is statically known), so the host-side router (WireHook(InstalledKernel, WireOptions?) / WireSubscription(InstalledKernel, WireOptions?)) can wire an installed kernel to the correct typed pipeline terminal by event name — with no reflection at wire time.
Public as a composability seam: resolve one via TryResolveErased(string, out IErasedPluginEventAdapter) and wire a kernel your own way when the WireHook(InstalledKernel, WireOptions?) / WireSubscription(InstalledKernel, WireOptions?) defaults don't fit — without dropping all the way back to a hand-written event-name → typed-
On<TEvent>()dispatch.
Enums
- SubscriptionDeliveryStage
Which stage of subscription delivery threw. Filter is a lowered server-side
Where/projection predicate; Handler is a terminal handler (including aRunLocalprojection push and the native decode/dispatch it drives across the host boundary).