or run

npx @tessl/cli init
Log in

Version

Files

docs

index-management.mdindex.mdlisting.mdreading.mdremoval.mdutilities.mdverification.mdwriting.md
tile.json

rubric.jsonevals/scenario-1/

{
  "context": "Evaluates whether the solution uses cacache's streaming read APIs to expose metadata, integrity, and size information while enforcing integrity expectations for key-based cache reads.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Stream API",
      "description": "Streams cached content using cacache.get.stream (or get.stream.byDigest when using an integrity directly) instead of loading data with get, ensuring the response is a readable stream.",
      "max_score": 25
    },
    {
      "name": "Metadata event",
      "description": "Attaches a listener to the metadata event emitted by the cacache get.stream result and forwards the full entry info to the consumer callback exactly once.",
      "max_score": 20
    },
    {
      "name": "Integrity event",
      "description": "Listens for the integrity event from the stream and surfaces the SRI string to callers (e.g., via the integrity callback) when it fires.",
      "max_score": 20
    },
    {
      "name": "Size event",
      "description": "Subscribes to the size event on the cacache stream and publishes the byte length through the exposed callback without waiting for the full payload.",
      "max_score": 15
    },
    {
      "name": "Integrity enforcement",
      "description": "Uses cacache.get.stream options (integrity/size) or compares the emitted integrity event to an expected value and rejects with the resulting EINTEGRITY/EBADSIZE style error on mismatch.",
      "max_score": 10
    },
    {
      "name": "Missing entry errors",
      "description": "Propagates errors from cacache.get.stream for absent keys (ENOENT) through the returned stream/promise instead of swallowing them.",
      "max_score": 10
    }
  ]
}