start of ANOTHER ONE langgraph

This commit is contained in:
lda
2026-08-30 06:49:31 +07:00 Verified
parent db1c344e0f
commit acec75cf7e
8 changed files with 874 additions and 90 deletions
+45
View File
@@ -0,0 +1,45 @@
from typing import Literal
from langchain.tools import tool
from ipython_demo import App
from ipython_demo.models import CallOptions, CallResponse, ShellInfo
app = App() # global, again
# should be similar to mcp/webapp.
@tool
def run_code(
code: str,
shell_name: str | Literal["last", "new"] = "last",
options: CallOptions | None = None,
) -> CallResponse:
"""Run code in a named shell and return a frontend-facing call response.
use shell_name="new" to create a new shell, or shell_name="last" to use the most recently selected shell. Otherwise, use an existing shell name to run code in that shell.
"""
return app.run_code(code, shell_name, options=options)
@tool
def list_shells() -> list[ShellInfo]:
"""Return frontend-safe metadata for all known shells."""
return app.list_shells()
@tool
def get_shell(shell_name: str | Literal["last"]) -> ShellInfo:
"""Return frontend-safe metadata for a single shell."""
return app.get_last_shell() if shell_name == "last" else app.get_shell(shell_name)
@tool
def create_shell() -> ShellInfo:
"""Create a fresh named shell and return its metadata."""
return app.create_shell()
@tool
def get_last_shell() -> ShellInfo:
"""
Return metadata for the most recently selected shell.
get_shell('last') is equivalent, but this is a more explicit name.
"""
return app.get_last_shell()