@rcrsr/rill 0.2.3 → 0.4.1

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.
Files changed (106) hide show
  1. package/README.md +64 -28
  2. package/dist/check/rules/anti-patterns.d.ts.map +1 -1
  3. package/dist/check/rules/anti-patterns.js +1 -6
  4. package/dist/check/rules/anti-patterns.js.map +1 -1
  5. package/dist/check/rules/closures.d.ts.map +1 -1
  6. package/dist/check/rules/closures.js +2 -5
  7. package/dist/check/rules/closures.js.map +1 -1
  8. package/dist/check/rules/conditionals.d.ts.map +1 -1
  9. package/dist/check/rules/conditionals.js +36 -8
  10. package/dist/check/rules/conditionals.js.map +1 -1
  11. package/dist/check/rules/naming.d.ts.map +1 -1
  12. package/dist/check/rules/naming.js +9 -2
  13. package/dist/check/rules/naming.js.map +1 -1
  14. package/dist/check/rules/strings.d.ts.map +1 -1
  15. package/dist/check/rules/strings.js +1 -2
  16. package/dist/check/rules/strings.js.map +1 -1
  17. package/dist/check/rules/types.d.ts.map +1 -1
  18. package/dist/check/rules/types.js +4 -3
  19. package/dist/check/rules/types.js.map +1 -1
  20. package/dist/check/types.d.ts +2 -0
  21. package/dist/check/types.d.ts.map +1 -1
  22. package/dist/check/validator.d.ts.map +1 -1
  23. package/dist/check/validator.js +8 -0
  24. package/dist/check/validator.js.map +1 -1
  25. package/dist/check/visitor.d.ts.map +1 -1
  26. package/dist/check/visitor.js +13 -1
  27. package/dist/check/visitor.js.map +1 -1
  28. package/dist/cli-check.js +1 -0
  29. package/dist/cli-check.js.map +1 -1
  30. package/dist/index.d.ts +1 -1
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/lexer/operators.d.ts.map +1 -1
  33. package/dist/lexer/operators.js +2 -0
  34. package/dist/lexer/operators.js.map +1 -1
  35. package/dist/parser/helpers.d.ts +2 -1
  36. package/dist/parser/helpers.d.ts.map +1 -1
  37. package/dist/parser/helpers.js +78 -10
  38. package/dist/parser/helpers.js.map +1 -1
  39. package/dist/parser/parser-control.d.ts +3 -1
  40. package/dist/parser/parser-control.d.ts.map +1 -1
  41. package/dist/parser/parser-control.js +93 -0
  42. package/dist/parser/parser-control.js.map +1 -1
  43. package/dist/parser/parser-expr.d.ts.map +1 -1
  44. package/dist/parser/parser-expr.js +79 -2
  45. package/dist/parser/parser-expr.js.map +1 -1
  46. package/dist/parser/parser-functions.js +20 -3
  47. package/dist/parser/parser-functions.js.map +1 -1
  48. package/dist/parser/parser-literals.d.ts.map +1 -1
  49. package/dist/parser/parser-literals.js +55 -3
  50. package/dist/parser/parser-literals.js.map +1 -1
  51. package/dist/parser/parser-script.d.ts +2 -2
  52. package/dist/parser/parser-script.d.ts.map +1 -1
  53. package/dist/parser/parser-script.js +43 -3
  54. package/dist/parser/parser-script.js.map +1 -1
  55. package/dist/parser/parser-variables.js +5 -0
  56. package/dist/parser/parser-variables.js.map +1 -1
  57. package/dist/runtime/core/callable.d.ts +22 -4
  58. package/dist/runtime/core/callable.d.ts.map +1 -1
  59. package/dist/runtime/core/callable.js +45 -3
  60. package/dist/runtime/core/callable.js.map +1 -1
  61. package/dist/runtime/core/context.d.ts.map +1 -1
  62. package/dist/runtime/core/context.js +1 -0
  63. package/dist/runtime/core/context.js.map +1 -1
  64. package/dist/runtime/core/equals.js +28 -1
  65. package/dist/runtime/core/equals.js.map +1 -1
  66. package/dist/runtime/core/eval/base.d.ts.map +1 -1
  67. package/dist/runtime/core/eval/base.js +4 -1
  68. package/dist/runtime/core/eval/base.js.map +1 -1
  69. package/dist/runtime/core/eval/mixins/closures.d.ts.map +1 -1
  70. package/dist/runtime/core/eval/mixins/closures.js +71 -0
  71. package/dist/runtime/core/eval/mixins/closures.js.map +1 -1
  72. package/dist/runtime/core/eval/mixins/control-flow.d.ts.map +1 -1
  73. package/dist/runtime/core/eval/mixins/control-flow.js +83 -0
  74. package/dist/runtime/core/eval/mixins/control-flow.js.map +1 -1
  75. package/dist/runtime/core/eval/mixins/core.d.ts.map +1 -1
  76. package/dist/runtime/core/eval/mixins/core.js +308 -7
  77. package/dist/runtime/core/eval/mixins/core.js.map +1 -1
  78. package/dist/runtime/core/eval/mixins/literals.d.ts +2 -0
  79. package/dist/runtime/core/eval/mixins/literals.d.ts.map +1 -1
  80. package/dist/runtime/core/eval/mixins/literals.js +389 -5
  81. package/dist/runtime/core/eval/mixins/literals.js.map +1 -1
  82. package/dist/runtime/core/eval/mixins/variables.d.ts.map +1 -1
  83. package/dist/runtime/core/eval/mixins/variables.js +42 -2
  84. package/dist/runtime/core/eval/mixins/variables.js.map +1 -1
  85. package/dist/runtime/core/execute.js +6 -6
  86. package/dist/runtime/core/execute.js.map +1 -1
  87. package/dist/runtime/ext/builtins.d.ts.map +1 -1
  88. package/dist/runtime/ext/builtins.js +66 -0
  89. package/dist/runtime/ext/builtins.js.map +1 -1
  90. package/dist/types.d.ts +47 -14
  91. package/dist/types.d.ts.map +1 -1
  92. package/dist/types.js +5 -0
  93. package/dist/types.js.map +1 -1
  94. package/docs/00_INDEX.md +2 -1
  95. package/docs/02_types.md +39 -2
  96. package/docs/04_operators.md +57 -0
  97. package/docs/05_control-flow.md +261 -2
  98. package/docs/06_closures.md +438 -4
  99. package/docs/09_strings.md +1 -1
  100. package/docs/11_reference.md +257 -11
  101. package/docs/12_examples.md +58 -55
  102. package/docs/14_host-integration.md +2 -0
  103. package/docs/15_grammar.ebnf +56 -5
  104. package/docs/18_design-principles.md +247 -0
  105. package/docs/99_llm-reference.txt +206 -10
  106. package/package.json +1 -1
@@ -6,12 +6,14 @@
6
6
  * - Tuple literals
7
7
  * - Dict literals with callable binding
8
8
  * - Closure creation with late binding
9
+ * - Block-closure creation for expression-position blocks
9
10
  *
10
11
  * Interface requirements (from spec):
11
12
  * - evaluateString(node) -> Promise<string>
12
13
  * - evaluateTuple(node) -> Promise<RillValue[]>
13
14
  * - evaluateDict(node) -> Promise<Record<string, RillValue>>
14
15
  * - createClosure(node) -> Promise<ScriptCallable>
16
+ * - createBlockClosure(node) -> ScriptCallable
15
17
  *
16
18
  * Error Handling:
17
19
  * - String interpolation errors propagate from evaluateExpression() [EC-6]
@@ -22,6 +24,77 @@
22
24
  import { RuntimeError, RILL_ERROR_CODES } from '../../../../types.js';
23
25
  import { formatValue, isReservedMethod } from '../../values.js';
24
26
  import { isCallable, } from '../../callable.js';
27
+ /**
28
+ * Capture annotation context at closure creation time.
29
+ *
30
+ * Evaluates annotation expressions in current context and returns structured object
31
+ * with closure-level and parameter-level annotations.
32
+ *
33
+ * Closure-level annotations are captured from the annotation stack (statement-level
34
+ * annotations like `^(doc: "test")` that precede the closure definition).
35
+ *
36
+ * @param ctx - Runtime context with annotation stack
37
+ * @param closureNode - Closure AST node with parameter annotations
38
+ * @param evaluateExpression - Expression evaluator function
39
+ * @returns Object with annotations and paramAnnotations as evaluated values
40
+ *
41
+ * @internal
42
+ */
43
+ async function captureClosureAnnotations(ctx, closureNode, evaluateExpression) {
44
+ // Capture closure-level annotations from annotation stack
45
+ // When a closure is created within an annotated statement like:
46
+ // ^(doc: "test") |x|($x * 2) :> $fn
47
+ // The annotation stack contains the evaluated annotations from the statement
48
+ const annotations = ctx.annotationStack.at(-1) ?? {};
49
+ // Capture parameter-level annotations
50
+ const paramAnnotations = {};
51
+ for (const param of closureNode.params) {
52
+ if (param.annotations && param.annotations.length > 0) {
53
+ const paramAnnots = await evaluateAnnotations(param.annotations, evaluateExpression);
54
+ paramAnnotations[param.name] = paramAnnots;
55
+ }
56
+ }
57
+ return { annotations, paramAnnotations };
58
+ }
59
+ /**
60
+ * Evaluate annotation arguments to a dict of key-value pairs.
61
+ * Handles both named arguments and spread arguments.
62
+ *
63
+ * @param annotations - Annotation arguments from AST
64
+ * @param evaluateExpression - Expression evaluator function
65
+ * @returns Record of annotation key-value pairs
66
+ *
67
+ * @internal
68
+ */
69
+ async function evaluateAnnotations(annotations, evaluateExpression) {
70
+ const result = {};
71
+ for (const arg of annotations) {
72
+ if (arg.type === 'NamedArg') {
73
+ const namedArg = arg;
74
+ result[namedArg.name] = await evaluateExpression(namedArg.value);
75
+ }
76
+ else {
77
+ // SpreadArg: spread tuple/dict keys as annotations
78
+ const spreadArg = arg;
79
+ const spreadValue = await evaluateExpression(spreadArg.expression);
80
+ if (typeof spreadValue === 'object' &&
81
+ spreadValue !== null &&
82
+ !Array.isArray(spreadValue) &&
83
+ !isCallable(spreadValue)) {
84
+ // Dict: spread all key-value pairs
85
+ Object.assign(result, spreadValue);
86
+ }
87
+ else if (Array.isArray(spreadValue)) {
88
+ // Tuple/list: not valid for annotations (need named keys)
89
+ throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_TYPE_ERROR, 'Annotation spread requires dict with named keys, got list', spreadArg.span.start);
90
+ }
91
+ else {
92
+ throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_TYPE_ERROR, `Annotation spread requires dict, got ${typeof spreadValue}`, spreadArg.span.start);
93
+ }
94
+ }
95
+ }
96
+ return result;
97
+ }
25
98
  /**
26
99
  * LiteralsMixin implementation.
27
100
  *
@@ -39,6 +112,7 @@ import { isCallable, } from '../../callable.js';
39
112
  * - evaluateTuple(node) -> Promise<RillValue[]>
40
113
  * - evaluateDict(node) -> Promise<Record<string, RillValue>>
41
114
  * - createClosure(node) -> Promise<ScriptCallable>
115
+ * - createBlockClosure(node) -> ScriptCallable
42
116
  */
43
117
  function createLiteralsMixin(Base) {
44
118
  return class LiteralsEvaluator extends Base {
@@ -89,24 +163,41 @@ function createLiteralsMixin(Base) {
89
163
  * All callables in the dict are bound to the containing dict via boundDict property.
90
164
  *
91
165
  * Reserved method names (keys, values, entries) cannot be used as dict keys.
166
+ * Multi-key entries (tuple keys) are not supported in dict literals, only in dispatch.
92
167
  * Errors from value evaluation propagate to caller.
93
168
  */
94
169
  async evaluateDict(node) {
95
170
  const result = {};
96
171
  for (const entry of node.entries) {
97
- if (isReservedMethod(entry.key)) {
98
- throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_TYPE_ERROR, `Cannot use reserved method name '${entry.key}' as dict key`, entry.span.start, { key: entry.key, reservedMethods: ['keys', 'values', 'entries'] });
172
+ // Multi-key entries (tuple keys) only valid in dict dispatch, not dict literals
173
+ if (typeof entry.key === 'object') {
174
+ throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_TYPE_ERROR, 'Dict literal keys must be identifiers, not lists', entry.span.start, { entry });
175
+ }
176
+ // Convert number and boolean keys to strings per IR-3
177
+ // String keys: use directly as object property
178
+ // Number keys: convert to string via String(key)
179
+ // Boolean keys: convert to string via String(key)
180
+ const stringKey = String(entry.key);
181
+ if (isReservedMethod(stringKey)) {
182
+ throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_TYPE_ERROR, `Cannot use reserved method name '${stringKey}' as dict key`, entry.span.start, { key: stringKey, reservedMethods: ['keys', 'values', 'entries'] });
99
183
  }
100
- if (this.isClosureExpr(entry.value)) {
184
+ if (this.isBlockExpr(entry.value)) {
185
+ // Safe cast: isBlockExpr ensures head is PostfixExpr with Block primary
186
+ const head = entry.value.head;
187
+ const blockNode = head.primary;
188
+ const closure = this.createBlockClosure(blockNode);
189
+ result[stringKey] = closure;
190
+ }
191
+ else if (this.isClosureExpr(entry.value)) {
101
192
  // Safe cast: isClosureExpr ensures head is PostfixExpr with Closure primary
102
193
  const head = entry.value.head;
103
194
  const fnLit = head.primary;
104
195
  const closure = await this.createClosure(fnLit);
105
- result[entry.key] = closure;
196
+ result[stringKey] = closure;
106
197
  }
107
198
  else {
108
199
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
109
- result[entry.key] = await this.evaluateExpression(entry.value);
200
+ result[stringKey] = await this.evaluateExpression(entry.value);
110
201
  }
111
202
  }
112
203
  // Bind all callables to the containing dict
@@ -121,6 +212,245 @@ function createLiteralsMixin(Base) {
121
212
  }
122
213
  return result;
123
214
  }
215
+ /**
216
+ * Evaluate dict as dispatch table when piped [IR-2].
217
+ *
218
+ * Searches dict entries for key matching piped value using type-aware deep equality.
219
+ * Returns matched value. Auto-invokes if matched value is closure.
220
+ *
221
+ * Type-aware matching ensures:
222
+ * - Number key 1 matches only number input 1, not string "1"
223
+ * - Boolean key true matches only boolean input true, not string "true"
224
+ *
225
+ * Multi-key support: [["k1", "k2"]: value] syntax allows multiple keys
226
+ * to map to the same value. Key tuple is evaluated to get list of candidates.
227
+ *
228
+ * @param node - DictNode representing dispatch table
229
+ * @param input - Piped value to use as lookup key
230
+ * @returns Matched value (auto-invoked if closure)
231
+ * @throws RuntimeError with RUNTIME_PROPERTY_NOT_FOUND if no match and no default [EC-4]
232
+ */
233
+ async evaluateDictDispatch(node, input) {
234
+ // Import deepEquals for type-aware key matching
235
+ const { deepEquals } = await import('../../values.js');
236
+ // Search entries for matching key (process in order, return first match)
237
+ for (const entry of node.entries) {
238
+ let matchFound = false;
239
+ if (typeof entry.key === 'object') {
240
+ // Tuple key - evaluate to get list of candidates
241
+ // Parser ensures entry.key is TupleNode, evaluateTuple always returns array
242
+ const keyValue = await this.evaluateTuple(entry.key);
243
+ // Check if input matches any element in the list (type-aware)
244
+ for (const candidate of keyValue) {
245
+ if (deepEquals(input, candidate)) {
246
+ matchFound = true;
247
+ break;
248
+ }
249
+ }
250
+ }
251
+ else {
252
+ // Primitive key (string, number, or boolean) - type-aware comparison
253
+ // deepEquals ensures number 1 != string "1", boolean true != string "true"
254
+ matchFound = deepEquals(input, entry.key);
255
+ }
256
+ if (matchFound) {
257
+ // Found match - evaluate and return the value
258
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
259
+ const matchedValue = await this.evaluateExpression(entry.value);
260
+ return this.resolveDispatchValue(matchedValue, input, node);
261
+ }
262
+ }
263
+ // No match found - check for default value
264
+ if (node.defaultValue) {
265
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
266
+ return await this.evaluateExpression(node.defaultValue);
267
+ }
268
+ // No match and no default - throw RUNTIME_PROPERTY_NOT_FOUND [EC-4]
269
+ const location = node.span?.start;
270
+ throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_PROPERTY_NOT_FOUND, `Dict dispatch: key '${formatValue(input)}' not found`, location, { key: input });
271
+ }
272
+ /**
273
+ * Evaluate list literal as dispatch table when piped.
274
+ *
275
+ * Takes numeric index and returns element at that position.
276
+ * Supports negative indices and default values.
277
+ *
278
+ * @param node - TupleNode representing list literal
279
+ * @param input - Piped value to use as index (must be number)
280
+ * @returns Element at index
281
+ * @throws RuntimeError if input not number or index out of bounds
282
+ */
283
+ async evaluateListDispatch(node, input) {
284
+ // Validate input is number
285
+ if (typeof input !== 'number') {
286
+ throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_TYPE_ERROR, `List dispatch requires number index, got ${typeof input}`, node.span?.start, { input, expectedType: 'number' });
287
+ }
288
+ // Evaluate all elements to get the list
289
+ const elements = await this.evaluateTuple(node);
290
+ // Truncate decimal to integer
291
+ const index = Math.trunc(input);
292
+ // Normalize negative indices
293
+ const normalizedIndex = index < 0 ? elements.length + index : index;
294
+ // Check bounds
295
+ if (normalizedIndex < 0 || normalizedIndex >= elements.length) {
296
+ // Check for default value
297
+ if (node.defaultValue) {
298
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
299
+ return await this.evaluateExpression(node.defaultValue);
300
+ }
301
+ // No match and no default - throw error
302
+ throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_PROPERTY_NOT_FOUND, `List dispatch: index '${index}' not found`, node.span?.start, { index, listLength: elements.length });
303
+ }
304
+ // Return element at normalized index
305
+ return elements[normalizedIndex];
306
+ }
307
+ /**
308
+ * Resolve dispatch value: auto-invoke if closure, otherwise return as-is.
309
+ * Zero-param closures (block-closures) are invoked with args = [] and pipeValue = input.
310
+ * Parameterized closures (1+ params) throw error.
311
+ */
312
+ async resolveDispatchValue(value, input, node) {
313
+ if (isCallable(value)) {
314
+ // Check for parameterized closure (explicit user-defined params)
315
+ // Note: Block-closures have exactly 1 param named '$'
316
+ // Parameterized closures have 1+ params with user-defined names
317
+ if (value.kind === 'script' && value.params.length >= 1) {
318
+ // Check if first param is '$' (block-closure) or user-defined (parameterized)
319
+ if (value.params[0].name !== '$') {
320
+ // Parameterized closure at terminal position: error
321
+ throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_TYPE_ERROR, 'Dispatch does not provide arguments for parameterized closure', node.span?.start);
322
+ }
323
+ }
324
+ // Check if callable has params to determine invocation style
325
+ const hasParams = (value.kind === 'script' && value.params.length > 0) ||
326
+ (value.kind === 'application' &&
327
+ value.params !== undefined &&
328
+ value.params.length > 0);
329
+ if (hasParams) {
330
+ // Application callable with params: invoke with input as argument
331
+ // Note: Script callables with params already threw error above
332
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
333
+ return await this.invokeCallable(value, [input], node.span?.start);
334
+ }
335
+ else {
336
+ // Zero-param closure: invoke with args = [] and pipeValue = input
337
+ const savedPipeValue = this.ctx.pipeValue;
338
+ this.ctx.pipeValue = input;
339
+ try {
340
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
341
+ const result = await this.invokeCallable(value, [], node.span?.start);
342
+ return result;
343
+ }
344
+ finally {
345
+ this.ctx.pipeValue = savedPipeValue;
346
+ }
347
+ }
348
+ }
349
+ return value;
350
+ }
351
+ /**
352
+ * Runtime dict dispatch for variables: search dict for matching key.
353
+ * Supports multi-key entries, auto-invokes closures, handles default values.
354
+ *
355
+ * @param dict - Runtime dict value
356
+ * @param input - Key to search for
357
+ * @param defaultValue - Optional default value expression node
358
+ * @param location - Source location for error reporting
359
+ * @returns Matched value or default
360
+ */
361
+ async dispatchToDict(dict, input, defaultValue, location, skipClosureResolution = false) {
362
+ const { deepEquals } = await import('../../values.js');
363
+ // Search dict entries for matching key
364
+ for (const [key, value] of Object.entries(dict)) {
365
+ // Simple key match using deep equality
366
+ if (deepEquals(input, key)) {
367
+ // Skip closure resolution for hierarchical dispatch (caller handles it)
368
+ if (skipClosureResolution) {
369
+ return value;
370
+ }
371
+ // Auto-invoke closures if needed
372
+ return this.resolveDispatchValueRuntime(value, input, location);
373
+ }
374
+ }
375
+ // No match found - check for default value
376
+ if (defaultValue) {
377
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
378
+ return await this.evaluateExpression(defaultValue);
379
+ }
380
+ // No match and no default - throw error
381
+ const loc = location.span?.start;
382
+ throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_PROPERTY_NOT_FOUND, `Dict dispatch: key '${formatValue(input)}' not found`, loc, { key: input });
383
+ }
384
+ /**
385
+ * Runtime list dispatch for variables: return element at numeric index.
386
+ * Supports negative indices, auto-invokes closures, handles default values.
387
+ *
388
+ * @param list - Runtime list value
389
+ * @param input - Index value (must be number)
390
+ * @param defaultValue - Optional default value expression node
391
+ * @param location - Source location for error reporting
392
+ * @returns Element at index or default
393
+ */
394
+ async dispatchToList(list, input, defaultValue, location, skipClosureResolution = false) {
395
+ // Validate input is number
396
+ if (typeof input !== 'number') {
397
+ throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_TYPE_ERROR, `List dispatch requires number index, got ${typeof input}`, location.span?.start, { input, expectedType: 'number' });
398
+ }
399
+ // Truncate decimal to integer
400
+ const index = Math.trunc(input);
401
+ // Normalize negative indices
402
+ const normalizedIndex = index < 0 ? list.length + index : index;
403
+ // Check bounds
404
+ if (normalizedIndex < 0 || normalizedIndex >= list.length) {
405
+ // Check for default value
406
+ if (defaultValue) {
407
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
408
+ return await this.evaluateExpression(defaultValue);
409
+ }
410
+ // No default - throw error
411
+ throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_PROPERTY_NOT_FOUND, `List dispatch: index '${index}' not found`, location.span?.start, { index, listLength: list.length });
412
+ }
413
+ // Return element at normalized index
414
+ const element = list[normalizedIndex];
415
+ // Skip closure resolution for hierarchical dispatch (caller handles it)
416
+ if (skipClosureResolution) {
417
+ return element;
418
+ }
419
+ // Auto-invoke closures if needed
420
+ return this.resolveDispatchValueRuntime(element, input, location);
421
+ }
422
+ /**
423
+ * Resolve dispatch value for runtime values: auto-invoke if closure.
424
+ * Similar to resolveDispatchValue but works with runtime values.
425
+ */
426
+ async resolveDispatchValueRuntime(value, input, location) {
427
+ if (isCallable(value)) {
428
+ // Check if callable has params to determine invocation style
429
+ const hasParams = (value.kind === 'script' && value.params.length > 0) ||
430
+ (value.kind === 'application' &&
431
+ value.params !== undefined &&
432
+ value.params.length > 0);
433
+ if (hasParams) {
434
+ // Block-closure: invoke with input as argument
435
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
436
+ return await this.invokeCallable(value, [input], location.span?.start);
437
+ }
438
+ else {
439
+ // Zero-param closure: invoke with args = [] and pipeValue = input
440
+ const savedPipeValue = this.ctx.pipeValue;
441
+ this.ctx.pipeValue = input;
442
+ try {
443
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
444
+ const result = await this.invokeCallable(value, [], location.span?.start);
445
+ return result;
446
+ }
447
+ finally {
448
+ this.ctx.pipeValue = savedPipeValue;
449
+ }
450
+ }
451
+ }
452
+ return value;
453
+ }
124
454
  /**
125
455
  * Create a script callable from a closure node.
126
456
  * Closures use late binding - variables are resolved in definingScope when invoked.
@@ -131,6 +461,10 @@ function createLiteralsMixin(Base) {
131
461
  async createClosure(node) {
132
462
  // Store reference to the defining scope for late-bound variable resolution
133
463
  const definingScope = this.ctx;
464
+ // Capture annotations at closure creation time
465
+ const { annotations, paramAnnotations } = await captureClosureAnnotations(this.ctx, node,
466
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
467
+ this.evaluateExpression.bind(this));
134
468
  const params = [];
135
469
  for (const param of node.params) {
136
470
  let defaultValue = null;
@@ -142,6 +476,7 @@ function createLiteralsMixin(Base) {
142
476
  name: param.name,
143
477
  typeName: param.typeName,
144
478
  defaultValue,
479
+ annotations: paramAnnotations[param.name] ?? {},
145
480
  });
146
481
  }
147
482
  const isProperty = params.length === 0;
@@ -152,6 +487,38 @@ function createLiteralsMixin(Base) {
152
487
  body: node.body,
153
488
  definingScope,
154
489
  isProperty,
490
+ annotations,
491
+ paramAnnotations,
492
+ };
493
+ }
494
+ /**
495
+ * Create a script callable from a block node in expression position.
496
+ * Block-closures have a single implicit $ parameter representing the piped value.
497
+ *
498
+ * No default parameter evaluation since the implicit $ has no default.
499
+ * isProperty is always false (block-closures require $).
500
+ */
501
+ createBlockClosure(node) {
502
+ // Store reference to the defining scope for late-bound variable resolution
503
+ const definingScope = this.ctx;
504
+ // Block-closures have exactly one parameter: $
505
+ const params = [
506
+ {
507
+ name: '$',
508
+ typeName: null,
509
+ defaultValue: null,
510
+ annotations: {}, // Block closures have no parameter annotations
511
+ },
512
+ ];
513
+ return {
514
+ __type: 'callable',
515
+ kind: 'script',
516
+ params,
517
+ body: node,
518
+ definingScope,
519
+ isProperty: false,
520
+ annotations: {}, // Block closures: no annotation support (expression-position blocks)
521
+ paramAnnotations: {}, // Block closures have no parameter annotations
155
522
  };
156
523
  }
157
524
  /**
@@ -171,6 +538,23 @@ function createLiteralsMixin(Base) {
171
538
  return false;
172
539
  return head.primary.type === 'Closure';
173
540
  }
541
+ /**
542
+ * Helper: Check if expression is a bare block (no pipes, no methods).
543
+ * Used to detect dict entries that should be treated as block closures.
544
+ */
545
+ isBlockExpr(expr) {
546
+ if (expr.type !== 'PipeChain')
547
+ return false;
548
+ const chain = expr;
549
+ if (chain.pipes.length > 0)
550
+ return false;
551
+ if (chain.head.type !== 'PostfixExpr')
552
+ return false;
553
+ const head = chain.head;
554
+ if (head.methods.length > 0)
555
+ return false;
556
+ return head.primary.type === 'Block';
557
+ }
174
558
  };
175
559
  }
176
560
  // Export with type assertion to work around TS4094 limitation
@@ -1 +1 @@
1
- {"version":3,"file":"literals.js","sourceRoot":"","sources":["../../../../../src/runtime/core/eval/mixins/literals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAWH,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EACL,UAAU,GAGX,MAAM,mBAAmB,CAAC;AAI3B;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAS,mBAAmB,CAAC,IAAyC;IACpE,OAAO,MAAM,iBAAkB,SAAQ,IAAI;QACzC;;;;;;WAMG;QACO,KAAK,CAAC,cAAc,CAAC,IAAuB;YACpD,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,+DAA+D;YAC/D,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;YAC1C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC9B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,MAAM,IAAI,IAAI,CAAC;gBACjB,CAAC;qBAAM,CAAC;oBACN,6CAA6C;oBAC7C,6EAA6E;oBAC7E,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,cAAc,CAAC;oBACpC,8DAA8D;oBAC9D,MAAM,KAAK,GAAG,MAAO,IAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBACtE,MAAM,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;YACD,4CAA4C;YAC5C,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,cAAc,CAAC;YACpC,OAAO,MAAM,CAAC;QAChB,CAAC;QAED;;;;;WAKG;QACO,KAAK,CAAC,aAAa,CAAC,IAAe;YAC3C,MAAM,QAAQ,GAAgB,EAAE,CAAC;YACjC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACjC,8DAA8D;gBAC9D,QAAQ,CAAC,IAAI,CAAC,MAAO,IAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9D,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED;;;;;;WAMG;QACO,KAAK,CAAC,YAAY,CAC1B,IAAc;YAEd,MAAM,MAAM,GAA8B,EAAE,CAAC;YAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjC,IAAI,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChC,MAAM,IAAI,YAAY,CACpB,gBAAgB,CAAC,kBAAkB,EACnC,oCAAoC,KAAK,CAAC,GAAG,eAAe,EAC5D,KAAK,CAAC,IAAI,CAAC,KAAK,EAChB,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,eAAe,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,CACnE,CAAC;gBACJ,CAAC;gBAED,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;oBACpC,4EAA4E;oBAC5E,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAuB,CAAC;oBACjD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAsB,CAAC;oBAC1C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAChD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACN,8DAA8D;oBAC9D,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,MAAO,IAAY,CAAC,kBAAkB,CACxD,KAAK,CAAC,KAAK,CACZ,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,4CAA4C;YAC5C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC1B,IAAI,KAAK,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC7C,MAAM,CAAC,GAAG,CAAC,GAAG;wBACZ,GAAG,KAAK;wBACR,SAAS,EAAE,MAAM;qBAClB,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAED;;;;;;WAMG;QACO,KAAK,CAAC,aAAa,CAAC,IAAiB;YAC7C,2EAA2E;YAC3E,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC;YAE/B,MAAM,MAAM,GAAoB,EAAE,CAAC;YACnC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChC,IAAI,YAAY,GAAqB,IAAI,CAAC;gBAC1C,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;oBACvB,8DAA8D;oBAC9D,YAAY,GAAG,MAAO,IAAY,CAAC,eAAe,CAChD,KAAK,CAAC,YAAY,CACnB,CAAC;gBACJ,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,YAAY;iBACb,CAAC,CAAC;YACL,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;YAEvC,OAAO;gBACL,MAAM,EAAE,UAAU;gBAClB,IAAI,EAAE,QAAQ;gBACd,MAAM;gBACN,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,aAAa;gBACb,UAAU;aACX,CAAC;QACJ,CAAC;QAED;;;WAGG;QACK,aAAa,CAAC,IAAoB;YACxC,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;gBAAE,OAAO,KAAK,CAAC;YAC5C,MAAM,KAAK,GAAG,IAAqB,CAAC;YACpC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YACzC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa;gBAAE,OAAO,KAAK,CAAC;YACpD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAuB,CAAC;YAC3C,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC;QACzC,CAAC;KACF,CAAC;AACJ,CAAC;AAED,8DAA8D;AAC9D,gGAAgG;AAChG,8DAA8D;AAC9D,MAAM,CAAC,MAAM,aAAa,GAAG,mBAA0B,CAAC"}
1
+ {"version":3,"file":"literals.js","sourceRoot":"","sources":["../../../../../src/runtime/core/eval/mixins/literals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAgBH,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EACL,UAAU,GAGX,MAAM,mBAAmB,CAAC;AAK3B;;;;;;;;;;;;;;;GAeG;AACH,KAAK,UAAU,yBAAyB,CACtC,GAAmB,EACnB,WAAwB,EACxB,kBAAgE;IAKhE,0DAA0D;IAC1D,gEAAgE;IAChE,oCAAoC;IACpC,6EAA6E;IAC7E,MAAM,WAAW,GACf,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEnC,sCAAsC;IACtC,MAAM,gBAAgB,GAA8C,EAAE,CAAC;IAEvE,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAC3C,KAAK,CAAC,WAAW,EACjB,kBAAkB,CACnB,CAAC;YACF,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;AAC3C,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,mBAAmB,CAChC,WAA4B,EAC5B,kBAAgE;IAEhE,MAAM,MAAM,GAA8B,EAAE,CAAC;IAE7C,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,GAAmB,CAAC;YACrC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACN,mDAAmD;YACnD,MAAM,SAAS,GAAG,GAAoB,CAAC;YACvC,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnE,IACE,OAAO,WAAW,KAAK,QAAQ;gBAC/B,WAAW,KAAK,IAAI;gBACpB,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC3B,CAAC,UAAU,CAAC,WAAW,CAAC,EACxB,CAAC;gBACD,mCAAmC;gBACnC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YACrC,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBACtC,0DAA0D;gBAC1D,MAAM,IAAI,YAAY,CACpB,gBAAgB,CAAC,kBAAkB,EACnC,2DAA2D,EAC3D,SAAS,CAAC,IAAI,CAAC,KAAK,CACrB,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,YAAY,CACpB,gBAAgB,CAAC,kBAAkB,EACnC,wCAAwC,OAAO,WAAW,EAAE,EAC5D,SAAS,CAAC,IAAI,CAAC,KAAK,CACrB,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAS,mBAAmB,CAAC,IAAyC;IACpE,OAAO,MAAM,iBAAkB,SAAQ,IAAI;QACzC;;;;;;WAMG;QACO,KAAK,CAAC,cAAc,CAAC,IAAuB;YACpD,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,+DAA+D;YAC/D,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;YAC1C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC9B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,MAAM,IAAI,IAAI,CAAC;gBACjB,CAAC;qBAAM,CAAC;oBACN,6CAA6C;oBAC7C,6EAA6E;oBAC7E,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,cAAc,CAAC;oBACpC,8DAA8D;oBAC9D,MAAM,KAAK,GAAG,MAAO,IAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBACtE,MAAM,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;YACD,4CAA4C;YAC5C,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,cAAc,CAAC;YACpC,OAAO,MAAM,CAAC;QAChB,CAAC;QAED;;;;;WAKG;QACO,KAAK,CAAC,aAAa,CAAC,IAAe;YAC3C,MAAM,QAAQ,GAAgB,EAAE,CAAC;YACjC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACjC,8DAA8D;gBAC9D,QAAQ,CAAC,IAAI,CAAC,MAAO,IAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9D,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED;;;;;;;WAOG;QACO,KAAK,CAAC,YAAY,CAC1B,IAAc;YAEd,MAAM,MAAM,GAA8B,EAAE,CAAC;YAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjC,gFAAgF;gBAChF,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;oBAClC,MAAM,IAAI,YAAY,CACpB,gBAAgB,CAAC,kBAAkB,EACnC,kDAAkD,EAClD,KAAK,CAAC,IAAI,CAAC,KAAK,EAChB,EAAE,KAAK,EAAE,CACV,CAAC;gBACJ,CAAC;gBAED,sDAAsD;gBACtD,+CAA+C;gBAC/C,iDAAiD;gBACjD,kDAAkD;gBAClD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAEpC,IAAI,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;oBAChC,MAAM,IAAI,YAAY,CACpB,gBAAgB,CAAC,kBAAkB,EACnC,oCAAoC,SAAS,eAAe,EAC5D,KAAK,CAAC,IAAI,CAAC,KAAK,EAChB,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,CACnE,CAAC;gBACJ,CAAC;gBAED,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;oBAClC,wEAAwE;oBACxE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAuB,CAAC;oBACjD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAoB,CAAC;oBAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;oBACnD,MAAM,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;gBAC9B,CAAC;qBAAM,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC3C,4EAA4E;oBAC5E,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAuB,CAAC;oBACjD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAsB,CAAC;oBAC1C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAChD,MAAM,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACN,8DAA8D;oBAC9D,MAAM,CAAC,SAAS,CAAC,GAAG,MAAO,IAAY,CAAC,kBAAkB,CACxD,KAAK,CAAC,KAAK,CACZ,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,4CAA4C;YAC5C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC1B,IAAI,KAAK,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC7C,MAAM,CAAC,GAAG,CAAC,GAAG;wBACZ,GAAG,KAAK;wBACR,SAAS,EAAE,MAAM;qBAClB,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAED;;;;;;;;;;;;;;;;;WAiBG;QACO,KAAK,CAAC,oBAAoB,CAClC,IAAc,EACd,KAAgB;YAEhB,gDAAgD;YAChD,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAEvD,yEAAyE;YACzE,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjC,IAAI,UAAU,GAAG,KAAK,CAAC;gBAEvB,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;oBAClC,iDAAiD;oBACjD,4EAA4E;oBAC5E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAErD,8DAA8D;oBAC9D,KAAK,MAAM,SAAS,IAAI,QAAQ,EAAE,CAAC;wBACjC,IAAI,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;4BACjC,UAAU,GAAG,IAAI,CAAC;4BAClB,MAAM;wBACR,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,qEAAqE;oBACrE,2EAA2E;oBAC3E,UAAU,GAAG,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC5C,CAAC;gBAED,IAAI,UAAU,EAAE,CAAC;oBACf,8CAA8C;oBAC9C,8DAA8D;oBAC9D,MAAM,YAAY,GAAG,MAAO,IAAY,CAAC,kBAAkB,CACzD,KAAK,CAAC,KAAK,CACZ,CAAC;oBACF,OAAO,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC9D,CAAC;YACH,CAAC;YAED,2CAA2C;YAC3C,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,8DAA8D;gBAC9D,OAAO,MAAO,IAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACnE,CAAC;YAED,oEAAoE;YACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;YAClC,MAAM,IAAI,YAAY,CACpB,gBAAgB,CAAC,0BAA0B,EAC3C,uBAAuB,WAAW,CAAC,KAAK,CAAC,aAAa,EACtD,QAAQ,EACR,EAAE,GAAG,EAAE,KAAK,EAAE,CACf,CAAC;QACJ,CAAC;QAED;;;;;;;;;;WAUG;QACO,KAAK,CAAC,oBAAoB,CAClC,IAAe,EACf,KAAgB;YAEhB,2BAA2B;YAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,IAAI,YAAY,CACpB,gBAAgB,CAAC,kBAAkB,EACnC,4CAA4C,OAAO,KAAK,EAAE,EAC1D,IAAI,CAAC,IAAI,EAAE,KAAK,EAChB,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,CAClC,CAAC;YACJ,CAAC;YAED,wCAAwC;YACxC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAEhD,8BAA8B;YAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAEhC,6BAA6B;YAC7B,MAAM,eAAe,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YAEpE,eAAe;YACf,IAAI,eAAe,GAAG,CAAC,IAAI,eAAe,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAC9D,0BAA0B;gBAC1B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBACtB,8DAA8D;oBAC9D,OAAO,MAAO,IAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACnE,CAAC;gBAED,wCAAwC;gBACxC,MAAM,IAAI,YAAY,CACpB,gBAAgB,CAAC,0BAA0B,EAC3C,yBAAyB,KAAK,aAAa,EAC3C,IAAI,CAAC,IAAI,EAAE,KAAK,EAChB,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,CACvC,CAAC;YACJ,CAAC;YAED,qCAAqC;YACrC,OAAO,QAAQ,CAAC,eAAe,CAAE,CAAC;QACpC,CAAC;QAED;;;;WAIG;QACK,KAAK,CAAC,oBAAoB,CAChC,KAAgB,EAChB,KAAgB,EAChB,IAAc;YAEd,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,iEAAiE;gBACjE,sDAAsD;gBACtD,gEAAgE;gBAChE,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACxD,8EAA8E;oBAC9E,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;wBAClC,oDAAoD;wBACpD,MAAM,IAAI,YAAY,CACpB,gBAAgB,CAAC,kBAAkB,EACnC,+DAA+D,EAC/D,IAAI,CAAC,IAAI,EAAE,KAAK,CACjB,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,6DAA6D;gBAC7D,MAAM,SAAS,GACb,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;oBACpD,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa;wBAC3B,KAAK,CAAC,MAAM,KAAK,SAAS;wBAC1B,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAE7B,IAAI,SAAS,EAAE,CAAC;oBACd,kEAAkE;oBAClE,+DAA+D;oBAC/D,8DAA8D;oBAC9D,OAAO,MAAO,IAAY,CAAC,cAAc,CACvC,KAAK,EACL,CAAC,KAAK,CAAC,EACP,IAAI,CAAC,IAAI,EAAE,KAAK,CACjB,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,kEAAkE;oBAClE,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;oBAC1C,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;oBAC3B,IAAI,CAAC;wBACH,8DAA8D;wBAC9D,MAAM,MAAM,GAAG,MAAO,IAAY,CAAC,cAAc,CAC/C,KAAK,EACL,EAAE,EACF,IAAI,CAAC,IAAI,EAAE,KAAK,CACjB,CAAC;wBACF,OAAO,MAAM,CAAC;oBAChB,CAAC;4BAAS,CAAC;wBACT,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,cAAc,CAAC;oBACtC,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED;;;;;;;;;WASG;QACO,KAAK,CAAC,cAAc,CAC5B,IAA+B,EAC/B,KAAgB,EAChB,YAAmC,EACnC,QAEC,EACD,qBAAqB,GAAG,KAAK;YAE7B,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAEvD,uCAAuC;YACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChD,uCAAuC;gBACvC,IAAI,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;oBAC3B,wEAAwE;oBACxE,IAAI,qBAAqB,EAAE,CAAC;wBAC1B,OAAO,KAAK,CAAC;oBACf,CAAC;oBACD,iCAAiC;oBACjC,OAAO,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC;YAED,2CAA2C;YAC3C,IAAI,YAAY,EAAE,CAAC;gBACjB,8DAA8D;gBAC9D,OAAO,MAAO,IAAY,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;YAC9D,CAAC;YAED,wCAAwC;YACxC,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;YACjC,MAAM,IAAI,YAAY,CACpB,gBAAgB,CAAC,0BAA0B,EAC3C,uBAAuB,WAAW,CAAC,KAAK,CAAC,aAAa,EACtD,GAAG,EACH,EAAE,GAAG,EAAE,KAAK,EAAE,CACf,CAAC;QACJ,CAAC;QAED;;;;;;;;;WASG;QACO,KAAK,CAAC,cAAc,CAC5B,IAAiB,EACjB,KAAgB,EAChB,YAAmC,EACnC,QAEC,EACD,qBAAqB,GAAG,KAAK;YAE7B,2BAA2B;YAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,IAAI,YAAY,CACpB,gBAAgB,CAAC,kBAAkB,EACnC,4CAA4C,OAAO,KAAK,EAAE,EAC1D,QAAQ,CAAC,IAAI,EAAE,KAAK,EACpB,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,CAClC,CAAC;YACJ,CAAC;YAED,8BAA8B;YAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAEhC,6BAA6B;YAC7B,MAAM,eAAe,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YAEhE,eAAe;YACf,IAAI,eAAe,GAAG,CAAC,IAAI,eAAe,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC1D,0BAA0B;gBAC1B,IAAI,YAAY,EAAE,CAAC;oBACjB,8DAA8D;oBAC9D,OAAO,MAAO,IAAY,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;gBAC9D,CAAC;gBAED,2BAA2B;gBAC3B,MAAM,IAAI,YAAY,CACpB,gBAAgB,CAAC,0BAA0B,EAC3C,yBAAyB,KAAK,aAAa,EAC3C,QAAQ,CAAC,IAAI,EAAE,KAAK,EACpB,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,CACnC,CAAC;YACJ,CAAC;YAED,qCAAqC;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAE,CAAC;YACvC,wEAAwE;YACxE,IAAI,qBAAqB,EAAE,CAAC;gBAC1B,OAAO,OAAO,CAAC;YACjB,CAAC;YACD,iCAAiC;YACjC,OAAO,IAAI,CAAC,2BAA2B,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACpE,CAAC;QAED;;;WAGG;QACK,KAAK,CAAC,2BAA2B,CACvC,KAAgB,EAChB,KAAgB,EAChB,QAEC;YAED,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,6DAA6D;gBAC7D,MAAM,SAAS,GACb,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;oBACpD,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa;wBAC3B,KAAK,CAAC,MAAM,KAAK,SAAS;wBAC1B,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAE7B,IAAI,SAAS,EAAE,CAAC;oBACd,+CAA+C;oBAC/C,8DAA8D;oBAC9D,OAAO,MAAO,IAAY,CAAC,cAAc,CACvC,KAAK,EACL,CAAC,KAAK,CAAC,EACP,QAAQ,CAAC,IAAI,EAAE,KAAK,CACrB,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,kEAAkE;oBAClE,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;oBAC1C,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;oBAC3B,IAAI,CAAC;wBACH,8DAA8D;wBAC9D,MAAM,MAAM,GAAG,MAAO,IAAY,CAAC,cAAc,CAC/C,KAAK,EACL,EAAE,EACF,QAAQ,CAAC,IAAI,EAAE,KAAK,CACrB,CAAC;wBACF,OAAO,MAAM,CAAC;oBAChB,CAAC;4BAAS,CAAC;wBACT,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,cAAc,CAAC;oBACtC,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED;;;;;;WAMG;QACO,KAAK,CAAC,aAAa,CAAC,IAAiB;YAC7C,2EAA2E;YAC3E,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC;YAE/B,+CAA+C;YAC/C,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,MAAM,yBAAyB,CACvE,IAAI,CAAC,GAAG,EACR,IAAI;YACJ,8DAA8D;YAC7D,IAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAC5C,CAAC;YAEF,MAAM,MAAM,GAAoB,EAAE,CAAC;YACnC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChC,IAAI,YAAY,GAAqB,IAAI,CAAC;gBAC1C,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;oBACvB,8DAA8D;oBAC9D,YAAY,GAAG,MAAO,IAAY,CAAC,eAAe,CAChD,KAAK,CAAC,YAAY,CACnB,CAAC;gBACJ,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,YAAY;oBACZ,WAAW,EAAE,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;iBAChD,CAAC,CAAC;YACL,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;YAEvC,OAAO;gBACL,MAAM,EAAE,UAAU;gBAClB,IAAI,EAAE,QAAQ;gBACd,MAAM;gBACN,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,aAAa;gBACb,UAAU;gBACV,WAAW;gBACX,gBAAgB;aACjB,CAAC;QACJ,CAAC;QAED;;;;;;WAMG;QACO,kBAAkB,CAAC,IAAe;YAC1C,2EAA2E;YAC3E,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC;YAE/B,+CAA+C;YAC/C,MAAM,MAAM,GAAoB;gBAC9B;oBACE,IAAI,EAAE,GAAG;oBACT,QAAQ,EAAE,IAAI;oBACd,YAAY,EAAE,IAAI;oBAClB,WAAW,EAAE,EAAE,EAAE,+CAA+C;iBACjE;aACF,CAAC;YAEF,OAAO;gBACL,MAAM,EAAE,UAAU;gBAClB,IAAI,EAAE,QAAQ;gBACd,MAAM;gBACN,IAAI,EAAE,IAAI;gBACV,aAAa;gBACb,UAAU,EAAE,KAAK;gBACjB,WAAW,EAAE,EAAE,EAAE,qEAAqE;gBACtF,gBAAgB,EAAE,EAAE,EAAE,+CAA+C;aACtE,CAAC;QACJ,CAAC;QAED;;;WAGG;QACK,aAAa,CAAC,IAAoB;YACxC,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;gBAAE,OAAO,KAAK,CAAC;YAC5C,MAAM,KAAK,GAAG,IAAqB,CAAC;YACpC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YACzC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa;gBAAE,OAAO,KAAK,CAAC;YACpD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAuB,CAAC;YAC3C,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC;QACzC,CAAC;QAED;;;WAGG;QACK,WAAW,CAAC,IAAoB;YACtC,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;gBAAE,OAAO,KAAK,CAAC;YAC5C,MAAM,KAAK,GAAG,IAAqB,CAAC;YACpC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YACzC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa;gBAAE,OAAO,KAAK,CAAC;YACpD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAuB,CAAC;YAC3C,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC;QACvC,CAAC;KACF,CAAC;AACJ,CAAC;AAED,8DAA8D;AAC9D,gGAAgG;AAChG,8DAA8D;AAC9D,MAAM,CAAC,MAAM,aAAa,GAAG,mBAA0B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"variables.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/core/eval/mixins/variables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAkjBH,eAAO,MAAM,cAAc,EAA2B,GAAG,CAAC"}
1
+ {"version":3,"file":"variables.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/core/eval/mixins/variables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAkmBH,eAAO,MAAM,cAAc,EAA2B,GAAG,CAAC"}
@@ -196,7 +196,23 @@ function createVariablesMixin(Base) {
196
196
  // Must be a FieldAccess
197
197
  if (access.kind === 'literal') {
198
198
  const field = access.field;
199
- if (isDict(value)) {
199
+ // Handle .params property on closures
200
+ if (field === 'params') {
201
+ if (isCallable(value)) {
202
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
203
+ value = await this.evaluateParamsProperty(value, this.getNodeLocation(node));
204
+ }
205
+ else {
206
+ // .params on non-callable: throw or return null based on default value
207
+ if (node.defaultValue !== null) {
208
+ value = null;
209
+ }
210
+ else {
211
+ throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_TYPE_ERROR, `Cannot access .params on ${inferType(value)}`, this.getNodeLocation(node), { actualType: inferType(value) });
212
+ }
213
+ }
214
+ }
215
+ else if (isDict(value)) {
200
216
  // Allow missing fields if there's a default value
201
217
  const allowMissing = node.defaultValue !== null;
202
218
  value = await this.accessDictField(value, field, this.getNodeLocation(node), allowMissing);
@@ -214,6 +230,27 @@ function createVariablesMixin(Base) {
214
230
  else if (access.kind === 'alternatives') {
215
231
  value = await this.evaluateFieldAccessAlternatives(access, value, node);
216
232
  }
233
+ else if (access.kind === 'annotation') {
234
+ // Annotation reflection: .^key
235
+ // Delegates to evaluateAnnotationAccess from ClosuresMixin
236
+ // Convert RUNTIME_UNDEFINED_ANNOTATION to null ONLY if defaultValue exists (for ?? coalescing)
237
+ try {
238
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
239
+ value = await this.evaluateAnnotationAccess(value, access.key, this.getNodeLocation(node));
240
+ }
241
+ catch (e) {
242
+ if (e instanceof RuntimeError &&
243
+ e.code === RILL_ERROR_CODES.RUNTIME_UNDEFINED_ANNOTATION &&
244
+ node.defaultValue !== null) {
245
+ // Convert missing annotation to null for ?? coalescing
246
+ value = null;
247
+ }
248
+ else {
249
+ // No default value: re-throw RUNTIME_UNDEFINED_ANNOTATION
250
+ throw e;
251
+ }
252
+ }
253
+ }
217
254
  else {
218
255
  // Other field access types (block)
219
256
  throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_TYPE_ERROR, `Field access kind '${access.kind}' not yet supported`, this.getNodeLocation(node));
@@ -349,8 +386,11 @@ function createVariablesMixin(Base) {
349
386
  if (dictValue !== undefined && dictValue !== null) {
350
387
  // Property-style callable: auto-invoke when accessed
351
388
  if (isCallable(dictValue) && dictValue.isProperty) {
389
+ // ApplicationCallable: pass [dict] as args (no boundDict mechanism)
390
+ // ScriptCallable: pass [] - dict is bound via boundDict -> pipeValue
391
+ const args = dictValue.kind === 'script' ? [] : [value];
352
392
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
353
- return await this.invokeCallable(dictValue, [value], this.getNodeLocation(node));
393
+ return await this.invokeCallable(dictValue, args, this.getNodeLocation(node));
354
394
  }
355
395
  return dictValue;
356
396
  }
@@ -1 +1 @@
1
- {"version":3,"file":"variables.js","sourceRoot":"","sources":["../../../../../src/runtime/core/eval/mixins/variables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"variables.js","sourceRoot":"","sources":["../../../../../src/runtime/core/eval/mixins/variables.ts"],"names":[],"mappings":"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"}