
    i                     f    d Z ddlmZ ddlmZ ddlmZ e G d d             ZdZdZ	d	Z
d
edefdZy)u   
Genesis Persistent Context Architecture — ZERO_AMNESIA_STATE Envelope
Story 2.05 — Track B

Assembles the XML envelope that gets injected into every LLM system prompt.
Ensures every LLM call starts with full memory context.
    )	dataclass)Optional)escapec                   L    e Zd ZU dZee   ed<   ee   ed<   ee   ed<   eed<   y)MemoryContextz.Context assembled from 3-layer scatter-gather.working_statekg_topologylearned_constraints
latency_msN)__name__
__module____qualname____doc__r   str__annotations__float     :/mnt/e/genesis-system/core/memory/zero_amnesia_envelope.pyr   r      s)    8C= #!#&r   r   zCold start. No prior state.zNo KG context available.z"No prior scars for this task type.contextreturnc           	          t        | j                  xs t              }t        | j                  xs t              }t        | j
                  xs t              }| j                  d}d| d| d| d| d	S )a  
    Assemble the <ZERO_AMNESIA_STATE> XML envelope from a MemoryContext.

    Args:
        context: MemoryContext with fields from scatter-gather

    Returns:
        Valid XML string parseable by xml.etree.ElementTree.fromstring()
        All None fields replaced with canonical fallback strings.
        Empty string fields also replaced with canonical fallback strings.
        XML special characters in content are escaped.
    z.1fz%<ZERO_AMNESIA_STATE><WORKING_CONTEXT>z,</WORKING_CONTEXT><TOPOLOGICAL_BLAST_RADIUS>z0</TOPOLOGICAL_BLAST_RADIUS><LEARNED_CONSTRAINTS>z,</LEARNED_CONSTRAINTS><HYDRATION_LATENCY_MS>z,</HYDRATION_LATENCY_MS></ZERO_AMNESIA_STATE>)r   r   FALLBACK_WORKINGr	   FALLBACK_KGr
   FALLBACK_CONSTRAINTSr   )r   workingkgconstraintslatencys        r   build_enveloper       s     W**>.>?G	##2{	3B44L8LMK##C(G#9 %%%'D )  +} -!!(	 * 		!r   N)r   dataclassesr   typingr   xml.sax.saxutilsr   r   r   r   r   r   r    r   r   r   <module>r$      sT    "  #    1 (; M c r   