evals
scenario-1
scenario-10
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
{
"context": "Evaluates how well the solution uses JupyterLab's integrated debugger service to gate unsupported kernels, manage breakpoints, drive step controls, and surface scoped values for the active document. Scoring rewards direct use of @jupyterlab/debugger APIs rather than custom debugging logic.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Session gating",
"description": "Ties controls to an IDebugger/DebuggerService instance for the session context, checks isAvailable before calling start(), and returns the service error state when debugging is unsupported.",
"max_score": 20
},
{
"name": "Breakpoint toggle",
"description": "Toggles breakpoints through the debugger API (setBreakpoints/removeBreakpoint or model.breakpoints.setBreakpoints) using the provided source path and line, and reports active totals from the debugger model instead of manual bookkeeping.",
"max_score": 25
},
{
"name": "Step commands",
"description": "Maps 'into'/'over'/'out' to the debugger's stepIn/stepOver/stepOut calls and returns refreshed frames from model.callstack.frames with the new selected location.",
"max_score": 25
},
{
"name": "Variable inspect",
"description": "Fetches variable previews via the debugger (evaluate on the selected frame or model.variables data) to return type and repr strings, and yields null for missing symbols.",
"max_score": 20
},
{
"name": "Cleanup",
"description": "Uses debugger stop()/dispose() (and removes listeners) when controls are disposed or the session ends, relying on package teardown instead of custom clean up.",
"max_score": 10
}
]
}