@smithers-orchestrator/components 0.22.0 → 0.24.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithers-orchestrator/components",
3
- "version": "0.22.0",
3
+ "version": "0.24.0",
4
4
  "description": "React components for Smithers workflows",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -24,15 +24,15 @@
24
24
  "react": "^19.2.5",
25
25
  "react-dom": "^19.2.5",
26
26
  "zod": "^4.3.6",
27
- "@smithers-orchestrator/db": "0.22.0",
28
- "@smithers-orchestrator/agents": "0.22.0",
29
- "@smithers-orchestrator/errors": "0.22.0",
30
- "@smithers-orchestrator/driver": "0.22.0",
31
- "@smithers-orchestrator/memory": "0.22.0",
32
- "@smithers-orchestrator/graph": "0.22.0",
33
- "@smithers-orchestrator/observability": "0.22.0",
34
- "@smithers-orchestrator/react-reconciler": "0.22.0",
35
- "@smithers-orchestrator/scheduler": "0.22.0"
27
+ "@smithers-orchestrator/agents": "0.24.0",
28
+ "@smithers-orchestrator/db": "0.24.0",
29
+ "@smithers-orchestrator/driver": "0.24.0",
30
+ "@smithers-orchestrator/errors": "0.24.0",
31
+ "@smithers-orchestrator/graph": "0.24.0",
32
+ "@smithers-orchestrator/memory": "0.24.0",
33
+ "@smithers-orchestrator/scheduler": "0.24.0",
34
+ "@smithers-orchestrator/react-reconciler": "0.24.0",
35
+ "@smithers-orchestrator/observability": "0.24.0"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@tanstack/react-query": "^5.99.1",
@@ -10,7 +10,7 @@
10
10
  import React from "react";
11
11
  /**
12
12
  * React context that propagates Aspects configuration down the component tree.
13
- * Tasks read from this context to enforce budgets and track metrics.
13
+ * Budget configuration is declarative metadata and is not enforced yet.
14
14
  * @type {React.Context<AspectContextValue | null>}
15
15
  */
16
16
  export const AspectContext = React.createContext(/** @type {AspectContextValue | null} */ (null));
@@ -1,9 +1,11 @@
1
1
  /**
2
2
  * Cost budget configuration for Aspects.
3
+ *
4
+ * Runtime enforcement is not implemented yet; this is declarative metadata.
3
5
  */
4
6
  export type CostBudgetConfig = {
5
7
  /** Maximum total cost in USD across all tasks within the Aspects scope. */
6
8
  maxUsd: number;
7
- /** Behavior when the budget is exceeded. Default: "fail". */
9
+ /** Requested future behavior when the budget is exceeded. Default: "fail". */
8
10
  onExceeded?: "fail" | "warn" | "skip-remaining";
9
11
  };
@@ -1,11 +1,13 @@
1
1
  /**
2
2
  * Latency SLO configuration for Aspects.
3
+ *
4
+ * Runtime enforcement is not implemented yet; this is declarative metadata.
3
5
  */
4
6
  export type LatencySloConfig = {
5
7
  /** Maximum total latency in milliseconds across all tasks. */
6
8
  maxMs: number;
7
9
  /** Optional per-task latency limit in milliseconds. */
8
10
  perTask?: number;
9
- /** Behavior when the SLO is exceeded. Default: "fail". */
11
+ /** Requested future behavior when the SLO is exceeded. Default: "fail". */
10
12
  onExceeded?: "fail" | "warn";
11
13
  };
@@ -1,11 +1,13 @@
1
1
  /**
2
2
  * Token budget configuration for Aspects.
3
+ *
4
+ * Runtime enforcement is not implemented yet; this is declarative metadata.
3
5
  */
4
6
  export type TokenBudgetConfig = {
5
7
  /** Maximum total tokens across all tasks within the Aspects scope. */
6
8
  max: number;
7
9
  /** Optional per-task token limit. */
8
10
  perTask?: number;
9
- /** Behavior when the budget is exceeded. Default: "fail". */
11
+ /** Requested future behavior when the budget is exceeded. Default: "fail". */
10
12
  onExceeded?: "fail" | "warn" | "skip-remaining";
11
13
  };
@@ -9,7 +9,8 @@ import { AspectContext, createAccumulator, } from "../aspects/AspectContext.js";
9
9
  *
10
10
  * Wraps a section of the workflow tree and propagates token budgets,
11
11
  * latency SLOs, and cost budgets to all descendant Task components
12
- * without modifying individual tasks.
12
+ * without modifying individual tasks. Runtime budget enforcement is not
13
+ * implemented yet.
13
14
  *
14
15
  * ```tsx
15
16
  * <Aspects tokenBudget={{ max: 100_000, perTask: 20_000, onExceeded: "warn" }}>
@@ -5,11 +5,11 @@ import type { CostBudgetConfig } from "../aspects/CostBudgetConfig.ts";
5
5
  import type { TrackingConfig } from "../aspects/TrackingConfig.ts";
6
6
 
7
7
  export type AspectsProps = {
8
- /** Token budget max total tokens, optional per-task limit, and exceeded behavior. */
8
+ /** Token budget metadata. Runtime enforcement is not implemented yet. */
9
9
  tokenBudget?: TokenBudgetConfig;
10
- /** Latency SLO max total latency, optional per-task limit, and exceeded behavior. */
10
+ /** Latency SLO metadata. Runtime enforcement is not implemented yet. */
11
11
  latencySlo?: LatencySloConfig;
12
- /** Cost budget max total USD, and exceeded behavior. */
12
+ /** Cost budget metadata. Runtime enforcement is not implemented yet. */
13
13
  costBudget?: CostBudgetConfig;
14
14
  /** Which metrics to track. Defaults to all enabled. */
15
15
  tracking?: TrackingConfig;
@@ -1,10 +1,34 @@
1
1
  import React from "react";
2
+ import { SmithersContext } from "@smithers-orchestrator/react-reconciler/context";
2
3
  import { Task } from "./Task.js";
3
4
  import { Sequence } from "./Sequence.js";
4
5
  import { Branch } from "./Branch.js";
5
6
  import { Loop } from "./Ralph.js";
6
7
  /** @typedef {import("./DriftDetectorProps.ts").DriftDetectorProps} DriftDetectorProps */
7
8
 
9
+ /**
10
+ * @param {unknown} value
11
+ * @returns {value is Record<string, unknown>}
12
+ */
13
+ function isRecord(value) {
14
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
15
+ }
16
+
17
+ /**
18
+ * @param {unknown} comparison
19
+ * @param {((comparison: unknown) => boolean) | undefined} alertIf
20
+ * @returns {boolean}
21
+ */
22
+ function shouldAlert(comparison, alertIf) {
23
+ if (comparison == null) {
24
+ return false;
25
+ }
26
+ if (alertIf) {
27
+ return Boolean(alertIf(comparison));
28
+ }
29
+ return isRecord(comparison) && comparison.drifted === true;
30
+ }
31
+
8
32
  /**
9
33
  * @param {DriftDetectorProps} props
10
34
  */
@@ -12,9 +36,9 @@ export function DriftDetector(props) {
12
36
  if (props.skipIf)
13
37
  return null;
14
38
  const prefix = props.id ?? "drift";
15
- // Determine if drift was detected from comparison output.
16
- // At render time, comparison may not exist yet, so default to false.
17
- const drifted = false; // Resolved at runtime via reactive re-render
39
+ const ctx = React.useContext(SmithersContext);
40
+ const comparison = ctx?.outputMaybe(props.compareOutput, { nodeId: `${prefix}-compare` });
41
+ const drifted = shouldAlert(comparison, props.alertIf);
18
42
  const captureTask = React.createElement(Task, {
19
43
  id: `${prefix}-capture`,
20
44
  output: props.captureOutput,
@@ -15,13 +15,14 @@ export type DriftDetectorProps = {
15
15
  compareOutput: OutputTarget;
16
16
  /** Static baseline data, or a function/agent that fetches it. */
17
17
  baseline: unknown;
18
- /** Condition function that determines whether to fire the alert. If omitted, uses the `drifted` field from comparison output. */
18
+ /** Condition function that determines whether to fire the alert. If omitted, uses `comparison.drifted === true`. */
19
19
  alertIf?: (comparison: unknown) => boolean;
20
20
  /** Element to render when drift is detected (e.g. a Task that sends a notification). */
21
21
  alert?: React.ReactElement;
22
22
  /** If set, wraps the detector in a Loop for periodic polling. */
23
23
  poll?: {
24
- intervalMs: number;
24
+ /** Reserved for future delayed polling; maxPolls currently controls Loop iterations. */
25
+ intervalMs?: number;
25
26
  maxPolls?: number;
26
27
  };
27
28
  /** Skip the entire component. */
@@ -1,5 +1,6 @@
1
1
  // @smithers-type-exports-begin
2
2
  /** @typedef {import("./SandboxRuntime.ts").SandboxRuntime} SandboxRuntime */
3
+ /** @typedef {import("./SandboxEgressConfig.ts").SandboxEgressConfig} SandboxEgressConfig */
3
4
  /** @typedef {import("./SandboxVolumeMount.ts").SandboxVolumeMount} SandboxVolumeMount */
4
5
  /** @typedef {import("./SandboxWorkspaceSpec.ts").SandboxWorkspaceSpec} SandboxWorkspaceSpec */
5
6
  // @smithers-type-exports-end
@@ -25,6 +26,7 @@ export function Sandbox(props) {
25
26
  allowNested: props.allowNested,
26
27
  image: props.image,
27
28
  env: props.env,
29
+ egress: props.egress,
28
30
  ports: props.ports,
29
31
  volumes: props.volumes,
30
32
  memoryLimit: props.memoryLimit,
@@ -0,0 +1,9 @@
1
+ export type SandboxEgressConfig = {
2
+ env?: Record<string, string>;
3
+ httpProxy?: string;
4
+ httpsProxy?: string;
5
+ noProxy?: string | string[];
6
+ caCertPem?: string;
7
+ caCertPath?: string;
8
+ secretBindings?: Record<string, string>;
9
+ };
@@ -6,6 +6,7 @@ import type { OutputTarget } from "./OutputTarget.ts";
6
6
  import type { SandboxRuntime } from "./SandboxRuntime.ts";
7
7
  import type { SandboxVolumeMount } from "./SandboxVolumeMount.ts";
8
8
  import type { SandboxWorkspaceSpec } from "./SandboxWorkspaceSpec.ts";
9
+ import type { SandboxEgressConfig } from "./SandboxEgressConfig.ts";
9
10
 
10
11
  export type SandboxProps = {
11
12
  id: string;
@@ -25,6 +26,7 @@ export type SandboxProps = {
25
26
  allowNested?: boolean;
26
27
  image?: string;
27
28
  env?: Record<string, string>;
29
+ egress?: SandboxEgressConfig;
28
30
  ports?: Array<{
29
31
  host: number;
30
32
  container: number;
@@ -215,11 +215,16 @@ export function Task(props) {
215
215
  const resolvedDeps = deps ? resolveDeps(ctx, deps, rest.needs) : undefined;
216
216
  if (deps && resolvedDeps == null) {
217
217
  // Deps not yet available — component defers until upstream tasks complete.
218
- // This is normal reactive behavior; the task will re-render once deps are ready.
218
+ // This is normal reactive behavior; the task will re-render once deps are
219
+ // ready. Record the deferral so the engine can distinguish a transient wait
220
+ // from a permanent one: a deferral that survives to quiescence means a
221
+ // dependency that can never resolve (e.g. a deps key that maps to a node id
222
+ // no task produces), which would otherwise be a silent skip.
223
+ ctx?.recordDeferredDep?.(props.id, depNodeIds ?? []);
219
224
  return null;
220
225
  }
221
- // Build aspect metadata to attach to the task element so the engine can
222
- // enforce budgets and tracking at execution time.
226
+ // Build aspect metadata to attach to the task element. Budget metadata is
227
+ // declarative only until runtime enforcement is implemented.
223
228
  const aspectMeta = aspectCtx ? buildAspectMeta(aspectCtx) : undefined;
224
229
  const agentChain = Array.isArray(agent)
225
230
  ? fallbackAgent
@@ -282,8 +287,8 @@ export function Task(props) {
282
287
  }
283
288
  /**
284
289
  * Build the __aspects metadata object from the current AspectContext.
285
- * This is attached to the smithers:task element props so the engine
286
- * can read budgets and tracking config at execution time.
290
+ * This is attached to the smithers:task element props. Budget metadata is not
291
+ * enforced by the runtime yet.
287
292
  * @param {{
288
293
  * tokenBudget?: unknown;
289
294
  * latencySlo?: unknown;
@@ -51,6 +51,7 @@
51
51
  /** @typedef {import("./SagaProps.ts").SagaProps} SagaProps */
52
52
  /** @typedef {import("./SagaStepDef.ts").SagaStepDef} SagaStepDef */
53
53
  /** @typedef {import("./SagaStepProps.ts").SagaStepProps} SagaStepProps */
54
+ /** @typedef {import("./SandboxEgressConfig.ts").SandboxEgressConfig} SandboxEgressConfig */
54
55
  /** @typedef {import("./SandboxProps.ts").SandboxProps} SandboxProps */
55
56
  /** @typedef {import("./SandboxRuntime.ts").SandboxRuntime} SandboxRuntime */
56
57
  /** @typedef {import("./SandboxVolumeMount.ts").SandboxVolumeMount} SandboxVolumeMount */
package/src/index.d.ts CHANGED
@@ -135,6 +135,14 @@ type TaskProps$2<Row, Output extends OutputTarget$1 = OutputTarget$1, D extends
135
135
  needs?: Record<string, string>;
136
136
  /** Render-time typed dependencies. Keys resolve from task ids of the same name, or from matching `needs` entries. */
137
137
  deps?: D;
138
+ /**
139
+ * Start this agent task from a copy of another task's final agent session context.
140
+ * The fork source becomes an implicit dependency: this task waits for it to complete,
141
+ * then copies its conversation snapshot into a fresh, independent session and submits
142
+ * its own prompt. The source is never mutated. Inside a `<Loop>`, resolves to the
143
+ * latest completed snapshot for that task id. Requires an agent task.
144
+ */
145
+ fork?: string;
138
146
  skipIf?: boolean;
139
147
  needsApproval?: boolean;
140
148
  /** When paired with `needsApproval`, do not block unrelated downstream flow while the approval is pending. */
@@ -309,6 +317,16 @@ type SandboxVolumeMount$1 = {
309
317
 
310
318
  type SandboxRuntime$1 = "bubblewrap" | "docker" | "codeplane";
311
319
 
320
+ type SandboxEgressConfig$1 = {
321
+ env?: Record<string, string>;
322
+ httpProxy?: string;
323
+ httpsProxy?: string;
324
+ noProxy?: string | string[];
325
+ caCertPem?: string;
326
+ caCertPath?: string;
327
+ secretBindings?: Record<string, string>;
328
+ };
329
+
312
330
  type SandboxProps$2 = {
313
331
  id: string;
314
332
  /** Child workflow definition. If omitted, createSmithers-bound Sandbox wrappers may provide one. */
@@ -327,6 +345,7 @@ type SandboxProps$2 = {
327
345
  allowNested?: boolean;
328
346
  image?: string;
329
347
  env?: Record<string, string>;
348
+ egress?: SandboxEgressConfig$1;
330
349
  ports?: Array<{
331
350
  host: number;
332
351
  container: number;
@@ -645,13 +664,14 @@ type DriftDetectorProps$2 = {
645
664
  compareOutput: OutputTarget$1;
646
665
  /** Static baseline data, or a function/agent that fetches it. */
647
666
  baseline: unknown;
648
- /** Condition function that determines whether to fire the alert. If omitted, uses the `drifted` field from comparison output. */
667
+ /** Condition function that determines whether to fire the alert. If omitted, uses `comparison.drifted === true`. */
649
668
  alertIf?: (comparison: unknown) => boolean;
650
669
  /** Element to render when drift is detected (e.g. a Task that sends a notification). */
651
670
  alert?: React.ReactElement;
652
671
  /** If set, wraps the detector in a Loop for periodic polling. */
653
672
  poll?: {
654
- intervalMs: number;
673
+ /** Reserved for future delayed polling; maxPolls currently controls Loop iterations. */
674
+ intervalMs?: number;
655
675
  maxPolls?: number;
656
676
  };
657
677
  /** Skip the entire component. */
@@ -779,35 +799,41 @@ type BranchProps$2 = {
779
799
 
780
800
  /**
781
801
  * Token budget configuration for Aspects.
802
+ *
803
+ * Runtime enforcement is not implemented yet; this is declarative metadata.
782
804
  */
783
805
  type TokenBudgetConfig = {
784
806
  /** Maximum total tokens across all tasks within the Aspects scope. */
785
807
  max: number;
786
808
  /** Optional per-task token limit. */
787
809
  perTask?: number;
788
- /** Behavior when the budget is exceeded. Default: "fail". */
810
+ /** Requested future behavior when the budget is exceeded. Default: "fail". */
789
811
  onExceeded?: "fail" | "warn" | "skip-remaining";
790
812
  };
791
813
 
792
814
  /**
793
815
  * Latency SLO configuration for Aspects.
816
+ *
817
+ * Runtime enforcement is not implemented yet; this is declarative metadata.
794
818
  */
795
819
  type LatencySloConfig = {
796
820
  /** Maximum total latency in milliseconds across all tasks. */
797
821
  maxMs: number;
798
822
  /** Optional per-task latency limit in milliseconds. */
799
823
  perTask?: number;
800
- /** Behavior when the SLO is exceeded. Default: "fail". */
824
+ /** Requested future behavior when the SLO is exceeded. Default: "fail". */
801
825
  onExceeded?: "fail" | "warn";
802
826
  };
803
827
 
804
828
  /**
805
829
  * Cost budget configuration for Aspects.
830
+ *
831
+ * Runtime enforcement is not implemented yet; this is declarative metadata.
806
832
  */
807
833
  type CostBudgetConfig = {
808
834
  /** Maximum total cost in USD across all tasks within the Aspects scope. */
809
835
  maxUsd: number;
810
- /** Behavior when the budget is exceeded. Default: "fail". */
836
+ /** Requested future behavior when the budget is exceeded. Default: "fail". */
811
837
  onExceeded?: "fail" | "warn" | "skip-remaining";
812
838
  };
813
839
 
@@ -824,11 +850,11 @@ type TrackingConfig = {
824
850
  };
825
851
 
826
852
  type AspectsProps$2 = {
827
- /** Token budget max total tokens, optional per-task limit, and exceeded behavior. */
853
+ /** Token budget metadata. Runtime enforcement is not implemented yet. */
828
854
  tokenBudget?: TokenBudgetConfig;
829
- /** Latency SLO max total latency, optional per-task limit, and exceeded behavior. */
855
+ /** Latency SLO metadata. Runtime enforcement is not implemented yet. */
830
856
  latencySlo?: LatencySloConfig;
831
- /** Cost budget max total USD, and exceeded behavior. */
857
+ /** Cost budget metadata. Runtime enforcement is not implemented yet. */
832
858
  costBudget?: CostBudgetConfig;
833
859
  /** Which metrics to track. Defaults to all enabled. */
834
860
  tracking?: TrackingConfig;
@@ -1394,7 +1420,8 @@ type AspectContextValue = {
1394
1420
  *
1395
1421
  * Wraps a section of the workflow tree and propagates token budgets,
1396
1422
  * latency SLOs, and cost budgets to all descendant Task components
1397
- * without modifying individual tasks.
1423
+ * without modifying individual tasks. Runtime budget enforcement is not
1424
+ * implemented yet.
1398
1425
  *
1399
1426
  * ```tsx
1400
1427
  * <Aspects tokenBudget={{ max: 100_000, perTask: 20_000, onExceeded: "warn" }}>
@@ -1508,6 +1535,7 @@ type RunbookStep = RunbookStep$1;
1508
1535
  type SagaProps = SagaProps$2;
1509
1536
  type SagaStepDef = SagaStepDef$1;
1510
1537
  type SagaStepProps = SagaStepProps$2;
1538
+ type SandboxEgressConfig = SandboxEgressConfig$1;
1511
1539
  type SandboxProps = SandboxProps$2;
1512
1540
  type SandboxRuntime = SandboxRuntime$1;
1513
1541
  type SandboxVolumeMount = SandboxVolumeMount$1;
@@ -1591,4 +1619,4 @@ type XmlElement = _smithers_graph.XmlElement;
1591
1619
  type XmlNode = _smithers_graph.XmlNode;
1592
1620
  type XmlText = _smithers_graph.XmlText;
1593
1621
 
1594
- 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 };
1622
+ 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 SandboxEgressConfig, 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 };