/** * Health Error Propagation, Effect Handlers * * Implements concrete actions for each CascadeEffect type produced by the * CascadeEngine. Each handler is a pure dispatch function, side effects * are performed through the provided aggregator and eventBus context. * * Callers (e.g. HealthStoreWiring) are responsible for iterating over * CascadeResult arrays and invoking this function for each result. * * @module health/effect-handlers */ import type { CascadeEffect, CascadeResult } from './types.js'; import type { RuntimeHealthAggregator } from './aggregator.js'; import type { RuntimeEventBus } from '../events/index.js'; /** Context injected into each effect handler. */ export interface EffectHandlerContext { /** The health aggregator, used to mark domain state changes. */ readonly aggregator: RuntimeHealthAggregator; /** The event bus, used to emit CASCADE_APPLIED and domain events. */ readonly eventBus: RuntimeEventBus; } /** * Dispatches the appropriate runtime action for a given CascadeEffect. * * Handles all six CascadeEffect variants: * - `CANCEL_INFLIGHT`, cancels in-flight operations in the given scope * - `BLOCK_DISPATCH`, blocks new dispatch in the given scope (optionally queues) * - `MARK_CHILDREN`, marks child tasks/agents as failed or blocked * - `DEREGISTER_TOOLS`, deregisters tools, scoped by pluginId from sourceContext * - `EMIT_EVENT`, emits a domain event of the given eventType on the bus * - `BLOCK_NEW`, blocks new operations of the given scope * * After applying the effect, emits a `CASCADE_APPLIED` event on the event bus * so that other subsystems can observe cascade propagation. * * @param effect - The CascadeEffect to apply. * @param result - The CascadeResult that produced this effect (carries ruleId, source, etc.). * @param context - The aggregator and eventBus needed to perform side effects. */ export declare function handleCascadeEffect(effect: CascadeEffect, result: CascadeResult, context: EffectHandlerContext): void; //# sourceMappingURL=effect-handlers.d.ts.map