# DO NOT EDIT. Generated by api_gen.sh
from synalinks.api import Action
from synalinks.api import And
from synalinks.api import Branch
from synalinks.api import ChainOfThought
from synalinks.api import ChatMessage
from synalinks.api import ChatMessages
from synalinks.api import ChatRole
from synalinks.api import Concat
from synalinks.api import Concatenate
from synalinks.api import CosineSimilarity
from synalinks.api import DataModel
from synalinks.api import Decision
from synalinks.api import EmbeddingModel
from synalinks.api import Embeddings
from synalinks.api import EmbedKnowledge
from synalinks.api import ExactMatch
from synalinks.api import Function
from synalinks.api import FunctionCallingAgent
from synalinks.api import Generator
from synalinks.api import GenericInputs
from synalinks.api import GenericIO
from synalinks.api import GenericOutputs
from synalinks.api import GenericResult
from synalinks.api import Identity
from synalinks.api import Initializer
from synalinks.api import InMask
from synalinks.api import Input
from synalinks.api import Instructions
from synalinks.api import JsonDataModel
from synalinks.api import KnowledgeBase
from synalinks.api import LanguageModel
from synalinks.api import LMAsJudge
from synalinks.api import Metric
from synalinks.api import Module
from synalinks.api import MultiServerMCPClient
from synalinks.api import Not
from synalinks.api import Operation
from synalinks.api import Or
from synalinks.api import OutMask
from synalinks.api import Prediction
from synalinks.api import Program
from synalinks.api import ProgramAsJudge
from synalinks.api import PythonSynthesis
from synalinks.api import RetrieveKnowledge
from synalinks.api import Reward
from synalinks.api import Score
from synalinks.api import SelfCritique
from synalinks.api import Sequential
from synalinks.api import SimilaritySearch
from synalinks.api import Stamp
from synalinks.api import StampKnowledge
from synalinks.api import StatelessScope
from synalinks.api import SymbolicDataModel
from synalinks.api import SymbolicScope
from synalinks.api import Tool
from synalinks.api import ToolCall
from synalinks.api import ToolCalling
from synalinks.api import Trainable
from synalinks.api import TripletSearch
from synalinks.api import UpdateKnowledge
from synalinks.api import Xor
from synalinks.api import __version__
from synalinks.api import api_base
from synalinks.api import backend
from synalinks.api import callbacks
from synalinks.api import clear_session
from synalinks.api import config
from synalinks.api import datasets
from synalinks.api import default_prompt_template
from synalinks.api import disable_telemetry
from synalinks.api import embedding_models
from synalinks.api import enable_logging
from synalinks.api import enable_observability
from synalinks.api import get_seed
from synalinks.api import hooks
from synalinks.api import initializers
from synalinks.api import is_chat_message
from synalinks.api import is_chat_messages
from synalinks.api import is_embedded
from synalinks.api import is_embedding
from synalinks.api import is_embeddings
from synalinks.api import is_instructions
from synalinks.api import is_observability_enabled
from synalinks.api import is_prediction
from synalinks.api import is_similarity_search
from synalinks.api import is_stamped
from synalinks.api import is_telemetry_enabled
from synalinks.api import is_tool_call
from synalinks.api import is_trainable
from synalinks.api import is_triplet_search
from synalinks.api import language_models
from synalinks.api import metrics
from synalinks.api import modules
from synalinks.api import name_scope
from synalinks.api import ops
from synalinks.api import optimizers
from synalinks.api import programs
from synalinks.api import rewards
from synalinks.api import saving
from synalinks.api import set_api_base
from synalinks.api import set_seed
from synalinks.api import synalinks_home
from synalinks.api import tree
from synalinks.api import utils
from synalinks.api import version

# END DO NOT EDIT.

import os  # isort: skip

# Add everything in /api/ to the module search path.
__path__.append(os.path.join(os.path.dirname(__file__), "api"))  # noqa: F405

# Don't pollute namespace.
del os


# Never autocomplete `.src` or `.api` on an imported synalinks object.
def __dir__():
    keys = dict.fromkeys((globals().keys()))
    keys.pop("src")
    keys.pop("api")
    return list(keys)


# Don't import `.src`, or `.api` during `from synalinks import *`.
__all__ = [
    name
    for name in globals().keys()
    if not (name.startswith("_") or name in ("src", "api"))
]

if backend.backend() == "pydantic":
    from synalinks.src.backend import Field
