@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.
- package/README.md +16 -8
- package/dist/check/config.d.ts +20 -0
- package/dist/check/config.d.ts.map +1 -0
- package/dist/check/config.js +151 -0
- package/dist/check/config.js.map +1 -0
- package/dist/check/fixer.d.ts +39 -0
- package/dist/check/fixer.d.ts.map +1 -0
- package/dist/check/fixer.js +119 -0
- package/dist/check/fixer.js.map +1 -0
- package/dist/check/index.d.ts +10 -0
- package/dist/check/index.d.ts.map +1 -0
- package/dist/check/index.js +21 -0
- package/dist/check/index.js.map +1 -0
- package/dist/check/rules/anti-patterns.d.ts +65 -0
- package/dist/check/rules/anti-patterns.d.ts.map +1 -0
- package/dist/check/rules/anti-patterns.js +427 -0
- package/dist/check/rules/anti-patterns.js.map +1 -0
- package/dist/check/rules/closures.d.ts +66 -0
- package/dist/check/rules/closures.d.ts.map +1 -0
- package/dist/check/rules/closures.js +373 -0
- package/dist/check/rules/closures.js.map +1 -0
- package/dist/check/rules/collections.d.ts +90 -0
- package/dist/check/rules/collections.d.ts.map +1 -0
- package/dist/check/rules/collections.js +373 -0
- package/dist/check/rules/collections.js.map +1 -0
- package/dist/check/rules/conditionals.d.ts +41 -0
- package/dist/check/rules/conditionals.d.ts.map +1 -0
- package/dist/check/rules/conditionals.js +106 -0
- package/dist/check/rules/conditionals.js.map +1 -0
- package/dist/check/rules/flow.d.ts +46 -0
- package/dist/check/rules/flow.d.ts.map +1 -0
- package/dist/check/rules/flow.js +206 -0
- package/dist/check/rules/flow.js.map +1 -0
- package/dist/check/rules/formatting.d.ts +133 -0
- package/dist/check/rules/formatting.d.ts.map +1 -0
- package/dist/check/rules/formatting.js +639 -0
- package/dist/check/rules/formatting.js.map +1 -0
- package/dist/check/rules/helpers.d.ts +26 -0
- package/dist/check/rules/helpers.d.ts.map +1 -0
- package/dist/check/rules/helpers.js +66 -0
- package/dist/check/rules/helpers.js.map +1 -0
- package/dist/check/rules/index.d.ts +21 -0
- package/dist/check/rules/index.d.ts.map +1 -0
- package/dist/check/rules/index.js +78 -0
- package/dist/check/rules/index.js.map +1 -0
- package/dist/check/rules/loops.d.ts +70 -0
- package/dist/check/rules/loops.d.ts.map +1 -0
- package/dist/check/rules/loops.js +227 -0
- package/dist/check/rules/loops.js.map +1 -0
- package/dist/check/rules/naming.d.ts +21 -0
- package/dist/check/rules/naming.d.ts.map +1 -0
- package/dist/check/rules/naming.js +167 -0
- package/dist/check/rules/naming.js.map +1 -0
- package/dist/check/rules/strings.d.ts +28 -0
- package/dist/check/rules/strings.d.ts.map +1 -0
- package/dist/check/rules/strings.js +80 -0
- package/dist/check/rules/strings.js.map +1 -0
- package/dist/check/rules/types.d.ts +41 -0
- package/dist/check/rules/types.d.ts.map +1 -0
- package/dist/check/rules/types.js +162 -0
- package/dist/check/rules/types.js.map +1 -0
- package/dist/check/types.d.ts +106 -0
- package/dist/check/types.d.ts.map +1 -0
- package/dist/check/types.js +6 -0
- package/dist/check/types.js.map +1 -0
- package/dist/check/validator.d.ts +18 -0
- package/dist/check/validator.d.ts.map +1 -0
- package/dist/check/validator.js +88 -0
- package/dist/check/validator.js.map +1 -0
- package/dist/check/visitor.d.ts +33 -0
- package/dist/check/visitor.d.ts.map +1 -0
- package/dist/check/visitor.js +243 -0
- package/dist/check/visitor.js.map +1 -0
- package/dist/cli-check.d.ts +43 -0
- package/dist/cli-check.d.ts.map +1 -0
- package/dist/cli-check.js +356 -0
- package/dist/cli-check.js.map +1 -0
- package/dist/cli-eval.d.ts +15 -0
- package/dist/cli-eval.d.ts.map +1 -0
- package/dist/cli-eval.js +120 -0
- package/dist/cli-eval.js.map +1 -0
- package/dist/cli-exec.d.ts +49 -0
- package/dist/cli-exec.d.ts.map +1 -0
- package/dist/cli-exec.js +191 -0
- package/dist/cli-exec.js.map +1 -0
- package/dist/cli-module-loader.d.ts +19 -0
- package/dist/cli-module-loader.d.ts.map +1 -0
- package/dist/cli-module-loader.js +83 -0
- package/dist/cli-module-loader.js.map +1 -0
- package/dist/cli-shared.d.ts +36 -0
- package/dist/cli-shared.d.ts.map +1 -0
- package/dist/cli-shared.js +101 -0
- package/dist/cli-shared.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +4 -11
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lexer/readers.d.ts +1 -1
- package/dist/lexer/readers.d.ts.map +1 -1
- package/dist/lexer/readers.js +62 -32
- package/dist/lexer/readers.js.map +1 -1
- package/dist/lexer/tokenizer.d.ts.map +1 -1
- package/dist/lexer/tokenizer.js +5 -6
- package/dist/lexer/tokenizer.js.map +1 -1
- package/dist/parser/index.js +1 -1
- package/dist/parser/index.js.map +1 -1
- package/dist/parser/parser-expr.js +23 -5
- package/dist/parser/parser-expr.js.map +1 -1
- package/dist/parser/parser-functions.d.ts +2 -2
- package/dist/parser/parser-functions.d.ts.map +1 -1
- package/dist/parser/parser-functions.js +2 -1
- package/dist/parser/parser-functions.js.map +1 -1
- package/dist/parser/parser-literals.js +2 -2
- package/dist/parser/parser-literals.js.map +1 -1
- package/dist/parser/parser-script.js +9 -7
- package/dist/parser/parser-script.js.map +1 -1
- package/dist/parser/parser-variables.js +4 -3
- package/dist/parser/parser-variables.js.map +1 -1
- package/dist/runtime/core/callable.d.ts +5 -6
- package/dist/runtime/core/callable.d.ts.map +1 -1
- package/dist/runtime/core/callable.js.map +1 -1
- package/dist/runtime/core/context.d.ts.map +1 -1
- package/dist/runtime/core/context.js +19 -32
- package/dist/runtime/core/context.js.map +1 -1
- package/dist/runtime/core/equals.js +1 -1
- package/dist/runtime/core/equals.js.map +1 -1
- package/dist/runtime/core/eval/evaluator.d.ts +78 -0
- package/dist/runtime/core/eval/evaluator.d.ts.map +1 -1
- package/dist/runtime/core/eval/evaluator.js +78 -0
- package/dist/runtime/core/eval/evaluator.js.map +1 -1
- package/dist/runtime/core/eval/mixins/closures.d.ts.map +1 -1
- package/dist/runtime/core/eval/mixins/closures.js +9 -1
- package/dist/runtime/core/eval/mixins/closures.js.map +1 -1
- package/dist/runtime/core/eval/mixins/variables.d.ts.map +1 -1
- package/dist/runtime/core/eval/mixins/variables.js +143 -2
- package/dist/runtime/core/eval/mixins/variables.js.map +1 -1
- package/dist/runtime/core/types.d.ts +15 -2
- package/dist/runtime/core/types.d.ts.map +1 -1
- package/dist/runtime/core/types.js.map +1 -1
- package/dist/runtime/ext/extensions.d.ts +51 -0
- package/dist/runtime/ext/extensions.d.ts.map +1 -0
- package/dist/runtime/ext/extensions.js +67 -0
- package/dist/runtime/ext/extensions.js.map +1 -0
- package/dist/runtime/index.d.ts +3 -0
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +1 -0
- package/dist/runtime/index.js.map +1 -1
- package/dist/types.d.ts +8 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +5 -4
- package/dist/types.js.map +1 -1
- package/docs/00_INDEX.md +1 -0
- package/docs/01_guide.md +3 -3
- package/docs/02_types.md +8 -10
- package/docs/03_variables.md +10 -0
- package/docs/04_operators.md +3 -3
- package/docs/05_control-flow.md +21 -0
- package/docs/07_collections.md +2 -0
- package/docs/10_parsing.md +9 -9
- package/docs/11_reference.md +1 -1
- package/docs/12_examples.md +36 -62
- package/docs/14_host-integration.md +116 -111
- package/docs/15_grammar.ebnf +1 -5
- package/docs/16_conventions.md +3 -4
- package/docs/17_cli-tools.md +184 -0
- package/docs/99_llm-reference.txt +46 -5
- package/package.json +13 -4
- package/dist/demo.d.ts +0 -6
- package/dist/demo.d.ts.map +0 -1
- package/dist/demo.js +0 -121
- package/dist/demo.js.map +0 -1
- package/dist/lexer.d.ts +0 -19
- package/dist/lexer.d.ts.map +0 -1
- package/dist/lexer.js +0 -344
- package/dist/lexer.js.map +0 -1
- package/dist/parser/arithmetic.d.ts +0 -16
- package/dist/parser/arithmetic.d.ts.map +0 -1
- package/dist/parser/arithmetic.js +0 -128
- package/dist/parser/arithmetic.js.map +0 -1
- package/dist/parser/boolean.d.ts +0 -15
- package/dist/parser/boolean.d.ts.map +0 -1
- package/dist/parser/boolean.js +0 -20
- package/dist/parser/boolean.js.map +0 -1
- package/dist/parser/control-flow.d.ts +0 -56
- package/dist/parser/control-flow.d.ts.map +0 -1
- package/dist/parser/control-flow.js +0 -167
- package/dist/parser/control-flow.js.map +0 -1
- package/dist/parser/expressions.d.ts +0 -23
- package/dist/parser/expressions.d.ts.map +0 -1
- package/dist/parser/expressions.js +0 -950
- package/dist/parser/expressions.js.map +0 -1
- package/dist/parser/extraction.d.ts +0 -48
- package/dist/parser/extraction.d.ts.map +0 -1
- package/dist/parser/extraction.js +0 -279
- package/dist/parser/extraction.js.map +0 -1
- package/dist/parser/functions.d.ts +0 -20
- package/dist/parser/functions.d.ts.map +0 -1
- package/dist/parser/functions.js +0 -96
- package/dist/parser/functions.js.map +0 -1
- package/dist/parser/literals.d.ts +0 -37
- package/dist/parser/literals.d.ts.map +0 -1
- package/dist/parser/literals.js +0 -373
- package/dist/parser/literals.js.map +0 -1
- package/dist/parser/script.d.ts +0 -14
- package/dist/parser/script.d.ts.map +0 -1
- package/dist/parser/script.js +0 -196
- package/dist/parser/script.js.map +0 -1
- package/dist/parser/variables.d.ts +0 -10
- package/dist/parser/variables.d.ts.map +0 -1
- package/dist/parser/variables.js +0 -215
- package/dist/parser/variables.js.map +0 -1
- package/dist/runtime/ast-equals.d.ts +0 -13
- package/dist/runtime/ast-equals.d.ts.map +0 -1
- package/dist/runtime/ast-equals.js +0 -447
- package/dist/runtime/ast-equals.js.map +0 -1
- package/dist/runtime/builtins.d.ts +0 -13
- package/dist/runtime/builtins.d.ts.map +0 -1
- package/dist/runtime/builtins.js +0 -180
- package/dist/runtime/builtins.js.map +0 -1
- package/dist/runtime/callable.d.ts +0 -88
- package/dist/runtime/callable.d.ts.map +0 -1
- package/dist/runtime/callable.js +0 -98
- package/dist/runtime/callable.js.map +0 -1
- package/dist/runtime/context.d.ts +0 -13
- package/dist/runtime/context.d.ts.map +0 -1
- package/dist/runtime/context.js +0 -73
- package/dist/runtime/context.js.map +0 -1
- package/dist/runtime/core/evaluate.d.ts +0 -42
- package/dist/runtime/core/evaluate.d.ts.map +0 -1
- package/dist/runtime/core/evaluate.debug.js +0 -1251
- package/dist/runtime/core/evaluate.js +0 -1913
- package/dist/runtime/core/evaluate.js.map +0 -1
- package/dist/runtime/evaluate.d.ts +0 -32
- package/dist/runtime/evaluate.d.ts.map +0 -1
- package/dist/runtime/evaluate.js +0 -1111
- package/dist/runtime/evaluate.js.map +0 -1
- package/dist/runtime/execute.d.ts +0 -26
- package/dist/runtime/execute.d.ts.map +0 -1
- package/dist/runtime/execute.js +0 -121
- package/dist/runtime/execute.js.map +0 -1
- package/dist/runtime/signals.d.ts +0 -19
- package/dist/runtime/signals.d.ts.map +0 -1
- package/dist/runtime/signals.js +0 -26
- package/dist/runtime/signals.js.map +0 -1
- package/dist/runtime/types.d.ts +0 -169
- package/dist/runtime/types.d.ts.map +0 -1
- package/dist/runtime/types.js +0 -50
- package/dist/runtime/types.js.map +0 -1
- package/dist/runtime/values.d.ts +0 -50
- package/dist/runtime/values.d.ts.map +0 -1
- package/dist/runtime/values.js +0 -209
- package/dist/runtime/values.js.map +0 -1
- package/dist/runtime.d.ts +0 -254
- package/dist/runtime.d.ts.map +0 -1
- package/dist/runtime.js +0 -2014
- package/dist/runtime.js.map +0 -1
package/dist/runtime/values.js
DELETED
|
@@ -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":"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"}
|
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
|
package/dist/runtime.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|