
    c1j\S                       d Z ddlmZ ddlZej
                  j                  dd       ddlmZ	  e	d      Z
ddlmZ ddlmZ dd	lmZ ddlZddlZddlZddlZddlZddlZddlZddlZdd
lmZmZ ddlmZ  ed      ZdZd"dZ d#dZ!d$d%dZ"d&dZ#d&dZ$d'dZ%d(dZ&d)dZ'	 	 d*	 	 	 d+dZ(dZ)d,d-dZ*d.d/dZ+d,d0dZ,d1dZ-d2dZ.d3d4dZ/d5dZ0e1dk(  r7e
je                  d         ejf                   e0ejh                  d!d              yy)6u  
Aria Knowledge Pipeline (AKP) — Stage 3: Deep Process
KAR-74 · 2026-05-12

Liest alle triaged-promote Videos ohne deep_processed-Eintrag, schickt vollen
Transcript an Opus 4.7 mit kombiniertem Prompt:
  - 7-Punkt Praxisanalyse (Standing Order feedback_video_analysis_protocol)
  - Cross-Reference zu Brain via aria-brain-search.py
  - Klassifikation Brain-Entry/Issue/Skill/Spike/Ignore + Priority P0-P2
  - Inline Multi-Level-Challenge (Devils-Advocate -> Steel-Man -> Synthese)
  - Confidence-Score (Opus self-rated)

Output: Brain-Note in 00-Inbox/Videos/<date>-<channel>-<slug>.md (Standing-Order Frontmatter)
Auto-Issue gated auf P0 + confidence>=0.85 + Cross-Ref dedupe.

Gated auf ANTHROPIC_API_KEY.
    )annotationsNz/root/aria/lib)
get_loggeraria-akp-deep)audit)DeepProcessedItem)trace_llm_call)datetimetimezone)Pathz%/root/aria/brain/youtube/.config.yamlu  Du bist Aria im Deep-Process-Modus fuer KAR-74 AKP.

Auftrag: dieses Video tief analysieren nach dem Standing Order "feedback_video_analysis_protocol" und das Ergebnis als JSON liefern.

Video-Metadata:
- Titel: {title}
- Channel: {channel}
- Dauer: {duration_min} min
- Upload: {upload_date}
- URL: {url}

Cross-Reference (top 3 verwandte bestehende Brain-Notes, falls Match):
{cross_ref_block}

Transcript:
{transcript}

---

Liefere AUSSCHLIESSLICH ein JSON-Objekt mit dieser Struktur (keine Markdown-Codefences drumherum, kein Vor- oder Nachwort):

{{
  "kernaussage": "1-2 Saetze",
  "praxisanalyse": {{
    "1_was_lernen": "...",
    "2_wie_einsetzen": "...",
    "3_vorteil_aria_kadi": "...",
    "4_besser_machen": "...",
    "5_lohnt_warum": "...",
    "6_naechste_schritte": "..."
  }},
  "kritik": "Pflichtfeld — was ist schwach, redundant, schon-bekannt, ueberholt? Nicht schoenfaerben.",
  "klassifikation": "Brain-Entry|Issue|Skill|Spike|Ignore",
  "prioritaet": "P0|P1|P2",
  "confidence": 0.0,
  "thema": "Schlagwort fuer Frontmatter",
  "nutzen": "Ein-Satz-Nutzen fuer Aria/KADi/MRR",
  "umsetzungsidee": "konkrete Action wenn klassifikation=Issue/Skill/Spike, sonst null",
  "tags": ["array", "von", "tags"],
  "issue_proposal": {{
    "title": "Wenn klassifikation=Issue: KAR-Issue-Vorschlag-Title, sonst null",
    "body_md": "Wenn klassifikation=Issue: kurzer Body inkl. why+how+effort, sonst null",
    "estimate": "S|M|L|XL"
  }},
  "challenge": {{
    "devils_advocate": "Warum sollte das NICHT umgesetzt werden? 1-2 Saetze.",
    "steel_man": "Bestes Argument FUER Umsetzung. 1-2 Saetze.",
    "synthese": "Aria-Verdict: Promote / Refine / Drop — mit kurzer Begruendung."
  }}
}}

Klassifikations-Regeln:
- Brain-Entry: Wissen aufschreiben, kein Action-Item
- Issue: konkretes KAR-Backlog-Item das gebaut werden sollte
- Skill: neuer .claude/skills/-Eintrag oder bestehender Skill-Update
- Spike: Architektur-Untersuchung noetig, mehrere Optionen offen
- Ignore: trotz Triage-Promote bei Deep-Inspect doch nicht relevant (Override)

Confidence: ehrlich self-rated 0.0-1.0. Bei Klassifikation=Issue: nur >=0.85 erlaubt Auto-Issue.
Prioritaet: P0=jetzt, P1=diese Woche, P2=Backlog.
c                     t         j                         5 } t        j                  |       cd d d        S # 1 sw Y   y xY wN)CONFIG_PATHopenyaml	safe_load)fs    #/root/aria/scripts/aria-akp-deep.pyload_configr   a   s1    				 !q~~a ! ! !s   4=c                Z    t        j                  |       }t         j                  |_        |S r   )sqlite3connectRowrow_factory)db_pathcons     r   db_connr   f   s     
//'
"CkkCOJ    c                :    t        | j                  d|f            S )Na  SELECT i.video_id, i.channel, i.title, i.duration_seconds, i.url,
                   i.published_at AS upload_date, i.raw_path,
                   t.avg_score, t.aria_relevance, t.one_line_reason
            FROM ingested i
            JOIN triaged t ON t.video_id = i.video_id
            LEFT JOIN deep_processed d ON d.video_id = i.video_id
            WHERE t.verdict = 'promote'
              AND d.video_id IS NULL
            ORDER BY t.avg_score DESC, t.triaged_at ASC
            LIMIT ?)listexecute)r   limits     r   get_pending_promoter"   l   s&    		 
  r   c                $    | dz  dz  |dz  dz  z   S )N@B       .@g     R@ input_tokensoutput_tokenss     r   opus_pricing_usdr*   |   s!    9$,	0IT/QQQr   c                $    | dz  dz  |dz  dz  z   S )Nr$   g      @r%   r&   r'   s     r   sonnet_pricing_usdr,      s!    9$+}y/HD.PPPr   c                    t        j                  t        j                        j	                         j                         }| j                  d| d|f      j                         }|rt        |d         S dS )NzSELECT z FROM daily_costs WHERE date=?r           )	r	   nowr
   utcdate	isoformatr    fetchonefloat)r   keytodayrows       r   todays_costr8      s`    LL&++-779E
++u$BCeX
N
W
W
YC5Q=(S(r   c                    t        j                  t        j                        j	                         j                         }| j                  d|||||f       | j                          y )NzINSERT INTO daily_costs (date, triage_usd, deep_usd, total_usd) VALUES (?,0,?,?) ON CONFLICT(date) DO UPDATE SET deep_usd=deep_usd+?, total_usd=total_usd+?)r	   r/   r
   r0   r1   r2   r    commit)r   
deep_deltar6   s      r   add_costr<      sQ    LL&++-779EKK	U	
J
J?
 JJLr   c           	        t        |      j                         sg S 	 t        j                  d|| dt	        |      dgddd      }|j                  dk7  r	 t        j                  d|| dt	        |      gddd      }|j                  dk7  rg S g }|j                  j                         D ]  }|j                         }|r|j                  d      r't        j                  d	|      }|r$|j                  |j                  d
      dd       c|j                  d      su|j                  |dd        |d| S 	 t!        j"                  |j                        }t%        |t&              r|d| S 	 g S # t        j
                  $ r g cY S w xY w# t        j
                  $ r g cY S w xY w# t         j(                  $ r Y g S w xY w)zNCall aria-brain-search.py for top-N matches. Best-effort, no crash on failure.python3z--topz--jsonT   )capture_outputtexttimeoutr   )z==Top#---z^\s*[\d.]+\s+(.+\.md)\s*$   )pathscore.mdN)r   exists
subprocessrunstrTimeoutExpired
returncodestdout
splitlinesstrip
startswithrematchappendgroupendswithjsonloads
isinstancer   JSONDecodeError)querybrain_search_pathtop_nroutlinemdatas           r   	cross_refre      s   !"))+	NN)5'3u:xPdB
 	||q	-ugs5zJ#$A <<1IHH'') 	7D::<D4??+FG5t<A

AGGAJ;<u%

D156	7 6E{zz!((#dD!< " I= $$ 	 (( 	I	&  Is5   (E1 'F :3F' 1F	F	F$#F$'F>=F>c                   t        j                         }	 | j                  j                  |dd|dg      }d	j                  d
 |j                  D              }|}	d }
	 d|	v ra|	j                  d      }|D ]K  }|j                         }|j                  d      r|dd  j                         }|j                  d      sI|}	 n |	j                  d      }|	j                  d      }|dk7  r |dk7  rt        j                   |	||dz          }
|j&                  j(                  |j&                  j*                  d}t        |||||t        t        j                         |z
  dz        |       |
|fS # t        $ rV}t        |||t        t        j                         |z
  dz        |t        |             d t        |      dddfcY d }~S d }~ww xY w# t        j"                  t$        f$ r d }
Y w xY w)Ni  user)rolecontent)model
max_tokensmessagesi  )scriptrj   prompt
latency_msvideo_iderrorr   )rq   r(   r)    c              3  N   K   | ]  }t        |d       s|j                    yw)rA   N)hasattrrA   ).0bs     r   	<genexpr>zcall_opus.<locals>.<genexpr>   s     J!wq&7IqvvJs   %%z```rY      {}rF   r'   )rm   rj   rn   response_textusagero   rp   )time	monotonicrl   create	Exceptionr   intrM   joinri   splitrR   rS   findrfindrY   rZ   r\   
ValueErrorr}   r(   r)   )clientrj   rn   rp   trace_scriptt0resperaw_textrA   parsedpartspfirstlastr}   s                   r   	call_opusr      s   		B
N%%%&9: & 
 wwJt||JJHDFD=JJu%E GGI<<'!"A<<$D 		#tzz#B;42:ZZU46 23F "ZZ44tzzG_G_`E,eF!)!4>>#3b#8D"@AHV 5=7  Nl%"%t~~'7"'<&D"E (A	8 s1vq1MMM	N*   *- s8   "E/ AG ?AG /	G8AG	G	GG/.G/u  Du bist ein UNABHAENGIGER, adversarialer Critic. Ein anderes Modell hat aus einem Video-Transcript die folgende Analyse erzeugt. Pruefe sie streng — NICHT schoenfaerben, im Zweifel kritischer.

Pruefe:
1. Halluzination: Steht alles in der Analyse wirklich im Transcript, oder erfunden/uebergeneralisiert?
2. Wert: Ist der behauptete Nutzen fuer Aria/KADi real oder generisches AI-Hype-Wiederkaeuen?
3. Klassifikation: Ist die klassifikation (Brain-Entry/Issue/Skill/Spike/Ignore) angemessen, oder wurde Hype als Issue/Skill ueberbewertet?
4. Confidence: Ist die self-rated confidence gerechtfertigt?

Transcript (Auszug):
{transcript}

Analyse (JSON des Generators):
{analysis}

Liefere AUSSCHLIESSLICH ein JSON-Objekt (keine Codefences, kein Vor-/Nachwort):
{{
  "verdict": "keep|refine|drop",
  "confidence": 0.0,
  "hallucination_risk": "low|medium|high",
  "issues": ["konkrete Schwaeche 1", "..."],
  "corrected_klassifikation": "nur wenn die urspruengliche falsch ist, sonst null",
  "one_line": "1-Satz-Urteil"
}}

Verdict-Regeln:
- keep: akkurat + wertvoll, Klassifikation passt.
- refine: brauchbar, aber Schwaechen (ueberbewertete Klassifikation, schwache Belege).
- drop: halluziniert, wertlos oder reines Hype — sollte Ignore sein.
Sei im Zweifel strenger (Default refine statt keep).c                    t         j                  |xs ddd t        j                  |d      dd       }t	        | |||d	      S )
zKAR-747: separater, unabhaengiger Critic-Call (eigener Context, Cross-Model).

    Generator != Evaluator. Gibt (critic_dict_or_None, usage) zurueck.
    rr   Ni@  F)ensure_asciiip  )
transcriptanalysiszaria-akp-deep-critic)rp   r   )CRITIC_PROMPT_TEMPLATEformatrY   dumpsr   )r   rj   r   r   rp   rn   s         r   call_criticr     sS    
 $**$"et,F7> + F VUFXLbccr   c                    t        j                  dd| j                               } t        j                  dd|       j                  d      } | d | S )Nz[^\w\s-]rr   z[\s_-]+-)rT   sublowerrR   )smaxlens     r   slugifyr     sC    
{B	*A
z3"((-AWf:r   c                T   t        | d   d         }|j                  dd       t        j                         j	                  d      }t        |d   xs |d   d      }| d	t        |d
   xs dd       d	| d}	||	z  }
dd|d   xs dj                  t        d      t        d             dd|d    dd|d
    d|d    d|j                  dd       d|j                  dd      j                  t        d      t        d             dd|j                  d      xs dj                  t        d      t        d             dd |j                  d!d"       d#|j                  d$d%       d&|j                  d'd(       d)d*d+j                  |j                  d,g       g d-z          d.d/| d0ddg}g d1|d    dd2|d
    d3t        |d   xs d4d5z         d6|d    dd7|j                  d8d9      dd:d;|j                  d<i       j                  d=d	      dd>|j                  d<i       j                  d?d	      dd@|j                  d<i       j                  dAd	      ddB|j                  d<i       j                  dCd	      ddD|j                  d<i       j                  dEd	      ddF|j                  d<i       j                  dGd	      ddH|j                  dIdJ      ddKdL|j                  dMi       j                  dNd	       ddO|j                  dMi       j                  dPd	       ddQ|j                  dMi       j                  dRd	       d}|r|j                  dS      xs g }|rdTj                  dU |D              ndV}|dWdX|j                  dYd	       dZ|j                  d'd	       d[|j                  d\d	       dd]|j                  d^d	       d|j                  d_      rd`|j                  d_       ndda|dg	z  }|dbgz  }|rW|D ]Q  }|j                  dcd      }t        |      j                  }|j                  dd| de|j                  dfd	       dg       S n|j                  dh       |ddi|j                  d$d%       dj|j                  d!d"       dk|j                  d'd(       dldgz  }|j                  dmi       j                  d      rF|dm   }|dndo|j                  dd       dp|j                  dqdr       d|j                  dsd      dgz  }|ddt|dudvt        j                  t        j                        j                          dwgz  }|
j!                  dTj                  ||z                t#        |
      S )xNdeepoutput_inbox_dirT)parentsexist_okz%Y-%m-%dtitlerp   (   r   channelakp   rI   rE   ztitle: "rr   "   '   "zsource: urlzplattform: youtubez	channel: zduration_seconds: duration_secondszthema: themaz	nutzen: "nutzenzumsetzungsidee: "umsetzungsideezprioritaet: 
prioritaetP2zklassifikation: klassifikationBrain-Entryzconfidence: 
confidencer.   zstatus: aktivztags: [z, tags)r   videozauto-ingested]zdate: zakp_run: kar-74z# z**Channel:** u    · **Dauer:** r   <   u    min · **URL:** z## Kernaussagekernaussagez(nicht extrahiert)z## 7-Punkt Praxisanalysez### 1. Was koennen wir lernen?praxisanalyse1_was_lernenz$### 2. Wie koennen wir es einsetzen?2_wie_einsetzenzN### 3. Konkreter Vorteil fuer Aria / KADi / Supplier Pulse / Workflow / Tools?3_vorteil_aria_kadiz-### 4. Was koennen wir dadurch besser machen?4_besser_machenu*   ### 5. Lohnt sich die Umsetzung — warum?5_lohnt_warumz### 6. Naechste Schritte6_naechste_schrittez## Kritik (Pflichtfeld)kritikz(keine)z)## Multi-Level-Challenge (inline, KAR-72)z**Devils-Advocate:** 	challengedevils_advocatez**Steel-Man:** 	steel_manz**Synthese:** syntheseissues
c              3  &   K   | ]	  }d |   yw)- Nr&   )ru   is     r   rw   z#write_brain_note.<locals>.<genexpr>\  s     9Q"QC9s   z	- (keine)z<## Adversarial-Critic (separater Call, Cross-Model, KAR-747)z**Verdict:** verdictu    · **Confidence:** u    · **Halluzinations-Risiko:** hallucination_riskz**Urteil:** one_linecorrected_klassifikationz **Korrigierte Klassifikation:** z**Schwaechen:**z ## Cross-Reference (Brain-Match)rG   z- [[z
]] (score rH   )z- (keine Brain-Matches)z## Klassifikation: **u   ** · Prioritaet **u   ** · Confidence **z**issue_proposalz"## Issue-Proposal (auto-generated)z**Title:** z**Estimate:** estimateMbody_mdu-   *Auto-generated by aria-akp-deep.py · cost $.4fu    · *)r   mkdirr	   r/   strftimer   replacechrgetr   r   stemrV   r
   r0   r2   
write_textrM   )cfgr   r   
cross_refscostcriticout_dirr6   slugfnamerG   fm_lines
body_linesr   issue_blockcr   linkips                      r   write_brain_noter     s   3v;123GMM$M.LLN##J/E5>6U:%6;DgQwuY/85"=>avSIEU?D 	
E'N(b11#b'#b'BC1E
5<.!
E)$%&
U#5678
&**WR()*
FJJx+33CGCGDEQG
VZZ(89?RHHRQTUWQXYZZ[\
vzz,t456
6::&6}EFG
vzz,s345
$))FJJvb14UUVWWXY


%H(%
U7^%
% i()eDV>W>\[\^`=`9a8bbstyz  uA  tB  	C% 		%
 	% 	

="67% 	% 	#% )% 	

?B'++NC@% 	% /% 	

?B'++,=sC% 	% Y%  	

?B'++,A3G!%" 	#%$ 8%%& 	

?B'++,=sC'%( 	)%* 5+%, 	

?B'++OSA-%. 	/%0 #1%2 	

?B'++,A3G3%4 	5%6 	"7%8 	

8Y'9%: 	;%< 	4=%>  

;r : > >?PQT UVW?%@ 	A%B &**[488SIJKC%D 	E%F K377
3GHIG%H 	I%JL H%+=Cdii9&99JFJJy566J6::VbcfKgJh  iH  IO  IS  IS  Th  il  Im  Hn  o6::j567\b\f\f  hB  ]C/

;U0V/WX  IK

 
	

 * J  	LAfb!A7<<DTF*QUU735G4HJK	L
 	34



+;M JKK^_e_i_ijvw{_|^}  ~Q  RX  R\  R\  ]i  jm  Rn  Qo  oq  	r
 J
 zz"B'++G4$%0"&&,-.RVVJs345FF9b!
 	

 
7SzhllS[S_S_F`FjFjFlEmmno J 	OODIIh345t9r   c	                ~    | j                  d||||||t        j                  |      |f       | j                          y )NzINSERT OR REPLACE INTO deep_processed (video_id, classification, priority, confidence, kar_issue_id, brain_note_path, cross_refs_json, cost_usd) VALUES (?,?,?,?,?,?,?,?))r    rY   r   r:   )	r   rp   classificationpriorityr   kar_id
brain_pathr   r   s	            r   
store_deepr     s>    KK 	t	>8ZTZZXbMceij JJLr   c                \    | j                  d      }| j                          |j                  S )Nz>INSERT INTO run_log (stage, status) VALUES ('deep', 'running'))r    r:   	lastrowid)r   curs     r   log_run_startr     s$    
++V
WCJJL==r   c                R    | j                  d|||||f       | j                          y )NzUPDATE run_log SET finished_at=datetime('now'), status='completed', items_processed=?, items_skipped=?, items_failed=?, notes=? WHERE id=?)r    r:   )r   run_id	processedskippedfailednotess         r   log_run_finishr     s-    KK 	U	GVUF3 JJLr   c                   t               }t        |d   d         }t        j                  j	                  d      }|s%t        |d      }t        dt        |       d       y	 ddlm	}  ||      }|d   d   }|d   d   }t        |d      }	t        |d      }
|
|k\  s|	|k\  rt        d|
dd| d|	dd|        yt        |      }|st        d       yt        dt        |       d||
z
  dd||	z
  d       t        |      }|d   d   }|d   d   }|d   d   }|d   d   }t        |d   j	                  dd             }|d   j	                  d!d"      }i }d}d}d}|D ]i  }t        |d      |k\  st        |d      |k\  rt        d#        n=	 t        j                  t!        |d$         j#                               }|j	                  d&      xs d'd | }|d(    d)|d*    d d+ }t)        |||      }|sd,nd-j+                  d. |D              }t,        j/                  |d(   xs d'|d*   xs d't1        |d/   xs dd0z        |d1   xs d2|d3   xs d'||4      }t3        ||||d5   6      \  }}t5        |d7   |d8         }t7        ||9       |rd:|vrt9        ||d5   d;d<d=d d'||	       |d%z  }S|j	                  d:d>      } |j	                  d?d<      }!t;        |j	                  d@d=            }"d }#|rt=        |||||d5   6      \  }#}$|$rO|$j	                  dA      s>t?        |$j	                  d7d      |$j	                  d8d            }%t7        ||%9       ||%z  }|#r*|#j	                  dBdC      }&|j	                  |&d      d%z   ||&<   tA        ||||||#D      }'t9        ||d5   | |!|"d |'||	       |d%z  }tC        jD                  dE       l |rdF| nd'}(tG        |||||dGt        |d      d|(        t        dH| dI| dJ| dKt        |d      d|( 	       |jI                          y# t        $ r t        d	       Y y
w xY w# t$        t        j&                  f$ r	 |d%z  }Y w xY w)LNpathsstate_dbANTHROPIC_API_KEYi'  z&[akp-deep] ANTHROPIC_API_KEY not set. z promoted videos queued.r   )	Anthropicz![akp-deep] anthropic SDK missing.   )api_key	cost_capsdeep_max_usdtotal_max_usd	total_usddeep_usdz#[akp-deep] cost-cap reached. deep=$r   z/$z	, total=$z&[akp-deep] no pending promoted videos.z[akp-deep] z pending. budget left: deep=$z total=$r   transcript_max_charscross_ref_top_nmodels
deep_modelbrain_searchcritic_enabledTcritic_modelzclaude-sonnet-4-6z$[akp-deep] cost-cap reached mid-run.raw_pathrF   r   rr   r    r      z(keine Matches)r   c              3  n   K   | ]-  }d |j                  dd       d|j                  dd       d / yw)r   rG   ?z (score rH   r   r   N)r   )ru   r   s     r   rw   zmain.<locals>.<genexpr>  s>      C
FGbvc"#8AEE'#,>+?qAC
s   35r   r   upload_dateunknownr   )r   r   duration_minr  r   cross_ref_blockr   rp   )rp   r(   r)   )r;   r   Ignorer   r.   r   r   r   rq   r   r  )r   g      ?z critic_verdicts=zdeep_today=$z[akp-deep] processed=z	 skipped=z failed=z deep_today=$)%r   r   osenvironr   r"   printlen	anthropicr  ImportErrorr8   r   boolrY   rZ   r   	read_textOSErrorr\   re   r   DEEP_PROMPT_TEMPLATEr   r   r   r*   r<   r   r4   r   r,   r   r~   sleepr   close))argvr   r   r  pendingr  r   cost_cap	total_captodays_totaltodays_deepr   excerpt_maxcross_nrj   r  r  r  verdict_countsr   r   r   r7   rawr   cross_querycrefs
cref_blockrn   r   r}   r   r   r   r   r   c_usagec_costvr   critic_notes)                                            r   mainr;    sR   
-C
#g,z*
+Cjjnn01G%c516s7|nD\]^' w'F;/HK 1IsK0Lc:.Kh,)";3K3DBxjPYZfgjYkkmnwmxyz!#&G67	KG~%B8KCWX[B\\deno{e{|  eA  B  C3Ff+45K&k+,GM,'Ew</L#f+//*:DABNx=$$^5HIL%'NIGF 7sJ'83{37TXa7a89	**T#j/2<<>?C ggl+1r<K@
WaI'78#>+|W=.3& C
KPC
 :

 &,,g,$"	N(bc"45:b@AM*7iE
 b&! - 
 "&%#j/Rn 5u_7MN&)7sC
OXtS$ESWXaKF$4mD::lD16::lC89
 )&,
F]`ak]lmOFGw{{73+GKK,JGKKXgijLkl0JJy#.$2$6$6q!$<q$@q!%c3tFS
3J:tU_afhlmQ	

3o7r ;I%n%56bK3	7Fl;WZ[eKfgjJklwkx<yz	!)IgYhvhm\ghklv\wx{[|  ~I  }J  K  LIIK  12P --. 	aKF	s$   #P/ /Q	/QQ	Q+*Q+__main__script_startrF   )returndict)r   rM   r>  sqlite3.Connection)d   )r   r@  r!   r   r>  zlist[sqlite3.Row])r(   r   r)   r   r>  r4   )r   r@  r5   rM   r>  r4   )r   r@  r;   r4   r>  None)r]   rM   r^   rM   r_   r   r>  
list[dict])Nr   )
rj   rM   rn   rM   rp   
str | Noner   rM   r>  tuple[dict | None, dict]r   )
rj   rM   r   rM   r   r?  rp   rD  r>  rE  )2   )r   rM   r   r   r>  rM   )r   r?  r   zsqlite3.Rowr   r?  r   rC  r   r4   r   zdict | Noner>  rM   )r   r@  rp   rM   r   rM   r   rM   r   r4   r   rD  r   rM   r   rC  r   r4   r>  rB  )r   r@  r>  r   )rr   )r   r@  r   r   r   r   r   r   r   r   r   rM   r>  rB  )r*  z	list[str]r>  r   )5__doc__
__future__r   sys_sysrG   insertaria_loggingr   _get_logger_log
aria_auditr   _auditaria_schemasr   	_DeepItemaria_llm_tracer   rY   r  rT   r   rK   r~   r   r	   r
   pathlibr   r   r'  r   r   r"   r*   r,   r8   r<   re   r   r   r   r   r   r   r   r   r;  __name__eventexitr*  r&   r   r   <module>rX     s  " #  		  $ % 2?# & 7 ) 9 9 9 9 ' :;< ~!
 R
Q
)'T GK"1$$6N$N8 >	dnbk\ zJJ~CHHT#((12,  r   