Jupyter Agents: training LLMs to reason with notebooks