
    j0f                       U 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mZ ddlmZ ddlmZ dZded	<   d
Zded<   dZded<   dZded<   dZded<   dZded<   dZded<   dZded<   dZded<   dZded<   dZded<   dZ ded<   d Z!ded!<   d"d#d$d%d&Z"ded'<    ed(      Z#d)Z$ ejJ                  d*      Z&d+Z'd,Z(d-Z)h d.Z* G d/ d0e+      Z, G d1 d2e,      Z- ed34       G d5 d6             Z.dMd7Z/dNdOd8Z0dPd9Z1dQd:Z2dRd;Z3	 	 	 	 	 	 	 	 dSd<Z4dTd=Z5dUd>Z6dVd?Z7dWd@Z8dXdAZ9dYdBZ:dZdCZ;d[dDZ<d\dEZ=d]dFZ> G dG dH      Z?d^dIZ@d_dJZAd]dKZBeCdLk(  r eD eB             y)`zNContinuous, event-first Task26 lifecycle observer and role-handoff controller.    )annotationsN)	dataclass)Path)Final@e788f5d56aef04da3097007e2ab79614f2060607d4331162169733b1208d9377r   	SUCCESSOR@a113a57564a11710dffd238688dd73f8037eabaed0b48532b4bc90b2996e69fcCORE@2fbd6c9ad9d4b5ee979e7671d44e32fd4769e8737e26d7459fe73c81a525c656WHEEL@d816dbbd6a27d5826b251d279a9831de096ef7cd79b5fd131ceff7253b7369bePLAN@8416cd7c83cab5540af2e1e01dbcc5b1bdfd49a59d8ef21ea49512c28d749218GOLDEN@a2e15845764e7041957ae4518096fe73f87ec35b57021980cdd4df3ea18ac00dRECOVERY@5e3067fe3c865224fc73ff5a9a65058c87960f05d9af53bddccaf6f32dc83939CONSENTcb_PCczfFXoI4GjvCxLBs1oRASESSION@53b4f95b5b4db9a611128976a7b951bbe22d9619e05b2ff07fadf5b02f9a5380SID%task26_live_2e_r2_20260815_8527916639KEY
8527916639CUSTOMER
8693203710OWNER)date_of_birthequation_sex_basis	height_cm	weight_kgactivity_categoryactivity_rationale	goal_typetarget_weight_kgtarget_date	allergiesintolerancesreligious_ethical_exclusionsdisliked_foodsdietary_preferences
conditionsmedicationspregnancy_breastfeedingeating_disorder_riskcooking_accessbudget_band
meal_countschedule_constraintsFIELDS@95637abce4742d583534cf406b038f7c862ad0a72d10a6bab24d2452dcb0f776@8c7065277d5d96ce1012ac0c098d53288bba66c44c0674704be4072fe0a63951@8ce2fe8770c2b480083e9d44237d80892ccddcaec06acca14db18576a2ee0088@b41060dea28eb3bbb83217068f5218d5df2c879dba00e73c9ca4e577a6049dad)z1gateway/platforms/dualcoach_activation_cutover.pyz$gateway/platforms/dualcoach_admin.pyz0gateway/platforms/telegram_customer_bootstrap.pyzgateway/platforms/telegram.pyRUNTIMEzK/home/cube/projects/richard/hermes-agent/.venv/lib/python3.12/site-packagesztask26-continuous-lifecycle-v1iIIIi  i @  i   >   recovery-auditsprofile-reset-archivesdualcoach-provider-authrehearsal-reset-archivespost-lifecycle-cleanup-archivesglobalc                      e Zd Zy)LifecycleErrorN__name__
__module____qualname__     i.omo/evidence/task26/task26-continuous-lifecycle-observer-st_01a007da-v2-e788f5d5/continuous_lifecycle.pyrC   rC   P       rI   rC   c                      e Zd Zy)LifecycleTimeoutNrD   rH   rI   rJ   rM   rM   T   rK   rI   rM   T)frozenc                  n    e Zd ZU ded<   ded<   ded<   ded<   ded<   ded	<   d
Zded<   d
Zded<   ddZy)Promptstrstatusroleactorztuple[str, str]routez
str | None
message_idaction commanddetailc           	         | j                   | j                  | j                  t        | j                        | j
                  | j                  | j                  | j                  dS )N)rR   rS   rT   rU   rV   rW   rY   rZ   )	rR   rS   rT   listrU   rV   rW   rY   rZ   selfs    rJ   docz
Prompt.docc   sI    kkIIZZ$**%//kk||kk	
 		
rI   N)returndict[str, object])rE   rF   rG   __annotations__rY   rZ   r_   rH   rI   rJ   rP   rP   X   s;    K
IJKGSFC

rI   rP   c                d    t        j                  | j                               j                         S N)hashlibsha256
read_bytes	hexdigest)ps    rJ   sharj   p   s     >>!,,.)3355rI   c                   | j                         s|S | j                         rt        d|        | j                         }t        j                  |j
                        rC|j                  t        j                         k7  s"t        j                  |j
                        dz  rt        d|        	 t        j                  | j                               S # t        j                  $ r}t        d|        |d }~ww xY w)Nzsymlink authority: ?   zunsafe authority: zinvalid JSON: )exists
is_symlinkrC   statS_ISREGst_modest_uidosgetuidS_IMODEjsonloadsrg   JSONDecodeError)ri   defaultses       rJ   loadr|   t   s    88:||~21#677	ALL#88ryy{"<<		"U*1!566:zz!,,.)) :~aS129:s   2"C C<(C77C<c                4   t        | t              r!| D cg c]  }t        |t              s| c}S t        | t              rLdD ]G  }t        | j                  |      t              s#| |   D cg c]  }t        |t              s| c}c S  g S c c}w c c}w )N)recordsgenerationsitems)
isinstancer\   dictget)vxks      rJ   rowsr      s    !T41a
1d 3144!T4A!%%(D)#$Q4?4a:a+>4?? 5 I 5 @s   BB.BBc                    t        j                  t        j                  t                    j                         j                  d      }d|  d| d| S )N=znon2::)base64urlsafe_b64encodebytesfromhexr   decoderstrip)rW   
generationhs      rJ   callbackr      sH      s!34;;=DDSIA6(!J<q,,rI   c                 .    dt         z   dz   t        z   dz   S )Nz/home/cube/projects/richard/hermes-agent/.venv/bin/dualcoach_admin customer activate --profile-root /home/cube/.hermes/profiles/dualcoachtest --data-root /home/cube/.hermes/profiles/dualcoachtest/data --customer-id zA --checklist-evidence '<CHECKLIST_EVIDENCE>' --bootstrap-session zg --expected-generation 5 --package-root /home/cube/.hermes/profiles/dualcoachtest/workspace/checkin_cli)r   r   rH   rI   rJ   exact_cutoverr      s4     	b
	
M	N 	 t		trI   c           	         | D cg c]#  }t        |j                  |d            |k(  s"|% }}t        |      dk(  r|d   S d S c c}w )NrX      r   )rQ   r   len)seqfieldvaluerr   s        rJ   _oner      sM     :Cq3quuUB/0E9CA:q6Q;1Q4(D( 	;s
   #AAc                   t        | dz  i       }t        t        t        |t              r|j                  dg       ng       dt              }t        | dz  i       }t        t        t        |t              r|j                  dg       ng       dt              }| dz  t        z  dz  }t        |d	z  d       xs t        |d
z  d       }t        |dz  i       }t        t        t        |t              r|j                  di       ni       dt              }|[t        |t              rKt        |j                  d      t              r,|d   j                  t              }	t        |	t              r|	nd }t        | dz  i       }
t        | dz  i       }| dz  t        z  dz  }t        |dz  d       }d }t        |t              r|j                  d      }t        |j                  dg             }|rt        |dt        |            nd }|rt        |dz  | dz  d       nd }t        |t              r||j                  d      |j                  d      |j                  d      t        |j                  d            t        |j                  d            gt        |t              r|j                  d      nd d}t        | dz  g       }t        | dz  i       }t        | dz  i       }t        | dz  i       }g }| dz  }|j                         rO|j                         j                         D 	cg c](  }	|	j                         st        j                  |	      * }}	||||t        |
      t        |      |t        |      t        |t              rt        |j!                               n
t        |      t        |t              r|ni t        |t              r||d S i |d S c c}	w )!Nz:data/onboarding/telegram-customer-bootstrap-v1/ledger.jsonsessions
session_idzcustomers/registry.json	customerscustomer_keyzdata/customersznutrition-onboardingz
ready.jsonztransient/workflow.jsonzsession.jsonz:data/onboarding/telegram-publication-outbox-v1/ledger.jsonzCdata/onboarding/telegram-publication-outbox-v1/owner-callbacks.jsonwizardztelegram-bindings.jsonactive_session_idbindingsdraftsz.jsonversionsteprV   chat_idtopic_idfinalized_event_id)r   r   r   rV   rU   r   z)data/owner-actions/draft-generations.jsonz.data/owner-actions/draft-generation-cards.jsonzdata/owner-actions/drafts.jsonz(data/owner-actions/draft-deliveries.jsonz$data/customer-activation-audit.jsonl)	bootstrapcustomerworkflowpublicationoutboxowner_callbacksr   r   cardsr   
deliveries
activation)r|   r   r   r   r   r   r   r   rQ   rm   	read_text
splitlinesstriprv   rw   r\   values)rootbootbrregcrnrwfpubsprr   outocwrbindr   activebsbdraftgensr   r   r   auditaps                            rJ   capturer      s   SSUWXD	D$)?TXXj"%RH
B
 t//
4C	C)>SWW["%BG
B
 
 	 3	&)?	?B	b<	&	T$r4M/Mt*TB^#R(D	D$)?TXXj"%RH
B 
zjt,DHHZ<PRV1W  )Q%Q4
tRRTV
WC	TTVX
B 
 	 3	&	1B--t4DF$-.$((:r*+39D\3v;/t@FR(]xu%55t<Da$55+feeL1aeeI./QUU:5F1GHeT* ',ii0D&E	F BBBGDHH"ME$992>FdGGLJE	6	6B	yy{(*(A(A(CQ(C1qwwyA(CQs)8Dz)3E4)@elln%d5k&vt4&"$.z4$@j  GI  Rs   'O=Oc                    | j                  d      }| j                  d      }t        |t              rV|j                  d      t        k7  s>|j                  d      t        k7  s&|j                  d      dvs|j                  d      dvrt        d	      t        |t              r]|j                  d
t              t        k7  s@|j                  d      t        t        ddd fvr*|j                  d      t        t        dgk7  rt        d      t               }| j                  dg       }t        |t              st        d      |D ]  }t        |t              st        d      |j                  d      |j                  d      f}||v rt        d      |j                  |       |j                  d      }|j                  d      }|dk(  r|t        dgk7  s|dk(  s|t        dgk7  st        d       | j                  di       }	t        |	t              rs|	j                         D cg c]@  }t        |t              r.|j                  d
      t        k(  r|j                  d      dk(  r|B }
}t        |
      dkD  rt        d      y y c c}w )Nr   r   r   sid_hashstate>   ACTIVEAWAITING_ACTIVATIONr   >         zbootstrap authority driftr   telegram0user_idr   r   rU   zcustomer route driftr   zoutbox schema driftz duplicate publication generationrS   ownerzpublication role route driftr   rR   sent_auditedr   zduplicate sent_audited delivery)r   r   r   r   r   rC   r   r   setr\   addr   r   r   )rz   r   cseenr   r   r   rS   rU   dterminals              rJ   validate_snapshotr      sH   	kA	jAq$55')55#55>!BB55f,899q$55%,EE* (X3OQUVWg8Xs";; 3445DUU8R Ffd#233!T" !677UU< !%%"569 !CDDuuV}gJ(C(w%% !?@@   	
lBA!T XXZ
!T"n%,h>1	  	 
 x=1 !BCC  
s   )AJc                   t        |       | j                  d      }|j                  d      }t        |t              rzt        |t              rj|j                  d      dk(  rV|j                  d      dk(  rBt	        |j                  dd            t	        |j                  dd            k  rt        d      | j                  d      }|j                  d      }t        |t              rRt        |t              rBt	        |j                  dd            t	        |j                  dd            k  rt        d	      | j                  d
      }|j                  d
      }t        |t              rxt        |t              rg|j                  d      |j                  d      k(  rCt	        |j                  dd            t	        |j                  dd            k  rt        d      y y y y )Nr   r   
collectingcursorr   zonboarding cursor regressedr   r   z publication generation regressedr   r   r   zcheckin version regressed)r   r   r   r   intrC   )ar   awbwr   bpavbvs           rJ   validate_transitionr   $  s   a	
z	B	
z	B2tr4 FF7O|+FF7O|+x#$s266(A+>'??:;;	
}	B	
}	B2tr4 |Q'(3rvvlA/F+GG?@@	
xB	
xB2tr4 FF< BFF<$88y!$%BFF9a,@(AA899 B 9 ! 	rI   c                |   t        |        | d   }| d   }| j                  d      }| j                  d      }t        |t              rt        |t              sJ t	        |j                  d            }|j                  d      dk(  rt        |t              st        d      t        |j                  d            }|d	k(  rt        |j                  d
d            }d|cxk  rt        t              k  rn t        d      t        |t              st        d      t        ddt        t        dft        |j                  d            dt        |    d|dz    d      S t        |t              st        d      t        |j                  dd            }t        |j                  d            }	|dk(  r&t        ddt        t        df|	t        d|      dd      S |dk(  r&t        ddt        t        df|	t        d|      dd       S |d!k(  rt        d"dt        t        df|	d#      S |d$v r/|d%k(  rt        d&d'd'd(d d)      S t        d*d+d+d(d d,t               d-      S t        d.      |j                  d      d/k7  s|j                  d      d0k7  rt        d1      | j                  d2i       }
g }t        |
t              rY|
j                         D cg c]@  }t        |t              r.|j                  d3      t         k(  r|j                  d4      d5k(  r|B }}|r&|rt        d6d+d+d(d d7d8      S t        d9d+d+d(d d:d;      S |st        d<      | j                  d=      }t        |t              st        d>dt        t        dfd d?d@      S |j                  dA      t        dgk7  rt        dB      |j                  dC      dDk7  rFt        dEdt        t        dft        |j                  d            dF|j                  dC       dG      S |j                  dH      s4t        dIdt        t        dft        |j                  d            dJdK      S | j                  dLi       }g }t        |t              ro|j#                         D cg c]T  \  }}t        |t              r?|j                  d3      t         k(  r'|j                  dM      |j                  dM      k(  r||fV }}}| j                  dNg       }t        |t$              st        dO      |D cg c]O  }t        |t              r=|j                  d3      t         k(  r%|j                  dM      |j                  dM      k(  r|Q }}|s|rt        dP      t        dQd'd'd(d dRdS      S |D cg c]  }|d   j                  d4      dTvr| }}t        |      dk7  rt        dU      |d   \  }}|D ch c]3  }t        |j                  dV      t              s#|j                  dV      5 }}| j                  dWg       }t        |t$              st        dX      |D cg c]s  }t        |t              ra|j                  dY      |k(  s7|j                  dV      ||j                  dZ      hv s|j                  dV      |v r|j                  d      d[k(  r|u }}t        |      dk7  rt        d\      |d   }|j                  d]      }|t        t        dd^k7  rt        d_      t        |j                  d4            }|d`v r8t        dadt        t        dft        |j                  d            db| dcdd      S |dek(  r8t        dfdt        t        dft        |j                  d            db| dgdh      S t        di      c c}w c c}}w c c}w c c}w c c}w c c}w )jNr   r   r   r   enabledr   r   zonboarding workflow unavailabler   r   r   zcollection authority driftREADY_CUSTOMER_ONBOARDINGr   rV   zsubmit_answer:zanswer onboarding question r   z'/22 by replying to the committed prompt)rZ   z"onboarding publication unavailabler   customer_attestationREADY_CUSTOMER_ATTESTattestrX   z!press the attestation button onceowner_reviewREADY_OWNER_ONBOARDING_APPROVEr   owner_okz7press Approve once; readiness finalization is automaticsafety_holdSTOP_SAFETY_HOLDzclinical-review-required>   ready
finalizingr   WAIT_AUTOMATIC_READINESSsystem)localr   zautomatic-finalization!READY_OPERATOR_ACTIVATION_CUTOVERoperatorz!dualcoach_admin:customer:activatezbrun only after checklist evidence exists; commits registry activation then bootstrap g5->g6 ACTIVEzunknown onboarding outcomer   r   z.activation cutover is not atomically committedr   r   rR   r   READY_OPERATOR_DISABLEzcustomer_admin:disablezCdisable exact customer, then stop service and await cleanup handoffREADY_CLEANUP_HANDOFFzsealed-cleanup:dry-runzIservice must be inactive; use sealed cleanup dry-run -> execute -> verifyz/active lifecycle customer unexpectedly disabledr   READY_CUSTOMER_START_CHECKINzsend:checkinz'send checkin, then press Begin check-inrU   zcheckin route driftr   summaryREADY_CUSTOMER_CHECKIN_ANSWERzcheckin:z"answer the visible check-in promptr   READY_CUSTOMER_CHECKIN_SUMMARYzcheckin:finalizezconfirm the visible summaryr   r   r   zgeneration authority driftz&generated result lacks draft authorityWAIT_AUTOMATIC_GENERATIONzgeneration:autoz.no human action; wait for generated owner card>   heldsentrejected
supersededz&draft identity is duplicate or unknowntokenr   zowner card authority driftdraft_idgeneration_token	publishedz'exact owner generation card unavailabledestinationr   zowner card route drift>   editedcreatedREADY_OWNER_DRAFT_REVIEWzdraft:z:reviewz;choose regenerate or edit if needed; otherwise approve onceapprovedREADY_OWNER_EXPLICIT_SENDz:sendz9approval never sends; press Send to customer exactly oncezunknown draft outcome)r   r   r   r   boolrC   rQ   r   r   r5   rP   r   r   r   r   r   r   r   r\   )rz   r   r   r   ri   r   r   curgenmidr   r   r   wr   matchedr   r   r   grelevant_generationsr   r   diddrgeneration_tokenscards_valuer   carddestrR   s                                  rJ   classifyr"  C  s   a	+A	*A	
z	B	mAa:a#666155#$GuuW~.."d# !BCCBFF7O$L bffXq)*C)c&k)$%ABB 2<At1D$%ABB+3AEE,'( .4S1WI=de  !T" !EFF!%%a()!%%%&**'33'3	 	 N"0S)I	 	 M!"*  ++$.",  33t	 	 9::uuW~!QUU<%8A%=MNN	lBAH!T XXZ
!T"n%,h>1	  	 
 ((\  #$^
 	
 NOO	hAa*sO<
 	
 	uuW~(C(233uuV}	!+sOl#$quuV}o&7
 	
 55%&,sOl#$0
 	
 UU8R FG&$ 
&1!T"n%,l#quu\'::	 F& 	 
 %%r*Kk4(9:: AaEE.!S(EE,155#66	 	
    !IJJ'C
 	
 AQ488H%OO 	
  
 6{aEFFQiGC 4 41
155>SV8Wg 4   %%$Kk4(9:: 
AaEE*$uuW~#rvv.@'A!BBuuW~!22EE'Nk) 	
 
 
 5zQFGG8D88M"D5UDD566!"F&&&CL&'SE!P
 	
 'CL&'SEN
 	
 0
11g
B
(
s.   A^A^$A^*^/$^46^4<A8^9c                    t        j                  t        j                  | dd      j	                               j                         S )NT,r   	sort_keys
separators)re   rf   rv   dumpsencoderh   )r   s    rJ   
event_hashr+  /  s3    >>

1<CCEikrI   c                $   | j                   j                  dd       | j                   j                  d       d}| j                         r=| j	                         j                         }|rt        j                  |d         d   n|}t        | j                         r t        d | j                         D              nd|d	|}t        |      |d<   t        j                  | t        j                  t        j                  z  t        j                  z  t        j                   z  d
      }t        j"                  |t        j$                  |dd      dz   j'                                t        j(                  |       t        j*                  |       y )NTparentsexist_ok  @0000000000000000000000000000000000000000000000000000000000000000event_sha256c              3      K   | ]  }d   yw)r   NrH   ).0_s     rJ   	<genexpr>zappend_event.<locals>.<genexpr>>  s     /;a;s   r   )schemasequenceprevious_event_sha256  r$  r&  
)parentmkdirchmodrm   r   r   rv   rw   SCHEMAsumopenr+  rs   O_WRONLYO_CREATO_APPEND	O_CLOEXECwriter)  r*  fsyncclose)patheventpreviouslinesrowfds         rJ   append_eventrP  5  s#   KKdT2KKeH{{} ++-<A4::eBi(8x37;;=C/499;//a!) 	C %S/C	r{{RZZ/"++=Le	TBHH
TZZt
CdJRRT HHRLHHRLrI   c                   | j                   j                  dd       | j                   j                  d       t        j                  | t        j
                  t        j                  z  t        j                  z  d      }t        j                  |t        j                  |dd      dz   j                                t        j                  |       t        j                  |       y )NTr-  r0  r;  r$  r&  r<  )r=  r>  r?  rs   rB  rC  rD  O_EXCLrG  rv   r)  r*  rH  rI  )rJ  r   rO  s      rJ   securerS  K  s    KKdT2KKe	r{{RZZ/"));U	CBHHR$**Q$:FMUUWXHHRLHHRLrI   c                 N    t         t        t        t        t        t
        t        dS )N)	successorcorewheelplan	golden_v6recovery_v6consent_receipt)r   r
   r   r   r   r   r   rH   rI   rJ   r   r   T  s!    " rI   c                     t         j                         D ](  \  } }t        t        | z        |k7  st	        d|         y )Nzinstalled runtime drift: )r:   r   rj   SITErC   )ri   r   s     rJ   runtime_checkr^  `  s9    1tax=A #<QC!@AA  rI   c                     t        j                  d d      } | j                  t        j                  t        j
                  z        }|dk  rt        d      t        |      S )NT	use_errnor   zinotify init failed)ctypesCDLLinotify_init1rs   rF  
O_NONBLOCKrC   r   )libcrO  s     rJ   initfdrg  f  sK    ;;tt,D			BLL2==8	9B	Av233r7NrI   c                  4    e Zd ZddZddZd	dZd
dZddZy)Watcherc                Z    |j                         | _        t               | _        i | _        y rd   )resolver   rg  rO  watches)r^   r   s     rJ   __init__zWatcher.__init__o  s    LLN	((*rI   c                    t        j                  | j                        D ]<  \  }}}|D cg c]  }|t        vs| c}|d d  | j	                  t        |             > y c c}w rd   )rs   walkr   SKIPr   r   )r^   r   dirsr6  r   s        rJ   add_treezWatcher.add_treet  sP    ''$)),JAtQ"&8$Q!4-q$8DGHHT!W -8s
   A A c                2   |j                         s|j                         sy t        j                  d d      }|j	                  | j
                  t        j                  |      t              }|dk  rt        d|       || j                  t        |      <   y )NTr`  r   zwatch failed: )rn   is_dirrb  rc  inotify_add_watchrO  rs   fsencodeMASKrC   rl  r   )r^   ri   rf  r  s       rJ   r   zWatcher.addy  sq    <<>{{440""477BKKNDAq5 >!!566 SVrI   c                X   t        j                         }|j                  | j                  t         j                         	 |j                  |      }|st        d      t        j                  | j                  d      }d}|t        j                  z   t        |      k  rt        j                  ||      \  }}}}	|t        j                  z  }||||	z    j                  dd      d   j                         }
||	z  }|t        z  rt!        d      |t"        z  r| j$                  j'                  |t)                     |
z  }|dz  r!|j+                         r| j-                  |       |t        j                  z   t        |      k  r|j/                          y # |j/                          w xY w)Nz stage monotonic deadline expiredi   r       r   zinotify overflowi   @)	selectorsDefaultSelectorregisterrO  
EVENT_READselectrM   rs   readEVsizer   unpack_fromsplitr   OVERrC   IGNOREDrl  r   r   rt  r   rI  )r^   secondsselr   rawoffr  maskr6  nnamechilds               rJ   waitzWatcher.wait  sP   '')TWWi223	JJw'E&'IJJ''$''5)CC-3s8+ "sC 84Arww3q)//q9!<CCEq$;();<<'>((DF3d:*$HHUO -3s8+ IIKCIIKs    EF F)c                B    t        j                  | j                         y rd   )rs   rI  rO  r]   s    rJ   rI  zWatcher.close  s    
rI   N)r   r   r`   None)ri   r   r`   r  )r  floatr`   r  )rE   rF   rG   rm  rr  r   r  rI  rH   rI   rJ   ri  ri  n  s    +

!0rI   ri  c           
     `    t         dt               |j                         t        |       ddddd	S )NREADY_CONTINUOUS_LIFECYCLEz recursive-inotify-before-actions  `T  z=no raw updates, tokens, customer answers, or provider content)	r8  rR   r   initial_handoffauthority_sha256event_subscriptionper_stage_timeout_maxtotal_timeout_maxprivacy)r@  r   r_   r+  )rz   prompts     rJ   	ready_docr    s3    .J!::<&qM@!%"R
 
rI   c           
        t                t        | j                        }|j                          t	        | j                        }t        |       t        |      }t        ||      }t        | j                  |       | j                  dk(  r|j                          |S t        | j                  d|j                         t        |      d       t!        t#        j$                  |d      d       t'        j(                         }|}|j*                  }	 	 t-        | j.                  t'        j(                         |z
  z
  | j0                  t'        j(                         |z
  z
        }|dk  rt3        d      |j5                  |       t	        | j                        }	t        |	      t        |      k(  rt7        ||	       t        |	      }
t        | j                  d	|j*                  |
j*                  |
j                         t        |	      d
       |
j*                  |k7  rPt!        t#        j$                  |
j                         d      d       t'        j(                         }|
j*                  }|	|
}}|
j*                  dk(  r1t8        dt;               |
j                         d|j                          S # |j                          w xY w)Narm-onlyREADY)kindhandoffr  Tr'  )flushr   z"bounded lifecycle deadline expired
TRANSITION)r  fromtor  r  r   "PASS_CONTINUOUS_TO_CLEANUP_HANDOFF)r8  rR   r   final_handoff)r^  ri  profilerr  r   r   r"  r  rS  r   moderI  rP  eventsr_   r+  printrv   r)  time	monotonicrR   minstage_timeouttotal_timeoutrM   r  r   r@  r   )r   r  rz   ri   r   startstagelast	remainingr  qs              rJ   runr    s   O		AJJL		AaA!QA
177Avv			QUUW*Q-P 
$**Q$
't4NNEE88D%4>>#3e#;<4>>#3e#;<I A~&'KLLFF9		"A!}
1-1%A(HH(( uuw(21	 xx4djjD9F(xxaqAxx22$B (
%&UUW	 	
	I H 	
	s   FJ6 4J6 6Kc                    t        j                         } | j                  dd      }dD ]  }|j                  |      }|j	                  dt
        d       |j	                  dt
        d       |dk(  sJ|j	                  d	t
        d       |j	                  d
t        d       |j	                  dt        d        | j                         }	 |j                  dk(  rNd|j                  cxk  rdk  r.n t        d      d|j                  cxk  rdk  st        d       t        d      t        t        j                  t        |      d             y# t         $ r(}t        d| t"        j$                         Y d }~yd }~wt        t&        t(        t*        f$ r(}t        d| t"        j$                         Y d }~yd }~ww xY w)Nr  T)r!  required)r  observez	--profile)typer  z--readyr  z--eventsz--stage-timeoutr  )r  ry   z--total-timeoutr  r   ztimeout bound invalidr  zFAIL: )file      )argparseArgumentParseradd_subparsers
add_parseradd_argumentr   r  
parse_argsr  r  r  rC   r  rv   r)  r  rM   sysstderrOSError
ValueErrorKeyError)r   spr  r   r   r{   s         rJ   mainr    sw   		 	 	"B					6B'MM$	{=	ytd;9NN:D4N@NN,5$NGNN,5%NH ( 	A66YAOO+t+ !899 45q3O%3O !899 4P !899djjQ401 qcl,GZ: qcl,s%   BE 	GFGGG__main__)ri   r   r`   rQ   rd   )ri   r   ry   objectr`   r  )r   r  r`   list[dict[str, object]])rW   rQ   r   r   r`   rQ   )r`   rQ   )r   r  r   rQ   r   rQ   r`   zdict[str, object] | None)r   r   r`   ra   )rz   ra   r`   r  )r   ra   r   ra   r`   r  )rz   ra   r`   rP   )r   ra   r`   rQ   )rJ  r   rK  ra   r`   r  )rJ  r   r   ra   r`   r  )r`   zdict[str, str]r  )r`   r   )rz   ra   r  rP   r`   ra   )r   zargparse.Namespacer`   ra   )E__doc__
__future__r   r  r   rb  re   rv   rs   rz  ro   structr  r  dataclassesr   pathlibr   typingr   r   rb   r
   r   r   r   r   r   r   r   r   r   r   r5   r:   r]  r@  Structr  rw  r  r  rp  RuntimeErrorrC   rM   rP   rj   r|   r   r   r   r   r   r   r   r"  r+  rP  rS  r   r^  rg  ri  r  r  r  rE   
SystemExitrH   rI   rJ   <module>r     s   T "      	    
  !  U	5 UPe PQu QPe PR RT% TS S, ,OU O4U 4% u  2 :|,n8z%g	  Q 
*V]]6
	\ 		~ 	 $
 
 
.6:$-
)	 )),)58))EP3Dl:>i2X,	B- -`9x6 z
TV
 rI   