PatchAgentPlanInput
No description
input PatchAgentPlanInput {
planId: ID!
slot: String!
value: Mixed
asOverride: Boolean
}
Fields
PatchAgentPlanInput.planId ● ID! non-null scalar
The id of the plan to patch. Productable scoping enforces tenant isolation — a cross-product id raises a not-found error.
PatchAgentPlanInput.slot ● String! non-null scalar
Slot name to write. For commit 1 only top-level slot names are
supported (e.g. "audience", "launch_at"). Nested-path syntax
(actions[<uuid>].email) lands alongside the free-form patch
classifier in a later commit.
PatchAgentPlanInput.value ● Mixed scalar
The value to write. Validated server-side via the plan's per-slot
validator before the revision is written. Mixed (not JSON) so the
field passes PHP-native values through untouched — slot values are
polymorphic (string for name, list for actions, object for
settings) and the per-slot validators on the plan DTOs already
enforce the shape rules.
Nullable so callers can clear optional slots (e.g. setting
description back to null). The per-slot validator rejects null
for slots where it isn't valid (e.g. required slots like name)
with a required error code — null-vs-not is a per-slot decision,
not a wire-layer one.
PatchAgentPlanInput.asOverride ● Boolean scalar
If true, the slot is marked USER_OVERRIDDEN rather than RESOLVED — the agent loop re-dispatches any sub-agent that depends on it. Defaults to false (the more common "user is answering a question the agent asked" flow, which is a fresh resolve).
Member Of
patchAgentPlan mutation


