@rcrsr/rill 0.1.0 → 0.2.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 (260) hide show
  1. package/README.md +16 -8
  2. package/dist/check/config.d.ts +20 -0
  3. package/dist/check/config.d.ts.map +1 -0
  4. package/dist/check/config.js +151 -0
  5. package/dist/check/config.js.map +1 -0
  6. package/dist/check/fixer.d.ts +39 -0
  7. package/dist/check/fixer.d.ts.map +1 -0
  8. package/dist/check/fixer.js +119 -0
  9. package/dist/check/fixer.js.map +1 -0
  10. package/dist/check/index.d.ts +10 -0
  11. package/dist/check/index.d.ts.map +1 -0
  12. package/dist/check/index.js +21 -0
  13. package/dist/check/index.js.map +1 -0
  14. package/dist/check/rules/anti-patterns.d.ts +65 -0
  15. package/dist/check/rules/anti-patterns.d.ts.map +1 -0
  16. package/dist/check/rules/anti-patterns.js +427 -0
  17. package/dist/check/rules/anti-patterns.js.map +1 -0
  18. package/dist/check/rules/closures.d.ts +66 -0
  19. package/dist/check/rules/closures.d.ts.map +1 -0
  20. package/dist/check/rules/closures.js +373 -0
  21. package/dist/check/rules/closures.js.map +1 -0
  22. package/dist/check/rules/collections.d.ts +90 -0
  23. package/dist/check/rules/collections.d.ts.map +1 -0
  24. package/dist/check/rules/collections.js +373 -0
  25. package/dist/check/rules/collections.js.map +1 -0
  26. package/dist/check/rules/conditionals.d.ts +41 -0
  27. package/dist/check/rules/conditionals.d.ts.map +1 -0
  28. package/dist/check/rules/conditionals.js +106 -0
  29. package/dist/check/rules/conditionals.js.map +1 -0
  30. package/dist/check/rules/flow.d.ts +46 -0
  31. package/dist/check/rules/flow.d.ts.map +1 -0
  32. package/dist/check/rules/flow.js +206 -0
  33. package/dist/check/rules/flow.js.map +1 -0
  34. package/dist/check/rules/formatting.d.ts +133 -0
  35. package/dist/check/rules/formatting.d.ts.map +1 -0
  36. package/dist/check/rules/formatting.js +639 -0
  37. package/dist/check/rules/formatting.js.map +1 -0
  38. package/dist/check/rules/helpers.d.ts +26 -0
  39. package/dist/check/rules/helpers.d.ts.map +1 -0
  40. package/dist/check/rules/helpers.js +66 -0
  41. package/dist/check/rules/helpers.js.map +1 -0
  42. package/dist/check/rules/index.d.ts +21 -0
  43. package/dist/check/rules/index.d.ts.map +1 -0
  44. package/dist/check/rules/index.js +78 -0
  45. package/dist/check/rules/index.js.map +1 -0
  46. package/dist/check/rules/loops.d.ts +70 -0
  47. package/dist/check/rules/loops.d.ts.map +1 -0
  48. package/dist/check/rules/loops.js +227 -0
  49. package/dist/check/rules/loops.js.map +1 -0
  50. package/dist/check/rules/naming.d.ts +21 -0
  51. package/dist/check/rules/naming.d.ts.map +1 -0
  52. package/dist/check/rules/naming.js +167 -0
  53. package/dist/check/rules/naming.js.map +1 -0
  54. package/dist/check/rules/strings.d.ts +28 -0
  55. package/dist/check/rules/strings.d.ts.map +1 -0
  56. package/dist/check/rules/strings.js +80 -0
  57. package/dist/check/rules/strings.js.map +1 -0
  58. package/dist/check/rules/types.d.ts +41 -0
  59. package/dist/check/rules/types.d.ts.map +1 -0
  60. package/dist/check/rules/types.js +162 -0
  61. package/dist/check/rules/types.js.map +1 -0
  62. package/dist/check/types.d.ts +106 -0
  63. package/dist/check/types.d.ts.map +1 -0
  64. package/dist/check/types.js +6 -0
  65. package/dist/check/types.js.map +1 -0
  66. package/dist/check/validator.d.ts +18 -0
  67. package/dist/check/validator.d.ts.map +1 -0
  68. package/dist/check/validator.js +88 -0
  69. package/dist/check/validator.js.map +1 -0
  70. package/dist/check/visitor.d.ts +33 -0
  71. package/dist/check/visitor.d.ts.map +1 -0
  72. package/dist/check/visitor.js +243 -0
  73. package/dist/check/visitor.js.map +1 -0
  74. package/dist/cli-check.d.ts +43 -0
  75. package/dist/cli-check.d.ts.map +1 -0
  76. package/dist/cli-check.js +356 -0
  77. package/dist/cli-check.js.map +1 -0
  78. package/dist/cli-eval.d.ts +15 -0
  79. package/dist/cli-eval.d.ts.map +1 -0
  80. package/dist/cli-eval.js +120 -0
  81. package/dist/cli-eval.js.map +1 -0
  82. package/dist/cli-exec.d.ts +49 -0
  83. package/dist/cli-exec.d.ts.map +1 -0
  84. package/dist/cli-exec.js +191 -0
  85. package/dist/cli-exec.js.map +1 -0
  86. package/dist/cli-module-loader.d.ts +19 -0
  87. package/dist/cli-module-loader.d.ts.map +1 -0
  88. package/dist/cli-module-loader.js +83 -0
  89. package/dist/cli-module-loader.js.map +1 -0
  90. package/dist/cli-shared.d.ts +36 -0
  91. package/dist/cli-shared.d.ts.map +1 -0
  92. package/dist/cli-shared.js +101 -0
  93. package/dist/cli-shared.js.map +1 -0
  94. package/dist/cli.d.ts +2 -0
  95. package/dist/cli.d.ts.map +1 -1
  96. package/dist/cli.js +4 -11
  97. package/dist/cli.js.map +1 -1
  98. package/dist/index.d.ts +1 -1
  99. package/dist/index.d.ts.map +1 -1
  100. package/dist/index.js +1 -1
  101. package/dist/index.js.map +1 -1
  102. package/dist/lexer/readers.d.ts +1 -1
  103. package/dist/lexer/readers.d.ts.map +1 -1
  104. package/dist/lexer/readers.js +62 -32
  105. package/dist/lexer/readers.js.map +1 -1
  106. package/dist/lexer/tokenizer.d.ts.map +1 -1
  107. package/dist/lexer/tokenizer.js +5 -6
  108. package/dist/lexer/tokenizer.js.map +1 -1
  109. package/dist/parser/index.js +1 -1
  110. package/dist/parser/index.js.map +1 -1
  111. package/dist/parser/parser-expr.js +23 -5
  112. package/dist/parser/parser-expr.js.map +1 -1
  113. package/dist/parser/parser-functions.d.ts +2 -2
  114. package/dist/parser/parser-functions.d.ts.map +1 -1
  115. package/dist/parser/parser-functions.js +2 -1
  116. package/dist/parser/parser-functions.js.map +1 -1
  117. package/dist/parser/parser-literals.js +2 -2
  118. package/dist/parser/parser-literals.js.map +1 -1
  119. package/dist/parser/parser-script.js +9 -7
  120. package/dist/parser/parser-script.js.map +1 -1
  121. package/dist/parser/parser-variables.js +4 -3
  122. package/dist/parser/parser-variables.js.map +1 -1
  123. package/dist/runtime/core/callable.d.ts +5 -6
  124. package/dist/runtime/core/callable.d.ts.map +1 -1
  125. package/dist/runtime/core/callable.js.map +1 -1
  126. package/dist/runtime/core/context.d.ts.map +1 -1
  127. package/dist/runtime/core/context.js +19 -32
  128. package/dist/runtime/core/context.js.map +1 -1
  129. package/dist/runtime/core/equals.js +1 -1
  130. package/dist/runtime/core/equals.js.map +1 -1
  131. package/dist/runtime/core/eval/evaluator.d.ts +78 -0
  132. package/dist/runtime/core/eval/evaluator.d.ts.map +1 -1
  133. package/dist/runtime/core/eval/evaluator.js +78 -0
  134. package/dist/runtime/core/eval/evaluator.js.map +1 -1
  135. package/dist/runtime/core/eval/mixins/closures.d.ts.map +1 -1
  136. package/dist/runtime/core/eval/mixins/closures.js +9 -1
  137. package/dist/runtime/core/eval/mixins/closures.js.map +1 -1
  138. package/dist/runtime/core/eval/mixins/variables.d.ts.map +1 -1
  139. package/dist/runtime/core/eval/mixins/variables.js +143 -2
  140. package/dist/runtime/core/eval/mixins/variables.js.map +1 -1
  141. package/dist/runtime/core/types.d.ts +15 -2
  142. package/dist/runtime/core/types.d.ts.map +1 -1
  143. package/dist/runtime/core/types.js.map +1 -1
  144. package/dist/runtime/ext/extensions.d.ts +51 -0
  145. package/dist/runtime/ext/extensions.d.ts.map +1 -0
  146. package/dist/runtime/ext/extensions.js +67 -0
  147. package/dist/runtime/ext/extensions.js.map +1 -0
  148. package/dist/runtime/index.d.ts +3 -0
  149. package/dist/runtime/index.d.ts.map +1 -1
  150. package/dist/runtime/index.js +1 -0
  151. package/dist/runtime/index.js.map +1 -1
  152. package/dist/types.d.ts +8 -4
  153. package/dist/types.d.ts.map +1 -1
  154. package/dist/types.js +5 -4
  155. package/dist/types.js.map +1 -1
  156. package/docs/00_INDEX.md +1 -0
  157. package/docs/01_guide.md +3 -3
  158. package/docs/02_types.md +8 -10
  159. package/docs/03_variables.md +10 -0
  160. package/docs/04_operators.md +3 -3
  161. package/docs/05_control-flow.md +21 -0
  162. package/docs/07_collections.md +2 -0
  163. package/docs/10_parsing.md +9 -9
  164. package/docs/11_reference.md +1 -1
  165. package/docs/12_examples.md +36 -62
  166. package/docs/14_host-integration.md +116 -111
  167. package/docs/15_grammar.ebnf +1 -5
  168. package/docs/16_conventions.md +3 -4
  169. package/docs/17_cli-tools.md +184 -0
  170. package/docs/99_llm-reference.txt +46 -5
  171. package/package.json +13 -4
  172. package/dist/demo.d.ts +0 -6
  173. package/dist/demo.d.ts.map +0 -1
  174. package/dist/demo.js +0 -121
  175. package/dist/demo.js.map +0 -1
  176. package/dist/lexer.d.ts +0 -19
  177. package/dist/lexer.d.ts.map +0 -1
  178. package/dist/lexer.js +0 -344
  179. package/dist/lexer.js.map +0 -1
  180. package/dist/parser/arithmetic.d.ts +0 -16
  181. package/dist/parser/arithmetic.d.ts.map +0 -1
  182. package/dist/parser/arithmetic.js +0 -128
  183. package/dist/parser/arithmetic.js.map +0 -1
  184. package/dist/parser/boolean.d.ts +0 -15
  185. package/dist/parser/boolean.d.ts.map +0 -1
  186. package/dist/parser/boolean.js +0 -20
  187. package/dist/parser/boolean.js.map +0 -1
  188. package/dist/parser/control-flow.d.ts +0 -56
  189. package/dist/parser/control-flow.d.ts.map +0 -1
  190. package/dist/parser/control-flow.js +0 -167
  191. package/dist/parser/control-flow.js.map +0 -1
  192. package/dist/parser/expressions.d.ts +0 -23
  193. package/dist/parser/expressions.d.ts.map +0 -1
  194. package/dist/parser/expressions.js +0 -950
  195. package/dist/parser/expressions.js.map +0 -1
  196. package/dist/parser/extraction.d.ts +0 -48
  197. package/dist/parser/extraction.d.ts.map +0 -1
  198. package/dist/parser/extraction.js +0 -279
  199. package/dist/parser/extraction.js.map +0 -1
  200. package/dist/parser/functions.d.ts +0 -20
  201. package/dist/parser/functions.d.ts.map +0 -1
  202. package/dist/parser/functions.js +0 -96
  203. package/dist/parser/functions.js.map +0 -1
  204. package/dist/parser/literals.d.ts +0 -37
  205. package/dist/parser/literals.d.ts.map +0 -1
  206. package/dist/parser/literals.js +0 -373
  207. package/dist/parser/literals.js.map +0 -1
  208. package/dist/parser/script.d.ts +0 -14
  209. package/dist/parser/script.d.ts.map +0 -1
  210. package/dist/parser/script.js +0 -196
  211. package/dist/parser/script.js.map +0 -1
  212. package/dist/parser/variables.d.ts +0 -10
  213. package/dist/parser/variables.d.ts.map +0 -1
  214. package/dist/parser/variables.js +0 -215
  215. package/dist/parser/variables.js.map +0 -1
  216. package/dist/runtime/ast-equals.d.ts +0 -13
  217. package/dist/runtime/ast-equals.d.ts.map +0 -1
  218. package/dist/runtime/ast-equals.js +0 -447
  219. package/dist/runtime/ast-equals.js.map +0 -1
  220. package/dist/runtime/builtins.d.ts +0 -13
  221. package/dist/runtime/builtins.d.ts.map +0 -1
  222. package/dist/runtime/builtins.js +0 -180
  223. package/dist/runtime/builtins.js.map +0 -1
  224. package/dist/runtime/callable.d.ts +0 -88
  225. package/dist/runtime/callable.d.ts.map +0 -1
  226. package/dist/runtime/callable.js +0 -98
  227. package/dist/runtime/callable.js.map +0 -1
  228. package/dist/runtime/context.d.ts +0 -13
  229. package/dist/runtime/context.d.ts.map +0 -1
  230. package/dist/runtime/context.js +0 -73
  231. package/dist/runtime/context.js.map +0 -1
  232. package/dist/runtime/core/evaluate.d.ts +0 -42
  233. package/dist/runtime/core/evaluate.d.ts.map +0 -1
  234. package/dist/runtime/core/evaluate.debug.js +0 -1251
  235. package/dist/runtime/core/evaluate.js +0 -1913
  236. package/dist/runtime/core/evaluate.js.map +0 -1
  237. package/dist/runtime/evaluate.d.ts +0 -32
  238. package/dist/runtime/evaluate.d.ts.map +0 -1
  239. package/dist/runtime/evaluate.js +0 -1111
  240. package/dist/runtime/evaluate.js.map +0 -1
  241. package/dist/runtime/execute.d.ts +0 -26
  242. package/dist/runtime/execute.d.ts.map +0 -1
  243. package/dist/runtime/execute.js +0 -121
  244. package/dist/runtime/execute.js.map +0 -1
  245. package/dist/runtime/signals.d.ts +0 -19
  246. package/dist/runtime/signals.d.ts.map +0 -1
  247. package/dist/runtime/signals.js +0 -26
  248. package/dist/runtime/signals.js.map +0 -1
  249. package/dist/runtime/types.d.ts +0 -169
  250. package/dist/runtime/types.d.ts.map +0 -1
  251. package/dist/runtime/types.js +0 -50
  252. package/dist/runtime/types.js.map +0 -1
  253. package/dist/runtime/values.d.ts +0 -50
  254. package/dist/runtime/values.d.ts.map +0 -1
  255. package/dist/runtime/values.js +0 -209
  256. package/dist/runtime/values.js.map +0 -1
  257. package/dist/runtime.d.ts +0 -254
  258. package/dist/runtime.d.ts.map +0 -1
  259. package/dist/runtime.js +0 -2014
  260. package/dist/runtime.js.map +0 -1
@@ -1,209 +0,0 @@
1
- /**
2
- * Rill Value Types and Utilities
3
- *
4
- * Core value types that flow through Rill programs.
5
- * Public API for host applications.
6
- */
7
- import { callableEquals, isScriptCallable } from './callable.js';
8
- /** Type guard for RillArgs */
9
- export function isArgs(value) {
10
- return (typeof value === 'object' &&
11
- value !== null &&
12
- '__rill_args' in value &&
13
- value.__rill_args === true);
14
- }
15
- /** Create args from a tuple (positional) */
16
- export function createArgsFromTuple(tuple) {
17
- const entries = new Map();
18
- for (let i = 0; i < tuple.length; i++) {
19
- const val = tuple[i];
20
- if (val !== undefined) {
21
- entries.set(i, val);
22
- }
23
- }
24
- return { __rill_args: true, entries };
25
- }
26
- /** Create args from a dict (named) */
27
- export function createArgsFromDict(dict) {
28
- const entries = new Map();
29
- for (const [key, value] of Object.entries(dict)) {
30
- entries.set(key, value);
31
- }
32
- return { __rill_args: true, entries };
33
- }
34
- /** Infer the Rill type from a runtime value */
35
- export function inferType(value) {
36
- if (value === null)
37
- return 'string'; // null treated as empty string
38
- if (typeof value === 'string')
39
- return 'string';
40
- if (typeof value === 'number')
41
- return 'number';
42
- if (typeof value === 'boolean')
43
- return 'bool';
44
- if (isArgs(value))
45
- return 'args';
46
- if (Array.isArray(value))
47
- return 'tuple';
48
- if (typeof value === 'object' && '__type' in value && value.__type === 'callable') {
49
- return 'closure';
50
- }
51
- if (typeof value === 'object')
52
- return 'dict';
53
- return 'string'; // fallback
54
- }
55
- /** Check if a value is truthy in Rill semantics */
56
- export function isTruthy(value) {
57
- if (value === null)
58
- return false;
59
- if (typeof value === 'boolean')
60
- return value;
61
- if (typeof value === 'number')
62
- return value !== 0;
63
- if (typeof value === 'string')
64
- return value.length > 0;
65
- if (isArgs(value))
66
- return value.entries.size > 0;
67
- if (Array.isArray(value))
68
- return value.length > 0;
69
- if (typeof value === 'object') {
70
- if ('__type' in value && value.__type === 'callable')
71
- return true;
72
- return Object.keys(value).length > 0;
73
- }
74
- return true;
75
- }
76
- /** Check if a value is empty (inverse of truthy) */
77
- export function isEmpty(value) {
78
- return !isTruthy(value);
79
- }
80
- /** Format a value for display */
81
- export function formatValue(value) {
82
- if (value === null)
83
- return '';
84
- if (typeof value === 'string')
85
- return value;
86
- if (typeof value === 'number')
87
- return String(value);
88
- if (typeof value === 'boolean')
89
- return value ? 'true' : 'false';
90
- if (isArgs(value)) {
91
- const parts = [];
92
- for (const [key, val] of value.entries) {
93
- if (typeof key === 'number') {
94
- parts.push(formatValue(val));
95
- }
96
- else {
97
- parts.push(`${key}: ${formatValue(val)}`);
98
- }
99
- }
100
- return `*[${parts.join(', ')}]`;
101
- }
102
- if (typeof value === 'object' && '__type' in value && value.__type === 'callable') {
103
- // Basic callable formatting - full formatting in callable.ts
104
- return '(...) { ... }';
105
- }
106
- if (Array.isArray(value))
107
- return JSON.stringify(value);
108
- return JSON.stringify(value);
109
- }
110
- /**
111
- * Deep structural equality for all Rill values.
112
- * - Primitives: value equality
113
- * - Tuples: length + recursive element equality
114
- * - Dicts: same keys + recursive value equality (order-independent)
115
- */
116
- export function deepEquals(a, b) {
117
- // Handle primitives and null
118
- if (a === b)
119
- return true;
120
- if (a === null || b === null)
121
- return false;
122
- if (typeof a !== typeof b)
123
- return false;
124
- // Primitives (string, number, boolean) - covered by === above
125
- if (typeof a !== 'object' || typeof b !== 'object')
126
- return false;
127
- // Both are non-null objects at this point
128
- const aObj = a;
129
- const bObj = b;
130
- // Check for args
131
- const aIsArgs = isArgs(a);
132
- const bIsArgs = isArgs(b);
133
- if (aIsArgs !== bIsArgs)
134
- return false;
135
- if (aIsArgs && bIsArgs) {
136
- if (a.entries.size !== b.entries.size)
137
- return false;
138
- for (const [key, aVal] of a.entries) {
139
- const bVal = b.entries.get(key);
140
- if (bVal === undefined || !deepEquals(aVal, bVal))
141
- return false;
142
- }
143
- return true;
144
- }
145
- // Check for arrays (tuples)
146
- const aIsArray = Array.isArray(a);
147
- const bIsArray = Array.isArray(b);
148
- if (aIsArray !== bIsArray)
149
- return false;
150
- if (aIsArray && bIsArray) {
151
- if (a.length !== b.length)
152
- return false;
153
- for (let i = 0; i < a.length; i++) {
154
- const aElem = a[i];
155
- const bElem = b[i];
156
- if (aElem === undefined || bElem === undefined) {
157
- if (aElem !== bElem)
158
- return false;
159
- }
160
- else if (!deepEquals(aElem, bElem)) {
161
- return false;
162
- }
163
- }
164
- return true;
165
- }
166
- // Both are dicts (plain objects) or callables
167
- // For script callables, use structural equality (params + body AST + captured values)
168
- // For runtime/application callables, use reference equality
169
- if ('__type' in aObj || '__type' in bObj) {
170
- // Both must be callables to be equal
171
- if (!('__type' in aObj) || !('__type' in bObj))
172
- return false;
173
- if (aObj.__type !== 'callable' || bObj.__type !== 'callable')
174
- return false;
175
- // Script callables: structural equality
176
- if (isScriptCallable(a) && isScriptCallable(b)) {
177
- return callableEquals(a, b, deepEquals);
178
- }
179
- // Runtime/application callables: reference equality
180
- return a === b;
181
- }
182
- const aDict = a;
183
- const bDict = b;
184
- const aKeys = Object.keys(aDict);
185
- const bKeys = Object.keys(bDict);
186
- if (aKeys.length !== bKeys.length)
187
- return false;
188
- for (const key of aKeys) {
189
- if (!(key in bDict))
190
- return false;
191
- const aVal = aDict[key];
192
- const bVal = bDict[key];
193
- if (aVal === undefined || bVal === undefined) {
194
- if (aVal !== bVal)
195
- return false;
196
- }
197
- else if (!deepEquals(aVal, bVal)) {
198
- return false;
199
- }
200
- }
201
- return true;
202
- }
203
- /** Reserved dict method names that cannot be overridden */
204
- export const RESERVED_DICT_METHODS = ['keys', 'values', 'entries'];
205
- /** Check if a key name is reserved */
206
- export function isReservedMethod(name) {
207
- return RESERVED_DICT_METHODS.includes(name);
208
- }
209
- //# sourceMappingURL=values.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"values.js","sourceRoot":"","sources":["../../src/runtime/values.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AA6BjE,8BAA8B;AAC9B,MAAM,UAAU,MAAM,CAAC,KAAgB;IACrC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,aAAa,IAAI,KAAK;QACtB,KAAK,CAAC,WAAW,KAAK,IAAI,CAC3B,CAAC;AACJ,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,mBAAmB,CAAC,KAAkB;IACpD,MAAM,OAAO,GAAG,IAAI,GAAG,EAA8B,CAAC;IACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACxC,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,kBAAkB,CAAC,IAA+B;IAChE,MAAM,OAAO,GAAG,IAAI,GAAG,EAA8B,CAAC;IACtD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACxC,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,SAAS,CAAC,KAAgB;IACxC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,QAAQ,CAAC,CAAC,+BAA+B;IACpE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC/C,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,MAAM,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACjC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAClF,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IAC7C,OAAO,QAAQ,CAAC,CAAC,WAAW;AAC9B,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,QAAQ,CAAC,KAAgB;IACvC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACjC,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,KAAK,CAAC,CAAC;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACvD,IAAI,MAAM,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;IACjD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU;YAAE,OAAO,IAAI,CAAC;QAClE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,OAAO,CAAC,KAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED,iCAAiC;AACjC,MAAM,UAAU,WAAW,CAAC,KAAgB;IAC1C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACpD,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAChE,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAClB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACvC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QACD,OAAO,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAClC,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAClF,6DAA6D;QAC7D,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACvD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,CAAY,EAAE,CAAY;IACnD,6BAA6B;IAC7B,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC3C,IAAI,OAAO,CAAC,KAAK,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAExC,8DAA8D;IAC9D,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAEjE,0CAA0C;IAC1C,MAAM,IAAI,GAAG,CAAW,CAAC;IACzB,MAAM,IAAI,GAAG,CAAW,CAAC;IAEzB,iBAAiB;IACjB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,OAAO,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACpD,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;QAClE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4BAA4B;IAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACnB,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACnB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/C,IAAI,KAAK,KAAK,KAAK;oBAAE,OAAO,KAAK,CAAC;YACpC,CAAC;iBAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;gBACrC,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8CAA8C;IAC9C,sFAAsF;IACtF,4DAA4D;IAC5D,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QACzC,qCAAqC;QACrC,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAC7D,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU;YAAE,OAAO,KAAK,CAAC;QAE3E,wCAAwC;QACxC,IAAI,gBAAgB,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,OAAO,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;QAC1C,CAAC;QAED,oDAAoD;QACpD,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,KAAK,GAAG,CAA8B,CAAC;IAC7C,MAAM,KAAK,GAAG,CAA8B,CAAC;IAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAEhD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAClC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7C,IAAI,IAAI,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC;QAClC,CAAC;aAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACnC,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,2DAA2D;AAC3D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAC;AAE5E,sCAAsC;AACtC,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAQ,qBAA2C,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrE,CAAC"}
package/dist/runtime.d.ts DELETED
@@ -1,254 +0,0 @@
1
- /**
2
- * Rill Runtime
3
- * Executes parsed Rill AST with pluggable context and I/O
4
- */
5
- import type { BlockNode, RillTypeName, ScriptNode, SourceLocation } from './types.js';
6
- export { AbortError, AutoExceptionError, RuntimeError, TimeoutError, } from './types.js';
7
- /**
8
- * Callable function signature.
9
- * Used for both host-provided functions and runtime callables.
10
- */
11
- export type CallableFn = (args: RillValue[], ctx: RuntimeContext, location?: SourceLocation) => RillValue | Promise<RillValue>;
12
- /** Parameter definition for script closures */
13
- export interface CallableParam {
14
- readonly name: string;
15
- readonly typeName: 'string' | 'number' | 'bool' | null;
16
- readonly defaultValue: RillValue | null;
17
- }
18
- /** Common fields for all callable types */
19
- interface CallableBase {
20
- readonly __type: 'callable';
21
- /**
22
- * Property-style callable: auto-invoked when accessed from a dict.
23
- * For script callables, $ is bound to the containing dict.
24
- * For runtime callables, the dict is passed as first argument.
25
- */
26
- readonly isProperty: boolean;
27
- /** Reference to containing dict (set when stored in a dict) */
28
- boundDict?: Record<string, RillValue>;
29
- }
30
- /** Script callable - parsed from Rill source code */
31
- export interface ScriptCallable extends CallableBase {
32
- readonly kind: 'script';
33
- readonly params: CallableParam[];
34
- readonly body: BlockNode;
35
- readonly capturedVars: Map<string, RillValue>;
36
- }
37
- /** Runtime callable - Rill's built-in functions (type, log, json, identity) */
38
- export interface RuntimeCallable extends CallableBase {
39
- readonly kind: 'runtime';
40
- readonly fn: CallableFn;
41
- }
42
- /** Application callable - host application-provided functions */
43
- export interface ApplicationCallable extends CallableBase {
44
- readonly kind: 'application';
45
- readonly fn: CallableFn;
46
- }
47
- /** Union of all callable types */
48
- export type RillCallable = ScriptCallable | RuntimeCallable | ApplicationCallable;
49
- /** Type guard for any callable */
50
- export declare function isCallable(value: RillValue): value is RillCallable;
51
- /** Type guard for script callable */
52
- export declare function isScriptCallable(value: RillValue): value is ScriptCallable;
53
- /** Type guard for runtime callable */
54
- export declare function isRuntimeCallable(value: RillValue): value is RuntimeCallable;
55
- /** Type guard for application callable */
56
- export declare function isApplicationCallable(value: RillValue): value is ApplicationCallable;
57
- /**
58
- * Create an application callable from a host function.
59
- * @param fn The function to wrap
60
- * @param isProperty If true, auto-invokes when accessed from dict (property-style)
61
- */
62
- export declare function callable(fn: CallableFn, isProperty?: boolean): ApplicationCallable;
63
- /** Type guard for dict (plain object, not array, not callable, not args) */
64
- export declare function isDict(value: RillValue): value is Record<string, RillValue>;
65
- /**
66
- * Args type - represents unpacked arguments for closure invocation.
67
- * Created by the * (spread) operator from tuples or dicts.
68
- * Entries are keyed by position (number) or name (string).
69
- */
70
- export interface RillArgs {
71
- readonly __rill_args: true;
72
- readonly entries: Map<string | number, RillValue>;
73
- }
74
- /** Type guard for RillArgs */
75
- export declare function isArgs(value: RillValue): value is RillArgs;
76
- /** Reserved dict method names that cannot be overridden */
77
- export declare const RESERVED_DICT_METHODS: readonly ["keys", "values", "entries"];
78
- /** Check if a key name is reserved */
79
- export declare function isReservedMethod(name: string): boolean;
80
- /** Any value that can flow through Rill */
81
- export type RillValue = string | number | boolean | null | RillValue[] | {
82
- [key: string]: RillValue;
83
- } | RillCallable | RillArgs;
84
- /**
85
- * Method signature for built-in methods (internal use only).
86
- * Methods are called on a receiver value: $val.method(args)
87
- */
88
- type RillMethod = (receiver: RillValue, args: RillValue[], ctx: RuntimeContext, location?: SourceLocation) => RillValue | Promise<RillValue>;
89
- /** I/O callbacks for runtime operations */
90
- export interface RuntimeCallbacks {
91
- /** Called when .log is invoked */
92
- onLog: (value: RillValue) => void;
93
- }
94
- /** Observability callbacks for monitoring execution */
95
- export interface ObservabilityCallbacks {
96
- /** Called before each statement executes */
97
- onStepStart?: (event: StepStartEvent) => void;
98
- /** Called after each statement executes */
99
- onStepEnd?: (event: StepEndEvent) => void;
100
- /** Called before a function is invoked */
101
- onFunctionCall?: (event: FunctionCallEvent) => void;
102
- /** Called after a function returns */
103
- onFunctionReturn?: (event: FunctionReturnEvent) => void;
104
- /** Called when a variable is captured */
105
- onCapture?: (event: CaptureEvent) => void;
106
- /** Called when an error occurs */
107
- onError?: (event: ErrorEvent) => void;
108
- }
109
- /** Event emitted before a statement executes */
110
- export interface StepStartEvent {
111
- /** Statement index (0-based) */
112
- index: number;
113
- /** Total statements */
114
- total: number;
115
- /** Current pipe value before execution */
116
- pipeValue: RillValue;
117
- }
118
- /** Event emitted after a statement executes */
119
- export interface StepEndEvent {
120
- /** Statement index (0-based) */
121
- index: number;
122
- /** Total statements */
123
- total: number;
124
- /** Value produced by the statement */
125
- value: RillValue;
126
- /** Execution time in milliseconds */
127
- durationMs: number;
128
- }
129
- /** Event emitted before a function call */
130
- export interface FunctionCallEvent {
131
- /** Function name */
132
- name: string;
133
- /** Arguments passed to function */
134
- args: RillValue[];
135
- }
136
- /** Event emitted after a function returns */
137
- export interface FunctionReturnEvent {
138
- /** Function name */
139
- name: string;
140
- /** Return value */
141
- value: RillValue;
142
- /** Execution time in milliseconds */
143
- durationMs: number;
144
- }
145
- /** Event emitted when a variable is captured */
146
- export interface CaptureEvent {
147
- /** Variable name */
148
- name: string;
149
- /** Captured value */
150
- value: RillValue;
151
- }
152
- /** Event emitted on error */
153
- export interface ErrorEvent {
154
- /** The error that occurred */
155
- error: Error;
156
- /** Statement index where error occurred (if available) */
157
- index?: number;
158
- }
159
- /** Runtime context with variables, functions, and callbacks */
160
- export interface RuntimeContext {
161
- /** Named variables ($varname) */
162
- readonly variables: Map<string, RillValue>;
163
- /** Variable types - locked after first assignment */
164
- readonly variableTypes: Map<string, RillTypeName>;
165
- /** Built-in and user-defined functions */
166
- readonly functions: Map<string, CallableFn>;
167
- /** Built-in and user-defined methods */
168
- readonly methods: Map<string, RillMethod>;
169
- /** I/O callbacks */
170
- readonly callbacks: RuntimeCallbacks;
171
- /** Observability callbacks */
172
- readonly observability: ObservabilityCallbacks;
173
- /** Current pipe value ($) */
174
- pipeValue: RillValue;
175
- /** Timeout in milliseconds for user-supplied functions (undefined = no timeout) */
176
- readonly timeout: number | undefined;
177
- /** Compiled regex patterns for auto-exceptions */
178
- readonly autoExceptions: RegExp[];
179
- /** AbortSignal for cancellation (undefined = no cancellation) */
180
- readonly signal: AbortSignal | undefined;
181
- }
182
- /** Options for creating a runtime context */
183
- export interface RuntimeOptions {
184
- /** Initial variables */
185
- variables?: Record<string, RillValue>;
186
- /** Custom functions */
187
- functions?: Record<string, CallableFn>;
188
- /** I/O callbacks */
189
- callbacks?: Partial<RuntimeCallbacks>;
190
- /** Observability callbacks for monitoring execution */
191
- observability?: ObservabilityCallbacks;
192
- /** Timeout in milliseconds for user-supplied functions */
193
- timeout?: number;
194
- /** Regex patterns that auto-halt execution when $_ matches (string values only) */
195
- autoExceptions?: string[];
196
- /** AbortSignal for cancellation support */
197
- signal?: AbortSignal;
198
- }
199
- /** Result of script execution */
200
- export interface ExecutionResult {
201
- /** Final value returned by the script */
202
- value: RillValue;
203
- /** All captured variables */
204
- variables: Record<string, RillValue>;
205
- }
206
- /** Result of a single step execution */
207
- export interface StepResult {
208
- /** Value produced by this step */
209
- value: RillValue;
210
- /** Whether execution is complete (no more statements) */
211
- done: boolean;
212
- /** Current statement index (0-based) */
213
- index: number;
214
- /** Total number of statements */
215
- total: number;
216
- /** Variable captured by this step (if any) */
217
- captured?: {
218
- name: string;
219
- value: RillValue;
220
- } | undefined;
221
- }
222
- /** Stepper for controlled step-by-step execution */
223
- export interface ExecutionStepper {
224
- /** Whether execution is complete */
225
- readonly done: boolean;
226
- /** Current statement index (0-based) */
227
- readonly index: number;
228
- /** Total number of statements */
229
- readonly total: number;
230
- /** The runtime context (for inspecting variables, pipeValue, etc.) */
231
- readonly context: RuntimeContext;
232
- /** Execute the next statement */
233
- step(): Promise<StepResult>;
234
- /** Get final result (only valid after done=true) */
235
- getResult(): ExecutionResult;
236
- }
237
- /** Signal thrown by `break` to exit loops */
238
- export declare class BreakSignal extends Error {
239
- readonly value: RillValue;
240
- constructor(value: RillValue);
241
- }
242
- /** Signal thrown by `return` to exit blocks */
243
- export declare class ReturnSignal extends Error {
244
- readonly value: RillValue;
245
- constructor(value: RillValue);
246
- }
247
- export declare function createRuntimeContext(options?: RuntimeOptions): RuntimeContext;
248
- export declare function execute(script: ScriptNode, context: RuntimeContext): Promise<ExecutionResult>;
249
- /**
250
- * Create a stepper for controlled step-by-step execution.
251
- * Allows the caller to control the execution loop and inspect state between steps.
252
- */
253
- export declare function createStepper(script: ScriptNode, context: RuntimeContext): ExecutionStepper;
254
- //# sourceMappingURL=runtime.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}