tessl install tessl/npm-lightdash--common@0.2231.5Shared TypeScript library for the Lightdash platform containing common types, utilities, and business logic for analytics workflows
Agent Success
Agent success rate when using this tile
72%
Improvement
Agent success rate improvement when using this tile compared to baseline
1.09x
Baseline
Agent success rate without this tile
66%
{
"context": "This criteria evaluates how well the engineer uses @lightdash/common's template rendering system with dual context layers. The focus is on correctly implementing LiquidJS-based rendering with both value and row contexts, AST-based dependency extraction, and proper validation of template references.",
"type": "weighted_checklist",
"checklist": [
{
"name": "LiquidJS Engine Configuration",
"description": "Creates LiquidJS Liquid instance with proper security and configuration settings. Must include: custom delimiters (outputDelimiterLeft: '${', outputDelimiterRight: '}'), security flags (ownPropertyOnly: true, strictVariables: true, strictFilters: true), and optional optimization settings (cache: true, timezoneOffset: 0). The Liquid class must be imported from 'liquidjs' package.",
"max_score": 25
},
{
"name": "Dual Context Rendering",
"description": "Implements renderTemplatedUrl() function using LiquidJS parseAndRenderSync() method with dual context object {value, row}. Must pass both value (ResultValue) and row (nested Record) as context to the template engine. The function should handle the nested row structure correctly (row[table][field]).",
"max_score": 20
},
{
"name": "AST-Based Dependency Extraction",
"description": "Implements getTemplatedUrlRowDependencies() using LiquidJS parse() method to obtain AST without executing the template. Must analyze tokens to identify Output tokens (using TokenKind.Output enum from liquidjs), extract variable references from these tokens, and return only row field dependencies (not value references).",
"max_score": 20
},
{
"name": "Row Reference Validation",
"description": "Validates row references using regex pattern matching to ensure format row.{table}.{field}.(raw|formatted). Must reject invalid patterns like row.field.raw (missing table name) by throwing an Error with descriptive message. The regex pattern should match the format /row\\.([a-z\\._]+)\\.([a-z\\._]+)\\.(raw|formatted)/ or similar.",
"max_score": 15
},
{
"name": "Dependency Format Conversion",
"description": "Converts extracted row references from row.table.field format to tableName_fieldName format for the return value. Must handle extraction of table and field names from matched patterns and combine them with underscore separator. Should avoid duplicates in the returned array.",
"max_score": 15
},
{
"name": "ResultValue Type Usage",
"description": "Defines or uses ResultValue type with both raw (unknown type) and formatted (string type) properties. The type must match the @lightdash/common convention: {raw: unknown, formatted: string}. Used correctly in function signatures for value parameter and nested row structure.",
"max_score": 5
}
]
}docs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10
scenario-11
scenario-12
scenario-13
scenario-14
scenario-15
scenario-16
scenario-17
scenario-18
scenario-19
scenario-20