Documentation Index
Fetch the complete documentation index at: https://smithers.sh/llms.txt
Use this file to discover all available pages before exploring further.
// Props
import { Kanban } from "smithers-orchestrator";
type ColumnDef = {
name: string;
agent: AgentLike;
output: OutputTarget;
prompt?: (ctx: { item: unknown; column: string }) => string;
task?: Partial<TaskProps>; // retries, timeoutMs, etc.
};
type KanbanProps = {
id?: string; // default: "kanban"
columns: ColumnDef[];
useTickets: () => Array<{ id: string }>;
agents?: Record<string, AgentLike>; // overrides column-level agents
maxConcurrency?: number; // default: Infinity, per column
onComplete?: OutputTarget;
until?: boolean; // default: false
maxIterations?: number; // default: 5
skipIf?: boolean;
children?: ReactNode; // content for onComplete task
};
const columns = [
{ name: "triage", agent: triageAgent, output: outputs.triage },
{ name: "work", agent: workerAgent, output: outputs.work },
{ name: "review", agent: reviewAgent, output: outputs.review },
];
<Workflow name="ticket-board">
<Kanban
columns={columns}
useTickets={() => tickets}
until={allDone}
maxIterations={3}
/>
</Workflow>;
Notes
- Item tasks default to
continueOnFail={true}; use column.task to add retries or override.
useTickets is called at render time; return different items per iteration for dynamic sources.
- Use
until with ctx.outputMaybe() to exit when all items reach the final column.