
     joG                    6   d 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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mZmZ ddlmZ ddlmZmZ  ed      Z ee      e
j:                  d<    ed	      Z ed
      Z ed      Z dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ. G d de/      Z0d0dZ1d1d2dZ2d3dZ3d4dZ4d5d Z5d6d!Z6d7d"Z7d7d#Z8d8d$Z9d7d%Z:d9d&Z;d:d'Z<d7d(Z=d9d)Z>d;d*Z?d<d+Z@d=d,ZAd>d-ZBd6d.ZCeDd/k(  r eE eC             y)?zIMinimal one-use isolated DualCoach launcher with one append-only receipt.    )annotationsN)UTCdatedatetimetime)Path)AnyCallablez)/home/cube/.hermes/profiles/dualcoachtestHERMES_HOMEzR/home/cube/.hermes/profiles/dualcoachtest/.strict-runtime/dac4e812/venv/bin/pythonzu/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-strict-final-candidate-successor-v3-st_01a00f35zk/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-isolated-runtime-dac4e812-st_01a0122b@b6d78bc1e68ead7340d92b534fe3a6d0257c8aa2b02cd3d58e43215fbd8a3443@dac4e81281e8ab7f5c46461e79d405998e0273fe9f98dc09ff67b73528083092@6283a4cf71ba9982c8e75bce88f09997f6eb786a88b788f7858199aeaadb27a9@f93106b16643227e2ef9dec67a5bbd497e1d353e779da62287898a087071af87@ee787fb63fd8ce61d35eb2d7a43c11d7e7adef268c1d09a0a40c1d881b8ea742@fb48a1931828ee60ab3812faf795550bf4e672a54c56f78cd10dcf674c45560d
8527916639
8693203710dual_coach_pilot_test_botz7hermes-gateway-dualcoachtest-strict-dac4e812-v2.servicez0dualcoach-lifecycle-observer-b6d78bc1-v2.servicez$hermes-gateway-dualcoachtest.service)config.yamlz	auth.jsoncustomers/registry.jsongateway_state.json(data/owner-actions/draft-deliveries.jsondata/scheduled-deliveries.jsonl:data/onboarding/telegram-publication-outbox-v1/ledger.jsoni  c                      e Zd Zy)BlockedN)__name__
__module____qualname__     /home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-minimal-isolated-launch-v2-st_01a0123b/run-v2/launch_v2.pyr   r      s    r!   r   c                d    t        j                  | j                               j                         S N)hashlibsha256
read_bytes	hexdigest)paths    r"   shar*      s     t/@ A K K MMr!   c           	         t        j                  | ddd      }|rB|j                  r6t        d|j                   d| d|j                  j                                |S )NTF)textcapture_outputcheckzcommand failed (z): z: )
subprocessrun
returncoder   stderrstrip)argsokrs      r"   commandr7      sX    >>$D5A1<<w)9!,,s4(RTUVU]U]UcUcUeTf'ghh	r!   c           	     `   t        j                  |t        j                  t              j                         d|ddd      dz   j                         }t        j                  | t        j                  t        j                  z  t        j                  z  t        j                  z  t        t        dd      z  d      }t        j                  |d       t        j                  ||       t        j                   |       t        j"                  |       y # t        j"                  |       w xY w)	N)eventat_utcT,:)	sort_keys
separatorsensure_ascii

O_NOFOLLOWr     )jsondumpsr   nowr   	isoformatencodeosopenO_WRONLYO_APPENDO_CREAT	O_CLOEXECgetattrfchmodwritefsyncclose)receiptr9   valuesrawfds        r"   appendrX      s    
jj%c):)D)D)FPP[_kt  CG  H  IM  M  U  U  WGGGBKK+BJJ6r||CGB|\]D^^_deii5288Bs+RXXb\
((2,"((2,s   ?AD D-c                    t        ddd| ddddddg
d      }t        d	 |j                  j                         D              S )
N/usr/bin/systemctl--usershowz-pActiveStateSubStateMainPIDFc              3  J   K   | ]  }d |v s|j                  d d        yw)=   N)split.0xs     r"   	<genexpr>zstate.<locals>.<genexpr>#   s#     G%:cQhQWWS^%:s   	##)r7   dictstdout
splitlines)unitr6   s     r"   staterl   !   sE    
 &d=jY]^ghinoGQXX%8%8%:GGGr!   c                     dd l } | j                  t        dz  j                               d   d   d   d   }dD ci c]  }|||   
 c}S c c}w )Nr   r   	platformstelegramextraadaptive_nutrition
activationdeliverydelivery_enabled)yaml	safe_loadPROFILE	read_text)rv   aks      r"   flagsr|   $   sY    >>7=(3356{CJOPWXYmnEFEA1Q4EFFFs   Ac                    d} t         dz  t         dz  t         dz  fD ]}  }|j                         st        j                  |j	                               t        t              r| t              z  } Vt        t              sg| t        fddD              z  }  | S # t        j
                  $ r- | t        |j	                         j                               z  } Y w xY w)Nr   r   r   r   c              3  T   K   | ]  }t        j                  |g              ! y wr$   )lenget)re   r{   values     r"   rg   z!delivery_count.<locals>.<genexpr>/   s#     )sHr1#eii"o*>Hrs   %()
deliveriesrecordsitemsentries)rx   existsrD   loadsry   JSONDecodeErrorr   rj   
isinstancelistrh   sum)totalr)   r   s     @r"   delivery_countr   (   s    77@j8jkr  tp  lp  qT	ZZ()udUCJ.U%uc)sHr)s&ssu q 	 
		Ruc$..*:*E*E*G&HHu(Rs   #B  =C C c                    t        t              ddddk7  rt        d      t        t              j	                  d      dvrt        d      d	D  cg c]  } t
        | z   }} |D cg c]  }|j                         st        |        }}|rt        d
dj                  |      z         t               }|ddddk7  rt        d      t               rt        d      t        ddt        t        j                               ddg      j                  }t        d |j!                         D              rt        d      dd|dddS c c} w c c}w )N0inactivedead)r_   r]   r^   z#installed service not inactive/deadr]   )Nr   failedz transient gateway already active)	r   gateway.lockgateway.pidr   state.dbsessionsdata/onboardingdata/owner-actionsdata/customerszlive authorities not empty: r<   Frr   zconfig flags not falsezdeliveries not zeroz/usr/bin/psz-uz-ozargs=c              3  8   K   | ]  }d |v xs t         |v   yw)lifecycle_observer_v7.pyN)UNITrd   s     r"   rg   zbaseline.<locals>.<genexpr>;   s#     No"a'44194os   zstale target monitor/runtimezinactive/deademptyr   )serviceauthoritiesr|   r   monitors)rl   BASE_SERVICEr   r   r   rx   r   strjoinr|   r   r7   rI   getuidri   anyrj   )rf   	forbiddenplivesafepss         r"   baseliner   1   sH   	,CjFSS[b  dI  \J  VJ	$KOOM"*DDGTvLwFw  {  |   {!GAI   {  | /y!AHHJs1vy/6sxx~EF
Fg%
HHPWXpPqJqG$9::]4BIIK 0g>?FFNbmmoNNV]^|V}P}"ST`abb |/s   E'E=Ec                 P   t        t        j                        j                         t        j                         k7  s4t        j
                  t        t        j                  j                        k7  rt        d      t        t        dz        t        k7  rt        d      t        j                  t        dz  j                               } t        j                  t        dz  j                               }| j                  d      dk7  s0| j                  d      t         k7  s| j                  d      t"        k7  rt        d	      |j                  d      dk7  s8|j                  d
i       j                  di       j                  d      t$        k7  rt        d      i }dD ]  }t'        j(                  |      j*                  }t-        |t              st        d|z         t        |      j                         }t        j                  j                  |j.                  vrt        d|z         t        |      ||<    i }ddt0        fddt2        ffD ]  \  }}}	t&        j4                  j7                  |      j                  d      }
|
t        d|z         t        j                  |
      }t        |d   j9                  dd      j9                  dd            }|j:                  |k7  st        |      |	k7  rt        d|z         |d   |	d||<    t        j                  ||t        dS )Nzwrong isolated interpreterz	SEAL.jsonzruntime seal driftzruntime-receipt.jsonstatusREADY_ISOLATED_RUNTIME	candidatepreserved_product_candidatezruntime binding mismatchverificationprofile_configr&   zruntime receipt mismatch)gatewayzgateway.platforms.telegram!gateway.platforms.dualcoach_admincheckin_clicheckin_cli.customer_adminro   zimport has no origin: znon-isolated import: zhermes-agentz$hermes_agent-0.17.0-py3-none-any.whlzphysique-checkin-cliz+physique_checkin_cli-0.1.0-py3-none-any.whlzdirect_url.jsonzdirect_url missing: urlzfile:// z%20 zdirect_url wheel mismatch: )r   wheel_sha256)interpreterorigins
direct_urlruntime_seal_sha256)r   sys
executableresolvePYTHONprefixr   parentr   r*   RUNTIMERUNTIME_SEALrD   r   ry   r   FULLPRODUCT
CONFIG_SHA	importlibimport_module__file__r   parents
HERMES_SHAPROFILE_SHAmetadatadistributionreplacename)sealrT   r   r   module_fileorigindirectdistwheelwantdirect_textr   sources                r"   installed_proofr   =   s     "FNN$44

CH\H\D]8]el  nJ  fK  `Kl*':N2O,O
jj'+%0023TZZQgIgHrHrHt=uWHHX00DHH[4I44OSWS[S[\ySz  }D  TD  LS  Tn  Lo  FoKK33w{{>RT7U7Y7YZjkm7n7r7rs{7|  I  8I  QX  Ys  Qt  Kt	 PT%%d+44+	K	$G4LT4Q,R&R	k		"	"	$&]]/w?VW[?[7\1\F'$- P 	()OPZ[]s  ub  cn  ]o  p_T%  --d3==>OP+(>t(C DD

;%U5\-A-A)B-O-W-WX]^a-b(c[[%3v;,G<YZ^<^4_._El$7&, p ~~Vbnoor!   c           	     v   | j                         r	 ||       ry | j                  j                  dd       t        j                  dd      }|j                  t        j                        }|dk  s7|j                  |t        j                  | j                        t              dk  rt        d      t        j                         }|j                  |t        j                         t!        j"                         |z   }	 	 |t!        j"                         z
  }|dk  s'|j                  t%        dt'        |dz                    st        d	t)        |       z         t        j*                  |d
       | j                         r ||       r	 t        j,                  |       y # t        j,                  |       w xY w)NT)r   exist_okz	libc.so.6)	use_errnor   zinotify subscription failedrb   i  zevent timeout: i   )r   r   mkdirctypesCDLLinotify_init1rI   rN   inotify_add_watchfsencode	IN_EVENTSr   selectpollregisterPOLLINr   	monotonicmaxintr   readrS   )r)   	predicatetimeoutlibcrW   r   deadlinelefts           r"   	wait_pathr   R   s?   KKMiov4.kk+-$2D2DR\\2RrqDD""2bkk$++&>yI!KSZ[xSyMykkmT]]2fmm4t~~?OPW?Wh!!4
AgTYYs1Sd^45WEVWZ[_W`E`=a7a772e
kkm	$
((2, 	
 ((2,s    B	F!  F! !F8c                    t        j                  d      } t        j                  d      }dt        j                  t              j                  d      z   dz   t        j                         j                  d d z   }t        dz  }|j                  j                  d	       |j                  t        j                  d
t        t        ddg dd dd      dz          |j!                  d       t#        j$                         }| j'                  || j)                  |dt*        t*        d|t-        d      dd
ddd             |j)                  |d|j/                         ddd
ddd	      }|j1                  |j3                  t                    j5                  |t6        t              }||j8                  j:                  d
|j8                  j<                  |j>                  dS )Nr   z-gateway.platforms.telegram_customer_bootstraptask26_claim_z%Y%m%d%H%M%S_   r     moderb   r   )user_idchat_idtopic_idordinary_v1)versionowner	customersregistry_modediagnostic_session_digestr;   )r?   rA   rC   zDualCoach customer claimr   i     )meal_1meal_2meal_3z08:00)bot_usernameowner_id)customer_id
session_id
generationsid_hashcustomer_link) r   r   r   rF   r   strftimeuuiduuid4hexrx   r   r   
write_textrD   rE   OWNERchmodr   todayregister_customerCustomerDraftACTORdaytimerG   RoomBootstrapStoreroom_bootstrap_state_dir!prepare_rehearsal_customer_inviteBOT_USERNAMEsessionr  r  r  )adminbootcustomerregistryr  draftmades          r"   preparer(  _   sR   ;<9CZCZ  \K  DLd
(,,s+44^D
DS
HIYIYZ\[\I]
]ho  qJ  iJ_g  LT  L[  L[  La  La  gl  La  Lm	TZZ1PUad5ert  FS  pt  !u  AJ  K  LP  P  Q  S[  Sa  Sa  bg  Shzz|U,,Xe6I6I(Smnstyz}  D  EL  MN  EO  PQ  RS  TX  Y\  ]y  7z  {(#=eoo>OPWXYZ[\`ad  fB  C
d;;GDEgghm  |H  RWg  XT\\-D-DRS_c_k_k_t_t  FJ  FX  FX  	Y  Yr!   c                   | dz  }| dz  }t        dddt         ddt        t              t        t        dz        d	d
t        |      dt        |      g       t        |d d       t        dz  }t        dz  }t        dddt         dddt         dt         dt        j                  j                   dt        j                   dt        t              ddddddg       t        |d d       t        |d d       t        d  t        |j                         j                               D              }t        t              t        t              |d!   |d"   |d#   d$S )%Nzobserver-ready.jsonzobserver-events.jsonlz/usr/bin/systemd-runr[   z--unit=z	--collectz--property=Type=execr   observez--eventsz--readyc                l    t        j                  | j                               j                  d      dk(  S )Nr   ARMEDrD   r   ry   r   r   s    r"   <lambda>zstart_runtime.<locals>.<lambda>j   s#    $**Q[[]377A7Jr!   
   r   z9data/onboarding/telegram-staff-membership-v1/events.jsonlz--property=Type=simplez--property=WorkingDirectory=z--setenv=HERMES_HOME=z--setenv=VIRTUAL_ENV=z--setenv=PATH=z=:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binz-mzhermes_cli.mainz	--profiledualcoachtestr   r0   c                    t        j                  | j                               j                  di       j                  di       j                  d      dk(  S )Nrn   ro   rl   	connectedr-  r.  s    r"   r/  zstart_runtime.<locals>.<lambda>m   sA    $**Q[[]";"?"?B"O"S"ST^_a"b"f"fgn"oq|"|r!   x   c                ^    t        d | j                         j                         D              S )Nc              3  j   K   | ]+  }t        j                  |      j                  d       dk(   - ywr9   subscription_armedNrD   r   r   rd   s     r"   rg   z2start_runtime.<locals>.<lambda>.<locals>.<genexpr>n   s-     uZtUV

1 1 1' :<P PZt   13)r   ry   rj   r.  s    r"   r/  zstart_runtime.<locals>.<lambda>n   s"    CuZ[ZeZeZgZrZrZtuur!      c              3     K   | ]A  }t        j                  |      j                  d       dk(  s+t        j                  |       C ywr7  r9  rd   s     r"   rg   z start_runtime.<locals>.<genexpr>o   sG       C#MaQUQ[Q[\]Q^QbQbcjQk  nB  RBDJJqM#Ms
   ,A	A	subscription_epoch_idobserved_at_utcstaff_chat_inventory_sha256)r   observerr=  subscription_armed_at_utcr?  )r7   OBSERVER_UNITr   r   	CANDIDATEr   rx   r   r   nextreversedry   rj   rl   )tempreadyeventsgateway_statejournalarmeds         r"   start_runtimerL  g   s`   !!$/F*F6
 GM?*CKPfgjkqgrsv  xA  B\  x\  t]  ^g  hr  sv  w}  s~  H  IL  MR  IS  
T  U
5J2N++W=x5xW
 GD6*:;G_b~  @G  H  aI  La  bi  aj  Jk  nC  DJ  DQ  DQ  DX  DX  CY  lZ  ]k  lr  ly  ly  kz  zw  [x  y|  }C  yD  EI  J[  \g  hw  xA  BG  
H  I
=|  ~A  B
7uvxy  C8G,=,=,?,J,J,L#M  C  C;%*>W\]tWu  SX  Yj  Sk  JO  Pm  Jn  	o  or!   c                $  K   dd l }t        j                  d      j                  }t        j                  d      }t        dz  }|j                  t        j                  |j                               |j                  t        dz  j                                     }|j                  |d   k7  rt        d      | dz  }	|	j                  t        j                  t        t        t        t         t"        d	             |	j%                  d
        ||      4 d {   }
|j'                  |
|| dz  |	|t        dz  |d   t)        t*              |d   d|d   |d          d {   }d d d       d {    j-                  d      }|j-                  d      }t/        |t0              r|rt3        d |D              rt        d      t/        |t0              rt3        d |D              rt        d      |S 7 7 7 # 1 d {  7  sw Y   xY ww)Nr   ro   z0gateway.platforms.telegram_staff_membership_gater   r   r?  zmembership inventory driftzdeployment.json)candidate_digestcandidate_core_digestcandidate_inventory_digesthermes_wheel_sha256profile_wheel_sha256rC   zmembership.jsonr  r  rb   r=  rA  )
output_pathdeployment_receipt_pathregistry_pathconfig_pathr  customer_user_idbootstrap_session_idbootstrap_generationr=  rA  membership_resultsprivate_dm_resultsc              3  B   K   | ]  }|j                  d       dv  yw)r   >   r   kickedNr   rd   s     r"   rg   zmembership.<locals>.<genexpr>z   s"     4ngmbcQUU8_L]5]gm   zleft/kicked proof missingc              3  B   K   | ]  }|j                  d       du  yw)identity_separatedTNr^  rd   s     r"   rg   zmembership.<locals>.<genexpr>{   s#     'aY`TU.B(C4(OY`r_  z#private identity separation missing)rv   r   r   Botrx   build_staff_chat_inventoryrD   r   ry   rw   r&   r   r  rE   r   r   r   r   r  create_pre_activation_evidencer   r  r   r   r   r   )rF  preparedruntimetokenrv   rb  gater%  	inventory
deploymentbotresultgroupsprivates                 r"   
membershipro  q   s    Z(,,93J3JK}3~d
+
+t7V7VW[WaWabjbtbtbvWwx|  yG  yG  IP  Q^  I^  Hi  Hi  Hk  yl  8mYg;<<GLhDi>i""J$9$9$**Y]v}  \c  zD  \g  Fh  ;i  %j  lv  l|  l|  }B  lCJJ#223yTRcMc  }G  V^  kr  s@  k@  MU  Vc  Md  vy  z  v@  V^  _k  Vl  BC  Za  by  Zz  U\  ]x  Uy2  z  
z& J

'(&**=Q2R'6$v4ngm4n1nv}  Z  w[  q[74 C'aY`'a$aip  rW  jX  dX  
z JJJs\   DHG5HAG; G7!G;%H0G91BH7G;9H;HHH	Hc            
     ,   g } t         D ]  }t        |z  }|j                         s| j                  |dd       1|j	                         }|j                         s|j                         st        d|z         | j                  ||j                  t        t        j                  |j                        d      t        |      d        t        j                  | dd      j!                         }t#        j$                  |      j'                         | dS )	NT)r)   absentz"untrusted protected profile path: 04o)r)   bytesr   r&   r;   )r>   r?   )digestfiles)	PROTECTEDrx   r   rX   lstat
is_symlinkis_filer   st_sizeformatstatS_IMODEst_moder*   rD   rE   rH   r%   r&   r(   )ru  relativer)   infoencodeds        r"   protected_snapshotr  }   s    	Xx$	Xt%DExzz|$	__dllnG<`ai<i4j.j,,xF4<<PTP\P\C]^c<dnqrvnwxy  
EDI	>	E	E	G..)335eDDr!   c                @   t        j                  d      j                  } || dz  d      }t        |j                        dk7  s|j
                  "t        d|j                  j                  z         |j                  j                  t        |j
                        ddS )	Nr   providerT)receipt_directoryallow_billable_active_prober   zprovider readiness failed: znonpersistent readiness)rl  receipt_sha256probe)
r   r   provider_auth_checkr   exitreceipt_pathr   rl  r   r*   )rF  r  rl  s      r"   r  r     s    ,,-PQeed:oZ^_a6..6gFcdjdqdqdwdwFw>x8x--%%s6;N;N7OXqrrr!   c                    t               } |        }t               }||k7  rt        d      i |t        t        t        t
        |d   dS )Nz2provider readiness changed protected profile bytesrt  )r   productr   config_sha256protected_profile_digest)r  r   r   r   r   r   )actionbeforerl  afters       r"   provider_before_mutationr     sb    VXf5G5Iu
EM!UVV 	`6  	`dW<hr  OU  V^  O_  	`  `r!   c                N    t        |       } ||        |       } |       }|||fS r$   )r  )provider_actionprovider_doneprepare_actionruntime_actionprovider_resultre  rf  s          r"   ordered_pre_runtimer     s1    )/:

		((r!   c                n  K   t        j                  d      j                  } ||      4 d {   }|j                  t	        t
              d| z   d       d {   }d d d       d {    t        j                        t        |j                        dS 7 k7 A7 3# 1 d {  7  sw Y   CxY ww)Nro   `   DualCoach 시작 초대입니다. 아래 링크를 눌러 본인이 직접 시작해 주세요.
T)r   r,   disable_web_page_preview)
message_idr   )	r   r   rb  send_messager   r  r   r  r   )linkrg  rb  rk  sents        r"   sendr     s     Z(,,JJ##*:*:3u:  Tw  x|  T|  VZ*:  +[  %[tJJ$//*S5FGG   %[JJJJsV   ,B5BB5(B BB B5*B+0B5B B5 B2&B)'B2.B5c                   t         t        fD ]  }t        ddd|gd        | dz  }|j                  dd       d	D ]f  }t        |z  }|j                         s|j                         r.||z  }|j                  j                  ddd
       t        j                  ||       h t        | dz  dd|t                      y )NrZ   r[   stopFzrollback-archiver   T)r   r   )r  r   r   r   r   r   r   r   zstate.db-shmzstate.db-walr   )r   r   r   receipt.jsonlCLEAN_ROLLBACKBLOCKED_CLEAN_ROLLBACK)r   reasonr   )r   rB  r7   r   rx   r   rx  r   rI   renamerX   r   )rootr  rk   archiverelr   targets          r"   rollbackr     s    =!T7,@&QU+VW\#]!	 	 '--UD-"I xS	&]]_V..0
#+6v}}**4UD*QSUS\S\]cdjSk x _-5MU[emeopr!   c                    t        j                         } | j                  dd       | j                         }t	        t
              j                         j                  }|dz  	 t               }t               }|j                  dk(  rt        dd||       y	j                         r9t        d
 j                         j                         D              rt!        d      t        ddt#        j$                         j&                         t	        dt)        j*                          dt#        j$                         j&                         j-                  d       t/        j0                  d      j3                  t4              j6                  j8                  }d>fd}d?fd}d>fd}d>fd}	t;        ||||	      \  }
}}|j=                  d      }t?        j@                  tC        |||            }t        d|d   |d   |d          tE        tF        dz        dk7  s6tE        t4        d z        tH        k7  stK               |d!   k7  stM               d	k7  rt!        d"      t        d#tN        tH        d	$       tQ        jR                  d%|z   jU                               jW                         }t        d&d'tX        |d(   |d)   |*       t?        j@                  t[        ||            }t        d/fd0d1d2| d3}t        d4d4|d(   |d)   |d   |
tc        td              tc        tf              |d5   d1d6d6|7       ti        jj                         tm        d4       tm        |       y	# t\        $ r3}t        d+d,t_        |      j`                  -       t!        d.      |d }~ww xY w# tn        $ r}|j                  d8k(  rj                         rxt        d9 j                         j                         D              rJtq        |ts        |             n4# tn        $ r(}tm        d:| tt        jv                  ;       Y d }~nd }~ww xY wtm        d<| tt        jv                  ;       Y d }~y=d }~ww xY w)@Nr   )dry-runexecute)choicesr  r  DRY_RUNPASS_ZERO_MUTATIONS)r   	installedr   r   c              3  j   K   | ]+  }t        j                  |      j                  d       dk(   - ywr9   ONE_USENr9  rd   s     r"   rg   zmain.<locals>.<genexpr>   s+     nMmdjjm//8)CMmr:  z&one-use marker exists; retry forbiddenr  
CLAIMED_V2)r   markerz
/run/user/z/dualcoach-v2-r   r   zgateway.configc                     t               S r$   )r  )rF  s   r"   r  zmain.<locals>.provider_action   s    x~(=r!   c                     t        dfi |  y )NPROVIDER_READY)rX   )rl  rT   s    r"   r  zmain.<locals>.provider_done   s    @P1ZSY1Zr!   c            
         t               } | j                  d      }|| d<   t        dfi | j                         D ci c]  \  }}|dk7  s|| c}} | S c c}}w )Nr  _private_linkPREPARED)r(  poprX   r   )rl  rn  r{   vrT   s       r"   r  zmain.<locals>.prepare_action   s    
)6VZZ8WRY&:Q[abijt  \n  HN  HT  HT  HV  xm  HV  AD  AB  CD  Z[  ]l  Zlxyz{x{  HV  xm  \n  w}  p}  xms   AAc                 8    t              } t        dfi |  | S )NRUNTIME_READY)rL  rX   )rl  rT   rF  s    r"   r  zmain.<locals>.runtime_action   s     

6vgoGGPVr!   r  MEMBERSHIP_READYevidence_sha256rZ  r[  )r  rZ  r[  zcandidate-manifest.json@df51caefa45e62541f0656468195766ea6c4bb6f589b8b61ee16360befcda6f4r   r|   zREADY invariant changedREADY)r   r  r   r  INVITE_INTENTATTEMPTING_UNKNOWN_IS_TERMINALr  r  )r   destinationr  r  message_sha256INVITE_UNKNOWNTERMINAL_NO_RETRY)r   
error_typez)invite outcome unknown; terminal no retryINVITE_RESULTSENT_EXACTLY_ONCErb   )r   invite_countzCustomer 8527916639: open the single DualCoach invite in this private DM and tap Start yourself; do not send onboarding answers yet.READY_CUSTOMER_CLAIMr  F)r   r  r  membership_evidence_sha256r  r   r@  invite_message_idr  rs   rt   exact_user_actionr  c              3  j   K   | ]+  }t        j                  |      j                  d       dk(   - ywr  r9  rd   s     r"   rg   zmain.<locals>.<genexpr>   s8       7H  gGabtzz!}7H7H7QS\7\  gGr:  zROLLBACK FAILURE: )filez	BLOCKED:    returndict[str, Any])rl  r  r  None)<argparseArgumentParseradd_argument
parse_argsr   r   r   r   r   r   r   rX   r   r   ry   rj   r   r  r  r  rI   r   r   r   r   load_gateway_preflight_inputsrx   ro   secretr  r  asyncior0   ro  r*   rC  r   r|   r   r   r%   r&   rH   r(   r  r  BaseExceptiontyper   rl   r   rB  shutilrmtreeprint	Exceptionr  r   r   r2   )parserr4   r  proofbaserg  r  r  r  r  r  re  rf  r  membermessage_hashr  exchandoffcleanuprT   rF  s                       @@r"   mainr     s/   !6#6#6vF[#6#\cictctcv^b  ~B  CK  ~L  ~T  ~T  ~V  ~]  ~]x|  gk  l{  g{  _f5%
4	YY	6');P[`jnoxy^^#nWM^M^M`MkMkMmnnv}  g  wh  qh,djjl6F6FGj^DJJL4D4D3EFG$Y^I_ 01OOPWXaahh%=Z}W#6}Ucdr#s"/(7||O$$	ZXge<	=&vgN`qw  yJ  rK  _e  fz  _{  OU  Vj  Ok  @l,	,-/qqux  zA  BO  zO  vP  R\  v\  `e  `g  im  nu  iv  `v  zH  zJ  LM  zM  U\  ]v  Uw  Ow4jAN~~   C  DH   H  P  P  R  S  ]  ]  _,(HUZgop}g~  KS  T`  Ka  q}  ~KKT%()tR(;RTR Q''/ERZ[hRiu}  K  vL  hn  o@  hA  KZ  ch  im  cn  x}  ~K  xL  _c  dp  _q  @  LQ  [`  sz  {--u34eGnQ	 
  ~vg.>FYeijmenewewx  AH  It  Au  {~  {~  ~
 	 5	YY	gnn.3  7Hfmfwfwfy  gE  gE  gG  7H  4Hc#h
U(:7)&D#** U UU)C5szz*1	5so   '3N+ H5N+ M, /A<N+ ,	N(5.N##N((N+ +	Q34AQ.PQ.	Q Q>Q.Q!Q..Q3__main__)r)   r   r  r   )T)r4   z	list[str]r5   boolr  z subprocess.CompletedProcess[str])rT   r   r9   r   rU   r	   r  r  )rk   r   r  dict[str, str])r  zdict[str, bool])r  r   r  )r)   r   r   zCallable[[Path], bool]r   floatr  r  )rF  r   r  r  )
rF  r   re  r  rf  r  rg  r   r  r  )r  Callable[[], dict[str, Any]]r  r  )
r  r  r  z Callable[[dict[str, Any]], None]r  r  r  r  r  z5tuple[dict[str, Any], dict[str, Any], dict[str, Any]])r  r   rg  r   r  r  )r  r   r  r   r  r  )F__doc__
__future__r   r  r  r   r%   r   importlib.metadatarD   rI   r   r  r|  r/   r   r   r  r   r   r   r  pathlibr   typingr	   r
   rx   r   environr   rC  r   r   r   r   r   r   r   r  r  r   r   rB  r   rv  r   RuntimeErrorr   r*   r7   rX   rl   r|   r   r   r   r   r(  rL  ro  r  r  r  r  r  r  r  r   
SystemExitr    r!   r"   <module>r     sw   O " F  F  F  F  F  F  F  F 9 9   89g,

= `a
  G  H	z{G  RTO  ]_Q[M
  \^{,E5P>  OA  Pv  CO _	
	 !l ! M

HGcp*Y	o	Es
`)Hq 5B Zz$&11r!   