
    9jL                        U d Z ddlmZ ddlmZmZ dZded<   dZded<   d	Z	d
ed<   dZ
d
ed<    G d de      ZddZg dZy)uU  anu_v3.goal_execution_contract — goal execution contract schema + parser (task-2553+7).

회장 GOAL_DRIVEN_ACTIVATION_CONTROLLER_V0 §명시 1:1 박제:
  chair 가 goal_execution_contract 만 제공하면 controller 가 deriver→gate→activation
  루프를 자동 구성 + 기계 결정한다. 회장 1~13 단계 수동 절차 불필요.

본 모듈 한정 책임 (순수, 부작용 0):
  - GOAL_CONTRACT_SCHEMA / GOAL_RESULT_SCHEMA 상수 선언
  - GoalContractError — fail-closed parse 실패 예외
  - parse_goal_contract(obj) -> dict — schema 검증, 실패 시 GoalContractError
    )annotations)AnyFinalz!anu_v3.goal_execution_contract.v1z
Final[str]GOAL_CONTRACT_SCHEMAzanu_v3.goal_execution_result.v1GOAL_RESULT_SCHEMA)schemagoal_idtarget_task_idgoalsuccess_conditionzFinal[tuple[str, ...]]_REQUIRED_STR_KEYS)allowed_actionsforbidden_actionshold_conditions_REQUIRED_LIST_KEYSc                  $     e Zd ZdZd fdZ xZS )GoalContractErroru   goal contract parse / schema 검증 실패. fail-closed: 절대 activation 진입 불가.

    ``self.code`` 에 실패 사유 코드 기록.
    c                L    t         |   d| d|        || _        || _        y )N[z] )super__init__codemessage)selfr   r   	__class__s      !anu_v3/goal_execution_contract.pyr   zGoalContractError.__init__+   s+    1TF"WI./	    )r   strr   r   returnNone)__name__
__module____qualname____doc__r   __classcell__)r   s   @r   r   r   %   s    
 r   r   c                   t        | t              s	 t        |       } | j                  d      t        k7  r%t	        dd| j                  d      dt              t        D ]8  }| j                  |      }t        |t              r|r't	        dd	| d
|d       t        D ]  }| j                  |      }t        |t        t        f      s&t	        dd| dt        |      j                   d      t        |      D ]>  \  }}t        |t              rt	        dd| d| dt        |      j                   d        t        |       }t        D ]  }t        ||         ||<    |S # t        t        f$ r}t	        dd|       |d}~ww xY w)uN  goal execution contract JSON 객체 → 검증된 dict.

    실패 시 GoalContractError 발생 (fail-closed). 부작용 0.

    검증 항목:
      - obj 가 dict/Mapping
      - schema 값 == GOAL_CONTRACT_SCHEMA
      - 필수 str key 모두 비어있지 않은 str
      - 필수 list key 모두 list[str] (빈 list 허용)
    schema_validation_failu'   goal contract 가 dict/Mapping 아님: Nr   schema_mismatchu   schema 불일치: z != required_str_missingu   필수 str key 'u   ' 누락 또는 공백 (got )required_list_missingu   필수 list key 'u!   ' 누락 또는 list 아님 (got list_item_type_error'r   u   ]' 항목이 str 아님 (got )
isinstancedict	TypeError
ValueErrorr   getr   r   r   r   listtupletyper!   	enumerate)objekeyvaliitemresults          r   parse_goal_contractr>   1   s    c4 	s)C wwx00 !2 5T:N9QR
 	

 " ggcl#s#3#&"3%'CC7!L  # ggcl#e}-#'#C5(I$s)J\J\I]]^_ 
 !~ 	GAtdC('*uAaS =d4j>Q>Q=RRST 	  #YF" (6#;'s( MQ :& 	#(9!= 	s   E( (F7FF)r   r   r   r>   N)r7   r   r   zdict[str, Any])r$   
__future__r   typingr   r   r   __annotations__r   r   r   r1   r   r>   __all__ r   r   <module>rD      sa   
 # #F j F!B J B. * / + 	
 	7tr   