Readonly[Brand identifying this object as a BaseNode (see isBaseNode).
Readonly[Brand identifying this object as a Workflow (see isWorkflow).
ReadonlydescriptionOptional ReadonlydynamicOptional ReadonlygraphOptional ReadonlyinputOptional ReadonlyisolationOptional ReadonlymaxReadonlynameOptional ReadonlyoutputOptional ReadonlypreparedThe retry config with its exception filter normalized once, up front (see prepareRetryConfig). Used by the node runner so the retry hot path never re-normalizes or throws on a malformed config mid-retry.
ReadonlyrerunOptional ReadonlyretryOptional ReadonlystateOptional ReadonlytimeoutReadonlywaitWhether this node must wait for ALL of its predecessors to trigger before
it runs (fan-in barrier). Overridden by JoinNode.
Runs the node, normalizing every yielded item into an Event. This
is what the engine (and ctx.runNode()) consumes. Validates the input
against inputSchema once, up front (skipping genai Content, which nodes
coerce themselves).
ProtectedrunCore execution contract. Subclasses yield one of:
output is that value),null/undefined (skipped).ProtectedtoNormalizes a single yielded item into an Event (or null to skip).
Subclasses may override for richer coercion (e.g. FunctionNode).
ProtectedvalidateValidates node input against inputSchema (Content passes through). Only
enforced for Zod schemas; a genai Schema is left unvalidated (see
parseWithSchema).
ProtectedvalidateValidates node output against outputSchema (Content passes through). Only
enforced for Zod schemas; a genai Schema is left unvalidated (see
parseWithSchema).
A graph-based workflow node.
runImpl()IS the orchestration loop: SETUP (seed START triggers) → LOOP (schedule ready nodes, handle completions) → FINALIZE (collect the terminal output).Ported (Phase 2 subset) from
google/adk-pythonworkflow/_workflow.py. Replay/checkpointing, dynamic scheduling, and task/chat isolation scopes are added in later phases; hook points are marked with TODO(phase-N).