Files
whetstone_DSL/tools/mcp/__pycache__/analyze_taskitem_calibration.cpython-312.pyc

65 lines
12 KiB
Plaintext
Raw Normal View History

<EFBFBD>
h<><68>i<EFBFBD>$<00><00><><00>ddlZddlZddlmZmZddlmZddlmZm Z m
Z
eGd<05>d<06><00>Z dedefd <09>Z d
ede fd <0B>Zd ede e fd <0A>Zde e dedee effd<10>Zde e de
eee efffd<11>Zde e defd<12>Zde e dee effd<13>Zde e dede efd<14>Zdededdfd<16>Zdede eddfd<18>Zdefd<19>Zedk(r ee<18><00><00>y)<1B>N)<02> dataclass<73>asdict)<01>Path)<03>Dict<63>List<73>Tuplec<00><><00>eZdZUeed<eed<eed<eed<eed<eed<eed<eed<eed <eed
<eed <eed <y )<0E>CalibrationRecord<72>run_id<69>sprint<6E> timestamp<6D>strict_execution_contract<63> queue_ready<64>validation_failing_count<6E> blocker_count<6E>#average_execution_specificity_score<72> average_score<72>escalate_count<6E>dominant_gap_class<73> actual_readyN)<08>__name__<5F>
__module__<EFBFBD> __qualname__<5F>str<74>__annotations__<5F>bool<6F>int<6E>float<61><00><00>)tools/mcp/analyze_taskitem_calibration.pyr
r
sG<00><00> <0F>K<EFBFBD> <0F>K<EFBFBD><12>N<EFBFBD>#<23>#<23><15><15>!<21>!<21><16><16>).<2E>.<2E><18><18><17><17><1B><1B><16>r r
<00>path<74>returnc<00>~<00>|jdd<02><03>5}tj|<01>cddd<00>S#1swYyxYw)N<>r<>utf-8<><01>encoding)<03>open<65>json<6F>load)r"<00>fs r!<00> load_jsonr-s4<00><00> <0A><19><19>3<EFBFBD><17><19> )<29><1C>Q<EFBFBD><13>y<EFBFBD>y<EFBFBD><11>|<7C><1C><1C><1C>s<00>3<03><<07>summaryc<00><><00>|jd<01>xsijd<02>xsi}|jdd<04>}t|t<00>r|r|S|jd<05>xsijd<06>xsi}t|t<00>r|syd}d}t |j <00><00>D]>}|j|d <09>}t|t tf<02>s<01>,||kDs<01>2|}t |<07>}<05>@|S)
Nr<00>remediation_routing_hintsr<00><00>
validation<EFBFBD>gap_class_counts<74>none<6E><65><EFBFBD><EFBFBD><EFBFBD>r)<08>get<65>
isinstancer<00>dict<63>sorted<65>keysrr)r.<00> queue_hints<74>gap<61>
gap_counts<EFBFBD>best_key<65>
best_count<EFBFBD>key<65>vals r!rrs<><00><00><1A>;<3B>;<3B>}<7D>-<2D>3<><12>8<>8<>9T<39>U<>[<5B>Y[<5B>K<EFBFBD>
<15>/<2F>/<2F>.<2E><02>
3<EFBFBD>C<EFBFBD><11>#<23>s<EFBFBD><1B><03><12>
<EFBFBD><19>+<2B>+<2B>l<EFBFBD>+<2B>1<>r<EFBFBD>6<>6<>7I<37>J<>P<>b<EFBFBD>J<EFBFBD> <15>j<EFBFBD>$<24> '<27>z<EFBFBD><15><15>H<EFBFBD><13>J<EFBFBD><15>j<EFBFBD>o<EFBFBD>o<EFBFBD>'<27>(<28>"<22><03><18>n<EFBFBD>n<EFBFBD>S<EFBFBD>!<21>$<24><03> <15>c<EFBFBD>C<EFBFBD><15><<3C> (<28>S<EFBFBD>:<3A>-=<3D><1A>H<EFBFBD><1C>S<EFBFBD><18>J<EFBFBD> "<22>
<14>Or <00> runs_rootc<00><><00>g}t|jd<01><00>D<00>]<5D>} t|<02>}|j d<02>xsi}|j d<03>xsi}|j d<04>xsi}t |j dd<06><00>}t |j dd<08>xsd<08>}|xr|dk(} |jt|jjt|j d d
<EFBFBD><00>t|j d d
<EFBFBD><00>t |j d |j d d<06><00><00>||t |j d d<08>xsd<08>t|j dd<0F>xsd<0F>t|j dd<0F>xsd<0F>t |j dd<08>xsd<08>t|<03>| <09><12> <00><00><01><>|S#t$rY<00><01><>wxYw)Nz*/00_summary.jsonrr2<00> taskitems<6D>readyF<79> failing_countrr r1r rrrgrr) r r r rrrrrrrrr)r9<00>globr-<00> Exceptionr6rr<00>appendr
<00>parent<6E>namerrr)
rB<00>records<64> summary_pathr.<00>queuer2rDrrFrs
r!<00> load_recordsrO2s<><00><00>')<29>G<EFBFBD><1E>y<EFBFBD>~<7E>~<7E>.A<>B<>C<>
<EFBFBD> <0C> <15><1F> <0C>-<2D>G<EFBFBD><18> <0B> <0B>M<EFBFBD>*<2A>0<>b<EFBFBD><05><1C>[<5B>[<5B><1C>.<2E>4<>"<22>
<EFBFBD><1B>K<EFBFBD>K<EFBFBD> <0B>,<2C>2<><02> <09><1A>5<EFBFBD>9<EFBFBD>9<EFBFBD>W<EFBFBD>e<EFBFBD>4<>5<> <0B><1B>J<EFBFBD>N<EFBFBD>N<EFBFBD>?<3F>A<EFBFBD>><3E>C<>!<21>D<> <0A>"<22>9<>}<7D><01>'9<> <0C><0F><0E><0E> <1D>#<23>*<2A>*<2A>/<2F>/<2F><1A>7<EFBFBD>;<3B>;<3B>x<EFBFBD><12>4<>5<><1D>g<EFBFBD>k<EFBFBD>k<EFBFBD>+<2B>r<EFBFBD>:<3A>;<3B>*.<2E>u<EFBFBD>y<EFBFBD>y<EFBFBD>9T<39>V_<56>Vc<56>Vc<56>d<64>BG<02>WH<02>0I<02>+J<02>'<27>)6<>!<21>%<25>)<29>)<29>O<EFBFBD>Q<EFBFBD>"?<3F>"D<>1<EFBFBD>E<>49<34>*<2A>.<2E>.<2E>In<49>ps<70>:t<>:{<7B>x{<7B>4|<7C>#<23>J<EFBFBD>N<EFBFBD>N<EFBFBD>?<3F>C<EFBFBD>$H<>$O<>C<EFBFBD>P<>"<22>9<EFBFBD>=<3D>=<3D>1A<31>1<EFBFBD>#E<>#J<><11>K<>#5<>g<EFBFBD>#><3E>)<29> <0E>
<EFBFBD>
<EFBFBD>< <13>N<EFBFBD><4E>7<19> <15> <14> <15>s<00> G<02> G<05>GrL<00> thresholdc<00><><00>dx}x}x}}|D]R}|j|k\}|r|jr|dz }<02>&|r|js|dz }<03>:|s|js|dz }<04>N|dz }<05>T||||d<03>S)Nr<00><00><04>tp<74>fp<66>tn<74>fn)rr)rLrPrTrUrVrWr%<00>
pred_readys r!<00> confusionrYUs<><00><00><19><19>B<EFBFBD><19><12><19>b<EFBFBD>2<EFBFBD> <14> <14><01><16>:<3A>:<3A>i<EFBFBD>G<>
<EFBFBD> <15>!<21>.<2E>.<2E> <0E>!<21>G<EFBFBD>B<EFBFBD> <17><01><0E><0E> <0E>!<21>G<EFBFBD>B<EFBFBD><1B>A<EFBFBD>N<EFBFBD>N<EFBFBD> <0E>!<21>G<EFBFBD>B<EFBFBD> <0E>!<21>G<EFBFBD>B<EFBFBD> <14><15>B<EFBFBD>b<EFBFBD><02> 3<>3r c<00> <00>d}t||<01>}dtttfdttttffd<04>}||<02>}t dd<06>D]-}t||<05>}||<06>}||ks ||k(s<01>"||kDs<01>(|}|}|}<04>/||fS)N<><<00>cr#c<00>h<00>|ddz|dz}t|d|dz
<00>}|d|dz}||| fS)NrU<00>rWrTrV)<01>abs)r\<00>errors<72>balance<63>corrects r!<00>rankzpick_threshold.<locals>.rankhsP<00><00><13>D<EFBFBD>'<27>A<EFBFBD>+<2B><11>4<EFBFBD><17>(<28><06><15>a<EFBFBD><04>g<EFBFBD><01>$<24><07>'<27>(<28><07><13>D<EFBFBD>'<27>A<EFBFBD>d<EFBFBD>G<EFBFBD>#<23><07><16><07>'<27><18>*<2A>*r r<00>e)rYrrrr<00>range)rL<00>best_t<5F>bestrc<00> best_rank<6E>tr\r%s r!<00>pick_thresholdrjds<><00><00> <0F>F<EFBFBD> <14>W<EFBFBD>f<EFBFBD> %<25>D<EFBFBD>+<2B><04>S<EFBFBD>#<23>X<EFBFBD><0E>+<2B>5<EFBFBD><13>c<EFBFBD>3<EFBFBD><1D>#7<>+<2B><15>T<EFBFBD>
<EFBFBD>I<EFBFBD> <12>1<EFBFBD>c<EFBFBD>]<5D><1A><01> <15>g<EFBFBD>q<EFBFBD> !<21><01> <10><11>G<EFBFBD><01> <0C>y<EFBFBD>=<3D>Q<EFBFBD>)<29>^<5E><01>F<EFBFBD>
<EFBFBD><16>F<EFBFBD><14>D<EFBFBD><19>I<EFBFBD> <1A> <12>4<EFBFBD><<3C>r c
<00><><00>i}tddd<03>D]}dddd<04>||d<05>dtd|dz<00>d<05><04><<00>!|D]<5D>}tdtd t|j<00><00><00>}|dzdz}|d<05>dtd|dz<00>d<05><04>}||}|d
xxd z cc<|j
r|d xxd z cc<<00>v|d xxd z cc<<00><>t |<00>|d<0E>S)Nrrd<00>
)<03>totalrE<00>blocked<65>02d<32>-<2D>c<00> <00>drmrRrErn<00><02> record_count<6E>bins)re<00>min<69>maxrrr<00>len)rLrv<00>floorr%<00>scorer@<00>rows r!<00>summarize_distributionr}zs<><00><00>&(<28>D<EFBFBD><16>q<EFBFBD>#<23>r<EFBFBD>"<22>]<01><05>@A<>A<EFBFBD>Z[<5B>6\<5C><04><05>c<EFBFBD>{<7B>!<21>C<EFBFBD><02>E<EFBFBD>!<21>G<EFBFBD>,<2C>S<EFBFBD>1<> 2<>3<>]<01><15>  <20><01><13>A<EFBFBD>s<EFBFBD>3<EFBFBD><03>A<EFBFBD>$I<>$I<> J<>K<>L<><05><16>"<22><1B><02>"<22><05><16>s<EFBFBD> <0B>1<EFBFBD>S<EFBFBD><12>U<EFBFBD>1<EFBFBD>W<EFBFBD>-<2D>c<EFBFBD>2<>3<><03><12>3<EFBFBD>i<EFBFBD><03> <0B>G<EFBFBD> <0C><01><19> <0C> <0C>><3E>><3E> <0F><07>L<EFBFBD>A<EFBFBD> <1D>L<EFBFBD> <0F> <09>N<EFBFBD>a<EFBFBD> <1F>N<EFBFBD>  <20><1C>G<EFBFBD> <0C><14> <06>r c<00><<00>i}|D]-}|j|jg<00>j|<02><00>/i}t|j <00><00>D]I}||}t |<05>dkrt |<05>ddd<04>||<<00>)t |<05>\}}t |<05>||dd<06>||<<00>K|S)N<>r[T)ru<00>recommended_threshold<6C>insufficient_dataF)rur<>rYr<>)<07>
setdefaultrrIr9r:ryrj)rL<00>groupedr%<00>outr<<00>subsetrPr\s r!<00>per_gap_thresholdsr<73><00>s<><00><00>24<32>G<EFBFBD> <14>?<3F><01><0F><1A><1A>1<EFBFBD>/<2F>/<2F><12>4<>;<3B>;<3B>A<EFBFBD>><3E>?<3F><1E>C<EFBFBD><15>g<EFBFBD>l<EFBFBD>l<EFBFBD>n<EFBFBD>%<25>
<EFBFBD><03><18><13><1C><06> <0E>v<EFBFBD>;<3B><11>?<3F> #<23>F<EFBFBD> <0B>)+<2B>%)<29><0E>C<EFBFBD><03>H<EFBFBD>
<15>%<25>f<EFBFBD>-<2D> <0C> <09>1<EFBFBD><1F><06>K<EFBFBD>%.<2E><1A>!&<26> 
<EFBFBD><03>C<EFBFBD><08>
<EFBFBD> <0F>Jr c<00><><00>g}|D]K}|j|k\}||jk(r<01>"t|<03>}||d<|rdnd|d<|j|<05><00>M|j d<05><00><06>|S)NrX<00>false_positive<76>false_negative<76>reasonc<00><00>|d|dfS)Nr<4E>r r)<01>xs r!<00><lambda>z$misclassifications.<locals>.<lambda><3E>s<00><00>Q<EFBFBD>x<EFBFBD>[<5B>!<21>H<EFBFBD>+<2B>6<>r )r@)rrrrI<00>sort)rLrP<00>rowsr%rXr|s r!<00>misclassificationsr<73><00>sy<00><00><19>D<EFBFBD> <14><19><01><16>:<3A>:<3A>i<EFBFBD>G<>
<EFBFBD> <15><11><1E><1E> '<27> <14><14>Q<EFBFBD>i<EFBFBD><03>&<26><03>L<EFBFBD><19>,6<>(<28><L<><03>H<EFBFBD> <0A> <0C> <0B> <0B>C<EFBFBD><18><19> <09>I<EFBFBD>I<EFBFBD>6<>I<EFBFBD>7<> <0F>Kr <00>objc<00><><00>|jdd<02><03>5}tj||dd<05><06>|jd<07>ddd<00>y#1swYyxYw)N<>wr&r'<00>T)<02>indent<6E> sort_keys<79>
)r)r*<00>dump<6D>write)r"r<>r,s r!<00>
write_jsonr<EFBFBD><00>sF<00><00> <0A><19><19>3<EFBFBD><17><19> )<29><16>Q<EFBFBD> <0C> <09> <09>#<23>q<EFBFBD><11>d<EFBFBD>3<> <09><07><07><04> <0A><16><16><16>s <00>+A<03>Ar<>c<00><><00>|jdd<02><03>5}|D]9}|jtj|d<04><05><00>|jd<06><00>; ddd<00>y#1swYyxYw)Nr<4E>r&r'T)r<>r<>)r)r<>r*<00>dumps)r"r<>r,r|s r!<00> write_jsonlr<6C><00>sZ<00><00> <0A><19><19>3<EFBFBD><17><19> )<29><1A>Q<EFBFBD><17> <1A>C<EFBFBD> <0A>G<EFBFBD>G<EFBFBD>D<EFBFBD>J<EFBFBD>J<EFBFBD>s<EFBFBD>d<EFBFBD>3<> 4<> <0A>G<EFBFBD>G<EFBFBD>D<EFBFBD>M<EFBFBD> <1A><1A><1A><1A>s <00>?A<03>A&c <00><><00>tjd<01><02>}|jddd<05><06>|jddd <09>
<EFBFBD>|j<00>}t |j
<00>}t |j <00>}|jdd<08> <0B>t|<02>}|D<00>cgc] }t|<05><00><02>}}t|d z |<06>|snd dd d d d d<0F>id dd<11>}t|dz d id<13><02>t|dz |<07>t|dz dgi<01>ttjdt|<03>d dd d<17><05><00>y |D<00>cgc]}|j s<01>|<05><02>}}t#|<08>dk\r|} d}
n|} d}
t%| <09>\} } | dkrd} t'| | <0B>} t)| <09>} t+| <09>}t-| | <0B>}t|dz | <0A>t|dz t#| <09>|
| | |dd<1C><06>t|dz t#| <09>|
| t#|<0F>|d<1D><05>ttjdt|<03>t#| <09>|
| t#|<0F>| d<1E><07><00>y cc}wcc}w)Nz5Analyze taskitem calibration from pipeline summaries.)<01> descriptionz --runs-rootzlogs/taskitem_runsz<Directory containing run output folders with 00_summary.json)<02>default<6C>helpz --out-dirTz!Directory for calibration outputs)<02>requiredr<64>)<02>parents<74>exist_okzcalibration_records.jsonlrr[rSr<>)rur<>rYr<><00>misclassification_count<6E>statuszscore_distribution.jsonrtzthreshold_recommendations.jsonzmisclassification_report.jsonrL)r<><00>out_dirrur<>r<>rl<00>strict_execution_contract_only<6C>all_runs_fallback<63>ok)ru<00>calibration_scoper<65>rYr<>r<>)rur<>rPr<>rL)r<>r<>rur<>r<>r<>rY)<17>argparse<73>ArgumentParser<65> add_argument<6E>
parse_argsrrBr<><00>mkdirrOrr<>r<><00>printr*r<>rrryrjrYr}r<>r<>)<10>parser<65>argsrBr<>rLr%r<>r.<00>strict_records<64>scoped_recordsr<73>rPr\<00>dist<73>per_gap<61>missess r!<00>mainr<6E><00>s<00><00> <15> $<24> $<24>1h<31> i<>F<EFBFBD>
<EFBFBD><17><17> <0A>/C<>KI<02><17>J<02>
<EFBFBD><17><17> <0B>d<EFBFBD>9\<5C><17>]<5D> <11> <1C> <1C> <1E>D<EFBFBD><14>T<EFBFBD>^<5E>^<5E>$<24>I<EFBFBD><12>4<EFBFBD><<3C><<3C> <20>G<EFBFBD> <0B>M<EFBFBD>M<EFBFBD>$<24><14>M<EFBFBD>.<2E><1A>9<EFBFBD>%<25>G<EFBFBD>&<26> '<27>!<21>F<EFBFBD>1<EFBFBD>I<EFBFBD> '<27>D<EFBFBD> '<27><0F><07>5<>5<>t<EFBFBD><<3C> <12><1D>%'<27> !<21><11>!<21>1<EFBFBD>=<3D>"$<24>'(<28>)<29> 
<EFBFBD><07> <13>7<EFBFBD>6<>6<><11>TV<54>8W<38>X<><12>7<EFBFBD>=<3D>=<3D>w<EFBFBD>G<><12>7<EFBFBD><<3C><<3C>y<EFBFBD>"<22>o<EFBFBD>N<> <0A>d<EFBFBD>j<EFBFBD>j<EFBFBD>)<29><1A>7<EFBFBD>|<7C><1D>%'<27>'(<28> 
<EFBFBD> <0B> <0C><11>!(<28>H<>A<EFBFBD>A<EFBFBD>,G<>,G<>a<EFBFBD>H<>N<EFBFBD>H<>
<EFBFBD>><3E><1A>b<EFBFBD> <20>'<27><0E><<3C><19> <20><0E>/<2F><19>!<21>.<2E>1<>L<EFBFBD>I<EFBFBD>q<EFBFBD><10>2<EFBFBD>~<7E><16> <09> <15>n<EFBFBD>i<EFBFBD> 0<><01> !<21>.<2E> 1<>D<EFBFBD> <20><1E>0<>G<EFBFBD> <1F><0E> <09> :<3A>F<EFBFBD><0E>w<EFBFBD>2<>2<>D<EFBFBD>9<><0E>w<EFBFBD>9<>9<><1B>N<EFBFBD>+<2B>.<2E>!*<2A><16>%<25><16> <<06><07><0F>w<EFBFBD>8<>8<><1B>N<EFBFBD>+<2B>.<2E><1E>#&<26>v<EFBFBD>;<3B><19> ;<06><07>
<EFBFBD>$<24>*<2A>*<2A><16><16>w<EFBFBD><<3C><1B>N<EFBFBD>+<2B>.<2E>!*<2A>#&<26>v<EFBFBD>;<3B><16><06> <07><08> <0A><>E (<28><>0Is<00>H;<04>2I<04>I<04>__main__)r<>r*<00> dataclassesrr<00>pathlibr<00>typingrrrr
r-rrrOrrYrjr}r<>r<>r<>r<>r<>r<00>
SystemExitrr r!<00><module>r<>s<><00><01><0F> <0B>)<29><18>$<24>$<24> <0B> <17> <17> <0B> <17><1C>D<EFBFBD><1C>T<EFBFBD><1C>
<14><04><14><13><14>( <13>D<EFBFBD> <13>T<EFBFBD>*;<3B>%<<3C> <13>F 4<>t<EFBFBD>-<2D>.<2E> 4<>3<EFBFBD> 4<>4<EFBFBD><03>S<EFBFBD><08>><3E> 4<><18>D<EFBFBD>!2<>3<><18><05>c<EFBFBD>4<EFBFBD><03>S<EFBFBD><08>><3E>>Q<>8R<38><18>,<06>D<EFBFBD>):<3A>$;<3B><06><04><06>,<0F><04>%6<> 7<><0F>D<EFBFBD><13>d<EFBFBD><19>O<EFBFBD><0F>2 <10><04>%6<> 7<> <10>C<EFBFBD> <10>D<EFBFBD>QU<51>J<EFBFBD> <10><16>T<EFBFBD><16><04><16><14><16> <1A>d<EFBFBD><1A>$<24>t<EFBFBD>*<2A><1A><14><1A>M <0A>c<EFBFBD>M <0A>` <0C>z<EFBFBD><19>
<14>T<EFBFBD>V<EFBFBD>
<1C><1C>r