@smithers-orchestrator/components 0.23.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.23.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/agents": "0.23.0",
28
- "@smithers-orchestrator/errors": "0.23.0",
29
- "@smithers-orchestrator/graph": "0.23.0",
30
- "@smithers-orchestrator/memory": "0.23.0",
31
- "@smithers-orchestrator/driver": "0.23.0",
32
- "@smithers-orchestrator/observability": "0.23.0",
33
- "@smithers-orchestrator/react-reconciler": "0.23.0",
34
- "@smithers-orchestrator/scheduler": "0.23.0",
35
- "@smithers-orchestrator/db": "0.23.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
@@ -317,6 +317,16 @@ type SandboxVolumeMount$1 = {
317
317
 
318
318
  type SandboxRuntime$1 = "bubblewrap" | "docker" | "codeplane";
319
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
+
320
330
  type SandboxProps$2 = {
321
331
  id: string;
322
332
  /** Child workflow definition. If omitted, createSmithers-bound Sandbox wrappers may provide one. */
@@ -335,6 +345,7 @@ type SandboxProps$2 = {
335
345
  allowNested?: boolean;
336
346
  image?: string;
337
347
  env?: Record<string, string>;
348
+ egress?: SandboxEgressConfig$1;
338
349
  ports?: Array<{
339
350
  host: number;
340
351
  container: number;
@@ -653,13 +664,14 @@ type DriftDetectorProps$2 = {
653
664
  compareOutput: OutputTarget$1;
654
665
  /** Static baseline data, or a function/agent that fetches it. */
655
666
  baseline: unknown;
656
- /** 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`. */
657
668
  alertIf?: (comparison: unknown) => boolean;
658
669
  /** Element to render when drift is detected (e.g. a Task that sends a notification). */
659
670
  alert?: React.ReactElement;
660
671
  /** If set, wraps the detector in a Loop for periodic polling. */
661
672
  poll?: {
662
- intervalMs: number;
673
+ /** Reserved for future delayed polling; maxPolls currently controls Loop iterations. */
674
+ intervalMs?: number;
663
675
  maxPolls?: number;
664
676
  };
665
677
  /** Skip the entire component. */
@@ -787,35 +799,41 @@ type BranchProps$2 = {
787
799
 
788
800
  /**
789
801
  * Token budget configuration for Aspects.
802
+ *
803
+ * Runtime enforcement is not implemented yet; this is declarative metadata.
790
804
  */
791
805
  type TokenBudgetConfig = {
792
806
  /** Maximum total tokens across all tasks within the Aspects scope. */
793
807
  max: number;
794
808
  /** Optional per-task token limit. */
795
809
  perTask?: number;
796
- /** Behavior when the budget is exceeded. Default: "fail". */
810
+ /** Requested future behavior when the budget is exceeded. Default: "fail". */
797
811
  onExceeded?: "fail" | "warn" | "skip-remaining";
798
812
  };
799
813
 
800
814
  /**
801
815
  * Latency SLO configuration for Aspects.
816
+ *
817
+ * Runtime enforcement is not implemented yet; this is declarative metadata.
802
818
  */
803
819
  type LatencySloConfig = {
804
820
  /** Maximum total latency in milliseconds across all tasks. */
805
821
  maxMs: number;
806
822
  /** Optional per-task latency limit in milliseconds. */
807
823
  perTask?: number;
808
- /** Behavior when the SLO is exceeded. Default: "fail". */
824
+ /** Requested future behavior when the SLO is exceeded. Default: "fail". */
809
825
  onExceeded?: "fail" | "warn";
810
826
  };
811
827
 
812
828
  /**
813
829
  * Cost budget configuration for Aspects.
830
+ *
831
+ * Runtime enforcement is not implemented yet; this is declarative metadata.
814
832
  */
815
833
  type CostBudgetConfig = {
816
834
  /** Maximum total cost in USD across all tasks within the Aspects scope. */
817
835
  maxUsd: number;
818
- /** Behavior when the budget is exceeded. Default: "fail". */
836
+ /** Requested future behavior when the budget is exceeded. Default: "fail". */
819
837
  onExceeded?: "fail" | "warn" | "skip-remaining";
820
838
  };
821
839
 
@@ -832,11 +850,11 @@ type TrackingConfig = {
832
850
  };
833
851
 
834
852
  type AspectsProps$2 = {
835
- /** Token budget max total tokens, optional per-task limit, and exceeded behavior. */
853
+ /** Token budget metadata. Runtime enforcement is not implemented yet. */
836
854
  tokenBudget?: TokenBudgetConfig;
837
- /** Latency SLO max total latency, optional per-task limit, and exceeded behavior. */
855
+ /** Latency SLO metadata. Runtime enforcement is not implemented yet. */
838
856
  latencySlo?: LatencySloConfig;
839
- /** Cost budget max total USD, and exceeded behavior. */
857
+ /** Cost budget metadata. Runtime enforcement is not implemented yet. */
840
858
  costBudget?: CostBudgetConfig;
841
859
  /** Which metrics to track. Defaults to all enabled. */
842
860
  tracking?: TrackingConfig;
@@ -1402,7 +1420,8 @@ type AspectContextValue = {
1402
1420
  *
1403
1421
  * Wraps a section of the workflow tree and propagates token budgets,
1404
1422
  * latency SLOs, and cost budgets to all descendant Task components
1405
- * without modifying individual tasks.
1423
+ * without modifying individual tasks. Runtime budget enforcement is not
1424
+ * implemented yet.
1406
1425
  *
1407
1426
  * ```tsx
1408
1427
  * <Aspects tokenBudget={{ max: 100_000, perTask: 20_000, onExceeded: "warn" }}>
@@ -1516,6 +1535,7 @@ type RunbookStep = RunbookStep$1;
1516
1535
  type SagaProps = SagaProps$2;
1517
1536
  type SagaStepDef = SagaStepDef$1;
1518
1537
  type SagaStepProps = SagaStepProps$2;
1538
+ type SandboxEgressConfig = SandboxEgressConfig$1;
1519
1539
  type SandboxProps = SandboxProps$2;
1520
1540
  type SandboxRuntime = SandboxRuntime$1;
1521
1541
  type SandboxVolumeMount = SandboxVolumeMount$1;
@@ -1599,4 +1619,4 @@ type XmlElement = _smithers_graph.XmlElement;
1599
1619
  type XmlNode = _smithers_graph.XmlNode;
1600
1620
  type XmlText = _smithers_graph.XmlText;
1601
1621
 
1602
- 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 };