Repository navigation
Add a single-language Jupyter kernel with a Python transport - #190
Draft
t-kalinowski wants to merge 2 commits into
Draft
t-kalinowski wants to merge 2 commits into
t-kalinowski wants to merge 2 commits into
Conversation
Keep Jupyter transport in an optional Python environment while reusing the integrator execution lifecycle, preparation, sandboxing, and recordings. Expose typed output and execution outcomes, managed stdin, pinned interrupts, and process-owned retirement through a private native controller transport. Cover standard execution, state, output, errors, stdin, interruption, restart, reconnect, and cleanup through the public Jupyter interface.
Describe the independent transport Python environment and standard session requests. Provide a runnable harness for unmodified Kallichore covering execution, input, preparation, sandboxing, reconnection, and process cleanup.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Expose Console's R, Python, and SQL sessions as standard Jupyter kernels so unmodified Kallichore can launch them and execute ordinary source.
Adds
mcp-console kernel --language {r,python,sql} --connection-file PATH --config-file PATH. Each process accepts one source language, submits code unchanged, and retains objects across executions and frontend reconnects. Standard Jupyter messages carry streams, images, results, structured errors, managed stdin, interrupts, and shutdown. Execution remains active until Console finishes; the control channel stays responsive during preparation and execution. Restart retires the old process and starts from launch configuration.The embedded Python transport uses
jupyter_clientandpyzmq, installed through the optionalmcp-console[jupyter]extra and selected with--jupyter-python. It starts one native controller over private JSONL pipes. The controller reuses Console's preparation, execution, sandbox, interruption, and recording owners. Internal worker events now distinguish language errors and expression results from ordinary text. Both transport and controller remain outside the workload sandbox.Cargo.tomlandCargo.lockare unchanged, and existing MCP entry points remain available.Includes launch documentation, ordinary REST request examples, and runnable direct-Jupyter and Kallichore integration harnesses covering state, output, errors, stdin, interruption, reconnect, restart, cleanup, package preparation, and sandbox behavior. Completion and inspection return minimal responses; there are no per-request language or requirements fields, LSP, debugger, or Positron extensions. Kallichore's existing REST/MCP execution collector disables stdin; interactive input uses its existing channel interface.
Based on #185 and targets
feat/integrator-control, so this diff contains only the additional controller support and Jupyter adapter.