�
=��g�w � �| � d Z ddlZddlZddlZddlZddlmZmZ ddlm Z ddl
mZmZm
Z
mZmZmZmZ ddlZddlmZ ddlmZmZmZmZmZmZ ddlmZ dd lmZ dd
l m!Z!m"Z"m#Z#m$Z$ ddl%m&Z& ddl'm(Z(m)Z)m*Z*m+Z+m,Z, dd
l-m.Z. ej/ e0� � Z1de2fd�Z3 G d� de"ee4ef ee4ef f e� � Z5dS )z0Base interface that all chains should implement.� N)�ABC�abstractmethod)�Path)�Any�Dict�List�Optional�Type�Union�cast)�
deprecated)�AsyncCallbackManager�AsyncCallbackManagerForChainRun�BaseCallbackManager�CallbackManager�CallbackManagerForChainRun� Callbacks)�
BaseMemory)�RunInfo)�RunnableConfig�RunnableSerializable�
ensure_config�run_in_executor)�create_model)� BaseModel�
ConfigDict�Field�field_validator�model_validator)�RUN_KEY�returnc �"