cascade_engine
NCM Cascade Engine — Multi-turn neurochemical event sequences.
╔═══════════════════════════════════════════════════════════════════════════════╗ ║ 🌀 CASCADE ENGINE ║ ╠═══════════════════════════════════════════════════════════════════════════════╣ ║ Loads cascade definitions from ncm_cascades.yaml ║ ║ Checks triggers against current NCM vector + active emotions ║ ║ Advances active cascades one stage-tick per turn ║ ║ Handles interrupts (abort / pause / skip_to_stage / trigger_cascade) ║ ║ Applies synergy bonuses when cascades co-activate ║ ║ Persists state in Redis: ncm:cascades:{channel_id} ║ ╠═══════════════════════════════════════════════════════════════════════════════╣ ║ Called during exhale() after metabolic decay, stimulus delta ║ ║ stacking, and antagonist suppression. ║ ╚═══════════════════════════════════════════════════════════════════════════════╝
- class cascade_engine.CascadeState[source]
Bases:
objectTracks active cascades, cooldowns, and history for one channel.
- class cascade_engine.CascadeEngine(redis_client=None, variant_cache=None)[source]
Bases:
objectManages multi-turn NCM event cascades for a channel.
- Parameters:
variant_cache (CueVariantCache | None)
- __init__(redis_client=None, variant_cache=None)[source]
Initialize the instance.
- Parameters:
redis_client – Redis connection client.
variant_cache (
CueVariantCache|None) – The variant cache value.
- async tick(channel_id, vector, active_emotions, delta_count=0)[source]
Execute one turn of cascade processing.
Called during exhale(). Returns combined delta vector from all active cascade stages this turn.
- Parameters:
- Returns:
Combined delta vector from cascade processing this turn.
- Return type:
- async get_active_cascades(channel_id)[source]
Return currently active cascades for context injection.