---
title: Components API
description: The typed JSX component surface a workflow is built from, at a glance.
icon: "shapes"
---

Components are not imported from `smithers-orchestrator`; the factory returns a
typed set bound to your output schemas.

```ts
const { Workflow, Task, Sequence, Parallel, Branch, Loop } = createSmithers(schemas);
```

Every row below links to that component's guide page. Full prop tables live in
the [Types reference](/reference/types); for the model, see the
[JSX overview](/jsx/overview).

## Control flow

The structural primitives. They order, branch, repeat, and gate the work.

| Component | Props type | Purpose | Reference |
| --- | --- | --- | --- |
| `Workflow` | [`WorkflowProps`](/reference/types) | Root node; names the run and holds the graph. | [Workflow](/components/workflow) |
| `Task` | [`TaskProps`](/reference/types) | Executable node; runs an agent, a compute callback, or emits a static value. | [Task](/components/task) |
| `Sequence` | [`SequenceProps`](/reference/types) | Run children in order, each waiting for the last. | [Sequence](/components/sequence) |
| `Parallel` | [`ParallelProps`](/reference/types) | Run children concurrently and join. | [Parallel](/components/parallel) |
| `Branch` | [`BranchProps`](/reference/types) | Pick one child path from a predicate. | [Branch](/components/branch) |
| `Loop` | [`LoopProps`](/reference/types) | Re-run children until a condition holds. | [Loop](/components/loop) |
| `Approval` | [`ApprovalProps`](/reference/types) | Pause for a human decision before continuing. | [Approval](/components/approval) |
| `MergeQueue` | [`MergeQueueProps`](/reference/types) | Serialize merges through an ordered queue. | [MergeQueue](/components/merge-queue) |
| `Worktree` | [`WorktreeProps`](/reference/types) | Run children in an isolated git worktree. | [Worktree](/components/worktree) |

## Composite

Higher-order patterns built from the primitives. Reach for these before
hand-rolling the same shape.

| Component | Props type | Purpose | Reference |
| --- | --- | --- | --- |
| `Kanban` | [`KanbanProps`](/reference/types) | Pull work across columns with bounded concurrency. | [Kanban](/components/kanban) |
| `ClassifyAndRoute` | [`ClassifyAndRouteProps`](/reference/types) | Classify an input, then dispatch to the matching handler. | [ClassifyAndRoute](/components/classify-and-route) |
| `GatherAndSynthesize` | [`GatherAndSynthesizeProps`](/reference/types) | Fan out gatherers, then fold their results into one. | [GatherAndSynthesize](/components/gather-and-synthesize) |
| `Panel` | [`PanelProps`](/reference/types) | Ask several agents, then aggregate their answers. | [Panel](/components/panel) |
| `CheckSuite` | [`CheckSuiteProps`](/reference/types) | Run a set of pass/fail checks and gate on them. | [CheckSuite](/components/check-suite) |
| `Debate` | [`DebateProps`](/reference/types) | Opposing agents argue across rounds toward a verdict. | [Debate](/components/debate) |
| `ReviewLoop` | [`ReviewLoopProps`](/reference/types) | Produce, review, and revise until the review passes. | [ReviewLoop](/components/review-loop) |
| `Optimizer` | [`OptimizerProps`](/reference/types) | Iterate a candidate against a scorer toward a target. | [Optimizer](/components/optimizer) |
| `ContentPipeline` | [`ContentPipelineProps`](/reference/types) | Draft, edit, and finalize content in stages. | [ContentPipeline](/components/content-pipeline) |
| `ApprovalGate` | [`ApprovalGateProps`](/reference/types) | Conditional human gate with auto-approve rules. | [ApprovalGate](/components/approval-gate) |
| `EscalationChain` | [`EscalationChainProps`](/reference/types) | Try handlers in order, escalating on failure. | [EscalationChain](/components/escalation-chain) |
| `DecisionTable` | [`DecisionTableProps`](/reference/types) | Map matched conditions to actions, rule by rule. | [DecisionTable](/components/decision-table) |
| `DriftDetector` | [`DriftDetectorProps`](/reference/types) | Compare current state to a baseline and act on drift. | [DriftDetector](/components/drift-detector) |
| `ScanFixVerify` | [`ScanFixVerifyProps`](/reference/types) | Scan for issues, apply fixes, then verify them. | [ScanFixVerify](/components/scan-fix-verify) |
| `Poller` | [`PollerProps`](/reference/types) | Poll a source until a condition is met or it times out. | [Poller](/components/poller) |
| `Supervisor` | [`SupervisorProps`](/reference/types) | Watch a child and restart it under a policy. | [Supervisor](/components/supervisor) |
| `Runbook` | [`RunbookProps`](/reference/types) | Run an ordered set of operational steps. | [Runbook](/components/runbook) |
| `DelegationChain` | [`DelegationChainProps`](/reference/types) | Hand a task down a chain of agents until one resolves it. | [DelegationChain](/components/delegation-chain) |

## Engine

Durability and external-world primitives: subflows, events, timers, sandboxes,
and compensable transactions.

| Component | Props type | Purpose | Reference |
| --- | --- | --- | --- |
| `Subflow` | [`SubflowProps`](/reference/types) | Embed another workflow as a child node. | [Subflow](/components/subflow) |
| `WaitForEvent` | [`WaitForEventProps`](/reference/types) | Suspend until a named external event arrives. | [WaitForEvent](/components/wait-for-event) |
| `Signal` | [`SignalProps`](/reference/types) | Emit a named signal other nodes can wait on. | [Signal](/components/signal) |
| `Timer` | [`TimerProps`](/reference/types) | Durably wait for a delay or a deadline. | [Timer](/components/timer) |
| `HumanTask` | [`HumanTaskProps`](/reference/types) | Assign work to a human and wait for the result. | [HumanTask](/components/human-task) |
| `Sandbox` | [`SandboxProps`](/reference/types) | Run children in an isolated execution sandbox. | [Sandbox](/components/sandbox) |
| `ContinueAsNew` | [`ContinueAsNewProps`](/reference/types) | Restart the run with fresh history to bound state. | [ContinueAsNew](/components/continue-as-new) |
| `Saga` | [`SagaProps`](/reference/types) | Run steps with compensation that rolls back on failure. | [Saga](/components/saga) |
| `TryCatchFinally` | [`TryCatchFinallyProps`](/reference/types) | Structured error handling around a child subtree. | [TryCatchFinally](/components/try-catch-finally) |

## Cross-cutting

Concerns that wrap or augment the whole graph.

| Component | Props type | Purpose | Reference |
| --- | --- | --- | --- |
| `Aspects` | [`AspectsProps`](/reference/types) | Apply cross-cutting behavior to matched nodes. | [Aspects](/components/aspects) |
| `SuperSmithers` | [`SuperSmithersProps`](/reference/types) | Orchestrate child workflows as one super-run. | [SuperSmithers](/components/super-smithers) |
| `Sidecar` | [`SidecarProps`](/reference/types) | Attach a companion node that runs alongside a subtree. | [Sidecar](/components/sidecar) |
| `UI` | [`UIProps`](/reference/types) | Mount a live custom web UI for the run. | [UI](/components/ui) |
| `TUI` | [`TUIProps`](/reference/types) | Render a terminal UI for the run. | [TUI](/components/tui) |

---

**Source** [components package](https://github.com/smithersai/smithers/blob/main/packages/components/src) · **Tests** [packages/components/tests](https://github.com/smithersai/smithers/blob/main/packages/components/tests) · **See also** [JSX overview](/jsx/overview), [Types](/reference/types)
