Member Junction
    Preparing search index...

    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.

    interface FormBuilderPayload {
        BuilderResult?: FormBuilderBuilderResult;
        DesignerAttemptCount?: number;
        EntitySchemaContext?: unknown;
        ExistingOverride?: FormBuilderExistingOverride;
        Intent?: FormBuilderIntent;
        Spec?: ComponentSpec;
    }
    Index

    Properties

    BuilderResult?: FormBuilderBuilderResult

    Filled by the Builder once persistence completes (success or fail).

    DesignerAttemptCount?: number

    Number 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.

    EntitySchemaContext?: unknown

    Optional: 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.

    ExistingOverride?: FormBuilderExistingOverride

    Existing 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.

    Filled by the Designer from the user request.

    The 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.