From d9e2012e2287ad0b26c6ce1adb131ae771aa1cf9 Mon Sep 17 00:00:00 2001 From: erik Date: Sun, 30 Aug 2026 14:02:58 -0500 Subject: [PATCH] Refactor digitador bot and add runtime monitoring --- bots/bot_descarga.zip | Bin 113682 -> 124442 bytes bots/bot_digitador.zip | Bin 0 -> 86852 bytes bots/bot_digitador/.env.example | 5 +- bots/bot_digitador/README.md | 39 ++- .../bot_digitador/core/application.py | 56 +++ .../bot_digitador/core/config.py | 38 +++ .../bot_digitador/core/coords.py | 12 +- .../bot_digitador/core/csv_rules.py | 119 +++++++ .../bot_digitador/core/digitador_service.py | 323 ++++++------------ .../bot_digitador/core/reports.py | 41 +++ .../bot_digitador/core/vision.py | 23 ++ .../bot_digitador/ui/dashboard.py | 7 + .../bot_digitador/ui/progress_overlay.py | 120 +++++++ .../bot_digitador/worker/agent.py | 20 +- bots/bot_digitador/scripts/package_bot.py | 83 +++++ bots/bot_digitador/scripts/publish_bot.py | 57 ++++ bots/bot_digitador/template/README.md | 1 + bots/bot_digitador/tests/conftest.py | 10 + bots/bot_digitador/tests/test_application.py | 37 ++ bots/bot_digitador/tests/test_config.py | 17 + bots/bot_digitador/tests/test_csv_rules.py | 33 ++ bots/bot_digitador/tests/test_packaging.py | 35 ++ .../tests/test_progress_overlay.py | 7 + .../tests/test_reports_and_vision.py | 33 ++ .../tests/test_service_metrics.py | 29 ++ services/bot_digitador/api/main.py | 25 +- .../bot_digitador/infrastructure/store.py | 9 + .../bot_digitador/tests/test_api_overlay.py | 46 +++ services/bot_digitador/tests/test_store.py | 8 +- services/desktop_app/package.json | 2 +- .../desktop_app/src/renderer/App.test.tsx | 31 ++ services/desktop_app/src/renderer/App.tsx | 81 ++++- .../digitador/DigitadorLiveMetrics.test.tsx | 31 ++ .../digitador/DigitadorLiveMetrics.tsx | 36 ++ .../digitador/DigitadorResultsPanel.tsx | 3 + .../digitador/DigitadorWizardModule.tsx | 3 + services/desktop_app/src/renderer/styles.css | 62 ++++ .../src/renderer/types/jobSection.ts | 1 + .../src/renderer/views/JobCostsView.test.tsx | 50 +++ .../src/renderer/views/JobCostsView.tsx | 190 +++++++++++ .../src/renderer/views/JobView.tsx | 12 + services/extraction/api/desktop_ingest.py | 24 +- services/extraction/api/main.py | 47 ++- services/extraction/domain/usage_tracking.py | 90 +++++ .../extraction/tests/test_usage_tracking.py | 51 +++ services/extraction/worker/tasks.py | 21 +- 46 files changed, 1720 insertions(+), 248 deletions(-) create mode 100644 bots/bot_digitador.zip create mode 100644 bots/bot_digitador/bot_digitador/core/application.py create mode 100644 bots/bot_digitador/bot_digitador/core/config.py create mode 100644 bots/bot_digitador/bot_digitador/core/csv_rules.py create mode 100644 bots/bot_digitador/bot_digitador/core/reports.py create mode 100644 bots/bot_digitador/bot_digitador/core/vision.py create mode 100644 bots/bot_digitador/bot_digitador/ui/progress_overlay.py create mode 100644 bots/bot_digitador/scripts/package_bot.py create mode 100644 bots/bot_digitador/scripts/publish_bot.py create mode 100644 bots/bot_digitador/tests/conftest.py create mode 100644 bots/bot_digitador/tests/test_application.py create mode 100644 bots/bot_digitador/tests/test_config.py create mode 100644 bots/bot_digitador/tests/test_csv_rules.py create mode 100644 bots/bot_digitador/tests/test_packaging.py create mode 100644 bots/bot_digitador/tests/test_progress_overlay.py create mode 100644 bots/bot_digitador/tests/test_reports_and_vision.py create mode 100644 bots/bot_digitador/tests/test_service_metrics.py create mode 100644 services/bot_digitador/tests/test_api_overlay.py create mode 100644 services/desktop_app/src/renderer/modules/digitador/DigitadorLiveMetrics.test.tsx create mode 100644 services/desktop_app/src/renderer/modules/digitador/DigitadorLiveMetrics.tsx create mode 100644 services/desktop_app/src/renderer/views/JobCostsView.test.tsx create mode 100644 services/desktop_app/src/renderer/views/JobCostsView.tsx create mode 100644 services/extraction/domain/usage_tracking.py create mode 100644 services/extraction/tests/test_usage_tracking.py diff --git a/bots/bot_descarga.zip b/bots/bot_descarga.zip index 1d825be7324b1e20c0d9d815b1e53160391b08b9..31717b6531d5daf3a9b431383e5634be10530a04 100644 GIT binary patch delta 37541 zcmZU)1CS<5&@Mdo?AW$#TRXOG+jz&bGds3-Y}>YN+cxhxd%pYMKkn^_?tY>=>xs^; zsLaZ&?D!Xm^a)6K1!+()RG@zkudu5)cxFhAS~V*kSg$y770>_%&)TdGU{DBN&jcNi z1E_zRt;Qr(tP*ZOuoH|xc|reaNXP{>0X=5+tcL=-0sRZ!A=&-|EU+NJe??+B2oluc z^gz*RJnLKF)}a1^BsA&&z&>8)e`0|I=6?w;2-HBp|Dm*^Ntk5ENYEp0|KBVr8>GPa z2?hj^2?iv*e_8&J_=5ih1XKq9!$NKQm*tLn3HD!*FwWlhKm9}hN@8&iVE+X>N=pBA zVNK?daC7AuRH|62HLHvj95XBYODuGr2G;V+={ z8~pE`Zi0>>K{5VOdhItA%HKy2f6!t60)kR*(7$h`Q}I{ngrSPbzx>ISy}6$0Qn1c>&n3Xg6L)`U@)5kXx)VM z79s2nYR`Yi^Y6g@H`q`>P(b1TKHgQPPB3UC0U*vq42~IkY4&~=2_lIA~f|@XNqSHm_{l3fQ&o|Fbi}Dc18`Sd37d!&SXIvB8_3x z-%%8j;6egPJ|?QzEjTcC_{Il9sT|LX0iIu)%k4VE~gGEEA4XnZR9PQ z+$jR-fHgKcFWWwspY+CS{|~n+OZ574Ucf+zL2FOX&xHKcBaiI(H}`tT(T@IwJk&ET z$K|W#NPQ&!KG=BG_AWJJ3MWZoD8ZjSf?aIAxaLUE>a^rRghL&^JSY2~gb(*-8@;_FC3zFrLhHj$? z*t!|~r1uc=)R+mNQ7P%!O=|VN(Qzin#2hB{_$^))+R`W%iK_TOPUv>pv(X)K~*-3uIJ`iM=%5#L1K z#0H&3_;}q|tmv?6?Vni1&ah@d?2JnLM{iU(qRTUQ0yi}b-NIKW5!gN6rTed5QDrB% z%p@w#ZQ1{Tb|NX#yGO`Og9eNbG$exaBlPr)y4)EM=%Tb~z>Hd9LyB0hD!}Ho;7a<% zg!0sv>52|Q74fQwgEb5wLeD;f3n8i!-snO%g@Ojs_h3Z8P1+G-*%pu?Vd3bml3L=; z74-)0uV0!7a9*II!$B>~p{jv%E#oIpuBJFSPL6=xxNo5@~-n0_SUX4Q)U# zn{{Gzd+pb*F2iOM)!GvVx(MMb3m&8o8FBf-{kBevjOB_NWtEhg@@|BoEX2 zk>hR~U8Rg0M@9&{lm}S3rC^4+s`Ayw1&KssRLitH4H)7n4H#;-3K%LxesBz@pK?

ykf)i&h$ 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 delta 27367 zcmZs?1CS{{jK8AOi}93iR(~R(25w&kQLlrDD-9tr91$0!ksJQk&HQ4B95GlJE=U z0O}vJ#h9duMZygTc7h=&FX%spggj7V&^T$8dML0P(7)gvlI=gh0t*8Cw@WMsL4rD* zE~tQ%N_`958q{BqgeLPJ*vHHKubV%C>E8es1Zp7Q|Ae%lNtk5ENYEv2|9_+KkQn@R z&LQyz{|gAH^#8}1+8Q+GpJCilFTwr`62{s4{>Lr&Z%-`F0qnnEM@i{F7d90e(Aa-m zid9S?{sIK;29UpCPzMb3FPPBJfcy(A%x3@WuRo^$#!VRdGx;}ua%C^@zmreUs(u0g zcb$b32yE~Ycu4S57$$&u6Q*h)|3+G=fdKgncI(Q){(|UcDc}USKS&A3Eo>=_p}^oM z|FcW~?JN`!6c9r}!nQJPf_^IrAe>*t;@_pUWKgl_)ZDbeX+`TojCCa>=O9s0HCa7x zgg@!4JqS|dU}{5fm_-M*2qs~|hgXe98PA}PJ|BUsy^EKm|Y9XU!#L_Fjb4GE41MNEc^@gsBBxSz-C z3$AzD*u(wn=#8DbyET04o5M2T$|De@qtRl!PDG6w9t_GDMA>vBvk&3t?rDQU|ro}8U9BtRYR>9`P zI{H-4;8{>9%@2Z*Ayya#HcgNtLFVCfUm#Xo@^p!ljlxQb6aW=4KWpdh#cXxCBRX?^ z181hUCmYK@_ucp^f$pEqH={R0GlLuT2-y0JyPd8dlZR}6n}4bYDiuy7y=hM_p+m6x z5s#550S>QIL<|o=V8ELSI1XnS?cwU%xxCIFeem$$iQ3ZbOz-f)d7%4|EMY%np>Kx6 zj@cf30C&M6z7$8#1yQZ+`L=_@OToJbBuq2}Nzr+f*9$Z3Y9L*2g)1maD+pDmyUUBU zeFyTVu5T3k=P4rMk(*dgUHcGAe9+=uuuFF<>8Mt8XEZ8+lSesu{8k*}1=qhK_V%PD z<_bECp%9r(#$WeRW12F*2rj8ZqLU)RB2!KRXTGb-5SFgSH}>682x)+#FqUUjE%xFB zx1)Sy)(NkoMNCvOzb>*OgV;L0pEK3*qbBDHG9+sZ;T>vXPDQN*cA20dyGj7}al^&x1yz_|@sMG^v;8ykRa z`g{grZ%|L2>(s@B1C<_ucJyHv}EUcYb^!EnB22)Cp(V7 z>K>0}cBeu!V{8QGc$-@>iZZExeVmmHG{pmFAkEZbbm$MAM&slWYLB|{>%+qh>4G(q z&Xs?eJ$^IpL+WT2)kS;cAnhlLIW-Q=W;ug=Lu`RYiXYrI9y^R~7kiw;`&;w8x{Wjn ztcw5uf#3VXpt;sU_|5-(Wvb`K;82H76h;00MVg2N78}RvAT@^lr zBq3soCB0Y_??N)`l^us}Qr&B@Cg`dZDxqh4w6b5#L1)1}PTVqQ-$&im1v|}no6ov9 zJgqXR5BnT=>AvjUcv*Fx=u|CZw~%)M($)f)R(s69P-mX6-{b=Je#qj5XA@h<|7PT-gIZZPG^6~a%7Hr%@?YCbpEh>b(_3D z%@IgRW~3{QIPG&=pB=$jgru<1a9!Cki`Xs~uw}1#v#!;J2bcd%tGv@Yqg}#}U1bY^ zF`EOXavbJEF2}>NvoUKYfvV+tqS0 znQ>4iov*Y(*G{?xTg5C*qVo!qj!OVw)0Z2iI6n}{pIIht8414D7#vW!E4!F9^Q%X- zKm%G;EW|Gh2cj*~uhYs5TnGh?!?{79DN4_h8=KpV zk{?gFET=avj8wYN_dv=uMl%7gYq7c2Xhos9#hS5^@ROZV7dXi_NHy=r{PzbSkpxuA z|Hr~Dbn**_b5nq;{~D==;dVx)GGbyVxz}M`I>}M{%L>t|Ww0U($ zawb`$gO~dfoXx$Zs_UJH6=m_(=i}rgSE1&Y@Rgc49PZUkm|tvW)tRuZ7F&0<$~z7r z)p*iI2eoBRdMuWTE2})^0UjG*j)np#pzXOr;HPo#Jvs{ASQp$*Hse}gRC4X|=mkd1 z0&;yehfwDn;0Ge2yabDecFi;4_iwBm{AlrEI-Uh=)({zh)>EiSfZ3J{ zf8vPOHCc&v8amTW5z7NG(6_F9b(qGF6Di*#9(I&A!P@;h{oGL#OR{W3AMG-k< z8}IyDd3vDA_oF>GkRC`y3%a3*4O~~a4E;LeR;nLO8Vyre`S=0qo($ovHJ{N+1UL$R zmKqn-VCKiHk+^>H8s!-RN_W3hPEKt3X}RhUP-7D9@3L9zZ@9^6%JdM`&Q4YNa^B|a z6ivst62TfN`Vb3uv8g8W;GBb&Q0=Jwo@<`gj1^FKplRY+iOTe_v!0`WMJF9#H~V z{ZCf(@6%gl(`JnkwM$|TkM^3pOjyBnk%%d*tf4|pv0<*lJY06qSEh#K8`W$vB>f4> zyB3euN_LKPDOiQ{C4qV*Cjc!m}9hmTALND!%fIiBuoy-nE1is~xdY6tL~FsNN+zcPVT0LB z7p;6=M{>4maN*JL_taZ#Ej18S{YnaVIQpuqS2?vT`JioSQT#EN&iLprz@9ff`-^_^PIL1kxYi5tNek z#ANKKO+@ZbfXaC|^_?gp%^57KU{$Uh*~ixD^-|RxN^cpWBY;#^iu90Mx0;zez@i|S z#oR3L7Zq}?gLbu&l#ALnV#Z*#A=Jbe;YX=v`XkkFo9o8+$nGO)Sd?+P+TrGY%kPni zHWj~VY)X5RVR%I&IYs zj@zz*Xb~Q#BY>zP2guMk2 zXE-5raV+9AK{6+3rF^6(JE}w%F8a`791xPkj!z=Sx!ux4R@0b#sh)vEQ;YtKK<>;? zimh7ns@)~RK?O)cc&l~&fQb7Dh7v)C4?|r<5mo+oLZt71UJyvA``I<=8xSC%5{Lw- z8U4R(#BwI@FSoc<#!tcpMohqiL;cG!!2Y2SB7Yf*I^2IPHM4a8wtxZtAwCxW-ir$YSrbP841TlX(rsm~@5nR6&&O^d&xAdyYy^db z2PnDydiq?P**Lw=(CiOv@yMGB#8mQ0k|U|#foTnq8srh;;ZPk!`dP*j8tHS2{<|UXcB@CcN=ai)1$(a2Z+(*;UtvO30uAZwVe)SA9`AF z)R2o#(gPu)E602%#n`stAbm-u8{N}HaK;WnJ=&xY6TKjd0>XqAD_5v z;`eP86QO>~0KFpL90)VHjvrbqw*JYzXfYaY5NpI+AeBiB{>g`xGiz=<)4FVtsQ2t{ zG`o0SOdYGQ$Zn1kit`VWr&wb;yl-Yq(%) z4;6nk4L&=-TfoieJ}qB4L%X)DB3C zABa6c0SymA3CLt19P`&M!89gfgwUDUO)`m20NCeM(QLy%vwh8pM+_buNy?D3@Nix#uUENJ! z0r+c*5pc6vdP-HCK|7Lrc1V@+Ov_PZtzmM`_hfba&0mxTQ7TqiSMFl6<@uh|MDz-r z?w=sjwd({f)L6^&E}CK6gg--jbT#Ho8V+>0g)Ofz_-uE~eOb4dj31~VtIO;}1OLg@ zks={}vP{!zGP5wCnM9TyeJqi=SPR&20qUa|whXW0$vh#p<4NktC(~p&QZ*w|SoMrZ*j$0M9UikKnip@14@vTkq3F=>bW2X9QzY)Dy#UpXWYVAz#cg^MkMV1RvNk6o@2Xh4Jd7-V4qpj z(W;7s!H#NcC$XuejfP#y+Bc%nx)nV91`!Y-+{DO~M zOr%VJ5^zJ#269sFC(Cf@3&^n}U?n|QO3;rhG)TQ`Bky1~?h}B5rI*YgVra!gF8QUq zDu9prYd5#Tb}i(zK_*tjAC^)bZa?1j_hRv$_)+^KvV%00Fbv@+OlW)q3Ro-$sfwrby}C}mdV*yw`mQL)mMDvyu@*3kZpYH*~wEMP0w7UXCmU*QiU zF{QjanFhm64i=93=$Nb*(lJwxwZS_|c2mbtD=Zf&OWo*{;~=nODIgD!jUjkGKuLzdnm+qw7v z=fi8??0sW$cj1l;cEF#0ar6ZOaVq{c@BQHlp5>Fo=pDv-`OHkP#n-7-NaBORe#$N< z^8gHW85K1YwcWaIp0$L^V6X-Mkw{Bw+}O@4eCOB$`^UUg`R5k@eAox%Helgc;rxqN zh{o3ny$>05jmp|T`7nRJu#cI`d0FL`=KyMpi&KqfT@|6Imh6dGiN^8>_Y4-VEh?pI%WaABaR$#ATt^w+Ym*It zCn);zVxcTRbB2aNg|X`>8L@Z3h%JM9kD&z=l;VM?3A>vMDuyI)A%SG6d;l5|5!YAho zFeWw{cL5IHMq86b6|LzXa!RPr>p+pCmnhIld@&CF`j6Le8eu<}fi7}bicH+$FUE;!<+#?^)3z`c>C}j)qC<)fIo53&=zeK6kx9o)rYXxp8)}$EXKQ#_ zMuTS}s$?!tiy_kGw9rtbW|KNnPi4McYD97+=>w+tOUpZTJS*4-lle+5Jq;JsF($G2 zDSZYM&~em!;$`JB%fi%X->#YlQq#d4dFvx<2VGI33tq=hhD|OeWna~tp6@cAAE5tX z6>tM-e%rd?OrX$5m5`0_&5*Y6ear+4Y!v6Z;me&3O3SzIn{kJZf`U3f&{N8xz@>_* zrvNHsX>Xj$1ebdB?L4?fXDAb4AyZ=+0UQtoXycy9Q|d>wR6~9P^bevE7!1>B6sZAN z*jv%r^SUl_pO+-f(S<8_DmvO@iohS0WGJ?tDx&0D=%!6&MSo8GOg=ZaJO#aU{QoIP zagb=h|J2WDCIXQ#DPKr)u#w?z9?n|7Ck1TBD3!azjH)kh+O#i z7R>A!=RZhxVP}c3t$icCI6o{YDkLNpu&JtLQ`1dTB>VxGZnWNqO=j*EcE%?B?gI=~ zgv_z9>5XePUGY{ba<^#-g8VzXeUdc9EKc) zE6Gwh*z8sgZke2ByH}C+W{zDog(nsqp1R;%B)w@rGVZCH+H^afXPJ!i>Eu@(hv}wl zu@yVF|6a9gzTc8s;do9HD)ZA)e+P(O3tQxD7u;Lsq^%9LJBhOFE%B3u&Sd1k%g)z9 z=WkijwkJ!7veH0KvqtcnqEk#5jvLOF8ksDmNceRkU8PYn9w_*t5gBcn`2YwiAF07Fx5KKSoPy(RW(*x;y4#b050y20>*8(OxxHMM*+=CWe4*#hH5RRwK&wZ$w=n9DJ7^{`wh{}f>aK3dyOC% zQ%l=ZEYD=I*ue$vZ`uFf#R~^{=n{SzxnJyF= z&e}fw%c zjA0^mq=}=*GeGdAUlgXS_;R%P^S1c2_U)4tdvx_e&c4_@PTr$U;Ms}c%usgT`{>cr z;ITP2rVWmuyBV5*4D#U|_I-KE-ISfPeJbcB5g+9D4s>Ck1He+VxKN{IqTpeRI~!^w zK}#;XFd+fZ_XD0<{SVo4bT!}R>B9$v5R$x`HAX&T4b|fnj0EJh6@) zr@~~q4%qkVROeoKcV5EDfoi7#t?xjW1<3x4BXIt(*ZjV`um(})m-d>A+&K+SSr9k;+5~UE_7Y6YgSd%LW$jYvRmwt0 z+Xl%xeE5x4f%T8K6jZ&BJfF>%-|#E(nMyX6=oR9xn(ZnR8Oax1hm&`>W>I~oL3}~p z?ij)iPGdr9%5Mf;Ty!|;m8WRp;H!s-cRr!HHL0m|F#z}9t_J{A5PCyO9iDq?6Pp;V z%wDr`>)0ERXw)HyYavQFP6-=Y+z0p&Mf2{qCmbavIh;aG$NFmT>%1vNw;TMm^;LI5 zWj+y+KN=JRGDsrveLGer#s0~3Ic2T^Jq!Dxnj{KND`-O~P)b~A2UJ3L5WpAyoYV<> z%56?>i-4q<_u3gSFu@1tsZAQ$@Lo;rHj7}9j;b0hppO-uR(edrDm|t#qEP{{jpzpv ztF6J`bo@Q6g2IZ(5wuYT_eNGXF3AHV;mmMAoQo#*!bl9GH{oKP=%5CEhS*aZv2lGu zk8_bKaoOuMLB7i;dxZptOuvRMo7H+=X%1w?gaE)HjNkPB-=SNy7d@yoY*$ut+?)0# zo`bDCrx&3-JZhPq$Fx-KEat9*msN$GWHz>%wYKtW>w8a4Xziv`FM4F_J@UVBQVBv; zFXU?837x<42huLNv-S1-su*&p{-kMI$uV9c(qJo3jj4!N?+F;@FD7=!QY( zqXCp|upLZ)XLUzk@;ccPJ|Q6La`!@Uf=b=v?8_QWe2#UNdoHa+_hQbc>g&pHPf0;O z?hdjxC-=kPZECG|5FA-L ze^VQeJTxmP@!5~2mqDawB06TSuA?F%e1tqe4lizxKbTl(eX~2K+4$IaFk^1K?N%qtV#pGbtkXZKCg2}LML`-eCT!(%RkD>^fK^lsK)jil?irWq(! zG?d|!_LqyV>eb)+d1RWK_|-Pu(=J}`1G1|X_{t53MH5Y{N4i$OXd_fFr0TLc&tK=Kz7V8v})>lVYC8izEOqvpdcRyxdv*cYl(7b@oGDp0fW*{}I#7nj!& z5b-`C+uEOvru_o&Lf&dkw*g&M0hc=>0O(vxq7c>?IRW--BNm{^n)N^2_Ip!oysZz* ziNX9Eg)l7Nk4J~y_He|YMGCf_#nk1acr#wNCDIkO^uK12D#Memf2y*H^