const flowDefinitionSchema: ZodObject<{
gates: ZodOptional<ZodArray<ZodDiscriminatedUnion<[ZodObject<{
kind: ZodLiteral<"predicate">;
when: ZodType<Predicate, unknown, $ZodTypeInternals<Predicate, unknown>>;
inputs: ZodArray<ZodString>;
kind: ZodLiteral<"judge">;
rubric: ZodOptional<ZodString>;
inputSchema: ZodOptional<ZodRecord<ZodString, ZodUnknown>>;
nodes: ZodArray<ZodUnion<readonly [ZodObject<{
instructions: ZodOptional<ZodString>;
kind: ZodLiteral<"reply">;
next: ZodOptional<ZodUnion<readonly [ZodObject<..., ...>, ZodObject<..., ...>, ZodObject<..., ...>, ZodObject<..., ...>, ZodLiteral<...>]>>;
routes: ZodOptional<ZodArray<ZodObject<{
generate: ZodLiteral<true>;
instructions: ZodOptional<ZodString>;
kind: ZodLiteral<"reply">;
next: ZodOptional<ZodUnion<readonly [ZodObject<..., ...>, ZodObject<..., ...>, ZodObject<..., ...>, ZodObject<..., ...>, ZodLiteral<...>]>>;
routes: ZodOptional<ZodArray<ZodObject<{
ask: ZodOptional<ZodString>;
assign: ZodOptional<ZodRecord<ZodString, ZodString>>;
choices: ZodOptional<ZodArray<ZodObject<{
instructions: ZodOptional<ZodString>;
kind: ZodLiteral<"collect">;
maxTurns: ZodOptional<ZodNumber>;
next: ZodOptional<ZodUnion<readonly [ZodObject<..., ...>, ZodObject<..., ...>, ZodObject<..., ...>, ZodObject<..., ...>, ZodLiteral<...>]>>;
required: ZodOptional<ZodArray<ZodString>>;
resolvers: ZodOptional<ZodArray<ZodDiscriminatedUnion<[..., ..., ...], "kind">>>;
schema: ZodRecord<ZodString, ZodUnknown>;
verbatimFields: ZodOptional<ZodArray<ZodString>>;
approval: ZodOptional<ZodLiteral<true>>;
args: ZodOptional<ZodRecord<ZodString, ZodUnion<readonly [..., ..., ...]>>>;
bind: ZodOptional<ZodString>;
kind: ZodLiteral<"action">;
next: ZodOptional<ZodUnion<readonly [ZodObject<..., ...>, ZodObject<..., ...>, ZodObject<..., ...>, ZodObject<..., ...>, ZodLiteral<...>]>>;
routes: ZodOptional<ZodArray<ZodObject<{
choices: ZodOptional<ZodArray<ZodObject<{
confirmGate: ZodOptional<ZodObject<{
onAmbiguous: ZodOptional<...>;
onConfirm: ZodUnion<...>;
onDecline: ZodUnion<...>;
instructions: ZodOptional<ZodString>;
kind: ZodLiteral<"decide">;
otherwise: ZodOptional<ZodUnion<readonly [ZodObject<..., ...>, ZodObject<..., ...>, ZodObject<..., ...>, ZodObject<..., ...>, ZodLiteral<...>]>>;
routes: ZodOptional<ZodArray<ZodObject<{
schema: ZodOptional<ZodRecord<ZodString, ZodUnknown>>;
outputSchema: ZodOptional<ZodRecord<ZodString, ZodUnknown>>;