
    1j	                        d Z ddlmZ ddlZddlZddlmZmZ ddlmZ  eej                  j                  dd            ZdZd	Zefdd
ZddZddddddd	 ddZy)u  KAR-744 — gemeinsamer LLM-Call-Tracer fuer Aria.

Schreibt eine JSONL-Zeile pro Anthropic-Call nach /root/aria/logs/llm-traces.jsonl
(Prompt, Response, Model, Tokens, Latenz, Fehler). Forensik-tauglich + Quelle fuer
Eval-Golden-Sets (KAR-745).

Fail-safe: wirft NIE — Tracing darf die Pipeline nicht brechen.
Toggle: ARIA_LLM_TRACE=0 schaltet aus (Default an). Pfad: ARIA_LLM_TRACE_PATH.

Genutzt von aria-akp-deep.call_opus, aria-akp-triage.call_haiku (+ kuenftig vision).
    )annotationsN)datetimetimezone)PathARIA_LLM_TRACE_PATHz /root/aria/logs/llm-traces.jsonli   i  c                n    | y t        |       }t        |      |k  r|S |d | dt        |      |z
   dz   S )Nz...<truncated z chars>)strlen)valuenss       /root/aria/lib/aria_llm_trace.py_capr      sE    }E
A
1v{Ra5^CFQJ<w777    c                 P   	 t         j                         rt         j                         j                  t        kD  r\t         j                  t         j                  dz         } | j                         r| j                          t         j                  |        y y y # t        $ r Y y w xY w)Nz.1)

TRACE_PATHexistsstatst_size
_MAX_BYTES	with_namenameunlinkrenameOSError)baks    r   _rotate_if_neededr       s}    :??#4#<#<z#I&&z'=>Czz|

c"	 $J
  s   BB 	B%$B%)response_textusage
latency_mscorrelation_idvideo_iderrorc        	        f   t         j                  j                  dd      dk(  ry	 |xs i }t        j                  t
        j                        j                         | ||||j                  d      |j                  d      |t        |d      t        |      t        |      d}	t        j                  j                  d	d	
       t                t        j                  dd      5 }
|
j                  t        j                   |	d      dz          ddd       y# 1 sw Y   yxY w# t"        $ r Y yw xY w)z,Haengt eine JSONL-Trace-Zeile an. Wirft nie.ARIA_LLM_TRACE10Ninput_tokensoutput_tokensi  )tsscriptmodelr"   r!   r(   r)   r    r#   promptresponseT)parentsexist_okazutf-8)encodingF)ensure_ascii
)osenvirongetr   nowr   utc	isoformatr   r   parentmkdirr   openwritejsondumps	Exception)r+   r,   r-   r   r   r    r!   r"   r#   recfs              r   trace_llm_callrD   +   s    
zz~~&,3,,x||,668 ,!IIn5"YY7$%&6l]+
 	t<__S7_3 	@qGGDJJs7$>?	@ 	@ 	@ s0   B?D$ %*DD$ D!D$ !D$ $	D0/D0)r   int)returnNone)r+   r	   r,   r	   rF   rG   )__doc__
__future__r   r?   r5   r   r   pathlibr   r6   r7   r   r   
_FIELD_CAPr   r   rD    r   r   <module>rM      so   
 #  	 ' "**..!68Z[\


 $ 8 FJ$t 15r   