> ## Documentation Index
> Fetch the complete documentation index at: https://docs.interactly.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Delete Workflow Run Comment

> Endpoint to delete a comment from a workflow run.



## OpenAPI

````yaml https://api-prod.interactly.ai/api-docs/workflows/api.json delete /workflows/v1/workflow-runs/{workflow_run_id}/comments/{comment_logical_id}
openapi: 3.1.0
info:
  title: Interactly API
  description: API for building interactly.ai services
  version: 1.1.0
  contact:
    name: Interactly
    url: https://interactly.ai
    email: developers@interactly.ai
servers:
  - url: https://api-prod.interactly.ai
    description: API Server
security: []
paths:
  /workflows/v1/workflow-runs/{workflow_run_id}/comments/{comment_logical_id}:
    delete:
      tags:
        - Workflow Runs
      summary: Delete Workflow Run Comment
      description: Endpoint to delete a comment from a workflow run.
      operationId: >-
        workflow_service_delete_workflow_run_comment_v1_workflow_runs__workflow_run_id__comments__comment_logical_id__delete
      parameters:
        - name: workflow_run_id
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/PydanticObjectId'
        - name: comment_logical_id
          in: path
          required: true
          schema:
            type: string
            title: Comment Logical Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowRunsResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - bearer: []
components:
  schemas:
    PydanticObjectId:
      type: string
      maxLength: 24
      minLength: 24
      pattern: ^[0-9a-f]{24}$
      example: 5eb7cf5a86d9755df3a6c593
    WorkflowRunsResponse:
      properties:
        workflow_run:
          $ref: '#/components/schemas/WorkflowRunsModel'
          description: Single workflow run object
      type: object
      required:
        - workflow_run
      title: WorkflowRunsResponse
      description: |-
        Response model for a single workflow run.
        Contains a WorkflowRunsModel object.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    WorkflowRunsModel:
      properties:
        team_id:
          anyOf:
            - type: string
            - type: 'null'
          description: ID of the team that owns this edge
        created_by:
          anyOf:
            - type: string
            - type: 'null'
          description: ID of the user who created this edge
        updated_by:
          anyOf:
            - type: string
            - type: 'null'
          description: ID of the user who last updated this edge
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
        _id:
          anyOf:
            - $ref: '#/components/schemas/PydanticObjectId'
            - type: 'null'
          description: MongoDB document ObjectID
        workflow_run:
          anyOf:
            - $ref: '#/components/schemas/WorkflowRun-Output'
            - type: 'null'
          description: Workflow Run
        debug_info:
          anyOf:
            - $ref: '#/components/schemas/WorkflowRunsDebugInfo'
            - type: 'null'
          title: Workflow Run Debug Info
          description: Debug information for the workflow run
        schedule_id:
          anyOf:
            - $ref: '#/components/schemas/PydanticObjectId'
            - type: 'null'
          description: The ID of the workflow schedule that triggered this run
      type: object
      title: WorkflowRunsModel
      description: >-
        Stores a workflow run present in the workflow system.

        Each workflow run is associated with a specific workflow and represents
        a specific execution of that workflow.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    WorkflowRun-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow Run Logical ID
          description: Unique ID associated with this particular run of the workflow
          input_field_disallowed: true
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow ID
          description: ID of the workflow being run
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this run is associated with. 0 is the
            initial version (default).
          default: 0
        status:
          $ref: '#/components/schemas/WorkflowStatus'
          title: Workflow Run Status
          description: Current status of the workflow run
          default: not_started
        termination_source:
          anyOf:
            - type: string
            - type: 'null'
          title: Termination Source
          description: >-
            Describes what caused the run to reach a terminal state (especially
            FAILED). None for normal completions. Well-known values:
            'execution_error', 'stale_run_reaper', 'finally_safety_net'.
        input_output_pairs:
          items:
            $ref: '#/components/schemas/WorkflowRunInputOutputPair-Output'
          type: array
          title: Workflow Run Input-Output Pairs
          description: >-
            List of input-output pairs. Each pair corresponds to each contiguous
            execution segment of the workflow
        run_by:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow Run Initiator
          description: Identifier of the user or system that initiated the workflow run
        comments:
          items:
            $ref: '#/components/schemas/CommentConfig'
          type: array
          title: Workflow Run Comments
          description: List of comments associated with the workflow run
        llm_token_usage:
          anyOf:
            - $ref: '#/components/schemas/LLMTokenUsage'
            - type: 'null'
          title: LLM Token Usage
          description: LLM token usage for this run
        llm_latency_stats:
          anyOf:
            - $ref: '#/components/schemas/LLMLatencyStats'
            - type: 'null'
          title: LLM Latency Stats
          description: LLM latency statistics for this run
        version_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow Version Name
          description: Version name of the workflow this run is associated with
          default: Initial Version
        workflow_config_fully_hydrated:
          anyOf:
            - $ref: '#/components/schemas/WorkflowConfigFullyHydrated-Output'
              description: >-
                Fully-hydrated config with all super nodes inlined as flat
                nodes/edges
            - type: 'null'
          title: Workflow Config Fully Hydrated
          description: Fully hydrated workflow configuration at the time of execution
        workflow_run_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow Run DB Object ID
          description: DB Object ID of this workflow run
        miscellaneous:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Miscellaneous
          description: Miscellaneous metadata that can be used by the workflow run
        voice_conversation_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Source Voice Conversation ID
          description: >-
            ID of the voice conversation/call that produced this workflow run,
            if any. Used to cross-link the run with its conversation log in the
            dashboard.
          input_field_disallowed: true
        source_workflow_run_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Source Workflow Run ID
          description: >-
            For evaluation runs, this is the id of the original workflow run
            being evaluated. For checkpoint resumed runs, this is the id of the
            parent run being cloned.
          input_field_disallowed: true
        checkpoint_source_turn_index:
          anyOf:
            - type: integer
            - type: 'null'
          title: Checkpoint Source Turn Index
          description: >-
            For checkpoint resumed runs, this stores the turn index of the
            parent run that was cloned.
          input_field_disallowed: true
        carried_over_llm_token_usage:
          anyOf:
            - $ref: '#/components/schemas/LLMTokenUsage'
            - type: 'null'
          title: Carried Over LLM Token Usage
          description: >-
            For checkpoint resumed runs, this stores the token usage incurred up
            to the checkpoint index from the source run.
        carried_over_llm_latency_stats:
          anyOf:
            - $ref: '#/components/schemas/LLMLatencyStats'
            - type: 'null'
          title: Carried Over LLM Latency Stats
          description: >-
            For checkpoint resumed runs, this stores the latency stats incurred
            up to the checkpoint index from the source run.
        is_evaluation_run:
          type: boolean
          title: Is Evaluation Run
          description: >-
            Flag indicating if this workflow run is an evaluation run triggered
            automatically after another workflow run completed
          default: false
          input_field_disallowed: true
        evaluation_run_info:
          anyOf:
            - $ref: '#/components/schemas/EvaluationRunInfo-Output'
            - type: 'null'
          title: Evaluation Run Info
          description: >-
            Information about the evaluation triggered for this workflow run.
            Populated after evaluation completes. Only present for source
            workflow runs that have been evaluated.
          input_field_disallowed: true
      type: object
      title: WorkflowRun
      description: Represents a workflow run, which is a specific execution of a workflow.
    WorkflowRunsDebugInfo:
      properties: {}
      type: object
      title: WorkflowRunsDebugInfo
      description: |-
        Debug information for workflow runs.
        Currently empty but intentionally kept for future extensibility.
    WorkflowStatus:
      type: string
      enum:
        - not_started
        - started
        - running
        - failed
        - completed
        - paused
        - waiting_for_user_input
        - cancelled
        - aborted_looping_risk
      title: WorkflowStatus
    WorkflowRunInputOutputPair-Output:
      properties:
        run_input:
          anyOf:
            - $ref: '#/components/schemas/WorkflowRunInput-Output'
            - type: 'null'
          title: Workflow Run Input
          description: Input to the workflow run
        run_output:
          anyOf:
            - $ref: '#/components/schemas/WorkflowRunOutput'
            - type: 'null'
          title: Workflow Run Output
          description: Output of the workflow run
        evaluation:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Turn Evaluation Result
          description: Evaluation result for this specific turn/pair.
        iteration_end_state_miscellaneous:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Iteration End State Miscellaneous
          description: >-
            A lightweight capture of global state details at the end of the
            iteration, like history trackers and active threads, to allow
            accurate resumption without serializing the entire state.
      type: object
      title: WorkflowRunInputOutputPair
      description: Represents a pair of workflow run input and output.
    CommentConfig:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Comment Logical ID
          description: Unique identifier for the comment
          input_field_disallowed: true
        content:
          anyOf:
            - type: string
            - type: 'null'
          title: Comment Content
          description: Content of the comment
        createdBy:
          anyOf:
            - $ref: '#/components/schemas/PydanticObjectId'
            - type: 'null'
          description: ID of the user who created this edge
          input_field_not_visible: true
        updatedBy:
          anyOf:
            - $ref: '#/components/schemas/PydanticObjectId'
            - type: 'null'
          description: ID of the user who last updated this edge
          input_field_not_visible: true
        createdAt:
          type: string
          format: date-time
          title: Createdat
          input_field_not_visible: true
        updatedAt:
          type: string
          format: date-time
          title: Updatedat
          input_field_not_visible: true
      type: object
      title: CommentConfig
    LLMTokenUsage:
      properties:
        total_input_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Total Input Tokens
          description: The number of input/prompt tokens used
          default: 0
        total_output_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Total Output Tokens
          description: The number of output/completion tokens used
          default: 0
        total_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Total Tokens
          description: The total number of tokens used
          default: 0
        call_count_with_user_keys:
          anyOf:
            - type: integer
            - type: 'null'
          title: Call Count With User Keys
          description: The number of LLM calls made using user-provided vendor API keys
          default: 0
        call_count_with_fallback_keys:
          anyOf:
            - type: integer
            - type: 'null'
          title: Call Count With Fallback Keys
          description: The number of LLM calls made using fallback environment API keys
          default: 0
        call_count:
          anyOf:
            - type: integer
            - type: 'null'
          title: Call Count
          description: The number of LLM calls
          default: 0
        breakdown_by_models:
          anyOf:
            - items:
                $ref: '#/components/schemas/LLMTokenUsageByModel'
              type: array
            - type: 'null'
          title: Breakdown By Models
          description: Breakdown of token usage by LLM model and provider
      type: object
      title: LLMTokenUsage
      description: >-
        Token usage information for a workflow run, including total tokens and
        breakdown by model and provider.
    LLMLatencyStats:
      properties:
        call_count:
          anyOf:
            - type: integer
            - type: 'null'
          title: Call Count
          description: The number of LLM calls
          default: 0
        total_latency_milliseconds:
          anyOf:
            - type: integer
            - type: 'null'
          title: Total Latency Milliseconds
          description: The total latency across all calls in milliseconds
          default: 0
        average_latency_milliseconds:
          anyOf:
            - type: number
            - type: 'null'
          title: Average Latency Milliseconds
          description: The average latency per call in milliseconds
          default: 0
        breakdown_by_models:
          anyOf:
            - items:
                $ref: '#/components/schemas/LLMLatencyStatsByModel'
              type: array
            - type: 'null'
          title: Breakdown By Models
          description: Breakdown of latency stats by LLM model and provider
      type: object
      title: LLMLatencyStats
      description: >-
        Latency statistics for a workflow run, including total calls, average
        latency, and breakdown by model.
    WorkflowConfigFullyHydrated-Output:
      properties:
        workflow_config:
          anyOf:
            - $ref: '#/components/schemas/WorkflowConfig-Output'
            - type: 'null'
          description: Workflow configuration for runtime
        node_configs:
          items:
            oneOf:
              - $ref: '#/components/schemas/WorkerLLMNodeConfig-Output'
              - $ref: '#/components/schemas/SayLLMNodeConfig-Output'
              - $ref: '#/components/schemas/SayStaticMessageNodeConfig-Output'
              - $ref: '#/components/schemas/SuperNodeConfig-Output'
              - $ref: '#/components/schemas/WorkflowRunFetchNodeConfig-Output'
              - $ref: '#/components/schemas/WorkflowRunEvalLLMNodeConfig-Output'
              - $ref: '#/components/schemas/ToolNodeConfig-Output'
              - $ref: '#/components/schemas/StartConversationNodeConfig-Output'
              - $ref: '#/components/schemas/EndConversationNodeConfig-Output'
              - $ref: '#/components/schemas/SendSMSNodeConfig-Output'
              - $ref: '#/components/schemas/GoogleDocsNodeConfig-Output'
              - $ref: '#/components/schemas/HttpRequestNodeConfig-Output'
              - $ref: '#/components/schemas/AthenaPatientsSearchNodeConfig-Output'
              - $ref: '#/components/schemas/AthenaPatientsCreateNodeConfig-Output'
              - $ref: '#/components/schemas/AthenaPatientsUpdateNodeConfig-Output'
              - $ref: '#/components/schemas/AthenaAppointmentsCreateNodeConfig-Output'
              - $ref: '#/components/schemas/DeduplicateNodeConfig-Output'
              - $ref: '#/components/schemas/FieldExtractorNodeConfig-Output'
            discriminator:
              propertyName: type
              mapping:
                athena_appointments_create:
                  $ref: >-
                    #/components/schemas/AthenaAppointmentsCreateNodeConfig-Output
                athena_patients_create:
                  $ref: '#/components/schemas/AthenaPatientsCreateNodeConfig-Output'
                athena_patients_search:
                  $ref: '#/components/schemas/AthenaPatientsSearchNodeConfig-Output'
                athena_patients_update:
                  $ref: '#/components/schemas/AthenaPatientsUpdateNodeConfig-Output'
                deduplicate:
                  $ref: '#/components/schemas/DeduplicateNodeConfig-Output'
                end_conversation:
                  $ref: '#/components/schemas/EndConversationNodeConfig-Output'
                field_extractor:
                  $ref: '#/components/schemas/FieldExtractorNodeConfig-Output'
                google_docs:
                  $ref: '#/components/schemas/GoogleDocsNodeConfig-Output'
                http_request:
                  $ref: '#/components/schemas/HttpRequestNodeConfig-Output'
                say_llm:
                  $ref: '#/components/schemas/SayLLMNodeConfig-Output'
                say_static:
                  $ref: '#/components/schemas/SayStaticMessageNodeConfig-Output'
                send_sms:
                  $ref: '#/components/schemas/SendSMSNodeConfig-Output'
                start_conversation:
                  $ref: '#/components/schemas/StartConversationNodeConfig-Output'
                super_node:
                  $ref: '#/components/schemas/SuperNodeConfig-Output'
                tool_node:
                  $ref: '#/components/schemas/ToolNodeConfig-Output'
                worker_llm:
                  $ref: '#/components/schemas/WorkerLLMNodeConfig-Output'
                workflow_run_evaluator:
                  $ref: '#/components/schemas/WorkflowRunEvalLLMNodeConfig-Output'
                workflow_run_fetch:
                  $ref: '#/components/schemas/WorkflowRunFetchNodeConfig-Output'
          type: array
          title: Node Configs
          description: List of node configurations for runtime
        edge_configs:
          items:
            oneOf:
              - $ref: '#/components/schemas/DirectEdgeConfig-Output'
              - $ref: '#/components/schemas/ConditionalEdgeConfig-Output'
              - $ref: '#/components/schemas/CompanionEdgeConfig-Output'
            discriminator:
              propertyName: type
              mapping:
                companion:
                  $ref: '#/components/schemas/CompanionEdgeConfig-Output'
                conditional:
                  $ref: '#/components/schemas/ConditionalEdgeConfig-Output'
                direct:
                  $ref: '#/components/schemas/DirectEdgeConfig-Output'
          type: array
          title: Edge Configs
          description: List of edge configurations for runtime
        dynamic_variables:
          additionalProperties: true
          type: object
          title: Dynamic Variables
          description: Dynamic variables that can be used across nodes and edges
        runtime_variables:
          additionalProperties: true
          type: object
          title: Runtime Variables
          description: Runtime variables that can be used across nodes and edges
      type: object
      title: WorkflowConfigFullyHydrated
    EvaluationRunInfo-Output:
      properties:
        evaluation_workflow_run_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Evaluation Workflow Run ID
          description: >-
            ID of the evaluation workflow run that was triggered for this source
            workflow run.
      type: object
      title: EvaluationRunInfo
      description: >-
        Contains information about the evaluation that was triggered for a
        workflow run.

        This is stored in the source workflow run after evaluation completes.
    WorkflowRunInput-Output:
      properties:
        dynamic_variables:
          additionalProperties: true
          type: object
          title: Dynamic Variables
          description: >-
            Dynamic variable values that will replace the '{{...}}' placeholders
            in the prompts, condition strings, tool signatures, etc.
        runtime_variables:
          additionalProperties: true
          type: object
          title: Runtime Variables
          description: >-
            Runtime variables that will replace the '[[...]]' placeholders in
            the prompts, condition strings, tool signatures, etc.
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Run Input Data
          description: Miscellaneous run-input data
          field_visibility_level: super_admin
        command:
          $ref: '#/components/schemas/WorkflowCommand'
          title: Workflow Command
          description: Command to execute on the workflow or workflow run
          default: start
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: DB Object ID of the workflow to run
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this run is associated with. 0 is the
            initial version (default).
          default: 0
        run_by:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow Run Initiator
          description: Identifier of the user or system that initiated the workflow run
        workflow_run_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow Run ID
          description: ID of the workflow run to resume
        team_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Team ID
          description: >-
            Team ID associated with this workflow run, used for vendor
            credential lookup
        start_node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Start Node Logical ID
          description: >-
            Optional logical ID of the node to start execution from, bypassing
            the default start node.
        initial_state:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Initial Workflow State
          description: Optional serialized WorkflowState to resume execution with context.
        thread_to_node_inputs:
          additionalProperties:
            $ref: '#/components/schemas/NodesRunInputs'
          type: object
          title: Thread to Node Inputs
          description: Mapping of thread IDs to node inputs
        welcome_message:
          anyOf:
            - type: string
            - type: 'null'
          title: Welcome Message
          description: >-
            Voice-engine opening line, seeded as the first assistant message on
            the first run only.
      type: object
      title: WorkflowRunInput
      description: Input to the workflow, used to kick off or resume a workflow run.
    WorkflowRunOutput:
      properties:
        events:
          items: {}
          type: array
          title: Node/Workflow Run Events
          description: List of events that occurred during a node or workflow run
        thread_to_node_outputs:
          additionalProperties:
            items:
              oneOf:
                - $ref: '#/components/schemas/WorkerLLMNodeRunOutput'
                - $ref: '#/components/schemas/SayLLMNodeRunOutput'
                - $ref: '#/components/schemas/SayStaticMessageNodeRunOutput'
                - $ref: '#/components/schemas/SuperNodeRunOutput'
                - $ref: '#/components/schemas/WorkflowRunFetchNodeRunOutput'
                - $ref: '#/components/schemas/WorkflowRunEvalLLMNodeRunOutput'
                - $ref: '#/components/schemas/ToolNodeRunOutput'
                - $ref: '#/components/schemas/StartConversationNodeRunOutput'
                - $ref: '#/components/schemas/EndConversationNodeRunOutput'
                - $ref: '#/components/schemas/SendSMSNodeRunOutput'
                - $ref: '#/components/schemas/GoogleDocsNodeRunOutput'
                - $ref: '#/components/schemas/HttpRequestNodeRunOutput'
                - $ref: '#/components/schemas/AthenaPatientsSearchNodeRunOutput'
                - $ref: '#/components/schemas/AthenaPatientsCreateNodeRunOutput'
                - $ref: '#/components/schemas/AthenaPatientsUpdateNodeRunOutput'
                - $ref: '#/components/schemas/AthenaAppointmentsCreateNodeRunOutput'
                - $ref: '#/components/schemas/DeduplicateNodeRunOutput'
                - $ref: '#/components/schemas/FieldExtractorNodeRunOutput'
              discriminator:
                propertyName: type
                mapping:
                  athena_appointments_create:
                    $ref: '#/components/schemas/AthenaAppointmentsCreateNodeRunOutput'
                  athena_patients_create:
                    $ref: '#/components/schemas/AthenaPatientsCreateNodeRunOutput'
                  athena_patients_search:
                    $ref: '#/components/schemas/AthenaPatientsSearchNodeRunOutput'
                  athena_patients_update:
                    $ref: '#/components/schemas/AthenaPatientsUpdateNodeRunOutput'
                  deduplicate:
                    $ref: '#/components/schemas/DeduplicateNodeRunOutput'
                  end_conversation:
                    $ref: '#/components/schemas/EndConversationNodeRunOutput'
                  field_extractor:
                    $ref: '#/components/schemas/FieldExtractorNodeRunOutput'
                  google_docs:
                    $ref: '#/components/schemas/GoogleDocsNodeRunOutput'
                  http_request:
                    $ref: '#/components/schemas/HttpRequestNodeRunOutput'
                  say_llm:
                    $ref: '#/components/schemas/SayLLMNodeRunOutput'
                  say_static:
                    $ref: '#/components/schemas/SayStaticMessageNodeRunOutput'
                  send_sms:
                    $ref: '#/components/schemas/SendSMSNodeRunOutput'
                  start_conversation:
                    $ref: '#/components/schemas/StartConversationNodeRunOutput'
                  super_node:
                    $ref: '#/components/schemas/SuperNodeRunOutput'
                  tool_node:
                    $ref: '#/components/schemas/ToolNodeRunOutput'
                  worker_llm:
                    $ref: '#/components/schemas/WorkerLLMNodeRunOutput'
                  workflow_run_evaluator:
                    $ref: '#/components/schemas/WorkflowRunEvalLLMNodeRunOutput'
                  workflow_run_fetch:
                    $ref: '#/components/schemas/WorkflowRunFetchNodeRunOutput'
            type: array
          type: object
          title: Thread to Node Outputs
          description: Mapping of thread IDs to lists of node outputs
      type: object
      title: WorkflowRunOutput
      description: Output of a workflow run.
    LLMTokenUsageByModel:
      properties:
        response_model:
          anyOf:
            - type: string
            - type: 'null'
          title: Response Model
          description: The LLM model used
        provider:
          anyOf:
            - type: string
            - type: 'null'
          title: Provider
          description: The provider used for the response
        total_input_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Total Input Tokens
          description: The number of input/prompt tokens used
          default: 0
        total_output_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Total Output Tokens
          description: The number of output/completion tokens used
          default: 0
        total_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Total Tokens
          description: The total number of tokens used
          default: 0
        call_count_with_user_keys:
          anyOf:
            - type: integer
            - type: 'null'
          title: Call Count With User Keys
          description: The number of LLM calls made using user-provided vendor API keys
          default: 0
        call_count_with_fallback_keys:
          anyOf:
            - type: integer
            - type: 'null'
          title: Call Count With Fallback Keys
          description: The number of LLM calls made using fallback environment API keys
          default: 0
        call_count:
          anyOf:
            - type: integer
            - type: 'null'
          title: Call Count
          description: The number of LLM calls
          default: 0
      type: object
      title: LLMTokenUsageByModel
      description: Token usage by LLM model and provider.
    LLMLatencyStatsByModel:
      properties:
        response_model:
          anyOf:
            - type: string
            - type: 'null'
          title: Response Model
          description: The LLM model used
        provider:
          anyOf:
            - type: string
            - type: 'null'
          title: Provider
          description: The provider used for the response
        call_count:
          anyOf:
            - type: integer
            - type: 'null'
          title: Call Count
          description: The number of LLM calls
          default: 0
        total_latency_milliseconds:
          anyOf:
            - type: integer
            - type: 'null'
          title: Total Latency Milliseconds
          description: The total latency across all calls in milliseconds
          default: 0
        average_latency_milliseconds:
          anyOf:
            - type: number
            - type: 'null'
          title: Average Latency Milliseconds
          description: The average latency per call in milliseconds
          default: 0
      type: object
      title: LLMLatencyStatsByModel
      description: Latency stats by LLM model and provider.
    WorkflowConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow Logical ID
          description: Unique identifier for the workflow
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow Name
          description: Name of the workflow
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow Description
          description: Description of the workflow
          input_field_type: textarea
        category:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow Category
          description: >-
            Category of the workflow (e.g. 'User Created', 'System Examples',
            'System Internal')
          default: User Created
          input_field_not_visible: true
        attachable_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Attachable Llm Config Id
          description: >-
            ID of the named LLM Configuration to use. If provided, overrides
            inline configuration.
          input_field_type: llm_config_selection
        llms_config:
          anyOf:
            - oneOf:
                - $ref: '#/components/schemas/AzureOpenAILLMConfig-Output'
                - $ref: '#/components/schemas/OpenAILLMConfig-Output'
                - $ref: '#/components/schemas/GoogleLLMConfig-Output'
                - $ref: '#/components/schemas/AnthropicLLMConfig-Output'
                - $ref: '#/components/schemas/CustomLLMConfig-Output'
                - $ref: '#/components/schemas/WorkflowDefaultLLMConfig-Output'
                - $ref: '#/components/schemas/NoLLMConfig-Output'
                - $ref: '#/components/schemas/LLMGroupConfig-Output'
                - $ref: '#/components/schemas/LLMGroupWithBackchannelConfig-Output'
              discriminator:
                propertyName: type
                mapping:
                  anthropic_llm:
                    $ref: '#/components/schemas/AnthropicLLMConfig-Output'
                  azure_openai_llm:
                    $ref: '#/components/schemas/AzureOpenAILLMConfig-Output'
                  custom_llm:
                    $ref: '#/components/schemas/CustomLLMConfig-Output'
                  global_default_llm:
                    $ref: '#/components/schemas/WorkflowDefaultLLMConfig-Output'
                  google_llm:
                    $ref: '#/components/schemas/GoogleLLMConfig-Output'
                  llm_group:
                    $ref: '#/components/schemas/LLMGroupConfig-Output'
                  llm_group_with_backchannel:
                    $ref: '#/components/schemas/LLMGroupWithBackchannelConfig-Output'
                  no_llm:
                    $ref: '#/components/schemas/NoLLMConfig-Output'
                  openai_llm:
                    $ref: '#/components/schemas/OpenAILLMConfig-Output'
            - type: 'null'
          title: Workflow LLM Configuration
          description: >-
            Workflow level configuration for LLM based nodes used in the
            workflow. This will be used if no specific LLM configuration is
            provided for a node
          default:
            logical_id: llm_29ddb936-6fcd-4122-a362-69048416bcf1
            provider: default_provider
            streaming: false
            max_retries: 3
            max_parse_retries: 3
            model_kwargs: {}
            do_not_split_sentences: false
            type: no_llm
        main_response_config:
          anyOf:
            - $ref: '#/components/schemas/PromptConfig'
            - type: 'null'
          title: Global Main Response Configuration
          description: >-
            Global main response configuration. Contains either a LLM system
            prompt or exact static messages. This will be used if no specific
            prompt config is provided for a node
        backchannel_response_config:
          anyOf:
            - $ref: '#/components/schemas/PromptConfig'
            - type: 'null'
          title: Global Backchannel Response Configuration
          description: >-
            Global backchannel response configuration. Contains either a LLM
            system prompt or exact static messages. This will be used if no
            specific backchannel prompt config is provided for a node
        default_prompt_prefix:
          anyOf:
            - type: string
            - type: 'null'
          title: Global Default Prompt Prefix
          description: >-
            If present, this string will be added as prefix to every node's
            system prompt
          input_field_type: textarea
        default_prompt_suffix:
          anyOf:
            - type: string
            - type: 'null'
          title: Global Default Prompt Suffix
          description: >-
            If present, this string will be added as suffix to every node's
            system prompt
          input_field_type: textarea
        ignore_content_received_during_llm_tool_call_specification:
          type: boolean
          title: Ignore content received during LLM tool call specification
          description: >-
            If true, every LLM node in this workflow behaves as if
            ignore_content_received_during_llm_tool_call_specification is true,
            and every tool behaves as if
            ignore_content_received_during_llm_tool_call_specification is true:
            free-text content the LLM returns in the same response as one or
            more tool calls is ignored and treated as empty.
          default: false
        tools_config:
          anyOf:
            - $ref: '#/components/schemas/ToolsConfig'
            - type: 'null'
          title: Global Tools Configuration
          description: >-
            Global list of tools available to all LLM based nodes in the
            workflow
        mcp_servers:
          anyOf:
            - items:
                $ref: '#/components/schemas/MCPServerConfig'
              type: array
            - type: 'null'
          title: MCP Server Configurations
          description: >-
            List of MCP server connections. Tools discovered from these servers
            are available to nodes with use_mcp_tools enabled.
        global_condition_evaluation_method:
          anyOf:
            - $ref: >-
                #/components/schemas/agentic_workflow_framework__configs__workflow__GlobalConditionEdgeEvaluationMethod
            - type: 'null'
          title: Global Condition Evaluation Method
          description: >-
            Method used to evaluate global conditions for all nodes in this
            workflow.
          default: tool_call
        nodes:
          items:
            type: string
          type: array
          title: Node Configurations
          description: List of node configurations in the workflow
          input_field_not_visible: true
        edges:
          items:
            type: string
          type: array
          title: Edge Configurations
          description: List of edge configurations in the workflow
          input_field_not_visible: true
        evaluation_config:
          anyOf:
            - $ref: '#/components/schemas/EvaluationConfig-Output'
            - type: 'null'
          title: Evaluation Configuration
          description: >-
            Configuration for evaluating the workflow execution. If not
            provided, no evaluation will be performed
        guardrail_strikes_config:
          anyOf:
            - $ref: '#/components/schemas/GuardrailStrikesConfig'
            - type: 'null'
          title: Guardrail Strikes Configuration
          description: Configuration for guardrail-node strike counting and escalation.
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the workflow
          field_visibility_level: developer
        access_config:
          anyOf:
            - $ref: '#/components/schemas/WorkflowAccessConfig-Output'
            - type: 'null'
          title: Access Config
          description: Access control configuration for the workflow
          input_field_not_visible: true
      type: object
      title: WorkflowConfig
    WorkerLLMNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: System
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: LLM
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        main_response_config:
          anyOf:
            - $ref: '#/components/schemas/PromptConfig'
            - type: 'null'
          title: Main Response Configuration
          description: >-
            Main response configuration. Contains either a LLM system prompt or
            exact static messages
          input_field_type: single_field_object
          input_field_ui_order: 201
        attachable_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Attachable Llm Config Id
          description: >-
            ID of the named LLM Configuration to use. If provided, overrides
            inline configuration.
          input_field_type: llm_config_selection
        llms_config:
          anyOf:
            - oneOf:
                - $ref: '#/components/schemas/AzureOpenAILLMConfig-Output'
                - $ref: '#/components/schemas/OpenAILLMConfig-Output'
                - $ref: '#/components/schemas/GoogleLLMConfig-Output'
                - $ref: '#/components/schemas/AnthropicLLMConfig-Output'
                - $ref: '#/components/schemas/CustomLLMConfig-Output'
                - $ref: '#/components/schemas/WorkflowDefaultLLMConfig-Output'
                - $ref: '#/components/schemas/NoLLMConfig-Output'
                - $ref: '#/components/schemas/LLMGroupConfig-Output'
                - $ref: '#/components/schemas/LLMGroupWithBackchannelConfig-Output'
              discriminator:
                propertyName: type
                mapping:
                  anthropic_llm:
                    $ref: '#/components/schemas/AnthropicLLMConfig-Output'
                  azure_openai_llm:
                    $ref: '#/components/schemas/AzureOpenAILLMConfig-Output'
                  custom_llm:
                    $ref: '#/components/schemas/CustomLLMConfig-Output'
                  global_default_llm:
                    $ref: '#/components/schemas/WorkflowDefaultLLMConfig-Output'
                  google_llm:
                    $ref: '#/components/schemas/GoogleLLMConfig-Output'
                  llm_group:
                    $ref: '#/components/schemas/LLMGroupConfig-Output'
                  llm_group_with_backchannel:
                    $ref: '#/components/schemas/LLMGroupWithBackchannelConfig-Output'
                  no_llm:
                    $ref: '#/components/schemas/NoLLMConfig-Output'
                  openai_llm:
                    $ref: '#/components/schemas/OpenAILLMConfig-Output'
            - type: 'null'
          title: LLM Configuration
          description: LLM or a group of LLMs to be used in this node
          default:
            logical_id: llm_41f18901-b860-4337-ade7-12525f991f46
            provider: default_provider
            streaming: false
            max_retries: 3
            max_parse_retries: 3
            model_kwargs: {}
            do_not_split_sentences: false
            type: global_default_llm
        tools_config:
          anyOf:
            - $ref: '#/components/schemas/ToolsConfig'
            - type: 'null'
          title: Tools Configuration
          description: List of tools available for this node
        self_loop:
          type: boolean
          title: Self Loop
          description: >-
            Whether this node will execute again if not transitioned to another
            node
          default: false
          field_visibility_level: developer
        wait_for_user_message:
          type: boolean
          title: Wait for User Message
          description: Whether the node should wait for a user message before processing
          default: true
          field_visibility_level: developer
        max_consecutive_tool_calls:
          type: integer
          title: Max Consecutive Tool Calls
          description: >-
            Maximum number of consecutive tool calls allowed in a single node
            execution
          default: 1
          field_visibility_level: developer
        default_error_message:
          anyOf:
            - type: string
            - type: 'null'
          title: Default Error Message
          description: Default error message to be returned if the LLM invocation fails
          default: I am sorry, there seems to be an issue. Could you please repeat?
        use_mcp_tools:
          type: boolean
          title: Use MCP Tools
          description: >-
            Whether this node should use tools discovered from workflow-level
            MCP server connections
          default: false
        ignore_default_prompt_prefix:
          type: boolean
          title: Ignore Default Prompt Prefix
          description: >-
            If true, the workflow's default_prompt_prefix will not be prepended
            to this node's prompt.
          default: false
          field_visibility_level: developer
        ignore_default_prompt_suffix:
          type: boolean
          title: Ignore Default Prompt Suffix
          description: >-
            If true, the workflow's default_prompt_suffix will not be appended
            to this node's prompt.
          default: false
          field_visibility_level: developer
        ignore_content_received_during_llm_tool_call_specification:
          type: boolean
          title: Ignore content received during LLM tool call specification
          description: >-
            If true, any free-text content this node's LLM returns in the same
            response as one or more tool calls is ignored: not emitted via
            AssistantResponseEvent, not added to chat history, and not added to
            the node's structured output. Implies the tool-level flag for every
            tool call this node makes.
          default: false
        type:
          type: string
          const: worker_llm
          title: Node Type
          description: Type of the node. Must be 'worker_llm'
          default: worker_llm
          input_field_not_visible: true
        structured_output_schema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Structured Output Schema
          description: |
            Schema for the structured output of the worker node. Example: 
            {
                    "name": "SearchQuery",
                    "description": "A search query with justification",
                    "input_schema": {
                        "title": "AnswerWithJustification",
                        "type": "object",
                        "properties": {
                            "search_query": {
                                "title": "Search Query",
                                "type": "string",
                                "description": "The field where search query is stored"
                            },
                            "justification": {
                                "title": "Justification",
                                "type": "string",
                                "description": "The field where justification string is stored"
                            }
                        },
                        "required": ["search_query", "justification"]
                    }
                }
          input_field_type: textarea
        backchannel_response_config:
          anyOf:
            - $ref: '#/components/schemas/PromptConfig'
            - type: 'null'
          title: Backchannel Response Configuration
          description: >-
            Backchannel response configuration. Contains either a LLM system
            prompt or exact static messages
      type: object
      title: Worker LLM Node
    SayLLMNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: System
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: LLM
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        main_response_config:
          anyOf:
            - $ref: '#/components/schemas/PromptConfig'
            - type: 'null'
          title: Main Response Configuration
          description: >-
            Main response configuration. Contains either a LLM system prompt or
            exact static messages
          input_field_type: single_field_object
          input_field_ui_order: 201
        attachable_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Attachable Llm Config Id
          description: >-
            ID of the named LLM Configuration to use. If provided, overrides
            inline configuration.
          input_field_type: llm_config_selection
        llms_config:
          anyOf:
            - oneOf:
                - $ref: '#/components/schemas/AzureOpenAILLMConfig-Output'
                - $ref: '#/components/schemas/OpenAILLMConfig-Output'
                - $ref: '#/components/schemas/GoogleLLMConfig-Output'
                - $ref: '#/components/schemas/AnthropicLLMConfig-Output'
                - $ref: '#/components/schemas/CustomLLMConfig-Output'
                - $ref: '#/components/schemas/WorkflowDefaultLLMConfig-Output'
                - $ref: '#/components/schemas/NoLLMConfig-Output'
                - $ref: '#/components/schemas/LLMGroupConfig-Output'
                - $ref: '#/components/schemas/LLMGroupWithBackchannelConfig-Output'
              discriminator:
                propertyName: type
                mapping:
                  anthropic_llm:
                    $ref: '#/components/schemas/AnthropicLLMConfig-Output'
                  azure_openai_llm:
                    $ref: '#/components/schemas/AzureOpenAILLMConfig-Output'
                  custom_llm:
                    $ref: '#/components/schemas/CustomLLMConfig-Output'
                  global_default_llm:
                    $ref: '#/components/schemas/WorkflowDefaultLLMConfig-Output'
                  google_llm:
                    $ref: '#/components/schemas/GoogleLLMConfig-Output'
                  llm_group:
                    $ref: '#/components/schemas/LLMGroupConfig-Output'
                  llm_group_with_backchannel:
                    $ref: '#/components/schemas/LLMGroupWithBackchannelConfig-Output'
                  no_llm:
                    $ref: '#/components/schemas/NoLLMConfig-Output'
                  openai_llm:
                    $ref: '#/components/schemas/OpenAILLMConfig-Output'
            - type: 'null'
          title: LLM Configuration
          description: LLM or a group of LLMs to be used in this node
          default:
            logical_id: llm_41f18901-b860-4337-ade7-12525f991f46
            provider: default_provider
            streaming: false
            max_retries: 3
            max_parse_retries: 3
            model_kwargs: {}
            do_not_split_sentences: false
            type: global_default_llm
        tools_config:
          anyOf:
            - $ref: '#/components/schemas/ToolsConfig'
            - type: 'null'
          title: Tools Configuration
          description: List of tools available for this node
        self_loop:
          type: boolean
          title: Self Loop
          description: >-
            Whether this node will execute again if not transitioned to another
            node
          default: true
          field_visibility_level: developer
        wait_for_user_message:
          type: boolean
          title: Wait for User Message
          description: Whether the node should wait for a user message before processing
          default: true
          field_visibility_level: developer
        max_consecutive_tool_calls:
          type: integer
          title: Max Consecutive Tool Calls
          description: >-
            Maximum number of consecutive tool calls allowed in a single node
            execution
          default: 1
          field_visibility_level: developer
        default_error_message:
          anyOf:
            - type: string
            - type: 'null'
          title: Default Error Message
          description: Default error message to be returned if the LLM invocation fails
          default: I am sorry, there seems to be an issue. Could you please repeat?
        use_mcp_tools:
          type: boolean
          title: Use MCP Tools
          description: >-
            Whether this node should use tools discovered from workflow-level
            MCP server connections
          default: false
        ignore_default_prompt_prefix:
          type: boolean
          title: Ignore Default Prompt Prefix
          description: >-
            If true, the workflow's default_prompt_prefix will not be prepended
            to this node's prompt.
          default: false
          field_visibility_level: developer
        ignore_default_prompt_suffix:
          type: boolean
          title: Ignore Default Prompt Suffix
          description: >-
            If true, the workflow's default_prompt_suffix will not be appended
            to this node's prompt.
          default: false
          field_visibility_level: developer
        ignore_content_received_during_llm_tool_call_specification:
          type: boolean
          title: Ignore content received during LLM tool call specification
          description: >-
            If true, any free-text content this node's LLM returns in the same
            response as one or more tool calls is ignored: not emitted via
            AssistantResponseEvent, not added to chat history, and not added to
            the node's structured output. Implies the tool-level flag for every
            tool call this node makes.
          default: false
        type:
          type: string
          const: say_llm
          title: Node Type
          description: Type of the node. Must be 'say_llm'
          default: say_llm
          input_field_not_visible: true
        structured_output_schema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Structured Output Schema
          description: >
            Schema for the structured output requested from the say node after
            it produces a response. Example: 

            {
                    "name": "SearchQuery",
                    "description": "A search query with justification",
                    "input_schema": {
                        "title": "AnswerWithJustification",
                        "type": "object",
                        "properties": {
                            "search_query": {
                                "title": "Search Query",
                                "type": "string",
                                "description": "The field where search query is stored"
                            },
                            "justification": {
                                "title": "Justification",
                                "type": "string",
                                "description": "The field where justification string is stored"
                            }
                        },
                        "required": ["search_query", "justification"]
                    }
                }
          input_field_type: textarea
        backchannel_response_config:
          anyOf:
            - $ref: '#/components/schemas/PromptConfig'
            - type: 'null'
          title: Backchannel Response Configuration
          description: >-
            Backchannel response configuration. Contains either a LLM system
            prompt or exact static messages
      type: object
      title: LLM Node
    SayStaticMessageNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: System
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: Static Message
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        type:
          type: string
          const: say_static
          title: Node Type
          description: Type of the node. Must be 'say_static'
          default: say_static
          input_field_not_visible: true
        static_messages_config:
          anyOf:
            - $ref: '#/components/schemas/StaticMessagesConfig'
            - type: 'null'
          title: Static Messages Configuration
          description: >-
            Configuration for static messages. Contains a list of pre-configured
            messages
          input_field_ui_order: 201
      type: object
      title: Static Messages Node
    SuperNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: Super Node
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: Super Node
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        type:
          type: string
          const: super_node
          title: Node Type
          description: Type of the node. Must be 'super_node'
          default: super_node
          input_field_not_visible: true
        super_workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Super Workflow ID
          description: The ID of the workflow encapsulated by this super node
          input_field_not_visible: true
        super_workflow_version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Super Workflow Version Number
          description: >-
            Specific version of the encapsulated workflow. If None, the active
            version is used at execution time.
          input_field_not_visible: true
        field_values:
          additionalProperties: true
          type: object
          title: Field Values
          description: >-
            Values provided by the calling workflow for each of the super node's
            declared input fields. Keyed by SuperNodeInputField.name.
        override_llm_config:
          type: boolean
          title: Override LLM Configuration
          description: >-
            When true, LLM-based nodes inside this super node use the LLM
            configuration specified here (attachable_llm_config_id or
            llms_config) instead of their own authored config. When false (the
            default), interior nodes keep their authored LLM configuration.
          default: false
        override_only_workflow_default_nodes:
          type: boolean
          title: Only Override Workflow-Default Nodes
          description: >-
            Scopes the LLM override. When false (the default), every interior
            LLM node is overridden. When true, only interior LLM nodes that are
            themselves set to 'Workflow Default LLM' (i.e. had no explicit
            config of their own) are overridden; nodes with an explicit
            inline/named config are left untouched. Only relevant when
            override_llm_config is true.
          default: false
        attachable_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Attachable Llm Config Id
          description: >-
            ID of the named LLM Configuration to apply to the targeted interior
            LLM nodes. If provided, overrides the inline llms_config. Only
            relevant when override_llm_config is true.
          input_field_type: llm_config_selection
        llms_config:
          anyOf:
            - oneOf:
                - $ref: '#/components/schemas/AzureOpenAILLMConfig-Output'
                - $ref: '#/components/schemas/OpenAILLMConfig-Output'
                - $ref: '#/components/schemas/GoogleLLMConfig-Output'
                - $ref: '#/components/schemas/AnthropicLLMConfig-Output'
                - $ref: '#/components/schemas/CustomLLMConfig-Output'
                - $ref: '#/components/schemas/WorkflowDefaultLLMConfig-Output'
                - $ref: '#/components/schemas/NoLLMConfig-Output'
                - $ref: '#/components/schemas/LLMGroupConfig-Output'
                - $ref: '#/components/schemas/LLMGroupWithBackchannelConfig-Output'
              discriminator:
                propertyName: type
                mapping:
                  anthropic_llm:
                    $ref: '#/components/schemas/AnthropicLLMConfig-Output'
                  azure_openai_llm:
                    $ref: '#/components/schemas/AzureOpenAILLMConfig-Output'
                  custom_llm:
                    $ref: '#/components/schemas/CustomLLMConfig-Output'
                  global_default_llm:
                    $ref: '#/components/schemas/WorkflowDefaultLLMConfig-Output'
                  google_llm:
                    $ref: '#/components/schemas/GoogleLLMConfig-Output'
                  llm_group:
                    $ref: '#/components/schemas/LLMGroupConfig-Output'
                  llm_group_with_backchannel:
                    $ref: '#/components/schemas/LLMGroupWithBackchannelConfig-Output'
                  no_llm:
                    $ref: '#/components/schemas/NoLLMConfig-Output'
                  openai_llm:
                    $ref: '#/components/schemas/OpenAILLMConfig-Output'
            - type: 'null'
          title: LLM Configuration
          description: >-
            Inline LLM configuration applied to the targeted interior LLM nodes.
            Use 'Workflow Default LLM' to fall back to the base workflow's
            workflow-level config. Only relevant when override_llm_config is
            true.
        reverse_edge_scope:
          anyOf:
            - $ref: '#/components/schemas/SuperNodeReverseEdgeScope'
            - type: 'null'
          title: Reverse Edge Scope
          description: >-
            Controls which inlined sub-workflow nodes receive this super node's
            global_node_config.reverse_conditional_edge during expansion. When
            None (the default), behaves as 'all_interior_llm_nodes': the reverse
            is stamped onto every interior LLM node so the user can return to
            the caller from anywhere inside the super node. 'terminal_nodes'
            restricts it to the sub-workflow's terminal LLM nodes only. Only
            relevant when global_node_config.reverse_conditional_edge is set.
            Kept Optional (None == default behaviour) so the field can be
            removed later without breaking existing configs.
        super_node_interface:
          anyOf:
            - $ref: '#/components/schemas/SuperNodeInterface'
            - type: 'null'
          title: Super Node Interface
          description: >-
            Interface definition for this super node. Copied from the super node
            entity at embedding time. Used by the expander at runtime to resolve
            field_values mappings. Not user-editable.
          input_field_not_visible: true
        encapsulated_workflow_config:
          anyOf:
            - $ref: '#/components/schemas/WorkflowConfigFullyHydrated-Output'
            - type: 'null'
          title: Encapsulated Workflow Config
          description: >-
            Snapshot of the fully-hydrated sub-workflow config at the time this
            super node was embedded. Used by the expander at runtime instead of
            a DB fetch. Not user-editable.
          input_field_not_visible: true
      type: object
      title: Super Node
    WorkflowRunFetchNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: System
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: Evaluation
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        type:
          type: string
          const: workflow_run_fetch
          title: Node Type
          description: Type of the node. Must be 'workflow_run_fetch'
          default: workflow_run_fetch
          input_field_not_visible: true
        workflow_run_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow Run ID
          description: ID of the workflow run to fetch
          default: '{{workflow_run_id}}'
        result_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Result Runtime Variable Name
          description: Name of the runtime variable to store the result in
          default: workflow_run_object
      type: object
      title: Workflow Run Fetch Node Configuration
    WorkflowRunEvalLLMNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: System
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: Evaluation
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        main_response_config:
          anyOf:
            - $ref: '#/components/schemas/PromptConfig'
            - type: 'null'
          title: Main Response Configuration
          description: >-
            Main response configuration. Contains either a LLM system prompt or
            exact static messages
          input_field_type: single_field_object
          input_field_ui_order: 201
        attachable_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Attachable Llm Config Id
          description: >-
            ID of the named LLM Configuration to use. If provided, overrides
            inline configuration.
          input_field_type: llm_config_selection
        llms_config:
          anyOf:
            - oneOf:
                - $ref: '#/components/schemas/AzureOpenAILLMConfig-Output'
                - $ref: '#/components/schemas/OpenAILLMConfig-Output'
                - $ref: '#/components/schemas/GoogleLLMConfig-Output'
                - $ref: '#/components/schemas/AnthropicLLMConfig-Output'
                - $ref: '#/components/schemas/CustomLLMConfig-Output'
                - $ref: '#/components/schemas/WorkflowDefaultLLMConfig-Output'
                - $ref: '#/components/schemas/NoLLMConfig-Output'
                - $ref: '#/components/schemas/LLMGroupConfig-Output'
                - $ref: '#/components/schemas/LLMGroupWithBackchannelConfig-Output'
              discriminator:
                propertyName: type
                mapping:
                  anthropic_llm:
                    $ref: '#/components/schemas/AnthropicLLMConfig-Output'
                  azure_openai_llm:
                    $ref: '#/components/schemas/AzureOpenAILLMConfig-Output'
                  custom_llm:
                    $ref: '#/components/schemas/CustomLLMConfig-Output'
                  global_default_llm:
                    $ref: '#/components/schemas/WorkflowDefaultLLMConfig-Output'
                  google_llm:
                    $ref: '#/components/schemas/GoogleLLMConfig-Output'
                  llm_group:
                    $ref: '#/components/schemas/LLMGroupConfig-Output'
                  llm_group_with_backchannel:
                    $ref: '#/components/schemas/LLMGroupWithBackchannelConfig-Output'
                  no_llm:
                    $ref: '#/components/schemas/NoLLMConfig-Output'
                  openai_llm:
                    $ref: '#/components/schemas/OpenAILLMConfig-Output'
            - type: 'null'
          title: LLM Configuration
          description: LLM or a group of LLMs to be used in this node
          default:
            logical_id: llm_41f18901-b860-4337-ade7-12525f991f46
            provider: default_provider
            streaming: false
            max_retries: 3
            max_parse_retries: 3
            model_kwargs: {}
            do_not_split_sentences: false
            type: global_default_llm
        tools_config:
          anyOf:
            - $ref: '#/components/schemas/ToolsConfig'
            - type: 'null'
          title: Tools Configuration
          description: List of tools available for this node
        self_loop:
          type: boolean
          title: Self Loop
          description: >-
            Evaluator nodes should not have self-loops, so this option is
            disabled
          default: false
          input_field_not_visible: true
        wait_for_user_message:
          type: boolean
          title: Wait for User Message
          description: >-
            Evaluator nodes should not wait for user messages to proceed, so
            this option is disabled
          default: false
          input_field_not_visible: true
        max_consecutive_tool_calls:
          type: integer
          title: Max Consecutive Tool Calls
          description: >-
            Maximum number of consecutive tool calls allowed in a single node
            execution
          default: 1
          field_visibility_level: developer
        default_error_message:
          anyOf:
            - type: string
            - type: 'null'
          title: Default Error Message
          description: >-
            Evaluator nodes should not have default error messages, so this
            option is disabled
          input_field_not_visible: true
        use_mcp_tools:
          type: boolean
          title: Use MCP Tools
          description: >-
            Whether this node should use tools discovered from workflow-level
            MCP server connections
          default: false
        ignore_default_prompt_prefix:
          type: boolean
          title: Ignore Default Prompt Prefix
          description: >-
            If true, the workflow's default_prompt_prefix will not be prepended
            to this node's prompt.
          default: false
          field_visibility_level: developer
        ignore_default_prompt_suffix:
          type: boolean
          title: Ignore Default Prompt Suffix
          description: >-
            If true, the workflow's default_prompt_suffix will not be appended
            to this node's prompt.
          default: false
          field_visibility_level: developer
        ignore_content_received_during_llm_tool_call_specification:
          type: boolean
          title: Ignore content received during LLM tool call specification
          description: >-
            If true, any free-text content this node's LLM returns in the same
            response as one or more tool calls is ignored: not emitted via
            AssistantResponseEvent, not added to chat history, and not added to
            the node's structured output. Implies the tool-level flag for every
            tool call this node makes.
          default: false
        type:
          type: string
          const: workflow_run_evaluator
          title: Node Type
          description: Type of the node. Must be 'workflow_run_evaluator'
          default: workflow_run_evaluator
          input_field_not_visible: true
        structured_output_schema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Structured Output Schema
          description: >-
            Schema for the structured evaluation output. If empty or None, no
            structured output is expected.
          input_field_type: textarea
        backchannel_response_config:
          anyOf:
            - $ref: '#/components/schemas/PromptConfig'
            - type: 'null'
          title: Backchannel Response Configuration
          description: >-
            Backchannel response configuration. Contains either a LLM system
            prompt or exact static messages
        input_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Input Runtime Variable Name
          description: >-
            Runtime variable name from which to read the input to be evaluated.
            It is expected to contain the 'WorkflowRun' object to be evaluated.
          default: workflow_run_object
        output_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Output Runtime Variable Name
          description: Runtime variable name to store the structured evaluation output
        is_turn_by_turn_evaluator:
          type: boolean
          title: Is Turn-by-Turn Evaluator
          description: >-
            Indicates if this evaluator is intended to evaluate each turn in a
            multi-turn workflow run
          default: false
      type: object
      title: Evaluator Node
      description: >-
        Configuration for nodes that evaluate workflow runs.


        Evaluator nodes are used to assess, summarize and score outputs from
        workflow runs.
    ToolNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: System
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: Tool
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        type:
          type: string
          const: tool_node
          title: Type
          description: Type of the node. Must be 'tool_node'
          default: tool_node
        tool_config:
          anyOf:
            - oneOf:
                - $ref: '#/components/schemas/InlinePythonToolConfig'
                - $ref: '#/components/schemas/InbuiltFunctionToolConfig'
                - $ref: '#/components/schemas/ExternalAPIToolConfig'
                - $ref: '#/components/schemas/KnowledgeBaseToolConfig'
              discriminator:
                propertyName: type
                mapping:
                  external_api:
                    $ref: '#/components/schemas/ExternalAPIToolConfig'
                  inbuilt_function:
                    $ref: '#/components/schemas/InbuiltFunctionToolConfig'
                  inline_python:
                    $ref: '#/components/schemas/InlinePythonToolConfig'
                  knowledge_base:
                    $ref: '#/components/schemas/KnowledgeBaseToolConfig'
            - type: 'null'
          title: Tool Configuration
          description: Configuration for the tool to be executed
        tool_arguments:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Tool Arguments
          description: >-
            Arguments to pass to the tool. Can contain dynamic/runtime variables
            as strings or inside nested structures.
        result_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Result Runtime Variable Name
          description: >-
            Name of the runtime variable to store the result of the tool
            execution
          default: tool_result
      type: object
      title: ToolNodeConfig
    StartConversationNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: System
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: Conversation
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        type:
          type: string
          const: start_conversation
          title: Node Type
          description: Type of the node. Must be 'start_conversation'
          default: start_conversation
          input_field_not_visible: true
        is_voice_conversation:
          type: boolean
          title: Is Voice Conversation
          description: Whether this conversation is a voice-based conversation
          default: false
          input_field_ui_order: 201
        is_outbound_call:
          type: boolean
          title: Is Outbound Call
          description: Whether this conversation is an outbound call
          default: true
          input_field_ui_order: 202
        bearer_token:
          anyOf:
            - type: string
            - type: 'null'
          title: Bearer Token
          description: >-
            The bearer token used for authenticating with the outbound phone
            call service
          input_field_ui_order: 203
        assistant_number:
          anyOf:
            - type: string
            - type: 'null'
          title: Assistant Phone Number
          description: >-
            The phone number assigned to the assistant to make the call from (in
            E.164 format)
          input_field_ui_order: 204
        assistant_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Assistant ID
          description: The ID of the assistant to use for the conversation
          input_field_ui_order: 205
        user_number:
          anyOf:
            - type: string
            - type: 'null'
          title: User Phone Number
          description: The phone number of the user to call (in E.164 format)
          input_field_ui_order: 206
        conversation_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Conversation ID
          description: >-
            The ID of the conversation to poll. If provided, an outbound call
            will not be initiated, and the system will instead poll for an
            existing conversation with this ID.
        polling_interval_seconds:
          anyOf:
            - type: integer
            - type: 'null'
          title: Polling Interval Seconds
          description: >-
            If polling for an existing conversation, the interval (in seconds)
            at which to poll for updates
          default: 2
      type: object
      title: Start Conversation Node
    EndConversationNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: System
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: Conversation
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        type:
          type: string
          const: end_conversation
          title: Node Type
          description: Type of the node. Must be 'end_conversation'
          default: end_conversation
          input_field_not_visible: true
        process_transcript_prompt:
          anyOf:
            - $ref: '#/components/schemas/PromptConfig'
            - type: 'null'
          title: Process Transcript Prompt Configuration
          description: Prompt configuration for processing the conversation transcript
        process_transcript_llms_config:
          anyOf:
            - oneOf:
                - $ref: '#/components/schemas/AzureOpenAILLMConfig-Output'
                - $ref: '#/components/schemas/OpenAILLMConfig-Output'
                - $ref: '#/components/schemas/GoogleLLMConfig-Output'
                - $ref: '#/components/schemas/AnthropicLLMConfig-Output'
                - $ref: '#/components/schemas/CustomLLMConfig-Output'
                - $ref: '#/components/schemas/WorkflowDefaultLLMConfig-Output'
                - $ref: '#/components/schemas/NoLLMConfig-Output'
                - $ref: '#/components/schemas/LLMGroupConfig-Output'
                - $ref: '#/components/schemas/LLMGroupWithBackchannelConfig-Output'
              discriminator:
                propertyName: type
                mapping:
                  anthropic_llm:
                    $ref: '#/components/schemas/AnthropicLLMConfig-Output'
                  azure_openai_llm:
                    $ref: '#/components/schemas/AzureOpenAILLMConfig-Output'
                  custom_llm:
                    $ref: '#/components/schemas/CustomLLMConfig-Output'
                  global_default_llm:
                    $ref: '#/components/schemas/WorkflowDefaultLLMConfig-Output'
                  google_llm:
                    $ref: '#/components/schemas/GoogleLLMConfig-Output'
                  llm_group:
                    $ref: '#/components/schemas/LLMGroupConfig-Output'
                  llm_group_with_backchannel:
                    $ref: '#/components/schemas/LLMGroupWithBackchannelConfig-Output'
                  no_llm:
                    $ref: '#/components/schemas/NoLLMConfig-Output'
                  openai_llm:
                    $ref: '#/components/schemas/OpenAILLMConfig-Output'
            - type: 'null'
          title: Process Transcript LLM(s) Configuration
          description: >-
            LLM or a group of LLMs to be used for processing the conversation
            transcript
      type: object
      title: End Conversation Node
    SendSMSNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: Communications
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: SMS
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        type:
          type: string
          const: send_sms
          title: Node Type
          description: Type of the node. Must be 'send_sms'
          default: send_sms
          input_field_not_visible: true
        destination_phone_number:
          anyOf:
            - type: string
            - type: 'null'
          title: Destination Phone Number
          description: >-
            Destination phone number in E.164 format. Example of E.164 format:
            +1234567890
          input_field_ui_order: 201
        message:
          anyOf:
            - type: string
            - type: 'null'
          title: SMS Message
          description: >-
            SMS message to be sent. Can include dynamic and runtime variable
            placeholders for dynamic content.
          input_field_ui_order: 202
      type: object
      title: Send SMS Node
    GoogleDocsNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: Google Workspace
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: Google Docs
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        type:
          type: string
          const: google_docs
          title: Node Type
          description: Type of the node. Must be 'google_docs'
          default: google_docs
          input_field_not_visible: true
        credentials:
          anyOf:
            - oneOf:
                - $ref: '#/components/schemas/GoogleWorkspaceOAuth2Credentials'
                - $ref: >-
                    #/components/schemas/GoogleWorkspaceServiceAccountCredentials
                - $ref: '#/components/schemas/GoogleWorkspaceAPIKeyCredentials'
              discriminator:
                propertyName: type
                mapping:
                  google_workspace_api_key:
                    $ref: '#/components/schemas/GoogleWorkspaceAPIKeyCredentials'
                  google_workspace_oauth2:
                    $ref: '#/components/schemas/GoogleWorkspaceOAuth2Credentials'
                  google_workspace_service_account:
                    $ref: >-
                      #/components/schemas/GoogleWorkspaceServiceAccountCredentials
            - type: 'null'
          title: Google Workspace Credentials
          description: >-
            Credentials for Google Workspace. If not provided, the default
            credentials will be used.
        operate_document:
          anyOf:
            - oneOf:
                - $ref: '#/components/schemas/GoogleDocsCreateDocumentConfig'
                - $ref: '#/components/schemas/GoogleDocsGetDocumentConfig'
                - $ref: '#/components/schemas/GoogleDocsUpdateDocumentConfig'
              discriminator:
                propertyName: type
                mapping:
                  google_docs_create_document:
                    $ref: '#/components/schemas/GoogleDocsCreateDocumentConfig'
                  google_docs_get_document:
                    $ref: '#/components/schemas/GoogleDocsGetDocumentConfig'
                  google_docs_update_document:
                    $ref: '#/components/schemas/GoogleDocsUpdateDocumentConfig'
            - type: 'null'
          title: Document Operation
          description: >-
            Configuration for operating on a Google Docs document (create, get,
            or update).
      type: object
      title: Google Docs Node
    HttpRequestNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: REST API
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: HTTP Request
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        type:
          type: string
          const: http_request
          title: Node Type
          description: Type of the node. Must be 'http_request'
          default: http_request
          input_field_not_visible: true
        url:
          anyOf:
            - type: string
            - type: 'null'
          title: HTTP Request URL
          description: The URL to send the HTTP request to
          input_field_ui_order: 201
        method:
          anyOf:
            - $ref: '#/components/schemas/HttpMethodEnum'
            - type: 'null'
          title: HTTP Method
          description: HTTP method to use (GET, POST, PUT, PATCH, DELETE, etc.)
          default: GET
        headers:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Headers
          description: Optional HTTP headers as a dictionary
        query_parameters:
          anyOf:
            - type: string
            - type: 'null'
          title: Query Parameters
          description: Query parameters as a dictionary
          input_field_type: textarea
        body_parameters:
          anyOf:
            - type: string
            - type: 'null'
          title: Body Parameters
          description: Body parameters as a dictionary (for POST, PUT, PATCH)
          input_field_type: textarea
        body_content_type:
          anyOf:
            - $ref: '#/components/schemas/BodyContentTypeEnum'
            - type: 'null'
          title: Body Content-Type
          description: >-
            Content-Type for the request body (e.g., application/json,
            form-data)
          default: application/json
        timeout:
          anyOf:
            - type: integer
              maximum: 300
              minimum: 0
            - type: 'null'
          title: Timeout (seconds)
          description: Timeout for the HTTP request in seconds
          default: 30
        response_format:
          anyOf:
            - $ref: '#/components/schemas/ResponseFormatEnum'
            - type: 'null'
          title: Response Format
          description: Expected response format (json, text, binary)
          default: json
        result_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Result Runtime Variable Name
          description: Name of the runtime variable to store the result
          default: http_request_result
      type: object
      title: HTTP Request Node
    AthenaPatientsSearchNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: Athena
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: EHR Integrations
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        source_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Source ID
          description: Source ID of the node
        department_id:
          anyOf:
            - type: integer
            - type: 'null'
          title: Department ID
          description: Department ID of the node
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: API key for the node
        timezone:
          anyOf:
            - type: string
            - type: 'null'
          title: Timezone
          description: 'Timezone in IANA format ex: ''America/New_York'''
          default: America/New_York
        reminders:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Reminders
          description: Whether to send reminders for the node
          default: false
          input_field_not_visible: true
        slotfill_outreach:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Slot Fill Outreach
          description: Whether to enable slot fill outreach for the node
          default: false
          input_field_not_visible: true
        working_hours:
          anyOf:
            - $ref: '#/components/schemas/WorkingHours'
            - type: 'null'
          title: Working Hours
          description: Working hours for the node
          input_field_not_visible: true
        use_cases:
          items:
            $ref: '#/components/schemas/UseCase'
          type: array
          title: Use Cases
          description: Use cases for the node
          input_field_not_visible: true
        type:
          type: string
          const: athena_patients_search
          title: Node Type
          description: Type of the node. Must be 'athena_patients_search'
          default: athena_patients_search
          input_field_not_visible: true
        phone_number:
          anyOf:
            - type: string
            - type: 'null'
          title: 'Patient Phone Number ex: home'
          description: Phone number of the patient to create
        full_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Patient Full Name
          description: Full name of the patient to retrieve
        birthdate:
          anyOf:
            - type: string
            - type: 'null'
          title: Patient Birthdate
          description: Birthdate of the patient to retrieve
      type: object
      title: Athena Patients Search Node
    AthenaPatientsCreateNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: Athena
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: EHR Integrations
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        source_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Source ID
          description: Source ID of the node
        department_id:
          anyOf:
            - type: integer
            - type: 'null'
          title: Department ID
          description: Department ID of the node
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: API key for the node
        timezone:
          anyOf:
            - type: string
            - type: 'null'
          title: Timezone
          description: 'Timezone in IANA format ex: ''America/New_York'''
          default: America/New_York
        reminders:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Reminders
          description: Whether to send reminders for the node
          default: false
          input_field_not_visible: true
        slotfill_outreach:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Slot Fill Outreach
          description: Whether to enable slot fill outreach for the node
          default: false
          input_field_not_visible: true
        working_hours:
          anyOf:
            - $ref: '#/components/schemas/WorkingHours'
            - type: 'null'
          title: Working Hours
          description: Working hours for the node
          input_field_not_visible: true
        use_cases:
          items:
            $ref: '#/components/schemas/UseCase'
          type: array
          title: Use Cases
          description: Use cases for the node
          input_field_not_visible: true
        type:
          type: string
          const: athena_patients_create
          title: Node Type
          description: Type of the node. Must be 'athena_patients_create'
          default: athena_patients_create
          input_field_not_visible: true
        first_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Patient First Name
          description: First name of the patient to create
        last_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Patient Last Name
          description: Last name of the patient to create
        phone_number:
          anyOf:
            - type: string
            - type: 'null'
          title: 'Patient Phone Number ex: home'
          description: Phone number of the patient to create
        birthdate:
          anyOf:
            - type: string
            - type: 'null'
          title: Patient Birthdate
          description: Birthdate of the patient to retrieve
        gender:
          anyOf:
            - $ref: '#/components/schemas/Gender'
            - type: 'null'
          title: Patient Gender
          description: Gender of the patient to create
          default: Male
        email:
          anyOf:
            - type: string
            - type: 'null'
          title: Patient Email
          description: Email of the patient to create
        notes:
          anyOf:
            - type: string
            - type: 'null'
          title: Patient Notes
          description: Notes about the patient to create
        mobile_number:
          anyOf:
            - type: string
            - type: 'null'
          title: 'Patient Mobile Number ex: mobile'
          description: Mobile number of the patient to create
      type: object
      title: Athena Patients Create Node
    AthenaPatientsUpdateNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: Athena
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: EHR Integrations
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        source_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Source ID
          description: Source ID of the node
        department_id:
          anyOf:
            - type: integer
            - type: 'null'
          title: Department ID
          description: Department ID of the node
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: API key for the node
        timezone:
          anyOf:
            - type: string
            - type: 'null'
          title: Timezone
          description: 'Timezone in IANA format ex: ''America/New_York'''
          default: America/New_York
        reminders:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Reminders
          description: Whether to send reminders for the node
          default: false
          input_field_not_visible: true
        slotfill_outreach:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Slot Fill Outreach
          description: Whether to enable slot fill outreach for the node
          default: false
          input_field_not_visible: true
        working_hours:
          anyOf:
            - $ref: '#/components/schemas/WorkingHours'
            - type: 'null'
          title: Working Hours
          description: Working hours for the node
          input_field_not_visible: true
        use_cases:
          items:
            $ref: '#/components/schemas/UseCase'
          type: array
          title: Use Cases
          description: Use cases for the node
          input_field_not_visible: true
        type:
          type: string
          const: athena_patients_update
          title: Node Type
          description: Type of the node. Must be 'athena_patients_update'
          default: athena_patients_update
          input_field_not_visible: true
        patient_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Patient ID
          description: ID of the patient to update
        first_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Patient First Name
          description: First name of the patient to update
        last_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Patient Last Name
          description: Last name of the patient to update
        phone_number:
          anyOf:
            - type: string
            - type: 'null'
          title: 'Patient Phone Number ex: home'
          description: Phone number of the patient to update
        birthdate:
          anyOf:
            - type: string
            - type: 'null'
          title: Patient Birthdate
          description: Birthdate of the patient to update (YYYY-MM-DD)
        gender:
          anyOf:
            - $ref: '#/components/schemas/Gender'
            - type: 'null'
          title: Patient Gender
          description: Gender of the patient to update
          default: Male
        email:
          anyOf:
            - type: string
            - type: 'null'
          title: Patient Email
          description: Email of the patient to update
        notes:
          anyOf:
            - type: string
            - type: 'null'
          title: Patient Notes
          description: Notes about the patient to update
        notes_action:
          type: string
          enum:
            - append
            - replace
          title: Notes Action
          description: Action to perform on notes field
          default: append
        mobile_number:
          anyOf:
            - type: string
            - type: 'null'
          title: 'Patient Mobile Number ex: mobile'
          description: Mobile number of the patient to update
      type: object
      title: Athena Patients Update Node
    AthenaAppointmentsCreateNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: Athena
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: EHR Integrations
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        source_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Source ID
          description: Source ID of the node
        department_id:
          anyOf:
            - type: integer
            - type: 'null'
          title: Department ID
          description: Department ID of the node
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: API key for the node
        timezone:
          anyOf:
            - type: string
            - type: 'null'
          title: Timezone
          description: 'Timezone in IANA format ex: ''America/New_York'''
          default: America/New_York
        reminders:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Reminders
          description: Whether to send reminders for the node
          default: false
          input_field_not_visible: true
        slotfill_outreach:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Slot Fill Outreach
          description: Whether to enable slot fill outreach for the node
          default: false
          input_field_not_visible: true
        working_hours:
          anyOf:
            - $ref: '#/components/schemas/WorkingHours'
            - type: 'null'
          title: Working Hours
          description: Working hours for the node
          input_field_not_visible: true
        use_cases:
          items:
            $ref: '#/components/schemas/UseCase'
          type: array
          title: Use Cases
          description: Use cases for the node
          input_field_not_visible: true
        type:
          type: string
          const: athena_appointments_create
          title: Node Type
          description: Type of the node. Must be 'athena_appointments_create'
          default: athena_appointments_create
          input_field_not_visible: true
        title:
          anyOf:
            - type: string
            - type: 'null'
          title: Appointment Title
          description: Title of the appointment
        patient_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Patient ID
          description: ID of the patient to create the appointment for
        practitioner_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Practitioner ID
          description: ID of the practitioner for the appointment
        start_time:
          anyOf:
            - type: string
            - type: 'null'
          title: Start Time
          description: Start time of the appointment
        duration_in_minutes:
          anyOf:
            - type: integer
            - type: 'null'
          title: Duration in Minutes
          description: Duration of the appointment in minutes
          default: 15
      type: object
      title: Athena Appointments Create Node
    DeduplicateNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: Data Transformation
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: Deduplication
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        type:
          type: string
          const: deduplicate
          title: Type
          description: Type of the node. Must be 'deduplicate'
          default: deduplicate
        input_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Input Variable Name
          description: >-
            Name of the runtime variable that holds the list of objects to
            deduplicate
        dedup_key:
          anyOf:
            - type: string
            - type: 'null'
          title: Dedup Key
          description: >-
            Dot-notation key path used to identify duplicates (e.g. 'id',
            'user.email'). The first object with a given key value is kept;
            subsequent ones are removed. Objects missing the key are always
            kept. Ignored if dedup_key_runtime_variable_name is set.
        dedup_key_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Dedup Key Variable Name
          description: >-
            Name of the runtime variable holding the dot-notation key path. When
            set, this takes priority over the static dedup_key.
        output_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Output Variable Name
          description: >-
            Name of the runtime variable where the deduplicated list will be
            stored
          default: deduplicate_result
      type: object
      title: DeduplicateNodeConfig
    FieldExtractorNodeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Unique identifier for the node
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Name
          description: Name of the node
          input_field_ui_order: 101
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Description
          description: Description of the node
          input_field_ui_order: 301
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        primary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Primary Category
          description: Primary category of the node
          default: Data Transformation
          input_field_not_visible: true
        secondary_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Secondary Category
          description: Secondary category of the node
          default: Extraction
          input_field_not_visible: true
        is_start:
          type: boolean
          title: Is Start Node
          description: Whether this node is the starting node of the workflow
          default: false
        is_guardrail_node:
          type: boolean
          title: Is Guardrail Node
          description: >-
            Whether this node is a guardrail node. When the workflow-level
            `miscellaneous.no_hopping_between_guardrail_nodes` setting is
            enabled (the default), the runtime blocks conditional transitions
            from this guardrail node to any other guardrail node — including
            regular freeform/expression conditional edges and synthesized
            global-node edges. Self-edges and self-loops on the same guardrail
            node remain allowed.
          default: false
        global_node_config:
          anyOf:
            - $ref: '#/components/schemas/GlobalNodeConfig'
            - type: 'null'
          title: Global Node Configuration
          description: Configuration for when this node is a global node
          keep_collapsed: true
        type:
          type: string
          const: field_extractor
          title: Type
          description: Type of the node. Must be 'field_extractor'
          default: field_extractor
        input_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Input Variable Name
          description: >-
            Name of the runtime variable that holds the input JSON to be
            filtered
        keys_to_retain:
          items:
            type: string
          type: array
          title: Keys to Retain
          description: >-
            Static list of key paths to retain in the output. Supports dot
            notation for nested keys (e.g. 'address.city'), bracket notation for
            arrays (e.g. 'orders[].id' for all elements, 'orders[1].id' for a
            specific index). Ignored if keys_to_retain_runtime_variable_name is
            set.
        keys_to_retain_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Keys to Retain Variable Name
          description: >-
            Name of the runtime variable holding the list of key paths to
            retain. When set, this takes priority over the static keys_to_retain
            list.
        output_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Output Variable Name
          description: >-
            Name of the runtime variable where the extracted result will be
            stored
          default: field_extractor_result
      type: object
      title: FieldExtractorNodeConfig
    DirectEdgeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Edge Logical ID
          description: Unique identifier for the edge
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Edge Name
          description: Name of the edge
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Edge Description
          description: Description of the edge
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        source_node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Source Node Logical ID
          description: Logical ID of the source node for this edge
          input_field_not_visible: true
        destination_node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Destination Node Logical ID
          description: Logical ID of the target node for this edge
          input_field_not_visible: true
        type:
          type: string
          const: direct
          title: Edge Type
          description: >-
            Type of the edge. Expected to be always 'direct' for this base
            config
          default: direct
      type: object
      title: Direct Edge
    ConditionalEdgeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Edge Logical ID
          description: Unique identifier for the edge
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Edge Name
          description: Name of the edge
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Edge Description
          description: Description of the edge
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        source_node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Source Node Logical ID
          description: Logical ID of the source node for this edge
          input_field_not_visible: true
        destination_node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Destination Node Logical ID
          description: Logical ID of the target node for this edge
          input_field_not_visible: true
        type:
          type: string
          const: conditional
          title: Edge Type
          description: >-
            Type of the edge. Expected to be always 'conditional' for this
            config
          default: conditional
        condition:
          anyOf:
            - $ref: '#/components/schemas/ConditionConfig'
            - type: 'null'
          title: Edge Condition
          description: Condition that determines whether this edge is taken
      type: object
      title: Conditional Edge
    CompanionEdgeConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Edge Logical ID
          description: Unique identifier for the edge
          input_field_disallowed: true
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Edge Name
          description: Name of the edge
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Edge Description
          description: Description of the edge
        workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Workflow DB Object ID
          description: The DB Object ID of the workflow this entity belongs to
          input_field_not_visible: true
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Workflow Version Number
          description: >-
            Version number of the workflow this entity belongs to. 0 is the
            initial version (default).
          default: 0
          input_field_not_visible: true
        disabled:
          type: boolean
          title: Disabled
          description: >-
            If true, this entity will be disabled and will not execute its
            function. Useful for testing workflows without actually executing
            this specific entity
          default: false
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Config
          description: Miscellaneous config data that can be used by the entity
          field_visibility_level: super_admin
        source_node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Source Node Logical ID
          description: Logical ID of the source node for this edge
          input_field_not_visible: true
        destination_node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Destination Node Logical ID
          description: Logical ID of the target node for this edge
          input_field_not_visible: true
        type:
          type: string
          const: companion
          title: Edge Type
          description: Type of the edge. Expected to be always 'companion' for this config
          default: companion
      type: object
      title: Companion Edge
    WorkflowCommand:
      type: string
      enum:
        - start
        - data
        - resume
        - pause
        - stop
      title: WorkflowCommand
    NodesRunInputs:
      properties:
        node_run_inputs:
          items:
            oneOf:
              - $ref: '#/components/schemas/BaseNodeRunInput'
              - $ref: '#/components/schemas/LLMNodeRunInput'
              - $ref: '#/components/schemas/SayStaticMessageNodeRunInput'
              - $ref: '#/components/schemas/SuperNodeRunInput'
              - $ref: '#/components/schemas/WorkflowRunFetchNodeRunInput'
              - $ref: '#/components/schemas/WorkflowRunEvalLLMNodeRunInput'
              - $ref: '#/components/schemas/ToolNodeRunInput'
              - $ref: '#/components/schemas/StartConversationNodeRunInput'
              - $ref: '#/components/schemas/EndConversationNodeRunInput'
              - $ref: '#/components/schemas/SendSMSNodeRunInput'
              - $ref: '#/components/schemas/GoogleDocsNodeRunInput'
              - $ref: '#/components/schemas/HttpRequestNodeRunInput'
              - $ref: '#/components/schemas/AthenaPatientsSearchNodeRunInput'
              - $ref: '#/components/schemas/AthenaPatientsCreateNodeRunInput'
              - $ref: '#/components/schemas/AthenaPatientsUpdateNodeRunInput'
              - $ref: '#/components/schemas/AthenaAppointmentsCreateNodeRunInput'
              - $ref: '#/components/schemas/DeduplicateNodeRunInput'
              - $ref: '#/components/schemas/FieldExtractorNodeRunInput'
            discriminator:
              propertyName: type
              mapping:
                athena_appointments_create:
                  $ref: '#/components/schemas/AthenaAppointmentsCreateNodeRunInput'
                athena_patients_create:
                  $ref: '#/components/schemas/AthenaPatientsCreateNodeRunInput'
                athena_patients_search:
                  $ref: '#/components/schemas/AthenaPatientsSearchNodeRunInput'
                athena_patients_update:
                  $ref: '#/components/schemas/AthenaPatientsUpdateNodeRunInput'
                base_node:
                  $ref: '#/components/schemas/BaseNodeRunInput'
                deduplicate:
                  $ref: '#/components/schemas/DeduplicateNodeRunInput'
                end_conversation:
                  $ref: '#/components/schemas/EndConversationNodeRunInput'
                field_extractor:
                  $ref: '#/components/schemas/FieldExtractorNodeRunInput'
                google_docs:
                  $ref: '#/components/schemas/GoogleDocsNodeRunInput'
                http_request:
                  $ref: '#/components/schemas/HttpRequestNodeRunInput'
                llm:
                  $ref: '#/components/schemas/LLMNodeRunInput'
                say_static:
                  $ref: '#/components/schemas/SayStaticMessageNodeRunInput'
                send_sms:
                  $ref: '#/components/schemas/SendSMSNodeRunInput'
                start_conversation:
                  $ref: '#/components/schemas/StartConversationNodeRunInput'
                super_node:
                  $ref: '#/components/schemas/SuperNodeRunInput'
                tool_node:
                  $ref: '#/components/schemas/ToolNodeRunInput'
                workflow_run_evaluator:
                  $ref: '#/components/schemas/WorkflowRunEvalLLMNodeRunInput'
                workflow_run_fetch:
                  $ref: '#/components/schemas/WorkflowRunFetchNodeRunInput'
          type: array
          title: Node Run Inputs
          description: Mapping of node logical IDs to their respective run inputs
      type: object
      title: NodesRunInputs
      description: Represents the run inputs for multiple nodes in a workflow.
    WorkerLLMNodeRunOutput:
      properties:
        events:
          items: {}
          type: array
          title: Node/Workflow Run Events
          description: List of events that occurred during a node or workflow run
        type:
          type: string
          const: worker_llm
          title: Type
          description: Discriminator field which must always be 'worker_llm'
          default: worker_llm
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run output belongs to
        node_run_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Run ID
          description: Unique identifier for the run of this node
        structured_output:
          additionalProperties: true
          type: object
          title: Structured Output
          description: Structured output from the worker node
      type: object
      title: WorkerLLMNodeRunOutput
    SayLLMNodeRunOutput:
      properties:
        events:
          items: {}
          type: array
          title: Node/Workflow Run Events
          description: List of events that occurred during a node or workflow run
        type:
          type: string
          const: say_llm
          title: Type
          description: Discriminator field which must always be 'say_llm'
          default: say_llm
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run output belongs to
        node_run_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Run ID
          description: Unique identifier for the run of this node
        structured_output:
          additionalProperties: true
          type: object
          title: Structured Output
          description: Structured output from the say node
      type: object
      title: SayLLMNodeRunOutput
    SayStaticMessageNodeRunOutput:
      properties:
        events:
          items: {}
          type: array
          title: Node/Workflow Run Events
          description: List of events that occurred during a node or workflow run
        type:
          type: string
          const: say_static
          title: Type
          description: Discriminator field which must always be 'say_static'
          default: say_static
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run output belongs to
        node_run_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Run ID
          description: Unique identifier for the run of this node
      type: object
      title: SayStaticMessageNodeRunOutput
    SuperNodeRunOutput:
      properties:
        events:
          items: {}
          type: array
          title: Node/Workflow Run Events
          description: List of events that occurred during a node or workflow run
        type:
          type: string
          const: super_node
          title: Type
          description: Discriminator field which must always be 'super_node'
          default: super_node
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run output belongs to
        node_run_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Run ID
          description: Unique identifier for the run of this node
      type: object
      title: SuperNodeRunOutput
    WorkflowRunFetchNodeRunOutput:
      properties:
        events:
          items: {}
          type: array
          title: Node/Workflow Run Events
          description: List of events that occurred during a node or workflow run
        type:
          type: string
          const: workflow_run_fetch
          title: Type
          description: Discriminator field which must always be 'workflow_run_fetch'
          default: workflow_run_fetch
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run output belongs to
        node_run_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Run ID
          description: Unique identifier for the run of this node
        fetched_workflow_run:
          anyOf:
            - type: string
            - type: 'null'
          title: Fetched Workflow Run
          description: The fetched workflow run as a stringified JSON object
      type: object
      title: WorkflowRunFetchNodeRunOutput
    WorkflowRunEvalLLMNodeRunOutput:
      properties:
        events:
          items: {}
          type: array
          title: Node/Workflow Run Events
          description: List of events that occurred during a node or workflow run
        type:
          type: string
          const: workflow_run_evaluator
          title: Type
          description: Discriminator field which must always be 'workflow_run_evaluator'
          default: workflow_run_evaluator
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run output belongs to
        node_run_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Run ID
          description: Unique identifier for the run of this node
        structured_output:
          additionalProperties: true
          type: object
          title: Structured Output
          description: Structured evaluation output from the evaluator node
        free_form_output:
          anyOf:
            - type: string
            - type: 'null'
          title: Free-form Output
          description: Free-form textual evaluation output from the evaluator node
      type: object
      title: WorkflowRunEvalLLMNodeRunOutput
      description: Output model for evaluator node execution.
    ToolNodeRunOutput:
      properties:
        events:
          items: {}
          type: array
          title: Node/Workflow Run Events
          description: List of events that occurred during a node or workflow run
        type:
          type: string
          const: tool_node
          title: Type
          description: Discriminator field which must always be 'tool_node'
          default: tool_node
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run output belongs to
        node_run_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Run ID
          description: Unique identifier for the run of this node
        success:
          type: boolean
          title: Success
          description: Indicates whether the tool execution was successful
          default: false
        tool_result:
          anyOf:
            - {}
            - type: 'null'
          title: Tool Result
          description: The resulting output of the tool execution
        error_message:
          anyOf:
            - type: string
            - type: 'null'
          title: Error Message
          description: Error message if the tool execution failed
      type: object
      title: ToolNodeRunOutput
    StartConversationNodeRunOutput:
      properties:
        events:
          items: {}
          type: array
          title: Node/Workflow Run Events
          description: List of events that occurred during a node or workflow run
        type:
          type: string
          const: start_conversation
          title: Type
          description: Discriminator field which must always be 'start_conversation'
          default: start_conversation
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run output belongs to
        node_run_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Run ID
          description: Unique identifier for the run of this node
        conversation_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Conversation ID
          description: >-
            The ID of the conversation that was created or polled during the
            outbound phone call
      type: object
      title: StartConversationNodeRunOutput
    EndConversationNodeRunOutput:
      properties:
        events:
          items: {}
          type: array
          title: Node/Workflow Run Events
          description: List of events that occurred during a node or workflow run
        type:
          type: string
          const: end_conversation
          title: Type
          description: Discriminator field which must always be 'end_conversation'
          default: end_conversation
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run output belongs to
        node_run_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Run ID
          description: Unique identifier for the run of this node
      type: object
      title: EndConversationNodeRunOutput
    SendSMSNodeRunOutput:
      properties:
        events:
          items: {}
          type: array
          title: Node/Workflow Run Events
          description: List of events that occurred during a node or workflow run
        type:
          type: string
          const: send_sms
          title: Type
          description: Discriminator field which must always be 'send_sms'
          default: send_sms
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run output belongs to
        node_run_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Run ID
          description: Unique identifier for the run of this node
        success:
          type: boolean
          title: SMS Sent Successfully
          description: Indicates whether the SMS was sent successfully
          default: false
        sent_sms_message:
          anyOf:
            - type: string
            - type: 'null'
          title: Sent SMS Message
          description: The SMS message that was sent
      type: object
      title: SendSMSNodeRunOutput
    GoogleDocsNodeRunOutput:
      properties:
        events:
          items: {}
          type: array
          title: Node/Workflow Run Events
          description: List of events that occurred during a node or workflow run
        type:
          type: string
          const: google_docs
          title: Node Type
          description: Type of the node. Must be 'google_docs'
          default: google_docs
          input_field_not_visible: true
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run output belongs to
        node_run_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Run ID
          description: Unique identifier for the run of this node
        operate_document:
          anyOf:
            - oneOf:
                - $ref: '#/components/schemas/GoogleDocsCreateDocumentNodeRunOutput'
                - $ref: '#/components/schemas/GoogleDocsGetDocumentNodeRunOutput'
                - $ref: '#/components/schemas/GoogleDocsUpdateDocumentNodeRunOutput'
              discriminator:
                propertyName: type
                mapping:
                  google_docs_create_document:
                    $ref: '#/components/schemas/GoogleDocsCreateDocumentNodeRunOutput'
                  google_docs_get_document:
                    $ref: '#/components/schemas/GoogleDocsGetDocumentNodeRunOutput'
                  google_docs_update_document:
                    $ref: '#/components/schemas/GoogleDocsUpdateDocumentNodeRunOutput'
            - type: 'null'
          title: Document Operation Output
          description: >-
            Output from operating on a Google Docs document (create, get, or
            update).
      type: object
      title: GoogleDocsNodeRunOutput
      description: Run output for Google Docs node.
    HttpRequestNodeRunOutput:
      properties:
        events:
          items: {}
          type: array
          title: Node/Workflow Run Events
          description: List of events that occurred during a node or workflow run
        type:
          type: string
          const: http_request
          title: Type
          description: Discriminator field which must always be 'http_request'
          default: http_request
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run output belongs to
        node_run_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Run ID
          description: Unique identifier for the run of this node
        curl_command:
          anyOf:
            - type: string
            - type: 'null'
          title: Curl Command
          description: The curl command that was executed
        success:
          type: boolean
          title: HTTP Request Successful
          description: Indicates whether the HTTP request was successful
          default: false
        http_status_code:
          anyOf:
            - type: integer
            - type: 'null'
          title: HTTP Status Code
          description: HTTP status code returned by the request
        http_response:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: HTTP Response
          description: HTTP response data
      type: object
      title: HttpRequestNodeRunOutput
    AthenaPatientsSearchNodeRunOutput:
      properties:
        events:
          items: {}
          type: array
          title: Node/Workflow Run Events
          description: List of events that occurred during a node or workflow run
        type:
          type: string
          const: athena_patients_search
          title: Type
          description: Discriminator field which must always be 'athena_patients_search'
          default: athena_patients_search
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run output belongs to
        node_run_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Run ID
          description: Unique identifier for the run of this node
        success:
          type: boolean
          title: Athena Node Successful
          description: Indicates whether the Athena node was successful
          default: false
        status_code:
          anyOf:
            - type: integer
            - type: 'null'
          title: Status Code
          description: Status code returned by the Athena node
        response:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Response
          description: Response data from the Athena node
      type: object
      title: AthenaPatientsSearchNodeRunOutput
    AthenaPatientsCreateNodeRunOutput:
      properties:
        events:
          items: {}
          type: array
          title: Node/Workflow Run Events
          description: List of events that occurred during a node or workflow run
        type:
          type: string
          const: athena_patients_create
          title: Type
          description: Discriminator field which must always be 'athena_patients_create'
          default: athena_patients_create
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run output belongs to
        node_run_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Run ID
          description: Unique identifier for the run of this node
        success:
          type: boolean
          title: Athena Node Successful
          description: Indicates whether the Athena node was successful
          default: false
        status_code:
          anyOf:
            - type: integer
            - type: 'null'
          title: Status Code
          description: Status code returned by the Athena node
        response:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Response
          description: Response data from the Athena node
      type: object
      title: AthenaPatientsCreateNodeRunOutput
    AthenaPatientsUpdateNodeRunOutput:
      properties:
        events:
          items: {}
          type: array
          title: Node/Workflow Run Events
          description: List of events that occurred during a node or workflow run
        type:
          type: string
          const: athena_patients_update
          title: Type
          description: Discriminator field which must always be 'athena_patients_update'
          default: athena_patients_update
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run output belongs to
        node_run_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Run ID
          description: Unique identifier for the run of this node
        success:
          type: boolean
          title: Athena Node Successful
          description: Indicates whether the Athena node was successful
          default: false
        status_code:
          anyOf:
            - type: integer
            - type: 'null'
          title: Status Code
          description: Status code returned by the Athena node
        response:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Response
          description: Response data from the Athena node
      type: object
      title: AthenaPatientsUpdateNodeRunOutput
    AthenaAppointmentsCreateNodeRunOutput:
      properties:
        events:
          items: {}
          type: array
          title: Node/Workflow Run Events
          description: List of events that occurred during a node or workflow run
        type:
          type: string
          const: athena_appointments_create
          title: Type
          description: >-
            Discriminator field which must always be
            'athena_appointments_create'
          default: athena_appointments_create
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run output belongs to
        node_run_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Run ID
          description: Unique identifier for the run of this node
        success:
          type: boolean
          title: Athena Node Successful
          description: Indicates whether the Athena node was successful
          default: false
        status_code:
          anyOf:
            - type: integer
            - type: 'null'
          title: Status Code
          description: Status code returned by the Athena node
        response:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Response
          description: Response data from the Athena node
      type: object
      title: AthenaAppointmentsCreateNodeRunOutput
    DeduplicateNodeRunOutput:
      properties:
        events:
          items: {}
          type: array
          title: Node/Workflow Run Events
          description: List of events that occurred during a node or workflow run
        type:
          type: string
          const: deduplicate
          title: Type
          description: Discriminator field which must always be 'deduplicate'
          default: deduplicate
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run output belongs to
        node_run_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Run ID
          description: Unique identifier for the run of this node
        success:
          type: boolean
          title: Success
          description: Indicates whether the deduplication was successful
          default: false
        deduplicated_list:
          anyOf:
            - {}
            - type: 'null'
          title: Deduplicated List
          description: The deduplicated list result
        removed_count:
          type: integer
          title: Removed Count
          description: Number of duplicate objects removed from the list
          default: 0
        error_message:
          anyOf:
            - type: string
            - type: 'null'
          title: Error Message
          description: Error message if the deduplication failed
      type: object
      title: DeduplicateNodeRunOutput
    FieldExtractorNodeRunOutput:
      properties:
        events:
          items: {}
          type: array
          title: Node/Workflow Run Events
          description: List of events that occurred during a node or workflow run
        type:
          type: string
          const: field_extractor
          title: Type
          description: Discriminator field which must always be 'field_extractor'
          default: field_extractor
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run output belongs to
        node_run_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Run ID
          description: Unique identifier for the run of this node
        success:
          type: boolean
          title: Success
          description: Indicates whether the extraction was successful
          default: false
        extracted_result:
          anyOf:
            - {}
            - type: 'null'
          title: Extracted Result
          description: The extracted/filtered JSON result
        error_message:
          anyOf:
            - type: string
            - type: 'null'
          title: Error Message
          description: Error message if the extraction failed
      type: object
      title: FieldExtractorNodeRunOutput
    AzureOpenAILLMConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: LLM Configuration ID
          description: Unique identifier for the LLM configuration
          input_field_disallowed: true
        named_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config ID
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its ID.
          input_field_not_visible: true
        named_llm_config_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config Name
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its name.
          input_field_not_visible: true
        provider:
          anyOf:
            - $ref: '#/components/schemas/LLMProvider'
            - type: 'null'
          title: LLM Provider
          description: >-
            The selected Large Language Model provider from the available
            options.
          default: azure_openai
          input_field_not_visible: true
        streaming:
          type: boolean
          title: Enable Streaming
          description: Whether to enable streaming for the LLM response.
          default: false
          field_visibility_level: developer
        max_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Retries
          description: Maximum number of retries for the LLM request in case of failure.
          default: 3
          field_visibility_level: developer
        max_parse_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Parse Retries
          description: >-
            Maximum number of times to re-invoke the LLM when a successful
            response cannot be parsed into the expected structured (JSON)
            output. Distinct from `max_retries`, which controls transport-level
            retries (network errors, rate limits, 5xx) inside the LLM client.
          default: 3
          field_visibility_level: developer
        max_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Tokens
          description: Maximum number of tokens to generate in the response.
        temperature:
          anyOf:
            - type: number
              maximum: 1
              minimum: 0
            - type: 'null'
          title: Temperature
          description: >-
            Controls the randomness of the model's output. Lower values make the
            output more deterministic.
          input_field_type: number_with_slider
        request_timeout_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Request Timeout (ms)
          description: Timeout for the request in milliseconds.
        seed:
          anyOf:
            - type: integer
            - type: 'null'
          title: Random Seed
          description: Seed for random number generation to ensure reproducibility.
          field_visibility_level: developer
        model_kwargs:
          additionalProperties: true
          type: object
          title: Model Keyword Arguments
          description: Additional keyword arguments to pass to the LLM provider's API.
          field_visibility_level: developer
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: API KEY to access the LLM provider endpoint
          field_visibility_level: developer
          input_field_type: password
        do_not_split_sentences:
          type: boolean
          title: Do Not Split Sentences
          description: Whether to avoid splitting sentences in the LLM response.
          default: false
          field_visibility_level: developer
        truncated_max_recent_messages:
          anyOf:
            - type: integer
            - type: 'null'
          title: Truncated Max Recent Messages
          description: >-
            Maximum number of recent messages to keep when truncating the
            conversation history. If not set, no truncation is applied. If set,
            the recent conversation history will be truncated to contain only
            the specified number of messages when invoking the LLM for next
            response. If set to 0, only the system prompt is used.
        model:
          anyOf:
            - $ref: '#/components/schemas/AZUREOPENAIModel'
            - type: 'null'
          title: Azure OpenAI Model
          description: Name of the Azure OpenAI model to use
          default: gpt-5-mini
        type:
          type: string
          const: azure_openai_llm
          title: Type
          description: >-
            Differentiator field that helps in identifying this particular type
            of config when serializing and deserializing
          default: azure_openai_llm
          field_visibility_level: developer
          input_field_not_visible: true
        endpoint:
          anyOf:
            - type: string
            - type: 'null'
          title: Azure OpenAI Endpoint
          description: >-
            Endpoint URL for Azure OpenAI API requests. Automatically inferred
            from env var `AZURE_OPENAI_ENDPOINT` if not provided.
          field_visibility_level: developer
        api_version:
          anyOf:
            - type: string
            - type: 'null'
          title: Azure OpenAI API Version
          description: >-
            Azure OpenAI API version. Falls back to `OPENAI_API_VERSION` env var
            if not provided.
          field_visibility_level: developer
        reasoning_effort:
          anyOf:
            - type: string
            - type: 'null'
          title: Reasoning Effort
          description: >-
            Reasoning effort level for GPT-5-* models. Options are 'low',
            'medium', 'high'.
          default: low
      type: object
      title: Azure OpenAI
    OpenAILLMConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: LLM Configuration ID
          description: Unique identifier for the LLM configuration
          input_field_disallowed: true
        named_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config ID
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its ID.
          input_field_not_visible: true
        named_llm_config_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config Name
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its name.
          input_field_not_visible: true
        provider:
          anyOf:
            - $ref: '#/components/schemas/LLMProvider'
            - type: 'null'
          title: LLM Provider
          description: >-
            The selected Large Language Model provider from the available
            options.
          default: openai
          input_field_not_visible: true
        streaming:
          type: boolean
          title: Enable Streaming
          description: Whether to enable streaming for the LLM response.
          default: false
          field_visibility_level: developer
        max_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Retries
          description: Maximum number of retries for the LLM request in case of failure.
          default: 3
          field_visibility_level: developer
        max_parse_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Parse Retries
          description: >-
            Maximum number of times to re-invoke the LLM when a successful
            response cannot be parsed into the expected structured (JSON)
            output. Distinct from `max_retries`, which controls transport-level
            retries (network errors, rate limits, 5xx) inside the LLM client.
          default: 3
          field_visibility_level: developer
        max_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Tokens
          description: Maximum number of tokens to generate in the response.
        temperature:
          anyOf:
            - type: number
              maximum: 1
              minimum: 0
            - type: 'null'
          title: Temperature
          description: >-
            Controls the randomness of the model's output. Lower values make the
            output more deterministic.
          input_field_type: number_with_slider
        request_timeout_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Request Timeout (ms)
          description: Timeout for the request in milliseconds.
        seed:
          anyOf:
            - type: integer
            - type: 'null'
          title: Random Seed
          description: Seed for random number generation to ensure reproducibility.
          field_visibility_level: developer
        model_kwargs:
          additionalProperties: true
          type: object
          title: Model Keyword Arguments
          description: Additional keyword arguments to pass to the LLM provider's API.
          field_visibility_level: developer
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: API KEY to access the LLM provider endpoint
          field_visibility_level: developer
          input_field_type: password
        do_not_split_sentences:
          type: boolean
          title: Do Not Split Sentences
          description: Whether to avoid splitting sentences in the LLM response.
          default: false
          field_visibility_level: developer
        truncated_max_recent_messages:
          anyOf:
            - type: integer
            - type: 'null'
          title: Truncated Max Recent Messages
          description: >-
            Maximum number of recent messages to keep when truncating the
            conversation history. If not set, no truncation is applied. If set,
            the recent conversation history will be truncated to contain only
            the specified number of messages when invoking the LLM for next
            response. If set to 0, only the system prompt is used.
        model:
          anyOf:
            - $ref: '#/components/schemas/OPENAIModel'
            - type: 'null'
          title: OpenAI Model
          description: Name of the OpenAI model to use
          default: gpt-5.4-mini
        type:
          type: string
          const: openai_llm
          title: Type
          description: >-
            Differentiator field that helps in identifying this particular type
            of config when serializing and deserializing
          default: openai_llm
          field_visibility_level: developer
          input_field_not_visible: true
        base_url:
          anyOf:
            - type: string
            - type: 'null'
          title: OpenAI Base URL
          description: >-
            Base URL path for OpenAI API requests, leave blank if not using a
            proxy or service emulator.
          field_visibility_level: developer
        organization:
          anyOf:
            - type: string
            - type: 'null'
          title: OpenAI Organization ID
          description: >-
            Organization ID for OpenAI API requests, Automatically inferred from
            env var `OPENAI_ORG_ID` if not provided.
          field_visibility_level: developer
        reasoning_effort:
          anyOf:
            - type: string
            - type: 'null'
          title: Reasoning Effort
          description: >-
            Reasoning effort level for GPT-5-* models. Options are 'minimal',
            'low', 'medium', 'high'.
          default: low
      type: object
      title: OpenAI
    GoogleLLMConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: LLM Configuration ID
          description: Unique identifier for the LLM configuration
          input_field_disallowed: true
        named_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config ID
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its ID.
          input_field_not_visible: true
        named_llm_config_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config Name
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its name.
          input_field_not_visible: true
        provider:
          anyOf:
            - $ref: '#/components/schemas/LLMProvider'
            - type: 'null'
          title: LLM Provider
          description: >-
            The selected Large Language Model provider from the available
            options.
          default: google
          input_field_not_visible: true
        streaming:
          type: boolean
          title: Enable Streaming
          description: Whether to enable streaming for the LLM response.
          default: false
          field_visibility_level: developer
        max_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Retries
          description: Maximum number of retries for the LLM request in case of failure.
          default: 3
          field_visibility_level: developer
        max_parse_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Parse Retries
          description: >-
            Maximum number of times to re-invoke the LLM when a successful
            response cannot be parsed into the expected structured (JSON)
            output. Distinct from `max_retries`, which controls transport-level
            retries (network errors, rate limits, 5xx) inside the LLM client.
          default: 3
          field_visibility_level: developer
        max_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Tokens
          description: Maximum number of tokens to generate in the response.
        temperature:
          anyOf:
            - type: number
              maximum: 1
              minimum: 0
            - type: 'null'
          title: Temperature
          description: >-
            Controls the randomness of the model's output. Lower values make the
            output more deterministic.
          input_field_type: number_with_slider
        request_timeout_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Request Timeout (ms)
          description: Timeout for the request in milliseconds.
        seed:
          anyOf:
            - type: integer
            - type: 'null'
          title: Random Seed
          description: Seed for random number generation to ensure reproducibility.
          field_visibility_level: developer
        model_kwargs:
          additionalProperties: true
          type: object
          title: Model Keyword Arguments
          description: Additional keyword arguments to pass to the LLM provider's API.
          field_visibility_level: developer
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: API KEY to access the LLM provider endpoint
          field_visibility_level: developer
          input_field_type: password
        do_not_split_sentences:
          type: boolean
          title: Do Not Split Sentences
          description: Whether to avoid splitting sentences in the LLM response.
          default: false
          field_visibility_level: developer
        truncated_max_recent_messages:
          anyOf:
            - type: integer
            - type: 'null'
          title: Truncated Max Recent Messages
          description: >-
            Maximum number of recent messages to keep when truncating the
            conversation history. If not set, no truncation is applied. If set,
            the recent conversation history will be truncated to contain only
            the specified number of messages when invoking the LLM for next
            response. If set to 0, only the system prompt is used.
        model:
          anyOf:
            - $ref: '#/components/schemas/GOOGLEModel'
            - type: 'null'
          title: Google Model
          description: Name of the Google model to use
          default: gemini-3-flash-preview
        type:
          type: string
          const: google_llm
          title: Type
          description: >-
            Differentiator field that helps in identifying this particular type
            of config when serializing and deserializing
          default: google_llm
          field_visibility_level: developer
          input_field_not_visible: true
        thinking_budget:
          anyOf:
            - type: integer
            - type: 'null'
          title: Thinking Budget (tokens)
          description: Indicates the thinking budget in tokens. By default, it is set to 0.
          default: 0
      type: object
      title: Google
    AnthropicLLMConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: LLM Configuration ID
          description: Unique identifier for the LLM configuration
          input_field_disallowed: true
        named_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config ID
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its ID.
          input_field_not_visible: true
        named_llm_config_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config Name
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its name.
          input_field_not_visible: true
        provider:
          anyOf:
            - $ref: '#/components/schemas/LLMProvider'
            - type: 'null'
          title: LLM Provider
          description: >-
            The selected Large Language Model provider from the available
            options.
          default: anthropic
          input_field_not_visible: true
        streaming:
          type: boolean
          title: Enable Streaming
          description: Whether to enable streaming for the LLM response.
          default: false
          field_visibility_level: developer
        max_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Retries
          description: Maximum number of retries for the LLM request in case of failure.
          default: 3
          field_visibility_level: developer
        max_parse_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Parse Retries
          description: >-
            Maximum number of times to re-invoke the LLM when a successful
            response cannot be parsed into the expected structured (JSON)
            output. Distinct from `max_retries`, which controls transport-level
            retries (network errors, rate limits, 5xx) inside the LLM client.
          default: 3
          field_visibility_level: developer
        max_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Tokens
          description: Maximum number of tokens to generate in the response.
        temperature:
          anyOf:
            - type: number
              maximum: 1
              minimum: 0
            - type: 'null'
          title: Temperature
          description: >-
            Controls the randomness of the model's output. Lower values make the
            output more deterministic.
          input_field_type: number_with_slider
        request_timeout_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Request Timeout (ms)
          description: Timeout for the request in milliseconds.
        seed:
          anyOf:
            - type: integer
            - type: 'null'
          title: Random Seed
          description: Seed for random number generation to ensure reproducibility.
          field_visibility_level: developer
        model_kwargs:
          additionalProperties: true
          type: object
          title: Model Keyword Arguments
          description: Additional keyword arguments to pass to the LLM provider's API.
          field_visibility_level: developer
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: API KEY to access the LLM provider endpoint
          field_visibility_level: developer
          input_field_type: password
        do_not_split_sentences:
          type: boolean
          title: Do Not Split Sentences
          description: Whether to avoid splitting sentences in the LLM response.
          default: false
          field_visibility_level: developer
        truncated_max_recent_messages:
          anyOf:
            - type: integer
            - type: 'null'
          title: Truncated Max Recent Messages
          description: >-
            Maximum number of recent messages to keep when truncating the
            conversation history. If not set, no truncation is applied. If set,
            the recent conversation history will be truncated to contain only
            the specified number of messages when invoking the LLM for next
            response. If set to 0, only the system prompt is used.
        model:
          anyOf:
            - $ref: '#/components/schemas/ANTHROPICModel'
            - type: 'null'
          title: Anthropic Model
          description: Name of the Anthropic Claude model to use
          default: claude-sonnet-4-6
        type:
          type: string
          const: anthropic_llm
          title: Type
          description: >-
            Differentiator field that helps in identifying this particular type
            of config when serializing and deserializing
          default: anthropic_llm
          input_field_not_visible: true
        thinking_budget:
          anyOf:
            - type: integer
            - type: 'null'
          title: Thinking Budget (tokens)
          description: >-
            Token budget for Claude's extended thinking feature. Set to 0 to
            disable. When enabled, Claude will show its reasoning process before
            providing a final answer.
          default: 0
      type: object
      title: Anthropic
    CustomLLMConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: LLM Configuration ID
          description: Unique identifier for the LLM configuration
          input_field_disallowed: true
        named_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config ID
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its ID.
          input_field_not_visible: true
        named_llm_config_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config Name
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its name.
          input_field_not_visible: true
        provider:
          anyOf:
            - $ref: '#/components/schemas/LLMProvider'
            - type: 'null'
          title: LLM Provider
          description: >-
            The selected Large Language Model provider from the available
            options.
          default: custom
          input_field_not_visible: true
        streaming:
          type: boolean
          title: Enable Streaming
          description: Whether to enable streaming for the LLM response.
          default: false
          field_visibility_level: developer
        max_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Retries
          description: Maximum number of retries for the LLM request in case of failure.
          default: 3
          field_visibility_level: developer
        max_parse_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Parse Retries
          description: >-
            Maximum number of times to re-invoke the LLM when a successful
            response cannot be parsed into the expected structured (JSON)
            output. Distinct from `max_retries`, which controls transport-level
            retries (network errors, rate limits, 5xx) inside the LLM client.
          default: 3
          field_visibility_level: developer
        max_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Tokens
          description: Maximum number of tokens to generate in the response.
        temperature:
          anyOf:
            - type: number
              maximum: 1
              minimum: 0
            - type: 'null'
          title: Temperature
          description: >-
            Controls the randomness of the model's output. Lower values make the
            output more deterministic.
          input_field_type: number_with_slider
        request_timeout_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Request Timeout (ms)
          description: Timeout for the request in milliseconds.
        seed:
          anyOf:
            - type: integer
            - type: 'null'
          title: Random Seed
          description: Seed for random number generation to ensure reproducibility.
          field_visibility_level: developer
        model_kwargs:
          additionalProperties: true
          type: object
          title: Model Keyword Arguments
          description: Additional keyword arguments to pass to the LLM provider's API.
          field_visibility_level: developer
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: API KEY to access the LLM provider endpoint
          field_visibility_level: developer
          input_field_type: password
        do_not_split_sentences:
          type: boolean
          title: Do Not Split Sentences
          description: Whether to avoid splitting sentences in the LLM response.
          default: false
          field_visibility_level: developer
        truncated_max_recent_messages:
          anyOf:
            - type: integer
            - type: 'null'
          title: Truncated Max Recent Messages
          description: >-
            Maximum number of recent messages to keep when truncating the
            conversation history. If not set, no truncation is applied. If set,
            the recent conversation history will be truncated to contain only
            the specified number of messages when invoking the LLM for next
            response. If set to 0, only the system prompt is used.
        model:
          anyOf:
            - type: string
            - type: 'null'
          title: Custom Model Name
          description: >-
            Name of the model served behind the custom LLM gateway (free-form
            string, e.g. 'gpt-4.1-mini', 'llama-3-70b', 'mistral-large').
        reasoning_effort:
          anyOf:
            - type: string
            - type: 'null'
          title: Reasoning Effort
          description: >-
            Reasoning effort level for GPT-5-* models. Options are 'minimal',
            'low', 'medium', 'high'.
        type:
          type: string
          const: custom_llm
          title: Type
          description: >-
            Differentiator field that helps in identifying this particular type
            of config when serializing and deserializing
          default: custom_llm
          field_visibility_level: developer
          input_field_not_visible: true
        base_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Gateway Base URL
          description: >-
            Base URL of the custom OpenAI-compatible LLM gateway (e.g.
            'http://api.interactly.ai/workflows/llm-proxy').
        default_headers:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Headers
          description: >-
            Optional HTTP headers to include in every request to the gateway
            (e.g. routing keys, tenant IDs).
        rewrite_base_url:
          type: boolean
          title: Rewrite Base URL
          description: >-
            When True, uses an httpx event hook to rewrite every request URL to
            the exact base_url. Use this for gateways that don't accept the
            /chat/completions suffix the SDK appends.
          default: false
        verify_ssl:
          type: boolean
          title: Verify SSL
          description: >-
            Whether to verify SSL certificates. Set to False for gateways with
            self-signed certificates.
          default: true
        response_unwrap_key:
          anyOf:
            - type: string
            - type: 'null'
          title: Response Unwrap Key
          description: >-
            When set, the gateway response JSON is expected to wrap the standard
            OpenAI response inside this key (e.g. 'result'). The runtime will
            extract the nested object before passing it to the OpenAI SDK. Leave
            empty for gateways that already return standard format.
        okta_auth:
          anyOf:
            - $ref: '#/components/schemas/OktaAuthConfig'
            - type: 'null'
          title: Okta Auth
          description: Okta authentication configuration for bearer-token injection.
        use_responses_api:
          type: boolean
          title: Use Responses API
          description: >-
            Whether to use the GPT 5.x+ style Responses API, instead of Chat
            Completions API for this Custom LLM. See
            https://developers.openai.com/api/reference/resources/responses
          default: false
      type: object
      title: Custom LLM
    WorkflowDefaultLLMConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: LLM Configuration ID
          description: Unique identifier for the LLM configuration
          input_field_disallowed: true
        named_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config ID
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its ID.
          input_field_not_visible: true
        named_llm_config_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config Name
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its name.
          input_field_not_visible: true
        provider:
          anyOf:
            - $ref: '#/components/schemas/LLMProvider'
            - type: 'null'
          title: LLM Provider
          description: >-
            The selected Large Language Model provider from the available
            options.
          default: default_provider
          input_field_not_visible: true
        streaming:
          type: boolean
          title: Enable Streaming
          description: Whether to enable streaming for the LLM response.
          default: false
          field_visibility_level: developer
        max_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Retries
          description: Maximum number of retries for the LLM request in case of failure.
          default: 3
          field_visibility_level: developer
        max_parse_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Parse Retries
          description: >-
            Maximum number of times to re-invoke the LLM when a successful
            response cannot be parsed into the expected structured (JSON)
            output. Distinct from `max_retries`, which controls transport-level
            retries (network errors, rate limits, 5xx) inside the LLM client.
          default: 3
          field_visibility_level: developer
        max_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Tokens
          description: Maximum number of tokens to generate in the response.
        temperature:
          anyOf:
            - type: number
              maximum: 1
              minimum: 0
            - type: 'null'
          title: Temperature
          description: >-
            Controls the randomness of the model's output. Lower values make the
            output more deterministic.
          input_field_type: number_with_slider
        request_timeout_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Request Timeout (ms)
          description: Timeout for the request in milliseconds.
        seed:
          anyOf:
            - type: integer
            - type: 'null'
          title: Random Seed
          description: Seed for random number generation to ensure reproducibility.
          field_visibility_level: developer
        model_kwargs:
          additionalProperties: true
          type: object
          title: Model Keyword Arguments
          description: Additional keyword arguments to pass to the LLM provider's API.
          field_visibility_level: developer
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: API KEY to access the LLM provider endpoint
          field_visibility_level: developer
          input_field_type: password
        do_not_split_sentences:
          type: boolean
          title: Do Not Split Sentences
          description: Whether to avoid splitting sentences in the LLM response.
          default: false
          field_visibility_level: developer
        truncated_max_recent_messages:
          anyOf:
            - type: integer
            - type: 'null'
          title: Truncated Max Recent Messages
          description: >-
            Maximum number of recent messages to keep when truncating the
            conversation history. If not set, no truncation is applied. If set,
            the recent conversation history will be truncated to contain only
            the specified number of messages when invoking the LLM for next
            response. If set to 0, only the system prompt is used.
        type:
          type: string
          const: global_default_llm
          title: Type
          description: >-
            Differentiator field that helps in identifying this particular type
            of config when serializing and deserializing
          default: global_default_llm
          input_field_not_visible: true
      type: object
      title: Workflow Default LLM
      hidden_in_contexts:
        - workflow_settings
        - llm_config
      hide_all_fields: true
    NoLLMConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: LLM Configuration ID
          description: Unique identifier for the LLM configuration
          input_field_disallowed: true
        named_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config ID
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its ID.
          input_field_not_visible: true
        named_llm_config_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config Name
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its name.
          input_field_not_visible: true
        provider:
          anyOf:
            - $ref: '#/components/schemas/LLMProvider'
            - type: 'null'
          title: LLM Provider
          description: >-
            The selected Large Language Model provider from the available
            options.
          default: default_provider
          input_field_not_visible: true
        streaming:
          type: boolean
          title: Enable Streaming
          description: Whether to enable streaming for the LLM response.
          default: false
          field_visibility_level: developer
        max_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Retries
          description: Maximum number of retries for the LLM request in case of failure.
          default: 3
          field_visibility_level: developer
        max_parse_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Parse Retries
          description: >-
            Maximum number of times to re-invoke the LLM when a successful
            response cannot be parsed into the expected structured (JSON)
            output. Distinct from `max_retries`, which controls transport-level
            retries (network errors, rate limits, 5xx) inside the LLM client.
          default: 3
          field_visibility_level: developer
        max_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Tokens
          description: Maximum number of tokens to generate in the response.
        temperature:
          anyOf:
            - type: number
              maximum: 1
              minimum: 0
            - type: 'null'
          title: Temperature
          description: >-
            Controls the randomness of the model's output. Lower values make the
            output more deterministic.
          input_field_type: number_with_slider
        request_timeout_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Request Timeout (ms)
          description: Timeout for the request in milliseconds.
        seed:
          anyOf:
            - type: integer
            - type: 'null'
          title: Random Seed
          description: Seed for random number generation to ensure reproducibility.
          field_visibility_level: developer
        model_kwargs:
          additionalProperties: true
          type: object
          title: Model Keyword Arguments
          description: Additional keyword arguments to pass to the LLM provider's API.
          field_visibility_level: developer
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: API KEY to access the LLM provider endpoint
          field_visibility_level: developer
          input_field_type: password
        do_not_split_sentences:
          type: boolean
          title: Do Not Split Sentences
          description: Whether to avoid splitting sentences in the LLM response.
          default: false
          field_visibility_level: developer
        truncated_max_recent_messages:
          anyOf:
            - type: integer
            - type: 'null'
          title: Truncated Max Recent Messages
          description: >-
            Maximum number of recent messages to keep when truncating the
            conversation history. If not set, no truncation is applied. If set,
            the recent conversation history will be truncated to contain only
            the specified number of messages when invoking the LLM for next
            response. If set to 0, only the system prompt is used.
        type:
          type: string
          const: no_llm
          title: Type
          description: >-
            Differentiator field that helps in identifying this particular type
            of config when serializing and deserializing
          default: no_llm
          input_field_not_visible: true
      type: object
      title: No LLM
      hidden_in_contexts:
        - node_settings
        - llm_config
      hide_all_fields: true
    LLMGroupConfig-Output:
      properties:
        type:
          type: string
          const: llm_group
          title: Type
          description: Discriminator field which must always be 'llm_group'
          default: llm_group
          field_visibility_level: super_admin
          input_field_not_visible: true
        named_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config ID
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its ID.
          input_field_not_visible: true
        named_llm_config_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config Name
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its name.
          input_field_not_visible: true
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: LLM Group Logical ID
          description: Unique identifier for the LLM Group
          input_field_disallowed: true
        llms:
          items:
            oneOf:
              - $ref: '#/components/schemas/AzureOpenAILLMConfig-Output'
              - $ref: '#/components/schemas/OpenAILLMConfig-Output'
              - $ref: '#/components/schemas/GoogleLLMConfig-Output'
              - $ref: '#/components/schemas/AnthropicLLMConfig-Output'
              - $ref: '#/components/schemas/CustomLLMConfig-Output'
              - $ref: '#/components/schemas/WorkflowDefaultLLMConfig-Output'
              - $ref: '#/components/schemas/NoLLMConfig-Output'
            discriminator:
              propertyName: type
              mapping:
                anthropic_llm:
                  $ref: '#/components/schemas/AnthropicLLMConfig-Output'
                azure_openai_llm:
                  $ref: '#/components/schemas/AzureOpenAILLMConfig-Output'
                custom_llm:
                  $ref: '#/components/schemas/CustomLLMConfig-Output'
                global_default_llm:
                  $ref: '#/components/schemas/WorkflowDefaultLLMConfig-Output'
                google_llm:
                  $ref: '#/components/schemas/GoogleLLMConfig-Output'
                no_llm:
                  $ref: '#/components/schemas/NoLLMConfig-Output'
                openai_llm:
                  $ref: '#/components/schemas/OpenAILLMConfig-Output'
          type: array
          title: LLM Group
          description: List of LLM configurations, in preferred order of use.
        operation_mode:
          anyOf:
            - $ref: '#/components/schemas/OperationMode'
            - type: 'null'
          title: Operation Mode
          description: Operation mode for the LLM group
          default: sequential_with_proactive
        min_patience_time_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Minimum Patience Time
          description: >-
            Grace period in milliseconds until which we will unconditionally
            wait, unless all LLMs have responded.
          default: 1500
          field_visibility_level: developer
        max_patience_time_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Maximum Patience Time
          description: >-
            Threshold milliseconds after which we will stop waiting. If no LLM
            has responded by this time, we will return None.
          field_visibility_level: developer
      type: object
      title: Group of LLMs
    LLMGroupWithBackchannelConfig-Output:
      properties:
        type:
          type: string
          const: llm_group_with_backchannel
          title: Type
          description: >-
            Discriminator field which must always be
            'llm_group_with_backchannel'
          default: llm_group_with_backchannel
          field_visibility_level: developer
          input_field_not_visible: true
        named_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config ID
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its ID.
          input_field_not_visible: true
        named_llm_config_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config Name
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its name.
          input_field_not_visible: true
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: LLM Group With Backchannel ID
          description: Unique identifier for the LLM Group
          input_field_not_visible: true
        main_llm_config:
          anyOf:
            - $ref: '#/components/schemas/LLMGroupConfig-Output'
            - type: 'null'
          title: Main LLM Configuration
          description: Configuration for the main LLM
        non_backchannel_response_prefix:
          anyOf:
            - type: string
            - type: 'null'
          title: Non Backchannel Response Prefix
          description: >-
            If back channel response is being sent, only the LLM output
            following this prefix will follow the backchannel response
        backchannel_llm_config:
          anyOf:
            - $ref: '#/components/schemas/LLMGroupConfig-Output'
            - type: 'null'
          title: Backchannel LLM Configuration
          description: Configuration for the back channel LLM
        backchannel_static_responses:
          items:
            type: string
          type: array
          title: Backchannel Static Responses
          description: >-
            List of static responses from which one will be selected as a
            backchannel response.
        backchannel_static_responses_selection_mode:
          anyOf:
            - $ref: '#/components/schemas/SelectionMode'
            - type: 'null'
          title: Backchannel Static Responses Selection Mode
          description: Selection mode for backchannel static responses
          default: random
        backchannel_min_patience_time_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Backchannel Minimum Patience Time
          description: >-
            Grace period in milliseconds until which we will unconditionally
            wait for the main LLM to respond, unless it has already responded.
          default: 2000
      type: object
      title: Group of regular and backchanneling LLMs
    PromptConfig:
      properties:
        prompt:
          anyOf:
            - type: string
            - type: 'null'
          title: System Prompt
          description: System prompt for the LLM
          input_field_type: prompts_selection
      type: object
      title: PromptConfig
    ToolsConfig:
      properties:
        tools:
          items:
            oneOf:
              - $ref: '#/components/schemas/InlinePythonToolConfig'
              - $ref: '#/components/schemas/InbuiltFunctionToolConfig'
              - $ref: '#/components/schemas/ExternalAPIToolConfig'
              - $ref: '#/components/schemas/KnowledgeBaseToolConfig'
            discriminator:
              propertyName: type
              mapping:
                external_api:
                  $ref: '#/components/schemas/ExternalAPIToolConfig'
                inbuilt_function:
                  $ref: '#/components/schemas/InbuiltFunctionToolConfig'
                inline_python:
                  $ref: '#/components/schemas/InlinePythonToolConfig'
                knowledge_base:
                  $ref: '#/components/schemas/KnowledgeBaseToolConfig'
          type: array
          title: Tools Configuration
          description: List of tool configurations
      type: object
      title: Tools Configuration
    MCPServerConfig:
      properties:
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Server Name
          description: Display name for this MCP server connection
        server_url:
          type: string
          title: Server URL
          description: MCP server URL (e.g. 'https://mcp.example.com/mcp')
        api_headers:
          anyOf:
            - additionalProperties:
                type: string
              type: object
            - type: 'null'
          title: API Headers
          description: >-
            HTTP headers to include when connecting to the MCP server (e.g.
            {'Authorization': 'Bearer ...'})
      type: object
      required:
        - server_url
      title: MCP Server Configuration
      description: |-
        Configuration for an MCP (Model Context Protocol) server connection.
        Defined at the workflow level. Connects to an MCP server and
        exposes discovered tools to nodes that have use_mcp_tools enabled.
    agentic_workflow_framework__configs__workflow__GlobalConditionEdgeEvaluationMethod:
      type: string
      enum:
        - tool_call
        - independent_llm_evaluations
      title: GlobalConditionEdgeEvaluationMethod
    EvaluationConfig-Output:
      properties:
        evaluator_workflow_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Evaluator Workflow ID
          description: ID of the workflow to be used as the evaluator
          input_field_type: workflow_selection_with_workflow_id
        evaluator_workflow_version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Evaluator Workflow Version Number
          description: >-
            Version number of the evaluator workflow to be used. If not
            specified, the active version will be used.
          input_field_type: workflow_selection_with_version_number
        enable_turn_by_turn_evaluation:
          type: boolean
          title: Enable Turn-by-Turn Evaluation
          description: If true, enables turn-by-turn evaluation of the workflow execution
          default: false
      type: object
      title: EvaluationConfig
    GuardrailStrikesConfig:
      properties:
        max_guardrail_nodes_before_escalation:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Guardrail Nodes Before Escalation
          description: >-
            Maximum number of times guardrail nodes may be entered (from a
            non-guardrail node) before the workflow escalates. None disables the
            feature.
        escalation_node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Escalation Node Logical ID
          description: >-
            Logical ID of the node to transition to when the escalation
            threshold is reached. If None (or it does not resolve to a node),
            the workflow finishes instead.
        escalation_message:
          anyOf:
            - type: string
            - type: 'null'
          title: Escalation Message
          description: >-
            Message sent to the user just before the workflow finishes when the
            escalation threshold is reached and no escalation node is
            configured. Supports dynamic/runtime variable templating. If None,
            the workflow finishes silently.
          input_field_type: textarea
      type: object
      title: GuardrailStrikesConfig
    WorkflowAccessConfig-Output:
      properties:
        access_level:
          anyOf:
            - $ref: '#/components/schemas/AccessControlLevel'
            - type: 'null'
          title: Access Level
          description: Access level for the workflow
        access_list:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Access List
          description: List of user IDs that have access to this workflow
          input_field_not_visible: true
      type: object
      title: WorkflowAccessConfig
    GlobalNodeConfig:
      properties:
        is_global:
          type: boolean
          title: Is Global Node
          description: >-
            Whether this node is a global node available as a conditional
            pathway to all nodes in the workflow
          default: false
        condition:
          anyOf:
            - $ref: '#/components/schemas/ConditionConfig'
            - type: 'null'
          title: Global Node Condition
          description: Condition that determines whether this global node is navigated to
        global_condition_edge_evaluation_method:
          anyOf:
            - $ref: >-
                #/components/schemas/agentic_workflow_framework__configs__nodes__node__GlobalConditionEdgeEvaluationMethod
            - type: 'null'
          title: Global Condition Edge Evaluation Method
          description: Method used to evaluate global condition edges going into this node.
          default: workflow_default
        reverse_conditional_edge:
          anyOf:
            - $ref: '#/components/schemas/ConditionConfig'
            - type: 'null'
          title: Reverse Conditional Edge
          description: >-
            Condition and message configuration for navigating back to the node
            that preceded this global node. When the condition is satisfied
            while this global node is executing, the workflow returns control to
            whichever node originally transitioned into this global node.
            Supports freeform condition, args schema, static messages, and
            dynamic messages — identical to a regular conditional edge.
      type: object
      title: GlobalNodeConfig
    StaticMessagesConfig:
      properties:
        static_messages:
          items:
            type: string
          type: array
          title: Static Messages
          description: List of pre-configured messages from which one will be emitted
        static_messages_selection_mode:
          anyOf:
            - $ref: '#/components/schemas/SelectionMode'
            - type: 'null'
          title: Static Messages Selection Mode
          description: Selection mode for static messages
          default: random
      type: object
      title: StaticMessagesConfig
    SuperNodeReverseEdgeScope:
      type: string
      enum:
        - all_interior_llm_nodes
        - terminal_nodes
      title: SuperNodeReverseEdgeScope
      description: >-
        Controls which inlined sub-workflow nodes receive the super node
        placeholder's

        ``global_node_config.reverse_conditional_edge`` when the super node is
        expanded.


        The reverse edge is surfaced to the model as a per-turn LLM tool, so in
        BOTH modes

        only LLM-capable nodes are targeted — a static / HTTP / EndConversation
        node could

        never fire it.
    SuperNodeInterface:
      properties:
        input_fields:
          items:
            $ref: '#/components/schemas/SuperNodeInputField'
          type: array
          title: Input Fields
          description: List of input fields exposed by this super node to calling workflows
      type: object
      title: SuperNodeInterface
      description: >-
        The interface definition of a super node.


        Describes what configuration fields callers must provide when
        instantiating this super node,

        and how those field values map into the encapsulated sub-workflow's
        nodes, edges, and dynamic variables.
    InlinePythonToolConfig:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool ID
          description: Unique identifier for the tool
          input_field_disallowed: true
        tool_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Attachable Tool ID
          description: >-
            Reference to the tool already created in the Workflow System. If not
            provided, the tool config is assumed to be provided inline here.
          input_field_type: inline_python_tool_selection
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Name
          description: Name for the tool
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Description
          description: Human friendly description for the tool (not used by AI)
        category:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Category
          description: Category for the tool. E.g math, ehr, etc
        signature:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Signature
          description: >-
            Docstring or signature for the tool used by AI. If provided and
            there is a default signature already, it will override the default
            signature.
          input_field_type: textarea
        args_schema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Tool Arguments Schema
          description: >-
            Schema for the arguments that the tool accepts. This should be a
            JSON schema dictionary. Information provided here will override any
            default arguments schema.
        static_messages_config:
          anyOf:
            - $ref: '#/components/schemas/StaticMessagesConfig'
            - type: 'null'
          title: Static Messages Configuration
          description: >-
            Static messages that an LLM node should emit while this tool is
            being invoked
        result_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Result Runtime Variable Name
          description: Name of the runtime variable to store the result from this tool call
          default: tool_result
        ignore_content_received_during_llm_tool_call_specification:
          type: boolean
          title: Ignore content received during LLM tool call specification
          description: >-
            If true, any free-text content the LLM returns in the same response
            as a call to this tool is ignored: not emitted via
            AssistantResponseEvent, not added to chat history, and not added to
            the node's structured output. When a response contains multiple tool
            calls, the text is ignored only if every tool call targets a tool
            for which this flag is set.
          default: false
        type:
          type: string
          const: inline_python
          title: Tool Type
          description: Type of the tool. Must be 'inline_python'
          default: inline_python
          input_field_not_visible: true
        code:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Code
          description: >-
            Python code to be executed by the tool. It should define a function
            with proper signature and descriptions for its parameters.
          input_field_type: textarea
      type: object
      title: Inline Python Tool
      description: >-
        Configuration for an inline Python tool.

        The "code" field should contain a self-contained executable Python
        function.

        Example value of "code" string could be:
                def add(
                    a: float,
                    b: float,
                ) -> float:
                    return float(a + b)
    InbuiltFunctionToolConfig:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool ID
          description: Unique identifier for the tool
          input_field_disallowed: true
        tool_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Attachable Tool ID
          description: >-
            Reference to the tool already created in the Workflow System. If not
            provided, the tool config is assumed to be provided inline here.
          input_field_type: inbuilt_tool_selection
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Name
          description: Name for the tool
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Description
          description: Human friendly description for the tool (not used by AI)
        category:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Category
          description: Category for the tool. E.g math, ehr, etc
        signature:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Signature
          description: >-
            Docstring or signature for the tool used by AI. If provided and
            there is a default signature already, it will override the default
            signature.
          input_field_type: textarea
        args_schema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Tool Arguments Schema
          description: >-
            Schema for the arguments that the tool accepts. This should be a
            JSON schema dictionary. Information provided here will override any
            default arguments schema.
        static_messages_config:
          anyOf:
            - $ref: '#/components/schemas/StaticMessagesConfig'
            - type: 'null'
          title: Static Messages Configuration
          description: >-
            Static messages that an LLM node should emit while this tool is
            being invoked
        result_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Result Runtime Variable Name
          description: Name of the runtime variable to store the result from this tool call
          default: tool_result
        ignore_content_received_during_llm_tool_call_specification:
          type: boolean
          title: Ignore content received during LLM tool call specification
          description: >-
            If true, any free-text content the LLM returns in the same response
            as a call to this tool is ignored: not emitted via
            AssistantResponseEvent, not added to chat history, and not added to
            the node's structured output. When a response contains multiple tool
            calls, the text is ignored only if every tool call targets a tool
            for which this flag is set.
          default: false
        type:
          type: string
          const: inbuilt_function
          title: Tool Type
          description: Type of the tool. Must be 'inbuilt_function'
          default: inbuilt_function
          input_field_not_visible: true
        configurable_key:
          anyOf:
            - type: string
            - type: 'null'
          title: Configurable Tool Key
          description: >-
            Stable key identifying which configurable inbuilt tool this is (e.g.
            'call_forward'). None for plain static inbuilt references.
          input_field_not_visible: true
        extra_config:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Extra Configuration
          description: >-
            Tool-specific user configuration values. Schema is defined per
            configurable key.
          input_field_not_visible: true
      type: object
      title: Inbuilt Function Tool
      description: >-
        Configuration for an inbuilt function tool.

        This tool type refers to functions that are already registered in the
        tools registry.

        The "tool_id" field must match the ID (decorated with "@tool_id") of a
        registered tool.
    ExternalAPIToolConfig:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool ID
          description: Unique identifier for the tool
          input_field_disallowed: true
        tool_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Attachable Tool ID
          description: >-
            Reference to the tool already created in the Workflow System. If not
            provided, the tool config is assumed to be provided inline here.
          input_field_type: external_api_tool_selection
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Name
          description: Name for the tool
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Description
          description: Human friendly description for the tool (not used by AI)
        category:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Category
          description: Category for the tool. E.g math, ehr, etc
        signature:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Signature
          description: >-
            Docstring or signature for the tool used by AI. If provided and
            there is a default signature already, it will override the default
            signature.
          input_field_type: textarea
        args_schema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Tool Arguments Schema
          description: >-
            Schema for the arguments that the tool accepts. This should be a
            JSON schema dictionary. Information provided here will override any
            default arguments schema.
        static_messages_config:
          anyOf:
            - $ref: '#/components/schemas/StaticMessagesConfig'
            - type: 'null'
          title: Static Messages Configuration
          description: >-
            Static messages that an LLM node should emit while this tool is
            being invoked
        result_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Result Runtime Variable Name
          description: Name of the runtime variable to store the result from this tool call
          default: tool_result
        ignore_content_received_during_llm_tool_call_specification:
          type: boolean
          title: Ignore content received during LLM tool call specification
          description: >-
            If true, any free-text content the LLM returns in the same response
            as a call to this tool is ignored: not emitted via
            AssistantResponseEvent, not added to chat history, and not added to
            the node's structured output. When a response contains multiple tool
            calls, the text is ignored only if every tool call targets a tool
            for which this flag is set.
          default: false
        type:
          type: string
          const: external_api
          title: Tool Type
          description: Type of the tool. Must be 'external_api'
          default: external_api
          input_field_not_visible: true
        api_endpoint:
          anyOf:
            - type: string
            - type: 'null'
          title: API Endpoint
          description: The endpoint URL of the external API
        api_method:
          anyOf:
            - $ref: '#/components/schemas/APIMethodType'
            - type: 'null'
          title: API Method
          description: HTTP method to use for the API call (e.g., GET, POST)
          default: GET
        api_headers:
          additionalProperties:
            type: string
          type: object
          title: API Headers
          description: >-
            HTTP headers to include with the API request (e.g., authorization,
            content-type)
          default: {}
        api_body:
          anyOf:
            - additionalProperties: true
              type: object
            - type: string
            - type: 'null'
          title: API Request Body
          description: >-
            The request body payload for the API call. Usually applicable for
            POST/PUT methods.
          input_field_type: textarea
      type: object
      title: External API Tool
      description: >-
        Configuration for an external API tool.

        This tool type represents an external API endpoint that the LLM can
        call.
    KnowledgeBaseToolConfig:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool ID
          description: Unique identifier for the tool
          input_field_disallowed: true
        tool_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Attachable Tool ID
          description: >-
            Reference to the tool already created in the Workflow System. If not
            provided, the tool config is assumed to be provided inline here.
          input_field_type: kb_tool_selection
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Name
          description: Name for the tool
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Description
          description: Human friendly description for the tool (not used by AI)
        category:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Category
          description: Category for the tool. E.g math, ehr, etc
          default: Knowledge Base
        signature:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Signature
          description: >-
            Docstring or signature for the tool used by AI. If provided and
            there is a default signature already, it will override the default
            signature.
          default: >-
            Searches the knowledge bases given a natural language query and
            retrieves relevant chunks of information matching the query.
          input_field_type: textarea
        args_schema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Tool Arguments Schema
          description: >-
            Schema for the arguments that the tool accepts. This should be a
            JSON schema dictionary. Information provided here will override any
            default arguments schema.
          field_visibility_level: super_admin
          input_field_not_visible: true
        static_messages_config:
          anyOf:
            - $ref: '#/components/schemas/StaticMessagesConfig'
            - type: 'null'
          title: Static Messages Configuration
          description: >-
            Static messages that an LLM node should emit while this tool is
            being invoked
        result_runtime_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Result Runtime Variable Name
          description: Name of the runtime variable to store the result from this tool call
          default: kb_tool_result
        ignore_content_received_during_llm_tool_call_specification:
          type: boolean
          title: Ignore content received during LLM tool call specification
          description: >-
            If true, any free-text content the LLM returns in the same response
            as a call to this tool is ignored: not emitted via
            AssistantResponseEvent, not added to chat history, and not added to
            the node's structured output. When a response contains multiple tool
            calls, the text is ignored only if every tool call targets a tool
            for which this flag is set.
          default: false
        type:
          type: string
          const: knowledge_base
          title: Tool Type
          description: Type of the tool. Must be 'knowledge_base'
          default: knowledge_base
          input_field_not_visible: true
        target_knowledge_base_ids:
          items:
            type: string
          type: array
          title: Target Knowledge Base IDs
          description: The IDs of the knowledge bases to query
          input_field_type: knowledge_base_selection
      type: object
      title: Knowledge Base Tool
      description: >-
        Configuration for a knowledge base tool.

        This tool type represents a knowledge base endpoint that the LLM can
        call.
    GoogleWorkspaceOAuth2Credentials:
      properties:
        type:
          type: string
          const: google_workspace_oauth2
          title: Credentials Type
          description: Type of the credentials. Must be 'google_workspace_oauth2'
          default: google_workspace_oauth2
          input_field_not_visible: true
        oauth_redirect_uri:
          anyOf:
            - type: string
            - type: 'null'
          title: OAuth Redirect URI
          description: >-
            OAuth redirect URI for Google Workspace. If not provided, the
            default value at os.environ['GOOGLE_OAUTH_REDIRECT_URI'] will be
            used.
        client_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Client ID
          description: >-
            Client ID for Google Workspace. If not provided, the default value
            at os.environ['GOOGLE_CLIENT_ID'] will be used.
        client_secret:
          anyOf:
            - type: string
            - type: 'null'
          title: Client Secret
          description: >-
            Client Secret for Google Workspace. If not provided, the default
            value at os.environ['GOOGLE_CLIENT_SECRET'] will be used.
      type: object
      title: OAuth2 Credentials
      description: Configuration for Google Workspace OAuth2 credentials.
    GoogleWorkspaceServiceAccountCredentials:
      properties:
        type:
          type: string
          const: google_workspace_service_account
          title: Credentials Type
          description: Type of the credentials. Must be 'google_workspace_service_account'
          default: google_workspace_service_account
          input_field_not_visible: true
        service_account_email:
          anyOf:
            - type: string
            - type: 'null'
          title: Service Account Email
          description: >-
            Service account email for Google Workspace. If not provided, the
            default value at os.environ['GOOGLE_SERVICE_ACCOUNT_EMAIL'] will be
            used.
        private_key_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Private Key ID
          description: >-
            Private key ID for Google Workspace. If not provided, the default
            value at os.environ['GOOGLE_SERVICE_ACCOUNT_PRIVATE_KEY_ID'] will be
            used.
        private_key:
          anyOf:
            - type: string
            - type: 'null'
          title: Private Key
          description: >-
            Private key for Google Workspace. If not provided, the default value
            at os.environ['GOOGLE_SERVICE_ACCOUNT_PRIVATE_KEY'] will be used.
        impersonation_email:
          anyOf:
            - type: string
            - type: 'null'
          title: Impersonation Email
          description: >-
            Email to impersonate for Google Workspace. If not provided, the
            default value at
            os.environ['GOOGLE_SERVICE_ACCOUNT_IMPERSONATION_EMAIL'] will be
            used.
      type: object
      title: Service Account Credentials
      description: Configuration for Google Workspace service account credentials.
    GoogleWorkspaceAPIKeyCredentials:
      properties:
        type:
          type: string
          const: google_workspace_api_key
          title: Credentials Type
          description: Type of the credentials. Must be 'google_workspace_api_key'
          default: google_workspace_api_key
          input_field_not_visible: true
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: >-
            API Key for Google Workspace, used to access public APIs. If not
            provided, the default value at os.environ['GOOGLE_API_KEY'] will be
            used.
      type: object
      title: API Key Credentials
      description: Configuration for Google Workspace API Key credentials.
    GoogleDocsCreateDocumentConfig:
      properties:
        type:
          type: string
          const: google_docs_create_document
          title: Node Type
          description: Type of the node. Must be 'google_docs_create_document'
          default: google_docs_create_document
          input_field_not_visible: true
        title:
          anyOf:
            - type: string
            - type: 'null'
          title: Document Title
          description: Title of the Google Docs document to be created.
        drive_name_or_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Drive Name or ID
          description: >-
            Name or ID of the Google Drive where the document will be created.
            If not provided, the document will be created in the user's default
            drive.
        folder_name_or_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Folder Name or ID
          description: >-
            Name or ID of the folder where the document will be created. If not
            provided, the document will be created in the root of the drive.
      type: object
      title: Google Docs Create Document Node
      description: Configuration for creating a Google Docs document.
    GoogleDocsGetDocumentConfig:
      properties:
        type:
          type: string
          const: google_docs_get_document
          title: Node Type
          description: Type of the node. Must be 'google_docs_get_document'
          default: google_docs_get_document
          input_field_not_visible: true
        document_id_or_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Document ID or URL
          description: ID or URL of the Google Docs document to be retrieved.
        return_full_model:
          type: boolean
          title: Return Full Model
          description: >-
            Whether to return the full document model or just the plain text
            content.
          default: false
      type: object
      title: Google Docs Get Document Node
      description: Configuration for getting a Google Docs document.
    GoogleDocsUpdateDocumentConfig:
      properties:
        type:
          type: string
          const: google_docs_update_document
          title: Node Type
          description: Type of the node. Must be 'google_docs_update_document'
          default: google_docs_update_document
          input_field_not_visible: true
        document_id_or_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Document ID or URL
          description: ID or URL of the Google Docs document to be updated.
        updates:
          anyOf:
            - oneOf:
                - $ref: '#/components/schemas/GoogleDocsUpdateWithTextConfig'
              discriminator:
                propertyName: type
                mapping:
                  google_docs_update_with_text:
                    $ref: '#/components/schemas/GoogleDocsUpdateWithTextConfig'
            - type: 'null'
          title: Document Updates
          description: >-
            Updates to be applied to the Google Docs document. If not provided,
            no updates will be made.
      type: object
      title: Google Docs Update Document Node
      description: Configuration for updating a Google Docs document.
    HttpMethodEnum:
      type: string
      enum:
        - GET
        - POST
        - PUT
        - PATCH
        - DELETE
        - HEAD
        - OPTIONS
      title: HttpMethodEnum
    BodyContentTypeEnum:
      type: string
      enum:
        - application/json
        - application/x-www-form-urlencoded
        - multipart/form-data
        - text/plain
      title: BodyContentTypeEnum
    ResponseFormatEnum:
      type: string
      enum:
        - json
        - text
        - binary
      title: ResponseFormatEnum
    WorkingHours:
      properties:
        monday:
          $ref: '#/components/schemas/StartEndTimings'
          description: Working hours for Monday
        tuesday:
          $ref: '#/components/schemas/StartEndTimings'
          description: Working hours for Tuesday
        wednesday:
          $ref: '#/components/schemas/StartEndTimings'
          description: Working hours for Wednesday
        thursday:
          $ref: '#/components/schemas/StartEndTimings'
          description: Working hours for Thursday
        friday:
          $ref: '#/components/schemas/StartEndTimings'
          description: Working hours for Friday
        saturday:
          $ref: '#/components/schemas/StartEndTimings'
          description: Working hours for Saturday
        sunday:
          $ref: '#/components/schemas/StartEndTimings'
          description: Working hours for Sunday
      type: object
      required:
        - monday
        - tuesday
        - wednesday
        - thursday
        - friday
        - saturday
        - sunday
      title: WorkingHours
    UseCase:
      type: string
      enum:
        - appointment_scheduling
        - appointment_cancellation
        - appointment_rescheduling
        - appointment_scheduling_with_waitlist
        - medication_refill
        - invoice_billing
      title: UseCase
    Gender:
      type: string
      enum:
        - ''
        - Female
        - Male
        - Non-binary gender identity
        - Additional gender category or other
        - Choose not to disclose
        - Genderqueer (neither exclusively male nor female)
        - Unknown
      title: Gender
    ConditionConfig:
      properties:
        condition_freeform:
          anyOf:
            - type: string
            - type: 'null'
          title: Freeform condition string
          description: >-
            Condition (expressed in natural language) that determines whether
            this path is taken
          input_field_type: textarea
        condition_expression:
          anyOf:
            - type: string
            - type: 'null'
          title: Expression condition string
          description: >-
            Condition (expressed in a structured equation with variables) that
            determines whether this path is taken
        args_schema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Arguments JSON Schema
          description: >-
            JSON Schema describing the arguments that will be passed when
            condition_freeform is evaluated
          input_field_type: textarea
        static_messages_config:
          anyOf:
            - $ref: '#/components/schemas/StaticMessagesConfig'
            - type: 'null'
          title: Static Messages Configuration
          description: >-
            Static messages that an LLM node should emit while this tool is
            being invoked
        dynamic_messages_config:
          anyOf:
            - $ref: '#/components/schemas/DynamicMessagesConfig'
            - type: 'null'
          title: Dynamic Messages Configuration
          description: >-
            Dynamic message configuration. When set, the LLM will generate a
            message to say when this edge is taken, guided by the provided
            prompt.
      type: object
      title: ConditionConfig
    BaseNodeRunInput:
      properties:
        dynamic_variables:
          additionalProperties: true
          type: object
          title: Dynamic Variables
          description: >-
            Dynamic variable values that will replace the '{{...}}' placeholders
            in the prompts, condition strings, tool signatures, etc.
        runtime_variables:
          additionalProperties: true
          type: object
          title: Runtime Variables
          description: >-
            Runtime variables that will replace the '[[...]]' placeholders in
            the prompts, condition strings, tool signatures, etc.
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Run Input Data
          description: Miscellaneous run-input data
          field_visibility_level: super_admin
        type:
          type: string
          const: base_node
          title: Type
          description: Discriminator field which must always be 'base_node'
          default: base_node
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run input is for
      type: object
      title: BaseNodeRunInput
    LLMNodeRunInput:
      properties:
        dynamic_variables:
          additionalProperties: true
          type: object
          title: Dynamic Variables
          description: >-
            Dynamic variable values that will replace the '{{...}}' placeholders
            in the prompts, condition strings, tool signatures, etc.
        runtime_variables:
          additionalProperties: true
          type: object
          title: Runtime Variables
          description: >-
            Runtime variables that will replace the '[[...]]' placeholders in
            the prompts, condition strings, tool signatures, etc.
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Run Input Data
          description: Miscellaneous run-input data
          field_visibility_level: super_admin
        type:
          type: string
          const: llm
          title: Type
          description: Discriminator field which must always be 'llm'
          default: llm
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run input is for
        messages:
          items:
            oneOf:
              - $ref: '#/components/schemas/AIMessage'
              - $ref: '#/components/schemas/HumanMessage'
              - $ref: '#/components/schemas/ChatMessage'
              - $ref: '#/components/schemas/SystemMessage'
              - $ref: '#/components/schemas/FunctionMessage'
              - $ref: '#/components/schemas/ToolMessage'
              - $ref: '#/components/schemas/AIMessageChunk'
              - $ref: '#/components/schemas/HumanMessageChunk'
              - $ref: '#/components/schemas/ChatMessageChunk'
              - $ref: '#/components/schemas/SystemMessageChunk'
              - $ref: '#/components/schemas/FunctionMessageChunk'
              - $ref: '#/components/schemas/ToolMessageChunk'
          type: array
          title: Input User Messages
          description: Input user messages to be processed by the LLM node
      type: object
      title: LLMNodeRunInput
    SayStaticMessageNodeRunInput:
      properties:
        dynamic_variables:
          additionalProperties: true
          type: object
          title: Dynamic Variables
          description: >-
            Dynamic variable values that will replace the '{{...}}' placeholders
            in the prompts, condition strings, tool signatures, etc.
        runtime_variables:
          additionalProperties: true
          type: object
          title: Runtime Variables
          description: >-
            Runtime variables that will replace the '[[...]]' placeholders in
            the prompts, condition strings, tool signatures, etc.
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Run Input Data
          description: Miscellaneous run-input data
          field_visibility_level: super_admin
        type:
          type: string
          const: say_static
          title: Type
          description: Discriminator field which must always be 'say_static'
          default: say_static
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run input is for
      type: object
      title: SayStaticMessageNodeRunInput
    SuperNodeRunInput:
      properties:
        dynamic_variables:
          additionalProperties: true
          type: object
          title: Dynamic Variables
          description: >-
            Dynamic variable values that will replace the '{{...}}' placeholders
            in the prompts, condition strings, tool signatures, etc.
        runtime_variables:
          additionalProperties: true
          type: object
          title: Runtime Variables
          description: >-
            Runtime variables that will replace the '[[...]]' placeholders in
            the prompts, condition strings, tool signatures, etc.
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Run Input Data
          description: Miscellaneous run-input data
          field_visibility_level: super_admin
        type:
          type: string
          const: super_node
          title: Type
          description: Discriminator field which must always be 'super_node'
          default: super_node
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run input is for
      type: object
      title: SuperNodeRunInput
    WorkflowRunFetchNodeRunInput:
      properties:
        dynamic_variables:
          additionalProperties: true
          type: object
          title: Dynamic Variables
          description: >-
            Dynamic variable values that will replace the '{{...}}' placeholders
            in the prompts, condition strings, tool signatures, etc.
        runtime_variables:
          additionalProperties: true
          type: object
          title: Runtime Variables
          description: >-
            Runtime variables that will replace the '[[...]]' placeholders in
            the prompts, condition strings, tool signatures, etc.
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Run Input Data
          description: Miscellaneous run-input data
          field_visibility_level: super_admin
        type:
          type: string
          const: workflow_run_fetch
          title: Type
          description: Discriminator field which must always be 'workflow_run_fetch'
          default: workflow_run_fetch
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run input is for
      type: object
      title: WorkflowRunFetchNodeRunInput
    WorkflowRunEvalLLMNodeRunInput:
      properties:
        dynamic_variables:
          additionalProperties: true
          type: object
          title: Dynamic Variables
          description: >-
            Dynamic variable values that will replace the '{{...}}' placeholders
            in the prompts, condition strings, tool signatures, etc.
        runtime_variables:
          additionalProperties: true
          type: object
          title: Runtime Variables
          description: >-
            Runtime variables that will replace the '[[...]]' placeholders in
            the prompts, condition strings, tool signatures, etc.
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Run Input Data
          description: Miscellaneous run-input data
          field_visibility_level: super_admin
        type:
          type: string
          const: workflow_run_evaluator
          title: Type
          description: Discriminator field which must always be 'workflow_run_evaluator'
          default: workflow_run_evaluator
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run input is for
        messages:
          items:
            oneOf:
              - $ref: '#/components/schemas/AIMessage'
              - $ref: '#/components/schemas/HumanMessage'
              - $ref: '#/components/schemas/ChatMessage'
              - $ref: '#/components/schemas/SystemMessage'
              - $ref: '#/components/schemas/FunctionMessage'
              - $ref: '#/components/schemas/ToolMessage'
              - $ref: '#/components/schemas/AIMessageChunk'
              - $ref: '#/components/schemas/HumanMessageChunk'
              - $ref: '#/components/schemas/ChatMessageChunk'
              - $ref: '#/components/schemas/SystemMessageChunk'
              - $ref: '#/components/schemas/FunctionMessageChunk'
              - $ref: '#/components/schemas/ToolMessageChunk'
          type: array
          title: Input User Messages
          description: Input user messages to be processed by the LLM node
      type: object
      title: WorkflowRunEvalLLMNodeRunInput
      description: Input model for evaluator node execution.
    ToolNodeRunInput:
      properties:
        dynamic_variables:
          additionalProperties: true
          type: object
          title: Dynamic Variables
          description: >-
            Dynamic variable values that will replace the '{{...}}' placeholders
            in the prompts, condition strings, tool signatures, etc.
        runtime_variables:
          additionalProperties: true
          type: object
          title: Runtime Variables
          description: >-
            Runtime variables that will replace the '[[...]]' placeholders in
            the prompts, condition strings, tool signatures, etc.
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Run Input Data
          description: Miscellaneous run-input data
          field_visibility_level: super_admin
        type:
          type: string
          const: tool_node
          title: Type
          description: Discriminator field which must always be 'tool_node'
          default: tool_node
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run input is for
      type: object
      title: ToolNodeRunInput
    StartConversationNodeRunInput:
      properties:
        dynamic_variables:
          additionalProperties: true
          type: object
          title: Dynamic Variables
          description: >-
            Dynamic variable values that will replace the '{{...}}' placeholders
            in the prompts, condition strings, tool signatures, etc.
        runtime_variables:
          additionalProperties: true
          type: object
          title: Runtime Variables
          description: >-
            Runtime variables that will replace the '[[...]]' placeholders in
            the prompts, condition strings, tool signatures, etc.
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Run Input Data
          description: Miscellaneous run-input data
          field_visibility_level: super_admin
        type:
          type: string
          const: start_conversation
          title: Type
          description: Discriminator field which must always be 'start_conversation'
          default: start_conversation
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run input is for
      type: object
      title: StartConversationNodeRunInput
    EndConversationNodeRunInput:
      properties:
        dynamic_variables:
          additionalProperties: true
          type: object
          title: Dynamic Variables
          description: >-
            Dynamic variable values that will replace the '{{...}}' placeholders
            in the prompts, condition strings, tool signatures, etc.
        runtime_variables:
          additionalProperties: true
          type: object
          title: Runtime Variables
          description: >-
            Runtime variables that will replace the '[[...]]' placeholders in
            the prompts, condition strings, tool signatures, etc.
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Run Input Data
          description: Miscellaneous run-input data
          field_visibility_level: super_admin
        type:
          type: string
          const: end_conversation
          title: Type
          description: Discriminator field which must always be 'end_conversation'
          default: end_conversation
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run input is for
      type: object
      title: EndConversationNodeRunInput
    SendSMSNodeRunInput:
      properties:
        dynamic_variables:
          additionalProperties: true
          type: object
          title: Dynamic Variables
          description: >-
            Dynamic variable values that will replace the '{{...}}' placeholders
            in the prompts, condition strings, tool signatures, etc.
        runtime_variables:
          additionalProperties: true
          type: object
          title: Runtime Variables
          description: >-
            Runtime variables that will replace the '[[...]]' placeholders in
            the prompts, condition strings, tool signatures, etc.
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Run Input Data
          description: Miscellaneous run-input data
          field_visibility_level: super_admin
        type:
          type: string
          const: send_sms
          title: Type
          description: Discriminator field which must always be 'send_sms'
          default: send_sms
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run input is for
        override_destination_phone_number:
          anyOf:
            - type: string
            - type: 'null'
          title: Destination Phone Number
          description: >-
            Destination phone number in E.164 format. Example of E.164 format:
            +1234567890. This field, if provided, overrides the phone number in
            the node config.
        override_message:
          anyOf:
            - type: string
            - type: 'null'
          title: SMS Message
          description: >-
            SMS message to be sent. Can include dynamic and runtime variable
            placeholders for dynamic content. This field, if provided, overrides
            the message in the node config.
      type: object
      title: SendSMSNodeRunInput
    GoogleDocsNodeRunInput:
      properties:
        dynamic_variables:
          additionalProperties: true
          type: object
          title: Dynamic Variables
          description: >-
            Dynamic variable values that will replace the '{{...}}' placeholders
            in the prompts, condition strings, tool signatures, etc.
        runtime_variables:
          additionalProperties: true
          type: object
          title: Runtime Variables
          description: >-
            Runtime variables that will replace the '[[...]]' placeholders in
            the prompts, condition strings, tool signatures, etc.
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Run Input Data
          description: Miscellaneous run-input data
          field_visibility_level: super_admin
        type:
          type: string
          const: google_docs
          title: Node Type
          description: Type of the node. Must be 'google_docs'
          default: google_docs
          input_field_not_visible: true
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run input is for
        operate_document:
          anyOf:
            - oneOf:
                - $ref: '#/components/schemas/GoogleDocsCreateDocumentNodeRunInput'
                - $ref: '#/components/schemas/GoogleDocsGetDocumentNodeRunInput'
                - $ref: '#/components/schemas/GoogleDocsUpdateDocumentNodeRunInput'
              discriminator:
                propertyName: type
                mapping:
                  google_docs_create_document:
                    $ref: '#/components/schemas/GoogleDocsCreateDocumentNodeRunInput'
                  google_docs_get_document:
                    $ref: '#/components/schemas/GoogleDocsGetDocumentNodeRunInput'
                  google_docs_update_document:
                    $ref: '#/components/schemas/GoogleDocsUpdateDocumentNodeRunInput'
            - type: 'null'
          title: Document Operation
          description: >-
            Configuration for operating on a Google Docs document (create, get,
            or update).
      type: object
      title: Google Docs Node
      description: Run input for Google Docs node.
    HttpRequestNodeRunInput:
      properties:
        dynamic_variables:
          additionalProperties: true
          type: object
          title: Dynamic Variables
          description: >-
            Dynamic variable values that will replace the '{{...}}' placeholders
            in the prompts, condition strings, tool signatures, etc.
        runtime_variables:
          additionalProperties: true
          type: object
          title: Runtime Variables
          description: >-
            Runtime variables that will replace the '[[...]]' placeholders in
            the prompts, condition strings, tool signatures, etc.
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Run Input Data
          description: Miscellaneous run-input data
          field_visibility_level: super_admin
        type:
          type: string
          const: http_request
          title: Type
          description: Discriminator field which must always be 'http_request'
          default: http_request
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run input is for
        override_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Override URL
          description: Override the URL for the HTTP request
      type: object
      title: HttpRequestNodeRunInput
    AthenaPatientsSearchNodeRunInput:
      properties:
        dynamic_variables:
          additionalProperties: true
          type: object
          title: Dynamic Variables
          description: >-
            Dynamic variable values that will replace the '{{...}}' placeholders
            in the prompts, condition strings, tool signatures, etc.
        runtime_variables:
          additionalProperties: true
          type: object
          title: Runtime Variables
          description: >-
            Runtime variables that will replace the '[[...]]' placeholders in
            the prompts, condition strings, tool signatures, etc.
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Run Input Data
          description: Miscellaneous run-input data
          field_visibility_level: super_admin
        type:
          type: string
          const: athena_patients_search
          title: Type
          description: Discriminator field which must always be 'athena_patients_search'
          default: athena_patients_search
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run input is for
        override_api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: Override API Key
          description: Override API key for the node
      type: object
      title: AthenaPatientsSearchNodeRunInput
    AthenaPatientsCreateNodeRunInput:
      properties:
        dynamic_variables:
          additionalProperties: true
          type: object
          title: Dynamic Variables
          description: >-
            Dynamic variable values that will replace the '{{...}}' placeholders
            in the prompts, condition strings, tool signatures, etc.
        runtime_variables:
          additionalProperties: true
          type: object
          title: Runtime Variables
          description: >-
            Runtime variables that will replace the '[[...]]' placeholders in
            the prompts, condition strings, tool signatures, etc.
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Run Input Data
          description: Miscellaneous run-input data
          field_visibility_level: super_admin
        type:
          type: string
          const: athena_patients_create
          title: Type
          description: Discriminator field which must always be 'athena_patients_create'
          default: athena_patients_create
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run input is for
        override_api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: Override API Key
          description: Override API key for the node
      type: object
      title: AthenaPatientsCreateNodeRunInput
    AthenaPatientsUpdateNodeRunInput:
      properties:
        dynamic_variables:
          additionalProperties: true
          type: object
          title: Dynamic Variables
          description: >-
            Dynamic variable values that will replace the '{{...}}' placeholders
            in the prompts, condition strings, tool signatures, etc.
        runtime_variables:
          additionalProperties: true
          type: object
          title: Runtime Variables
          description: >-
            Runtime variables that will replace the '[[...]]' placeholders in
            the prompts, condition strings, tool signatures, etc.
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Run Input Data
          description: Miscellaneous run-input data
          field_visibility_level: super_admin
        type:
          type: string
          const: athena_patients_update
          title: Type
          description: Discriminator field which must always be 'athena_patients_update'
          default: athena_patients_update
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run input is for
        override_api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: Override API Key
          description: Override API key for the node
      type: object
      title: AthenaPatientsUpdateNodeRunInput
    AthenaAppointmentsCreateNodeRunInput:
      properties:
        dynamic_variables:
          additionalProperties: true
          type: object
          title: Dynamic Variables
          description: >-
            Dynamic variable values that will replace the '{{...}}' placeholders
            in the prompts, condition strings, tool signatures, etc.
        runtime_variables:
          additionalProperties: true
          type: object
          title: Runtime Variables
          description: >-
            Runtime variables that will replace the '[[...]]' placeholders in
            the prompts, condition strings, tool signatures, etc.
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Run Input Data
          description: Miscellaneous run-input data
          field_visibility_level: super_admin
        type:
          type: string
          const: athena_appointments_create
          title: Type
          description: >-
            Discriminator field which must always be
            'athena_appointments_create'
          default: athena_appointments_create
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run input is for
        override_api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: Override API Key
          description: Override API key for the node
      type: object
      title: AthenaAppointmentsCreateNodeRunInput
    DeduplicateNodeRunInput:
      properties:
        dynamic_variables:
          additionalProperties: true
          type: object
          title: Dynamic Variables
          description: >-
            Dynamic variable values that will replace the '{{...}}' placeholders
            in the prompts, condition strings, tool signatures, etc.
        runtime_variables:
          additionalProperties: true
          type: object
          title: Runtime Variables
          description: >-
            Runtime variables that will replace the '[[...]]' placeholders in
            the prompts, condition strings, tool signatures, etc.
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Run Input Data
          description: Miscellaneous run-input data
          field_visibility_level: super_admin
        type:
          type: string
          const: deduplicate
          title: Type
          description: Discriminator field which must always be 'deduplicate'
          default: deduplicate
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run input is for
      type: object
      title: DeduplicateNodeRunInput
    FieldExtractorNodeRunInput:
      properties:
        dynamic_variables:
          additionalProperties: true
          type: object
          title: Dynamic Variables
          description: >-
            Dynamic variable values that will replace the '{{...}}' placeholders
            in the prompts, condition strings, tool signatures, etc.
        runtime_variables:
          additionalProperties: true
          type: object
          title: Runtime Variables
          description: >-
            Runtime variables that will replace the '[[...]]' placeholders in
            the prompts, condition strings, tool signatures, etc.
        miscellaneous:
          additionalProperties: true
          type: object
          title: Miscellaneous Run Input Data
          description: Miscellaneous run-input data
          field_visibility_level: super_admin
        type:
          type: string
          const: field_extractor
          title: Type
          description: Discriminator field which must always be 'field_extractor'
          default: field_extractor
        node_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Node Logical ID
          description: Logical ID of the node this run input is for
      type: object
      title: FieldExtractorNodeRunInput
    GoogleDocsCreateDocumentNodeRunOutput:
      properties:
        type:
          type: string
          const: google_docs_create_document
          title: Node Type
          description: Type of the node. Must be 'google_docs_create_document'
          default: google_docs_create_document
        document_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Document ID
          description: ID of the created Google Docs document.
        document_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Document URL
          description: URL of the created Google Docs document.
      type: object
      title: GoogleDocsCreateDocumentNodeRunOutput
      description: Run output for creating a Google Docs document.
    GoogleDocsGetDocumentNodeRunOutput:
      properties:
        type:
          type: string
          const: google_docs_get_document
          title: Node Type
          description: Type of the node. Must be 'google_docs_get_document'
          default: google_docs_get_document
        document_content:
          anyOf:
            - {}
            - type: 'null'
          title: Document Content
          description: Content of the retrieved Google Docs document.
      type: object
      title: GoogleDocsGetDocumentNodeRunOutput
      description: Run output for getting a Google Docs document.
    GoogleDocsUpdateDocumentNodeRunOutput:
      properties:
        type:
          type: string
          const: google_docs_update_document
          title: Node Type
          description: Type of the node. Must be 'google_docs_update_document'
          default: google_docs_update_document
        document_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Document ID
          description: ID of the updated Google Docs document.
        document_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Document URL
          description: URL of the updated Google Docs document.
      type: object
      title: GoogleDocsUpdateDocumentNodeRunOutput
      description: Run output for updating a Google Docs document.
    LLMProvider:
      type: string
      enum:
        - default_provider
        - azure_openai
        - openai
        - google
        - anthropic
        - bedrock
        - custom
      title: LLMProvider
    AZUREOPENAIModel:
      type: string
      enum:
        - gpt-5-chat
        - gpt-5-mini
        - gpt-5-nano
        - gpt-4.1-nano
        - gpt-4.1-mini
        - gpt-4.1
      title: AZUREOPENAIModel
    OPENAIModel:
      type: string
      enum:
        - gpt-5.4
        - gpt-5.4-mini
        - gpt-5.4-nano
        - gpt-5.2
        - gpt-5.1
        - gpt-5-chat-latest
        - gpt-5.1-chat-latest
        - gpt-5.2-chat-latest
        - gpt-5.3-chat-latest
        - gpt-5-nano
        - gpt-5-mini
        - gpt-5
        - gpt-4.1-nano
        - gpt-4.1-mini
        - gpt-4.1
        - gpt-4
        - gpt-4o-mini
        - gpt-4o
        - gpt-3.5-turbo
      title: OPENAIModel
    GOOGLEModel:
      type: string
      enum:
        - gemini-flash-latest
        - gemini-flash-lite-latest
        - gemini-3.1-pro-preview
        - gemini-3.5-flash
        - gemini-3-flash-preview
        - gemini-2.5-pro
        - gemini-2.5-flash
        - gemini-2.0-flash
        - gemini-2.0-flash-lite
        - gemini-1.5-pro
        - gemini-1.5-flash
        - gemini-1.5-flash-8b
      title: GOOGLEModel
    ANTHROPICModel:
      type: string
      enum:
        - claude-opus-4-6
        - claude-opus-4-5-20251101
        - claude-opus-4-1-20250805
        - claude-opus-4-20250514
        - claude-sonnet-4-6
        - claude-sonnet-4-5-20250929
        - claude-sonnet-4-20250514
        - claude-haiku-4-5-20251001
      title: ANTHROPICModel
    OktaAuthConfig:
      properties:
        integration_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Okta Integration ID
          description: >-
            ID of an Okta integration to use for bearer-token authentication.
            When set, the runtime fetches a cached OAuth token from this
            integration and injects it as the Authorization header. Ignored when
            api_key or an Authorization default_header is already provided.
      type: object
      title: OktaAuthConfig
      description: Configuration for Okta-based bearer-token authentication.
    OperationMode:
      type: string
      enum:
        - parallel_select_one
        - sequential_with_proactive
      title: OperationMode
    SelectionMode:
      type: string
      enum:
        - random
        - sequence
      title: SelectionMode
    AccessControlLevel:
      type: string
      enum:
        - personal
        - team
        - system
      title: AccessControlLevel
      description: Enum representing different access control levels.
    agentic_workflow_framework__configs__nodes__node__GlobalConditionEdgeEvaluationMethod:
      type: string
      enum:
        - workflow_default
        - tool_call
        - independent_llm_evaluations
      title: GlobalConditionEdgeEvaluationMethod
    SuperNodeInputField:
      properties:
        name:
          type: string
          title: Field Name
          description: >-
            Unique key for this field within the super node interface. Callers
            set field_values[name] = value.
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: Human-readable description of what this field controls
        required:
          type: boolean
          title: Required
          description: >-
            Whether this field must be provided by callers. If False and not
            provided, default_value is used.
          default: true
        default_value:
          anyOf:
            - {}
            - type: 'null'
          title: Default Value
          description: >-
            Default value used when required=False and the caller does not
            provide a value
        json_schema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: JSON Schema
          description: >-
            JSON Schema for this field, used by the UI to render and validate
            the config form
        mappings:
          items:
            $ref: '#/components/schemas/SuperNodeFieldMapping'
          type: array
          title: Mappings
          description: >-
            Where and how to inject the provided value into the sub-workflow
            (node/edge config fields or dynamic variables)
        value_type:
          $ref: '#/components/schemas/SuperNodeInputFieldValueType'
          title: Value Type
          description: >-
            Declared shape of the leaf value. Used at publish time to reject
            malformed field_values. Default 'any' preserves legacy behaviour (no
            shape check).
          default: any
        enum_values:
          anyOf:
            - items: {}
              type: array
            - type: 'null'
          title: Enum Values
          description: >-
            Required when value_type='enum'. Caller's value must be in this
            list.
        min_value:
          anyOf:
            - type: number
            - type: 'null'
          title: Min Value
          description: Inclusive lower bound for integer/number value types.
        max_value:
          anyOf:
            - type: number
            - type: 'null'
          title: Max Value
          description: Inclusive upper bound for integer/number value types.
        min_length:
          anyOf:
            - type: integer
            - type: 'null'
          title: Min Length
          description: Inclusive lower length for string/array value types.
        max_length:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Length
          description: Inclusive upper length for string/array value types.
      type: object
      required:
        - name
      title: SuperNodeInputField
      description: >-
        Defines one configuration field that callers must provide when
        instantiating this super node.
    APIMethodType:
      type: string
      enum:
        - GET
        - POST
        - PUT
        - DELETE
      title: APIMethodType
      description: Enumeration of HTTP methods for API calls.
    GoogleDocsUpdateWithTextConfig:
      properties:
        type:
          type: string
          const: google_docs_update_with_text
          title: Node Type
          description: Type of the node. Must be 'google_docs_update_with_text'
          default: google_docs_update_with_text
          input_field_not_visible: true
        content:
          anyOf:
            - type: string
            - type: 'null'
          title: Document Content
          description: Content to update the Google Docs document with.
        insert_index:
          anyOf:
            - type: integer
            - type: 'null'
          title: Insert Index
          description: >-
            Index at which to insert the content in the Google Docs document. If
            not provided, the content will be appended to the end of the
            document.
      type: object
      title: Google Docs Update With Text Node
      description: Configuration for updating a Google Docs document with text.
    StartEndTimings:
      properties:
        start:
          type: string
          title: Start Time
          description: Start time in HH:MM format
        end:
          type: string
          title: End Time
          description: End time in HH:MM format
      type: object
      required:
        - start
        - end
      title: StartEndTimings
    DynamicMessagesConfig:
      properties:
        dynamic_message_prompt:
          anyOf:
            - type: string
            - type: 'null'
          title: Dynamic Message Prompt
          description: >-
            A prompt describing what the LLM should say when this conditional
            edge is taken. The LLM will be asked to fill in a value based on
            this prompt, and the result will be emitted as an assistant
            response.
          input_field_type: textarea
      type: object
      title: DynamicMessagesConfig
    AIMessage:
      properties:
        content:
          anyOf:
            - type: string
            - items:
                anyOf:
                  - type: string
                  - additionalProperties: true
                    type: object
              type: array
          title: Content
        additional_kwargs:
          additionalProperties: true
          type: object
          title: Additional Kwargs
        response_metadata:
          additionalProperties: true
          type: object
          title: Response Metadata
        type:
          type: string
          const: ai
          title: Type
          default: ai
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
        tool_calls:
          items:
            $ref: '#/components/schemas/ToolCall'
          type: array
          title: Tool Calls
        invalid_tool_calls:
          items:
            $ref: '#/components/schemas/InvalidToolCall'
          type: array
          title: Invalid Tool Calls
        usage_metadata:
          anyOf:
            - $ref: '#/components/schemas/UsageMetadata'
            - type: 'null'
      additionalProperties: true
      type: object
      required:
        - content
      title: AIMessage
      description: |-
        Message from an AI.

        An `AIMessage` is returned from a chat model as a response to a prompt.

        This message represents the output of the model and consists of both
        the raw output as returned by the model and standardized fields
        (e.g., tool calls, usage metadata) added by the LangChain framework.
    HumanMessage:
      properties:
        content:
          anyOf:
            - type: string
            - items:
                anyOf:
                  - type: string
                  - additionalProperties: true
                    type: object
              type: array
          title: Content
        additional_kwargs:
          additionalProperties: true
          type: object
          title: Additional Kwargs
        response_metadata:
          additionalProperties: true
          type: object
          title: Response Metadata
        type:
          type: string
          const: human
          title: Type
          default: human
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
      additionalProperties: true
      type: object
      required:
        - content
      title: HumanMessage
      description: >-
        Message from the user.


        A `HumanMessage` is a message that is passed in from a user to the
        model.


        Example:
            ```python
            from langchain_core.messages import HumanMessage, SystemMessage

            messages = [
                SystemMessage(content="You are a helpful assistant! Your name is Bob."),
                HumanMessage(content="What is your name?"),
            ]

            # Instantiate a chat model and invoke it with the messages
            model = ...
            print(model.invoke(messages))
            ```
    ChatMessage:
      properties:
        content:
          anyOf:
            - type: string
            - items:
                anyOf:
                  - type: string
                  - additionalProperties: true
                    type: object
              type: array
          title: Content
        additional_kwargs:
          additionalProperties: true
          type: object
          title: Additional Kwargs
        response_metadata:
          additionalProperties: true
          type: object
          title: Response Metadata
        type:
          type: string
          const: chat
          title: Type
          default: chat
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
        role:
          type: string
          title: Role
      additionalProperties: true
      type: object
      required:
        - content
        - role
      title: ChatMessage
      description: Message that can be assigned an arbitrary speaker (i.e. role).
    SystemMessage:
      properties:
        content:
          anyOf:
            - type: string
            - items:
                anyOf:
                  - type: string
                  - additionalProperties: true
                    type: object
              type: array
          title: Content
        additional_kwargs:
          additionalProperties: true
          type: object
          title: Additional Kwargs
        response_metadata:
          additionalProperties: true
          type: object
          title: Response Metadata
        type:
          type: string
          const: system
          title: Type
          default: system
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
      additionalProperties: true
      type: object
      required:
        - content
      title: SystemMessage
      description: |-
        Message for priming AI behavior.

        The system message is usually passed in as the first of a sequence
        of input messages.

        Example:
            ```python
            from langchain_core.messages import HumanMessage, SystemMessage

            messages = [
                SystemMessage(content="You are a helpful assistant! Your name is Bob."),
                HumanMessage(content="What is your name?"),
            ]

            # Define a chat model and invoke it with the messages
            print(model.invoke(messages))
            ```
    FunctionMessage:
      properties:
        content:
          anyOf:
            - type: string
            - items:
                anyOf:
                  - type: string
                  - additionalProperties: true
                    type: object
              type: array
          title: Content
        additional_kwargs:
          additionalProperties: true
          type: object
          title: Additional Kwargs
        response_metadata:
          additionalProperties: true
          type: object
          title: Response Metadata
        type:
          type: string
          const: function
          title: Type
          default: function
        name:
          type: string
          title: Name
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
      additionalProperties: true
      type: object
      required:
        - content
        - name
      title: FunctionMessage
      description: >-
        Message for passing the result of executing a tool back to a model.


        `FunctionMessage` are an older version of the `ToolMessage` schema, and

        do not contain the `tool_call_id` field.


        The `tool_call_id` field is used to associate the tool call request with
        the

        tool call response. Useful in situations where a chat model is able

        to request multiple tool calls in parallel.
    ToolMessage:
      properties:
        content:
          anyOf:
            - type: string
            - items:
                anyOf:
                  - type: string
                  - additionalProperties: true
                    type: object
              type: array
          title: Content
        additional_kwargs:
          additionalProperties: true
          type: object
          title: Additional Kwargs
        response_metadata:
          additionalProperties: true
          type: object
          title: Response Metadata
        type:
          type: string
          const: tool
          title: Type
          default: tool
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
        tool_call_id:
          type: string
          title: Tool Call Id
        artifact:
          title: Artifact
        status:
          type: string
          enum:
            - success
            - error
          title: Status
          default: success
      additionalProperties: true
      type: object
      required:
        - content
        - tool_call_id
      title: ToolMessage
      description: >-
        Message for passing the result of executing a tool back to a model.


        `ToolMessage` objects contain the result of a tool invocation.
        Typically, the result

        is encoded inside the `content` field.


        `tool_call_id` is used to associate the tool call request with the tool
        call

        response. Useful in situations where a chat model is able to request
        multiple tool

        calls in parallel.


        Example:
            A `ToolMessage` representing a result of `42` from a tool call with id

            ```python
            from langchain_core.messages import ToolMessage

            ToolMessage(content="42", tool_call_id="call_Jja7J89XsjrOLA5r!MEOW!SL")
            ```

        Example:
            A `ToolMessage` where only part of the tool output is sent to the model
            and the full output is passed in to artifact.

            ```python
            from langchain_core.messages import ToolMessage

            tool_output = {
                "stdout": "From the graph we can see that the correlation between "
                "x and y is ...",
                "stderr": None,
                "artifacts": {"type": "image", "base64_data": "/9j/4gIcSU..."},
            }

            ToolMessage(
                content=tool_output["stdout"],
                artifact=tool_output,
                tool_call_id="call_Jja7J89XsjrOLA5r!MEOW!SL",
            )
            ```
    AIMessageChunk:
      properties:
        content:
          anyOf:
            - type: string
            - items:
                anyOf:
                  - type: string
                  - additionalProperties: true
                    type: object
              type: array
          title: Content
        additional_kwargs:
          additionalProperties: true
          type: object
          title: Additional Kwargs
        response_metadata:
          additionalProperties: true
          type: object
          title: Response Metadata
        type:
          type: string
          const: AIMessageChunk
          title: Type
          default: AIMessageChunk
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
        tool_calls:
          items:
            $ref: '#/components/schemas/ToolCall'
          type: array
          title: Tool Calls
        invalid_tool_calls:
          items:
            $ref: '#/components/schemas/InvalidToolCall'
          type: array
          title: Invalid Tool Calls
        usage_metadata:
          anyOf:
            - $ref: '#/components/schemas/UsageMetadata'
            - type: 'null'
        tool_call_chunks:
          items:
            $ref: '#/components/schemas/ToolCallChunk'
          type: array
          title: Tool Call Chunks
        chunk_position:
          anyOf:
            - type: string
              const: last
            - type: 'null'
          title: Chunk Position
      additionalProperties: true
      type: object
      required:
        - content
      title: AIMessageChunk
      description: Message chunk from an AI (yielded when streaming).
    HumanMessageChunk:
      properties:
        content:
          anyOf:
            - type: string
            - items:
                anyOf:
                  - type: string
                  - additionalProperties: true
                    type: object
              type: array
          title: Content
        additional_kwargs:
          additionalProperties: true
          type: object
          title: Additional Kwargs
        response_metadata:
          additionalProperties: true
          type: object
          title: Response Metadata
        type:
          type: string
          const: HumanMessageChunk
          title: Type
          default: HumanMessageChunk
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
      additionalProperties: true
      type: object
      required:
        - content
      title: HumanMessageChunk
      description: Human Message chunk.
    ChatMessageChunk:
      properties:
        content:
          anyOf:
            - type: string
            - items:
                anyOf:
                  - type: string
                  - additionalProperties: true
                    type: object
              type: array
          title: Content
        additional_kwargs:
          additionalProperties: true
          type: object
          title: Additional Kwargs
        response_metadata:
          additionalProperties: true
          type: object
          title: Response Metadata
        type:
          type: string
          const: ChatMessageChunk
          title: Type
          default: ChatMessageChunk
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
        role:
          type: string
          title: Role
      additionalProperties: true
      type: object
      required:
        - content
        - role
      title: ChatMessageChunk
      description: Chat Message chunk.
    SystemMessageChunk:
      properties:
        content:
          anyOf:
            - type: string
            - items:
                anyOf:
                  - type: string
                  - additionalProperties: true
                    type: object
              type: array
          title: Content
        additional_kwargs:
          additionalProperties: true
          type: object
          title: Additional Kwargs
        response_metadata:
          additionalProperties: true
          type: object
          title: Response Metadata
        type:
          type: string
          const: SystemMessageChunk
          title: Type
          default: SystemMessageChunk
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
      additionalProperties: true
      type: object
      required:
        - content
      title: SystemMessageChunk
      description: System Message chunk.
    FunctionMessageChunk:
      properties:
        content:
          anyOf:
            - type: string
            - items:
                anyOf:
                  - type: string
                  - additionalProperties: true
                    type: object
              type: array
          title: Content
        additional_kwargs:
          additionalProperties: true
          type: object
          title: Additional Kwargs
        response_metadata:
          additionalProperties: true
          type: object
          title: Response Metadata
        type:
          type: string
          const: FunctionMessageChunk
          title: Type
          default: FunctionMessageChunk
        name:
          type: string
          title: Name
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
      additionalProperties: true
      type: object
      required:
        - content
        - name
      title: FunctionMessageChunk
      description: Function Message chunk.
    ToolMessageChunk:
      properties:
        content:
          anyOf:
            - type: string
            - items:
                anyOf:
                  - type: string
                  - additionalProperties: true
                    type: object
              type: array
          title: Content
        additional_kwargs:
          additionalProperties: true
          type: object
          title: Additional Kwargs
        response_metadata:
          additionalProperties: true
          type: object
          title: Response Metadata
        type:
          type: string
          const: ToolMessageChunk
          title: Type
          default: ToolMessageChunk
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
        tool_call_id:
          type: string
          title: Tool Call Id
        artifact:
          title: Artifact
        status:
          type: string
          enum:
            - success
            - error
          title: Status
          default: success
      additionalProperties: true
      type: object
      required:
        - content
        - tool_call_id
      title: ToolMessageChunk
      description: Tool Message chunk.
    GoogleDocsCreateDocumentNodeRunInput:
      properties:
        type:
          type: string
          const: google_docs_create_document
          title: Node Type
          description: Type of the node. Must be 'google_docs_create_document'
          default: google_docs_create_document
          input_field_not_visible: true
      type: object
      title: GoogleDocsCreateDocumentNodeRunInput
      description: Run input for creating a Google Docs document.
    GoogleDocsGetDocumentNodeRunInput:
      properties:
        type:
          type: string
          const: google_docs_get_document
          title: Node Type
          description: Type of the node. Must be 'google_docs_get_document'
          default: google_docs_get_document
          input_field_not_visible: true
      type: object
      title: GoogleDocsGetDocumentNodeRunInput
      description: Run input for getting a Google Docs document.
    GoogleDocsUpdateDocumentNodeRunInput:
      properties:
        type:
          type: string
          const: google_docs_update_document
          title: Node Type
          description: Type of the node. Must be 'google_docs_update_document'
          default: google_docs_update_document
          input_field_not_visible: true
      type: object
      title: GoogleDocsUpdateDocumentNodeRunInput
      description: Run input for updating a Google Docs document.
    SuperNodeFieldMapping:
      properties:
        target_type:
          $ref: '#/components/schemas/SuperNodeFieldMappingTargetType'
          title: Target Type
          description: >-
            Where to inject the field value: into a node's config field
            ('node_config_field'), an edge's config field ('edge_config_field'),
            the sub-workflow's WorkflowConfig ('workflow_config_field'), a
            dynamic variable ('dynamic_variable'), or a runtime variable
            ('runtime_variable').
        target_node_or_edge_logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Target Node or Edge Logical ID
          description: >-
            Logical ID of the node or edge in the sub-workflow whose config
            field should be set. Required when target_type is
            'node_config_field' or 'edge_config_field'.
        target_field_path:
          anyOf:
            - type: string
            - type: 'null'
          title: Target Field Path
          description: >-
            Dot-separated path to the target field. For 'node_config_field':
            path within the target node's config, e.g.
            'main_response_config.prompt'. For 'edge_config_field': path within
            the target edge's config, e.g. 'condition.condition_string'. For
            'workflow_config_field': path within the sub-workflow's
            WorkflowConfig, e.g. 'default_prompt_prefix'. Required when
            target_type is 'node_config_field', 'edge_config_field', or
            'workflow_config_field'.
        target_variable_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Target Variable Name
          description: >-
            Name of the variable to set. For 'dynamic_variable': sets a {{var}}
            dynamic variable, e.g. 'patient_name'. For 'runtime_variable':
            injects into the sub-workflow's runtime_variables dict. Required
            when target_type is 'dynamic_variable' or 'runtime_variable'.
      type: object
      required:
        - target_type
      title: SuperNodeFieldMapping
      description: Defines where a super node input field value should be injected.
    SuperNodeInputFieldValueType:
      type: string
      enum:
        - string
        - integer
        - number
        - boolean
        - object
        - array
        - enum
        - any
      title: SuperNodeInputFieldValueType
      description: >-
        Declared shape of a super node input field's leaf value.


        Used at parent-workflow publish time to validate
        ``SuperNodeConfig.field_values``

        against the interface declared by the sub-workflow.
    ToolCall:
      properties:
        name:
          type: string
          title: Name
        args:
          additionalProperties: true
          type: object
          title: Args
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
        type:
          type: string
          const: tool_call
          title: Type
      additionalProperties: true
      type: object
      required:
        - name
        - args
        - id
      title: ToolCall
      description: |-
        Represents an AI's request to call a tool.

        Example:
            ```python
            {"name": "foo", "args": {"a": 1}, "id": "123"}
            ```

            This represents a request to call the tool named `'foo'` with arguments
            `{"a": 1}` and an identifier of `'123'`.

        !!! note "Factory function"

            `tool_call` may also be used as a factory to create a `ToolCall`. Benefits
            include:

            * Required arguments strictly validated at creation time
    InvalidToolCall:
      properties:
        type:
          type: string
          const: invalid_tool_call
          title: Type
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        args:
          anyOf:
            - type: string
            - type: 'null'
          title: Args
        error:
          anyOf:
            - type: string
            - type: 'null'
          title: Error
        index:
          anyOf:
            - type: integer
            - type: string
          title: Index
        extras:
          additionalProperties: true
          type: object
          title: Extras
      additionalProperties: true
      type: object
      required:
        - type
        - id
        - name
        - args
        - error
      title: InvalidToolCall
      description: |-
        Allowance for errors made by LLM.

        Here we add an `error` key to surface errors made during generation
        (e.g., invalid JSON arguments.)
    UsageMetadata:
      properties:
        input_tokens:
          type: integer
          title: Input Tokens
        output_tokens:
          type: integer
          title: Output Tokens
        total_tokens:
          type: integer
          title: Total Tokens
        input_token_details:
          $ref: '#/components/schemas/InputTokenDetails'
        output_token_details:
          $ref: '#/components/schemas/OutputTokenDetails'
      additionalProperties: true
      type: object
      required:
        - input_tokens
        - output_tokens
        - total_tokens
      title: UsageMetadata
      description: >-
        Usage metadata for a message, such as token counts.


        This is a standard representation of token usage that is consistent
        across models.


        Example:
            ```python
            {
                "input_tokens": 350,
                "output_tokens": 240,
                "total_tokens": 590,
                "input_token_details": {
                    "audio": 10,
                    "cache_creation": 200,
                    "cache_read": 100,
                },
                "output_token_details": {
                    "audio": 10,
                    "reasoning": 200,
                },
            }
            ```

        !!! warning "Behavior changed in `langchain-core` 0.3.9"

            Added `input_token_details` and `output_token_details`.

        !!! note "LangSmith SDK"

            The LangSmith SDK also has a `UsageMetadata` class. While the two share fields,
            LangSmith's `UsageMetadata` has additional fields to capture cost information
            used by the LangSmith platform.
    ToolCallChunk:
      properties:
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        args:
          anyOf:
            - type: string
            - type: 'null'
          title: Args
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
        index:
          anyOf:
            - type: integer
            - type: 'null'
          title: Index
        type:
          type: string
          const: tool_call_chunk
          title: Type
      additionalProperties: true
      type: object
      required:
        - name
        - args
        - id
        - index
      title: ToolCallChunk
      description: >-
        A chunk of a tool call (yielded when streaming).


        When merging `ToolCallChunk` objects (e.g., via
        `AIMessageChunk.__add__`), all

        string attributes are concatenated. Chunks are only merged if their
        values of

        `index` are equal and not `None`.


        Example:

        ```python

        left_chunks = [ToolCallChunk(name="foo", args='{"a":', index=0)]

        right_chunks = [ToolCallChunk(name=None, args="1}", index=0)]


        (
            AIMessageChunk(content="", tool_call_chunks=left_chunks)
            + AIMessageChunk(content="", tool_call_chunks=right_chunks)
        ).tool_call_chunks == [ToolCallChunk(name="foo", args='{"a":1}',
        index=0)]

        ```
    SuperNodeFieldMappingTargetType:
      type: string
      enum:
        - node_config_field
        - dynamic_variable
        - edge_config_field
        - workflow_config_field
        - runtime_variable
      title: SuperNodeFieldMappingTargetType
    InputTokenDetails:
      properties:
        audio:
          type: integer
          title: Audio
        cache_creation:
          type: integer
          title: Cache Creation
        cache_read:
          type: integer
          title: Cache Read
      additionalProperties: true
      type: object
      title: InputTokenDetails
      description: >-
        Breakdown of input token counts.


        Does *not* need to sum to full input token count. Does *not* need to
        have all keys.


        Example:
            ```python
            {
                "audio": 10,
                "cache_creation": 200,
                "cache_read": 100,
            }
            ```

        May also hold extra provider-specific keys.


        !!! version-added "Added in `langchain-core` 0.3.9"
    OutputTokenDetails:
      properties:
        audio:
          type: integer
          title: Audio
        reasoning:
          type: integer
          title: Reasoning
      additionalProperties: true
      type: object
      title: OutputTokenDetails
      description: >-
        Breakdown of output token counts.


        Does *not* need to sum to full output token count. Does *not* need to
        have all keys.


        Example:
            ```python
            {
                "audio": 10,
                "reasoning": 200,
            }
            ```

        May also hold extra provider-specific keys.


        !!! version-added "Added in `langchain-core` 0.3.9"
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: Bearer
      type: http
      description: >-
        Retrieve your API Key from [Dashboard API Keys
        Section](https://dashboard.interactly.ai/api-keys).

````