@rcrsr/rill 0.1.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/LICENSE +21 -0
- package/README.md +187 -0
- package/dist/cli.d.ts +11 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +69 -0
- package/dist/cli.js.map +1 -0
- package/dist/demo.d.ts +6 -0
- package/dist/demo.d.ts.map +1 -0
- package/dist/demo.js +121 -0
- package/dist/demo.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/lexer/errors.d.ts +9 -0
- package/dist/lexer/errors.d.ts.map +1 -0
- package/dist/lexer/errors.js +12 -0
- package/dist/lexer/errors.js.map +1 -0
- package/dist/lexer/helpers.d.ts +14 -0
- package/dist/lexer/helpers.d.ts.map +1 -0
- package/dist/lexer/helpers.js +30 -0
- package/dist/lexer/helpers.js.map +1 -0
- package/dist/lexer/index.d.ts +8 -0
- package/dist/lexer/index.d.ts.map +1 -0
- package/dist/lexer/index.js +8 -0
- package/dist/lexer/index.js.map +1 -0
- package/dist/lexer/operators.d.ts +11 -0
- package/dist/lexer/operators.d.ts.map +1 -0
- package/dist/lexer/operators.js +58 -0
- package/dist/lexer/operators.js.map +1 -0
- package/dist/lexer/readers.d.ts +12 -0
- package/dist/lexer/readers.d.ts.map +1 -0
- package/dist/lexer/readers.js +144 -0
- package/dist/lexer/readers.js.map +1 -0
- package/dist/lexer/state.d.ts +18 -0
- package/dist/lexer/state.d.ts.map +1 -0
- package/dist/lexer/state.js +37 -0
- package/dist/lexer/state.js.map +1 -0
- package/dist/lexer/tokenizer.d.ts +9 -0
- package/dist/lexer/tokenizer.d.ts.map +1 -0
- package/dist/lexer/tokenizer.js +100 -0
- package/dist/lexer/tokenizer.js.map +1 -0
- package/dist/lexer.d.ts +19 -0
- package/dist/lexer.d.ts.map +1 -0
- package/dist/lexer.js +344 -0
- package/dist/lexer.js.map +1 -0
- package/dist/parser/arithmetic.d.ts +16 -0
- package/dist/parser/arithmetic.d.ts.map +1 -0
- package/dist/parser/arithmetic.js +128 -0
- package/dist/parser/arithmetic.js.map +1 -0
- package/dist/parser/boolean.d.ts +15 -0
- package/dist/parser/boolean.d.ts.map +1 -0
- package/dist/parser/boolean.js +20 -0
- package/dist/parser/boolean.js.map +1 -0
- package/dist/parser/control-flow.d.ts +56 -0
- package/dist/parser/control-flow.d.ts.map +1 -0
- package/dist/parser/control-flow.js +167 -0
- package/dist/parser/control-flow.js.map +1 -0
- package/dist/parser/expressions.d.ts +23 -0
- package/dist/parser/expressions.d.ts.map +1 -0
- package/dist/parser/expressions.js +950 -0
- package/dist/parser/expressions.js.map +1 -0
- package/dist/parser/extraction.d.ts +48 -0
- package/dist/parser/extraction.d.ts.map +1 -0
- package/dist/parser/extraction.js +279 -0
- package/dist/parser/extraction.js.map +1 -0
- package/dist/parser/functions.d.ts +20 -0
- package/dist/parser/functions.d.ts.map +1 -0
- package/dist/parser/functions.js +96 -0
- package/dist/parser/functions.js.map +1 -0
- package/dist/parser/helpers.d.ts +94 -0
- package/dist/parser/helpers.d.ts.map +1 -0
- package/dist/parser/helpers.js +225 -0
- package/dist/parser/helpers.js.map +1 -0
- package/dist/parser/index.d.ts +49 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +73 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/literals.d.ts +37 -0
- package/dist/parser/literals.d.ts.map +1 -0
- package/dist/parser/literals.js +373 -0
- package/dist/parser/literals.js.map +1 -0
- package/dist/parser/parser-collect.d.ts +16 -0
- package/dist/parser/parser-collect.d.ts.map +1 -0
- package/dist/parser/parser-collect.js +125 -0
- package/dist/parser/parser-collect.js.map +1 -0
- package/dist/parser/parser-control.d.ts +20 -0
- package/dist/parser/parser-control.d.ts.map +1 -0
- package/dist/parser/parser-control.js +120 -0
- package/dist/parser/parser-control.js.map +1 -0
- package/dist/parser/parser-expr.d.ts +37 -0
- package/dist/parser/parser-expr.d.ts.map +1 -0
- package/dist/parser/parser-expr.js +639 -0
- package/dist/parser/parser-expr.js.map +1 -0
- package/dist/parser/parser-extract.d.ts +17 -0
- package/dist/parser/parser-extract.d.ts.map +1 -0
- package/dist/parser/parser-extract.js +222 -0
- package/dist/parser/parser-extract.js.map +1 -0
- package/dist/parser/parser-functions.d.ts +21 -0
- package/dist/parser/parser-functions.d.ts.map +1 -0
- package/dist/parser/parser-functions.js +155 -0
- package/dist/parser/parser-functions.js.map +1 -0
- package/dist/parser/parser-literals.d.ts +22 -0
- package/dist/parser/parser-literals.d.ts.map +1 -0
- package/dist/parser/parser-literals.js +288 -0
- package/dist/parser/parser-literals.js.map +1 -0
- package/dist/parser/parser-script.d.ts +21 -0
- package/dist/parser/parser-script.d.ts.map +1 -0
- package/dist/parser/parser-script.js +174 -0
- package/dist/parser/parser-script.js.map +1 -0
- package/dist/parser/parser-variables.d.ts +20 -0
- package/dist/parser/parser-variables.d.ts.map +1 -0
- package/dist/parser/parser-variables.js +146 -0
- package/dist/parser/parser-variables.js.map +1 -0
- package/dist/parser/parser.d.ts +49 -0
- package/dist/parser/parser.d.ts.map +1 -0
- package/dist/parser/parser.js +54 -0
- package/dist/parser/parser.js.map +1 -0
- package/dist/parser/script.d.ts +14 -0
- package/dist/parser/script.d.ts.map +1 -0
- package/dist/parser/script.js +196 -0
- package/dist/parser/script.js.map +1 -0
- package/dist/parser/state.d.ts +40 -0
- package/dist/parser/state.d.ts.map +1 -0
- package/dist/parser/state.js +129 -0
- package/dist/parser/state.js.map +1 -0
- package/dist/parser/variables.d.ts +10 -0
- package/dist/parser/variables.d.ts.map +1 -0
- package/dist/parser/variables.js +215 -0
- package/dist/parser/variables.js.map +1 -0
- package/dist/runtime/ast-equals.d.ts +13 -0
- package/dist/runtime/ast-equals.d.ts.map +1 -0
- package/dist/runtime/ast-equals.js +447 -0
- package/dist/runtime/ast-equals.js.map +1 -0
- package/dist/runtime/builtins.d.ts +13 -0
- package/dist/runtime/builtins.d.ts.map +1 -0
- package/dist/runtime/builtins.js +180 -0
- package/dist/runtime/builtins.js.map +1 -0
- package/dist/runtime/callable.d.ts +88 -0
- package/dist/runtime/callable.d.ts.map +1 -0
- package/dist/runtime/callable.js +98 -0
- package/dist/runtime/callable.js.map +1 -0
- package/dist/runtime/context.d.ts +13 -0
- package/dist/runtime/context.d.ts.map +1 -0
- package/dist/runtime/context.js +73 -0
- package/dist/runtime/context.js.map +1 -0
- package/dist/runtime/core/callable.d.ts +171 -0
- package/dist/runtime/core/callable.d.ts.map +1 -0
- package/dist/runtime/core/callable.js +246 -0
- package/dist/runtime/core/callable.js.map +1 -0
- package/dist/runtime/core/context.d.ts +29 -0
- package/dist/runtime/core/context.d.ts.map +1 -0
- package/dist/runtime/core/context.js +154 -0
- package/dist/runtime/core/context.js.map +1 -0
- package/dist/runtime/core/equals.d.ts +9 -0
- package/dist/runtime/core/equals.d.ts.map +1 -0
- package/dist/runtime/core/equals.js +381 -0
- package/dist/runtime/core/equals.js.map +1 -0
- package/dist/runtime/core/eval/base.d.ts +65 -0
- package/dist/runtime/core/eval/base.d.ts.map +1 -0
- package/dist/runtime/core/eval/base.js +112 -0
- package/dist/runtime/core/eval/base.js.map +1 -0
- package/dist/runtime/core/eval/evaluator.d.ts +47 -0
- package/dist/runtime/core/eval/evaluator.d.ts.map +1 -0
- package/dist/runtime/core/eval/evaluator.js +73 -0
- package/dist/runtime/core/eval/evaluator.js.map +1 -0
- package/dist/runtime/core/eval/index.d.ts +57 -0
- package/dist/runtime/core/eval/index.d.ts.map +1 -0
- package/dist/runtime/core/eval/index.js +95 -0
- package/dist/runtime/core/eval/index.js.map +1 -0
- package/dist/runtime/core/eval/mixins/annotations.d.ts +19 -0
- package/dist/runtime/core/eval/mixins/annotations.d.ts.map +1 -0
- package/dist/runtime/core/eval/mixins/annotations.js +146 -0
- package/dist/runtime/core/eval/mixins/annotations.js.map +1 -0
- package/dist/runtime/core/eval/mixins/closures.d.ts +49 -0
- package/dist/runtime/core/eval/mixins/closures.d.ts.map +1 -0
- package/dist/runtime/core/eval/mixins/closures.js +479 -0
- package/dist/runtime/core/eval/mixins/closures.js.map +1 -0
- package/dist/runtime/core/eval/mixins/collections.d.ts +24 -0
- package/dist/runtime/core/eval/mixins/collections.d.ts.map +1 -0
- package/dist/runtime/core/eval/mixins/collections.js +466 -0
- package/dist/runtime/core/eval/mixins/collections.js.map +1 -0
- package/dist/runtime/core/eval/mixins/control-flow.d.ts +27 -0
- package/dist/runtime/core/eval/mixins/control-flow.d.ts.map +1 -0
- package/dist/runtime/core/eval/mixins/control-flow.js +369 -0
- package/dist/runtime/core/eval/mixins/control-flow.js.map +1 -0
- package/dist/runtime/core/eval/mixins/core.d.ts +24 -0
- package/dist/runtime/core/eval/mixins/core.d.ts.map +1 -0
- package/dist/runtime/core/eval/mixins/core.js +335 -0
- package/dist/runtime/core/eval/mixins/core.js.map +1 -0
- package/dist/runtime/core/eval/mixins/expressions.d.ts +19 -0
- package/dist/runtime/core/eval/mixins/expressions.d.ts.map +1 -0
- package/dist/runtime/core/eval/mixins/expressions.js +202 -0
- package/dist/runtime/core/eval/mixins/expressions.js.map +1 -0
- package/dist/runtime/core/eval/mixins/extraction.d.ts +10 -0
- package/dist/runtime/core/eval/mixins/extraction.d.ts.map +1 -0
- package/dist/runtime/core/eval/mixins/extraction.js +250 -0
- package/dist/runtime/core/eval/mixins/extraction.js.map +1 -0
- package/dist/runtime/core/eval/mixins/literals.d.ts +23 -0
- package/dist/runtime/core/eval/mixins/literals.d.ts.map +1 -0
- package/dist/runtime/core/eval/mixins/literals.js +180 -0
- package/dist/runtime/core/eval/mixins/literals.js.map +1 -0
- package/dist/runtime/core/eval/mixins/types.d.ts +20 -0
- package/dist/runtime/core/eval/mixins/types.d.ts.map +1 -0
- package/dist/runtime/core/eval/mixins/types.js +109 -0
- package/dist/runtime/core/eval/mixins/types.js.map +1 -0
- package/dist/runtime/core/eval/mixins/variables.d.ts +34 -0
- package/dist/runtime/core/eval/mixins/variables.d.ts.map +1 -0
- package/dist/runtime/core/eval/mixins/variables.js +247 -0
- package/dist/runtime/core/eval/mixins/variables.js.map +1 -0
- package/dist/runtime/core/eval/types.d.ts +41 -0
- package/dist/runtime/core/eval/types.d.ts.map +1 -0
- package/dist/runtime/core/eval/types.js +10 -0
- package/dist/runtime/core/eval/types.js.map +1 -0
- package/dist/runtime/core/evaluate.d.ts +42 -0
- package/dist/runtime/core/evaluate.d.ts.map +1 -0
- package/dist/runtime/core/evaluate.debug.js +1251 -0
- package/dist/runtime/core/evaluate.js +1913 -0
- package/dist/runtime/core/evaluate.js.map +1 -0
- package/dist/runtime/core/execute.d.ts +26 -0
- package/dist/runtime/core/execute.d.ts.map +1 -0
- package/dist/runtime/core/execute.js +177 -0
- package/dist/runtime/core/execute.js.map +1 -0
- package/dist/runtime/core/signals.d.ts +19 -0
- package/dist/runtime/core/signals.d.ts.map +1 -0
- package/dist/runtime/core/signals.js +26 -0
- package/dist/runtime/core/signals.js.map +1 -0
- package/dist/runtime/core/types.d.ts +177 -0
- package/dist/runtime/core/types.d.ts.map +1 -0
- package/dist/runtime/core/types.js +50 -0
- package/dist/runtime/core/types.js.map +1 -0
- package/dist/runtime/core/values.d.ts +66 -0
- package/dist/runtime/core/values.d.ts.map +1 -0
- package/dist/runtime/core/values.js +240 -0
- package/dist/runtime/core/values.js.map +1 -0
- package/dist/runtime/evaluate.d.ts +32 -0
- package/dist/runtime/evaluate.d.ts.map +1 -0
- package/dist/runtime/evaluate.js +1111 -0
- package/dist/runtime/evaluate.js.map +1 -0
- package/dist/runtime/execute.d.ts +26 -0
- package/dist/runtime/execute.d.ts.map +1 -0
- package/dist/runtime/execute.js +121 -0
- package/dist/runtime/execute.js.map +1 -0
- package/dist/runtime/ext/builtins.d.ts +16 -0
- package/dist/runtime/ext/builtins.d.ts.map +1 -0
- package/dist/runtime/ext/builtins.js +528 -0
- package/dist/runtime/ext/builtins.js.map +1 -0
- package/dist/runtime/ext/content-parser.d.ts +83 -0
- package/dist/runtime/ext/content-parser.d.ts.map +1 -0
- package/dist/runtime/ext/content-parser.js +536 -0
- package/dist/runtime/ext/content-parser.js.map +1 -0
- package/dist/runtime/index.d.ts +28 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +34 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/signals.d.ts +19 -0
- package/dist/runtime/signals.d.ts.map +1 -0
- package/dist/runtime/signals.js +26 -0
- package/dist/runtime/signals.js.map +1 -0
- package/dist/runtime/types.d.ts +169 -0
- package/dist/runtime/types.d.ts.map +1 -0
- package/dist/runtime/types.js +50 -0
- package/dist/runtime/types.js.map +1 -0
- package/dist/runtime/values.d.ts +50 -0
- package/dist/runtime/values.d.ts.map +1 -0
- package/dist/runtime/values.js +209 -0
- package/dist/runtime/values.js.map +1 -0
- package/dist/runtime.d.ts +254 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +2014 -0
- package/dist/runtime.js.map +1 -0
- package/dist/types.d.ts +752 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +189 -0
- package/dist/types.js.map +1 -0
- package/docs/00_INDEX.md +65 -0
- package/docs/01_guide.md +390 -0
- package/docs/02_types.md +399 -0
- package/docs/03_variables.md +314 -0
- package/docs/04_operators.md +551 -0
- package/docs/05_control-flow.md +350 -0
- package/docs/06_closures.md +353 -0
- package/docs/07_collections.md +686 -0
- package/docs/08_iterators.md +330 -0
- package/docs/09_strings.md +205 -0
- package/docs/10_parsing.md +366 -0
- package/docs/11_reference.md +350 -0
- package/docs/12_examples.md +771 -0
- package/docs/13_modules.md +519 -0
- package/docs/14_host-integration.md +826 -0
- package/docs/15_grammar.ebnf +693 -0
- package/docs/16_conventions.md +696 -0
- package/docs/99_llm-reference.txt +300 -0
- package/docs/assets/logo.png +0 -0
- package/package.json +70 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../src/runtime/builtins.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Callable Types
|
|
3
|
+
*
|
|
4
|
+
* Unified representation for all callable values in Rill:
|
|
5
|
+
* - ScriptCallable: Closures parsed from Rill source code
|
|
6
|
+
* - RuntimeCallable: Rill's built-in functions (type, log, json, identity)
|
|
7
|
+
* - ApplicationCallable: Host application-provided functions
|
|
8
|
+
*
|
|
9
|
+
* Public API for host applications.
|
|
10
|
+
*/
|
|
11
|
+
import type { BlockNode, SourceLocation } from '../types.js';
|
|
12
|
+
import type { RillValue } from './values.js';
|
|
13
|
+
interface RuntimeContextLike {
|
|
14
|
+
readonly variables: Map<string, RillValue>;
|
|
15
|
+
pipeValue: RillValue;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Callable function signature.
|
|
19
|
+
* Used for both host-provided functions and runtime callables.
|
|
20
|
+
*/
|
|
21
|
+
export type CallableFn = (args: RillValue[], ctx: RuntimeContextLike, location?: SourceLocation) => RillValue | Promise<RillValue>;
|
|
22
|
+
/** Parameter definition for script closures */
|
|
23
|
+
export interface CallableParam {
|
|
24
|
+
readonly name: string;
|
|
25
|
+
readonly typeName: 'string' | 'number' | 'bool' | null;
|
|
26
|
+
readonly defaultValue: RillValue | null;
|
|
27
|
+
}
|
|
28
|
+
/** Common fields for all callable types */
|
|
29
|
+
interface CallableBase {
|
|
30
|
+
readonly __type: 'callable';
|
|
31
|
+
/**
|
|
32
|
+
* Property-style callable: auto-invoked when accessed from a dict.
|
|
33
|
+
* For script callables, $ is bound to the containing dict.
|
|
34
|
+
* For runtime callables, the dict is passed as first argument.
|
|
35
|
+
*/
|
|
36
|
+
readonly isProperty: boolean;
|
|
37
|
+
/** Reference to containing dict (set when stored in a dict) */
|
|
38
|
+
boundDict?: Record<string, RillValue>;
|
|
39
|
+
}
|
|
40
|
+
/** Script callable - parsed from Rill source code */
|
|
41
|
+
export interface ScriptCallable extends CallableBase {
|
|
42
|
+
readonly kind: 'script';
|
|
43
|
+
readonly params: CallableParam[];
|
|
44
|
+
readonly body: BlockNode;
|
|
45
|
+
readonly capturedVars: Map<string, RillValue>;
|
|
46
|
+
}
|
|
47
|
+
/** Runtime callable - Rill's built-in functions (type, log, json, identity) */
|
|
48
|
+
export interface RuntimeCallable extends CallableBase {
|
|
49
|
+
readonly kind: 'runtime';
|
|
50
|
+
readonly fn: CallableFn;
|
|
51
|
+
}
|
|
52
|
+
/** Application callable - host application-provided functions */
|
|
53
|
+
export interface ApplicationCallable extends CallableBase {
|
|
54
|
+
readonly kind: 'application';
|
|
55
|
+
readonly fn: CallableFn;
|
|
56
|
+
}
|
|
57
|
+
/** Union of all callable types */
|
|
58
|
+
export type RillCallable = ScriptCallable | RuntimeCallable | ApplicationCallable;
|
|
59
|
+
/** Type guard for any callable */
|
|
60
|
+
export declare function isCallable(value: RillValue): value is RillCallable;
|
|
61
|
+
/** Type guard for script callable */
|
|
62
|
+
export declare function isScriptCallable(value: RillValue): value is ScriptCallable;
|
|
63
|
+
/** Type guard for runtime callable */
|
|
64
|
+
export declare function isRuntimeCallable(value: RillValue): value is RuntimeCallable;
|
|
65
|
+
/** Type guard for application callable */
|
|
66
|
+
export declare function isApplicationCallable(value: RillValue): value is ApplicationCallable;
|
|
67
|
+
/**
|
|
68
|
+
* Create an application callable from a host function.
|
|
69
|
+
* @param fn The function to wrap
|
|
70
|
+
* @param isProperty If true, auto-invokes when accessed from dict (property-style)
|
|
71
|
+
*/
|
|
72
|
+
export declare function callable(fn: CallableFn, isProperty?: boolean): ApplicationCallable;
|
|
73
|
+
/** Type guard for dict (plain object, not array, not callable, not args) */
|
|
74
|
+
export declare function isDict(value: RillValue): value is Record<string, RillValue>;
|
|
75
|
+
/** Format a callable for display */
|
|
76
|
+
export declare function formatCallable(callable: RillCallable): string;
|
|
77
|
+
/**
|
|
78
|
+
* Deep equality for script callables.
|
|
79
|
+
* Compares params, body AST structure, and captured variables.
|
|
80
|
+
*
|
|
81
|
+
* Two closures are equal if:
|
|
82
|
+
* 1. Same parameter names, types, and default values
|
|
83
|
+
* 2. Structurally identical body AST (ignoring source locations)
|
|
84
|
+
* 3. Same captured variable names with equal values
|
|
85
|
+
*/
|
|
86
|
+
export declare function callableEquals(a: ScriptCallable, b: ScriptCallable, valueEquals?: (a: RillValue, b: RillValue) => boolean): boolean;
|
|
87
|
+
export {};
|
|
88
|
+
//# sourceMappingURL=callable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callable.d.ts","sourceRoot":"","sources":["../../src/runtime/callable.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Callable Types
|
|
3
|
+
*
|
|
4
|
+
* Unified representation for all callable values in Rill:
|
|
5
|
+
* - ScriptCallable: Closures parsed from Rill source code
|
|
6
|
+
* - RuntimeCallable: Rill's built-in functions (type, log, json, identity)
|
|
7
|
+
* - ApplicationCallable: Host application-provided functions
|
|
8
|
+
*
|
|
9
|
+
* Public API for host applications.
|
|
10
|
+
*/
|
|
11
|
+
import { astEquals } from './ast-equals.js';
|
|
12
|
+
import { formatValue, isArgs } from './values.js';
|
|
13
|
+
/** Type guard for any callable */
|
|
14
|
+
export function isCallable(value) {
|
|
15
|
+
return (typeof value === 'object' &&
|
|
16
|
+
value !== null &&
|
|
17
|
+
'__type' in value &&
|
|
18
|
+
value.__type === 'callable');
|
|
19
|
+
}
|
|
20
|
+
/** Type guard for script callable */
|
|
21
|
+
export function isScriptCallable(value) {
|
|
22
|
+
return isCallable(value) && value.kind === 'script';
|
|
23
|
+
}
|
|
24
|
+
/** Type guard for runtime callable */
|
|
25
|
+
export function isRuntimeCallable(value) {
|
|
26
|
+
return isCallable(value) && value.kind === 'runtime';
|
|
27
|
+
}
|
|
28
|
+
/** Type guard for application callable */
|
|
29
|
+
export function isApplicationCallable(value) {
|
|
30
|
+
return isCallable(value) && value.kind === 'application';
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Create an application callable from a host function.
|
|
34
|
+
* @param fn The function to wrap
|
|
35
|
+
* @param isProperty If true, auto-invokes when accessed from dict (property-style)
|
|
36
|
+
*/
|
|
37
|
+
export function callable(fn, isProperty = false) {
|
|
38
|
+
return { __type: 'callable', kind: 'application', fn, isProperty };
|
|
39
|
+
}
|
|
40
|
+
/** Type guard for dict (plain object, not array, not callable, not args) */
|
|
41
|
+
export function isDict(value) {
|
|
42
|
+
return (typeof value === 'object' &&
|
|
43
|
+
value !== null &&
|
|
44
|
+
!Array.isArray(value) &&
|
|
45
|
+
!isCallable(value) &&
|
|
46
|
+
!isArgs(value));
|
|
47
|
+
}
|
|
48
|
+
/** Format a callable for display */
|
|
49
|
+
export function formatCallable(callable) {
|
|
50
|
+
if (callable.kind === 'script') {
|
|
51
|
+
const paramStr = callable.params.map((p) => p.name).join(', ');
|
|
52
|
+
return `(${paramStr}) { ... }`;
|
|
53
|
+
}
|
|
54
|
+
return '(...) { [native] }';
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Deep equality for script callables.
|
|
58
|
+
* Compares params, body AST structure, and captured variables.
|
|
59
|
+
*
|
|
60
|
+
* Two closures are equal if:
|
|
61
|
+
* 1. Same parameter names, types, and default values
|
|
62
|
+
* 2. Structurally identical body AST (ignoring source locations)
|
|
63
|
+
* 3. Same captured variable names with equal values
|
|
64
|
+
*/
|
|
65
|
+
export function callableEquals(a, b, valueEquals = (x, y) => formatValue(x) === formatValue(y)) {
|
|
66
|
+
// Compare params (name, type, default)
|
|
67
|
+
if (a.params.length !== b.params.length)
|
|
68
|
+
return false;
|
|
69
|
+
for (let i = 0; i < a.params.length; i++) {
|
|
70
|
+
const ap = a.params[i];
|
|
71
|
+
const bp = b.params[i];
|
|
72
|
+
if (ap === undefined || bp === undefined)
|
|
73
|
+
return false;
|
|
74
|
+
if (ap.name !== bp.name)
|
|
75
|
+
return false;
|
|
76
|
+
if (ap.typeName !== bp.typeName)
|
|
77
|
+
return false;
|
|
78
|
+
if (!valueEquals(ap.defaultValue ?? null, bp.defaultValue ?? null)) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// Compare body by AST structure (ignoring source locations)
|
|
83
|
+
if (!astEquals(a.body, b.body)) {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
// Compare captured variables
|
|
87
|
+
if (a.capturedVars.size !== b.capturedVars.size)
|
|
88
|
+
return false;
|
|
89
|
+
for (const [key, aVal] of a.capturedVars) {
|
|
90
|
+
const bVal = b.capturedVars.get(key);
|
|
91
|
+
if (bVal === undefined)
|
|
92
|
+
return false;
|
|
93
|
+
if (!valueEquals(aVal, bVal))
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=callable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callable.js","sourceRoot":"","sources":["../../src/runtime/callable.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime Context Factory
|
|
3
|
+
*
|
|
4
|
+
* Creates and configures the runtime context for script execution.
|
|
5
|
+
* Public API for host applications.
|
|
6
|
+
*/
|
|
7
|
+
import type { RuntimeContext, RuntimeOptions } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Create a runtime context for script execution.
|
|
10
|
+
* This is the main entry point for configuring the Rill runtime.
|
|
11
|
+
*/
|
|
12
|
+
export declare function createRuntimeContext(options?: RuntimeOptions): RuntimeContext;
|
|
13
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/runtime/context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAgC,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAU/F;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,GAAE,cAAmB,GAC3B,cAAc,CA8DhB"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime Context Factory
|
|
3
|
+
*
|
|
4
|
+
* Creates and configures the runtime context for script execution.
|
|
5
|
+
* Public API for host applications.
|
|
6
|
+
*/
|
|
7
|
+
import { RILL_ERROR_CODES, RuntimeError } from '../types.js';
|
|
8
|
+
import { BUILTIN_FUNCTIONS, BUILTIN_METHODS } from './builtins.js';
|
|
9
|
+
import { bindDictCallables } from './types.js';
|
|
10
|
+
import { formatValue, inferType } from './values.js';
|
|
11
|
+
const defaultCallbacks = {
|
|
12
|
+
onLog: (value) => {
|
|
13
|
+
console.log(formatValue(value));
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Create a runtime context for script execution.
|
|
18
|
+
* This is the main entry point for configuring the Rill runtime.
|
|
19
|
+
*/
|
|
20
|
+
export function createRuntimeContext(options = {}) {
|
|
21
|
+
const variables = new Map();
|
|
22
|
+
const variableTypes = new Map();
|
|
23
|
+
const functions = new Map();
|
|
24
|
+
const methods = new Map();
|
|
25
|
+
// Set initial variables (and infer their types)
|
|
26
|
+
if (options.variables) {
|
|
27
|
+
for (const [name, value] of Object.entries(options.variables)) {
|
|
28
|
+
// Bind callables in dicts to their containing dict
|
|
29
|
+
const boundValue = bindDictCallables(value);
|
|
30
|
+
variables.set(name, boundValue);
|
|
31
|
+
variableTypes.set(name, inferType(boundValue));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// Set built-in functions
|
|
35
|
+
for (const [name, fn] of Object.entries(BUILTIN_FUNCTIONS)) {
|
|
36
|
+
functions.set(name, fn);
|
|
37
|
+
}
|
|
38
|
+
// Set custom functions (can override built-ins)
|
|
39
|
+
if (options.functions) {
|
|
40
|
+
for (const [name, fn] of Object.entries(options.functions)) {
|
|
41
|
+
functions.set(name, fn);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// Set built-in methods
|
|
45
|
+
for (const [name, impl] of Object.entries(BUILTIN_METHODS)) {
|
|
46
|
+
methods.set(name, impl);
|
|
47
|
+
}
|
|
48
|
+
// Compile autoException patterns into RegExp objects
|
|
49
|
+
const autoExceptions = [];
|
|
50
|
+
if (options.autoExceptions) {
|
|
51
|
+
for (const pattern of options.autoExceptions) {
|
|
52
|
+
try {
|
|
53
|
+
autoExceptions.push(new RegExp(pattern));
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_INVALID_PATTERN, `Invalid autoException pattern: ${pattern}`, undefined, { pattern });
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
variables,
|
|
62
|
+
variableTypes,
|
|
63
|
+
functions,
|
|
64
|
+
methods,
|
|
65
|
+
callbacks: { ...defaultCallbacks, ...options.callbacks },
|
|
66
|
+
observability: options.observability ?? {},
|
|
67
|
+
pipeValue: null,
|
|
68
|
+
timeout: options.timeout,
|
|
69
|
+
autoExceptions,
|
|
70
|
+
signal: options.signal,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/runtime/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Callable Types
|
|
3
|
+
*
|
|
4
|
+
* Unified representation for all callable values in Rill:
|
|
5
|
+
* - ScriptCallable: Closures parsed from Rill source code
|
|
6
|
+
* - RuntimeCallable: Rill's built-in functions (type, log, json, identity)
|
|
7
|
+
* - ApplicationCallable: Host application-provided functions
|
|
8
|
+
*
|
|
9
|
+
* Public API for host applications.
|
|
10
|
+
*
|
|
11
|
+
* ## Implementation Notes
|
|
12
|
+
*
|
|
13
|
+
* [DEVIATION] EC-1 Error Context Fields
|
|
14
|
+
* - Spec defines error context as { functionName, paramName, expectedType, actualType }
|
|
15
|
+
* - EC-1 (excess arguments) uses { functionName, expectedCount, actualCount }
|
|
16
|
+
* - Rationale: Excess arguments is an arity check, not a type check
|
|
17
|
+
*
|
|
18
|
+
* [ASSUMPTION] validateDefaultValueType _functionName Parameter
|
|
19
|
+
* - Parameter accepted but unused (prefixed with _ to satisfy eslint)
|
|
20
|
+
* - Kept for API consistency with validateHostFunctionArgs signature
|
|
21
|
+
*
|
|
22
|
+
* [ASSUMPTION] validateHostFunctionArgs Args Array Mutation
|
|
23
|
+
* - args array mutated in-place when substituting default values
|
|
24
|
+
* - Per spec algorithm: "Apply default values for missing arguments before validation"
|
|
25
|
+
* - Mutation occurs before host function receives args, maintaining immutability contract
|
|
26
|
+
*/
|
|
27
|
+
import type { BodyNode, SourceLocation } from '../../types.js';
|
|
28
|
+
import type { RillValue } from './values.js';
|
|
29
|
+
interface RuntimeContextLike {
|
|
30
|
+
readonly parent?: RuntimeContextLike | undefined;
|
|
31
|
+
readonly variables: Map<string, RillValue>;
|
|
32
|
+
pipeValue: RillValue;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Callable function signature.
|
|
36
|
+
* Used for both host-provided functions and runtime callables.
|
|
37
|
+
*/
|
|
38
|
+
export type CallableFn = (args: RillValue[], ctx: RuntimeContextLike, location?: SourceLocation) => RillValue | Promise<RillValue>;
|
|
39
|
+
/** Parameter definition for script closures */
|
|
40
|
+
export interface CallableParam {
|
|
41
|
+
readonly name: string;
|
|
42
|
+
readonly typeName: 'string' | 'number' | 'bool' | 'list' | 'dict' | null;
|
|
43
|
+
readonly defaultValue: RillValue | null;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Parameter metadata for host-provided functions.
|
|
47
|
+
*
|
|
48
|
+
* Parameters without defaultValue are required.
|
|
49
|
+
* Parameters with defaultValue are optional.
|
|
50
|
+
*/
|
|
51
|
+
export interface HostFunctionParam {
|
|
52
|
+
/** Parameter name (for error messages and documentation) */
|
|
53
|
+
readonly name: string;
|
|
54
|
+
/** Expected type: limited to 5 primitive types */
|
|
55
|
+
readonly type: 'string' | 'number' | 'bool' | 'list' | 'dict';
|
|
56
|
+
/** Default value if argument omitted. Makes parameter optional. */
|
|
57
|
+
readonly defaultValue?: RillValue;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Host function with optional parameter type declarations.
|
|
61
|
+
*
|
|
62
|
+
* When params provided, runtime validates arguments before invocation.
|
|
63
|
+
* When params omitted, function receives untyped args (backward compat).
|
|
64
|
+
*/
|
|
65
|
+
export interface HostFunctionDefinition {
|
|
66
|
+
/** Parameter declarations (optional for backward compatibility) */
|
|
67
|
+
readonly params?: readonly HostFunctionParam[];
|
|
68
|
+
/** Function implementation (receives validated args when params present) */
|
|
69
|
+
readonly fn: CallableFn;
|
|
70
|
+
}
|
|
71
|
+
/** Common fields for all callable types */
|
|
72
|
+
interface CallableBase {
|
|
73
|
+
readonly __type: 'callable';
|
|
74
|
+
/**
|
|
75
|
+
* Property-style callable: auto-invoked when accessed from a dict.
|
|
76
|
+
* For script callables, $ is bound to the containing dict.
|
|
77
|
+
* For runtime callables, the dict is passed as first argument.
|
|
78
|
+
*/
|
|
79
|
+
readonly isProperty: boolean;
|
|
80
|
+
/** Reference to containing dict (set when stored in a dict) */
|
|
81
|
+
boundDict?: Record<string, RillValue>;
|
|
82
|
+
}
|
|
83
|
+
/** Script callable - parsed from Rill source code */
|
|
84
|
+
export interface ScriptCallable extends CallableBase {
|
|
85
|
+
readonly kind: 'script';
|
|
86
|
+
readonly params: CallableParam[];
|
|
87
|
+
readonly body: BodyNode;
|
|
88
|
+
/** Reference to the scope where this closure was defined (late binding) */
|
|
89
|
+
readonly definingScope: RuntimeContextLike;
|
|
90
|
+
}
|
|
91
|
+
/** Runtime callable - Rill's built-in functions (type, log, json, identity) */
|
|
92
|
+
export interface RuntimeCallable extends CallableBase {
|
|
93
|
+
readonly kind: 'runtime';
|
|
94
|
+
readonly fn: CallableFn;
|
|
95
|
+
}
|
|
96
|
+
/** Application callable - host application-provided functions */
|
|
97
|
+
export interface ApplicationCallable extends CallableBase {
|
|
98
|
+
readonly kind: 'application';
|
|
99
|
+
readonly params: CallableParam[] | undefined;
|
|
100
|
+
readonly fn: CallableFn;
|
|
101
|
+
}
|
|
102
|
+
/** Union of all callable types */
|
|
103
|
+
export type RillCallable = ScriptCallable | RuntimeCallable | ApplicationCallable;
|
|
104
|
+
/** Type guard for any callable */
|
|
105
|
+
export declare function isCallable(value: RillValue): value is RillCallable;
|
|
106
|
+
/** Type guard for script callable */
|
|
107
|
+
export declare function isScriptCallable(value: RillValue): value is ScriptCallable;
|
|
108
|
+
/** Type guard for runtime callable */
|
|
109
|
+
export declare function isRuntimeCallable(value: RillValue): value is RuntimeCallable;
|
|
110
|
+
/** Type guard for application callable */
|
|
111
|
+
export declare function isApplicationCallable(value: RillValue): value is ApplicationCallable;
|
|
112
|
+
/**
|
|
113
|
+
* Create an application callable from a host function.
|
|
114
|
+
* Creates an untyped callable (params: undefined) that skips validation.
|
|
115
|
+
* @param fn The function to wrap
|
|
116
|
+
* @param isProperty If true, auto-invokes when accessed from dict (property-style)
|
|
117
|
+
*/
|
|
118
|
+
export declare function callable(fn: CallableFn, isProperty?: boolean): ApplicationCallable;
|
|
119
|
+
/** Type guard for dict (plain object, not array, not callable, not tuple) */
|
|
120
|
+
export declare function isDict(value: RillValue): value is Record<string, RillValue>;
|
|
121
|
+
/** Format a callable for display */
|
|
122
|
+
export declare function formatCallable(callable: RillCallable): string;
|
|
123
|
+
/**
|
|
124
|
+
* Deep equality for script callables.
|
|
125
|
+
* Compares params, body AST structure, and defining scope.
|
|
126
|
+
*
|
|
127
|
+
* Two closures are equal if:
|
|
128
|
+
* 1. Same parameter names, types, and default values
|
|
129
|
+
* 2. Structurally identical body AST (ignoring source locations)
|
|
130
|
+
* 3. Same defining scope (reference equality)
|
|
131
|
+
*/
|
|
132
|
+
export declare function callableEquals(a: ScriptCallable, b: ScriptCallable, valueEquals?: (a: RillValue, b: RillValue) => boolean): boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Validate defaultValue type matches declared parameter type.
|
|
135
|
+
*
|
|
136
|
+
* Called at registration time to catch configuration errors early.
|
|
137
|
+
* Throws Error (not RuntimeError) to indicate registration failure.
|
|
138
|
+
*
|
|
139
|
+
* @param param - Parameter with defaultValue to validate
|
|
140
|
+
* @param _functionName - Function name (unused, kept for API consistency)
|
|
141
|
+
* @throws Error if defaultValue type doesn't match param.type
|
|
142
|
+
*/
|
|
143
|
+
export declare function validateDefaultValueType(param: HostFunctionParam, _functionName: string): void;
|
|
144
|
+
/**
|
|
145
|
+
* Validate host function arguments against parameter declarations.
|
|
146
|
+
*
|
|
147
|
+
* Called before function invocation to enforce type contracts.
|
|
148
|
+
* Throws RuntimeError on validation failure.
|
|
149
|
+
*
|
|
150
|
+
* @param args - Evaluated arguments from call site
|
|
151
|
+
* @param params - Parameter declarations from function definition
|
|
152
|
+
* @param functionName - Function name for error messages
|
|
153
|
+
* @param location - Source location for error reporting
|
|
154
|
+
* @throws RuntimeError with RUNTIME_TYPE_ERROR on validation failure
|
|
155
|
+
*/
|
|
156
|
+
export declare function validateHostFunctionArgs(args: RillValue[], params: readonly HostFunctionParam[], functionName: string, location?: SourceLocation): void;
|
|
157
|
+
/**
|
|
158
|
+
* Validate arguments against CallableParam[] for ApplicationCallable.
|
|
159
|
+
*
|
|
160
|
+
* Similar to validateHostFunctionArgs but works with CallableParam[] (used in ApplicationCallable).
|
|
161
|
+
* Validates argument count, applies defaults, and checks types for primitive parameters.
|
|
162
|
+
*
|
|
163
|
+
* @param args - Arguments array (mutated in-place when defaults applied)
|
|
164
|
+
* @param params - Parameter definitions
|
|
165
|
+
* @param functionName - Function name for error messages
|
|
166
|
+
* @param location - Source location for error reporting
|
|
167
|
+
* @throws RuntimeError with RUNTIME_TYPE_ERROR on validation failure
|
|
168
|
+
*/
|
|
169
|
+
export declare function validateCallableArgs(args: RillValue[], params: readonly CallableParam[], functionName: string, location?: SourceLocation): void;
|
|
170
|
+
export {};
|
|
171
|
+
//# sourceMappingURL=callable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callable.d.ts","sourceRoot":"","sources":["../../../src/runtime/core/callable.ts"],"names":[],"mappings":"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"}
|