Ë
    MÞëjv  ã                  ód  — d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	m
Z
mZ  G d„ dee«      Z G d„ d	ee«      Z G d
„ dee«      Z ed¬«       G d„ d«      «       Z ed¬«       G d„ d«      «       Z ed¬«       G d„ d«      «       Ze G d„ de
«      «       Z ed¬«       G d„ d«      «       Zg d¢Zy)ad  Stable contracts for the local mySecondBrain26 knowledge plane.

Document bytes, extracted text, and model-generated summaries are deliberately
different kinds of data.  These contracts keep provenance, trust and sensitivity
attached to each item so a future retriever cannot treat document content as an
instruction or silently send it to a remote model.
é    )Úannotations)Ú	dataclassÚfield)ÚEnum)ÚAnyÚProtocolÚruntime_checkablec                  ó    — e Zd ZdZdZdZdZdZy)ÚDocumentTrustzBHow the source entered the library; never an execution permission.Ú	untrustedÚexternalÚreviewedÚtrustedN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	UNTRUSTEDÚEXTERNALÚREVIEWEDÚTRUSTED© ó    úL/home/oem/CyberBrain26-unified/src/cyberbrain26/knowledge_plane/contracts.pyr   r      s   „ ÙLà€IØ€HØ€HØ�Gr   r   c                  ó    — e Zd ZdZdZdZdZdZy)ÚSensitivityzDConservative data-handling label for a document and its derivatives.ÚpublicÚpersonalÚ	sensitiveÚ
restrictedN)r   r   r   r   ÚPUBLICÚPERSONALÚ	SENSITIVEÚ
RESTRICTEDr   r   r   r   r      s   „ ÙNà€FØ€HØ€IØ�Jr   r   c                  ó$   — e Zd ZdZdZdZdZdZdZy)ÚDocumentStatusz<Lifecycle state before a document can be used for retrieval.Ú
registeredÚquarantinedÚ	extractedÚindexedÚfailedN)	r   r   r   r   Ú
REGISTEREDÚQUARANTINEDÚ	EXTRACTEDÚINDEXEDÚFAILEDr   r   r   r&   r&   "   s   „ ÙFà€JØ€KØ€IØ€GØ�Fr   r&   T)Úfrozenc                  ó”   — e Zd ZU dZded<   ded<   ej                  Zded<   ej                  Z
ded<   d	Zd
ed<    ee¬«      Zded<   y)ÚKnowledgeSourcezFOne explicitly approved origin from which documents may be registered.ÚstrÚ	source_idÚ
source_urir   Útrustr   ÚsensitivityFÚboolÚapproved©Údefault_factoryúdict[str, Any]ÚmetadataN)r   r   r   r   Ú__annotations__r   r   r7   r   r"   r8   r:   r   Údictr>   r   r   r   r3   r3   ,   sH   … áPàƒNØƒOØ(×1Ñ1€Eˆ=Ó1Ø*×3Ñ3€K�Ó3Ø€HˆdÓÙ$°TÔ:€HˆnÔ:r   r3   c                  óL   — e Zd ZU dZded<   ded<   ded<    ee¬«      Zd	ed
<   y)ÚDocumentRegistrationa+  Metadata needed to register one immutable document version.

    ``content`` is used only to calculate the local integrity digest.  This
    contract does not persist or transmit bytes; an origin-store adapter will
    be introduced separately and must have its own retention and backup policy.
    r3   ÚsourceÚbytesÚcontentr4   Ú
media_typer;   r=   r>   N)r   r   r   r   r?   r   r@   r>   r   r   r   rB   rB   8   s(   … ñð ÓØƒNØƒOÙ$°TÔ:€HˆnÔ:r   rB   c                  óª   — e Zd ZU dZded<   ded<   ded<   ded<   ded<   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Zded<   y)ÚKnowledgeDocumentzCPersisted metadata for an idempotently registered document version.r4   Údocument_idr5   r6   Úcontent_sha256rF   r   r7   r   r8   r&   Ústatusr=   r>   ÚfloatÚ
created_atÚ
updated_atg        Ú
valid_fromÚvalid_toÚ Úsuperseded_byN)r   r   r   r   r?   rO   rP   rR   r   r   r   rH   rH   G   sb   … áMàÓØƒNØƒOØÓØƒOØÓØÓØÓØÓØÓØÓà€J�ÓØ€HˆeÓØ€M�3Ôr   rH   c                  ó    — e Zd ZdZdd„Zdd„Zy)ÚKnowledgeRepositoryzBRepository boundary for document metadata, independent of indexes.c                 ó   — y)z3Return a document and whether this call created it.Nr   )ÚselfÚregistrations     r   ÚregisterzKnowledgeRepository.register`   ó   € àr   c                 ó   — y)z+Return a document by its stable identifier.Nr   )rV   rI   s     r   ÚgetzKnowledgeRepository.getd   rY   r   N)rW   rB   Úreturnztuple[KnowledgeDocument, bool])rI   r4   r\   zKnowledgeDocument | None)r   r   r   r   rX   r[   r   r   r   rT   rT   \   s   „ áLóôr   rT   c                  ó    — e Zd ZU dZded<   ded<   ded<    ee¬«      Zded	<    ee¬«      Zded
<    ee	¬«      Z
ded<    ee¬«      Zded<   y)ÚKG1NodeuP   Instance Resource Graph node â€” Jurassic OiO-pattern business ontology element.r4   ÚidÚtyper3   rC   r;   r=   Úbusiness_semanticsÚdomain_constraintszlist[dict[str, Any]]Úevidencer>   N)r   r   r   r   r?   r   r@   ra   rb   Úlistrc   r>   r   r   r   r^   r^   i   sT   … áZàƒGØ
ƒIØÓÙ).¸tÔ)DÐ˜ÓDÙ).¸tÔ)DÐ˜ÓDÙ%*¸4Ô%@€HÐ"Ó@Ù$°TÔ:€HˆnÔ:r   r^   )rB   r&   r   r^   rH   rT   r3   r   N)r   Ú
__future__r   Údataclassesr   r   Úenumr   Útypingr   r   r	   r4   r   r   r&   r3   rB   rH   rT   r^   Ú__all__r   r   r   ú<module>rj      sß   ðñõ #ç (Ý ß 3Ñ 3ô�C˜ô ô�#�tô ô�S˜$ô ñ �$Ô÷;ð ;ó ð;ñ �$Ô÷;ð ;ó ð;ñ �$Ô÷ð ó ðð( ô	˜(ó 	ó ð	ñ �$Ô÷	;ð 	;ó ð	;ò	�r   