Ë
    lQêj+9  ã                   ó¨  — d dl mZmZmZ dZd dlZd dlmZ d dlm	Z
 d dlmZ d dlmZ d dlZd dlmZmZmZ d d	lmZmZmZ d d
lmZ d dlmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z: d dl;m<Z< d dl=m>Z>m?Z?m@Z@mAZA d dlBmCZC d dlDZDg d¢ZEd dlFmGZG  ej�                  eI«      ZJ e«       aKdeLfd„ZM eM«       ZNdZO	 d dlPmQZQ eQZOeOswd dlSZSeSj¨                  dk  rdeNrZd dlUZUd dlVZV eUj®                  eVj°                  ddddg«        eYd«       eVj´                  j·                  d«      eVj´                  d<   n e\d«      ‚d:d„Z]defd„Z^deefdee   d e_d!e_defd"„Z`d#deefd$ee_eCf   dee   d e_d!e_def
d%„Zaddeefd$ee_   dee   d e_d!e_def
d&„Zbd'd(dddeefd)e_d*ecd+eLd,eee_e_f      dee   d e_d!e_defd-„Zdd'd(dddeefd)e_d*ecd+eLd,eee_e_f      dee   d e_d!e_defd.„Ze	 	 	 	 d;d/d0d1d2œd ee_   d!ee_   d3ee_   dee   d4e_d5ecd6eLdefd7„Zft–        eefded e_d!e_defd8„Z e«       fdedefd9„Z	y# eR$ r dZOY �Œpw xY w)<é    )ÚDictÚOptionalÚUnionz1.5.9N)ÚClient)ÚAdminClient)ÚAsyncClient)ÚTokenTransportHeader)ÚDEFAULT_DATABASEÚDEFAULT_TENANTÚSettings)ÚAdminAPIÚAsyncClientAPIÚ	ClientAPI)Ú
Collection)ÚCmekÚCollectionMetadataÚUpdateMetadataÚ	DocumentsÚEmbeddingFunctionÚ
EmbeddingsÚURIÚURIsÚIDsÚIncludeÚMetadataÚ	MetadatasÚ	ReadLevelÚWhereÚQueryResultÚ	GetResultÚWhereDocumentÚUpdateCollectionMetadataÚSparseVectorÚSparseVectorsÚSparseEmbeddingFunctionÚSchemaÚVectorIndexConfigÚHnswIndexConfigÚSpannIndexConfigÚFtsIndexConfigÚSparseVectorIndexConfigÚStringInvertedIndexConfigÚIntInvertedIndexConfigÚFloatInvertedIndexConfigÚBoolInvertedIndexConfig)ÚSearch)ÚKeyÚKÚKnnÚRrf)ÚPath)%r   r   r   r   r   r!   r   r   r   r   r   r   r   r   r   r"   r   r    r	   r0   r1   r2   r3   r4   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   )ÚCloudClientArgÚreturnc                  ó,   — 	 dd l } y# t        $ r Y yw xY w)Nr   TF)Úgoogle.colabÚImportError)Úgoogles    úV/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/chromadb/__init__.pyÚis_in_colabr=   u   s   € ðÛàøÜò Ùðús   ‚ ‡	’F)Úis_thin_client)é   é#   r   z-mÚpipÚinstallzpysqlite3-binaryÚ	pysqlite3Úsqlite3zû[91mYour system has an unsupported version of sqlite3. Chroma                     requires sqlite3 >= 3.35.0.[0m
[94mPlease visit                     https://docs.trychroma.com/troubleshooting#sqlite to learn how                     to upgrade.[0mc                  óB   — t        j                  j                  di | ¤Žay)zGOverride Chroma's default settings, environment variables or .env filesN© )ÚchromadbÚconfigr   Ú
__settings)Úkwargss    r<   Ú	configurerK       s   € ô —‘×)Ñ)Ñ3¨FÑ3�Jó    c                  ó   — t         S )N)rI   rF   rL   r<   Úget_settingsrN   ¦   s   € ÜÐrL   ÚsettingsÚtenantÚdatabasec                 óp   — | €
t        «       } d| _        t        |«      }t        |«      }t        | ||¬«      S )aÓ  Create an in-memory client for local use.

    This client stores all data in memory and does not persist to disk.
    It is intended for testing and development.

    Args:
        settings: Optional settings to override defaults.
        tenant: Tenant name to use for requests. Defaults to the default tenant.
        database: Database name to use for requests. Defaults to the default database.

    Returns:
        ClientAPI: A configured client instance.
    F©rO   rP   rQ   )r   Úis_persistentÚstrÚClientCreatorrS   s      r<   ÚEphemeralClientrW   ª   s<   € ð$ ÐÜ“:ˆØ"€HÔô �‹[€FÜ�8‹}€Hä (°6ÀHÔMÐMrL   z./chromaÚpathc                 ó�   — |€
t        «       }t        | «      |_        d|_        t        |«      }t        |«      }t	        |||¬«      S )aÐ  Create a persistent client that stores data on disk.

    This client is intended for local development and testing. For production,
    prefer a server-backed Chroma instance.

    Args:
        path: Directory to store persisted data.
        settings: Optional settings to override defaults.
        tenant: Tenant name to use for requests.
        database: Database name to use for requests.

    Returns:
        ClientAPI: A configured client instance.
    T©rP   rQ   rO   )r   rU   Úpersist_directoryrT   rV   ©rX   rO   rP   rQ   s       r<   ÚPersistentClientr]   Ç   sH   € ð( ÐÜ“:ˆÜ!$ T£€HÔØ!€HÔô �‹[€FÜ�8‹}€Hä °ÀHÔMÐMrL   c                 ó˜   — |€
t        «       }d|_        | du|_        | xs d|_        t	        |«      }t	        |«      }t        |||¬«      S )a¦  
    Creates an ephemeral or persistance instance of Chroma that saves to disk.
    This is useful for testing and development, but not recommended for production use.

    Args:
        path: An optional directory to save Chroma's data to. The client is ephemeral if a None value is provided. Defaults to None.
        tenant: The tenant to use for this client.
        database: The database to use for this client.
    Nz!chromadb.api.rust.RustBindingsAPIÚ rZ   )r   Úchroma_api_implrT   r[   rU   rV   r\   s       r<   Ú
RustClientra   ç   sU   € ð ÐÜ“:ˆàB€HÔØ!¨Ð-€HÔØ!%¢¨€HÔô �‹[€FÜ�8‹}€Hä °ÀHÔMÐMrL   Ú	localhosti@  ÚhostÚportÚsslÚheadersc                 óÆ  — |€
t        «       }t        | «      } t        |«      }t        |«      }t        |«      }t        |«      }d|_        |j
                  r+|j
                  | k7  rt        d|j
                  › d| › d�«      ‚| |_        |j                  r+|j                  |k7  rt        d|j                  › d|› d�«      ‚||_        ||_        ||_	        t        |||¬«      S )a>  Create a client that connects to a Chroma server.

    Args:
        host: Hostname of the Chroma server.
        port: HTTP port of the Chroma server.
        ssl: Whether to enable SSL for the connection.
        headers: Optional headers to send with each request.
        settings: Optional settings to override defaults.
        tenant: Tenant name to use for requests.
        database: Database name to use for requests.

    Returns:
        ClientAPI: A configured client instance.

    Raises:
        ValueError: If settings specify a different host or port.
    úchromadb.api.fastapi.FastAPIú(Chroma server host provided in settings[ú3] is different to the one provided in HttpClient: [ú]ú-Chroma server http port provided in settings[rZ   )r   rU   ÚintÚboolr`   Úchroma_server_hostÚ
ValueErrorÚchroma_server_http_portÚchroma_server_ssl_enabledÚchroma_server_headersrV   ©rc   rd   re   rf   rO   rP   rQ   s          r<   Ú
HttpClientru     s"  € ð6 ÐÜ“:ˆô ˆt‹9€DÜˆt‹9€DÜ
ˆs‹)€CÜ�‹[€FÜ�8‹}€Hà=€HÔØ×"Ò" x×'BÑ'BÀdÒ'JÜØ6°x×7RÑ7RÐ6Sð  TGð  HLð  GMð  MNð  Oó
ð 	
ð #'€HÔØ×'Ò'¨H×,LÑ,LÐPTÒ,TÜØ;¸H×<\Ñ<\Ð;]ð  ^Qð  RVð  QWð  WXð  Yó
ð 	
ð (,€HÔ$Ø),€HÔ&Ø%,€HÔ"ä °ÀHÔMÐMrL   c              ƒ   óö  K  — |€
t        «       }t        | «      } t        |«      }t        |«      }t        |«      }t        |«      }d|_        |j
                  r+|j
                  | k7  rt        d|j
                  › d| › d�«      ‚| |_        |j                  r+|j                  |k7  rt        d|j                  › d|› d�«      ‚||_        ||_        ||_	        t        j                  |||¬«      ƒ d{  –—† S 7 Œ­w)aÌ  Create an async client that connects to a Chroma HTTP server.

    This supports multiple clients connecting to the same server and is the
    recommended production configuration.

    Args:
        host: Hostname of the Chroma server.
        port: HTTP port of the Chroma server.
        ssl: Whether to enable SSL for the connection.
        headers: Optional headers to send with each request.
        settings: Optional settings to override defaults.
        tenant: Tenant name to use for requests.
        database: Database name to use for requests.

    Returns:
        AsyncClientAPI: A configured async client instance.

    Raises:
        ValueError: If settings specify a different host or port.
    Nz'chromadb.api.async_fastapi.AsyncFastAPIri   rj   rk   rl   rZ   )r   rU   rm   rn   r`   ro   rp   rq   rr   rs   ÚAsyncClientCreatorÚcreatert   s          r<   ÚAsyncHttpClientry   :  s;  è ø€ ð< ÐÜ“:ˆô ˆt‹9€DÜˆt‹9€DÜ
ˆs‹)€CÜ�‹[€FÜ�8‹}€HàH€HÔØ×"Ò" x×'BÑ'BÀdÒ'JÜØ6°x×7RÑ7RÐ6Sð  TGð  HLð  GMð  MNð  Oó
ð 	
ð #'€HÔØ×'Ò'¨H×,LÑ,LÐPTÒ,TÜØ;¸H×<\Ñ<\Ð;]ð  ^Qð  RVð  QWð  WXð  Yó
ð 	
ð (,€HÔ$Ø),€HÔ&Ø%,€HÔ"ä#×*Ñ*Ø °8ô÷ ð ð ús   ‚C0C9Ã2C7Ã3C9zapi.trychroma.comi»  T)Ú
cloud_hostÚ
cloud_portÚ
enable_sslÚapi_keyrz   r{   r|   c                óæ  — t        dd|¬«      g}t        |D �cg c]  }|j                  ‘Œ c}«      sC|D ]>  }|j                  xs) t        j                  j                  |j                  «      |_        Œ@ |D �cg c]  }|j                  �Œ|‘Œ }	}|	r_t        ddj                  |	D �cg c]  }|j                  ‘Œ c}«      › ddj                  |	D �cg c]  }|j                  ‘Œ c}«      › �«      ‚|€
t        «       }| xs t        j                  j                  d«      } | �t        | «      } |xs t        j                  j                  d«      }|�t        |«      }t        |«      }t        |«      }t        |«      }t        |«      }d	|_        ||_        ||_        ||_        d
|_        ||_        t(        j*                  |_        d|_        t1        | ||¬«      S c c}w c c}w c c}w c c}w )ag  Create a client for Chroma Cloud.

    If not provided, `tenant`, `database`, and `api_key` will be inferred from the environment variables `CHROMA_TENANT`, `CHROMA_DATABASE`, and `CHROMA_API_KEY`.

    Args:
        tenant: Tenant name to use, or None to infer from credentials.
        database: Database name to use, or None to infer from credentials.
        api_key: API key for Chroma Cloud.
        settings: Optional settings to override defaults.

    Returns:
        ClientAPI: A configured client instance.

    Raises:
        ValueError: If no API key is provided or available in the environment.
    r}   ÚCHROMA_API_KEY)ÚnameÚenv_varÚvaluezMissing required arguments: z, z8. Please provide them or set the environment variables: ÚCHROMA_TENANTÚCHROMA_DATABASErh   z1chromadb.auth.token_authn.TokenAuthClientProviderTrZ   )r6   Úallr‚   ÚosÚenvironÚgetr�   rp   Újoinr€   r   rU   rm   rn   r`   ro   rq   rr   Úchroma_client_auth_providerÚchroma_client_auth_credentialsr	   ÚX_CHROMA_TOKENÚ"chroma_auth_token_transport_headerÚ;chroma_overwrite_singleton_tenant_database_access_from_authrV   )
rP   rQ   r}   rO   rz   r{   r|   Úrequired_argsÚargÚmissing_argss
             r<   ÚCloudClientr’   u  sÕ  € ô8 	˜IÐ/?ÀwÔOð€Mô
  ]Ö3˜c�—	“	Ò3Ô4Ø ò 	AˆCØŸ	™	Ò@¤R§Z¡Z§^¡^°C·K±KÓ%@ˆC�Ið	Að $1ÖF˜C°C·I±IÑ4E’CÐF€LÐFÙÜØ*¨4¯9©9È,Ö5WÀ3°c·h³hÒ5WÓ+XÐ*Yð ZEØEIÇYÁYÐgsÖOtÐ`cÐPS×P[ÓP[ÒOtÓEuÐDvðxó
ð 	
ð
 ÐÜ“:ˆð Ò6”r—z‘z—~‘~ oÓ6€FØÐÜ�V“ˆØÒ<œ2Ÿ:™:Ÿ>™>Ð*;Ó<€HØÐÜ�x“=ˆÜ�'‹l€GÜ�Z“€JÜ�Z“€JÜ�jÓ!€Jà=€HÔØ",€HÔØ'1€HÔ$Ø)3€HÔ&ð 	<ð Ô(ð /6€HÔ+Ü2F×2UÑ2U€HÔ/ØKO€HÔHä °ÀHÔMÐMùòM 4ùò Gùò 6XùÚOts   ™GÁ:G$ÂG$Â)G)ÃG.c                 óJ   — t        |«      }t        |«      }t        ||| ¬«      S )zÓ
    Return a running chroma.API instance

    tenant: The tenant to use for this client. Defaults to the default tenant.
    database: The database to use for this client. Defaults to the default database.
    rZ   )rU   rV   rS   s      r<   r   r   ¾  s%   € ô �‹[€FÜ�8‹}€Hä °ÀHÔMÐMrL   c                 ó   — t        | ¬«      S )z:Create an admin client for tenant and database management.©rO   )ÚAdminClientCreatorr•   s    r<   r   r   Ñ  s   € ä xÔ0Ð0rL   )r7   N)NNNN)gÚtypingr   r   r   Ú__version__ÚloggingÚchromadb.api.clientr   rV   r   r–   Úchromadb.api.async_clientr   rw   Úchromadb.auth.token_authnr	   Úchromadb.configrG   r
   r   r   Úchromadb.apir   r   r   Úchromadb.api.models.Collectionr   Úchromadb.api.typesr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   Ú"chromadb.execution.expression.planr0   Ú&chromadb.execution.expression.operatorr1   r2   r3   r4   Úpathlibr5   r†   Ú__all__Úchromadb.typesr6   Ú	getLoggerÚ__name__ÚloggerrI   rn   r=   ÚIN_COLABÚ	is_clientÚchromadb.is_thin_clientr>   r:   rD   Úsqlite_version_infoÚ
subprocessÚsysÚ
check_callÚ
executableÚ
__import__ÚmodulesÚpopÚRuntimeErrorrK   rN   rU   rW   r]   ra   rm   ru   ry   r’   rF   rL   r<   ú<module>rµ      s4  ðß (Ñ (à€ã Ý 7õõ HÝ :Û ß FÑ Fß <Ñ <Ý 5÷ ÷  ÷  ÷  ÷  ÷  ÷  ÷  ñ  õF 6÷ó õ Û 	ò)€õV *à	ˆ×	Ñ	˜8Ó	$€á‹Z€
ð
�Tó ñ ‹=€à€	ðÝ6à€Iñ Ûà×"Ñ" ZÒ/ÙãÛà!ˆJ×!Ñ!Ø—‘  u¨iÐ9KÐLôñ �{Ô#Ø%(§[¡[§_¡_°[Ó%AˆC�K‰K˜	Ò"áð(óð ó4ð�hó ð
 $(Ø Ø$ñNØ�xÑ ðNàðNð ðNð ó	Nð< (Ø#'Ø Ø$ñ	NØ
��T�	Ñ
ðNà�xÑ ðNð ðNð ð	Nð
 óNðB Ø#'Ø Ø$ñ	NØ
�3‰-ðNà�xÑ ðNð ðNð ð	Nð
 óNð< ØØØ(,Ø#'Ø Ø$ñ3NØ
ð3Nà
ð3Nð 
ð3Nð �d˜3 ˜8‘nÑ%ð	3Nð
 �xÑ ð3Nð ð3Nð ð3Nð ó3Nðn ØØØ(,Ø#'Ø Ø$ñ8Ø
ð8à
ð8ð 
ð8ð �d˜3 ˜8‘nÑ%ð	8ð
 �xÑ ð8ð ð8ð ð8ð ó8ðx !Ø"Ø!Ø#'ð	FNð *ØØòFNØ�S‰MðFNà�s‰mðFNð �c‰]ðFNð �xÑ ð	FNð ðFNð ðFNð ðFNð óFNôT $Ø Ø$ñNØðNàðNð ðNð ó	Nñ& &.£Zñ 1˜(ð 1°Hô 1øðY
 ò ØƒIðús   ÃI ÉIÉI