Ryanhub - file viewer
filename: chat/__pycache__/parser.cpython-314.pyc
branch: main
back to repo
+
F�i0��8�^RItRtRtRtRtRtRtRtR#)	�Nc��\V\4'g	RRRRRV/#\P!V4p\T\
4'g	RRRRRT/#R	R
0p\
TP44pYC8wdRRRRTRT2RT/#TPR	4p\T\4'g	RRRR
RT/#TPR
4p\T\
4'g	RRRRRT/#R	TR
T/# \dpRRRRT2RT/uRp?#Rp?ii;i)a�
STRICT parser for router output.

Router contract:
- Output MUST be exactly ONE JSON object.
- Shape MUST be:
    {"tool": "<string>", "arguments": {<object>}}

Rules enforced here:
- No recovery heuristics.
- No markdown stripping.
- No regex scanning.
- Fail fast on invalid output.

Returns:
    {"tool": str, "arguments": dict}
    OR
    {"error": "parse_error", "message": str, "raw": ...}
�error�parse_error�messagezrouter output is not text�raw�invalid JSON: N�parsed JSON is not an object�tool�	argumentsz router must return exactly keys �, got ztool must be a stringzarguments must be an object�	�
isinstance�str�json�loads�	Exception�dict�set�keys�get)�text�data�e�
expected_keys�actual_keysr
rs&      �	parser.py�parse_router_outputrsg��,�d�C� � ��]��2��4�
�	
�
��z�z�$����d�D�!�!��]��5��4�
�	
��[�)�M��d�i�i�k�"�K��#��]��9�-���{�m�\��4�
�	
��8�8�F��D��d�C� � ��]��.��4�
�	
�����%�I��i��&�&��]��4��4�
�	
�	���Y����Y�
��]����s�+��4�
�	
��
�s�C)�)D	�4
D�>D	�D	c�\�\V\4'g	RRRRRV/#\P!V4p\T\
4'g	RRRRRT/#0Rmp\
TP44pYC8wdRRRRTR
T2RT/#TPR	4pTPR
4pTPR4pTR9d	RRRRRT/#\T\4'g	RRRRRT/#\T\4'g	RRRRRT/#R	TR
TRT/# \dpRRRRT2RT/uRp?#Rp?ii;i)z�
STRICT parser for planner output.

Planner contract:
- Output MUST be exactly ONE JSON object.
- Shape MUST be:
    {"status":"continue|done","instruction":"<string>","response":"<string>"}
rrrzplanner output is not textrrNr	�status�instruction�responsez!planner must return exactly keys rz#status must be 'continue' or 'done'zinstruction must be a stringzresponse must be a string>rr!r )�continue�doner
)rrrrrrr r!s&       r�parse_planner_outputr$Vs����d�C� � ��]��3��4�
�	
�
��z�z�$����d�D�!�!��]��5��4�
�	
�:�M��d�i�i�k�"�K��#��]��:�=�/��P[�}�]��4�
�	
��X�X�h�
�F��(�(�=�)�K��x�x�
�#�H�
�)�)��]��<��4�
�	
�
�k�3�'�'��]��5��4�
�	
�
�h��$�$��]��2��4�
�	
�	�&��{��H����]�
��]����s�+��4�
�	
��
�s�D�D+�
D&� D+�&D+c�:�\T;'gR4P4pVPR4'gV#VP4p\	V4^8�d?VR,P4R8Xd#RPV^R4P4#V#)�z```�
���)r�strip�
startswith�
splitlines�len�join)r�s�liness&  r�_strip_fenced_jsonr0�sy���D�J�J�B�����A��<�<������
�L�L�N�E�
�5�z�Q��5��9�?�?�,��5��y�y��q���%�+�+�-�-��H�c���\T;'gR4P4p\P!4P	V4wr#\P
!VRR7# \dR#i;i)r&)�
separatorsN)�,�:)rr)r�JSONDecoder�
raw_decode�dumpsr)rr.�obj�_s&   r�_recover_first_json_objectr;�s]���D�J�J�B�����A���!�!�#�.�.�q�1����z�z�#�*�5�5������s�=A#�#A2�1A2c���V!V4p\V\4'dVPR4'gV#\V4pT\	T;'gR48wd8V!V4p\V\4'dVPR4'gV#\V4pV'd8V!V4p\V\4'dVPR4'gV#V!V4#)rr&)rrrr0rr;)�raw_text�
strict_parser�parsed�stripped�	recovereds&&   r�parse_with_recoveryrB�s���
�8�
$�F��&�$����
�
�7�(;�(;��
�!�(�+�H��3�x�~�~�2�&�&��x�(���f�d�#�#�F�J�J�w�,?�,?��M�*�8�4�I���y�)���f�d�#�#�F�J�J�w�,?�,?��M���"�"r1c�"�\V\4#�N)rBr�r=s&r�parse_router_replyrF�s���x�)<�=�=r1c�"�\V\4#rD)rBr$rEs&r�parse_planner_replyrH�s���x�)=�>�>r1)rrr$r0r;rBrFrH�r1r�<module>rJs/���O�dD�N
��#�(>�?r1