
    k
i                        d dl mZ d dlmZ d dlmZmZ  ede           G d de                      Z ede           G d	 d
e                      Z ede           G d de                      Z	 G d de          Z
dS )    )Literal)LangGraphDeprecatedSinceV10)	TypedDict
deprecatedzHumanInterruptConfig has been moved to `langchain.agents.interrupt`. Please update your import to `from langchain.agents.interrupt import HumanInterruptConfig`.)categoryc                   <    e Zd ZU dZeed<   eed<   eed<   eed<   dS )HumanInterruptConfiga  Configuration that defines what actions are allowed for a human interrupt.

    This controls the available interaction options when the graph is paused for human input.

    Attributes:
        allow_ignore: Whether the human can choose to ignore/skip the current step
        allow_respond: Whether the human can provide a text response/feedback
        allow_edit: Whether the human can edit the provided content/state
        allow_accept: Whether the human can accept/approve the current state
    allow_ignoreallow_respond
allow_editallow_acceptN)__name__
__module____qualname____doc__bool__annotations__     C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\langgraph/prebuilt/interrupt.pyr	   r	      sN         
	 	 r   r	   zActionRequest has been moved to `langchain.agents.interrupt`. Please update your import to `from langchain.agents.interrupt import ActionRequest`.c                   (    e Zd ZU dZeed<   eed<   dS )ActionRequestaD  Represents a request for human action within the graph execution.

    Contains the action type and any associated arguments needed for the action.

    Attributes:
        action: The type or name of action being requested (e.g., `"Approve XYZ action"`)
        args: Key-value pairs of arguments needed for the action
    actionargsN)r   r   r   r   strr   dictr   r   r   r   r      s.         
  KKK
JJJJJr   r   zHumanInterrupt has been moved to `langchain.agents.interrupt`. Please update your import to `from langchain.agents.interrupt import HumanInterrupt`.c                   8    e Zd ZU dZeed<   eed<   edz  ed<   dS )HumanInterrupta  Represents an interrupt triggered by the graph that requires human intervention.

    This is passed to the `interrupt` function when execution is paused for human input.

    Attributes:
        action_request: The specific action being requested from the human
        config: Configuration defining what actions are allowed
        description: Optional detailed description of what input is needed

    Example:
        ```python
        # Extract a tool call from the state and create an interrupt request
        request = HumanInterrupt(
            action_request=ActionRequest(
                action="run_command",  # The action being requested
                args={"command": "ls", "args": ["-l"]}  # Arguments for the action
            ),
            config=HumanInterruptConfig(
                allow_ignore=True,    # Allow skipping this step
                allow_respond=True,   # Allow text feedback
                allow_edit=False,     # Don't allow editing
                allow_accept=True     # Allow direct acceptance
            ),
            description="Please review the command before execution"
        )
        # Send the interrupt request and get the response
        response = interrupt([request])[0]
        ```
    action_requestconfigNdescription)r   r   r   r   r   r   r	   r   r   r   r   r   r   /   sF         
 < "!!!    tr   r   c                   @    e Zd ZU dZed         ed<   dez  ez  ed<   dS )HumanResponseaZ  The response provided by a human to an interrupt, which is returned when graph execution resumes.

    Attributes:
        type: The type of response:

            - `'accept'`: Approves the current state without changes
            - `'ignore'`: Skips/ignores the current step
            - `'response'`: Provides text feedback or instructions
            - `'edit'`: Modifies the current state/content
        args: The response payload:

            - `None`: For ignore/accept actions
            - `str`: For text responses
            - `ActionRequest`: For edit actions with updated content
    )acceptignoreresponseedittypeNr   )r   r   r   r   r   r   r   r   r   r   r   r#   r#   W   sE            8
9999
*}
$$$$$$r   r#   N)typingr   langgraph.warningsr   typing_extensionsr   r   r	   r   r   r#   r   r   r   <module>r,      so         : : : : : : 3 3 3 3 3 3 3 3  g(      9  	 $  Y(      I  	   [(  ! ! ! ! !Y ! !	 !H% % % % %I % % % % %r   