OptionalBuilderFilled by the Builder once persistence completes (success or fail).
OptionalDesignerNumber of times the orchestrator has routed to the Designer
sub-agent in this run. Incremented by FormBuilderAgent.determineNextStep
before each Designer call. Caps at MAX_DESIGNER_ATTEMPTS (3) — past
that, the orchestrator terminates the run with Failed instead of
looping. Protects against scenarios where the Designer sub-agent
itself fails to start (e.g. prompt-template render error) and the
"no Designer output → call Designer" intercept would otherwise spin
forever.
OptionalEntityOptional: pre-fetched curated schema for the target entity. The
Designer typically pulls this via Get Entity Schema For Form
(read-only action) and stores it here so the Builder can lint-check
field references.
OptionalExistingExisting override identity — passed in by the cockpit via
callerContext (recommended) OR resolved by the Builder via lookup.
Optional when the Designer is asked to author a brand-new form.
OptionalIntentFilled by the Designer from the user request.
OptionalSpecThe final ComponentSpec the Builder should persist. Designer emits
this as a fully-formed object with componentRole: 'form' set, the
function name matching Spec.name, libraries declared, etc.
The full payload carried between Designer and Builder.
The Designer's job is to produce
Intent+Spec. Everything else is either input from the cockpit's app context or output from the Builder.