Move the notebook pieces that aren't specific to the Explorer tab into
Explorer/Notebook/, so another surface can render and run a notebook
without copying the tab:
- useRunNotebook: the run-all flow, including the confirmation for cells
that write to data or schema
- RunNotebookConfirmationModal and RunNotebookButton
- QueryCellEditor: a query cell wired to QueryEditor, with every cell edit
routed through onCellChange so the caller decides where it's stored
- notebook.utils: findQueryCellsMatchingSql, isMutatingSql,
getAnalyzeNotebookChat and NOTEBOOK_CELL_WIDTH (tests moved with them)
ExplorerNotebookTab and QueryCell now build on these. No behavior change.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>