DatagroutConduit.Flow (DataGrout Conduit v0.5.0)

Copy Markdown View Source

Workflow execution, routing, human-in-the-loop, and execution history.

Summary

Functions

Get details and transcript for a specific execution (data-grout/inspect.execution-details).

List recent tool executions (data-grout/inspect.execution-history).

Pause workflow for human approval (data-grout/flow.request-approval).

Request user clarification for missing fields (data-grout/flow.request-feedback).

Conditional dispatch with predicate-based branching (data-grout/flow.route).

Execute a multi-step workflow plan (data-grout/flow.into).

Functions

details(client, opts \\ %{})

@spec details(GenServer.server(), map()) :: {:ok, map()} | {:error, term()}

Get details and transcript for a specific execution (data-grout/inspect.execution-details).

Params

  • "execution_id" - Unique execution ID (required)

history(client, opts \\ %{})

@spec history(GenServer.server(), map()) :: {:ok, map()} | {:error, term()}

List recent tool executions (data-grout/inspect.execution-history).

Params

  • "limit" - Max results (default: 50)
  • "offset" - Pagination offset
  • "status" - Filter by success, error, timeout
  • "refractions_only" - Only refraction executions

request_approval(client, opts \\ %{})

@spec request_approval(GenServer.server(), map()) :: {:ok, map()} | {:error, term()}

Pause workflow for human approval (data-grout/flow.request-approval).

Use for destructive or policy-gated actions.

Params

  • "action" - Name of the action (required)
  • "details" - Action-specific payload
  • "reason" - Why approval is requested
  • "context" - Workflow context

request_feedback(client, opts \\ %{})

@spec request_feedback(GenServer.server(), map()) :: {:ok, map()} | {:error, term()}

Request user clarification for missing fields (data-grout/flow.request-feedback).

Pauses until user provides values.

Params

  • "missing_fields" - List of field names (required)
  • "reason" - Why this information is needed (required)
  • "current_data" - Data already collected
  • "suggestions" - Suggestions per field
  • "context" - Workflow context

route(client, opts \\ %{})

@spec route(GenServer.server(), map()) :: {:ok, map()} | {:error, term()}

Conditional dispatch with predicate-based branching (data-grout/flow.route).

run(client, opts \\ %{})

@spec run(GenServer.server(), map()) :: {:ok, map()} | {:error, term()}

Execute a multi-step workflow plan (data-grout/flow.into).

Params

  • "plan" - Ordered list of tool call step descriptors (required)
  • "validate_ctc" - Validate each call against its CTC schema (default: true)
  • "save_as_skill" - Persist the flow as a reusable skill (default: false)
  • "input_data" - Runtime input data for the flow