Parse a durable-agent approval suspend payload — a PER-STEP payload, already
unwrapped from RunSummary.suspendPayload's step-keyed map — into its tool-call
identity, reading both supported shapes: the nested requireToolApproval object
when present, else the FLAT top-level fields.
Returns undefined for any payload that is NOT an agent tool-call gate: a
non-object, a non-'approval' type, or a workflow-step gate that names no
tool (it declares its own connectors instead — the caller keeps its
existing handling for those). Fail-closed: a payload naming no tool at all
yields undefined so agentGateConnectors() invents no grant.
Parse a durable-agent approval suspend payload — a PER-STEP payload, already unwrapped from RunSummary.suspendPayload's step-keyed map — into its tool-call identity, reading both supported shapes: the nested
requireToolApprovalobject when present, else the FLAT top-level fields.Returns undefined for any payload that is NOT an agent tool-call gate: a non-object, a non-'approval'
type, or a workflow-step gate that names no tool (it declares its ownconnectorsinstead — the caller keeps its existing handling for those). Fail-closed: a payload naming no tool at all yields undefined so agentGateConnectors() invents no grant.