or run

npx @tessl/cli init
Log in

Version

Files

tile.json

rubric.jsonevals/scenario-8/

{
  "context": "Evaluates how well the solution uses JupyterLab APIs to create a scratch code console that shares a notebook's kernel, executes code with ordered prompts, and cleans up without disrupting the notebook session. It focuses on session reuse, console construction, execution handling, prompt tracking, and lifecycle management.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Shared session",
      "description": "Links the console to the notebook by reusing NotebookPanel.sessionContext (or the current INotebookTracker sessionContext) instead of starting a fresh kernel.",
      "max_score": 30
    },
    {
      "name": "Console creation",
      "description": "Builds the UI with JupyterLab console classes (ConsolePanel/CodeConsole from @jupyterlab/console plus required rendermime/mimeType services) rather than custom widgets.",
      "max_score": 20
    },
    {
      "name": "Execution capture",
      "description": "Runs submitted code via CodeConsole.execute (or ConsolePanel.console.execute) and gathers outputs from the execution future/output area for each prompt.",
      "max_score": 20
    },
    {
      "name": "Prompt logging",
      "description": "Reads prompt numbers from the console model (e.g., promptCell.model.executionCount) and records them in chronological history returned by the helper.",
      "max_score": 15
    },
    {
      "name": "Dispose handling",
      "description": "Disposes the console using JupyterLab lifecycle methods (ConsolePanel.dispose and/or sessionContext disposal when appropriate), stops accepting new runs after disposal, and leaves the notebook kernel active.",
      "max_score": 15
    }
  ]
}