# `Cyclium.Intent.ActionPlan`
[🔗](https://github.com/Cyclium/cyclium_ex/blob/main/lib/cyclium/intent/action_plan.ex#L1)

A structured output the synthesizer returns when interpreting user intent.
Describes what the interactive actor should do next.

# `plan_kind`

```elixir
@type plan_kind() ::
  :tool_call
  | :multi_tool_plan
  | :output_proposal
  | :explain_only
  | :request_approval
  | :workflow_trigger
```

# `risk_level`

```elixir
@type risk_level() :: :low | :medium | :high
```

# `t`

```elixir
@type t() :: %Cyclium.Intent.ActionPlan{
  approval: map() | nil,
  explanation: binary() | nil,
  kind: plan_kind(),
  meta: map(),
  output: Cyclium.OutputProposal.t() | nil,
  risk: risk_level(),
  steps: [Cyclium.Intent.ToolCallStep.t()],
  tool: Cyclium.Intent.ToolCallStep.t() | nil,
  why: binary(),
  workflow: Cyclium.Intent.WorkflowTrigger.t() | nil
}
```

# `plan_kinds`

# `risk_levels`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
