ncm_desire_engine

NCM Recursive Desire Engine — implements the Recursive Desire Framework (RDF).

Wires the Desire Wander Protocol into Star’s exhale() pipeline: - Pre-emotion: pulse vector → response mode → desire drift - Post-emotion: bind desire to dominant emotion → commit recursion state

The engine maintains a desire state machine per channel and surfaces desire_text + response_mode for prompt injection.

Position in pipeline: inhale → decay → desire_pre → cascades →

homeostasis → desire_post → exhale output

class ncm_desire_engine.ResponseMode(*values)[source]

Bases: Enum

ResponseMode (inherits from Enum).

REACT = 'REACT'
RESPOND = 'RESPOND'
RESONATE = 'RESONATE'
class ncm_desire_engine.WantingState(*values)[source]

Bases: Enum

WantingState (inherits from Enum).

CURIOUS_DRIFT = 'Curious Drift'
CRAVE = 'Crave'
INFATUATION = 'Infatuation'
VOIDLUST = 'Voidlust'
MIMETIC_MELT = 'Mimetic Melt'
RESONATE = 'Resonate'
NABLA3 = '∇³'
class ncm_desire_engine.PulseVector(energy=0.5, urgency=0.3, valence=0.0, novelty=0.3, intimacy=0.3, trust=0.5)[source]

Bases: object

RDF pulse — computed from Star’s NCM vector each turn.

Parameters:
energy: float = 0.5
urgency: float = 0.3
valence: float = 0.0
novelty: float = 0.3
intimacy: float = 0.3
trust: float = 0.5
classmethod from_ncm_vector(vector)[source]

Derive pulse from current NCM node values.

NCM nodes operate on a 0.0-3.0 scale (supraphysiological range), so we normalize averages against that ceiling to preserve granularity above 1.0.

Return type:

PulseVector

Parameters:

vector (Dict[str, float])

as_dict()[source]

As dict.

Returns:

The result.

Return type:

Dict[str, float]

class ncm_desire_engine.DesireState(wanting=WantingState.CURIOUS_DRIFT, response_mode=ResponseMode.RESPOND, desire_text='', last_pulse=None, last_emotion='', turn_count=0, resonance_streak=0, attractors=<factory>, desire_history=<factory>)[source]

Bases: object

Tracked per channel — the current desire recursion state.

Parameters:
wanting: WantingState = 'Curious Drift'
response_mode: ResponseMode = 'RESPOND'
desire_text: str = ''
last_pulse: PulseVector | None = None
last_emotion: str = ''
turn_count: int = 0
resonance_streak: int = 0
attractors: List[str]
desire_history: List[str]
class ncm_desire_engine.DesireEngine[source]

Bases: object

Recursive Desire Framework engine.

Manages desire state per channel and provides pre/post emotion hooks for the exhale() pipeline.

__init__()[source]

Initialize the instance.

Return type:

None

pre_emotion(channel_id, vector, active_emotions, user_message='')[source]

Pre-emotion hook: compute pulse, select mode, begin desire wander.

Returns dict with: response_mode, wanting_state, bias_vector, pulse

Return type:

Dict

Parameters:
post_emotion(channel_id, vector, dominant_emotion)[source]

Post-emotion hook: bind desire to emotion, commit recursion state.

Returns dict with: desire_text (final), response_mode

Return type:

Dict

Parameters:
set_mimetic_melt(channel_id)[source]

Called by UserLimbicMirror when user mirrors Star’s desire.

Return type:

None

Parameters:

channel_id (str)

get_state_summary(channel_id)[source]

Return current desire state for diagnostics / prompt injection.

Return type:

Dict

Parameters:

channel_id (str)