CMDCOrchestrator.HumanTask (cmdc_orchestrator v0.6.0)

Copy Markdown View Source

人类任务等待点。

cmdc_orchestrator 只负责可恢复等待、决策聚合、幂等与审计事件所需的 账本数据;审批页面、RBAC、通知与组织结构解析由上层企业平台接管。

Summary

Functions

任务是否已经过期。

从 human_task 节点等待输出构造任务账本。

记录一次人工决策并返回聚合结果。

终态任务。

按任务超时策略生成终态结果。

判断节点输出是否声明为 human_task 等待。

Types

status()

@type status() :: :pending | :completed | :failed | :expired

t()

@type t() :: %CMDCOrchestrator.HumanTask{
  allowed_actions: [String.t()],
  approval_mode: String.t(),
  assignee_refs: [String.t()],
  completed_at: DateTime.t() | nil,
  correlation_id: String.t() | nil,
  created_at: DateTime.t(),
  decisions: [map()],
  default_output: map() | nil,
  default_signal: String.t(),
  description: String.t() | nil,
  expires_at: DateTime.t() | nil,
  id: String.t(),
  input_schema: map() | nil,
  metadata: map(),
  node_id: String.t(),
  on_timeout: String.t(),
  required_count: pos_integer(),
  result: map() | nil,
  run_id: String.t(),
  status: status(),
  timeout_ms: pos_integer() | nil,
  title: String.t() | nil,
  ui_schema: map() | nil,
  updated_at: DateTime.t()
}

Functions

expired?(human_task, now)

@spec expired?(t(), DateTime.t()) :: boolean()

任务是否已经过期。

from_waiting_output(run_id, node, output)

@spec from_waiting_output(String.t(), map(), map()) :: {:ok, t()} | :ignore

从 human_task 节点等待输出构造任务账本。

record_decision(task, decision, opts \\ [])

@spec record_decision(t(), map() | atom() | String.t(), keyword()) ::
  {:ok, t(), map()} | {:error, term()}

记录一次人工决策并返回聚合结果。

terminal?(human_task)

@spec terminal?(t()) :: boolean()

终态任务。

timeout(task, opts \\ [])

@spec timeout(
  t(),
  keyword()
) :: {:ok, t(), map()} | {:error, term()}

按任务超时策略生成终态结果。

waiting_output?(output)

@spec waiting_output?(term()) :: boolean()

判断节点输出是否声明为 human_task 等待。