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 leverages JupyterLab's workspace REST interface to capture, clone, and share layouts using the official client utilities. Emphasizes correct use of built-in connection helpers, workspace endpoints, and routing needed to persist and reopen layouts.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Workspace fetch",
"description": "Retrieves layouts through JupyterLab's workspace API (`GET /lab/api/workspaces/:id`) using the provided base URL/token via `@jupyterlab/services` helpers such as `ServerConnection.makeSettings` with `ServerConnection.makeRequest` or `WorkspaceManager.fetch`.",
"max_score": 25
},
{
"name": "Snapshot payload",
"description": "Persists the API response shape directly (top-level `id` plus nested layout `data`) rather than inventing a schema, confirming reliance on the workspace payload returned by JupyterLab.",
"max_score": 20
},
{
"name": "Restore via PUT",
"description": "Applies snapshots back to the server using the official `PUT /lab/api/workspaces/:id` route with the same auth-aware settings (`ServerConnection.makeRequest` or `WorkspaceManager.save`) instead of ad-hoc file copies.",
"max_score": 25
},
{
"name": "Clone id handling",
"description": "When targeting a new workspace id, updates the payload's `id` before issuing the PUT so the cloned layout is saved under the new identifier recognized by JupyterLab.",
"max_score": 15
},
{
"name": "Shareable link",
"description": "Builds a workspace URL using JupyterLab's routing (`<baseUrl>/lab/workspaces/<id>`) and package utilities like `PageConfig.getBaseUrl()` or ServerConnection settings rather than hardcoding hosts.",
"max_score": 15
}
]
}