@rcrsr/rill 0.8.5 → 0.9.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.
Files changed (190) hide show
  1. package/dist/ast-nodes.d.ts +189 -49
  2. package/dist/ast-nodes.d.ts.map +1 -1
  3. package/dist/ast-unions.d.ts +1 -1
  4. package/dist/ast-unions.d.ts.map +1 -1
  5. package/dist/constants.d.ts +14 -0
  6. package/dist/constants.d.ts.map +1 -0
  7. package/dist/constants.js +29 -0
  8. package/dist/constants.js.map +1 -0
  9. package/dist/error-classes.d.ts +3 -1
  10. package/dist/error-classes.d.ts.map +1 -1
  11. package/dist/error-classes.js +11 -5
  12. package/dist/error-classes.js.map +1 -1
  13. package/dist/error-registry.d.ts.map +1 -1
  14. package/dist/error-registry.js +293 -9
  15. package/dist/error-registry.js.map +1 -1
  16. package/dist/ext/crypto/index.d.ts +2 -1
  17. package/dist/ext/crypto/index.d.ts.map +1 -1
  18. package/dist/ext/crypto/index.js +7 -0
  19. package/dist/ext/crypto/index.js.map +1 -1
  20. package/dist/ext/exec/index.d.ts +2 -1
  21. package/dist/ext/exec/index.d.ts.map +1 -1
  22. package/dist/ext/exec/index.js +6 -0
  23. package/dist/ext/exec/index.js.map +1 -1
  24. package/dist/ext/fetch/index.d.ts +2 -1
  25. package/dist/ext/fetch/index.d.ts.map +1 -1
  26. package/dist/ext/fetch/index.js +6 -0
  27. package/dist/ext/fetch/index.js.map +1 -1
  28. package/dist/ext/fs/index.d.ts +2 -1
  29. package/dist/ext/fs/index.d.ts.map +1 -1
  30. package/dist/ext/fs/index.js +3 -0
  31. package/dist/ext/fs/index.js.map +1 -1
  32. package/dist/ext/kv/index.d.ts +48 -12
  33. package/dist/ext/kv/index.d.ts.map +1 -1
  34. package/dist/ext/kv/index.js +225 -63
  35. package/dist/ext/kv/index.js.map +1 -1
  36. package/dist/ext/kv/store.d.ts +4 -0
  37. package/dist/ext/kv/store.d.ts.map +1 -1
  38. package/dist/ext/kv/store.js +14 -0
  39. package/dist/ext/kv/store.js.map +1 -1
  40. package/dist/generated/introspection-data.d.ts +1 -1
  41. package/dist/generated/introspection-data.d.ts.map +1 -1
  42. package/dist/generated/introspection-data.js +194 -185
  43. package/dist/generated/introspection-data.js.map +1 -1
  44. package/dist/generated/version-data.d.ts +1 -1
  45. package/dist/generated/version-data.js +3 -3
  46. package/dist/highlight-map.d.ts.map +1 -1
  47. package/dist/highlight-map.js +8 -2
  48. package/dist/highlight-map.js.map +1 -1
  49. package/dist/index.d.ts +2 -1
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +5 -1
  52. package/dist/index.js.map +1 -1
  53. package/dist/lexer/operators.d.ts.map +1 -1
  54. package/dist/lexer/operators.js +0 -2
  55. package/dist/lexer/operators.js.map +1 -1
  56. package/dist/lexer/readers.d.ts +18 -1
  57. package/dist/lexer/readers.d.ts.map +1 -1
  58. package/dist/lexer/readers.js +55 -0
  59. package/dist/lexer/readers.js.map +1 -1
  60. package/dist/parser/helpers.d.ts +8 -13
  61. package/dist/parser/helpers.d.ts.map +1 -1
  62. package/dist/parser/helpers.js +42 -35
  63. package/dist/parser/helpers.js.map +1 -1
  64. package/dist/parser/index.d.ts +1 -0
  65. package/dist/parser/index.d.ts.map +1 -1
  66. package/dist/parser/index.js +1 -0
  67. package/dist/parser/index.js.map +1 -1
  68. package/dist/parser/parser-collect.d.ts.map +1 -1
  69. package/dist/parser/parser-collect.js +34 -5
  70. package/dist/parser/parser-collect.js.map +1 -1
  71. package/dist/parser/parser-control.d.ts.map +1 -1
  72. package/dist/parser/parser-control.js +9 -0
  73. package/dist/parser/parser-control.js.map +1 -1
  74. package/dist/parser/parser-expr.d.ts +3 -1
  75. package/dist/parser/parser-expr.d.ts.map +1 -1
  76. package/dist/parser/parser-expr.js +377 -100
  77. package/dist/parser/parser-expr.js.map +1 -1
  78. package/dist/parser/parser-extract.d.ts +3 -5
  79. package/dist/parser/parser-extract.d.ts.map +1 -1
  80. package/dist/parser/parser-extract.js +37 -69
  81. package/dist/parser/parser-extract.js.map +1 -1
  82. package/dist/parser/parser-functions.d.ts +2 -2
  83. package/dist/parser/parser-functions.d.ts.map +1 -1
  84. package/dist/parser/parser-functions.js +112 -36
  85. package/dist/parser/parser-functions.js.map +1 -1
  86. package/dist/parser/parser-literals.d.ts +4 -3
  87. package/dist/parser/parser-literals.d.ts.map +1 -1
  88. package/dist/parser/parser-literals.js +257 -42
  89. package/dist/parser/parser-literals.js.map +1 -1
  90. package/dist/parser/parser-script.d.ts.map +1 -1
  91. package/dist/parser/parser-script.js +25 -12
  92. package/dist/parser/parser-script.js.map +1 -1
  93. package/dist/parser/parser-shape.d.ts +13 -0
  94. package/dist/parser/parser-shape.d.ts.map +1 -0
  95. package/dist/parser/parser-shape.js +72 -0
  96. package/dist/parser/parser-shape.js.map +1 -0
  97. package/dist/parser/parser-types.d.ts +21 -0
  98. package/dist/parser/parser-types.d.ts.map +1 -0
  99. package/dist/parser/parser-types.js +30 -0
  100. package/dist/parser/parser-types.js.map +1 -0
  101. package/dist/parser/parser-variables.d.ts.map +1 -1
  102. package/dist/parser/parser-variables.js +10 -1
  103. package/dist/parser/parser-variables.js.map +1 -1
  104. package/dist/runtime/core/callable.d.ts +25 -22
  105. package/dist/runtime/core/callable.d.ts.map +1 -1
  106. package/dist/runtime/core/callable.js +43 -36
  107. package/dist/runtime/core/callable.js.map +1 -1
  108. package/dist/runtime/core/context.d.ts.map +1 -1
  109. package/dist/runtime/core/context.js +8 -8
  110. package/dist/runtime/core/context.js.map +1 -1
  111. package/dist/runtime/core/equals.d.ts.map +1 -1
  112. package/dist/runtime/core/equals.js +142 -30
  113. package/dist/runtime/core/equals.js.map +1 -1
  114. package/dist/runtime/core/eval/base.d.ts +2 -2
  115. package/dist/runtime/core/eval/base.d.ts.map +1 -1
  116. package/dist/runtime/core/eval/evaluator.d.ts.map +1 -1
  117. package/dist/runtime/core/eval/evaluator.js +3 -1
  118. package/dist/runtime/core/eval/evaluator.js.map +1 -1
  119. package/dist/runtime/core/eval/index.d.ts +16 -1
  120. package/dist/runtime/core/eval/index.d.ts.map +1 -1
  121. package/dist/runtime/core/eval/index.js +22 -2
  122. package/dist/runtime/core/eval/index.js.map +1 -1
  123. package/dist/runtime/core/eval/mixins/annotations.d.ts.map +1 -1
  124. package/dist/runtime/core/eval/mixins/annotations.js +14 -8
  125. package/dist/runtime/core/eval/mixins/annotations.js.map +1 -1
  126. package/dist/runtime/core/eval/mixins/closures.d.ts +0 -2
  127. package/dist/runtime/core/eval/mixins/closures.d.ts.map +1 -1
  128. package/dist/runtime/core/eval/mixins/closures.js +286 -105
  129. package/dist/runtime/core/eval/mixins/closures.js.map +1 -1
  130. package/dist/runtime/core/eval/mixins/collections.d.ts.map +1 -1
  131. package/dist/runtime/core/eval/mixins/collections.js +65 -25
  132. package/dist/runtime/core/eval/mixins/collections.js.map +1 -1
  133. package/dist/runtime/core/eval/mixins/control-flow.d.ts.map +1 -1
  134. package/dist/runtime/core/eval/mixins/control-flow.js +21 -17
  135. package/dist/runtime/core/eval/mixins/control-flow.js.map +1 -1
  136. package/dist/runtime/core/eval/mixins/conversion.d.ts +30 -0
  137. package/dist/runtime/core/eval/mixins/conversion.d.ts.map +1 -0
  138. package/dist/runtime/core/eval/mixins/conversion.js +203 -0
  139. package/dist/runtime/core/eval/mixins/conversion.js.map +1 -0
  140. package/dist/runtime/core/eval/mixins/core.d.ts.map +1 -1
  141. package/dist/runtime/core/eval/mixins/core.js +101 -32
  142. package/dist/runtime/core/eval/mixins/core.js.map +1 -1
  143. package/dist/runtime/core/eval/mixins/extraction.d.ts.map +1 -1
  144. package/dist/runtime/core/eval/mixins/extraction.js +136 -30
  145. package/dist/runtime/core/eval/mixins/extraction.js.map +1 -1
  146. package/dist/runtime/core/eval/mixins/list-dispatch.d.ts +17 -0
  147. package/dist/runtime/core/eval/mixins/list-dispatch.d.ts.map +1 -0
  148. package/dist/runtime/core/eval/mixins/list-dispatch.js +97 -0
  149. package/dist/runtime/core/eval/mixins/list-dispatch.js.map +1 -0
  150. package/dist/runtime/core/eval/mixins/literals.d.ts.map +1 -1
  151. package/dist/runtime/core/eval/mixins/literals.js +64 -82
  152. package/dist/runtime/core/eval/mixins/literals.js.map +1 -1
  153. package/dist/runtime/core/eval/mixins/types.d.ts +4 -0
  154. package/dist/runtime/core/eval/mixins/types.d.ts.map +1 -1
  155. package/dist/runtime/core/eval/mixins/types.js +202 -3
  156. package/dist/runtime/core/eval/mixins/types.js.map +1 -1
  157. package/dist/runtime/core/eval/mixins/variables.d.ts.map +1 -1
  158. package/dist/runtime/core/eval/mixins/variables.js +42 -7
  159. package/dist/runtime/core/eval/mixins/variables.js.map +1 -1
  160. package/dist/runtime/core/execute.d.ts.map +1 -1
  161. package/dist/runtime/core/execute.js +2 -15
  162. package/dist/runtime/core/execute.js.map +1 -1
  163. package/dist/runtime/core/field-descriptor.d.ts +29 -0
  164. package/dist/runtime/core/field-descriptor.d.ts.map +1 -0
  165. package/dist/runtime/core/field-descriptor.js +27 -0
  166. package/dist/runtime/core/field-descriptor.js.map +1 -0
  167. package/dist/runtime/core/types.d.ts +15 -6
  168. package/dist/runtime/core/types.d.ts.map +1 -1
  169. package/dist/runtime/core/types.js.map +1 -1
  170. package/dist/runtime/core/values.d.ts +107 -9
  171. package/dist/runtime/core/values.d.ts.map +1 -1
  172. package/dist/runtime/core/values.js +453 -43
  173. package/dist/runtime/core/values.js.map +1 -1
  174. package/dist/runtime/ext/builtins.d.ts.map +1 -1
  175. package/dist/runtime/ext/builtins.js +47 -107
  176. package/dist/runtime/ext/builtins.js.map +1 -1
  177. package/dist/runtime/ext/extensions.d.ts +134 -1
  178. package/dist/runtime/ext/extensions.d.ts.map +1 -1
  179. package/dist/runtime/ext/extensions.js.map +1 -1
  180. package/dist/runtime/index.d.ts +7 -4
  181. package/dist/runtime/index.d.ts.map +1 -1
  182. package/dist/runtime/index.js +7 -2
  183. package/dist/runtime/index.js.map +1 -1
  184. package/dist/token-types.d.ts +7 -2
  185. package/dist/token-types.d.ts.map +1 -1
  186. package/dist/token-types.js +9 -2
  187. package/dist/token-types.js.map +1 -1
  188. package/dist/value-types.d.ts +19 -1
  189. package/dist/value-types.d.ts.map +1 -1
  190. package/package.json +1 -1
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Field Descriptor Builder
3
+ *
4
+ * Constructs a frozen RillFieldDescriptor for a named field within a
5
+ * RillStructuralType dict. Used during structural type field access to carry
6
+ * field name and field type.
7
+ *
8
+ * @internal
9
+ */
10
+ import type { SourceLocation } from '../../types.js';
11
+ import type { RillStructuralType } from './values.js';
12
+ /**
13
+ * Field descriptor — carries field name and structural type when accessing a
14
+ * dict-kind RillStructuralType field.
15
+ */
16
+ export interface RillFieldDescriptor {
17
+ readonly __rill_field_descriptor: true;
18
+ readonly fieldName: string;
19
+ readonly fieldType: RillStructuralType;
20
+ }
21
+ /**
22
+ * Build a frozen RillFieldDescriptor for the given field in a structural dict type.
23
+ *
24
+ * EC-1: Throws RILL-R003 when fieldName is absent from structuralType.fields.
25
+ */
26
+ export declare function buildFieldDescriptor(structuralType: RillStructuralType & {
27
+ kind: 'dict';
28
+ }, fieldName: string, location: SourceLocation): RillFieldDescriptor;
29
+ //# sourceMappingURL=field-descriptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-descriptor.d.ts","sourceRoot":"","sources":["../../../src/runtime/core/field-descriptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,uBAAuB,EAAE,IAAI,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;CACxC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,cAAc,EAAE,kBAAkB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EACrD,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,cAAc,GACvB,mBAAmB,CAcrB"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Field Descriptor Builder
3
+ *
4
+ * Constructs a frozen RillFieldDescriptor for a named field within a
5
+ * RillStructuralType dict. Used during structural type field access to carry
6
+ * field name and field type.
7
+ *
8
+ * @internal
9
+ */
10
+ import { RuntimeError } from '../../types.js';
11
+ /**
12
+ * Build a frozen RillFieldDescriptor for the given field in a structural dict type.
13
+ *
14
+ * EC-1: Throws RILL-R003 when fieldName is absent from structuralType.fields.
15
+ */
16
+ export function buildFieldDescriptor(structuralType, fieldName, location) {
17
+ const fieldType = structuralType.fields[fieldName];
18
+ if (fieldType === undefined) {
19
+ throw new RuntimeError('RILL-R003', `Shape has no field "${fieldName}"`, location);
20
+ }
21
+ return Object.freeze({
22
+ __rill_field_descriptor: true,
23
+ fieldName,
24
+ fieldType,
25
+ });
26
+ }
27
+ //# sourceMappingURL=field-descriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-descriptor.js","sourceRoot":"","sources":["../../../src/runtime/core/field-descriptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAa9C;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,cAAqD,EACrD,SAAiB,EACjB,QAAwB;IAExB,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,YAAY,CACpB,WAAW,EACX,uBAAuB,SAAS,GAAG,EACnC,QAAQ,CACT,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,uBAAuB,EAAE,IAAa;QACtC,SAAS;QACT,SAAS;KACV,CAAC,CAAC;AACL,CAAC"}
@@ -7,6 +7,7 @@
7
7
  import type { RillTypeName } from '../../types.js';
8
8
  import type { CallableFn, HostFunctionDefinition } from './callable.js';
9
9
  import type { RillValue } from './values.js';
10
+ export type { NativeArray, NativePlainObject, NativeValue } from './values.js';
10
11
  /**
11
12
  * Method signature for built-in methods.
12
13
  * Methods are called on a receiver value: $val.method(args)
@@ -16,7 +17,7 @@ export type RillMethod = (receiver: RillValue, args: RillValue[], ctx: RuntimeCo
16
17
  /** I/O callbacks for runtime operations */
17
18
  export interface RuntimeCallbacks {
18
19
  /** Called when .log is invoked */
19
- onLog: (value: RillValue) => void;
20
+ onLog: (message: string) => void;
20
21
  /** Called when extensions emit diagnostic events */
21
22
  onLogEvent?: (event: ExtensionEvent) => void;
22
23
  }
@@ -125,14 +126,22 @@ export interface RuntimeContext {
125
126
  /**
126
127
  * Annotation stack for statement annotations.
127
128
  * Each entry is a dict of annotation key-value pairs.
128
- * Inner scopes inherit and can override outer annotations.
129
+ * Annotations do not inherit each annotated statement carries only its own annotations.
129
130
  */
130
131
  readonly annotationStack: Record<string, RillValue>[];
132
+ /**
133
+ * Annotations for the immediate next child statement only.
134
+ * Set by executeAnnotatedStatement() and read by captureClosureAnnotations().
135
+ * Not inherited through the scope chain — cleared after one statement.
136
+ */
137
+ immediateAnnotation: Record<string, RillValue> | undefined;
131
138
  /**
132
139
  * Call stack for error context.
133
140
  * Managed by evaluator; pushed on function entry, popped on exit.
134
141
  */
135
142
  readonly callStack: import('../../types.js').CallFrame[];
143
+ /** Arbitrary string metadata passed from the host (e.g. request IDs, user IDs) */
144
+ readonly metadata?: Record<string, string> | undefined;
136
145
  }
137
146
  /** Options for creating a runtime context */
138
147
  export interface RuntimeOptions {
@@ -154,13 +163,13 @@ export interface RuntimeOptions {
154
163
  requireDescriptions?: boolean;
155
164
  /** Maximum call stack depth (default: 100) */
156
165
  maxCallStackDepth?: number;
166
+ /** Arbitrary string metadata passed through to the runtime context */
167
+ metadata?: Record<string, string>;
157
168
  }
158
169
  /** Result of script execution */
159
170
  export interface ExecutionResult {
160
- /** Final value returned by the script */
161
- value: RillValue;
162
- /** All captured variables */
163
- variables: Record<string, RillValue>;
171
+ /** Final result returned by the script */
172
+ result: RillValue;
164
173
  }
165
174
  /** Result of a single step execution */
166
175
  export interface StepResult {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/runtime/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/runtime/core/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/runtime/core/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoNH;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAgB;IAChD,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACpB,QAAQ,IAAI,KAAK;QACjB,aAAa,IAAI,KAAK,EACtB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,GAAG,KAAkC,CAAC;IAChD,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAE9B,sDAAsD;IACtD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,IACE,OAAO,CAAC,KAAK,QAAQ;YACrB,CAAC,KAAK,IAAI;YACV,QAAQ,IAAI,CAAC;YACb,CAAC,CAAC,MAAM,KAAK,UAAU;YACvB,CAAC,CAAC,WAAW,IAAI,CAAC,IAAK,CAA6B,CAAC,WAAW,CAAC,CAAC,EAClE,CAAC;YACD,iBAAiB,GAAG,IAAI,CAAC;YACzB,MAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,CAAC,iBAAiB;QAAE,OAAO,KAAK,CAAC;IAErC,yCAAyC;IACzC,MAAM,MAAM,GAA8B,EAAE,CAAC;IAC7C,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,IACE,OAAO,CAAC,KAAK,QAAQ;YACrB,CAAC,KAAK,IAAI;YACV,QAAQ,IAAI,CAAC;YACb,CAAC,CAAC,MAAM,KAAK,UAAU;YACvB,CAAC,CAAC,WAAW,IAAI,CAAC,IAAK,CAA6B,CAAC,WAAW,CAAC,CAAC,EAClE,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAe,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/runtime/core/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA8NH;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAgB;IAChD,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACpB,QAAQ,IAAI,KAAK;QACjB,aAAa,IAAI,KAAK,EACtB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,GAAG,KAAkC,CAAC;IAChD,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAE9B,sDAAsD;IACtD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,IACE,OAAO,CAAC,KAAK,QAAQ;YACrB,CAAC,KAAK,IAAI;YACV,QAAQ,IAAI,CAAC;YACb,CAAC,CAAC,MAAM,KAAK,UAAU;YACvB,CAAC,CAAC,WAAW,IAAI,CAAC,IAAK,CAA6B,CAAC,WAAW,CAAC,CAAC,EAClE,CAAC;YACD,iBAAiB,GAAG,IAAI,CAAC;YACzB,MAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,CAAC,iBAAiB;QAAE,OAAO,KAAK,CAAC;IAErC,yCAAyC;IACzC,MAAM,MAAM,GAA8B,EAAE,CAAC;IAC7C,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,IACE,OAAO,CAAC,KAAK,QAAQ;YACrB,CAAC,KAAK,IAAI;YACV,QAAQ,IAAI,CAAC;YACb,CAAC,CAAC,MAAM,KAAK,UAAU;YACvB,CAAC,CAAC,WAAW,IAAI,CAAC,IAAK,CAA6B,CAAC,WAAW,CAAC,CAAC,EAClE,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAe,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -8,17 +8,28 @@ import type { RillTypeName } from '../../types.js';
8
8
  interface CallableMarker {
9
9
  readonly __type: 'callable';
10
10
  }
11
+ interface FieldDescriptorMarker {
12
+ readonly __rill_field_descriptor: true;
13
+ }
11
14
  /**
12
- * Tuple type - represents unpacked arguments for closure invocation.
13
- * Created by the * (spread) operator from lists or dicts.
14
- * Entries are keyed by position (number) or name (string).
15
+ * Tuple type - represents positional unpacked arguments for closure invocation.
16
+ * Created by the * (spread) operator from lists.
17
+ * Entries are positional only.
15
18
  *
16
19
  * Note: In Rill, "tuple" refers to fixed-size argument packing (like function signatures),
17
20
  * while "list" refers to dynamic ordered collections ([1, 2, 3]).
18
21
  */
19
22
  export interface RillTuple {
20
23
  readonly __rill_tuple: true;
21
- readonly entries: Map<string | number, RillValue>;
24
+ readonly entries: RillValue[];
25
+ }
26
+ /**
27
+ * Ordered type - represents named key-value pairs with preserved insertion order.
28
+ * Created by the * (spread) operator from dicts.
29
+ */
30
+ export interface RillOrdered {
31
+ readonly __rill_ordered: true;
32
+ readonly entries: [string, RillValue][];
22
33
  }
23
34
  /**
24
35
  * Vector type - represents dense numeric embeddings.
@@ -29,18 +40,57 @@ export interface RillVector {
29
40
  readonly data: Float32Array;
30
41
  readonly model: string;
31
42
  }
43
+ /**
44
+ * Structural type descriptor - describes the shape of a value in the type system.
45
+ * Used by RillTypeValue to carry type structure information at runtime.
46
+ */
47
+ export type RillStructuralType = {
48
+ kind: 'primitive';
49
+ name: RillTypeName;
50
+ } | {
51
+ kind: 'list';
52
+ element: RillStructuralType;
53
+ } | {
54
+ kind: 'dict';
55
+ fields: Record<string, RillStructuralType>;
56
+ } | {
57
+ kind: 'tuple';
58
+ elements: RillStructuralType[];
59
+ } | {
60
+ kind: 'ordered';
61
+ fields: [string, RillStructuralType][];
62
+ } | {
63
+ kind: 'closure';
64
+ params: [string, RillStructuralType][];
65
+ ret: RillStructuralType;
66
+ } | {
67
+ kind: 'any';
68
+ };
69
+ /**
70
+ * Type value - represents a first-class type name at runtime.
71
+ * Created when a type name expression (e.g. `string`, `number`) is evaluated.
72
+ */
73
+ export interface RillTypeValue {
74
+ readonly __rill_type: true;
75
+ readonly typeName: RillTypeName;
76
+ readonly structure: RillStructuralType;
77
+ }
32
78
  /** Any value that can flow through Rill */
33
79
  export type RillValue = string | number | boolean | null | RillValue[] | {
34
80
  [key: string]: RillValue;
35
- } | CallableMarker | RillTuple | RillVector;
81
+ } | CallableMarker | RillTuple | RillOrdered | RillVector | FieldDescriptorMarker | RillTypeValue;
36
82
  /** Type guard for RillTuple (spread args) */
37
83
  export declare function isTuple(value: RillValue): value is RillTuple;
38
84
  /** Type guard for RillVector */
39
85
  export declare function isVector(value: RillValue): value is RillVector;
40
- /** Create tuple from a list (positional) */
41
- export declare function createTupleFromList(list: RillValue[]): RillTuple;
42
- /** Create tuple from a dict (named) */
43
- export declare function createTupleFromDict(dict: Record<string, RillValue>): RillTuple;
86
+ /** Type guard for RillOrdered (named spread args) */
87
+ export declare function isOrdered(value: RillValue): value is RillOrdered;
88
+ /** Type guard for RillTypeValue */
89
+ export declare function isTypeValue(value: RillValue): value is RillTypeValue;
90
+ /** Create ordered from entries array (named, preserves insertion order) */
91
+ export declare function createOrdered(entries: [string, RillValue][]): RillOrdered;
92
+ /** Create tuple from entries array (positional, preserves order) */
93
+ export declare function createTuple(entries: RillValue[]): RillTuple;
44
94
  /**
45
95
  * Create vector from Float32Array with model name.
46
96
  * @throws {Error} if data.length is 0 (zero-dimension vectors not allowed)
@@ -48,6 +98,23 @@ export declare function createTupleFromDict(dict: Record<string, RillValue>): Ri
48
98
  export declare function createVector(data: Float32Array, model: string): RillVector;
49
99
  /** Infer the Rill type from a runtime value */
50
100
  export declare function inferType(value: RillValue): RillTypeName;
101
+ /**
102
+ * Infer the element type for a homogeneous list.
103
+ * Empty arrays return { kind: 'any' }.
104
+ * Mixed types throw RILL-R002.
105
+ */
106
+ export declare function inferElementType(elements: RillValue[]): RillStructuralType;
107
+ /** Compare two structural types for equality. */
108
+ export declare function structuralTypeEquals(a: RillStructuralType, b: RillStructuralType): boolean;
109
+ /** Infer the structural type descriptor for any Rill value. */
110
+ export declare function inferStructuralType(value: RillValue): RillStructuralType;
111
+ /**
112
+ * Check if a value matches a structural type descriptor.
113
+ * Used for runtime type checking (`:?` operator).
114
+ */
115
+ export declare function structuralTypeMatches(value: RillValue, type: RillStructuralType): boolean;
116
+ /** Format a structural type descriptor as a human-readable string. */
117
+ export declare function formatStructuralType(type: RillStructuralType): string;
51
118
  /**
52
119
  * Check if a value is of the expected type.
53
120
  * Returns true if the value matches the expected type, false otherwise.
@@ -59,6 +126,37 @@ export declare function isTruthy(value: RillValue): boolean;
59
126
  export declare function isEmpty(value: RillValue): boolean;
60
127
  /** Format a value for display */
61
128
  export declare function formatValue(value: RillValue): string;
129
+ /**
130
+ * Recursive native (host-side) value type.
131
+ * Represents values that can cross the host/script boundary.
132
+ */
133
+ export type NativeValue = string | number | boolean | null | NativeArray | NativePlainObject;
134
+ /** Array of NativeValue */
135
+ export type NativeArray = NativeValue[];
136
+ /** Plain object with string keys and NativeValue values */
137
+ export type NativePlainObject = {
138
+ [key: string]: NativeValue;
139
+ };
140
+ /** Structured result from toNative conversion */
141
+ export interface NativeResult {
142
+ /** Rill type kind — matches RillTypeName, or 'iterator' for lazy sequences */
143
+ kind: string;
144
+ /** Human-readable type signature, e.g. "string", "list<number>", "|x: number| :string" */
145
+ typeSig: string;
146
+ /** Native JS representation, or null if the value is not natively representable */
147
+ native: NativeValue | null;
148
+ }
149
+ /**
150
+ * Convert a RillValue to a JSON-serializable value.
151
+ * @throws {Error} plain Error (not RuntimeError) for non-serializable types
152
+ */
153
+ export declare function valueToJSON(value: RillValue): unknown;
154
+ /**
155
+ * Convert a RillValue to a NativeResult for host consumption.
156
+ * Non-representable types (closures, vectors, type values, iterators) return native: null.
157
+ * Tuples convert to native arrays. Ordered values convert to plain objects.
158
+ */
159
+ export declare function toNative(value: RillValue): NativeResult;
62
160
  /**
63
161
  * Deep structural equality for all Rill values.
64
162
  * - Primitives: value equality
@@ -1 +1 @@
1
- {"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../../src/runtime/core/values.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAUnD,UAAU,cAAc;IACtB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,SAAS,CAAC,CAAC;CACnD;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,2CAA2C;AAC3C,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,EAAE,GACX;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC5B,cAAc,GACd,SAAS,GACT,UAAU,CAAC;AAEf,6CAA6C;AAC7C,wBAAgB,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,IAAI,SAAS,CAO5D;AAED,gCAAgC;AAChC,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,IAAI,UAAU,CAO9D;AAED,4CAA4C;AAC5C,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,SAAS,CAShE;AAED,uCAAuC;AACvC,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAC9B,SAAS,CAMX;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAK1E;AAED,+CAA+C;AAC/C,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,YAAY,CAiBxD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAE3E;AAED,mDAAmD;AACnD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAalD;AAED,oDAAoD;AACpD,wBAAgB,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAEjD;AAED,iCAAiC;AACjC,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAgCpD;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,OAAO,CA8F9D;AAED,2DAA2D;AAC3D,eAAO,MAAM,qBAAqB,wCAAyC,CAAC;AAE5E,sCAAsC;AACtC,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;;;;GAMG;AACH,MAAM,WAAW,YAAa,SAAQ,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;IAC7D,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,IAAI,YAAY,CAQtE"}
1
+ {"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../../src/runtime/core/values.ts"],"names":[],"mappings":"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"}