agent-first-data 0.24.0

A naming convention that lets AI agents understand your data without being told what it means, plus a CLI and library for reading and safely editing structured JSON, TOML, YAML, dotenv, and INI documents.
Documentation
+
�Zfj#���Rt^RIHt^RIt^RIt^RIHt^RIHt]!]	4P4P^,t]R,R,t
]R,R,R,t!R	R
]4tRRltR
RltRRltRRltRRltRRltRRltRRltRRlt]R8Xd]!]!44hR#)z@Validate the compact cross-language AFDATA CLI help-v1 contract.)�annotationsN)�Path)�Any�speczcli-help-v1.schema.json�fixtureszcli_help_v1.jsonc��]tRt^tRtRtR#)�HelpValidationErrorz*A deterministic CLI help-v1 shape failure.�N)�__name__�
__module__�__qualname__�__firstlineno__�__doc__�__static_attributes__r	��R/Users/roger/me/agentfirstkit/spores/agent-first-data/scripts/validate_cli_help.pyrrs��4rrc��V^8�dQhRR/#)��return�dict[str, Any]r	)�formats"r�__annotate__rs�����rc��\P!\PRR74p\	V\
4'g\
R4hV#)�utf-8��encodingzschema root must be an object)�json�loads�SCHEMA_PATH�	read_text�
isinstance�dictr)�values r�_schemar#s<���J�J�{�,�,�g�,�>�?�E��e�T�"�"�!�"A�B�B��Lrc�$�V^8�dQhRRRRRR/#)rr"r�path�strrrr	)rs"rrrs!����3��c��n�rc�N�\V\4'g\VR24hV#)z must be an object)r r!r�r"r%s&&r�_require_objectr)s'���e�T�"�"�!�T�F�*<�"=�>�>��Lrc
�,�V^8�dQhRRRRRRRRRR	/#)
rr"r�allowedzset[str]�requiredr%r&r�Noner	)rs"rrr"sC��Q�Q��Q��Q��	Q�
�Q�
�
Qrc���V\V4,
pV'd\VR\V424h\V4V,
pV'd\VR\V424hR#)z missing keys: z has unknown keys: N)�setr�sorted)r"r+r,r%�missing�unknowns&$$$  r�_require_exact_keysr3"sb����U��#�G��!�T�F�/�&��/�9J�"K�L�L��%�j�7�"�G��!�T�F�*=�f�W�o�=N�"O�P�P�rc�$�V^8�dQhRRRRRR/#)rr"rr%r&rr-r	)rs"rrr1s&��H�H�C�H�s�H�t�Hrc�^�\V\4'd	V'g\VR24hR#)z must be a non-empty stringN)r r&rr(s&&r�_require_nonempty_stringr61s)���e�S�!�!��!�T�F�*E�"F�G�G�*/rc�$�V^8�dQhRRRRRR/#)r�schemar�
definitionr&rztuple[set[str], set[str]]r	)rs"rrr6s"��<�<��<�S�<�=V�<rc�j�VR,V,p\VR,4\VR,43#)z$defs�
propertiesr,)r/)r8r9�shapes&& r�_schema_keysr=6s/���7�O�J�'�E��u�\�"�#�S��z�):�%;�;�;rc�(�V^8�dQhRRRRRRRR/#)	rr"rr%r&r8rrr-r	)rs"rrr;s(��$
�$
�c�$
��$
�n�$
��$
rc
�8�\W4p\VR4wrE\W4WQR7\VR,VR24RF"pWc9gK\W6,VRV24K$	RV9dD\	VR,4^8wgVR,PR4'g\
VR24hR	V9d,\VR	,\4'g\
VR
24hRF(pWc9gKW6,RJgK\
VRVR24h	RF�pWc9dKW6,p\V\4'd	V'g\
VRVR24h\V4F@wr�\V	\4'dVR
8XgK$V	'dK.\
VRVRVR24h	K�	RV9dR
V9d\
VR24hR	V9dRV9d\
VR24hVR,PR4'gRV9gR
V9d\
VR24hR#R#)�argument�r+r,r%�name�.name�shortr"�.�-z.short must be one short flag�defaultz.default must be a stringTz must be true when present�values�defaultsz must be a non-empty array�[z] must be a stringz% cannot contain both value and valuesz) cannot contain both default and defaultsz6 positional name already carries its value placeholderN)rD�helpr")r,�global�
repeatable)rHrI)r)r=r3r6�len�
startswithrr r&�list�	enumerate)
r"r%r8r@r+r,�keyrH�index�items
&&&       r�_validate_argumentrU;s���u�+�H�$�V�Z�8��G���H�P��X�f�-�$��u�~�>�)���?�$�X�]�t�f�A�c�U�O�D�*��(���H�W���!�#�8�G�+<�+G�+G��+L�+L�!�T�F�*G�"H�I�I��H��Z���0C�S�%I�%I�!�T�F�*C�"D�E�E�3���?�x�}�D�8�%���a��u�4N�&O�P�P�4�&���������&�$�'�'�v�%���a��u�4N�&O�P�P�$�V�,�K�E��d�C�(�(�S�H�_�T�T�)�T�F�!�C�5��%��@R�*S�T�T�-�
&��(��x�8�3�!�T�F�*O�"P�Q�Q��H���x�!7�!�T�F�*S�"T�U�U��F��&�&�s�+�+��8��x�8�3�!��f�J�K�
�	
� 4�,rc
�,�V^8�dQhRRRRRRRRR	R
/#)rr"rr%r&r8r�	help_root�boolrr-r	)rs"rrrbs:��5
�5
��5
�

�5
�
�5
�
�5
�
�
5
rc�>�\W4pV'dRMRp\W%4wrg\WFWqR7\VR,VR24V'd�VR,R9d\	VR24h\VR,VR24VPR	.4p\
V\4'dR	V9dV'g\	VR
24h\V4Fwr�\W�RV	R24K	\V4\\V448wd\	VR
24hRF"pW�9gK\WK,VRV24K$	VPR.4p\
V\4'dRV9dV'g\	VR24h\V4Fwr�\W�RV	R2V4K	VPR.4p\
V\4'dRV9dV'g\	VR24h\V4Fwr�\VVRV	R2VRR7K	R#)rK�commandrArBrC�scopez%.scope must be one_level or recursive�command_pathz
.command_path�inherited_arguments_fromz3.inherited_arguments_from must be a non-empty arrayz.inherited_arguments_from[�]z3.inherited_arguments_from must contain unique pathsrE�	argumentsz$.arguments must be a non-empty arrayz.arguments[�subcommandsz&.subcommands must be a non-empty arrayz
.subcommands[F�rWN>�	one_level�	recursive)�about�usage)
r)r=r3r6r�getr rPrQrNr/rU�_validate_command)r"r%r8rWrZr9r+r,�	inheritedrS�sourcerRr_r@r`�
subcommands&&&$            rrgrgbs���e�*�G�$��)�J�$�V�8��G���8�O��W�V�_���e�n�=���7��#=�=�%���.S�&T�U�U� ���!8�T�F�-�:P�Q��K�K� :�B�?�	��)�T�*�*�&�'�1�)�%��&�K�L��
�'�y�1�M�E�$��&� :�5�'��C�
�2��y�>�S��Y��0�0�%��&�K�L��
�"���>�$�W�\�d�V�1�S�E�?�C�"����K��,�I��i��&�&�;�'�+A�)�!�T�F�*N�"O�P�P�$�Y�/����8�v�[���q�%A�6�J�0��+�+�m�R�0�K��k�4�(�(��� ��!�T�F�*P�"Q�R�R�&�{�3������f�M�%���*���		
�4rc� �V^8�dQhRRRR/#)rr"rrr-r	)rs"rrr�s��O�O�s�O�t�Orc�Z�\4p\VR4p\V0Rm0RmRR7VR,R8wd\R4h\VR,R4\VR,R4p\VR	R
0R	R
0RR7VR	,R
8wd\R4h\	VR
,RVR
R7R#)z0Validate one protocol-wrapped CLI help-v1 event.�$�kind�result�tracerAz$.kind must be resultz$.tracez$.result�coderKz$.result.code must be helpz
$.result.helpTraN>rnrpro)r#r)r3rrg)r"r8�eventros&   r�validate_help_eventrs�s����Y�F��E�3�'�E��
�+�,�
�	�
�V�}�� �!�"9�:�:��E�'�N�I�.�
�U�8�_�j�
9�F����� ��&�!�
�	��f�~���!�">�?�?��f�V�n�o�v��Nrc��V^8�dQhRR/#)rr�intr	)rs"rrr�s��
�
�c�
rc��\P!\PRR74pVP	R.4pVP	R.4pV'd	V'g\R\PR7^#VFp\V4K	VF2p\VR,4\RTP	RR	424h	\R\T4R
\T4R24^# \dKji;i \\\3d*p\R
T2\PR7Rp?^#Rp?ii;i)rr�valid�invalidzAcli help validation failed: fixtures need valid and invalid cases)�filerrz%invalid fixture unexpectedly passed: rBz	<unnamed>zcli help validation failed: Nzcli help schema ok: z valid and z invalid fixtures)
rr�FIXTURE_PATHrrf�print�sys�stderrrsr�KeyError�	TypeErrorrN)rrwrxrr�case�errors      r�mainr��s���z�z�,�0�0�'�0�B�C�H��L�L��"�%�E��l�l�9�b�)�G���
�Q�X[�Xb�Xb�c��
��E���&���D�
�#�D��M�2�&�7������8U�7V�W��
��
�
�s�5�z�l�+�c�'�l�^�CT�U��
��'�
��
��

 ��9�5��
�,�U�G�4�3�:�:�F����s<�=D�C/�) D�/C>�:D�=C>�>D�E�D;�;E�__main__)r�
__future__rrr|�pathlibr�typingr�__file__�resolve�parents�ROOTrrz�
ValueErrorrr#r)r3r6r=rUrgrsr�r
�
SystemExitr	rr�<module>r�s���F�"��
����H�~����'�'��*���V�m�7�7���f�}�z�)�,>�>��5�*�5���Q�H�
<�
$
�N5
�pO�6
�:�z��
�T�V�
��r