Running coding agents as a constrained, observable runtime instead of a chat