ProtectedInternalInternal method that must be implemented by derived action classes. This is where the actual action logic should be implemented.
The action execution parameters including typed context
Promise resolving to the action result
Executes the action with the provided parameters.
The action execution parameters including context
Promise resolving to the action result
Modify an existing interactive-form override.
Behavior is driven by the
VersionBumpKindinput and the source Override's status (Override is the canonical "is this live" signal — Component.Status can drift independently):in-place(default)patch/minor/majorin-placeINVALID_BUMP_FOR_STATUS.patch/minor(default) /majorin-placepatch(default) /minor/majorDefaults preserve historical behavior: omit
VersionBumpKindand Pending sources stay in-place, Active sources bump minor, Inactive sources bump patch (the conservative branch-from-historical case).Security clamp. Modify always writes a User-scope Pending Override, regardless of the original override's scope. Even if the caller is modifying a Role-scope or Global override (which they have permission to read because they pass the ownership check), the new Pending sibling is always User-scoped to the calling user. Scope promotion (User → Role → Global) is a separate, deliberate human action with its own permission gate in Component Studio / Form Builder. The agent cannot widen scope through Modify any more than through Create.
Ownership check. The caller must own (or have role membership for, or be admin over) the existing override they're modifying. See
checkOverrideOwnershipin_shared.ts. Returns FORBIDDEN if rejected.Inputs:
OverrideID(required, string) — the override to modifySpec(required, ComponentSpec | string) — the new form specNotes(optional, string) — appended to the override's Notes columnVersionBumpKind(optional, 'in-place' | 'patch' | 'minor' | 'major') — see table aboveOutputs:
ComponentID— the Component row that now holds the spec (new for snapshots, same for in-place)OverrideID— the Override row that points at itMode— 'in-place' or 'new-version'Version— the Component's resulting Version string