@goreal-ai/echo-pdk 0.2.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -25,12 +25,21 @@ import { evaluate } from './evaluator/evaluator.js';
25
25
  import { render, formatErrors } from './renderer/renderer.js';
26
26
  import { builtinOperators, getOperator } from './evaluator/operators.js';
27
27
  import { createOpenAIProvider, withCache } from './ai-judge/index.js';
28
+ import { validateContextPath } from './context/index.js';
28
29
  // Re-export utilities for advanced usage
29
30
  export { parse } from './parser/parser.js';
30
31
  export { evaluate, resolveVariable, } from './evaluator/evaluator.js';
31
32
  export { render, renderTemplate, formatErrors } from './renderer/renderer.js';
32
33
  export { builtinOperators, getOperator } from './evaluator/operators.js';
33
- export { createTextNode, createVariableNode, createConditionalNode, createConditionExpr, createSectionNode, createImportNode, createIncludeNode, collectAiJudgeConditions, visitNode, visitNodes, prettyPrint, } from './parser/ast.js';
34
+ export { createTextNode, createVariableNode, createConditionalNode, createConditionExpr, createSectionNode, createImportNode, createIncludeNode, createContextNode, collectAiJudgeConditions, visitNode, visitNodes, prettyPrint, } from './parser/ast.js';
35
+ // Re-export context module
36
+ export {
37
+ // Validation
38
+ isPlpReference, extractAssetId, validateContextPath,
39
+ // AST Helpers
40
+ collectContextPaths, applyResolvedContext,
41
+ // Mock Resolver
42
+ MockContextResolver, } from './context/index.js';
34
43
  /**
35
44
  * Environment variable name for API key.
36
45
  */
@@ -356,6 +365,19 @@ function validateNodes(nodes, errors, warnings, knownSections, config, operators
356
365
  });
357
366
  break;
358
367
  }
368
+ case 'context': {
369
+ // Validate context path
370
+ const validation = validateContextPath(node.path);
371
+ if (!validation.isValid) {
372
+ const error = {
373
+ code: 'INVALID_CONTEXT_PATH',
374
+ message: `Invalid context path: ${validation.error}`,
375
+ location: node.location,
376
+ };
377
+ errors.push(error);
378
+ }
379
+ break;
380
+ }
359
381
  }
360
382
  }
361
383
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAyCH,oBAAoB;AACpB,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEtE,yCAAyC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EACL,QAAQ,EACR,eAAe,GAEhB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,SAAS,EACT,UAAU,EACV,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,MAAM,WAAW,GAAG,gBAAgB,CAAC;AACrC,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,MAAM,UAAU,UAAU,CAAC,SAAqB,EAAE;IAChD,6DAA6D;IAC7D,MAAM,SAAS,GAAG,IAAI,GAAG,EAA8B,CAAC;IAExD,kCAAkC;IAClC,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAClE,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAClC,CAAC;IAED,qDAAqD;IACrD,oBAAoB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAExC,iBAAiB;IACjB,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,oBAAoB;IACpB,MAAM,IAAI,GAAS;QACjB;;WAEG;QACH,KAAK,CAAC,QAAgB;YACpB,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;QAED;;WAEG;QACH,KAAK,CAAC,MAAM,CACV,QAAgB,EAChB,OAAgC;YAEhC,gBAAgB;YAChB,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;YAEpC,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;gBAC7C,MAAM,eAAe,GAAG,YAAY,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;gBACnE,MAAM,IAAI,KAAK,CAAC,iBAAiB,eAAe,EAAE,CAAC,CAAC;YACtD,CAAC;YAED,mBAAmB;YACnB,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,MAAM,QAAQ,CAC1C,WAAW,CAAC,GAAG,EACf,OAAO,EACP,MAAM,EACN,SAAS,CACV,CAAC;YAEF,iBAAiB;YACjB,OAAO,MAAM,CAAC,YAAY,EAAE;gBAC1B,OAAO;gBACP,MAAM;gBACN,IAAI,EAAE,KAAK;gBACX,gBAAgB,EAAE,IAAI;aACvB,CAAC,CAAC;QACL,CAAC;QAED;;WAEG;QACH,QAAQ,CAAC,QAAgB;YACvB,MAAM,MAAM,GAAgB,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAkB,EAAE,CAAC;YAEnC,6BAA6B;YAC7B,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;YAEpC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBACzB,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,MAAM,EAAE,WAAW,CAAC,MAAM;oBAC1B,QAAQ,EAAE,EAAE;iBACb,CAAC;YACJ,CAAC;YAED,8BAA8B;YAC9B,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC;gBACpB,WAAW,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YACpE,CAAC;YAED,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;gBAC1B,MAAM;gBACN,QAAQ;aACT,CAAC;QACJ,CAAC;QAED;;WAEG;QACH,YAAY,CAAC,SAAiB;YAC5B,mCAAmC;YACnC,+DAA+D;YAC/D,yCAAyC;YACzC,MAAM,IAAI,KAAK,CACb,uFAAuF,CACxF,CAAC;QACJ,CAAC;QAED;;WAEG;QACH,gBAAgB,CAAC,IAAY,EAAE,UAA8B;YAC3D,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAClC,CAAC;QAED;;WAEG;QACH,UAAU,CAAC,MAAkB;YAC3B,4BAA4B;YAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACpD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC1D,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAErB,4BAA4B;YAC5B,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrB,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;oBAClE,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;YAED,4BAA4B;YAC5B,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;KACF,CAAC;IAEF,mCAAmC;IACnC,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,sCAAsC;QACtC,mDAAmD;QACnD,OAAO,CAAC,IAAI,CACV,qEAAqE,CACtE,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAC3B,MAAkB,EAClB,SAA0C;IAE1C,+CAA+C;IAC/C,MAAM,MAAM,GACV,MAAM,CAAC,UAAU,EAAE,MAAM;QACzB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAE3B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,6CAA6C;QAC7C,OAAO;IACT,CAAC;IAED,oCAAoC;IACpC,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,EAAE,IAAI,IAAI,QAAQ,CAAC;IAEzD,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,qBAAqB,YAAY,oCAAoC,CAAC,CAAC;IACtF,CAAC;IAED,IAAI,CAAC;QACH,6CAA6C;QAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,KAAK,IAAI,aAAa,CAAC;QAExD,sCAAsC;QACtC,MAAM,QAAQ,GAAG,oBAAoB,CAAC;YACpC,IAAI,EAAE,QAAQ;YACd,MAAM;YACN,KAAK;YACL,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO;SACpC,CAAC,CAAC;QAEH,oEAAoE;QACpE,MAAM,cAAc,GAAG,SAAS,CAAC,QAAQ,EAAE;YACzC,YAAY,EAAE,YAAY;YAC1B,KAAK;SACN,CAAC,CAAC;QAEH,mDAAmD;QACnD,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE;YACxB,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,iCAAiC;YAC9C,OAAO,EAAE,6CAA6C;YACtD,OAAO,EAAE,KAAK,EAAE,KAAc,EAAE,QAAiB,EAAoB,EAAE;gBACrE,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBACjC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;gBACrE,CAAC;gBACD,OAAO,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAClD,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,2DAA2D;QAC3D,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAClB,GAAmC,EACnC,MAAmB,EACnB,QAAuB,EACvB,MAAkB,EAClB,SAA0C;IAE1C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAExC,oCAAoC;IACpC,mBAAmB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAExC,wBAAwB;IACxB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AACzE,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAC1B,KAAqC,EACrC,QAAqB;IAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACvC,mBAAmB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC/C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;oBAClC,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACN,mBAAmB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CACpB,KAAqC,EACrC,MAAmB,EACnB,QAAuB,EACvB,aAA0B,EAC1B,MAAkB,EAClB,SAA0C;IAE1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,uEAAuE;gBACvE,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;gBAC7C,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC;gBAC1E,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,KAAK,GAAc;wBACvB,IAAI,EAAE,kBAAkB;wBACxB,OAAO,EAAE,sBAAsB,YAAY,EAAE;wBAC7C,QAAQ,EAAE,IAAI,CAAC,QAAQ;qBACxB,CAAC;oBACF,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;wBAClB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrB,CAAC;yBAAM,CAAC;wBACN,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC;gBAED,wBAAwB;gBACxB,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;gBACnF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;wBAClC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;oBACpF,CAAC;yBAAM,CAAC;wBACN,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;oBACtF,CAAC;gBACH,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,0BAA0B;gBAC1B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClC,MAAM,KAAK,GAAc;wBACvB,IAAI,EAAE,iBAAiB;wBACvB,OAAO,EAAE,oBAAoB,IAAI,CAAC,IAAI,EAAE;wBACxC,QAAQ,EAAE,IAAI,CAAC,QAAQ;qBACxB,CAAC;oBACF,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;wBAClB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrB,CAAC;yBAAM,CAAC;wBACN,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,4BAA4B;gBAC5B,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;gBAC7E,MAAM;YACR,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,+CAA+C;gBAC/C,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,gCAAgC,IAAI,CAAC,IAAI,EAAE;oBACpD,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AACD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,YAAY,CAAC,MAAkB;IAC7C,OAAO,MAAM,CAAC;AAChB,CAAC;AAoBD,8BAA8B;AAC9B,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,0BAA0B,EAC1B,SAAS,EACT,mBAAmB,EACnB,aAAa,EACb,SAAS,EACT,qBAAqB,EACrB,YAAY,EACZ,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@
20
20
  * - Find nodes by type
21
21
  * - Pretty print for debugging
22
22
  */
23
- import type { ASTNode, TextNode, VariableNode, ConditionalNode, SectionNode, ImportNode, IncludeNode, SourceLocation, ConditionExpr } from '../types.js';
23
+ import type { ASTNode, TextNode, VariableNode, ConditionalNode, SectionNode, ImportNode, IncludeNode, ContextNode, SourceLocation, ConditionExpr } from '../types.js';
24
24
  /**
25
25
  * Create a TextNode.
26
26
  */
@@ -49,6 +49,23 @@ export declare function createImportNode(path: string, location: SourceLocation)
49
49
  * Create an IncludeNode.
50
50
  */
51
51
  export declare function createIncludeNode(name: string, location: SourceLocation): IncludeNode;
52
+ /**
53
+ * Create a ContextNode.
54
+ *
55
+ * @param path - The path to the context asset (e.g., "product-image" or "plp://logo-v2")
56
+ * @param location - Source location
57
+ * @returns A new ContextNode
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * const node = createContextNode('product-image', location);
62
+ * // { type: 'context', path: 'product-image', location }
63
+ *
64
+ * const node2 = createContextNode('plp://logo-v2', location);
65
+ * // { type: 'context', path: 'plp://logo-v2', location }
66
+ * ```
67
+ */
68
+ export declare function createContextNode(path: string, location: SourceLocation): ContextNode;
52
69
  /**
53
70
  * Visitor interface for AST traversal.
54
71
  * Implement this interface to walk the AST.
@@ -60,6 +77,7 @@ export interface ASTVisitor<T = void> {
60
77
  visitSection?(node: SectionNode): T;
61
78
  visitImport?(node: ImportNode): T;
62
79
  visitInclude?(node: IncludeNode): T;
80
+ visitContext?(node: ContextNode): T;
63
81
  }
64
82
  /**
65
83
  * Walk an AST node with a visitor.
@@ -1 +1 @@
1
- {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/parser/ast.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,WAAW,EACX,UAAU,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACd,MAAM,aAAa,CAAC;AAMrB;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,GACvB,QAAQ,CAMV;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,cAAc,EACxB,YAAY,CAAC,EAAE,MAAM,GACpB,YAAY,CAOd;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,OAAO,EAAE,EACrB,QAAQ,EAAE,cAAc,EACxB,SAAS,CAAC,EAAE,eAAe,GAAG,OAAO,EAAE,GACtC,eAAe,CAQjB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GACpC,aAAa,CAOf;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,EAAE,EACf,QAAQ,EAAE,cAAc,GACvB,WAAW,CAOb;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,cAAc,GACvB,UAAU,CAMZ;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,cAAc,GACvB,WAAW,CAMb;AAMD;;;GAGG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,IAAI;IAClC,SAAS,CAAC,CAAC,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC;IAC9B,aAAa,CAAC,CAAC,IAAI,EAAE,YAAY,GAAG,CAAC,CAAC;IACtC,gBAAgB,CAAC,CAAC,IAAI,EAAE,eAAe,GAAG,CAAC,CAAC;IAC5C,YAAY,CAAC,CAAC,IAAI,EAAE,WAAW,GAAG,CAAC,CAAC;IACpC,WAAW,CAAC,CAAC,IAAI,EAAE,UAAU,GAAG,CAAC,CAAC;IAClC,YAAY,CAAC,CAAC,IAAI,EAAE,WAAW,GAAG,CAAC,CAAC;CACrC;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAoBjF;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAC1B,KAAK,EAAE,OAAO,EAAE,EAChB,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,GACrB,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,CAEnB;AAMD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,OAAO,EAAE,GACb;IAAE,SAAS,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAA;CAAE,EAAE,CAgC1D;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAEvD;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,MAAM,SAAI,GAAG,MAAM,CA6C9D"}
1
+ {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/parser/ast.ts"],"names":[],"mappings":"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"}
@@ -98,6 +98,29 @@ export function createIncludeNode(name, location) {
98
98
  location,
99
99
  };
100
100
  }
101
+ /**
102
+ * Create a ContextNode.
103
+ *
104
+ * @param path - The path to the context asset (e.g., "product-image" or "plp://logo-v2")
105
+ * @param location - Source location
106
+ * @returns A new ContextNode
107
+ *
108
+ * @example
109
+ * ```typescript
110
+ * const node = createContextNode('product-image', location);
111
+ * // { type: 'context', path: 'product-image', location }
112
+ *
113
+ * const node2 = createContextNode('plp://logo-v2', location);
114
+ * // { type: 'context', path: 'plp://logo-v2', location }
115
+ * ```
116
+ */
117
+ export function createContextNode(path, location) {
118
+ return {
119
+ type: 'context',
120
+ path,
121
+ location,
122
+ };
123
+ }
101
124
  /**
102
125
  * Walk an AST node with a visitor.
103
126
  *
@@ -119,6 +142,8 @@ export function visitNode(node, visitor) {
119
142
  return visitor.visitImport?.(node);
120
143
  case 'include':
121
144
  return visitor.visitInclude?.(node);
145
+ case 'context':
146
+ return visitor.visitContext?.(node);
122
147
  default: {
123
148
  // Exhaustiveness check
124
149
  const _exhaustive = node;
@@ -228,6 +253,9 @@ export function prettyPrint(ast, indent = 0) {
228
253
  case 'include':
229
254
  lines.push(`${pad}INCLUDE: ${node.name}`);
230
255
  break;
256
+ case 'context':
257
+ lines.push(`${pad}CONTEXT: #context(${node.path})`);
258
+ break;
231
259
  }
232
260
  }
233
261
  return lines.join('\n');
@@ -1 +1 @@
1
- {"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/parser/ast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/parser/ast.ts"],"names":[],"mappings":"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"}
@@ -72,6 +72,15 @@ export declare const Import: TokenType;
72
72
  * [#INCLUDE - Include directive (followed by section name)
73
73
  */
74
74
  export declare const Include: TokenType;
75
+ /**
76
+ * #context( - Context reference (pushes to CONTEXT_ARG_MODE to capture path)
77
+ *
78
+ * Used inline in text to reference files from the Context Store.
79
+ * Examples:
80
+ * #context(product-image) - Reference from prompt's context mapping
81
+ * #context(plp://logo-v2) - Direct Context Store reference
82
+ */
83
+ export declare const ContextOpen: TokenType;
75
84
  /**
76
85
  * ] - End of directive (pops back to DEFAULT_MODE)
77
86
  */
@@ -107,6 +116,11 @@ export declare const RParen: TokenType;
107
116
  * This allows natural text like "My Girlfriend" without quotes.
108
117
  */
109
118
  export declare const OperatorArgText: TokenType;
119
+ /**
120
+ * Context argument text - captures the context path until closing paren.
121
+ * Supports: alphanumeric, hyphens, underscores, dots, and plp:// prefix.
122
+ */
123
+ export declare const ContextArgText: TokenType;
110
124
  /**
111
125
  * , - Comma separator in argument lists
112
126
  */
@@ -131,12 +145,13 @@ export declare const WhiteSpace: TokenType;
131
145
  * - `{{` (variable start)
132
146
  * - `[#` (directive start: [#IF, [#SECTION, [#IMPORT, [#INCLUDE)
133
147
  * - `[E` (branch/end markers: [ELSE], [ELSE IF, [END IF], [END SECTION])
148
+ * - `#context(` (context reference)
134
149
  *
135
- * REGEX BREAKDOWN: /(?:[^\[{]|\[(?![#E])|\{(?!\{))+/
150
+ * REGEX BREAKDOWN: /(?:[^\[{#]|\[(?![#E])|\{(?!\{)|#(?!context\())+/
136
151
  *
137
- * (?: Non-capturing group containing three alternatives:
152
+ * (?: Non-capturing group containing four alternatives:
138
153
  * │
139
- * ├─ [^\[{] Alt 1: Any character EXCEPT '[' or '{'
154
+ * ├─ [^\[{#] Alt 1: Any character EXCEPT '[', '{', or '#'
140
155
  * │ These are safe - no special meaning
141
156
  * │
142
157
  * ├─ \[(?![#E]) Alt 2: A '[' NOT followed by '#' or 'E'
@@ -145,10 +160,15 @@ export declare const WhiteSpace: TokenType;
145
160
  * │ - [# (directives like [#IF)
146
161
  * │ - [E (branches like [ELSE], [END IF])
147
162
  * │
148
- * └─ \{(?!\{) Alt 3: A '{' NOT followed by another '{'
149
- * │ Allows: single { in text
150
- * └─ (?!\{) Negative lookahead excludes:
151
- * - {{ (variable start)
163
+ * ├─ \{(?!\{) Alt 3: A '{' NOT followed by another '{'
164
+ * Allows: single { in text
165
+ *└─ (?!\{) Negative lookahead excludes:
166
+ *- {{ (variable start)
167
+ * │
168
+ * └─ #(?!context\() Alt 4: A '#' NOT followed by 'context('
169
+ * │ Allows: #1, #foo, #anything-else
170
+ * └─ (?!context\() Negative lookahead excludes:
171
+ * - #context( (context reference)
152
172
  * )+ One or more matches (greedy)
153
173
  *
154
174
  * EXAMPLES:
@@ -157,6 +177,8 @@ export declare const WhiteSpace: TokenType;
157
177
  * "Price: $[100]" → matches entirely ([1 is not [# or [E)
158
178
  * "Use {braces}" → matches entirely (single { is allowed)
159
179
  * "[#IF ..." → matches nothing (starts with [#)
180
+ * "Item #1" → matches entirely (#1 is not #context()
181
+ * "#context(x)" → matches nothing (starts with #context()
160
182
  */
161
183
  export declare const Text: TokenType;
162
184
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"lexer.d.ts","sourceRoot":"","sources":["../../src/parser/lexer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAEL,KAAK,EACL,KAAK,SAAS,EAEf,MAAM,YAAY,CAAC;AAYpB;;GAEG;AACH,eAAO,MAAM,YAAY,WAGvB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,WAGxB,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,KAAK,WAGhB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU,WAGrB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,IAAI,WAGf,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,MAAM,WAIjB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,MAAM,WAIjB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW,WAItB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,MAAM,WAIjB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,OAAO,WAIlB,CAAC;AAoDH;;GAEG;AACH,eAAO,MAAM,YAAY,WAIvB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,QAAQ,WAGnB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,UAAU,WAGrB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,WAGxB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,WAGxB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,MAAM,WAIjB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,MAAM,WAGjB,CAAC;AAYH;;;GAGG;AACH,eAAO,MAAM,eAAe,WAG1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,KAAK,WAGhB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,MAAM,WAGjB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS,WAGpB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU,WAIrB,CAAC;AAMH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,IAAI,WAIf,CAAC;AA2GH;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,EAAE,SAAS,EA4ChC,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,SAAS,OAMpB,CAAC;AAMH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,sCAExC;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAC5C,MAAM,EAAE,CAMV"}
1
+ {"version":3,"file":"lexer.d.ts","sourceRoot":"","sources":["../../src/parser/lexer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAEL,KAAK,EACL,KAAK,SAAS,EAEf,MAAM,YAAY,CAAC;AAYpB;;GAEG;AACH,eAAO,MAAM,YAAY,WAGvB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,WAGxB,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,KAAK,WAGhB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU,WAGrB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,IAAI,WAGf,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,MAAM,WAIjB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,MAAM,WAIjB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW,WAItB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,MAAM,WAIjB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,OAAO,WAIlB,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,WAItB,CAAC;AAoDH;;GAEG;AACH,eAAO,MAAM,YAAY,WAIvB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,QAAQ,WAGnB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,UAAU,WAGrB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,WAGxB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,WAGxB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,MAAM,WAIjB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,MAAM,WAGjB,CAAC;AAYH;;;GAGG;AACH,eAAO,MAAM,eAAe,WAG1B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,cAAc,WAGzB,CAAC;AAYH;;GAEG;AACH,eAAO,MAAM,KAAK,WAGhB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,MAAM,WAGjB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS,WAGpB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU,WAIrB,CAAC;AAMH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,eAAO,MAAM,IAAI,WAIf,CAAC;AA2HH;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,EAAE,SAAS,EAmDhC,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,SAAS,OAMpB,CAAC;AAMH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,sCAExC;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAC5C,MAAM,EAAE,CAMV"}
@@ -121,6 +121,19 @@ export const Include = createToken({
121
121
  pattern: /\[#INCLUDE/,
122
122
  push_mode: 'DIRECTIVE_MODE',
123
123
  });
124
+ /**
125
+ * #context( - Context reference (pushes to CONTEXT_ARG_MODE to capture path)
126
+ *
127
+ * Used inline in text to reference files from the Context Store.
128
+ * Examples:
129
+ * #context(product-image) - Reference from prompt's context mapping
130
+ * #context(plp://logo-v2) - Direct Context Store reference
131
+ */
132
+ export const ContextOpen = createToken({
133
+ name: 'ContextOpen',
134
+ pattern: /#context\(/,
135
+ push_mode: 'CONTEXT_ARG_MODE',
136
+ });
124
137
  // -----------------------------------------------------------------------------
125
138
  // Variable Syntax - Mode-Specific Variants
126
139
  // -----------------------------------------------------------------------------
@@ -235,6 +248,23 @@ export const OperatorArgText = createToken({
235
248
  name: 'OperatorArgText',
236
249
  pattern: /[^)]+/,
237
250
  });
251
+ /**
252
+ * Context argument text - captures the context path until closing paren.
253
+ * Supports: alphanumeric, hyphens, underscores, dots, and plp:// prefix.
254
+ */
255
+ export const ContextArgText = createToken({
256
+ name: 'ContextArgText',
257
+ pattern: /[^)]+/,
258
+ });
259
+ /**
260
+ * ) - Right parenthesis that pops from CONTEXT_ARG_MODE
261
+ */
262
+ const RParenContextArg = createToken({
263
+ name: 'RParenContextArg',
264
+ pattern: /\)/,
265
+ pop_mode: true,
266
+ categories: [RParen], // Extends RParen so parser sees it the same
267
+ });
238
268
  /**
239
269
  * , - Comma separator in argument lists
240
270
  */
@@ -275,12 +305,13 @@ export const WhiteSpace = createToken({
275
305
  * - `{{` (variable start)
276
306
  * - `[#` (directive start: [#IF, [#SECTION, [#IMPORT, [#INCLUDE)
277
307
  * - `[E` (branch/end markers: [ELSE], [ELSE IF, [END IF], [END SECTION])
308
+ * - `#context(` (context reference)
278
309
  *
279
- * REGEX BREAKDOWN: /(?:[^\[{]|\[(?![#E])|\{(?!\{))+/
310
+ * REGEX BREAKDOWN: /(?:[^\[{#]|\[(?![#E])|\{(?!\{)|#(?!context\())+/
280
311
  *
281
- * (?: Non-capturing group containing three alternatives:
312
+ * (?: Non-capturing group containing four alternatives:
282
313
  * │
283
- * ├─ [^\[{] Alt 1: Any character EXCEPT '[' or '{'
314
+ * ├─ [^\[{#] Alt 1: Any character EXCEPT '[', '{', or '#'
284
315
  * │ These are safe - no special meaning
285
316
  * │
286
317
  * ├─ \[(?![#E]) Alt 2: A '[' NOT followed by '#' or 'E'
@@ -289,10 +320,15 @@ export const WhiteSpace = createToken({
289
320
  * │ - [# (directives like [#IF)
290
321
  * │ - [E (branches like [ELSE], [END IF])
291
322
  * │
292
- * └─ \{(?!\{) Alt 3: A '{' NOT followed by another '{'
293
- * │ Allows: single { in text
294
- * └─ (?!\{) Negative lookahead excludes:
295
- * - {{ (variable start)
323
+ * ├─ \{(?!\{) Alt 3: A '{' NOT followed by another '{'
324
+ * Allows: single { in text
325
+ *└─ (?!\{) Negative lookahead excludes:
326
+ *- {{ (variable start)
327
+ * │
328
+ * └─ #(?!context\() Alt 4: A '#' NOT followed by 'context('
329
+ * │ Allows: #1, #foo, #anything-else
330
+ * └─ (?!context\() Negative lookahead excludes:
331
+ * - #context( (context reference)
296
332
  * )+ One or more matches (greedy)
297
333
  *
298
334
  * EXAMPLES:
@@ -301,10 +337,12 @@ export const WhiteSpace = createToken({
301
337
  * "Price: $[100]" → matches entirely ([1 is not [# or [E)
302
338
  * "Use {braces}" → matches entirely (single { is allowed)
303
339
  * "[#IF ..." → matches nothing (starts with [#)
340
+ * "Item #1" → matches entirely (#1 is not #context()
341
+ * "#context(x)" → matches nothing (starts with #context()
304
342
  */
305
343
  export const Text = createToken({
306
344
  name: 'Text',
307
- pattern: /(?:[^\[{]|\[(?![#E])|\{(?!\{))+/,
345
+ pattern: /(?:[^\[{#]|\[(?![#E])|\{(?!\{)|#(?!context\())+/,
308
346
  line_breaks: true,
309
347
  });
310
348
  // =============================================================================
@@ -325,6 +363,8 @@ const defaultModeTokens = [
325
363
  SectionOpen,
326
364
  Import,
327
365
  Include,
366
+ // Context reference (push to CONTEXT_ARG_MODE)
367
+ ContextOpen,
328
368
  // Variable (push to VARIABLE_MODE)
329
369
  VariableOpenDefault,
330
370
  // Plain text (catch-all - must be last)
@@ -378,6 +418,16 @@ const operatorArgModeTokens = [
378
418
  // Free-form text content
379
419
  OperatorArgText,
380
420
  ];
421
+ /**
422
+ * Tokens used inside context arguments #context( ... )
423
+ * Captures the context path until closing paren.
424
+ */
425
+ const contextArgModeTokens = [
426
+ // End of context (pop mode)
427
+ RParenContextArg,
428
+ // Context path text
429
+ ContextArgText,
430
+ ];
381
431
  // =============================================================================
382
432
  // MULTI-MODE LEXER DEFINITION
383
433
  // =============================================================================
@@ -391,6 +441,7 @@ const multiModeLexerDefinition = {
391
441
  DIRECTIVE_MODE: directiveModeTokens,
392
442
  VARIABLE_MODE: variableModeTokens,
393
443
  OPERATOR_ARG_MODE: operatorArgModeTokens,
444
+ CONTEXT_ARG_MODE: contextArgModeTokens,
394
445
  },
395
446
  defaultMode: 'DEFAULT_MODE',
396
447
  };
@@ -414,6 +465,8 @@ export const allTokens = [
414
465
  SectionOpen,
415
466
  Import,
416
467
  Include,
468
+ // Context reference
469
+ ContextOpen,
417
470
  // Mode-specific variable tokens (extend categories)
418
471
  VariableOpenDefault,
419
472
  VariableOpenDirective,
@@ -427,9 +480,12 @@ export const allTokens = [
427
480
  LParen,
428
481
  RParen,
429
482
  RParenOperatorArg,
483
+ RParenContextArg,
430
484
  Comma,
431
485
  // Operator argument mode tokens
432
486
  OperatorArgText,
487
+ // Context argument mode tokens
488
+ ContextArgText,
433
489
  // Literals
434
490
  StringLiteral,
435
491
  NumberLiteral,
@@ -1 +1 @@
1
- {"version":3,"file":"lexer.js","sourceRoot":"","sources":["../../src/parser/lexer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lexer.js","sourceRoot":"","sources":["../../src/parser/lexer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAA2B,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,KAAK,EAEV,WAAW,EACX,cAAc,EAIf,MAAM,aAAa,CAAC;AAsrBrB;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAQ9D;AA2CD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CA6CnD"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAA2B,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,KAAK,EAEV,WAAW,EACX,cAAc,EAIf,MAAM,aAAa,CAAC;AAyuBrB;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAQ9D;AA2CD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CA6CnD"}
@@ -24,8 +24,8 @@
24
24
  * include := "[#INCLUDE" IDENTIFIER "]"
25
25
  */
26
26
  import { CstParser } from 'chevrotain';
27
- import { allTokens, tokenize, formatLexerErrors, Text, VariableOpen, VariableClose, IfOpen, ElseIf, Else, EndIf, SectionOpen, EndSection, Import, Include, Operator, Identifier, StringLiteral, NumberLiteral, LParen, RParen, CloseBracket, DefaultOp, Equals, OperatorArgText, } from './lexer.js';
28
- import { createTextNode, createVariableNode, createConditionalNode, createConditionExpr, createSectionNode, createImportNode, createIncludeNode, } from './ast.js';
27
+ import { allTokens, tokenize, formatLexerErrors, Text, VariableOpen, VariableClose, IfOpen, ElseIf, Else, EndIf, SectionOpen, EndSection, Import, Include, ContextOpen, Operator, Identifier, StringLiteral, NumberLiteral, LParen, RParen, CloseBracket, DefaultOp, Equals, OperatorArgText, ContextArgText, } from './lexer.js';
28
+ import { createTextNode, createVariableNode, createConditionalNode, createConditionExpr, createSectionNode, createImportNode, createIncludeNode, createContextNode, } from './ast.js';
29
29
  // =============================================================================
30
30
  // PARSER CLASS
31
31
  // =============================================================================
@@ -55,7 +55,7 @@ class EchoParser extends CstParser {
55
55
  });
56
56
  });
57
57
  /**
58
- * A node can be text, variable, conditional, section, import, or include
58
+ * A node can be text, variable, conditional, section, import, include, or context
59
59
  */
60
60
  node = this.RULE('node', () => {
61
61
  this.OR([
@@ -65,6 +65,7 @@ class EchoParser extends CstParser {
65
65
  { ALT: () => this.SUBRULE(this.sectionNode) },
66
66
  { ALT: () => this.SUBRULE(this.importNode) },
67
67
  { ALT: () => this.SUBRULE(this.includeNode) },
68
+ { ALT: () => this.SUBRULE(this.contextNode) },
68
69
  ]);
69
70
  });
70
71
  /**
@@ -183,6 +184,20 @@ class EchoParser extends CstParser {
183
184
  this.CONSUME(Identifier);
184
185
  this.CONSUME(CloseBracket);
185
186
  });
187
+ /**
188
+ * Context reference: #context(path)
189
+ *
190
+ * @example
191
+ * #context(product-image) - From prompt's context mapping
192
+ * #context(plp://logo-v2) - Direct Context Store reference
193
+ */
194
+ contextNode = this.RULE('contextNode', () => {
195
+ this.CONSUME(ContextOpen);
196
+ this.OPTION(() => {
197
+ this.CONSUME(ContextArgText);
198
+ });
199
+ this.CONSUME(RParen);
200
+ });
186
201
  }
187
202
  // =============================================================================
188
203
  // PARSER INSTANCE
@@ -249,6 +264,9 @@ class EchoAstVisitor extends BaseCstVisitor {
249
264
  if (ctx.includeNode?.[0]) {
250
265
  return this.visit(ctx.includeNode[0]);
251
266
  }
267
+ if (ctx.contextNode?.[0]) {
268
+ return this.visit(ctx.contextNode[0]);
269
+ }
252
270
  return undefined;
253
271
  }
254
272
  /**
@@ -474,6 +492,24 @@ class EchoAstVisitor extends BaseCstVisitor {
474
492
  : defaultLocation;
475
493
  return createIncludeNode(name, location);
476
494
  }
495
+ /**
496
+ * Visit a context node.
497
+ *
498
+ * @example
499
+ * #context(product-image) - From prompt's context mapping
500
+ * #context(plp://logo-v2) - Direct Context Store reference
501
+ */
502
+ contextNode(ctx) {
503
+ const contextOpenToken = ctx.ContextOpen?.[0];
504
+ const rparenToken = ctx.RParen?.[0];
505
+ const argTextToken = ctx.ContextArgText?.[0];
506
+ // Extract the path, trimming any whitespace
507
+ const path = argTextToken?.image?.trim() ?? '';
508
+ const location = contextOpenToken && rparenToken
509
+ ? mergeLocations(getTokenLocation(contextOpenToken), getTokenLocation(rparenToken))
510
+ : defaultLocation;
511
+ return createContextNode(path, location);
512
+ }
477
513
  }
478
514
  // Create singleton visitor instance
479
515
  const astVisitor = new EchoAstVisitor();