
    j#              	         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m	Z	  e	e
      j                         j                  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edz  Zedz  Zede dz  Zede dz  Zede dz  Zedz  Z edz  Z!edz  Z"edz  Z#edz  Z$eeeeee e!e"e$f	Z%d$dZ&d%dZ'd&dZ(d'd Z)d(d!Z*d)d"Z+e,d#k(  r e- e+             y)*zKIndependent no-network deployed-state and timeout-policy verifier for v6.4.    )annotationsN)Pathz)/home/cube/.hermes/profiles/dualcoachtest%task26_live_2e_r2_20260815_8527916639cb_PCczfFXoI4GjvCxLBs1oRA@4a6c7ee54cf9526a30de8bb576c1d71b411938beba33a04914738f6e1b6ed1cb@3374be765c7e53fc431b0c6e48cacbacb09618f77f13ef87016cb0ad2575d060@f75856d6d986b64d3d2f083aec2f865c7aea19f5950b84ff06e519f2f6505af6@9d22e89a0b1a14d4eb7f1c2005fc01860bec5f3b4eda6e01bb1390542a90b875@fe65b634396aaae2818719d1b34fdaad148b2547290d3a66b3af7803bf93dfca@0119beeb46a15ab25a78550da4c432b4cc52e0dc816822d2688dc9009df89d90@2833428cfab41826a5cb54f90bb51c56f40b2468850d02687f7341c791b7f803@81c1e581cb84aac6f44044747e0e8e77a2d7498c71d626f1f9b5ec2f9d09a261@00d44de03e8dde668da8058091751291b13457c8bd086917dfe85e42b3813df8	629525117zcustomers/registry.jsonz:data/onboarding/telegram-customer-bootstrap-v1/ledger.jsonzdata/customers/z//nutrition-onboarding/readiness-receipt-v1.jsonz /nutrition-onboarding/ready.jsonz#/nutrition-plans/feature-epoch.jsonzgateway_state.jsonzCdata/onboarding/telegram-publication-outbox-v1/owner-callbacks.jsonz7data/telegram-ingress-receipts-v1-d0aacf0f4bdbb7c0.jsonz(data/owner-actions/draft-deliveries.jsonz.data/owner-actions/customer-service-state.jsonc                d    t        j                  | j                               j                         S )N)hashlibsha256
read_bytes	hexdigest)paths    ].omo/evidence/task26/task26-continuous-lifecycle-observer-v6.4-4a6c7ee5/independent_verify.pydigestr   2   s!    >>$//+,6688    c                    | D cg c]*  }t        |t              s|j                  |      |k(  s)|, }}t        |      dk7  rt	        d|       |d   S c c}w )N   znon-unique authority: r   )
isinstancedictgetlenRuntimeError)rowsfieldvaluerowmatchess        r   oner&   6   s^    "Xdsjd&;RW@WsdGX
7|q3E7;<<1: Ys   AAAc            	     p   t         dz  } t        j                  | j                               }t        j                  t         dz  j                               }|j	                  d      }t        |t              st        d      |D ]\  }t        |t              r=t        t         t        |j	                  d            z        |j	                  d      k7  sPt        d|        t        |       }|j	                  d      |k7  s|j	                  d	      t        |      k7  rt        d
      t        |      |fS )Nzhash-inventory.jsonz	SEAL.jsonfileszinventory schema driftr   r   zsealed artifact drift: inventory_sha256sealed_file_countzseal binding drift)ROOTjsonloads	read_textr   r   listr    r   r   strr   )inventory_path	inventorysealr(   r$   inventory_shas         r   verify_inventoryr5   =   s   11N

>3356I::tk)4467DMM'"EeT"344#t$tc#''&/6J/J(KswwW_O`(`!8>??  >*Mxx"#}4AT8UY\]bYc8c/00u:}$$r   c                    t        j                  t        j                               } t	        | j                  dg       dt              }t        j                  t        j                               }t	        |j                  dg       dt              }t        j                  t        j                               }t        j                  t        j                               }t        j                  t        j                               }t        j                  t        j                               }d}|j                  d      }	|j                  d      dus|j                  d	      d
k7  s|j                  d      dk7  so|j                  d      dus[|j                  d      dusG|j                  d      dus3|j                  d      dust        j                         s
||j                  di       v s||j                  di       v s||j                  di       v s|j                  d      dk7  s|j                  di       j                  di       j                  d	      dk7  s|	dk7  st        d      j!                         rht#        t$              t&        k7  sRt$        j)                         j*                  dz  dk7  s.t        j                  t$        j                               ddi d k7  rt-        d!      t/        j0                  g d"ddd#      j2                  j5                         }
t7        |
      h d$k7  rt-        d%      d&dddd'ddd(d)d*d+
S ),N	customerscustomer_keysessions
session_id	629525116pidenabledTstateACTIVE
generation   activation_enabledFdelivery_enabled
activationdeliveryreceiptsterminal_receiptsterminal_failuresgateway_staterunning	platformstelegram	connectedi z/proc/576011i    @fbb526e57506141f686cd56dd75c6375c78b974452b985c0737f25230060994dzcustomer-service-state-v1)payload_digestschemastatesz"deployed lifecycle invariant drift)
	systemctlz--usershowz$hermes-gateway-dualcoachtest.service-pActiveStaterU   SubStaterU   MainPIDcheckcapture_outputtext>   MainPID=576011SubState=runningActiveState=activezgateway service identity driftzactive/runningzgeneration6/ACTIVEr   zabsent/not-replayedi}ʅ%)
servicer<   rL   customer_enabled	bootstrapadaptive_activationadaptive_deliverydelivery_countrecovered_update_629525116polling_offset_lower_bound)r,   r-   REGISTRYr.   r&   r   KEY	BOOTSTRAPSESSION	READINESSFEATURE_EPOCHGATEWAYINGRESS
DELIVERIESexistsr   is_dirr   SERVICE_STATESERVICE_STATE_SHA256statst_moder    
subprocessrunstdout
splitlinesset)registrycustomerrb   session	readinessfeaturegatewayingresstargetr<   r`   s              r   verify_currentr   M   s   zz(,,./H8<<R0.#FH

9..01I)--
B/wGG

9..01Ijj0023Gjj**,-Gjj**,-GF
++e
CYt+;;w8+;;|$)==-.e;==+,E9;;|$E1;;z"%/W[[R00W[[!4b99W[[!4b99;;'94;;{B'++J;??HKW&=N#**,- $88''%/58::m--/0`15
 
 ?@@nn 	H	
 fZZ\  7|SS;<<# )$"&;&/ r   c                   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 # t        j                  |       w xY w)NrN   T),:)	sort_keys
separators
)osopenO_WRONLYO_CREATO_EXCL	O_CLOEXECwriter,   dumpsencodefsyncclose)r   documentfds      r   exclusive_jsonr      s    	r{{RZZ/"));bllJE	RB
djjTjQTXX``bc

s   AC Cc                 f   t               \  } }t        D ci c]  }t        |      t        |       }}t	               }t
        dz  }t        j                  t        j                  t        t
        dz        ddt        t              dt        |      gddd      }t        j                  |j                        }t        D ci c]  }t        |      t        |       }}|j                  di       }	|j                  d	i       }
||k7  s|
j                  d
      t        k7  s|
j                  d      t         k7  s|
j                  d      t"        k7  s{|
j                  d      t$        k7  sb|
j                  d      t&        k7  sI|
j                  d      t(        k7  s0|
j                  d      t*        k7  s|
j                  d      t,        k7  s|
j                  d      dk7  s|
j                  d      t.        k7  s|
j                  d      t0        k7  s|j                  d      dk7  s|j                  d      dk7  s|	j                  d      dk7  s|	j                  d      dk7  sk|	j                  d      dk7  sW|	j                  d      dd gk7  sA|	j                  d!      d"k7  s-|	j                  d#      d$k7  s|j                  d%      d&d'd(d)d*k7  rt3        d+      d,d-| |d|t        |      ||	d.d.d.d.d.d/}t5        t
        d0z  |       t7        t        j8                  |d1             y.c c}w c c}w )2Nzindependent-arm-only.jsonzobserver_v64.pyzarm-onlyz	--profilez--readyTrY   initial_handoffbindings	successorcoreprofile_wheelwheeldeployment_receiptcandidate_inventorypredecessor_sealservice_stateservice_pid576011recovery_sealrg   per_stage_timeout_maxi`T  total_timeout_maxstatusREADY_CUSTOMER_START_CHECKINroler}   actor
8527916639route0actionu   send:오늘 체크인detailu   after arming, send one fresh exact production alias 오늘 체크인, then press inline 오늘 체크인 시작; the pre-arm 2026-08-17 12:10 message produced no state/card and is not replayed or acceptedfresh_alias_requirementu   오늘 체크인u   오늘 체크인 시작z2026-08-17 12:10z'no state/card; not replayed or accepted)required_after_armingexpected_inlinepre_arm_messagepre_arm_resultz(current fresh Korean start handoff driftz)task26-observer-v6.4-independent-proof-v1$PASS_INDEPENDENT_NO_NETWORK_ARM_ONLYr   )rQ   r   r*   r)   authority_unchangedauthority_sha256arm_only_sha256currenthandoffnetwork_callsprofile_mutationsservice_actionscustomer_actions
ui_actionszindependent-proof.json)r   )r5   AUTHORITIESr0   r   r   r+   rw   rx   sys
executablePROFILEr,   r-   ry   r   	SUCCESSORCOREPROFILE_WHEELHERMES_WHEELDEPLOYMENT_RECEIPTCANDIDATE_INVENTORYPREDECESSOR_SEALrt   RECOVERY_SEALPOLLING_OFFSET_LOWER_BOUNDr    r   printr   )countr4   r   beforer   armresultr   afterr   r   proofs               r   mainr      s   +-E=2=>+$c$i%+F>G
,
,C^^	T$556
KQTU\Q]_hjmnqjrs	F zz&--(H1<=SYt$E=ll,b1G||J+H%<<$	1<<4'<<(M9<< L0<<,-1CC<<-.2EE<<*+/??<<(,@@<<&(2<<(M9<<459SS<</0E9<<+,5;;x $BB;;v*,;;w</;;wL##66;;x $;;;;x .

 <<12%781G	7
 
 EFF=8")#!!#;E  422E:	$**Ud
+,A ? >s   L)L.__main__)r   r   returnr0   )r!   zlist[object]r"   r0   r#   r0   r   dict[str, object])r   ztuple[int, str])r   r   )r   r   r   objectr   None)r   int).__doc__
__future__r   r   r,   r   rw   r   pathlibr   __file__resolveparentr+   r   ri   rk   r   r   r   r   r   r   r   rt   r   r   rh   rj   rl   READY_AUTHORITYrm   rn   OWNER_CALLBACKSro   rp   rs   r   r   r&   r5   r   r   r   __name__
SystemExit r   r   <module>r      si   Q "   	  
 H~&&
:
;-
%N	IRQW X U Y R( ..RR	u,[\\	ocU2RSSOC50STT
(
(aa
M
MAA
JJ
9% 7tBJ z
TV
 r   