
    Xj%                     H   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ZdZ	dZ
dZdej                  j                  ej                  j                        j                  d      z   Z e j"                  ed       d	 Zd
 Zd Z ee	dz         d   Z ee	dz         d   Z ee	dz         d   Zddg g g dZ eed      D ]p  \  ZZed   j9                  dedej;                  d      ej;                  d      ej;                  d      ddD  ci c]  } | ej;                  |        c} d       r  eed      D ]  \  ZZed   j9                  dedej;                  d      ej;                  d      ej;                  d      ej;                  d       d!d"D  ci c]  } | ej;                  |        c} d         eed      D ]  \  ZZed#   j9                  d$edej;                  d%      ej;                  d&i       j;                  d'      ej;                  d(i       j;                  d'      d)d*D  ci c]  } | ej;                  d+       c} d,         ed-e        ej<                  d.ez   d/z   d0      Zd1 Z g Z! eed      D ]2  \  ZZej;                  dd2      Z" e e"      Z#ej;                  d3d2      Z$e$re#jK                  e$      nd4Z&e&d k  r/ e' e(e#       e)d  e*ej;                  dd             d5z              Z& e)d e&d6z
        Z+ e' e(e#      e& e) e(e$      d      z   d6z         Z,e!j9                  dedej;                  d7      e#e+e& e&d k\  re#e&e& e(e$      z    ne#e+e, e&d k\  re#e& e(e$      z   e, nd2 ee"      ej;                  d      e&d k\  re&nde&d k\  re& e(e$      z   ndd8dd9       5 g Z- eed      D ]%  \  ZZej;                  dd2      Z" e e"      Z#ej;                  d       xs i Z.e.j;                  d:      Z/e.j;                  d;      Z0 e1e/e*      sd Z/ e1e0e*      re0e/k  r e' e(e#      e/d<z         Z0 e)d  e' e(e#      e/            Z/ e)e/ e' e(e#      e0            Z0 e)d e/d=z
        Z2 e' e(e#      e0d=z         Z3e-j9                  dede"ji                  d>      rd?nd@e#e2e3  ee"      e/e2z
  e0e2z
  ej;                  d      dAdB ee"      idC       ( g Z5eD ]G  Ze5ej;                  d&i       j;                  d'      ej;                  d(i       j;                  d'      gz  Z5I dDdEjm                  dF e(e5      z        z   dGz   Z7ejq                  e7e5      D ci c]!  }|d    |d    |d   |dH   |dI   |dJ   |dK   dL# c}Z9g Z: eed      D ]  \  ZZe9j;                  ej;                  d&i       j;                  d'      i       Z/e9j;                  ej;                  d(i       j;                  d'      i       Z0dM Z;e:j9                  d$ed e;e/       e;e0      dN        dOD ]s  \  Z<Z=e!D cg c]  }|d   	 c}e-D cg c]  }|d   	 c}z   e:D cg c]  }|d   	 c}z   Z5 ej|                  e=      j                  e5        edPe<z   dQz   e=e5dR       u  edSdTe!dU        edVdWe-dU        edXdYe:dU       dZdgg d9g d8d[dZdgg dCg dAdBgd\dZdgg dNd]d^gg d_d`daZ@ edbe@       g dcZAh ddZBg ZCddfZDdgD ]=  \  ZEZF eedhz   eEz         ZG eDeGdieF      ZHeCj9                  eEeH e(eH      eHsdjndkdl       ?  edmdneCdo        edpdjdqdrdrdrdads        ej                         ZJdtD ]Y  ZKejq                  dueKz   dvz         D ]=  ZLeJj                  eKdwz    ej                  eLdedxy      z   dzz   j                                ? [ g ZPdtD ]&  ZKePejq                  d{eKf      j                         z  ZP( ej                  j                  ej                  j                        j                         eJj                          ej                   ej                  ePded|      j                               j                         d}ejq                  d~      j                         d     e(ejq                  d      j                               dZ0 ede0        ede0        edd d d d d dg d        eUd  ej
                  edz         D              ZVeVD ci c]Q  }e j                  j                  |       ej                   eY|d      j                               j                         S c}Z[ ede[        e\ ej                  e e(e!       e(e-       e(e:      eCe[j                         D  ci c]  \  } }d| v sd| v s| | c}} d             yc c} w c c} w c c} w c c}w c c}w c c}w c c}w c c}w c c}} w )    Nz0/opt/struktur/reports/aa043-p44/20260828T122726Zz0/opt/struktur/reports/aa043-p42/20260828T100641Zz+/opt/struktur/youtube-research/knowledge.dbz$/opt/struktur/reports/aa043-p44-r1p/z%Y%m%dT%H%M%SZT)exist_okc                 B    t        j                  t        | d            S )Nutf8encoding)jsonloadopen)ps    /opt/struktur/AA-043-P44-R1P.pyr	   r	      s    DIId1f566    c                 b    t        j                  |t        t        dz   | z   dd      dd       y )N/wr   r   F   )ensure_asciiindent)r   dumpr
   OUT)nxs     r   r   r      s%    tyy4C	#v>EYZ[r   c                 j    t        j                  | j                               j                         d d S )N   )hashlibsha256encode	hexdigest)r   s    r   digestr      s&    gnnQXXZ0::<SbAAr   z/p44-segmentation-cases.jsoncasesz/p44-claim-cases.jsonz/p44-pair-cases.jsonSEALED_EVALUATION_METADATAzP44 selection references only)classificationsourcesegmentationclaimspairs   r#   zSEG-04dcase_idr"   segment_index)r"   r)   )r!   audit_classaudit_methodissues)blind_case_idold_case_idselection_referencesealed_fieldsr$   zCLM-canonical_source_identitysource_locator)r"   r)   locator)statusreasonknowledge_valuesubject	predicateobjecthallucinationextractor_versionr%   zPAIR-pair_idclaim_aidclaim_b)a_idb_id result)r-   old_pair_idr/   r0   zp44-r1p-selection-metadata.jsonzfile:z?mode=ro&immutable=1)uric                 \   | j                  d      rH| j                  dd      d   }t        j                  d|f      j	                         }|r
|d   r|d   S dS | j                  d      r3d| j                  dd      d   z   }t        |d	
      j                         S y# t        $ r Y yw xY w)Nyoutube::r&   z8select transcript from videos where youtube_id=? limit 1r    z	obsidian:z/opt/obsidian-vault/r   r   )
startswithsplitcexecutefetchoner
   readOSError)srcvidrr   s       r   
transcriptrT      s    NN:	iiAq#QYY'acfbhirrt1  FG  LM  NO  LP}~  @A  ~B  wX  VX  wXNN;399S+A..!1f%**,,
 
s   B 	B+*B+rI   textP      source_type)
source_keyr)   start_offset
end_offset)r(   rY   raw_text_beforetarget_textraw_text_afterraw_locator
timestampsr[   r\   i  i^  rG   youtubeobsidian)rZ   r[   r\   r)   rZ   )r(   rY   raw_source_windowr`   neutral_source_contextz|select id,statement,source_identity,source_version_id,content_version_hash,source_locator from knowledge_units where id in (,?)r            )r>   	statementsource_identitysource_version_idcontent_version_hashr2   c                     | j                  dd      t        | j                  dd            | j                  d      | j                  d      | j                  d      ddS )	Nrl   rI   rm   rn   ro   r2   rZ   rn   ro   r2   )rl   source_context)getr   )rS   s    r   cleanrt   /   s    155R#8X^_`_d_devwy_zX{  QR  QV  QV  Wj  Qk  CD  CH  CH  I_  C`  rs  rw  rw  xH  rI  KJ  K  Kr   )r(   r=   r?   ))aiE  )biF  zp44-r1p-order-pass-z.json)seedcase_idsp44-r1p-segmentation-blind.jsonSEG_BLIND_V1)schemar   p44-r1p-claim-blind.jsonCLM_BLIND_V1p44-r1p-pair-blind.jsonPAIR_BLIND_V1r{   )rootcaser`   )r   r   r`   re   rl   rr   rq   )r   r   claimrr   )SEGCLMPAIRzp44-r1p-schema-allowlists.json)labelr!   rC   
predictionexpectedr4   r5   score
similarity
confidencegold	consensusmatcher	extractor	segmenterr:   r6   atomic_goodcontext_missingmulti_claim
same_claimcontradictionrelated_not_samereview_required>   rl   r^   r_   r]   rd   Fc           
      b   g }t        | t              rt        t        |   |         }| j	                         D ]e  \  }}||vr|j                  d|dz   |z   |d       ddddddj                  ||d	k(  rd	n|      }	|t        ||dz   |z   ||	|xs |t        v       z  }g |S t        | t              r4t        |       D ]$  \  }
}|t        || d
|
 d||d	k(  rdn||      z  }& |S t        | t              r9|s7|dvr3t        D ]*  }|| j                         v s|j                  d||d       , |S )NzFIELD/METADATA LEAK.)typepathvaluer`   re   r   rr   )r`   re   r=   r?   rr   r   []r   >   $.schemazTEXT/METADATA LEAK)r   r   term)
isinstancedictsetallowitemsappendrs   validaterawkeyslist	enumeratestrtermslower)vr   kindrolerawhitsallowed_keyskznextrolejts               r   r   r   ;   s   q5;t$%,WWY Dca|T[[1FdSVhWXjab)cd(BZelw~  Qa  b  f  f  gh  sw  y  s  io  EI  J88Ad3hqjhs/Ba7lCC4D 	 4q\gca48Aas!nTDRXL&^bcf#gg4g 	 3L(@ Va1779ndkk*>dRS"TUVr   ))ry   r   )r|   r   )r~   r   r   $PASSFAIL)filer   	hit_countr4   zp44-r1p-leakage-scan.jsonz[field/schema hits only; raw-source occurrences are classified as RAW_SOURCE_TEXT OCCURRENCE)term_policyfilesz#p44-r1p-semantic-leakage-audit.jsonzystrict recursive path allowlist plus 50-case-per-benchmark structural review; no selection-reason fields in blind schemas2   )r4   methodsamples)knowledge_unitsknowledge_unit_provenanceknowledge_unit_review_auditzselect * from z order by id|)rf   rH   )r   
separators
zTselect type,name,tbl_name,sql from sqlite_master where tbl_name=? order by type,name)r   	sort_keys@5b1ade038b443ca80d8e344ff1a4cb25b8f4e5ff3bbca5b4bb3b37fcf6c078c1zpragma integrity_checkzpragma foreign_key_check)
checked_atku_core_fingerprintschema_fingerprintlegacy_fk_fingerprintintegrity_checkforeign_key_checkz*p44-r1p-component-fingerprints-before.jsonz)p44-r1p-component-fingerprints-after.jsonzp44-r1p-queue-delta.json)P44_R1P_CAUSED
P44_CAUSEDINDEPENDENT_AUTHORIZEDINDEPENDENT_UNAUTHORIZEDUNCLEAR)countsnew_or_changedc              #   `   K   | ]&  }t         j                  j                  |      s#| ( y w)N)osr   isfile).0r   s     r   	<genexpr>r   V   s     A1rww~~a/@QAs   $..z/*rbzSHA256SUMS.jsonblindorder)outsegr$   r%   scanhashes)r   F)^r   r   r   sqlite3datetimeglobrandomreshutilBASEP42DBnowtimezoneutcstrftimer   makedirsr	   r   r   oldSoldColdPmetar   ir   r   rs   connectrL   rT   r   rQ   r   targetfindposminlenmaxintstartendcllocru   rv   r   leftrightrJ   idsjoinsqlrM   rowsr%   rt   namerw   Randomshuffler   r   r   scansr   fntypr   r   r   hr   rS   updatedumpsr   r{   fetchall	isoformatr   rN   sortedr   r   basenamer
   rO   sumsprintr   )r   rS   r   r   r   s   00000r   <module>r     s   = = = = =7=o  ubqs*8+<+<+@+@ARARAVAV+W+`+`aq+rrttvtt  AD  NR  uS 6 [ A	$-
-.w7d4H_C_>`ah>iptuy  {Q  vQ  qR  SZ  q[ko3=\lnxz  DF  GT!  rCAad>299TRSTWQX>hihmhmnwhx  Z[  Z_  Z_  `h  Zi  z{  z  z  @O  zP  PQ  wo  bp  rs  cd  ef  ej  ej  kl  em  cm  bp  ;q  r  rT!  QCAad8n33tAc7^bcbgbghqbr  TU  TY  TY  Zu  Tv  GH  GL  GL  M\  G]  hi  hm  hm  n~  h  J@  fN  QO  ab  RS  TU  TY  TY  Z[  T\  R\  QO  5P  Q  QT!  GCAad7m22eAc7Obcbgbghqbr  RS  RW  RW  Xa  bd  Re  Ri  Ri  jn  Ro  wx  w|  w|  }F  GI  wJ  wN  wN  OS  wT  JU  BD  fE  }~  gh  ij  in  in  ow  ix  gx  fE  4F  G  G &t ,'//'"*33= T! hCAaUU8BZ_QUU6"5Ef_e388TZK[kmsEs3s8C#aeeOA&>"?"BCD3
1SW~3s3xCFA,>(>s(BCsaW~AEE-4H[^_deh[i  UX  Z[  U[x{|  AD  EH  IO  EP  AP  yQ  ad  ej  kn  ao  ]`  bc  ]c  AD  EH  IL  MS  IT  ET  UX  AY  ik  IO  PS  IT  ef  ej  ej  kz  e{  RU  WX  RX  KN  ^b  CF  HI  CI  ps  tw  x~  t  p  OS  {T  bf  g  h	h T! CAaUU&r*
3CQUUK[E\Eb`bfifmfmn|f}de  BE  BI  BI  JV  BW  @A1SQ11SQTSS!C%%81qSXaS3s3x?31#a#,TcRUVYRZ[\]`[`NaQsGnz@Z9`j  @C  DH  IN  @O  lr  sv  lw  GH  IM  GM  [\  ]a  [a  rs  rw  rw  xG  rH  ^I  dp  qw  x{  q|  c}  ~   	 SAsquuYr*..t4QUU9R5H5L5LT5RSSs S C  DG  DL  DL  MP  QT  UX  QY  MY  DZ  Z  [^  ^ TU  T]  T]  ^a  be  Tf  g  OPad1!A$1RSTURVnopqnr  EF  GH  EI  J  J  gT! QCAa88AEE)B##D)"-!%%	":M:Q:QRV:WXZ1[q K5358eAhOPQ
 + CID qa	l !;1!I,!;;SX<YaQy\<YY[h[a[h[him[n[v[vwz[{  ~B  CX  Y]  C]  ^e  Ce  nr  ~A  fB  ~CC &'L M . D E G Hw'  0U  d^  _  ow  x  n@  H\  ke  @L  M  fN  _g  ho  ^p  xW  al  m}  `~  P	Z
  V[
  \
 %e , }Zbd\a @ SFBsC
(1S-Tu||Bd_bcg_h  AErx  KQ  =R  0SS    1N  W\  "]  ^ *V  FA  SU  \^  fh  Li  ,j  k'..	V NA
))$Q&~5
6  NQ!C%


STbgs|H}B}  C  CC  BK  BK  BM  9N  NN		V  RAX^`a`i`i  kA  CD  BF  aG  aP  aP  aR  YRX^  R!!%%h&7&7&;&;<FFH_`_j_j_l  CQ  CJ  CQ  CQ  R\  RV  R\  R\  ]c  qv  AE  RF  RM  RM  RO  CP  CZ  CZ  C\  uw  JK  JS  JS  Tl  Jm  Jv  Jv  Jx  yz  J{  PS  TU  T]  T]  ^x  Ty  TB  TB  TD  PE  F 1! 4d;fgh6iko  qK  hi  wx  RS  op  {|  V}  OQ  LR  lSA			#d(+AA  W\  I]  RSIYIYZ[I\]k]d]k]klpqrswlxl}l}l  ^A  ^K  ^K  ^M  JM  I]4  _c  du  vz  _{ jdjj#c(CGCJV[uyuu  vB  fcnqnopq  FM  QR  FR  V]  ab  Vbfghifi  fc  d  e  f[ bp QO fE> g !!;<YF I] fcs=   g6g;;h <&hh
 h4h7Ahh"h