Register a hook
Register a hook from its flat parameters — an UPSERT, so this is the create path AND the edit path for a hook of that name.
Supports conditional execution (via condition or condition_id), payload
transformation (via expr or expr_id), and dynamic tool arguments.
execution_key is the api-key identity every fire runs as; the caller’s authority
to delegate it and its usability by a tokenless fire are decided BEFORE the upsert, so
a refusal stores nothing and leaves any existing hook of that name untouched. Returns
{"registered", "name"}; registered is True for a create and a replace
alike.
Authorizations
Body
The client-facing register-a-hook request body: the fields a caller supplies.
execution_key_fingerprint is server-derived at bind and deliberately absent
here; :class:HookParams is this shape plus that one stored field.
The api-key user_id the hook fires as; its live stored grants authorize every tool call the fire makes.
1111Response
Success.

