@smithers-orchestrator/components 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/LICENSE +21 -0
  2. package/package.json +47 -0
  3. package/src/SmithersWorkflow.ts +1 -0
  4. package/src/aspects/AspectAccumulator.ts +9 -0
  5. package/src/aspects/AspectContext.js +29 -0
  6. package/src/aspects/AspectContextValue.ts +16 -0
  7. package/src/aspects/CostBudgetConfig.ts +9 -0
  8. package/src/aspects/LatencySloConfig.ts +11 -0
  9. package/src/aspects/TokenBudgetConfig.ts +11 -0
  10. package/src/aspects/TrackingConfig.ts +11 -0
  11. package/src/aspects/index.js +10 -0
  12. package/src/components/Approval.js +211 -0
  13. package/src/components/ApprovalAutoApprove.ts +8 -0
  14. package/src/components/ApprovalDecision.ts +4 -0
  15. package/src/components/ApprovalGate.js +45 -0
  16. package/src/components/ApprovalGateProps.ts +22 -0
  17. package/src/components/ApprovalMode.ts +1 -0
  18. package/src/components/ApprovalOption.ts +6 -0
  19. package/src/components/ApprovalProps.ts +42 -0
  20. package/src/components/ApprovalRanking.ts +4 -0
  21. package/src/components/ApprovalRequest.ts +5 -0
  22. package/src/components/ApprovalSelection.ts +4 -0
  23. package/src/components/Aspects.js +39 -0
  24. package/src/components/AspectsProps.ts +18 -0
  25. package/src/components/Branch.js +12 -0
  26. package/src/components/BranchProps.ts +8 -0
  27. package/src/components/CategoryConfig.ts +10 -0
  28. package/src/components/CheckConfig.ts +8 -0
  29. package/src/components/CheckSuite.js +71 -0
  30. package/src/components/CheckSuiteProps.ts +12 -0
  31. package/src/components/ClassifyAndRoute.js +75 -0
  32. package/src/components/ClassifyAndRouteProps.ts +30 -0
  33. package/src/components/ColumnDef.ts +19 -0
  34. package/src/components/ContentPipeline.js +38 -0
  35. package/src/components/ContentPipelineProps.ts +12 -0
  36. package/src/components/ContentPipelineStage.ts +13 -0
  37. package/src/components/ContinueAsNew.js +27 -0
  38. package/src/components/ContinueAsNewProps.ts +6 -0
  39. package/src/components/Debate.js +63 -0
  40. package/src/components/DebateProps.ts +15 -0
  41. package/src/components/DecisionRule.ts +10 -0
  42. package/src/components/DecisionTable.js +42 -0
  43. package/src/components/DecisionTableProps.ts +14 -0
  44. package/src/components/DepsSpec.ts +3 -0
  45. package/src/components/DriftDetector.js +54 -0
  46. package/src/components/DriftDetectorProps.ts +29 -0
  47. package/src/components/EscalationChain.js +99 -0
  48. package/src/components/EscalationChainProps.ts +20 -0
  49. package/src/components/EscalationLevel.ts +13 -0
  50. package/src/components/GatherAndSynthesize.js +69 -0
  51. package/src/components/GatherAndSynthesizeProps.ts +24 -0
  52. package/src/components/HumanTask.js +94 -0
  53. package/src/components/HumanTaskProps.ts +27 -0
  54. package/src/components/InferDeps.ts +8 -0
  55. package/src/components/Kanban.js +68 -0
  56. package/src/components/KanbanProps.ts +27 -0
  57. package/src/components/Loop.js +6 -0
  58. package/src/components/LoopProps.ts +11 -0
  59. package/src/components/MergeQueue.js +16 -0
  60. package/src/components/MergeQueueProps.ts +12 -0
  61. package/src/components/Optimizer.js +52 -0
  62. package/src/components/OptimizerProps.ts +25 -0
  63. package/src/components/OutputTarget.ts +6 -0
  64. package/src/components/Panel.js +69 -0
  65. package/src/components/PanelProps.ts +17 -0
  66. package/src/components/PanelistConfig.ts +7 -0
  67. package/src/components/Parallel.js +16 -0
  68. package/src/components/ParallelProps.ts +8 -0
  69. package/src/components/Poller.js +69 -0
  70. package/src/components/PollerProps.ts +24 -0
  71. package/src/components/Ralph.js +17 -0
  72. package/src/components/RalphProps.ts +4 -0
  73. package/src/components/ReviewLoop.js +51 -0
  74. package/src/components/ReviewLoopProps.ts +23 -0
  75. package/src/components/Runbook.js +91 -0
  76. package/src/components/RunbookProps.ts +19 -0
  77. package/src/components/RunbookStep.ts +17 -0
  78. package/src/components/Saga.js +77 -0
  79. package/src/components/SagaProps.ts +10 -0
  80. package/src/components/SagaStepDef.ts +8 -0
  81. package/src/components/SagaStepProps.ts +7 -0
  82. package/src/components/Sandbox.js +48 -0
  83. package/src/components/SandboxProps.ts +46 -0
  84. package/src/components/SandboxRuntime.ts +1 -0
  85. package/src/components/SandboxVolumeMount.ts +5 -0
  86. package/src/components/SandboxWorkspaceSpec.ts +6 -0
  87. package/src/components/ScanFixVerify.js +60 -0
  88. package/src/components/ScanFixVerifyProps.ts +30 -0
  89. package/src/components/Sequence.js +11 -0
  90. package/src/components/SequenceProps.ts +6 -0
  91. package/src/components/Signal.js +48 -0
  92. package/src/components/SignalProps.ts +21 -0
  93. package/src/components/SourceDef.ts +12 -0
  94. package/src/components/Subflow.js +32 -0
  95. package/src/components/SubflowProps.ts +33 -0
  96. package/src/components/SuperSmithers.js +102 -0
  97. package/src/components/SuperSmithersProps.ts +20 -0
  98. package/src/components/Supervisor.js +86 -0
  99. package/src/components/SupervisorProps.ts +28 -0
  100. package/src/components/Task.js +319 -0
  101. package/src/components/TaskProps.ts +57 -0
  102. package/src/components/Timer.js +42 -0
  103. package/src/components/TimerProps.ts +21 -0
  104. package/src/components/TryCatchFinally.js +35 -0
  105. package/src/components/TryCatchFinallyProps.ts +12 -0
  106. package/src/components/WaitForEvent.js +37 -0
  107. package/src/components/WaitForEventProps.ts +28 -0
  108. package/src/components/Workflow.js +10 -0
  109. package/src/components/WorkflowProps.ts +7 -0
  110. package/src/components/Worktree.js +17 -0
  111. package/src/components/WorktreeProps.ts +11 -0
  112. package/src/components/control-flow-utils.js +37 -0
  113. package/src/components/index.js +121 -0
  114. package/src/index.d.ts +1579 -0
  115. package/src/index.js +62 -0
  116. package/src/markdownComponents.js +44 -0
  117. package/src/renderMdx.js +26 -0
  118. package/src/types/react-dom-server.d.ts +1 -0
  119. package/src/types.ts +22 -0
  120. package/src/zod-to-example.js +87 -0
package/src/index.d.ts ADDED
@@ -0,0 +1,1579 @@
1
+ import * as _smithers_driver_workflow_types from '@smithers-orchestrator/driver/workflow-types';
2
+ import * as _smithers_driver_WorkflowDriverOptions from '@smithers-orchestrator/driver/WorkflowDriverOptions';
3
+ import * as _smithers_driver_WorkflowDefinition from '@smithers-orchestrator/driver/WorkflowDefinition';
4
+ import { WorkflowDefinition } from '@smithers-orchestrator/driver/WorkflowDefinition';
5
+ import * as _smithers_errors_SmithersErrorCode from '@smithers-orchestrator/errors/SmithersErrorCode';
6
+ import { SmithersErrorCode as SmithersErrorCode$1 } from '@smithers-orchestrator/errors/SmithersErrorCode';
7
+ import * as _smithers_scheduler_SmithersWorkflowOptions from '@smithers-orchestrator/scheduler/SmithersWorkflowOptions';
8
+ import * as _smithers_db_SchemaRegistryEntry from '@smithers-orchestrator/db/SchemaRegistryEntry';
9
+ import * as _smithers_driver from '@smithers-orchestrator/driver';
10
+ import { SmithersCtx as SmithersCtx$1 } from '@smithers-orchestrator/driver';
11
+ import * as _smithers_driver_RunAuthContext from '@smithers-orchestrator/driver/RunAuthContext';
12
+ import * as _smithers_scheduler_RetryPolicy from '@smithers-orchestrator/scheduler/RetryPolicy';
13
+ import { RetryPolicy as RetryPolicy$1 } from '@smithers-orchestrator/scheduler/RetryPolicy';
14
+ import * as _smithers_driver_OutputKey from '@smithers-orchestrator/driver/OutputKey';
15
+ import * as _smithers_driver_OutputAccessor from '@smithers-orchestrator/driver/OutputAccessor';
16
+ import { InferOutputEntry as InferOutputEntry$1 } from '@smithers-orchestrator/driver/OutputAccessor';
17
+ import * as _smithers_graph from '@smithers-orchestrator/graph';
18
+ import * as _smithers_scheduler from '@smithers-orchestrator/scheduler';
19
+ import * as _smithers_scheduler_CachePolicy from '@smithers-orchestrator/scheduler/CachePolicy';
20
+ import { CachePolicy as CachePolicy$1 } from '@smithers-orchestrator/scheduler/CachePolicy';
21
+ import React from 'react';
22
+ import * as zod from 'zod';
23
+ import { z } from 'zod';
24
+ import { SmithersError } from '@smithers-orchestrator/errors/SmithersError';
25
+ import { AgentLike } from '@smithers-orchestrator/agents/AgentLike';
26
+ import * as _smithers_scorers_types from '@smithers-orchestrator/scorers/types';
27
+ import { ScorersMap as ScorersMap$1 } from '@smithers-orchestrator/scorers/types';
28
+ import { TaskMemoryConfig } from '@smithers-orchestrator/memory/types';
29
+ import * as _smithers_errors from '@smithers-orchestrator/errors';
30
+ import * as zod_v4_core from 'zod/v4/core';
31
+
32
+ type WorktreeProps$2 = {
33
+ id?: string;
34
+ path: string;
35
+ branch?: string;
36
+ /** Base branch for syncing worktrees (default: "main"). */
37
+ baseBranch?: string;
38
+ skipIf?: boolean;
39
+ children?: React.ReactNode;
40
+ };
41
+
42
+ type WorkflowProps$2 = {
43
+ name: string;
44
+ cache?: boolean;
45
+ children?: React.ReactNode;
46
+ };
47
+
48
+ /** Valid output targets: a Zod schema (recommended), a Drizzle table object, or a string key (escape hatch). */
49
+ type OutputTarget$1 = z.ZodObject<z.ZodRawShape> | {
50
+ $inferSelect: Record<string, unknown>;
51
+ } | string;
52
+
53
+ type WaitForEventProps$2 = {
54
+ id: string;
55
+ /** Event name/type to wait for. */
56
+ event: string;
57
+ /** Correlation key to match the right event instance. */
58
+ correlationId?: string;
59
+ /** Where to store the event payload. */
60
+ output: OutputTarget$1;
61
+ /** Zod schema for the event payload. */
62
+ outputSchema?: z.ZodObject<z.ZodRawShape>;
63
+ /** Max wait time in ms before timing out. */
64
+ timeoutMs?: number;
65
+ /** Behavior on timeout: fail (default), skip the node, or continue with null. */
66
+ onTimeout?: "fail" | "skip" | "continue";
67
+ /** Do not block unrelated downstream flow while waiting for the event. */
68
+ async?: boolean;
69
+ skipIf?: boolean;
70
+ /** Explicit dependency on other task node IDs. */
71
+ dependsOn?: string[];
72
+ /** Named dependencies on other tasks. Keys become context keys, values are task node IDs. */
73
+ needs?: Record<string, string>;
74
+ label?: string;
75
+ meta?: Record<string, unknown>;
76
+ key?: string;
77
+ };
78
+
79
+ type TryCatchFinallyProps$2 = {
80
+ id?: string;
81
+ try: React.ReactElement;
82
+ catch?: React.ReactElement | ((error: SmithersError) => React.ReactElement);
83
+ catchErrors?: SmithersErrorCode$1[];
84
+ finally?: React.ReactElement;
85
+ skipIf?: boolean;
86
+ };
87
+
88
+ type TimerProps$2 = {
89
+ id: string;
90
+ /**
91
+ * Relative duration (examples: "500ms", "1s", "30m", "1h", "7d").
92
+ */
93
+ duration?: string;
94
+ /**
95
+ * Absolute fire time (ISO timestamp or Date).
96
+ */
97
+ until?: string | Date;
98
+ /**
99
+ * Recurring timer syntax is reserved for phase 2 and is not supported yet.
100
+ */
101
+ every?: string;
102
+ skipIf?: boolean;
103
+ dependsOn?: string[];
104
+ needs?: Record<string, string>;
105
+ label?: string;
106
+ meta?: Record<string, unknown>;
107
+ key?: string;
108
+ };
109
+
110
+ type DepsSpec$1 = Record<string, OutputTarget$1>;
111
+
112
+ type InferDepValue<T> = T extends string ? unknown : InferOutputEntry$1<T>;
113
+ type InferDeps$1<D extends DepsSpec$1> = {
114
+ [K in keyof D]: InferDepValue<D[K]>;
115
+ };
116
+
117
+ type TaskProps$2<Row, Output extends OutputTarget$1 = OutputTarget$1, D extends DepsSpec$1 = {}> = {
118
+ key?: string;
119
+ id: string;
120
+ /** Where to store the task's result. Pass a Zod schema from `outputs` (recommended), a Drizzle table, or a string key. */
121
+ output: Output;
122
+ /**
123
+ * Optional Zod schema describing the expected agent output shape.
124
+ * When `output` is already a ZodObject this is inferred automatically.
125
+ * Used for validation and to inject schema examples into MDX prompts.
126
+ */
127
+ outputSchema?: z.ZodObject<z.ZodRawShape>;
128
+ /** Agent or array of agents [primary, fallback1, fallback2, ...]. Tries in order on retries. */
129
+ agent?: AgentLike | AgentLike[];
130
+ /** Convenience alias for a single retry fallback without exposing array syntax in JSX. */
131
+ fallbackAgent?: AgentLike;
132
+ /** Explicit dependency on other task node IDs. The task will not run until all listed tasks complete. */
133
+ dependsOn?: string[];
134
+ /** Named dependencies on other tasks. Keys become context keys, values are task node IDs. */
135
+ needs?: Record<string, string>;
136
+ /** Render-time typed dependencies. Keys resolve from task ids of the same name, or from matching `needs` entries. */
137
+ deps?: D;
138
+ skipIf?: boolean;
139
+ needsApproval?: boolean;
140
+ /** When paired with `needsApproval`, do not block unrelated downstream flow while the approval is pending. */
141
+ async?: boolean;
142
+ timeoutMs?: number;
143
+ heartbeatTimeoutMs?: number;
144
+ heartbeatTimeout?: number;
145
+ /** Disable retries entirely. Equivalent to retries={0}. */
146
+ noRetry?: boolean;
147
+ retries?: number;
148
+ retryPolicy?: RetryPolicy$1;
149
+ continueOnFail?: boolean;
150
+ cache?: CachePolicy$1;
151
+ /** Optional scorers to evaluate this task's output after completion. */
152
+ scorers?: ScorersMap$1;
153
+ /** Optional cross-run memory configuration. */
154
+ memory?: TaskMemoryConfig;
155
+ allowTools?: string[];
156
+ label?: string;
157
+ meta?: Record<string, unknown>;
158
+ /** @internal Used by createSmithers() to bind tasks to the correct workflow context. */
159
+ smithersContext?: React.Context<SmithersCtx$1<unknown> | null>;
160
+ children?: string | Row | (() => Row | Promise<Row>) | React.ReactNode | ((deps: InferDeps$1<D>) => Row | React.ReactNode);
161
+ };
162
+
163
+ type SupervisorProps$2 = {
164
+ id?: string;
165
+ /** Agent that plans, delegates, and reviews worker results. */
166
+ boss: AgentLike;
167
+ /** Map of worker type names to agents (e.g., { coder, tester, docs }). */
168
+ workers: Record<string, AgentLike>;
169
+ /** Output schema for the boss's plan. Must include `tasks: Array<{ id, workerType, instructions }>`. */
170
+ planOutput: OutputTarget$1;
171
+ /** Output schema for individual worker results. */
172
+ workerOutput: OutputTarget$1;
173
+ /** Output schema for the boss's review. Must include `allDone: boolean` and `retriable: string[]`. */
174
+ reviewOutput: OutputTarget$1;
175
+ /** Output schema for the final summary. */
176
+ finalOutput: OutputTarget$1;
177
+ /** Max delegate-review cycles (default 3). */
178
+ maxIterations?: number;
179
+ /** Max parallel workers (default 5). */
180
+ maxConcurrency?: number;
181
+ /** Whether each worker gets its own git worktree (default false). */
182
+ useWorktrees?: boolean;
183
+ skipIf?: boolean;
184
+ /** Goal/prompt for the boss agent. */
185
+ children: string | React.ReactNode;
186
+ };
187
+
188
+ type SuperSmithersProps$2 = {
189
+ /** Optional ID prefix for all generated task IDs. */
190
+ id?: string;
191
+ /** Markdown string or MDX component describing the intervention strategy. */
192
+ strategy: string | React.ReactElement;
193
+ /** Agent that reads code and decides modifications. */
194
+ agent: AgentLike;
195
+ /** Glob patterns of files the agent can modify. */
196
+ targetFiles?: string[];
197
+ /** Output schema for the intervention report (Zod object). */
198
+ reportOutput?: OutputTarget$1;
199
+ /** If true, reports changes without applying them. */
200
+ dryRun?: boolean;
201
+ /** Standard skip predicate. */
202
+ skipIf?: boolean;
203
+ };
204
+
205
+ type SubflowProps$2 = {
206
+ id: string;
207
+ /** The child workflow definition. */
208
+ workflow: WorkflowDefinition<unknown>;
209
+ /** Input to pass to the child workflow. */
210
+ input?: unknown;
211
+ /** `"childRun"` gets its own DB row/run; `"inline"` embeds in parent. */
212
+ mode?: "childRun" | "inline";
213
+ /** Where to store the subflow's result. */
214
+ output: OutputTarget$1;
215
+ skipIf?: boolean;
216
+ timeoutMs?: number;
217
+ heartbeatTimeoutMs?: number;
218
+ heartbeatTimeout?: number;
219
+ retries?: number;
220
+ retryPolicy?: RetryPolicy$1;
221
+ continueOnFail?: boolean;
222
+ cache?: CachePolicy$1;
223
+ /** Explicit dependency on other task node IDs. */
224
+ dependsOn?: string[];
225
+ /** Named dependencies on other tasks. Keys become context keys, values are task node IDs. */
226
+ needs?: Record<string, string>;
227
+ label?: string;
228
+ meta?: Record<string, unknown>;
229
+ key?: string;
230
+ children?: React.ReactNode;
231
+ };
232
+
233
+ type SourceDef$1 = {
234
+ agent: AgentLike;
235
+ /** Prompt for this source. A string or ReactNode. */
236
+ prompt?: string;
237
+ /** Output schema for this specific source. Overrides `gatherOutput`. */
238
+ output?: OutputTarget$1;
239
+ children?: React.ReactNode;
240
+ };
241
+
242
+ type SignalProps$2<Schema extends z.ZodObject<z.ZodRawShape> = z.ZodObject<z.ZodRawShape>> = {
243
+ id: string;
244
+ schema: Schema;
245
+ correlationId?: string;
246
+ timeoutMs?: number;
247
+ onTimeout?: "fail" | "skip" | "continue";
248
+ /** Do not block unrelated downstream flow while waiting for the signal. */
249
+ async?: boolean;
250
+ skipIf?: boolean;
251
+ dependsOn?: string[];
252
+ needs?: Record<string, string>;
253
+ label?: string;
254
+ meta?: Record<string, unknown>;
255
+ key?: string;
256
+ children?: (data: z.infer<Schema>) => React.ReactNode;
257
+ smithersContext?: React.Context<SmithersCtx$1<unknown> | null>;
258
+ };
259
+
260
+ type SequenceProps$2 = {
261
+ skipIf?: boolean;
262
+ children?: React.ReactNode;
263
+ };
264
+
265
+ type ScanFixVerifyProps$2 = {
266
+ /** ID prefix for generated task/component ids. */
267
+ id?: string;
268
+ /** Agent that scans for problems. */
269
+ scanner: AgentLike;
270
+ /** Agent (or agents) that fixes problems. When an array is provided, agents are cycled across issues. */
271
+ fixer: AgentLike | AgentLike[];
272
+ /** Agent that verifies the fixes were applied correctly. */
273
+ verifier: AgentLike;
274
+ /** Output schema for scan results. Should include `issues: Array`. */
275
+ scanOutput: OutputTarget$1;
276
+ /** Output schema for each individual fix. */
277
+ fixOutput: OutputTarget$1;
278
+ /** Output schema for verification results. */
279
+ verifyOutput: OutputTarget$1;
280
+ /** Output schema for the final summary report. */
281
+ reportOutput: OutputTarget$1;
282
+ /** Maximum number of parallel fix tasks. */
283
+ maxConcurrency?: number;
284
+ /** Maximum scan-fix-verify cycles before stopping. Default 3. */
285
+ maxRetries?: number;
286
+ /** Skip the entire component. */
287
+ skipIf?: boolean;
288
+ /** Prompt/context describing what to scan for. */
289
+ children?: React.ReactNode;
290
+ };
291
+
292
+ type SandboxWorkspaceSpec$1 = {
293
+ name: string;
294
+ snapshotId?: string;
295
+ idleTimeoutSecs?: number;
296
+ persistence?: "ephemeral" | "sticky";
297
+ };
298
+
299
+ type SandboxVolumeMount$1 = {
300
+ host: string;
301
+ container: string;
302
+ readonly?: boolean;
303
+ };
304
+
305
+ type SandboxRuntime$1 = "bubblewrap" | "docker" | "codeplane";
306
+
307
+ type SandboxProps$2 = {
308
+ id: string;
309
+ /** Child workflow definition. If omitted, createSmithers-bound Sandbox wrappers may provide one. */
310
+ workflow?: WorkflowDefinition<unknown>;
311
+ /** Input passed to the child workflow. */
312
+ input?: unknown;
313
+ output: OutputTarget$1;
314
+ runtime?: SandboxRuntime$1;
315
+ allowNetwork?: boolean;
316
+ reviewDiffs?: boolean;
317
+ autoAcceptDiffs?: boolean;
318
+ image?: string;
319
+ env?: Record<string, string>;
320
+ ports?: Array<{
321
+ host: number;
322
+ container: number;
323
+ }>;
324
+ volumes?: SandboxVolumeMount$1[];
325
+ memoryLimit?: string;
326
+ cpuLimit?: string;
327
+ command?: string;
328
+ workspace?: SandboxWorkspaceSpec$1;
329
+ skipIf?: boolean;
330
+ timeoutMs?: number;
331
+ heartbeatTimeoutMs?: number;
332
+ heartbeatTimeout?: number;
333
+ retries?: number;
334
+ retryPolicy?: RetryPolicy$1;
335
+ continueOnFail?: boolean;
336
+ cache?: CachePolicy$1;
337
+ dependsOn?: string[];
338
+ needs?: Record<string, string>;
339
+ label?: string;
340
+ meta?: Record<string, unknown>;
341
+ key?: string;
342
+ children?: React.ReactNode;
343
+ };
344
+
345
+ type SagaStepProps$2 = {
346
+ id: string;
347
+ compensation: React.ReactElement;
348
+ children: React.ReactElement;
349
+ };
350
+
351
+ type SagaStepDef$1 = {
352
+ id: string;
353
+ action: React.ReactElement;
354
+ compensation: React.ReactElement;
355
+ label?: string;
356
+ };
357
+
358
+ type SagaProps$2 = {
359
+ id?: string;
360
+ steps?: SagaStepDef$1[];
361
+ onFailure?: "compensate" | "compensate-and-fail" | "fail";
362
+ skipIf?: boolean;
363
+ children?: React.ReactNode;
364
+ };
365
+
366
+ type RunbookStep$1 = {
367
+ /** Unique step identifier. */
368
+ id: string;
369
+ /** Agent for this step (falls back to `defaultAgent`). */
370
+ agent?: AgentLike;
371
+ /** Shell command or instruction for the step. */
372
+ command?: string;
373
+ /** Risk classification: safe auto-executes, risky/critical require approval. */
374
+ risk: "safe" | "risky" | "critical";
375
+ /** Human-readable label for the step. */
376
+ label?: string;
377
+ /** Per-step output schema override. */
378
+ output?: OutputTarget$1;
379
+ };
380
+
381
+ type ApprovalRequest$1 = {
382
+ title: string;
383
+ summary?: string;
384
+ metadata?: Record<string, unknown>;
385
+ };
386
+
387
+ type RunbookProps$2 = {
388
+ id?: string;
389
+ /** Ordered steps to execute. */
390
+ steps: RunbookStep$1[];
391
+ /** Default agent for steps that don't specify one. */
392
+ defaultAgent?: AgentLike;
393
+ /** Default output schema for step results. */
394
+ stepOutput: OutputTarget$1;
395
+ /** Template for approval requests on risky/critical steps. */
396
+ approvalRequest?: Partial<ApprovalRequest$1>;
397
+ /** Behavior when a risky/critical step is denied: "fail" (default) or "skip". */
398
+ onDeny?: "fail" | "skip";
399
+ skipIf?: boolean;
400
+ };
401
+
402
+ type ReviewLoopProps$2 = {
403
+ id?: string;
404
+ /** Agent that produces or fixes the work each iteration. */
405
+ producer: AgentLike;
406
+ /** Agent (or agents) that reviews the produced work. */
407
+ reviewer: AgentLike | AgentLike[];
408
+ /** Output schema for the produced work. */
409
+ produceOutput: OutputTarget$1;
410
+ /** Output schema for the review result. Must include an `approved: boolean` field. */
411
+ reviewOutput: OutputTarget$1;
412
+ /** Maximum number of review cycles before stopping. @default 5 */
413
+ maxIterations?: number;
414
+ /** Behavior when maxIterations is reached. @default "return-last" */
415
+ onMaxReached?: "return-last" | "fail";
416
+ /** Skip the entire review loop. */
417
+ skipIf?: boolean;
418
+ /** Initial prompt for the producer (string or ReactNode). */
419
+ children: string | React.ReactNode;
420
+ };
421
+
422
+ type LoopProps$2 = {
423
+ id?: string;
424
+ until?: boolean;
425
+ maxIterations?: number;
426
+ onMaxReached?: "fail" | "return-last";
427
+ continueAsNewEvery?: number;
428
+ skipIf?: boolean;
429
+ children?: React.ReactNode;
430
+ };
431
+
432
+ /** @deprecated Use `LoopProps` instead. */
433
+ type RalphProps$1 = LoopProps$2;
434
+
435
+ type PollerProps$2 = {
436
+ /** ID prefix for generated task/component ids. */
437
+ id?: string;
438
+ /** Agent or compute function that checks the condition. */
439
+ check: AgentLike | (() => unknown | Promise<unknown>);
440
+ /** Output schema for the check result. Must include `satisfied: boolean`. */
441
+ checkOutput: OutputTarget$1;
442
+ /** Maximum poll attempts. Default 30. */
443
+ maxAttempts?: number;
444
+ /** Backoff strategy between polls. Default "fixed". */
445
+ backoff?: "fixed" | "linear" | "exponential";
446
+ /** Base interval in milliseconds between polls. Default 5000. */
447
+ intervalMs?: number;
448
+ /** Behavior when maxAttempts is reached. Default "fail". */
449
+ onTimeout?: "fail" | "return-last";
450
+ /** Skip the entire component. */
451
+ skipIf?: boolean;
452
+ /** Prompt/condition description for the check agent. */
453
+ children?: React.ReactNode;
454
+ };
455
+
456
+ type ParallelProps$2 = {
457
+ id?: string;
458
+ maxConcurrency?: number;
459
+ skipIf?: boolean;
460
+ children?: React.ReactNode;
461
+ };
462
+
463
+ type PanelistConfig$1 = {
464
+ agent: AgentLike;
465
+ role?: string;
466
+ label?: string;
467
+ };
468
+
469
+ type PanelProps$2 = {
470
+ id?: string;
471
+ panelists: PanelistConfig$1[] | AgentLike[];
472
+ moderator: AgentLike;
473
+ panelistOutput: OutputTarget$1;
474
+ moderatorOutput: OutputTarget$1;
475
+ strategy?: "synthesize" | "vote" | "consensus";
476
+ minAgree?: number;
477
+ maxConcurrency?: number;
478
+ skipIf?: boolean;
479
+ children: string | React.ReactNode;
480
+ };
481
+
482
+ type OptimizerProps$2 = {
483
+ id?: string;
484
+ /** Agent that generates or improves candidates each iteration. */
485
+ generator: AgentLike;
486
+ /** Agent (or compute function) that scores candidates. */
487
+ evaluator: AgentLike | ((candidate: unknown) => unknown | Promise<unknown>);
488
+ /** Output schema for generated candidates. */
489
+ generateOutput: OutputTarget$1;
490
+ /** Output schema for evaluation results. Must include a `score: number` field. */
491
+ evaluateOutput: OutputTarget$1;
492
+ /** Score threshold to stop early. When omitted, runs all iterations. */
493
+ targetScore?: number;
494
+ /** Maximum optimization rounds. @default 10 */
495
+ maxIterations?: number;
496
+ /** Behavior when maxIterations is reached. @default "return-last" */
497
+ onMaxReached?: "return-last" | "fail";
498
+ /** Skip the entire optimization loop. */
499
+ skipIf?: boolean;
500
+ /** Initial generation prompt (string or ReactNode). */
501
+ children: string | React.ReactNode;
502
+ };
503
+
504
+ /**
505
+ * Queue tasks so that at most `maxConcurrency` run concurrently across the group.
506
+ * Defaults to 1, providing an easy merge queue primitive.
507
+ */
508
+ type MergeQueueProps$2 = {
509
+ id?: string;
510
+ maxConcurrency?: number;
511
+ skipIf?: boolean;
512
+ children?: React.ReactNode;
513
+ };
514
+
515
+ type ColumnTaskProps = Omit<Partial<TaskProps$2<unknown>>, "agent" | "children" | "id" | "key" | "output" | "smithersContext">;
516
+ type ColumnDef$1 = {
517
+ name: string;
518
+ agent: AgentLike;
519
+ /** Output schema for tasks in this column. */
520
+ output: OutputTarget$1;
521
+ /** Prompt template. Receives `{ item, column }` and returns a string. */
522
+ prompt?: (ctx: {
523
+ item: unknown;
524
+ column: string;
525
+ }) => string;
526
+ /** Optional Task props applied to each generated item task in this column. */
527
+ task?: ColumnTaskProps;
528
+ };
529
+
530
+ type KanbanProps$2 = {
531
+ id?: string;
532
+ /** Column definitions in order. Items flow left to right. */
533
+ columns: ColumnDef$1[];
534
+ /** Function that returns ticket items to process. Each item must have an `id` field. */
535
+ useTickets: () => Array<{
536
+ id: string;
537
+ [key: string]: unknown;
538
+ }>;
539
+ /** Record mapping column names to agents. Overrides column-level agents. */
540
+ agents?: Record<string, AgentLike>;
541
+ /** Max items processed in parallel per column. */
542
+ maxConcurrency?: number;
543
+ /** Callback output schema when an item reaches the final column. */
544
+ onComplete?: OutputTarget$1;
545
+ /** Whether the board loop is done. When true, the loop exits. */
546
+ until?: boolean;
547
+ /** Max iterations through the column pipeline. */
548
+ maxIterations?: number;
549
+ skipIf?: boolean;
550
+ children?: React.ReactNode | Record<string, unknown>;
551
+ };
552
+
553
+ type HumanTaskProps$2 = {
554
+ id: string;
555
+ /** Where to store the human's response. */
556
+ output: OutputTarget$1;
557
+ /** Zod schema the human must conform to. Used for validation. */
558
+ outputSchema?: z.ZodObject<z.ZodRawShape>;
559
+ /** Instructions for the human (string or ReactNode). */
560
+ prompt: string | React.ReactNode;
561
+ /** Max validation retries before failure. */
562
+ maxAttempts?: number;
563
+ /** Do not block unrelated downstream flow while waiting for human input. */
564
+ async?: boolean;
565
+ skipIf?: boolean;
566
+ timeoutMs?: number;
567
+ continueOnFail?: boolean;
568
+ /** Explicit dependency on other task node IDs. */
569
+ dependsOn?: string[];
570
+ /** Named dependencies on other tasks. Keys become context keys, values are task node IDs. */
571
+ needs?: Record<string, string>;
572
+ label?: string;
573
+ meta?: Record<string, unknown>;
574
+ key?: string;
575
+ };
576
+
577
+ type GatherAndSynthesizeProps$2 = {
578
+ id?: string;
579
+ /** Record mapping source names to source definitions. */
580
+ sources: Record<string, SourceDef$1>;
581
+ /** Agent that synthesizes gathered data. */
582
+ synthesizer: AgentLike;
583
+ /** Default output schema for each source gather task. */
584
+ gatherOutput: OutputTarget$1;
585
+ /** Output schema for the synthesis task. */
586
+ synthesisOutput: OutputTarget$1;
587
+ /** Gathered results keyed by source name. Typically from ctx.outputMaybe(). */
588
+ gatheredResults?: Record<string, unknown> | null;
589
+ /** Max parallel gatherers. */
590
+ maxConcurrency?: number;
591
+ /** Prompt for the synthesis task. If omitted, a default prompt is generated. */
592
+ synthesisPrompt?: string;
593
+ skipIf?: boolean;
594
+ children?: React.ReactNode;
595
+ };
596
+
597
+ type EscalationLevel$1 = {
598
+ /** Agent to handle this escalation level. */
599
+ agent: AgentLike;
600
+ /** Output target for this level's result. */
601
+ output: OutputTarget$1;
602
+ /** Display label for this level. */
603
+ label?: string;
604
+ /** Predicate evaluated on the level's result. Return `true` to escalate. */
605
+ escalateIf?: (result: unknown) => boolean;
606
+ };
607
+
608
+ type EscalationChainProps$2 = {
609
+ /** ID prefix for generated nodes. */
610
+ id?: string;
611
+ /** Ordered escalation levels. Each level runs only if the previous escalated. */
612
+ levels: EscalationLevel$1[];
613
+ /** If `true`, the final escalation produces a human approval node. */
614
+ humanFallback?: boolean;
615
+ /** Approval request config used when `humanFallback` is `true`. */
616
+ humanRequest?: ApprovalRequest$1;
617
+ /** Output target for escalation tracking at each level. */
618
+ escalationOutput: OutputTarget$1;
619
+ skipIf?: boolean;
620
+ /** Prompt / input passed to each agent level. */
621
+ children?: React.ReactNode;
622
+ };
623
+
624
+ type DriftDetectorProps$2 = {
625
+ /** ID prefix for generated task/component ids. */
626
+ id?: string;
627
+ /** Agent that captures the current state snapshot. */
628
+ captureAgent: AgentLike;
629
+ /** Agent that compares current state against the baseline. */
630
+ compareAgent: AgentLike;
631
+ /** Output schema for the captured state. */
632
+ captureOutput: OutputTarget$1;
633
+ /** Output schema for the comparison result. Should include `drifted: boolean` and `significance: string`. */
634
+ compareOutput: OutputTarget$1;
635
+ /** Static baseline data, or a function/agent that fetches it. */
636
+ baseline: unknown;
637
+ /** Condition function that determines whether to fire the alert. If omitted, uses the `drifted` field from comparison output. */
638
+ alertIf?: (comparison: unknown) => boolean;
639
+ /** Element to render when drift is detected (e.g. a Task that sends a notification). */
640
+ alert?: React.ReactElement;
641
+ /** If set, wraps the detector in a Loop for periodic polling. */
642
+ poll?: {
643
+ intervalMs: number;
644
+ maxPolls?: number;
645
+ };
646
+ /** Skip the entire component. */
647
+ skipIf?: boolean;
648
+ };
649
+
650
+ type DecisionRule$1 = {
651
+ /** Condition evaluated at render time. */
652
+ when: boolean;
653
+ /** Element to render when this rule matches. */
654
+ then: React.ReactElement;
655
+ /** Optional display label for the rule. */
656
+ label?: string;
657
+ };
658
+
659
+ type DecisionTableProps$2 = {
660
+ /** ID prefix for generated wrapper nodes. */
661
+ id?: string;
662
+ /** Ordered list of rules. Each rule has a `when` condition and a `then` element. */
663
+ rules: DecisionRule$1[];
664
+ /** Fallback element rendered when no rules match. */
665
+ default?: React.ReactElement;
666
+ /** `"first-match"` (default): first matching rule wins. `"all-match"`: all matching rules run in parallel. */
667
+ strategy?: "first-match" | "all-match";
668
+ skipIf?: boolean;
669
+ };
670
+
671
+ type DebateProps$2 = {
672
+ id?: string;
673
+ proposer: AgentLike;
674
+ opponent: AgentLike;
675
+ judge: AgentLike;
676
+ rounds?: number;
677
+ argumentOutput: OutputTarget$1;
678
+ verdictOutput: OutputTarget$1;
679
+ topic: string | React.ReactNode;
680
+ skipIf?: boolean;
681
+ };
682
+
683
+ type ContinueAsNewProps$2 = {
684
+ /**
685
+ * Optional JSON-serializable state carried into the new run.
686
+ */
687
+ state?: unknown;
688
+ };
689
+
690
+ type ContentPipelineStage$1 = {
691
+ /** Unique identifier for this stage. */
692
+ id: string;
693
+ /** Agent that performs this stage's work. */
694
+ agent: AgentLike;
695
+ /** Output schema for this stage. */
696
+ output: OutputTarget$1;
697
+ /** Human-readable label for the stage (used as task label). */
698
+ label?: string;
699
+ };
700
+
701
+ type ContentPipelineProps$2 = {
702
+ id?: string;
703
+ /** Pipeline stages executed in order. Each stage receives the previous stage's output. */
704
+ stages: ContentPipelineStage$1[];
705
+ /** Skip the entire pipeline. */
706
+ skipIf?: boolean;
707
+ /** Initial prompt/content for the first stage (string or ReactNode). */
708
+ children: string | React.ReactNode;
709
+ };
710
+
711
+ type CategoryConfig$1 = {
712
+ agent: AgentLike;
713
+ /** Output schema for this category's route handler. Overrides `routeOutput`. */
714
+ output?: OutputTarget$1;
715
+ /** Optional prompt for the route handler. Receives the classified item. */
716
+ prompt?: (item: unknown) => string;
717
+ };
718
+
719
+ type ClassifyAndRouteProps$2 = {
720
+ id?: string;
721
+ /** Items to classify. A single item or an array of items. */
722
+ items: unknown | unknown[];
723
+ /** Record mapping category names to agents or config objects. */
724
+ categories: Record<string, AgentLike | CategoryConfig$1>;
725
+ /** Agent that classifies items into categories. */
726
+ classifierAgent: AgentLike;
727
+ /** Output schema for the classification task. */
728
+ classifierOutput: OutputTarget$1;
729
+ /** Default output schema for routed work. Can be overridden per-category. */
730
+ routeOutput: OutputTarget$1;
731
+ /** Classification result used to drive routing. Typically from ctx.outputMaybe(). */
732
+ classificationResult?: {
733
+ classifications: Array<{
734
+ itemId?: string;
735
+ category: string;
736
+ [key: string]: unknown;
737
+ }>;
738
+ } | null;
739
+ /** Max parallel routes. */
740
+ maxConcurrency?: number;
741
+ skipIf?: boolean;
742
+ children?: React.ReactNode;
743
+ };
744
+
745
+ type CheckConfig$1 = {
746
+ id: string;
747
+ agent?: AgentLike;
748
+ command?: string;
749
+ label?: string;
750
+ };
751
+
752
+ type CheckSuiteProps$2 = {
753
+ id?: string;
754
+ checks: CheckConfig$1[] | Record<string, Omit<CheckConfig$1, "id">>;
755
+ verdictOutput: OutputTarget$1;
756
+ strategy?: "all-pass" | "majority" | "any-pass";
757
+ maxConcurrency?: number;
758
+ continueOnFail?: boolean;
759
+ skipIf?: boolean;
760
+ };
761
+
762
+ type BranchProps$2 = {
763
+ if: boolean;
764
+ then: React.ReactElement;
765
+ else?: React.ReactElement | null;
766
+ skipIf?: boolean;
767
+ };
768
+
769
+ /**
770
+ * Token budget configuration for Aspects.
771
+ */
772
+ type TokenBudgetConfig = {
773
+ /** Maximum total tokens across all tasks within the Aspects scope. */
774
+ max: number;
775
+ /** Optional per-task token limit. */
776
+ perTask?: number;
777
+ /** Behavior when the budget is exceeded. Default: "fail". */
778
+ onExceeded?: "fail" | "warn" | "skip-remaining";
779
+ };
780
+
781
+ /**
782
+ * Latency SLO configuration for Aspects.
783
+ */
784
+ type LatencySloConfig = {
785
+ /** Maximum total latency in milliseconds across all tasks. */
786
+ maxMs: number;
787
+ /** Optional per-task latency limit in milliseconds. */
788
+ perTask?: number;
789
+ /** Behavior when the SLO is exceeded. Default: "fail". */
790
+ onExceeded?: "fail" | "warn";
791
+ };
792
+
793
+ /**
794
+ * Cost budget configuration for Aspects.
795
+ */
796
+ type CostBudgetConfig = {
797
+ /** Maximum total cost in USD across all tasks within the Aspects scope. */
798
+ maxUsd: number;
799
+ /** Behavior when the budget is exceeded. Default: "fail". */
800
+ onExceeded?: "fail" | "warn" | "skip-remaining";
801
+ };
802
+
803
+ /**
804
+ * Tracking configuration — which metrics to track.
805
+ */
806
+ type TrackingConfig = {
807
+ /** Track token usage. Default: true. */
808
+ tokens?: boolean;
809
+ /** Track latency. Default: true. */
810
+ latency?: boolean;
811
+ /** Track cost. Default: true. */
812
+ cost?: boolean;
813
+ };
814
+
815
+ type AspectsProps$2 = {
816
+ /** Token budget — max total tokens, optional per-task limit, and exceeded behavior. */
817
+ tokenBudget?: TokenBudgetConfig;
818
+ /** Latency SLO — max total latency, optional per-task limit, and exceeded behavior. */
819
+ latencySlo?: LatencySloConfig;
820
+ /** Cost budget — max total USD, and exceeded behavior. */
821
+ costBudget?: CostBudgetConfig;
822
+ /** Which metrics to track. Defaults to all enabled. */
823
+ tracking?: TrackingConfig;
824
+ /** Workflow content these aspects apply to. */
825
+ children?: React.ReactNode;
826
+ };
827
+
828
+ type ApprovalMode$1 = "approve" | "select" | "rank";
829
+
830
+ type ApprovalOption$1 = {
831
+ key: string;
832
+ label: string;
833
+ summary?: string;
834
+ metadata?: Record<string, unknown>;
835
+ };
836
+
837
+ type ApprovalAutoApprove$1 = {
838
+ after?: number;
839
+ condition?: ((ctx: SmithersCtx$1<unknown> | null) => boolean) | (() => boolean);
840
+ audit?: boolean;
841
+ revertOn?: ((ctx: SmithersCtx$1<unknown> | null) => boolean) | (() => boolean);
842
+ };
843
+
844
+ type ApprovalDecision$1 = z.infer<typeof approvalDecisionSchema>;
845
+
846
+ type ApprovalProps$2<Row = ApprovalDecision$1, Output extends OutputTarget$1 = OutputTarget$1> = {
847
+ id: string;
848
+ mode?: ApprovalMode$1;
849
+ options?: ApprovalOption$1[];
850
+ /** Where to persist the approval decision. Pass a Zod schema from `outputs` (recommended), a Drizzle table, or a string key. */
851
+ output: Output;
852
+ outputSchema?: z.ZodObject<z.ZodRawShape>;
853
+ request: ApprovalRequest$1;
854
+ onDeny?: "fail" | "continue" | "skip";
855
+ allowedScopes?: string[];
856
+ allowedUsers?: string[];
857
+ autoApprove?: ApprovalAutoApprove$1;
858
+ /** Do not block unrelated downstream flow while this approval is pending. */
859
+ async?: boolean;
860
+ /** Explicit dependency on other task node IDs. */
861
+ dependsOn?: string[];
862
+ /** Named dependencies on other tasks. Keys become context keys, values are task node IDs. */
863
+ needs?: Record<string, string>;
864
+ skipIf?: boolean;
865
+ timeoutMs?: number;
866
+ heartbeatTimeoutMs?: number;
867
+ heartbeatTimeout?: number;
868
+ retries?: number;
869
+ retryPolicy?: _smithers_scheduler_RetryPolicy.RetryPolicy;
870
+ continueOnFail?: boolean;
871
+ cache?: _smithers_scheduler_CachePolicy.CachePolicy;
872
+ label?: string;
873
+ meta?: Record<string, unknown>;
874
+ key?: string;
875
+ children?: React.ReactNode;
876
+ smithersContext?: React.Context<SmithersCtx$1<unknown> | null>;
877
+ };
878
+
879
+ type ApprovalRanking$1 = z.infer<typeof approvalRankingSchema>;
880
+
881
+ /**
882
+ * @template Row
883
+ * @param {ApprovalProps<Row>} props
884
+ * @returns {React.ReactElement | null}
885
+ */
886
+ declare function Approval<Row>(props: ApprovalProps$1<Row>): React.ReactElement | null;
887
+ /** @typedef {import("./ApprovalAutoApprove.ts").ApprovalAutoApprove} ApprovalAutoApprove */
888
+ /** @typedef {import("./ApprovalMode.ts").ApprovalMode} ApprovalMode */
889
+ /** @typedef {import("./ApprovalOption.ts").ApprovalOption} ApprovalOption */
890
+ /**
891
+ * @template Row, Output
892
+ * @typedef {import("./ApprovalProps.ts").ApprovalProps<Row, Output>} ApprovalProps
893
+ */
894
+ declare const approvalDecisionSchema: z.ZodObject<{
895
+ approved: z.ZodBoolean;
896
+ note: z.ZodNullable<z.ZodString>;
897
+ decidedBy: z.ZodNullable<z.ZodString>;
898
+ decidedAt: z.ZodNullable<z.ZodString>;
899
+ }, z.core.$strip>;
900
+ declare const approvalSelectionSchema: z.ZodObject<{
901
+ selected: z.ZodString;
902
+ notes: z.ZodNullable<z.ZodString>;
903
+ }, z.core.$strip>;
904
+ declare const approvalRankingSchema: z.ZodObject<{
905
+ ranked: z.ZodArray<z.ZodString>;
906
+ notes: z.ZodNullable<z.ZodString>;
907
+ }, z.core.$strip>;
908
+ type ApprovalProps$1<Row, Output> = ApprovalProps$2<Row, Output>;
909
+
910
+ type ApprovalSelection$1 = z.infer<typeof approvalSelectionSchema>;
911
+
912
+ type ApprovalGateProps$2 = {
913
+ id: string;
914
+ /** Where to persist the approval decision. */
915
+ output: OutputTarget$1;
916
+ /** Human-facing approval request. */
917
+ request: ApprovalRequest$1;
918
+ /** When `true`, approval is required. When `false`, auto-approves. */
919
+ when: boolean;
920
+ /** Behavior after denial. */
921
+ onDeny?: "fail" | "continue" | "skip";
922
+ skipIf?: boolean;
923
+ timeoutMs?: number;
924
+ heartbeatTimeoutMs?: number;
925
+ heartbeatTimeout?: number;
926
+ retries?: number;
927
+ retryPolicy?: RetryPolicy$1;
928
+ continueOnFail?: boolean;
929
+ };
930
+
931
+ /** @typedef {import("./WorkflowProps.ts").WorkflowProps} WorkflowProps */
932
+ /**
933
+ * @param {WorkflowProps} props
934
+ * @returns {React.DOMElement<WorkflowProps, Element>}
935
+ */
936
+ declare function Workflow(props: WorkflowProps$1): React.DOMElement<WorkflowProps$1, Element>;
937
+ type WorkflowProps$1 = WorkflowProps$2;
938
+
939
+ /**
940
+ * @template Row, Output, D
941
+ * @param {TaskProps<Row, Output, D>} props
942
+ * @returns {React.ReactElement | null}
943
+ */
944
+ declare function Task<Row, Output, D>(props: TaskProps$1<Row, Output, D>): React.ReactElement | null;
945
+ type TaskProps$1<Row, Output, D> = TaskProps$2<Row, Output, D>;
946
+
947
+ /** @typedef {import("./SequenceProps.ts").SequenceProps} SequenceProps */
948
+ /**
949
+ * @param {SequenceProps} props
950
+ */
951
+ declare function Sequence(props: SequenceProps$1): React.DOMElement<SequenceProps$2, Element> | null;
952
+ type SequenceProps$1 = SequenceProps$2;
953
+
954
+ /** @typedef {import("./ParallelProps.ts").ParallelProps} ParallelProps */
955
+ /**
956
+ * @param {ParallelProps} props
957
+ */
958
+ declare function Parallel(props: ParallelProps$1): React.ReactElement<{
959
+ maxConcurrency: number | undefined;
960
+ id: string | undefined;
961
+ }, string | React.JSXElementConstructor<any>> | null;
962
+ type ParallelProps$1 = ParallelProps$2;
963
+
964
+ /** @typedef {import("./MergeQueueProps.ts").MergeQueueProps} MergeQueueProps */
965
+ /**
966
+ * @param {MergeQueueProps} props
967
+ */
968
+ declare function MergeQueue(props: MergeQueueProps$1): React.ReactElement<{
969
+ maxConcurrency: any;
970
+ id: string | undefined;
971
+ }, string | React.JSXElementConstructor<any>> | null;
972
+ type MergeQueueProps$1 = MergeQueueProps$2;
973
+
974
+ /** @typedef {import("./BranchProps.ts").BranchProps} BranchProps */
975
+ /**
976
+ * @param {BranchProps} props
977
+ */
978
+ declare function Branch(props: BranchProps$1): React.ReactElement<BranchProps$2, string | React.JSXElementConstructor<any>> | null;
979
+ type BranchProps$1 = BranchProps$2;
980
+
981
+ /** @typedef {import("./WorktreeProps.ts").WorktreeProps} WorktreeProps */
982
+ /**
983
+ * @param {WorktreeProps} props
984
+ */
985
+ declare function Worktree(props: WorktreeProps$1): React.ReactElement<{
986
+ id: string | undefined;
987
+ path: string;
988
+ branch: string | undefined;
989
+ baseBranch: string | undefined;
990
+ }, string | React.JSXElementConstructor<any>> | null;
991
+ type WorktreeProps$1 = WorktreeProps$2;
992
+
993
+ /**
994
+ * <Kanban> — Process items through columns with pluggable ticket source.
995
+ *
996
+ * Composes Loop, Sequence, Parallel, and Task to create a board where items
997
+ * flow through columns. Each column processes items via its assigned agent.
998
+ * Items in the same column can be processed in parallel.
999
+ * @param {KanbanProps} props
1000
+ */
1001
+ declare function Kanban(props: KanbanProps$1): React.FunctionComponentElement<SequenceProps$2> | React.FunctionComponentElement<LoopProps$2> | null;
1002
+ type KanbanProps$1 = KanbanProps$2;
1003
+
1004
+ /**
1005
+ * <ClassifyAndRoute> — Classify items then route to category-specific agents.
1006
+ *
1007
+ * Composes Sequence, Task, and Parallel. First a classifier Task assigns items
1008
+ * to categories, then a Parallel block routes each classified item to the
1009
+ * appropriate category agent.
1010
+ * @param {ClassifyAndRouteProps} props
1011
+ */
1012
+ declare function ClassifyAndRoute(props: ClassifyAndRouteProps$1): React.FunctionComponentElement<SequenceProps$2> | null;
1013
+ type ClassifyAndRouteProps$1 = ClassifyAndRouteProps$2;
1014
+
1015
+ /**
1016
+ * <GatherAndSynthesize> — Parallel data collection from different sources,
1017
+ * then synthesis into a unified result.
1018
+ *
1019
+ * Composes Sequence, Parallel, and Task. First a Parallel block gathers data
1020
+ * from each source agent, then a synthesis Task receives all gathered data
1021
+ * and produces a combined output.
1022
+ * @param {GatherAndSynthesizeProps} props
1023
+ */
1024
+ declare function GatherAndSynthesize(props: GatherAndSynthesizeProps$1): React.FunctionComponentElement<SequenceProps$2> | null;
1025
+ type GatherAndSynthesizeProps$1 = GatherAndSynthesizeProps$2;
1026
+
1027
+ /**
1028
+ * <Panel> — Parallel specialists review the same input, then a moderator synthesizes.
1029
+ *
1030
+ * Composes: Sequence > Parallel[Task per panelist] > Task(moderator)
1031
+ * @param {PanelProps} props
1032
+ */
1033
+ declare function Panel(props: PanelProps$1): React.FunctionComponentElement<SequenceProps$2> | null;
1034
+ type PanelProps$1 = PanelProps$2;
1035
+
1036
+ /**
1037
+ * <CheckSuite> — Parallel checks with auto-aggregated pass/fail verdict.
1038
+ *
1039
+ * Composes: Sequence > Parallel[Task per check] > Task(verdict aggregator)
1040
+ * @param {CheckSuiteProps} props
1041
+ */
1042
+ declare function CheckSuite(props: CheckSuiteProps$1): React.FunctionComponentElement<SequenceProps$2> | null;
1043
+ type CheckSuiteProps$1 = CheckSuiteProps$2;
1044
+
1045
+ /**
1046
+ * <Debate> — Adversarial rounds with rebuttals, followed by a judge verdict.
1047
+ *
1048
+ * Composes: Sequence > Loop[Parallel(proposer, opponent)] > Task(judge)
1049
+ * @param {DebateProps} props
1050
+ */
1051
+ declare function Debate(props: DebateProps$1): React.FunctionComponentElement<SequenceProps$2> | null;
1052
+ type DebateProps$1 = DebateProps$2;
1053
+
1054
+ /**
1055
+ * Produce -> review -> fix -> repeat until approved.
1056
+ *
1057
+ * Composes Loop, Sequence, and Task to create a standard
1058
+ * review-loop pattern. The producer receives the reviewer's
1059
+ * feedback on subsequent iterations.
1060
+ * @param {ReviewLoopProps} props
1061
+ */
1062
+ declare function ReviewLoop(props: ReviewLoopProps$1): React.FunctionComponentElement<LoopProps$2> | null;
1063
+ type ReviewLoopProps$1 = ReviewLoopProps$2;
1064
+
1065
+ /**
1066
+ * Generate -> evaluate -> improve loop with score convergence.
1067
+ *
1068
+ * Composes Loop, Sequence, and Task to create an iterative
1069
+ * optimization pattern. Each iteration receives the previous
1070
+ * score and feedback to guide improvement.
1071
+ * @param {OptimizerProps} props
1072
+ */
1073
+ declare function Optimizer(props: OptimizerProps$1): React.FunctionComponentElement<LoopProps$2> | null;
1074
+ type OptimizerProps$1 = OptimizerProps$2;
1075
+
1076
+ /**
1077
+ * Progressive content refinement: outline -> draft -> edit -> publish.
1078
+ *
1079
+ * Composes Sequence and Task to create a typed waterfall where each
1080
+ * stage is explicitly defined. Each Task uses `needs` to depend on
1081
+ * the previous stage, passing output forward through the pipeline.
1082
+ * @param {ContentPipelineProps} props
1083
+ */
1084
+ declare function ContentPipeline(props: ContentPipelineProps$1): React.FunctionComponentElement<SequenceProps$2> | null;
1085
+ type ContentPipelineProps$1 = ContentPipelineProps$2;
1086
+
1087
+ /**
1088
+ * Conditional approval gate. Requires human approval only when `when` is true;
1089
+ * otherwise auto-approves with a static `{ approved: true }` decision.
1090
+ *
1091
+ * Composes Branch + Approval + Task internally.
1092
+ * @param {ApprovalGateProps} props
1093
+ */
1094
+ declare function ApprovalGate(props: ApprovalGateProps$1): React.FunctionComponentElement<BranchProps$2> | null;
1095
+ type ApprovalGateProps$1 = ApprovalGateProps$2;
1096
+
1097
+ /**
1098
+ * Escalation chain: tries agents in order, escalating on failure or when
1099
+ * `escalateIf` returns `true`. Optionally ends with a human approval fallback.
1100
+ *
1101
+ * Composes Sequence + Task (with `continueOnFail`) + Branch + Approval.
1102
+ * @param {EscalationChainProps} props
1103
+ */
1104
+ declare function EscalationChain(props: EscalationChainProps$1): React.FunctionComponentElement<SequenceProps$2> | null;
1105
+ type EscalationChainProps$1 = EscalationChainProps$2;
1106
+
1107
+ /**
1108
+ * Structured deterministic routing. Replaces deeply nested Branches with a
1109
+ * flat, declarative rule table.
1110
+ *
1111
+ * - `"first-match"` builds nested Branch elements so the first matching rule wins.
1112
+ * - `"all-match"` gathers all matching rules' `then` elements into a Parallel.
1113
+ *
1114
+ * Composes Branch and Parallel internally.
1115
+ * @param {DecisionTableProps} props
1116
+ */
1117
+ declare function DecisionTable(props: DecisionTableProps$1): React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | React.FunctionComponentElement<ParallelProps$2> | null;
1118
+ type DecisionTableProps$1 = DecisionTableProps$2;
1119
+
1120
+ /** @typedef {import("./DriftDetectorProps.ts").DriftDetectorProps} DriftDetectorProps */
1121
+ /**
1122
+ * @param {DriftDetectorProps} props
1123
+ */
1124
+ declare function DriftDetector(props: DriftDetectorProps$1): React.FunctionComponentElement<SequenceProps$2> | React.FunctionComponentElement<LoopProps$2> | null;
1125
+ type DriftDetectorProps$1 = DriftDetectorProps$2;
1126
+
1127
+ /** @typedef {import("./ScanFixVerifyProps.ts").ScanFixVerifyProps} ScanFixVerifyProps */
1128
+ /**
1129
+ * @param {ScanFixVerifyProps} props
1130
+ */
1131
+ declare function ScanFixVerify(props: ScanFixVerifyProps$1): React.FunctionComponentElement<SequenceProps$2> | null;
1132
+ type ScanFixVerifyProps$1 = ScanFixVerifyProps$2;
1133
+
1134
+ /**
1135
+ * @param {PollerProps} props
1136
+ */
1137
+ declare function Poller(props: PollerProps$1): React.FunctionComponentElement<LoopProps$2> | null;
1138
+ type PollerProps$1 = PollerProps$2;
1139
+
1140
+ /**
1141
+ * <Supervisor> — Boss plans, delegates to parallel workers, reviews, re-delegates failures.
1142
+ *
1143
+ * Composes: Sequence → [plan Task, Loop(until allDone) [Parallel worker Tasks, review Task], final Task]
1144
+ * @param {SupervisorProps} props
1145
+ */
1146
+ declare function Supervisor(props: SupervisorProps$1): React.FunctionComponentElement<SequenceProps$2> | null;
1147
+ type SupervisorProps$1 = SupervisorProps$2;
1148
+
1149
+ /**
1150
+ * <Runbook> — Sequential steps with risk classification.
1151
+ *
1152
+ * Safe steps auto-execute. Risky and critical steps require human approval first.
1153
+ * Composes: Sequence of [Approval? → Task] per step, chained via `needs`.
1154
+ * @param {RunbookProps} props
1155
+ */
1156
+ declare function Runbook(props: RunbookProps$1): React.FunctionComponentElement<SequenceProps$2> | null;
1157
+ type RunbookProps$1 = RunbookProps$2;
1158
+
1159
+ /** @typedef {import("./SubflowProps.ts").SubflowProps} SubflowProps */
1160
+ /**
1161
+ * @param {SubflowProps} props
1162
+ */
1163
+ declare function Subflow(props: SubflowProps$1): React.ReactElement<{
1164
+ id: string;
1165
+ key: string | undefined;
1166
+ workflow: _smithers_driver.WorkflowDefinition<unknown>;
1167
+ input: unknown;
1168
+ mode: "childRun" | "inline";
1169
+ output: OutputTarget$1;
1170
+ timeoutMs: number | undefined;
1171
+ heartbeatTimeoutMs: number | undefined;
1172
+ heartbeatTimeout: number | undefined;
1173
+ retries: number | undefined;
1174
+ retryPolicy: {
1175
+ backoff?: "fixed" | "linear" | "exponential";
1176
+ initialDelayMs?: number;
1177
+ } | undefined;
1178
+ continueOnFail: boolean | undefined;
1179
+ cache: _smithers_scheduler.CachePolicy | undefined;
1180
+ dependsOn: string[] | undefined;
1181
+ needs: Record<string, string> | undefined;
1182
+ label: string;
1183
+ meta: Record<string, unknown> | undefined;
1184
+ __smithersSubflowWorkflow: _smithers_driver.WorkflowDefinition<unknown>;
1185
+ __smithersSubflowInput: unknown;
1186
+ __smithersSubflowMode: "childRun" | "inline";
1187
+ }, string | React.JSXElementConstructor<any>> | null;
1188
+ type SubflowProps$1 = SubflowProps$2;
1189
+
1190
+ /** @typedef {import("./SandboxProps.ts").SandboxProps} SandboxProps */
1191
+ /**
1192
+ * @param {SandboxProps} props
1193
+ */
1194
+ declare function Sandbox(props: SandboxProps$1): React.ReactElement<{
1195
+ id: string;
1196
+ key: string | undefined;
1197
+ output: OutputTarget$1;
1198
+ runtime: SandboxRuntime$1;
1199
+ allowNetwork: boolean | undefined;
1200
+ reviewDiffs: boolean | undefined;
1201
+ autoAcceptDiffs: boolean | undefined;
1202
+ image: string | undefined;
1203
+ env: Record<string, string> | undefined;
1204
+ ports: {
1205
+ host: number;
1206
+ container: number;
1207
+ }[] | undefined;
1208
+ volumes: SandboxVolumeMount$1[] | undefined;
1209
+ memoryLimit: string | undefined;
1210
+ cpuLimit: string | undefined;
1211
+ command: string | undefined;
1212
+ workspace: SandboxWorkspaceSpec$1 | undefined;
1213
+ timeoutMs: number | undefined;
1214
+ heartbeatTimeoutMs: number | undefined;
1215
+ heartbeatTimeout: number | undefined;
1216
+ retries: number | undefined;
1217
+ retryPolicy: {
1218
+ backoff?: "fixed" | "linear" | "exponential";
1219
+ initialDelayMs?: number;
1220
+ } | undefined;
1221
+ continueOnFail: boolean | undefined;
1222
+ cache: _smithers_scheduler.CachePolicy | undefined;
1223
+ dependsOn: string[] | undefined;
1224
+ needs: Record<string, string> | undefined;
1225
+ label: string;
1226
+ meta: Record<string, unknown> | undefined;
1227
+ __smithersSandboxWorkflow: _smithers_driver.WorkflowDefinition<unknown> | undefined;
1228
+ __smithersSandboxInput: unknown;
1229
+ __smithersSandboxRuntime: SandboxRuntime$1;
1230
+ __smithersSandboxChildren: React.ReactNode;
1231
+ }, string | React.JSXElementConstructor<any>> | null;
1232
+ type SandboxProps$1 = SandboxProps$2;
1233
+
1234
+ /** @typedef {import("./WaitForEventProps.ts").WaitForEventProps} WaitForEventProps */
1235
+ /**
1236
+ * @param {WaitForEventProps} props
1237
+ */
1238
+ declare function WaitForEvent(props: WaitForEventProps$1): React.ReactElement<{
1239
+ id: string;
1240
+ key: string | undefined;
1241
+ event: string;
1242
+ correlationId: string | undefined;
1243
+ output: OutputTarget$1;
1244
+ outputSchema: zod.ZodObject<Readonly<{
1245
+ [k: string]: zod_v4_core.$ZodType<unknown, unknown, zod_v4_core.$ZodTypeInternals<unknown, unknown>>;
1246
+ }>, zod_v4_core.$strip> | undefined;
1247
+ timeoutMs: number | undefined;
1248
+ onTimeout: "fail" | "continue" | "skip";
1249
+ waitAsync: boolean;
1250
+ dependsOn: string[] | undefined;
1251
+ needs: Record<string, string> | undefined;
1252
+ label: string;
1253
+ meta: {
1254
+ onTimeout?: "fail" | "continue" | "skip" | undefined;
1255
+ correlationId?: string | undefined;
1256
+ event: string;
1257
+ } | undefined;
1258
+ __smithersEventName: string;
1259
+ __smithersCorrelationId: string | undefined;
1260
+ __smithersOnTimeout: "fail" | "continue" | "skip";
1261
+ }, string | React.JSXElementConstructor<any>> | null;
1262
+ type WaitForEventProps$1 = WaitForEventProps$2;
1263
+
1264
+ /**
1265
+ * @template Schema
1266
+ * @typedef {import("./SignalProps.ts").SignalProps<Schema>} SignalProps
1267
+ */
1268
+ /**
1269
+ * @template Schema
1270
+ * @param {SignalProps<Schema>} props
1271
+ */
1272
+ declare function Signal<Schema>(props: SignalProps$1<Schema>): React.DetailedReactHTMLElement<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement> | React.FunctionComponentElement<React.FragmentProps> | null;
1273
+ type SignalProps$1<Schema> = SignalProps$2<Schema>;
1274
+
1275
+ /** @typedef {import("./TimerProps.ts").TimerProps} TimerProps */
1276
+ /**
1277
+ * @param {TimerProps} props
1278
+ */
1279
+ declare function Timer(props: TimerProps$1): React.ReactElement<{
1280
+ id: string;
1281
+ key: string | undefined;
1282
+ duration: string | undefined;
1283
+ until: string | undefined;
1284
+ dependsOn: string[] | undefined;
1285
+ needs: Record<string, string> | undefined;
1286
+ label: string;
1287
+ meta: {
1288
+ until?: string | undefined;
1289
+ duration?: string | undefined;
1290
+ timer: boolean;
1291
+ } | undefined;
1292
+ __smithersTimerDuration: string | undefined;
1293
+ __smithersTimerUntil: string | undefined;
1294
+ }, string | React.JSXElementConstructor<any>> | null;
1295
+ type TimerProps$1 = TimerProps$2;
1296
+
1297
+ /**
1298
+ * @param {HumanTaskProps} props
1299
+ * @returns {React.ReactElement | null}
1300
+ */
1301
+ declare function HumanTask(props: HumanTaskProps$1): React.ReactElement | null;
1302
+ type HumanTaskProps$1 = HumanTaskProps$2;
1303
+
1304
+ /**
1305
+ * Forward steps with registered compensations executed in reverse on failure/cancel.
1306
+ *
1307
+ * Use the `steps` prop for an array-driven API, or nest `<Saga.Step>` children
1308
+ * for a declarative JSX style.
1309
+ *
1310
+ * Renders to `<smithers:saga>`.
1311
+ * @param {SagaProps} props
1312
+ */
1313
+ declare function Saga(props: SagaProps$1): React.ReactElement<{
1314
+ id: string | undefined;
1315
+ onFailure: "fail" | "compensate" | "compensate-and-fail";
1316
+ __sagaSteps: {
1317
+ id: any;
1318
+ label: any;
1319
+ }[];
1320
+ skipIf?: boolean;
1321
+ }, string | React.JSXElementConstructor<any>> | null;
1322
+ declare namespace Saga {
1323
+ export { SagaStep as Step };
1324
+ }
1325
+ type SagaStepProps$1 = SagaStepProps$2;
1326
+ type SagaProps$1 = SagaProps$2;
1327
+ /** @typedef {import("./SagaStepProps.ts").SagaStepProps} SagaStepProps */
1328
+ /**
1329
+ * @param {SagaStepProps} _props
1330
+ * @returns {React.ReactElement | null}
1331
+ */
1332
+ declare function SagaStep(_props: SagaStepProps$1): React.ReactElement | null;
1333
+ declare namespace SagaStep {
1334
+ let __isSagaStep: boolean;
1335
+ }
1336
+
1337
+ /**
1338
+ * Workflow-scoped error boundary. Catch specific error types, run recovery
1339
+ * handlers, and ensure cleanup always runs.
1340
+ *
1341
+ * - The `try` block is the main workflow content.
1342
+ * - If any task in `try` fails with a matching error, the `catch` block mounts.
1343
+ * - The `finally` block always runs after try (success) or catch (failure).
1344
+ *
1345
+ * Renders to `<smithers:try-catch-finally>`.
1346
+ * @param {TryCatchFinallyProps} props
1347
+ */
1348
+ declare function TryCatchFinally(props: TryCatchFinallyProps$1): React.ReactElement<{
1349
+ id: string | undefined;
1350
+ __tcfCatchErrors: ("INVALID_INPUT" | "MISSING_INPUT" | "MISSING_INPUT_TABLE" | "RESUME_METADATA_MISMATCH" | "UNKNOWN_OUTPUT_SCHEMA" | "INVALID_OUTPUT" | "WORKTREE_CREATE_FAILED" | "VCS_NOT_FOUND" | "SNAPSHOT_NOT_FOUND" | "VCS_WORKSPACE_CREATE_FAILED" | "TASK_TIMEOUT" | "RUN_NOT_FOUND" | "NODE_NOT_FOUND" | "INVALID_EVENTS_OPTIONS" | "SANDBOX_BUNDLE_INVALID" | "SANDBOX_BUNDLE_TOO_LARGE" | "WORKFLOW_EXECUTION_FAILED" | "SANDBOX_EXECUTION_FAILED" | "TASK_HEARTBEAT_TIMEOUT" | "HEARTBEAT_PAYLOAD_TOO_LARGE" | "HEARTBEAT_PAYLOAD_NOT_JSON_SERIALIZABLE" | "TASK_ABORTED" | "RUN_CANCELLED" | "RUN_NOT_RESUMABLE" | "RUN_OWNER_ALIVE" | "RUN_STILL_RUNNING" | "RUN_RESUME_CLAIM_LOST" | "RUN_RESUME_CLAIM_FAILED" | "RUN_RESUME_ACTIVATION_FAILED" | "RUN_HIJACKED" | "CONTINUATION_STATE_TOO_LARGE" | "INVALID_CONTINUATION_STATE" | "RALPH_MAX_REACHED" | "SCHEDULER_ERROR" | "SESSION_ERROR" | "TASK_ID_REQUIRED" | "TASK_MISSING_OUTPUT" | "DUPLICATE_ID" | "NESTED_LOOP" | "WORKTREE_EMPTY_PATH" | "MDX_PRELOAD_INACTIVE" | "CONTEXT_OUTSIDE_WORKFLOW" | "MISSING_OUTPUT" | "DEP_NOT_SATISFIED" | "ASPECT_BUDGET_EXCEEDED" | "APPROVAL_OUTSIDE_TASK" | "APPROVAL_OPTIONS_REQUIRED" | "WORKFLOW_MISSING_DEFAULT" | "TOOL_PATH_INVALID" | "TOOL_PATH_ESCAPE" | "TOOL_FILE_TOO_LARGE" | "TOOL_CONTENT_TOO_LARGE" | "TOOL_PATCH_TOO_LARGE" | "TOOL_PATCH_FAILED" | "TOOL_NETWORK_DISABLED" | "TOOL_GIT_REMOTE_DISABLED" | "TOOL_COMMAND_FAILED" | "TOOL_GREP_FAILED" | "AGENT_CLI_ERROR" | "AGENT_RPC_FILE_ARGS" | "AGENT_BUILD_COMMAND" | "AGENT_DIAGNOSTIC_TIMEOUT" | "DB_MISSING_COLUMNS" | "DB_REQUIRES_BUN_SQLITE" | "DB_QUERY_FAILED" | "DB_WRITE_FAILED" | "STORAGE_ERROR" | "INTERNAL_ERROR" | "PROCESS_ABORTED" | "PROCESS_TIMEOUT" | "PROCESS_IDLE_TIMEOUT" | "PROCESS_SPAWN_FAILED" | "TASK_RUNTIME_UNAVAILABLE" | "SCHEMA_CHANGE_HOT" | "HOT_OVERLAY_FAILED" | "HOT_RELOAD_INVALID_MODULE" | "SCORER_FAILED" | "WORKFLOW_EXISTS" | "CLI_DB_NOT_FOUND" | "CLI_AGENT_UNSUPPORTED" | "PI_HTTP_ERROR" | "EXTERNAL_BUILD_FAILED" | "SCHEMA_DISCOVERY_FAILED" | "OPENAPI_SPEC_LOAD_FAILED" | "OPENAPI_OPERATION_NOT_FOUND" | "OPENAPI_TOOL_EXECUTION_FAILED" | (string & {}))[] | undefined;
1351
+ __tcfCatchHandler: React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | ((error: _smithers_errors.SmithersError) => React.ReactElement) | undefined;
1352
+ __tcfFinallyHandler: React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | undefined;
1353
+ }, string | React.JSXElementConstructor<any>> | null;
1354
+ type TryCatchFinallyProps$1 = TryCatchFinallyProps$2;
1355
+
1356
+ /**
1357
+ * Runtime accumulator for tracked metrics within an Aspects scope.
1358
+ */
1359
+ type AspectAccumulator = {
1360
+ totalTokens: number;
1361
+ totalLatencyMs: number;
1362
+ totalCostUsd: number;
1363
+ taskCount: number;
1364
+ };
1365
+
1366
+ /**
1367
+ * The value provided by AspectContext to descendant components.
1368
+ */
1369
+ type AspectContextValue = {
1370
+ tokenBudget?: TokenBudgetConfig;
1371
+ latencySlo?: LatencySloConfig;
1372
+ costBudget?: CostBudgetConfig;
1373
+ tracking: TrackingConfig;
1374
+ accumulator: AspectAccumulator;
1375
+ };
1376
+
1377
+ /**
1378
+ * Aspects — declarative cross-cutting concerns for workflow scopes.
1379
+ *
1380
+ * Wraps a section of the workflow tree and propagates token budgets,
1381
+ * latency SLOs, and cost budgets to all descendant Task components
1382
+ * without modifying individual tasks.
1383
+ *
1384
+ * ```tsx
1385
+ * <Aspects tokenBudget={{ max: 100_000, perTask: 20_000, onExceeded: "warn" }}>
1386
+ * <Task id="step1" ...>...</Task>
1387
+ * <Task id="step2" ...>...</Task>
1388
+ * </Aspects>
1389
+ * ```
1390
+ * @param {AspectsProps} props
1391
+ */
1392
+ declare function Aspects(props: AspectsProps$1): React.FunctionComponentElement<React.ProviderProps<AspectContextValue | null>>;
1393
+ type AspectsProps$1 = AspectsProps$2;
1394
+
1395
+ /**
1396
+ * SuperSmithers — a workflow wrapper that reads and modifies source code
1397
+ * to intervene via hot reload. Takes a markdown strategy doc and an agent
1398
+ * that decides what to change.
1399
+ *
1400
+ * Only meaningful in hot-reload mode: the agent reads source files, proposes
1401
+ * modifications, and (unless `dryRun` is set) writes them to disk, triggering
1402
+ * the hot reload system to pick up the changes.
1403
+ *
1404
+ * Internally expands to a sequence of tasks:
1405
+ * 1. Agent reads the strategy doc and target files
1406
+ * 2. Agent proposes modifications
1407
+ * 3. (If not dryRun) Compute task writes modifications to disk
1408
+ * 4. Agent generates a report of what changed
1409
+ *
1410
+ * ```tsx
1411
+ * <SuperSmithers
1412
+ * id="refactor"
1413
+ * strategy={strategyMd}
1414
+ * agent={codeAgent}
1415
+ * targetFiles={["src/**\/*.ts"]}
1416
+ * reportOutput={outputs.report}
1417
+ * />
1418
+ * ```
1419
+ * @param {SuperSmithersProps} props
1420
+ */
1421
+ declare function SuperSmithers(props: SuperSmithersProps$1): React.ReactElement<{
1422
+ id: string;
1423
+ }, string | React.JSXElementConstructor<any>> | null;
1424
+ type SuperSmithersProps$1 = SuperSmithersProps$2;
1425
+
1426
+ /** @typedef {import("./LoopProps.ts").LoopProps} LoopProps */
1427
+ /**
1428
+ * @param {LoopProps} props
1429
+ */
1430
+ declare function Loop(props: LoopProps$1): React.DOMElement<LoopProps$2, Element> | null;
1431
+ /** @typedef {import("./LoopProps.ts").LoopProps} LoopProps */
1432
+ /**
1433
+ * @param {LoopProps} props
1434
+ */
1435
+ declare function Ralph(props: LoopProps$1): React.DOMElement<LoopProps$2, Element> | null;
1436
+ type LoopProps$1 = LoopProps$2;
1437
+
1438
+ /**
1439
+ * @param {ContinueAsNewProps} props
1440
+ */
1441
+ declare function ContinueAsNew(props: ContinueAsNewProps$1): React.ReactElement<{
1442
+ stateJson: string | undefined;
1443
+ }, string | React.JSXElementConstructor<any>>;
1444
+ /**
1445
+ * Convenience helper for conditional continuation inside workflow JSX:
1446
+ * `{shouldContinue ? continueAsNew({ cursor }) : null}`
1447
+ */
1448
+ declare function continueAsNew(state: any): React.FunctionComponentElement<ContinueAsNewProps$2>;
1449
+ type ContinueAsNewProps$1 = ContinueAsNewProps$2;
1450
+
1451
+ type ApprovalAutoApprove = ApprovalAutoApprove$1;
1452
+ type ApprovalDecision = ApprovalDecision$1;
1453
+ type ApprovalGateProps = ApprovalGateProps$2;
1454
+ type ApprovalMode = ApprovalMode$1;
1455
+ type ApprovalOption = ApprovalOption$1;
1456
+ type ApprovalProps<Row, Output> = ApprovalProps$2<Row, Output>;
1457
+ type ApprovalRanking = ApprovalRanking$1;
1458
+ type ApprovalRequest = ApprovalRequest$1;
1459
+ type ApprovalSelection = ApprovalSelection$1;
1460
+ type AspectsProps = AspectsProps$2;
1461
+ type BranchProps = BranchProps$2;
1462
+ type CategoryConfig = CategoryConfig$1;
1463
+ type CheckConfig = CheckConfig$1;
1464
+ type CheckSuiteProps = CheckSuiteProps$2;
1465
+ type ClassifyAndRouteProps = ClassifyAndRouteProps$2;
1466
+ type ColumnDef = ColumnDef$1;
1467
+ type ContentPipelineProps = ContentPipelineProps$2;
1468
+ type ContentPipelineStage = ContentPipelineStage$1;
1469
+ type ContinueAsNewProps = ContinueAsNewProps$2;
1470
+ type DebateProps = DebateProps$2;
1471
+ type DecisionRule = DecisionRule$1;
1472
+ type DecisionTableProps = DecisionTableProps$2;
1473
+ type DepsSpec = DepsSpec$1;
1474
+ type DriftDetectorProps = DriftDetectorProps$2;
1475
+ type EscalationChainProps = EscalationChainProps$2;
1476
+ type EscalationLevel = EscalationLevel$1;
1477
+ type GatherAndSynthesizeProps = GatherAndSynthesizeProps$2;
1478
+ type HumanTaskProps = HumanTaskProps$2;
1479
+ type InferDeps<D> = InferDeps$1<D>;
1480
+ type KanbanProps = KanbanProps$2;
1481
+ type LoopProps = LoopProps$2;
1482
+ type MergeQueueProps = MergeQueueProps$2;
1483
+ type OptimizerProps = OptimizerProps$2;
1484
+ type OutputTarget = OutputTarget$1;
1485
+ type PanelistConfig = PanelistConfig$1;
1486
+ type PanelProps = PanelProps$2;
1487
+ type ParallelProps = ParallelProps$2;
1488
+ type PollerProps = PollerProps$2;
1489
+ type RalphProps = RalphProps$1;
1490
+ type ReviewLoopProps = ReviewLoopProps$2;
1491
+ type RunbookProps = RunbookProps$2;
1492
+ type RunbookStep = RunbookStep$1;
1493
+ type SagaProps = SagaProps$2;
1494
+ type SagaStepDef = SagaStepDef$1;
1495
+ type SagaStepProps = SagaStepProps$2;
1496
+ type SandboxProps = SandboxProps$2;
1497
+ type SandboxRuntime = SandboxRuntime$1;
1498
+ type SandboxVolumeMount = SandboxVolumeMount$1;
1499
+ type SandboxWorkspaceSpec = SandboxWorkspaceSpec$1;
1500
+ type ScanFixVerifyProps = ScanFixVerifyProps$2;
1501
+ type ScorersMap = _smithers_scorers_types.ScorersMap;
1502
+ type SequenceProps = SequenceProps$2;
1503
+ type SignalProps<Schema> = SignalProps$2<Schema>;
1504
+ type SourceDef = SourceDef$1;
1505
+ type SubflowProps = SubflowProps$2;
1506
+ type SuperSmithersProps = SuperSmithersProps$2;
1507
+ type SupervisorProps = SupervisorProps$2;
1508
+ type TaskProps<Row, Output, D> = TaskProps$2<Row, Output, D>;
1509
+ type TimerProps = TimerProps$2;
1510
+ type TryCatchFinallyProps = TryCatchFinallyProps$2;
1511
+ type WaitForEventProps = WaitForEventProps$2;
1512
+ type WorkflowProps = WorkflowProps$2;
1513
+ type WorktreeProps = WorktreeProps$2;
1514
+
1515
+ /** @type {Record<string, React.FC<any>>} */
1516
+ declare const markdownComponents: Record<string, React.FC<any>>;
1517
+
1518
+ /** @typedef {import("mdx/types").MDXContent} MDXContent */
1519
+ /**
1520
+ * Render an MDX component to plain markdown text.
1521
+ *
1522
+ * Injects `markdownComponents` so headings, paragraphs, code blocks, etc.
1523
+ * render as markdown-formatted text instead of HTML tags.
1524
+ *
1525
+ * @param {MDXContent} Component
1526
+ * @param {Record<string, any>} [props]
1527
+ * @returns {string}
1528
+ */
1529
+ declare function renderMdx(Component: MDXContent, props?: Record<string, any>): string;
1530
+ type MDXContent = any;
1531
+
1532
+ /** @typedef {import("zod").ZodObject<import("zod").ZodRawShape>} ZodObject */
1533
+ /** @typedef {import("zod").ZodTypeAny} ZodTypeAny */
1534
+ /**
1535
+ * @param {ZodObject} schema
1536
+ * @returns {string}
1537
+ */
1538
+ declare function zodSchemaToJsonExample(schema: ZodObject): string;
1539
+ type ZodObject = zod.ZodObject<zod.ZodRawShape>;
1540
+
1541
+ type CachePolicy<Ctx> = _smithers_scheduler_CachePolicy.CachePolicy<Ctx>;
1542
+ type EngineDecision = _smithers_scheduler.EngineDecision;
1543
+ type ExtractOptions = _smithers_graph.ExtractOptions;
1544
+ type HostElement = _smithers_graph.HostElement;
1545
+ type HostNode = _smithers_graph.HostNode;
1546
+ type HostText = _smithers_graph.HostText;
1547
+ type InferOutputEntry<T> = _smithers_driver_OutputAccessor.InferOutputEntry<T>;
1548
+ type InferRow<TTable> = _smithers_driver_OutputAccessor.InferRow<TTable>;
1549
+ type OutputAccessor<Schema> = _smithers_driver_OutputAccessor.OutputAccessor<Schema>;
1550
+ type OutputKey = _smithers_driver_OutputKey.OutputKey;
1551
+ type RenderContext = _smithers_scheduler.RenderContext;
1552
+ type RetryPolicy = _smithers_scheduler_RetryPolicy.RetryPolicy;
1553
+ type RunAuthContext = _smithers_driver_RunAuthContext.RunAuthContext;
1554
+ type RunOptions = _smithers_driver.RunOptions;
1555
+ type RunResult = _smithers_driver.RunResult;
1556
+ type SchemaRegistryEntry = _smithers_db_SchemaRegistryEntry.SchemaRegistryEntry;
1557
+ type SmithersAlertLabels = _smithers_scheduler_SmithersWorkflowOptions.SmithersAlertLabels;
1558
+ type SmithersAlertPolicy = _smithers_scheduler_SmithersWorkflowOptions.SmithersAlertPolicy;
1559
+ type SmithersAlertPolicyDefaults = _smithers_scheduler_SmithersWorkflowOptions.SmithersAlertPolicyDefaults;
1560
+ type SmithersAlertPolicyRule = _smithers_scheduler_SmithersWorkflowOptions.SmithersAlertPolicyRule;
1561
+ type SmithersAlertReaction = _smithers_scheduler_SmithersWorkflowOptions.SmithersAlertReaction;
1562
+ type SmithersAlertReactionKind = _smithers_scheduler_SmithersWorkflowOptions.SmithersAlertReactionKind;
1563
+ type SmithersAlertReactionRef = _smithers_scheduler_SmithersWorkflowOptions.SmithersAlertReactionRef;
1564
+ type SmithersAlertSeverity = _smithers_scheduler_SmithersWorkflowOptions.SmithersAlertSeverity;
1565
+ type SmithersCtx = _smithers_driver.SmithersCtx;
1566
+ type SmithersErrorCode = _smithers_errors_SmithersErrorCode.SmithersErrorCode;
1567
+ type SmithersWorkflow<Schema> = _smithers_driver_WorkflowDefinition.WorkflowDefinition<Schema>;
1568
+ type SmithersWorkflowDriverOptions<Schema> = _smithers_driver_WorkflowDriverOptions.WorkflowDriverOptions<Schema>;
1569
+ type SmithersWorkflowOptions = _smithers_scheduler.SmithersWorkflowOptions;
1570
+ type TaskDescriptor = _smithers_graph.TaskDescriptor;
1571
+ type WaitReason = _smithers_scheduler.WaitReason;
1572
+ type WorkflowGraph = _smithers_graph.WorkflowGraph;
1573
+ type WorkflowRuntime = _smithers_driver_workflow_types.WorkflowRuntime;
1574
+ type WorkflowSession = _smithers_driver_workflow_types.WorkflowSession;
1575
+ type XmlElement = _smithers_graph.XmlElement;
1576
+ type XmlNode = _smithers_graph.XmlNode;
1577
+ type XmlText = _smithers_graph.XmlText;
1578
+
1579
+ export { Approval, type ApprovalAutoApprove, type ApprovalDecision, ApprovalGate, type ApprovalGateProps, type ApprovalMode, type ApprovalOption, type ApprovalProps, type ApprovalRanking, type ApprovalRequest, type ApprovalSelection, Aspects, type AspectsProps, Branch, type BranchProps, type CachePolicy, type CategoryConfig, type CheckConfig, CheckSuite, type CheckSuiteProps, ClassifyAndRoute, type ClassifyAndRouteProps, type ColumnDef, ContentPipeline, type ContentPipelineProps, type ContentPipelineStage, ContinueAsNew, type ContinueAsNewProps, Debate, type DebateProps, type DecisionRule, DecisionTable, type DecisionTableProps, type DepsSpec, DriftDetector, type DriftDetectorProps, type EngineDecision, EscalationChain, type EscalationChainProps, type EscalationLevel, type ExtractOptions, GatherAndSynthesize, type GatherAndSynthesizeProps, type HostElement, type HostNode, type HostText, HumanTask, type HumanTaskProps, type InferDeps, type InferOutputEntry, type InferRow, Kanban, type KanbanProps, Loop, type LoopProps, MergeQueue, type MergeQueueProps, Optimizer, type OptimizerProps, type OutputAccessor, type OutputKey, type OutputTarget, Panel, type PanelProps, type PanelistConfig, Parallel, type ParallelProps, Poller, type PollerProps, Ralph, type RalphProps, type RenderContext, type RetryPolicy, ReviewLoop, type ReviewLoopProps, type RunAuthContext, type RunOptions, type RunResult, Runbook, type RunbookProps, type RunbookStep, Saga, type SagaProps, type SagaStepDef, type SagaStepProps, Sandbox, type SandboxProps, type SandboxRuntime, type SandboxVolumeMount, type SandboxWorkspaceSpec, ScanFixVerify, type ScanFixVerifyProps, type SchemaRegistryEntry, type ScorersMap, Sequence, type SequenceProps, Signal, type SignalProps, type SmithersAlertLabels, type SmithersAlertPolicy, type SmithersAlertPolicyDefaults, type SmithersAlertPolicyRule, type SmithersAlertReaction, type SmithersAlertReactionKind, type SmithersAlertReactionRef, type SmithersAlertSeverity, type SmithersCtx, type SmithersErrorCode, type SmithersWorkflow, type SmithersWorkflowDriverOptions, type SmithersWorkflowOptions, type SourceDef, Subflow, type SubflowProps, SuperSmithers, type SuperSmithersProps, Supervisor, type SupervisorProps, Task, type TaskDescriptor, type TaskProps, Timer, type TimerProps, TryCatchFinally, type TryCatchFinallyProps, WaitForEvent, type WaitForEventProps, type WaitReason, Workflow, type WorkflowGraph, type WorkflowProps, type WorkflowRuntime, type WorkflowSession, Worktree, type WorktreeProps, type XmlElement, type XmlNode, type XmlText, approvalDecisionSchema, approvalRankingSchema, approvalSelectionSchema, continueAsNew, markdownComponents, renderMdx, zodSchemaToJsonExample };