
    Fj              	         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Zddlm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'd(d)d*d+Z%d	ed,<    ed-      Z&d.Z' ed/      Z(d	ed0<   d1Z)d	ed2<    ed3      Z*d	ed4<   d5Z+d	ed6<   d7Z,d	ed8<   d9Z-d	ed:<   d;Z.d	ed<<   d=Z/d	ed><   d?Z0d	ed@<    edA      Z1d	edB<   e1dCz  Z2d	edD<   dEZ3d	edF<   dGZ4d	edH<    ejj                  dI      Z6dJZ7dKZ8dLZ9h dMZ: G dN dOe;      Z< G dP dQe<      Z= edRS       G dT dU             Z>dzdVZ?d{d|dWZ@d}dXZAd~dYZBddZZC	 	 	 	 	 	 	 	 dd[ZDdd\ZEdd]ZFdd^ZGdd_ZH	 d	 	 	 	 	 dd`ZI	 	 	 	 ddaZJddbZKddcZL	 	 	 	 	 	 	 	 dddZM	 	 	 	 	 	 	 	 	 	 ddeZN	 	 	 	 ddfZOddgZPddhZQ	 	 	 	 	 	 	 	 	 	 ddiZRddjZSddkZTddlZUddmZVddnZWddoZXddpZYddqZZddrZ[ddsZ\ G dt du      Z]ddvZ^ddwZ_ddxZ`eadyk(  r eb e`             y)zNContinuous, event-first Task26 lifecycle observer and role-handoff controller.    )annotationsN)	dataclass)date)Path)Final@6aaef77de87489c3be493978645781b24b55ab07513ff1f880164741d0bd3c73r   	SUCCESSOR@f759460a42155925ef68d75a03f4c86cffe6d1b6ec774bd61efb73174e10b60cCORE@33688875a0d1ce20955bd8272257ee34d84cb138f6a23a43e5d16682368ae5e5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@8fb6ba6f855e7508c525447cdec482ceb240f8c0a5827b2ca0ce4268c6880bb0@8afb45c5cca082fd85cf07ab43dc5d1062c34678fd268a5722e313ce35cffd8b@3c24d49d656c623edfb95fcfbc7fb0f92365fc123420df66f733f9dbe39d704f@f04ea498ad12a257fb1322da4c8cfd2f91fc9403f0b978617fcc00df41729209)z1gateway/platforms/dualcoach_activation_cutover.pyz$gateway/platforms/dualcoach_admin.pyz0gateway/platforms/telegram_customer_bootstrap.pyzgateway/platforms/telegram.pyz8gateway/platforms/nutrition_onboarding_reconciliation.pyz7gateway/platforms/telegram_nutrition_onboarding_copy.pyz:gateway/platforms/telegram_nutrition_onboarding_runtime.pyzFgateway/platforms/telegram_nutrition_onboarding_runtime_publication.pyRUNTIMEzK/home/cube/projects/richard/hermes-agent/.venv/lib/python3.12/site-packagesztask26-continuous-lifecycle-v6z/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-activation-checklist-6aaef77d-task26-live-2e-r2/activation-checklist-receipt.json	CHECKLIST@b093aeb888ce7325cddd7d56d52a7e4a7ec8a180ac80eef21fea9453a8ef0e8eCHECKLIST_SHA256z/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-activation-checklist-6aaef77d-task26-live-2e-r2/checklist-validation-receipt.jsonVALIDATION_RECEIPT@acb21c8c02260497c197427cfc93417f2be65c8746768ba788bb33400e3e6e78VALIDATION_RECEIPT_SHA256@f75856d6d986b64d3d2f083aec2f865c7aea19f5950b84ff06e519f2f6505af6PROFILE_WHEEL@10cf17fba0e0f60c43d0a379721b71a945ef2c4c168fff8f613c01448297edb4READINESS_RECEIPT_SHA256@857f37c973156c3dcc574dc1dd566f3e4724ddf29c2d44f552184d56e94a1a99READINESS_DIGEST@c6ecd6cb55fd68989b04d60f5ef13491a821e261e43dc7c231d0d5fefa92262eOWNER_REVIEW_RECEIPT@8856ca5146cd74a6e9ed05dcd06747a694cd4f8415ee0575d673d04c9e310f09AUTHORITY_DIGESTz?/home/cube/.hermes/profiles/dualcoachtest/workspace/checkin_cliDOMAIN_PACKAGE_ROOTcheckin_cliDOMAIN_MODULE_ROOTu   활동 수준: 보통. 주 3회, 회당 60분 정도의 중간 강도 근력운동을 희망합니다
 . 평소 걷기·이동은 하루 약 6,000~8,000보 수준입니다.LEGACY_ACTIVITYu   주 3회, 회당 60분 정도의 중간 강도 근력운동을 희망합니다
 . 평소 걷기·이동은 하루 약 6,000~8,000보 수준입니다.DETAILED_RATIONALE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__     /home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-continuous-lifecycle-observer-v6-6aaef77d/continuous_lifecycle.pyr]   r]   k       rc   r]   c                      e Zd Zy)LifecycleTimeoutNr^   rb   rc   rd   rg   rg   o   re   rc   rg   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]route
str | None
message_idaction commanddetailc           	         | j                   | j                  | j                  t        | j                        | j
                  | j                  | j                  | j                  dS )N)rl   rm   rn   ro   rq   rr   rt   ru   )	rl   rm   rn   listro   rq   rr   rt   ru   selfs    rd   docz
Prompt.doc~   sI    kkIIZZ$**%//kk||kk	
 		
rc   N)returndict[str, object])r_   r`   ra   __annotations__rt   ru   rz   rb   rc   rd   rj   rj   s   s;    K
IJKGSFC

rc   rj   c                d    t        j                  | j                               j                         S N)hashlibsha256
read_bytes	hexdigest)ps    rd   shar      s     >>!,,.)3355rc   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_symlinkr]   statS_ISREGst_modest_uidosgetuidS_IMODEjsonloadsr   JSONDecodeError)r   defaultses       rd   loadr      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)
isinstancerw   dictget)vxks      rd   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)rr   
generationhs      rd   callbackr      sH      s!34;;=DDSIA6(!J<q,,rc   c                 T    dt         z   dz   t        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 z --checklist-evidence 'z' --bootstrap-session zg --expected-generation 5 --package-root /home/cube/.hermes/profiles/dualcoachtest/workspace/checkin_cli)r   rk   r@   r   rb   rc   rd   exact_cutoverr      sK     	b
	
#	$ i.	 #		#
 	 t	trc   c           	         | D cg c]#  }t        |j                  |d            |k(  s"|% }}t        |      dk(  r|d   S d S c c}w )Nrs      r   )rk   r   len)seqfieldvaluerr   s        rd   _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  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              r|j                  d!      nd }||||||	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baseline-candidate.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steprq   chat_idtopic_idfinalized_event_id)r   r   r   rq   ro   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owner)	bootstrapcustomerr   workflowbaselinepublicationoutboxowner_callbacksr   r   cardsr   
deliveries
activation)r   r   r   r   r   r   r   r   rk   r   	read_text
splitlinesstripr   r   rw   values)rootbootbrregcrnrwfr   pubsprr   outocwrbindr   activebsbdraftgensr   r   r   auditapr   s                              rd   capturer      s   SSUWXD	D$)?TXXj"%RH
B
 t//
4C	C)>SWW["%BG
B
 
 	 3	&)?	?B	b<	&	T$r4M/Mt*TBB22D9H^#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 *3 5CGGG4Es)8Dz)3E4)@elln%d5k&vt4&"$.z4$@j  GI  Rs   6PPc                z   | j                  d      }| 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        ddk7  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   r   sid_hashstate>   ACTIVEAWAITING_ACTIVATIONr   >         zbootstrap authority drift0user_idr   r   owner member authority driftr   telegramro   zcustomer route driftr   zoutbox schema driftz duplicate publication generationrm   zpublication role route driftr   rl   sent_auditedr   zduplicate sent_audited delivery)r   r   r   r   r   r]   r   r   r   setrw   addr   r   )r   r   cr   seenr   r   r   rm   ro   dterminals               rd   validate_snapshotr     sp   	kA	jAEE'NEq$55')55#55>!BB55f,899EeEE;<<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J8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   intr]   )ar   awbwr   bpavbvs           rd   validate_transitionr	  H  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 ! 	rc   c                    t        j                  | dddd      j                         }t        j                  |      j                         S )NFT,r   )ensure_ascii	sort_keys
separators	allow_nan)r   dumpsencoder   r   r   )r   encodeds     rd   canonical_digestr  g  sE    jj fh  >>'",,..rc   c                   | j                  d      }t        |t              r|j                  d      dk7  ry |j                  d      }|j                  d      |j                  d      }t        |t              r,t              t        usdk  st        |      t        us|dk  ry | j                  d      }t        |t
              sy |D cg c]  }t        |t              r|j                  d	      t        k(  r|j                  d      dk(  ry|j                  d      k(  re|j                  d      |k(  rQ|j                  d      |k(  r=|j                  d
      |k(  r)|j                  d      |dk(  rt        dgnt        dgk(  r| }}|D cg c]  }t        |t              rn|j                  d	      t        k(  rV|j                  d      dk(  rBt        |j                  d            t        u r"t        |j                  d            t        u r| }}t        d |D        d      }	t        fd|D        d      }
t        |      dk(  r|	k(  r||
kD  r|S d S c c}w c c}w )Nr   r   	COMMITTEDpayloadr   rq   r   r   r   rm   ro   r   r   c              3  8   K   | ]  }t        |d            yw)r   Nr  ).0records     rd   	<genexpr>z(committed_publication.<locals>.<genexpr>  s     C1BvVL!	"1Bs   )r   c              3  \   K   | ]#  }t        |d          k  rt        |d          % yw)r   rq   Nr  )r  r  r   s     rd   r  z(committed_publication.<locals>.<genexpr>  s5      	
+6,'(:5 |$%+s   ),r   )r   r   r   typer  rw   r   r   r   maxr   )r   rm   r   r  rq   r   r  matchescommitted_recordslatestprior_messager   s              @rd   committed_publicationr%  r  sL    %%&Kk4(KOOG,D,Sooi(G.J.Jw%
3&>
3&?UU8_Ffd# Ffd#JJ|$/JJw;.JJ|$
2JJ|$
2JJy!W,JJv$&JJw#z1XsOs|E 	   Ffd#JJ|$/JJw;.L)*c1L)*c1 	   C1BCF 	
+	

 M w<1v!5*}:T 	 Es   B<IBI"c                8   | j                  d      }| j                  d      }t        |t              rt        |t              sy t        |      }|j                  d      }|j                  d      }|j                  d      }|j	                         D ci c]  \  }}|dk7  s|| }	}}|j                  d      dvs|j                  d      |k7  syt        |t
              rit        |      t        usXd	|cxk  rt        |      k  rDn y t        |t              r1t        |	      |k7  s#|j                  d      d
k(  |t        |      k  k7  ry g }
t               }|D ]  }t        |t              rqt        |      h dk7  sa|j                  d      t        vsJ|j                  d      |v s7|j                  d      dvs$t        |j                  d      t              r|d   s y |j                  t        |d                |
j                  |        |||
|fS c c}}w )Nanswersreconciliationclarificationscurrent_indexdigestr   >   resolved
clarifyinganswers_digestr   r-  >   kindr   question_kor   r/  >   	ambiguitycontradictionr0  )r   r   r   r  r   rw   r  r  r   rk   r   r6   r   append)r   r'  r  r.  r)  r*  r+  keyr   unsignedtypedr   items                rd   reconciliation_authorityr8    s    ll9%G\\*+Fgt$Jvt,D%g.NZZ 01NJJ/MZZ!F-3\\^O^zsEshU
^HO

7#==::&'>9.$/c)M8S%88  &#&H%/JJw</C//1 %'EUD4&4y<<xx .xx D(xx'EEdhh}5s;&T']#$T  NE=889 Ps   H#Hc                   | j                  d      }t        |t              rddddj                  |      nd }| j                  d      }t        |t              rddd	d
ddj                  |      nd }|y|ydD ]?  }| j                  |      }t        |t              r|j                  d      dvs8dd| fc S  | j                  d      dury| j                  d      durydd| d| dfS )Nr&      감량   유지   증량lossmaintaingainr$      좌식	   가벼움   보통   매우 활동적   최고 활동	sedentarylightmoderatevery_activeextra_active)Fz$canonical Korean goal is unavailable)Fz(canonical Korean activity is unavailable)r)   r*   r+   r,   r-   r.   r/   rl   >   noneprovidedFzstructured answer unavailable: r0   )Fz#health review input requires reviewr1   Tzgoal=z; activity=z; health=no-review)r   r   rk   r   )r'  
goal_valuegoalactivity_valueactivityr   r   s          rd   summary_qualityrR    s-   [)J j#& xBFFzR 	
 [[!45N nc* "  -+	
 #n
  |<@ E"%&%))H*= F
 +
 ;E7CCC {{,-U:;{{)*%7;5k(3EFFFrc   c                    d!d" fd}d# fdddddj                  t         j                  d                  }d	d
ddddj                  t         j                  d                  }dj                  fddD              }dj                  d|xs d d|xs d d |d       d |d       dd |d       d |d       d |d       d| d f      S )$N	   미입력c                    j                  |       }|
|dk(  s|g k(  r|S t        |t              rdj                  d |D              xs |S t	        |      S )Nrs   , c              3  2   K   | ]  }t        |        y wr   )rk   r  r7  s     rd   r  z7authoritative_summary.<locals>.value.<locals>.<genexpr>  s     734SY3s   )r   r   rw   joinrk   )r   r   rawr'  s      rd   r   z$authoritative_summary.<locals>.value  sT    kk% ;#)sbyNc4 997377B7B3xrc   c                   j                  |       }t        |t              sy|j                  d      dk(  ry|j                  d      }|j                  d      dk7  st        |t              sydj	                  d |D              xs dS )	NrT  rl   rL     없음r   rM  rV  c              3  H   K   | ]  }t        |t              s|s|  y wr   r   rk   rX  s     rd   r  z<authoritative_summary.<locals>.structured.<locals>.<genexpr>  s     Out
40E$dus   """)r   r   r   rw   rY  )r   rZ  r   r'  s      rd   
structuredz)authoritative_summary.<locals>.structured  s|    kk% #t$778& 778
**UD2IIIOuOO 	
rc   r:  r;  r<  r=  r&   rA  rB  rC  rD  rE  rF  r$   u    · c              3  >   K   | ]  \  }}| d  |         yw) Nrb   )r  labelr   r_  s      rd   r  z(authoritative_summary.<locals>.<genexpr>'  s2      	
LE5 ':e$%&
s   ))u   알레르기r)   )u	   불내증r*   )u   종교·윤리 제한r+   )u   비선호 식품r,   )u   식품 선호r-   
u
   - 목표: u
   - 활동: r%   u   - 식사: 하루 r4   u   끼u   - 조리·예산: r2   r3   u   - 식사 시간: r5   u*   - 알레르기·불내증·식품 제한: u=   - 건강 관련 입력: 별도 검토 입력이 없습니다.)rT  )r   rk   r   rk   r{   rk   )r   rk   r{   rk   )r   rk   rY  )r'  r   rO  rQ  restrictionsr_  s   `    @rd   authoritative_summaryre    s   
 (HEIIGKK$%D )' 
c#gkk-.
/0  ;; 	
	 	L 99,-.0[1e<P6Q5RSl 34C8 '7!8 9eM>R=ST&< =>?8GK	

 
rc   c                   | j                  d      }t        |t              sy |j                  d      }t        |t              sy |rt        |      n|j                  d      }t        |t              r|sy dd|g}dD ]d  \  }}|rdn|j                  |      }	|	st        |	t
        t        f      rt        d |	D              s y |j                  d|gd	 |	D               f |j                  d
       dj                  |      dz   S )Nr(  advisory
summary_kou    입력 내용을 정리했어요rs   ))u   확인된 내용facts_ko)u   안전 관련 참고사항safety_observations_korb   c              3  <   K   | ]  }t        |t                y wr   r^  rX  s     rd   r  z-candidate_attestation_text.<locals>.<genexpr>S  s      @28$
4%&s   c              3  &   K   | ]	  }d |   yw)z- Nrb   rX  s     rd   r  z-candidate_attestation_text.<locals>.<genexpr>W  s     &FvtD6{vs   )rs   u\   이 요약은 참고용이며 안전 판정·승인·활성화를 대신하지 않습니다.u=   내용이 맞으면 아래 확인 버튼을 눌러 주세요.rc  u   

아래 버튼을 누르면 입력 확인이 저장되고 운영자 검토로 넘어갑니다.
이 단계에서 영양 코칭이 시작되거나 활성화되지는 않습니다.)
r   r   r   re  rk   rw   tupleallextendrY  )
r   r'  r*  r(  rg  summarylinestitler4  r   s
             rd   candidate_attestation_textrs  >  s    \\"23Nnd+!!*-Hh%*7g&X\\,=W  gs#7/W=E
s %(,,s*;ftUm4C @28@ = LL"eG&Fv&FGH 
LL	
 			%]	]rc   c                    t        | ||      }t        |d uxrC |j                  d      t        j                  |j                               j                         k(        S )Nbody_digest)rs  boolr   r   r   r  r   )r   r'  r*  r  texts        rd   candidate_body_boundrx  f  sV     &hGDD 	TKK&'..*G*Q*Q*SS rc   c           	     ,   t        |       t        t              k7  s| j                  d      dk7  ry| j                  d      }t        |t              syt	        t
              }|t        j                  vr t        j                  j                  d|       	 t        j                  d      }t        t	        t        |dd                  j                         }|j                  t        j                               syt!        |       }|j#                  d	t$        d
dd       |j'                  |t)        j*                               }t        |dd       }t        |t              r|rt5        |      dkD  ryd|fS # t,        t.        t0        t2        f$ r Y yw xY w)Nr$   rI  )FNr%   r   z'checkin_cli.nutrition_onboarding_models__file__rs   z1.0	completedpendingunpublished)schema_versionr   session_statusreview_decisionpublication_status)as_ofi  T)r   r6   r   r   rk   rP   syspathinsert	importlibimport_moduler   getattrresolveis_relative_torR   r   updater   build_onboarding_baseliner   todayImportErrorOSError	TypeError
ValueErrorr   )r'  	rationalepackagemodelssourcer  r   
normalizeds           rd   shipped_baseline_validationr  s  sX    7|s6{"gkk2E&F*&T01Ii%%&Gchh7#(()RSc'&*b9:;CCE$$%7%?%?%ABw- &%, 	 	
 33G4::<3PX';TB
 j#&jC
Oc<Q	 )Z8 s   A%E7 ;AE7 7FFc                "    t        |       \  }}|S r   )r  )r'  valid_s      rd   baseline_valid_answersr    s    *73HE1Lrc   c                   | j                  d      }t        t        |t              xrZ t	        |      t	        t
        d d       k(  xr: |j                  d      dk(  xr$ |j                  d      t        k(  xr
 d|vxr d| v      S )Nr'  r  r$   rI  r%   r5   r(  )r   rv  r   r   r   r6   rT   )r   r'  s     rd   normalized_rewindr    s    ll9%G7D! 	-LCs,,	-KK+,
:	- KK,-1CC	- #'1		-
 H, rc   c                    t        | ||      t        | |||      syd}t        fd|D              ryd}t        fd|D              syy)	N)Fz.publication body is not candidate-render-bound){r   rl   rT  u
   수정 전u    실제 총활동량은 불명확u   위험 신호r?  rI  rG  rJ  rK  c              3  &   K   | ]  }|v  
 y wr   rb   r  tokenrw  s     rd   r  z.publication_summary_quality.<locals>.<genexpr>  s     
0iU5D=i   )Fz5publication contains forbidden internal or stale copy)u   - 목표: 유지u   - 활동: 보통u   주 3회u   60분u   6,000~8,000보u%   별도 검토 입력이 없습니다.c              3  &   K   | ]  }|v  
 y wr   rb   r  s     rd   r  z.publication_summary_quality.<locals>.<genexpr>  s     3(u}(r  )Fz8publication lacks Korean goal/activity/no-review summary)Tz,candidate-render-bound Korean summary passed)rs  rx  anyrn  )r   r'  r*  r  	forbiddenrequiredrw  s         @rd   publication_summary_qualityr    sf     &hGD|/'=' GI 
0i
00MH 3(33P?rc   c           
        | j                  d      }t        |       }t        |t              r|j                  d      dk7  s|y t	        |      }|j                  d      }|t        |t              sy |\  }}}}t        |      \  }	}
t        d   }|j                  d      }|j                  d      }|	sPt        |      t        us?|dk  s:|j                  d      dk7  s&|j                  d	      |k7  sd
|v st        ||||      sy t        |      t        ust        |      t        ury ddt        t        dgt        |      t        d|      ||j                  |      d|
z   d	S )Nr   r   customer_attestationr  r  r   rq      r.  clarification_fieldREADY_CUSTOMER_REVISIONr   r   reviseuV   press the existing 수정 button, then resubmit the unchanged final canonical answer; )	rl   rm   rn   ro   rq   rr   
next_field
next_valueru   )r   r%  r   r   r8  rR  r6   r  r  rx  r   rk   r   )r   r   r   	authorityr  r'  r.  r  r*  
quality_okreasonr   r   rq   s                 rd   candidate_revision_handoffr    s`   uuZ H'*Kx&<< $::(2Iooi(G
7D 909-G^Q(1J2JE.J.J
3&?;;w#99;;'(N: G+#Hg}gNJs"d:&6c&A+C*o8Z0kk%(j
 rc   c                2    t        ddddd dd|  d|       S )NWAIT_MATCHING_ROLE_PUBLICATIONsystemlocalr   publication:autozwait for the latest committed z publication matching ru   )rj   )rm   r   s     rd   wait_matching_role_publicationr    s2    (/v5KE7S rc   c                   |j                  d      }| j                  d      }t        |t              rFt        |      dk7  s8t        |t              r(|j                  d      |k7  s|j                  d      i k7  rt        d      |j                  d      }|j                  d      }|j                  d      }t        |t              rnt        |      |k7  s`t        |t              rPt        |t              r@|j                  d	      |j                  d      k7  st        |      |j                  d
      k7  rt        d      t        |      \  }}|st        d      |S )Nbaseline_digestr   @   r+  r'  z%owner review baseline authority driftsource_answersr(  input_reconciliation_digestr.  z"owner review baseline digest driftz/owner review shipped baseline validation failed)r   r   rk   r   r   r]   r  r  )	r   r   r+  r   r  r  r(  r  r  s	            rd   validate_owner_baseliner    s(   \\+,FuuZ Hvs#v;"(D)<<!V+<<	"b(DEEll:&G\\"23N\\"23Nw%G$..$/.$/<<56.:L:LX:VVN+~/A/ABR/SSABB*>:HE1NOOMrc   c                   t        |        | d   }| 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(  r|j                  d	      }t        |      t        us$d
|cxk  rt        t              k  st        d       t        d      t        |       }|t        ddddd d      S |j                  d      }|j                  d      }	|j                  d      }
t        |t              r6|j                  d      dk7  s"t        |	      t        ust        |
      t        urt        ddddd d      S |t        t              dz
  k(  r@|	dk  st        |      st        d      t        ddt        t        dft        |
      ddd      S t        ddt        t        dft        |
      dt        |    d|dz    d      S t        |       }|d k(  r|t        ddddd dd!      S |d   }t        |t              sJ t        |      }|t        d"dddd d#      S |\  }}}}|j                  d      d k7  s|j                  d$      |k7  rt        ddddd dd%      S |j                  d      }	|j                  d      }
t        |	      t        ust        |
      t        urt        d&      |	}t        |
      }|d'   }t        |t              sJ |d   d(k(  rM||   d)   }|j                  d*      |k7  rt        ddddd dd+      S t        d,dt        t        df|d-| d.      S d*|v rt        ddddd dd/      S t!        ||||      }|sF|d0k(  r/|
d1k(  r*|j                  d2      t"        k(  rt        d3d4d4dd d5d6      S t        d7dddd dd8      S t%        |      \  }}|sU|d9k(  r>|j                  d2      t"        k(  r&t        d:dt        t        df|t'        d;|      d<d=      S t        d>d4d4d|d?|      S |d@k  st)        |      st        dAdddd d#dB      S t+        ||||      \  }}|st        d>d4d4d|d?|      S t        dCdt        t        df|t'        dD|      d<dE|z         S t        | dF      }t        |t              st-        dF|      S |j                  d      }|j                  d      }	|j                  d      }
t        |t              r6|j                  d      |k7  s"t        |	      t        ust        |
      t        urt-        dF|      S |	}t        |
      }|dGk(  rzt/        | |       |j                  dH      t0        k7  rt        dI      |dJk  s|j                  dK      dLk7  rt-        dF|      S t        dMdFt0        t0        df|t'        dN|      d<dO      S |dPk(  rt        dQdFt0        t0        df|dR      S |dSv r/|dTk(  rt        dUdddd dV      S t        dWd4d4dd dXt3               dY      S t        dZ      |j                  d      d[k7  s|j                  d      d\k7  rt        d]      | j                  d^i       }g }t        |t              rY|j5                         D cg c]@  }t        |t              r.|j                  d_      t6        k(  r|j                  d`      dak(  r|B }}|r&|rt        dbd4d4dd dcdd      S t        ded4d4dd dfdg      S |st        dh      | j                  di      }t        |t              st        djdt        t        dfd dkdl      S |j                  dm      t        dgk7  rt        dn      |j                  do      dpk7  rFt        dqdt        t        dft        |j                  d            dr|j                  do       ds      S |j                  dt      s4t        dudt        t        dft        |j                  d            dvdw      S | j                  dxi       }g }t        |t              ro|j9                         D cg c]T  \  }}t        |t              r?|j                  d_      t6        k(  r'|j                  dy      |j                  dy      k(  r||fV }}}| j                  dzg       } t        | t:              st        d{      | D !cg c]O  }!t        |!t              r=|!j                  d_      t6        k(  r%|!j                  dy      |j                  dy      k(  r|!Q }"}!|s|"rt        d|      t        d}dddd d~d      S |D #cg c]  }#|#d   j                  d`      dvr|# }$}#t        |$      dk7  rt        d      |$d
   \  }%}&|"D !ch c]3  }!t        |!j                  d      t              s#|!j                  d      5 }'}!| j                  dg       }(t        |(t:              st        d      |(D #cg c]s  }#t        |#t              ra|#j                  d      |%k(  s7|#j                  d      |%|&j                  d      hv s|#j                  d      |'v r|#j                  d      dk(  r|#u })}#t        |)      dk7  rt        d      |)d
   }*|*j                  d      }+|+t0        t0        ddk7  rt        d      t        |&j                  d`            },|,dv r8t        ddFt0        t0        dft        |*j                  d            d|% dd      S |,dk(  r8t        ddFt0        t0        dft        |*j                  d            d|% dd      S t        d      c c}w c c}}w c c}!w c c}#w c c}!w c c}#w )Nr   r   r   enabledr   r   zonboarding workflow unavailabler   r  r   zcollection authority drift"WAIT_MATCHING_CUSTOMER_PUBLICATIONr  r  r  r  r   rq   r      z*normalized schedule rewind authority driftREADY_CUSTOMER_RESUBMITr   z"submit_answer:schedule_constraintsr\  zNreply to the committed normalized rewind prompt with the exact unchanged valueREADY_CUSTOMER_ONBOARDINGzsubmit_answer:zanswer onboarding question z'/22 by replying to the committed promptr  r  z0workflow state alone never authorizes a callbackWAIT_RECONCILIATION_AUTHORITYzreconciliation:autor.  z>resolved authority precedes its matching committed publicationz$committed publication identity driftr(  r-  r   r  z,clarification field is not publication-boundREADY_CUSTOMER_CLARIFICATIONzsubmit_clarification:z5reply only to the committed field-bound clarificationz8resolved authority still has a clarification publication      r$   WAIT_DEPLOYoperatorzdeploy-final-candidatezWdeploy 4e9962be; startup must commit changed summary generation 25 before any UI actionWAIT_CANDIDATE_PUBLICATIONz1candidate-bound summary body is not yet committedr  r  r  rs   u<   press latest 수정 once; generation 24/message 207 is staleSTOP_CUSTOMER_SUMMARY_QUALITYzdo-not-attest   WAIT_CANONICAL_RECONCILIATIONzBnormalized answers are not yet baseline-valid in a new publicationREADY_CUSTOMER_ATTESTattestz6press the matching committed attestation button once; r   owner_reviewowner_idr      ru  @4903900d9c98c474006e512d14207439262ce405b696f4c6765dd65e1927cbd9READY_OWNER_REVIEWowner_okz8press Approve once; stale customer callbacks are retiredsafety_holdSTOP_SAFETY_HOLDzclinical-review-required>   ready
finalizingr  WAIT_AUTOMATIC_READINESSzautomatic-finalization!READY_OPERATOR_ACTIVATION_CUTOVERz!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   rl   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-inro   zcheckin route driftr   rp  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 unknownr  r   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   rv  r]   rk   r  r  r   r6   r%  rj   r  r   r8  rx  rS   rR  r   r  r  r  r  r   r   r   r   r   rw   )-r   r   r   r   r  r   r  committed_collectionr  r   rq   	committedr  r'  r.  r)  r*  genmidr(  r   
body_boundr  quality_detailr   r   r   wr   matchedr   r   r   grelevant_generationsr   r   diddrgeneration_tokenscards_valuer   carddestrl   s-                                                rd   classifyr  "  s   a	+A	*A	
z	Ba:a#666155#$GuuW~.."d# !BCCBFF7O$L VVH%FF|3&a6.GCK.G$%ABB /H$%ABB#8#; #+8"&  +..y9G-11,?J-11,?Jw-;;w'<7
#3.
#3.8"&  Vq(?*;B*?()UVV-sO
O8d	 	 +3J  014VaZL@gh  *!,	** 8"&M   	*Ggt,,,04I 3")  FOBG^^]G$(>>;;/0NB8"&[  #|4J"|4JJs*d:.>c.I$%KLLCj/C 01Nnd333g&,6&}5g>;;45>!<  &*M  2sO+E73R  %/8"&U  .b'='RJ2I"c)$78OK!%""&0x  0"&N  *9)A&J"9-@!A_!T!1" !3 3/V	 	 3"#)  Rx5g>3")_  *EG]G*&J 3"#)  '33'H !
 
 *!W5	)T*1'5AA--	*]]<0
]]<0
7D){{7#u,Js*Js*1'5AA*oN"#Ar*uuZ E)$%CDDb;;}-UV 6guEE$S)J	 	 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n'An,An2n7$n<>n<A8oc                    t        j                  t        j                  | dd      j	                               j                         S )NTr  r  r  )r   r   r   r  r  r   )r   s    rd   
event_hashr    s3    >>

1<CCEikrc   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  @0000000000000000000000000000000000000000000000000000000000000000r  event_sha256c              3      K   | ]  }d   yw)r   Nrb   )r  r  s     rd   r  zappend_event.<locals>.<genexpr>  s     /;a;s   r   )schemasequenceprevious_event_sha256  r  r  rc  )parentmkdirchmodr   r   r   r   r   SCHEMAsumopenr  r   O_WRONLYO_CREATO_APPEND	O_CLOEXECwriter  r  fsyncclose)r  eventpreviousrq  rowfds         rd   append_eventr%    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HHRLrc   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	  r  r  r  r  rc  )r  r  r  r   r  r  r  O_EXCLr  r   r  r  r  r   )r  r   r$  s      rd   securer(    s    KKdT2KKe	r{{RZZ/"));U	CBHHR$**Q$:FMUUWXHHRLHHRLrc   c                     t         t        t        t        t        t
        t        t        t        t        t        t        t        t        dS )N)	successorcorewheelplan	golden_v6recovery_v6consent_receiptprofile_wheelactivation_checklistchecklist_validation_receiptreadiness_receiptreadiness_digestowner_review_receiptauthority_digest)r	   r   r   r   r   r   r   rG   rB   rE   rI   rK   rM   rO   rb   rc   rd   r   r     s6    "& 0(A5, 4, rc   c                     t         j                         D ](  \  } }t        t        | z        |k7  st	        d|         y )Nzinstalled runtime drift: )r?   r   r   SITEr]   )r   r   s     rd   runtime_checkr:    s9    1tax=A #<QC!@AA  rc   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_init1r   r  
O_NONBLOCKr]   r  )libcr$  s     rd   initfdrC    sK    ;;tt,D			BLL2==8	9B	Av233r7Nrc   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 r   )r  r   rC  r$  watches)ry   r   s     rd   __init__zWatcher.__init__#  s    LLN	((*rc   c                    t        j                  | j                        D ]<  \  }}}|D cg c]  }|t        vs| c}|d d  | j	                  t        |             > y c c}w r   )r   walkr   SKIPr   r   )ry   r   dirsr  r   s        rd   add_treezWatcher.add_tree(  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: )r   is_dirr>  r?  inotify_add_watchr$  r   fsencodeMASKr]   rG  r  )ry   r   rB  r  s       rd   r   zWatcher.add-  sq    <<>{{440""477BKKNDAq5 >!!566 SVrc   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registerr$  
EVENT_READselectrg   r   readEVsizer   unpack_fromsplitr   OVERr]   IGNOREDrG  r   r   rO  r   r   )ry   secondsselr  rZ  offr  maskr  nnamechilds               rd   waitzWatcher.wait6  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 r   )r   r   r$  rx   s    rd   r   zWatcher.closeN  s    
rc   N)r   r   r{   None)r   r   r{   rk  )ra  floatr{   rk  )r_   r`   ra   rH  rM  r   rh  r   rb   rc   rd   rE  rE  "  s    +

!0rc   rE  c                    t         d|j                  dk(  rdndt               |j                  dk(  rdn|j                  dk(  rdnd	|j                         t	        |       t        |       d
ddddS )NREADY_CONTINUOUS_LIFECYCLEr  READY_FOR_DEPLOYARMED_POST_DEPLOYr  PASS_OWNER_BASELINEr  PASS_SHIPPED_CHECKIN_CLINOT_APPLICABLEz recursive-inotify-before-actions  `T  z=no raw updates, tokens, customer answers, or provider content)r  rl   deployment_readinessr   baseline_validationinitial_handoffcandidate_summary_revisionauthority_sha256event_subscriptionper_stage_timeout_maxtotal_timeout_maxprivacy)r  rl   r   rz   r  r  )r   prompts     rd   	ready_docr  R  s~    . }}- $J }} 44 " ==$;; +% "::<&@&C&qM@!%"R1 rc   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)r/  handoffrz  Tr  )flushr   z"bounded lifecycle deadline expired
TRANSITION)r/  fromtor  rz  r  "PASS_CONTINUOUS_TO_CLEANUP_HANDOFF)r  rl   r   final_handoff)r:  rE  profilerM  r   r   r  r  r(  r  moder   r%  eventsrz   r  printr   r  time	monotonicrl   minstage_timeouttotal_timeoutrg   rh  r	  r  r   )r  r  r   r   r   startstagelast	remainingre  qs              rd   runr  o  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  r  )r  observez	--profile)r  r  z--readyr  z--eventsz--stage-timeoutrt  )r  r   z--total-timeoutru  r   ztimeout bound invalidr  zFAIL: )file      )argparseArgumentParseradd_subparsers
add_parseradd_argumentr   rl  
parse_argsr  r  r  r]   r  r   r  r  rg   r  stderrr  r  KeyError)r   spr  r   r  r   s         rd   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__)r   r   r{   rk   r   )r   r   r   objectr{   r  )r   r  r{   list[dict[str, object]])rr   rk   r   r  r{   rk   )r{   rk   )r   r  r   rk   r   rk   r{   dict[str, object] | None)r   r   r{   r|   )r   r|   r{   rk  )r  r|   r   r|   r{   rk  )r   r  r{   rk   )r   )r   r|   rm   rk   r{   r  )r   r|   r{   zBtuple[dict[str, object], str, list[dict[str, object]], int] | None)r'  r|   r{   tuple[bool, str])r'  r|   r{   rk   )r   r|   r'  r|   r*  r  r{   rp   )
r   r|   r'  r|   r*  r  r  r|   r{   rv  )r'  r|   r{   ztuple[bool, str | None])r'  r|   r{   rv  )r   r|   r{   rv  )
r   r|   r'  r|   r*  r  r  r|   r{   r  )r   r|   r{   r  )rm   rk   r   rk   r{   rj   )r   r|   r   r|   r{   rk   )r   r|   r{   rj   )r   r|   r{   rk   )r  r   r!  r|   r{   rk  )r  r   r   r|   r{   rk  )r{   zdict[str, str]rj  )r{   r  )r   r|   r  rj   r{   r|   )r  zargparse.Namespacer{   r|   )c__doc__
__future__r   r  r   r>  r   r  r   r   rU  r   structr  r  dataclassesr   datetimer   pathlibr   typingr   r	   r}   r   r   r   r   r   r   r   r   r   r   r   r6   r?   r9  r  r@   rB   rC   rE   rG   rI   rK   rM   rO   rP   rR   rS   rT   Structr[  rR  r_  r`  rK  RuntimeErrorr]   rg   rj   r   r   r   r   r   r   r   r   r	  r  r%  r8  rR  re  rs  rx  r  r  r  r  r  r  r  r  r  r%  r(  r   r:  rC  rE  r  r  r  r_   
SystemExitrb   rc   rd   <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 AC @B CE OQ	 	 Q 
*  r  s	5  s\ % \   "{  | E  |#e 5 eYu Y"d % d\ % \` e `\ % \!E U  0-? E ?M  
M E  V]]6
	\ 		~ 	 $
 
 
.6:$-
	)	 )),)58))IX6Dr:>/ '1:: #::z'9'9G'9T*GZ5p%%*;%LO%%P


 
 	

 

B
	%@%@%@ %@ 	%@
 %@P)X	:w2t,&B- -`:9x6 z
TV
 rc   