Install from pypi
$ pip install dialoghelperDocumentation can be found hosted on this GitHub repository’s pages.
In a gateway kernel, dialoghelper reaches rustygate through a rustygate comm, so it needs no URL or token. Outside one, it sends plain HTTP to RUSTYGATE_URL. Current-session reads, edits and execution use dh_settings['kid'], initialized from RUSTYGATE_KERNEL_ID. The gateway owns the notebook binding, and renames and restarts keep the kernel id. When the gateway renames the notebook, it tells the kernel, which updates its cwd and dh_settings['path']. find_dname() returns the notebook’s current name. Explicit dname arguments name notebooks by path.
Dialog names include .ipynb; find_dname adds it to an input that lacks it, and a trailing slash names a folder instead. Inputs such as lesson.ipynb resolve relative to the current dialog’s folder. A leading slash, as in /project/lesson.ipynb, addresses the gateway root rather than the disk root. find_dname returns gateway-root-relative filenames without a leading slash. list_dialogs retains notebook extensions and marks folders with a trailing slash.
realpath() returns the gateway’s on-disk root. realpath('') and list_dialogs() default to the current notebook’s folder. Relative subpaths use that folder even after a notebook rename, not the kernel’s mutable cwd. A leading slash uses the gateway root. realpath accepts prospective paths without creating them, and works them out in the kernel without a gateway call. .. can move up within the root, and a path that resolves outside it raises ValueError. Notebook-relative paths require a bound kernel.
Solveit activates pyskills from the dialog’s opening folder before loading its tool layer. Put a public .py module or package in a _pyskills/ directory there or in an ancestor. Give it a module docstring. list_pyskills() discovers it and ordinary imports load it without an install or entry-point declaration. The nearest local folder wins. Changing cwd or moving a live dialog does not change the selected scope; restart its kernel to use the new location. Function permissions remain separate from discovery.
With the dev extra installed, run pytest -q from the repository root. The integration checks execute a copied Python module in a disposable notebook-bound gateway kernel. They need no Solveit, browser or model access, and do not change existing dialogs or kernels. The source notebooks contain the API explanations and examples.