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 { Runbook } from "smithers-orchestrator";
type RunbookProps = {
id?: string; // default "runbook"
steps: RunbookStep[];
defaultAgent?: AgentLike;
stepOutput: OutputTarget;
approvalRequest?: Partial<ApprovalRequest>;
onDeny?: "fail" | "skip"; // default "fail"
skipIf?: boolean;
};
type RunbookStep = {
id: string;
agent?: AgentLike;
command?: string;
risk: "safe" | "risky" | "critical"; // critical adds `elevated: true` to approval meta
label?: string;
output?: OutputTarget;
};
export default smithers(() => (
<Workflow name="deploy-runbook">
<Runbook
defaultAgent={ops}
stepOutput={outputs.stepResult}
steps={[
{ id: "health-check", command: "curl -f https://api.example.com/health", risk: "safe" },
{ id: "backup-db", command: "pg_dump prod > backup.sql", risk: "risky" },
{ id: "run-migration", command: "npx prisma migrate deploy", risk: "critical" },
{ id: "smoke-test", command: "npm run test:smoke", risk: "safe" },
]}
/>
</Workflow>
));
Notes
- Each step depends on the previous via
needs; execution order is guaranteed.
- Critical steps set
elevated: true in approval metadata for stronger auth UIs.
- Approval output is stored at
{prefix}-{step.id}-approval-decision.