gradeNot graded
jupyter_get_contextAnswer
Read the live state of the browser-local Jupyter workspace: the open documents, the current notebook (including whether it has unsaved changes), the kernel status, the active and selected cells, the cursor, and the exact text the user currently has selected. Call this first; the selection is how the user points at something when they say "this".
View tool JSON
{
"name": "jupyter_get_context",
"kind": "answer",
"impl": "imperative",
"description": "Read the live state of the browser-local Jupyter workspace: the open documents, the current notebook (including whether it has unsaved changes), the kernel status, the active and selected cells, the cursor, and the exact text the user currently has selected. Call this first; the selection is how the user points at something when they say \"this\".",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/lab/index.html?path=customer-analysis.ipynb"
}jupyter_list_workspaceAction
List files and directories in the browser-local workspace. Returns names, paths, types, sizes and modification times, never file contents. Use it to find a notebook before opening it.
View tool JSON
{
"name": "jupyter_list_workspace",
"kind": "act",
"impl": "imperative",
"description": "List files and directories in the browser-local workspace. Returns names, paths, types, sizes and modification times, never file contents. Use it to find a notebook before opening it.",
"inputSchema": {
"type": "object",
"properties": {
"path": {
"type": [
"string",
"null"
],
"description": "Directory to list, relative to the workspace root."
},
"recursive": {
"type": "boolean",
"default": false,
"description": "Descend into subdirectories."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 100,
"description": "Maximum number of entries to return."
}
},
"additionalProperties": false
},
"page": "/lab/index.html?path=customer-analysis.ipynb"
}jupyter_open_notebookAction
Open a notebook from the workspace and bring it to the front, optionally scrolling to a specific cell. This visibly changes what the user is looking at.
View tool JSON
{
"name": "jupyter_open_notebook",
"kind": "act",
"impl": "imperative",
"description": "Open a notebook from the workspace and bring it to the front, optionally scrolling to a specific cell. This visibly changes what the user is looking at.",
"inputSchema": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "Workspace-relative path of the notebook to open."
},
"cellId": {
"type": [
"string",
"null"
],
"description": "Optional cell to activate and scroll to once open."
},
"activate": {
"type": "boolean",
"default": true,
"description": "Bring the notebook to the front of the user interface."
}
},
"required": [
"path"
],
"additionalProperties": false
},
"page": "/lab/index.html?path=customer-analysis.ipynb"
}jupyter_create_notebookAction
Create a new, empty notebook in the browser-local workspace and open it. Refuses to overwrite an existing file.
View tool JSON
{
"name": "jupyter_create_notebook",
"kind": "act",
"impl": "imperative",
"description": "Create a new, empty notebook in the browser-local workspace and open it. Refuses to overwrite an existing file.",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "File name, with or without the .ipynb extension."
},
"directory": {
"type": [
"string",
"null"
],
"description": "Directory to create it in. Defaults to the workspace root."
},
"kernel": {
"type": [
"string",
"null"
],
"description": "Kernel name or language, for example \"python\". Defaults to the application default."
}
},
"required": [
"name"
],
"additionalProperties": false
},
"page": "/lab/index.html?path=customer-analysis.ipynb"
}jupyter_get_cellsAnswer
Read cells from the live notebook model, including edits the user has not saved yet. Each cell comes back with its stable id and a sourceHash; you must pass that hash back to edit or delete the cell. Outputs are bounded and only included when asked for.
View tool JSON
{
"name": "jupyter_get_cells",
"kind": "answer",
"impl": "imperative",
"description": "Read cells from the live notebook model, including edits the user has not saved yet. Each cell comes back with its stable id and a sourceHash; you must pass that hash back to edit or delete the cell. Outputs are bounded and only included when asked for.",
"inputSchema": {
"type": "object",
"properties": {
"notebookPath": {
"type": [
"string",
"null"
],
"description": "Workspace-relative notebook path. Omit or pass null to use the notebook the user currently has open."
},
"cellIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Specific cells to read. Takes priority over the index range."
},
"startIndex": {
"type": "integer",
"minimum": 0,
"default": 0,
"description": "First cell index to read."
},
"endIndex": {
"type": "integer",
"minimum": 0,
"description": "Exclusive end index. Defaults to startIndex + 20."
},
"includeSource": {
"type": "boolean",
"default": true
},
"includeOutputs": {
"type": "boolean",
"default": false,
"description": "Include bounded, serialized cell outputs."
}
},
"additionalProperties": false
},
"page": "/lab/index.html?path=customer-analysis.ipynb"
}jupyter_get_cell_accessAnswer
Report what a connected agent may currently do with each cell (write, read, or none) plus its full provenance history, and how many cells in range are hidden entirely. The notebook owner controls this per cell from the cell context menu; there is no tool to change it. Use this to explain to the user why you are not touching a cell.
View tool JSON
{
"name": "jupyter_get_cell_access",
"kind": "answer",
"impl": "imperative",
"description": "Report what a connected agent may currently do with each cell (write, read, or none) plus its full provenance history, and how many cells in range are hidden entirely. The notebook owner controls this per cell from the cell context menu; there is no tool to change it. Use this to explain to the user why you are not touching a cell.",
"inputSchema": {
"type": "object",
"properties": {
"notebookPath": {
"type": [
"string",
"null"
],
"description": "Workspace-relative notebook path. Omit or pass null to use the notebook the user currently has open."
},
"cellIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Specific cells to report on. Takes priority over the index range."
},
"startIndex": {
"type": "integer",
"minimum": 0,
"default": 0,
"description": "First cell index to report on."
},
"endIndex": {
"type": "integer",
"minimum": 0,
"description": "Exclusive end index. Defaults to startIndex + 20."
}
},
"additionalProperties": false
},
"page": "/lab/index.html?path=customer-analysis.ipynb"
}jupyter_insert_cellAction
Insert a new cell into the live notebook, above or below a reference cell. The cell is visible to the user immediately. It is not executed: run it with jupyter_run_cells as a separate, explicit step.
View tool JSON
{
"name": "jupyter_insert_cell",
"kind": "act",
"impl": "imperative",
"description": "Insert a new cell into the live notebook, above or below a reference cell. The cell is visible to the user immediately. It is not executed: run it with jupyter_run_cells as a separate, explicit step.",
"inputSchema": {
"type": "object",
"properties": {
"notebookPath": {
"type": [
"string",
"null"
],
"description": "Workspace-relative notebook path. Omit or pass null to use the notebook the user currently has open."
},
"referenceCellId": {
"type": [
"string",
"null"
],
"description": "Cell to insert relative to. Defaults to the active cell."
},
"position": {
"type": "string",
"enum": [
"above",
"below"
],
"default": "below"
},
"cellType": {
"type": "string",
"enum": [
"code",
"markdown",
"raw"
],
"default": "code"
},
"source": {
"type": "string",
"default": ""
},
"activate": {
"type": "boolean",
"default": true,
"description": "Select the new cell and scroll it into view."
}
},
"additionalProperties": false
},
"page": "/lab/index.html?path=customer-analysis.ipynb"
}jupyter_update_cellAction
Replace the source of a visible notebook cell in the live model. Requires the sourceHash returned by a previous read, so an unsaved human edit can never be overwritten by accident: if the cell changed, the write is refused with a STALE_CELL error containing the current hash and a preview. Does not run or save the cell. When the human has switched the notebook to Propose mode, this call does not apply immediately: it stages a reviewable diff in the notebook UI and waits for the human; it does not resolve until they accept (applied, same as Direct mode) or deny it (a normal, non-error result carrying their reason, coded PROPOSAL_DENIED), or the call is aborted. It is auto-denied the same way, with a reason, if the cell is deleted or the notebook is closed or renamed first.
View tool JSON
{
"name": "jupyter_update_cell",
"kind": "act",
"impl": "imperative",
"description": "Replace the source of a visible notebook cell in the live model. Requires the sourceHash returned by a previous read, so an unsaved human edit can never be overwritten by accident: if the cell changed, the write is refused with a STALE_CELL error containing the current hash and a preview. Does not run or save the cell. When the human has switched the notebook to Propose mode, this call does not apply immediately: it stages a reviewable diff in the notebook UI and waits for the human; it does not resolve until they accept (applied, same as Direct mode) or deny it (a normal, non-error result carrying their reason, coded PROPOSAL_DENIED), or the call is aborted. It is auto-denied the same way, with a reason, if the cell is deleted or the notebook is closed or renamed first.",
"inputSchema": {
"type": "object",
"properties": {
"notebookPath": {
"type": [
"string",
"null"
],
"description": "Workspace-relative notebook path. Omit or pass null to use the notebook the user currently has open."
},
"cellId": {
"type": "string"
},
"source": {
"type": "string",
"description": "The complete replacement source."
},
"expectedSourceHash": {
"type": "string",
"description": "sourceHash from a previous read of this cell. The write is refused with STALE_CELL if the cell changed since then."
}
},
"required": [
"cellId",
"source",
"expectedSourceHash"
],
"additionalProperties": false
},
"page": "/lab/index.html?path=customer-analysis.ipynb"
}jupyter_delete_cellSensitive Action
Delete a visible notebook cell. Requires the sourceHash from a previous read; a cell the user has edited since then is not deleted.
View tool JSON
{
"name": "jupyter_delete_cell",
"kind": "transact",
"impl": "imperative",
"description": "Delete a visible notebook cell. Requires the sourceHash from a previous read; a cell the user has edited since then is not deleted.",
"inputSchema": {
"type": "object",
"properties": {
"notebookPath": {
"type": [
"string",
"null"
],
"description": "Workspace-relative notebook path. Omit or pass null to use the notebook the user currently has open."
},
"cellId": {
"type": "string"
},
"expectedSourceHash": {
"type": "string",
"description": "sourceHash from a previous read of this cell."
}
},
"required": [
"cellId",
"expectedSourceHash"
],
"additionalProperties": false
},
"page": "/lab/index.html?path=customer-analysis.ipynb"
}jupyter_run_cellsAction
Execute cells that already exist in the notebook, using the browser-local kernel the user shares. Select them with cellIds, or with an explicit contiguous startIndex/endIndex range; if no selector is given, the active cell runs. The user sees the busy state, the execution counts and the outputs. There is no way to run an arbitrary source string: to compute something new, insert a visible cell first and then run it.
View tool JSON
{
"name": "jupyter_run_cells",
"kind": "act",
"impl": "imperative",
"description": "Execute cells that already exist in the notebook, using the browser-local kernel the user shares. Select them with cellIds, or with an explicit contiguous startIndex/endIndex range; if no selector is given, the active cell runs. The user sees the busy state, the execution counts and the outputs. There is no way to run an arbitrary source string: to compute something new, insert a visible cell first and then run it.",
"inputSchema": {
"type": "object",
"properties": {
"notebookPath": {
"type": [
"string",
"null"
],
"description": "Workspace-relative notebook path. Omit or pass null to use the notebook the user currently has open."
},
"cellIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Cells to run, in order. They are mutually exclusive with startIndex/endIndex. Defaults to the active cell. Only cells that already exist in the notebook can be run."
},
"startIndex": {
"type": "integer",
"minimum": 0,
"description": "Inclusive first index of a contiguous range. Must be provided together with endIndex and is mutually exclusive with cellIds."
},
"endIndex": {
"type": "integer",
"minimum": 0,
"description": "Exclusive end index of a contiguous range. Must be provided together with startIndex; ranges are limited to 100 cells."
},
"stopOnError": {
"type": "boolean",
"default": true
}
},
"additionalProperties": false
},
"page": "/lab/index.html?path=customer-analysis.ipynb"
}jupyter_focus_cellAction
Scroll to a cell, select it, and optionally place the cursor or select an exact range of its source using the notebook editor’s own selection. Use it to point the user at the code you are talking about. Changes only what is on screen.
View tool JSON
{
"name": "jupyter_focus_cell",
"kind": "act",
"impl": "imperative",
"description": "Scroll to a cell, select it, and optionally place the cursor or select an exact range of its source using the notebook editor’s own selection. Use it to point the user at the code you are talking about. Changes only what is on screen.",
"inputSchema": {
"type": "object",
"properties": {
"notebookPath": {
"type": [
"string",
"null"
],
"description": "Workspace-relative notebook path. Omit or pass null to use the notebook the user currently has open."
},
"cellId": {
"type": "string"
},
"cursor": {
"type": "object",
"properties": {
"line": {
"type": "integer",
"minimum": 0,
"description": "Zero-based line."
},
"column": {
"type": "integer",
"minimum": 0,
"description": "Zero-based column."
}
},
"required": [
"line",
"column"
],
"additionalProperties": false
},
"selection": {
"type": "object",
"properties": {
"start": {
"type": "object",
"properties": {
"line": {
"type": "integer",
"minimum": 0,
"description": "Zero-based line."
},
"column": {
"type": "integer",
"minimum": 0,
"description": "Zero-based column."
}
},
"required": [
"line",
"column"
],
"additionalProperties": false
},
"end": {
"type": "object",
"properties": {
"line": {
"type": "integer",
"minimum": 0,
"description": "Zero-based line."
},
"column": {
"type": "integer",
"minimum": 0,
"description": "Zero-based column."
}
},
"required": [
"line",
"column"
],
"additionalProperties": false
}
},
"required": [
"start",
"end"
],
"additionalProperties": false
}
},
"required": [
"cellId"
],
"additionalProperties": false
},
"page": "/lab/index.html?path=customer-analysis.ipynb"
}jupyter_save_notebookAction
Save the notebook to the browser-local workspace. The live in-memory model is authoritative, so this is only needed when the user wants the file on disk updated.
View tool JSON
{
"name": "jupyter_save_notebook",
"kind": "act",
"impl": "imperative",
"description": "Save the notebook to the browser-local workspace. The live in-memory model is authoritative, so this is only needed when the user wants the file on disk updated.",
"inputSchema": {
"type": "object",
"properties": {
"notebookPath": {
"type": [
"string",
"null"
],
"description": "Workspace-relative notebook path. Omit or pass null to use the notebook the user currently has open."
}
},
"additionalProperties": false
},
"page": "/lab/index.html?path=customer-analysis.ipynb"
}jupyter_kernel_actionAction
Interrupt or restart the browser-local kernel for a notebook. The kernel is shared with the user, so an interrupt also stops anything they started. Restarting discards every in-memory variable.
View tool JSON
{
"name": "jupyter_kernel_action",
"kind": "act",
"impl": "imperative",
"description": "Interrupt or restart the browser-local kernel for a notebook. The kernel is shared with the user, so an interrupt also stops anything they started. Restarting discards every in-memory variable.",
"inputSchema": {
"type": "object",
"properties": {
"notebookPath": {
"type": [
"string",
"null"
],
"description": "Workspace-relative notebook path. Omit or pass null to use the notebook the user currently has open."
},
"action": {
"type": "string",
"enum": [
"interrupt",
"restart"
]
}
},
"required": [
"action"
],
"additionalProperties": false
},
"page": "/lab/index.html?path=customer-analysis.ipynb"
}jupyter_list_commentsAction
List the review threads stored in a notebook. Threads are an ordinary notebook feature the user can also create, reply to and resolve by hand; they are saved in the notebook file. Each summary says whether the thread still points at live code or has become orphaned.
View tool JSON
{
"name": "jupyter_list_comments",
"kind": "act",
"impl": "imperative",
"description": "List the review threads stored in a notebook. Threads are an ordinary notebook feature the user can also create, reply to and resolve by hand; they are saved in the notebook file. Each summary says whether the thread still points at live code or has become orphaned.",
"inputSchema": {
"type": "object",
"properties": {
"notebookPath": {
"type": [
"string",
"null"
],
"description": "Workspace-relative notebook path. Omit or pass null to use the notebook the user currently has open."
},
"status": {
"type": "string",
"enum": [
"open",
"resolved",
"all"
],
"default": "open"
},
"scope": {
"type": "string",
"enum": [
"notebook",
"current-cell"
],
"default": "notebook"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 50
}
},
"additionalProperties": false
},
"page": "/lab/index.html?path=customer-analysis.ipynb"
}jupyter_get_commentAction
Read one review thread: its messages (the first and the most recent when long), the anchor, whether the anchor still resolves, and the code or output it is attached to as it exists now.
View tool JSON
{
"name": "jupyter_get_comment",
"kind": "act",
"impl": "imperative",
"description": "Read one review thread: its messages (the first and the most recent when long), the anchor, whether the anchor still resolves, and the code or output it is attached to as it exists now.",
"inputSchema": {
"type": "object",
"properties": {
"notebookPath": {
"type": [
"string",
"null"
],
"description": "Workspace-relative notebook path. Omit or pass null to use the notebook the user currently has open."
},
"threadId": {
"type": "string"
}
},
"required": [
"threadId"
],
"additionalProperties": false
},
"page": "/lab/index.html?path=customer-analysis.ipynb"
}jupyter_create_commentAction
Create a review thread anchored to a whole cell, to an exact range of a cell’s source, or to one of a cell’s outputs. This is the same kind of comment the user creates from the Comments tab of the Agent panel, so use it to leave observations without editing their notebook.
View tool JSON
{
"name": "jupyter_create_comment",
"kind": "act",
"impl": "imperative",
"description": "Create a review thread anchored to a whole cell, to an exact range of a cell’s source, or to one of a cell’s outputs. This is the same kind of comment the user creates from the Comments tab of the Agent panel, so use it to leave observations without editing their notebook.",
"inputSchema": {
"type": "object",
"properties": {
"notebookPath": {
"type": [
"string",
"null"
],
"description": "Workspace-relative notebook path. Omit or pass null to use the notebook the user currently has open."
},
"anchor": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"cell",
"source-range",
"output"
]
},
"cellId": {
"type": "string"
},
"selection": {
"type": "object",
"properties": {
"start": {
"type": "object",
"properties": {
"line": {
"type": "integer",
"minimum": 0,
"description": "Zero-based line."
},
"column": {
"type": "integer",
"minimum": 0,
"description": "Zero-based column."
}
},
"required": [
"line",
"column"
],
"additionalProperties": false
},
"end": {
"type": "object",
"properties": {
"line": {
"type": "integer",
"minimum": 0,
"description": "Zero-based line."
},
"column": {
"type": "integer",
"minimum": 0,
"description": "Zero-based column."
}
},
"required": [
"line",
"column"
],
"additionalProperties": false
}
},
"required": [
"start",
"end"
],
"additionalProperties": false
},
"text": {
"type": "string",
"description": "For a source-range anchor: the exact substring of the cell source to attach to. Simpler and more robust than line/column coordinates."
},
"outputIndex": {
"type": "integer",
"minimum": 0,
"description": "For an output anchor: which output of the cell."
}
},
"required": [
"kind",
"cellId"
],
"additionalProperties": false
},
"message": {
"type": "string"
}
},
"required": [
"anchor",
"message"
],
"additionalProperties": false
},
"page": "/lab/index.html?path=customer-analysis.ipynb"
}jupyter_reply_commentAction
Append a message to an existing review thread. The user sees it in the Comments tab of the Agent panel next to their own messages.
View tool JSON
{
"name": "jupyter_reply_comment",
"kind": "act",
"impl": "imperative",
"description": "Append a message to an existing review thread. The user sees it in the Comments tab of the Agent panel next to their own messages.",
"inputSchema": {
"type": "object",
"properties": {
"notebookPath": {
"type": [
"string",
"null"
],
"description": "Workspace-relative notebook path. Omit or pass null to use the notebook the user currently has open."
},
"threadId": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"threadId",
"message"
],
"additionalProperties": false
},
"page": "/lab/index.html?path=customer-analysis.ipynb"
}jupyter_resolve_commentAction
Mark a review thread resolved, optionally adding a closing message. The history is preserved and the user can reopen it.
View tool JSON
{
"name": "jupyter_resolve_comment",
"kind": "act",
"impl": "imperative",
"description": "Mark a review thread resolved, optionally adding a closing message. The history is preserved and the user can reopen it.",
"inputSchema": {
"type": "object",
"properties": {
"notebookPath": {
"type": [
"string",
"null"
],
"description": "Workspace-relative notebook path. Omit or pass null to use the notebook the user currently has open."
},
"threadId": {
"type": "string"
},
"resolutionMessage": {
"type": [
"string",
"null"
]
}
},
"required": [
"threadId"
],
"additionalProperties": false
},
"page": "/lab/index.html?path=customer-analysis.ipynb"
}jupyter_reopen_commentAction
Reopen a resolved review thread, preserving its history.
View tool JSON
{
"name": "jupyter_reopen_comment",
"kind": "act",
"impl": "imperative",
"description": "Reopen a resolved review thread, preserving its history.",
"inputSchema": {
"type": "object",
"properties": {
"notebookPath": {
"type": [
"string",
"null"
],
"description": "Workspace-relative notebook path. Omit or pass null to use the notebook the user currently has open."
},
"threadId": {
"type": "string"
}
},
"required": [
"threadId"
],
"additionalProperties": false
},
"page": "/lab/index.html?path=customer-analysis.ipynb"
}jupyter_focus_commentAction
Scroll to what a review thread is attached to and select it, so the user can see exactly which code or output is under discussion. Changes only what is on screen.
View tool JSON
{
"name": "jupyter_focus_comment",
"kind": "act",
"impl": "imperative",
"description": "Scroll to what a review thread is attached to and select it, so the user can see exactly which code or output is under discussion. Changes only what is on screen.",
"inputSchema": {
"type": "object",
"properties": {
"notebookPath": {
"type": [
"string",
"null"
],
"description": "Workspace-relative notebook path. Omit or pass null to use the notebook the user currently has open."
},
"threadId": {
"type": "string"
}
},
"required": [
"threadId"
],
"additionalProperties": false
},
"page": "/lab/index.html?path=customer-analysis.ipynb"
}jupyter_export_notebookAction
Export the notebook as a portable markdown document: markdown cells verbatim, code cells as fenced code blocks, and (by default) their text and error outputs, with images represented only by a placeholder, never embedded. Use this to hand the notebook to another tool (upload it, email it, put it in a document) without a manual export.
View tool JSON
{
"name": "jupyter_export_notebook",
"kind": "act",
"impl": "imperative",
"description": "Export the notebook as a portable markdown document: markdown cells verbatim, code cells as fenced code blocks, and (by default) their text and error outputs, with images represented only by a placeholder, never embedded. Use this to hand the notebook to another tool (upload it, email it, put it in a document) without a manual export.",
"inputSchema": {
"type": "object",
"properties": {
"notebookPath": {
"type": [
"string",
"null"
],
"description": "Workspace-relative notebook path. Omit or pass null to use the notebook the user currently has open."
},
"format": {
"type": "string",
"enum": [
"markdown"
],
"default": "markdown",
"description": "Output document format. Only \"markdown\" exists today."
},
"includeOutputs": {
"type": "boolean",
"default": true,
"description": "Include bounded text/error outputs of code cells."
}
},
"additionalProperties": false
},
"page": "/lab/index.html?path=customer-analysis.ipynb"
}jupyter_get_output_selectionAnswer
Read the text the user last selected inside a rendered cell output, if any is currently recorded. Returns null when nothing is selected, the selection crossed cells or notebook chrome, or it no longer matches the output it was taken from.
View tool JSON
{
"name": "jupyter_get_output_selection",
"kind": "answer",
"impl": "imperative",
"description": "Read the text the user last selected inside a rendered cell output, if any is currently recorded. Returns null when nothing is selected, the selection crossed cells or notebook chrome, or it no longer matches the output it was taken from.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/lab/index.html?path=customer-analysis.ipynb"
}