@rcrsr/rill 0.4.5 → 0.6.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/dist/generated/introspection-data.d.ts +2 -0
- package/dist/generated/introspection-data.d.ts.map +1 -0
- package/dist/generated/introspection-data.js +539 -0
- package/dist/generated/introspection-data.js.map +1 -0
- package/dist/generated/version-data.d.ts +18 -0
- package/dist/generated/version-data.d.ts.map +1 -0
- package/dist/generated/version-data.js +16 -0
- package/dist/generated/version-data.js.map +1 -0
- package/dist/highlight-map.d.ts +4 -0
- package/dist/highlight-map.d.ts.map +1 -0
- package/dist/highlight-map.js +71 -0
- package/dist/highlight-map.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/lexer/errors.d.ts +3 -2
- package/dist/lexer/errors.d.ts.map +1 -1
- package/dist/lexer/errors.js +25 -4
- package/dist/lexer/errors.js.map +1 -1
- package/dist/lexer/operators.d.ts.map +1 -1
- package/dist/lexer/operators.js +2 -1
- package/dist/lexer/operators.js.map +1 -1
- package/dist/lexer/readers.d.ts.map +1 -1
- package/dist/lexer/readers.js +4 -4
- package/dist/lexer/readers.js.map +1 -1
- package/dist/lexer/tokenizer.d.ts.map +1 -1
- package/dist/lexer/tokenizer.js +1 -15
- package/dist/lexer/tokenizer.js.map +1 -1
- package/dist/parser/helpers.d.ts +8 -0
- package/dist/parser/helpers.d.ts.map +1 -1
- package/dist/parser/helpers.js +7 -5
- package/dist/parser/helpers.js.map +1 -1
- package/dist/parser/index.d.ts.map +1 -1
- package/dist/parser/index.js +1 -1
- package/dist/parser/index.js.map +1 -1
- package/dist/parser/parser-collect.js +1 -1
- package/dist/parser/parser-collect.js.map +1 -1
- package/dist/parser/parser-control.js +6 -4
- package/dist/parser/parser-control.js.map +1 -1
- package/dist/parser/parser-expr.d.ts.map +1 -1
- package/dist/parser/parser-expr.js +52 -10
- package/dist/parser/parser-expr.js.map +1 -1
- package/dist/parser/parser-extract.js +7 -3
- package/dist/parser/parser-extract.js.map +1 -1
- package/dist/parser/parser-functions.d.ts.map +1 -1
- package/dist/parser/parser-functions.js +8 -18
- package/dist/parser/parser-functions.js.map +1 -1
- package/dist/parser/parser-literals.js +15 -15
- package/dist/parser/parser-literals.js.map +1 -1
- package/dist/parser/parser-script.js +5 -3
- package/dist/parser/parser-script.js.map +1 -1
- package/dist/parser/parser-variables.js +10 -6
- package/dist/parser/parser-variables.js.map +1 -1
- package/dist/parser/state.d.ts +1 -1
- package/dist/parser/state.d.ts.map +1 -1
- package/dist/parser/state.js +2 -2
- package/dist/parser/state.js.map +1 -1
- package/dist/runtime/core/callable.d.ts +28 -0
- package/dist/runtime/core/callable.d.ts.map +1 -1
- package/dist/runtime/core/callable.js +30 -7
- package/dist/runtime/core/callable.js.map +1 -1
- package/dist/runtime/core/context.d.ts +21 -0
- package/dist/runtime/core/context.d.ts.map +1 -1
- package/dist/runtime/core/context.js +90 -10
- package/dist/runtime/core/context.js.map +1 -1
- package/dist/runtime/core/equals.d.ts.map +1 -1
- package/dist/runtime/core/equals.js +2 -1
- package/dist/runtime/core/equals.js.map +1 -1
- package/dist/runtime/core/eval/base.d.ts.map +1 -1
- package/dist/runtime/core/eval/base.js +3 -3
- package/dist/runtime/core/eval/base.js.map +1 -1
- package/dist/runtime/core/eval/index.d.ts.map +1 -1
- package/dist/runtime/core/eval/index.js +2 -0
- package/dist/runtime/core/eval/index.js.map +1 -1
- package/dist/runtime/core/eval/mixins/annotations.js +3 -3
- package/dist/runtime/core/eval/mixins/annotations.js.map +1 -1
- package/dist/runtime/core/eval/mixins/closures.d.ts.map +1 -1
- package/dist/runtime/core/eval/mixins/closures.js +75 -40
- package/dist/runtime/core/eval/mixins/closures.js.map +1 -1
- package/dist/runtime/core/eval/mixins/collections.js +15 -15
- package/dist/runtime/core/eval/mixins/collections.js.map +1 -1
- package/dist/runtime/core/eval/mixins/control-flow.d.ts.map +1 -1
- package/dist/runtime/core/eval/mixins/control-flow.js +12 -12
- package/dist/runtime/core/eval/mixins/control-flow.js.map +1 -1
- package/dist/runtime/core/eval/mixins/core.d.ts.map +1 -1
- package/dist/runtime/core/eval/mixins/core.js +39 -17
- package/dist/runtime/core/eval/mixins/core.js.map +1 -1
- package/dist/runtime/core/eval/mixins/expressions.d.ts +2 -0
- package/dist/runtime/core/eval/mixins/expressions.d.ts.map +1 -1
- package/dist/runtime/core/eval/mixins/expressions.js +81 -28
- package/dist/runtime/core/eval/mixins/expressions.js.map +1 -1
- package/dist/runtime/core/eval/mixins/extraction.d.ts.map +1 -1
- package/dist/runtime/core/eval/mixins/extraction.js +15 -15
- package/dist/runtime/core/eval/mixins/extraction.js.map +1 -1
- package/dist/runtime/core/eval/mixins/literals.d.ts +4 -1
- package/dist/runtime/core/eval/mixins/literals.d.ts.map +1 -1
- package/dist/runtime/core/eval/mixins/literals.js +45 -25
- package/dist/runtime/core/eval/mixins/literals.js.map +1 -1
- package/dist/runtime/core/eval/mixins/types.js +4 -4
- package/dist/runtime/core/eval/mixins/types.js.map +1 -1
- package/dist/runtime/core/eval/mixins/variables.js +34 -34
- package/dist/runtime/core/eval/mixins/variables.js.map +1 -1
- package/dist/runtime/core/execute.js +3 -3
- package/dist/runtime/core/execute.js.map +1 -1
- package/dist/runtime/core/introspection.d.ts +88 -0
- package/dist/runtime/core/introspection.d.ts.map +1 -0
- package/dist/runtime/core/introspection.js +166 -0
- package/dist/runtime/core/introspection.js.map +1 -0
- package/dist/runtime/core/types.d.ts +11 -0
- package/dist/runtime/core/types.d.ts.map +1 -1
- package/dist/runtime/core/types.js.map +1 -1
- package/dist/runtime/ext/builtins.js +22 -22
- package/dist/runtime/ext/builtins.js.map +1 -1
- package/dist/runtime/ext/extensions.d.ts +1 -1
- package/dist/runtime/ext/extensions.d.ts.map +1 -1
- package/dist/runtime/ext/extensions.js +4 -5
- package/dist/runtime/ext/extensions.js.map +1 -1
- package/dist/runtime/index.d.ts +8 -2
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +4 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/types.d.ts +141 -32
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +806 -40
- package/dist/types.js.map +1 -1
- package/package.json +7 -64
- package/README.md +0 -223
- package/dist/check/config.d.ts +0 -20
- package/dist/check/config.d.ts.map +0 -1
- package/dist/check/config.js +0 -151
- package/dist/check/config.js.map +0 -1
- package/dist/check/fixer.d.ts +0 -39
- package/dist/check/fixer.d.ts.map +0 -1
- package/dist/check/fixer.js +0 -119
- package/dist/check/fixer.js.map +0 -1
- package/dist/check/index.d.ts +0 -10
- package/dist/check/index.d.ts.map +0 -1
- package/dist/check/index.js +0 -21
- package/dist/check/index.js.map +0 -1
- package/dist/check/rules/anti-patterns.d.ts +0 -65
- package/dist/check/rules/anti-patterns.d.ts.map +0 -1
- package/dist/check/rules/anti-patterns.js +0 -481
- package/dist/check/rules/anti-patterns.js.map +0 -1
- package/dist/check/rules/closures.d.ts +0 -66
- package/dist/check/rules/closures.d.ts.map +0 -1
- package/dist/check/rules/closures.js +0 -370
- package/dist/check/rules/closures.js.map +0 -1
- package/dist/check/rules/collections.d.ts +0 -90
- package/dist/check/rules/collections.d.ts.map +0 -1
- package/dist/check/rules/collections.js +0 -373
- package/dist/check/rules/collections.js.map +0 -1
- package/dist/check/rules/conditionals.d.ts +0 -41
- package/dist/check/rules/conditionals.d.ts.map +0 -1
- package/dist/check/rules/conditionals.js +0 -134
- package/dist/check/rules/conditionals.js.map +0 -1
- package/dist/check/rules/flow.d.ts +0 -46
- package/dist/check/rules/flow.d.ts.map +0 -1
- package/dist/check/rules/flow.js +0 -206
- package/dist/check/rules/flow.js.map +0 -1
- package/dist/check/rules/formatting.d.ts +0 -133
- package/dist/check/rules/formatting.d.ts.map +0 -1
- package/dist/check/rules/formatting.js +0 -648
- package/dist/check/rules/formatting.js.map +0 -1
- package/dist/check/rules/helpers.d.ts +0 -26
- package/dist/check/rules/helpers.d.ts.map +0 -1
- package/dist/check/rules/helpers.js +0 -66
- package/dist/check/rules/helpers.js.map +0 -1
- package/dist/check/rules/index.d.ts +0 -21
- package/dist/check/rules/index.d.ts.map +0 -1
- package/dist/check/rules/index.js +0 -78
- package/dist/check/rules/index.js.map +0 -1
- package/dist/check/rules/loops.d.ts +0 -77
- package/dist/check/rules/loops.d.ts.map +0 -1
- package/dist/check/rules/loops.js +0 -310
- package/dist/check/rules/loops.js.map +0 -1
- package/dist/check/rules/naming.d.ts +0 -21
- package/dist/check/rules/naming.d.ts.map +0 -1
- package/dist/check/rules/naming.js +0 -174
- package/dist/check/rules/naming.js.map +0 -1
- package/dist/check/rules/strings.d.ts +0 -28
- package/dist/check/rules/strings.d.ts.map +0 -1
- package/dist/check/rules/strings.js +0 -79
- package/dist/check/rules/strings.js.map +0 -1
- package/dist/check/rules/types.d.ts +0 -41
- package/dist/check/rules/types.d.ts.map +0 -1
- package/dist/check/rules/types.js +0 -167
- package/dist/check/rules/types.js.map +0 -1
- package/dist/check/types.d.ts +0 -112
- package/dist/check/types.d.ts.map +0 -1
- package/dist/check/types.js +0 -6
- package/dist/check/types.js.map +0 -1
- package/dist/check/validator.d.ts +0 -18
- package/dist/check/validator.d.ts.map +0 -1
- package/dist/check/validator.js +0 -110
- package/dist/check/validator.js.map +0 -1
- package/dist/check/visitor.d.ts +0 -33
- package/dist/check/visitor.d.ts.map +0 -1
- package/dist/check/visitor.js +0 -258
- package/dist/check/visitor.js.map +0 -1
- package/dist/cli-check.d.ts +0 -43
- package/dist/cli-check.d.ts.map +0 -1
- package/dist/cli-check.js +0 -369
- package/dist/cli-check.js.map +0 -1
- package/dist/cli-eval.d.ts +0 -15
- package/dist/cli-eval.d.ts.map +0 -1
- package/dist/cli-eval.js +0 -117
- package/dist/cli-eval.js.map +0 -1
- package/dist/cli-exec.d.ts +0 -49
- package/dist/cli-exec.d.ts.map +0 -1
- package/dist/cli-exec.js +0 -184
- package/dist/cli-exec.js.map +0 -1
- package/dist/cli-module-loader.d.ts +0 -19
- package/dist/cli-module-loader.d.ts.map +0 -1
- package/dist/cli-module-loader.js +0 -83
- package/dist/cli-module-loader.js.map +0 -1
- package/dist/cli-shared.d.ts +0 -42
- package/dist/cli-shared.d.ts.map +0 -1
- package/dist/cli-shared.js +0 -112
- package/dist/cli-shared.js.map +0 -1
- package/dist/cli.d.ts +0 -13
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -62
- package/dist/cli.js.map +0 -1
- package/docs/00_INDEX.md +0 -67
- package/docs/01_guide.md +0 -390
- package/docs/02_types.md +0 -482
- package/docs/03_variables.md +0 -324
- package/docs/04_operators.md +0 -608
- package/docs/05_control-flow.md +0 -630
- package/docs/06_closures.md +0 -787
- package/docs/07_collections.md +0 -688
- package/docs/08_iterators.md +0 -330
- package/docs/09_strings.md +0 -205
- package/docs/10_parsing.md +0 -366
- package/docs/11_reference.md +0 -599
- package/docs/12_examples.md +0 -748
- package/docs/13_modules.md +0 -519
- package/docs/14_host-integration.md +0 -833
- package/docs/15_grammar.ebnf +0 -755
- package/docs/16_conventions.md +0 -695
- package/docs/17_cli-tools.md +0 -184
- package/docs/18_design-principles.md +0 -247
- package/docs/19_cookbook.md +0 -628
- package/docs/99_llm-reference.txt +0 -601
- package/docs/assets/logo.png +0 -0
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
*
|
|
31
31
|
* @internal
|
|
32
32
|
*/
|
|
33
|
-
import { RuntimeError
|
|
33
|
+
import { RuntimeError } from '../../../../types.js';
|
|
34
34
|
import { inferType } from '../../values.js';
|
|
35
35
|
import { getVariable, hasVariable } from '../../context.js';
|
|
36
36
|
import { isDict, isCallable } from '../../callable.js';
|
|
@@ -64,7 +64,7 @@ function createVariablesMixin(Base) {
|
|
|
64
64
|
const valueType = inferType(value);
|
|
65
65
|
// Check explicit type annotation matches value
|
|
66
66
|
if (explicitType !== undefined && explicitType !== valueType) {
|
|
67
|
-
throw new RuntimeError(
|
|
67
|
+
throw new RuntimeError('RILL-R001', `RILL-R001: Type mismatch: cannot assign ${valueType} to $${name}:${explicitType}`, location, {
|
|
68
68
|
variableName: name,
|
|
69
69
|
expectedType: explicitType,
|
|
70
70
|
actualType: valueType,
|
|
@@ -75,12 +75,12 @@ function createVariablesMixin(Base) {
|
|
|
75
75
|
if (!this.ctx.variables.has(name) &&
|
|
76
76
|
this.ctx.parent &&
|
|
77
77
|
hasVariable(this.ctx.parent, name)) {
|
|
78
|
-
throw new RuntimeError(
|
|
78
|
+
throw new RuntimeError('RILL-R001', `RILL-R001: Cannot reassign outer variable $${name} from child scope`, location, { variableName: name });
|
|
79
79
|
}
|
|
80
80
|
// Check if variable already has a locked type in current scope
|
|
81
81
|
const lockedType = this.ctx.variableTypes.get(name);
|
|
82
82
|
if (lockedType !== undefined && lockedType !== valueType) {
|
|
83
|
-
throw new RuntimeError(
|
|
83
|
+
throw new RuntimeError('RILL-R001', `RILL-R001: Type mismatch: cannot assign ${valueType} to $${name} (locked as ${lockedType})`, location, {
|
|
84
84
|
variableName: name,
|
|
85
85
|
expectedType: lockedType,
|
|
86
86
|
actualType: valueType,
|
|
@@ -106,7 +106,7 @@ function createVariablesMixin(Base) {
|
|
|
106
106
|
// Handle pipe variable ($)
|
|
107
107
|
if (node.isPipeVar && !node.name) {
|
|
108
108
|
if (this.ctx.pipeValue === null) {
|
|
109
|
-
throw new RuntimeError(
|
|
109
|
+
throw new RuntimeError('RILL-R005', 'RILL-R005: Undefined variable: $', this.getNodeLocation(node), { variable: '$' });
|
|
110
110
|
}
|
|
111
111
|
return this.ctx.pipeValue;
|
|
112
112
|
}
|
|
@@ -114,12 +114,12 @@ function createVariablesMixin(Base) {
|
|
|
114
114
|
if (node.name) {
|
|
115
115
|
const result = getVariable(this.ctx, node.name);
|
|
116
116
|
if (result === undefined) {
|
|
117
|
-
throw new RuntimeError(
|
|
117
|
+
throw new RuntimeError('RILL-R005', `RILL-R005: Undefined variable: $${node.name}`, this.getNodeLocation(node), { variable: node.name });
|
|
118
118
|
}
|
|
119
119
|
return result;
|
|
120
120
|
}
|
|
121
121
|
// Should not reach here - all variable nodes have either isPipeVar or name
|
|
122
|
-
throw new RuntimeError(
|
|
122
|
+
throw new RuntimeError('RILL-R005', 'RILL-R005: Invalid variable node', this.getNodeLocation(node));
|
|
123
123
|
}
|
|
124
124
|
/**
|
|
125
125
|
* Evaluate variable access asynchronously.
|
|
@@ -133,7 +133,7 @@ function createVariablesMixin(Base) {
|
|
|
133
133
|
if (node.isPipeVar && !node.name) {
|
|
134
134
|
// Pipe variable ($)
|
|
135
135
|
if (this.ctx.pipeValue === null) {
|
|
136
|
-
throw new RuntimeError(
|
|
136
|
+
throw new RuntimeError('RILL-R005', 'RILL-R005: Undefined variable: $', this.getNodeLocation(node), { variable: '$' });
|
|
137
137
|
}
|
|
138
138
|
value = this.ctx.pipeValue;
|
|
139
139
|
}
|
|
@@ -141,12 +141,12 @@ function createVariablesMixin(Base) {
|
|
|
141
141
|
// Named variable ($name)
|
|
142
142
|
const result = getVariable(this.ctx, node.name);
|
|
143
143
|
if (result === undefined) {
|
|
144
|
-
throw new RuntimeError(
|
|
144
|
+
throw new RuntimeError('RILL-R005', `RILL-R005: Undefined variable: $${node.name}`, this.getNodeLocation(node), { variable: node.name });
|
|
145
145
|
}
|
|
146
146
|
value = result;
|
|
147
147
|
}
|
|
148
148
|
else {
|
|
149
|
-
throw new RuntimeError(
|
|
149
|
+
throw new RuntimeError('RILL-R005', 'RILL-R005: Invalid variable node', this.getNodeLocation(node));
|
|
150
150
|
}
|
|
151
151
|
// Apply access chain ($.field, $var.field, etc.)
|
|
152
152
|
for (const access of node.accessChain) {
|
|
@@ -156,7 +156,7 @@ function createVariablesMixin(Base) {
|
|
|
156
156
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
157
157
|
return this.evaluateBody(node.defaultValue);
|
|
158
158
|
}
|
|
159
|
-
throw new RuntimeError(
|
|
159
|
+
throw new RuntimeError('RILL-R009', `Cannot access property on null`, this.getNodeLocation(node));
|
|
160
160
|
}
|
|
161
161
|
// Check if this is a bracket access
|
|
162
162
|
if ('accessKind' in access) {
|
|
@@ -165,7 +165,7 @@ function createVariablesMixin(Base) {
|
|
|
165
165
|
const indexValue = await this.evaluatePipeChain(access.expression);
|
|
166
166
|
if (Array.isArray(value)) {
|
|
167
167
|
if (typeof indexValue !== 'number') {
|
|
168
|
-
throw new RuntimeError(
|
|
168
|
+
throw new RuntimeError('RILL-R002', `List index must be number, got ${inferType(indexValue)}`, this.getNodeLocation(node));
|
|
169
169
|
}
|
|
170
170
|
let index = indexValue;
|
|
171
171
|
// Handle negative indices
|
|
@@ -174,22 +174,22 @@ function createVariablesMixin(Base) {
|
|
|
174
174
|
}
|
|
175
175
|
const result = value[index];
|
|
176
176
|
if (result === undefined) {
|
|
177
|
-
throw new RuntimeError(
|
|
177
|
+
throw new RuntimeError('RILL-R009', `List index out of bounds: ${indexValue}`, this.getNodeLocation(node));
|
|
178
178
|
}
|
|
179
179
|
value = result;
|
|
180
180
|
}
|
|
181
181
|
else if (isDict(value)) {
|
|
182
182
|
if (typeof indexValue !== 'string') {
|
|
183
|
-
throw new RuntimeError(
|
|
183
|
+
throw new RuntimeError('RILL-R002', `Dict key must be string, got ${inferType(indexValue)}`, this.getNodeLocation(node));
|
|
184
184
|
}
|
|
185
185
|
const result = value[indexValue];
|
|
186
186
|
if (result === undefined) {
|
|
187
|
-
throw new RuntimeError(
|
|
187
|
+
throw new RuntimeError('RILL-R009', `Undefined dict key: ${indexValue}`, this.getNodeLocation(node));
|
|
188
188
|
}
|
|
189
189
|
value = result;
|
|
190
190
|
}
|
|
191
191
|
else {
|
|
192
|
-
throw new RuntimeError(
|
|
192
|
+
throw new RuntimeError('RILL-R002', `Cannot index ${inferType(value)}`, this.getNodeLocation(node));
|
|
193
193
|
}
|
|
194
194
|
continue;
|
|
195
195
|
}
|
|
@@ -208,7 +208,7 @@ function createVariablesMixin(Base) {
|
|
|
208
208
|
value = null;
|
|
209
209
|
}
|
|
210
210
|
else {
|
|
211
|
-
throw new RuntimeError(
|
|
211
|
+
throw new RuntimeError('RILL-R003', `Cannot access .params on ${inferType(value)}`, this.getNodeLocation(node), { actualType: inferType(value) });
|
|
212
212
|
}
|
|
213
213
|
}
|
|
214
214
|
}
|
|
@@ -240,7 +240,7 @@ function createVariablesMixin(Base) {
|
|
|
240
240
|
}
|
|
241
241
|
catch (e) {
|
|
242
242
|
if (e instanceof RuntimeError &&
|
|
243
|
-
e.
|
|
243
|
+
e.errorId === 'RILL-R008' &&
|
|
244
244
|
node.defaultValue !== null) {
|
|
245
245
|
// Convert missing annotation to null for ?? coalescing
|
|
246
246
|
value = null;
|
|
@@ -253,7 +253,7 @@ function createVariablesMixin(Base) {
|
|
|
253
253
|
}
|
|
254
254
|
else {
|
|
255
255
|
// Other field access types (block)
|
|
256
|
-
throw new RuntimeError(
|
|
256
|
+
throw new RuntimeError('RILL-R002', `Field access kind '${access.kind}' not yet supported`, this.getNodeLocation(node));
|
|
257
257
|
}
|
|
258
258
|
}
|
|
259
259
|
// Handle existence check (.?field): return boolean instead of value
|
|
@@ -287,13 +287,13 @@ function createVariablesMixin(Base) {
|
|
|
287
287
|
// EC-9: Variable undefined
|
|
288
288
|
if (keyValue === undefined) {
|
|
289
289
|
const varName = finalAccess.variableName ?? '$';
|
|
290
|
-
throw new RuntimeError(
|
|
290
|
+
throw new RuntimeError('RILL-R005', `RILL-R005: Variable '${varName}' is undefined`, this.getNodeLocation(node));
|
|
291
291
|
}
|
|
292
292
|
// Check if key exists in dict or list
|
|
293
293
|
if (isDict(value)) {
|
|
294
294
|
// EC-10: Key variable non-string
|
|
295
295
|
if (typeof keyValue !== 'string') {
|
|
296
|
-
throw new RuntimeError(
|
|
296
|
+
throw new RuntimeError('RILL-R002', `Existence check key must be string, got ${inferType(keyValue)}`, this.getNodeLocation(node));
|
|
297
297
|
}
|
|
298
298
|
const fieldValue = value[keyValue];
|
|
299
299
|
const exists = fieldValue !== undefined && fieldValue !== null;
|
|
@@ -318,7 +318,7 @@ function createVariablesMixin(Base) {
|
|
|
318
318
|
const keyValue = await this.evaluatePipeChain(finalAccess.expression);
|
|
319
319
|
// EC-11: Computed key non-string
|
|
320
320
|
if (typeof keyValue !== 'string') {
|
|
321
|
-
throw new RuntimeError(
|
|
321
|
+
throw new RuntimeError('RILL-R002', `Existence check key evaluated to ${inferType(keyValue)}, expected string`, this.getNodeLocation(node));
|
|
322
322
|
}
|
|
323
323
|
// Check if computed key exists in dict
|
|
324
324
|
if (isDict(value)) {
|
|
@@ -333,7 +333,7 @@ function createVariablesMixin(Base) {
|
|
|
333
333
|
return false;
|
|
334
334
|
}
|
|
335
335
|
// For other access kinds (block, alternatives, annotation), not supported
|
|
336
|
-
throw new RuntimeError(
|
|
336
|
+
throw new RuntimeError('RILL-R002', `Existence check not yet supported for ${finalAccess.kind} access`, this.getNodeLocation(node));
|
|
337
337
|
}
|
|
338
338
|
// Apply default value if final result is null
|
|
339
339
|
if (value === null && node.defaultValue) {
|
|
@@ -359,22 +359,22 @@ function createVariablesMixin(Base) {
|
|
|
359
359
|
// .$ (pipe variable as key)
|
|
360
360
|
keyValue = this.ctx.pipeValue ?? undefined;
|
|
361
361
|
if (keyValue === undefined) {
|
|
362
|
-
throw new RuntimeError(
|
|
362
|
+
throw new RuntimeError('RILL-R005', `RILL-R005: Pipe variable '$' is undefined`, this.getNodeLocation(node));
|
|
363
363
|
}
|
|
364
364
|
}
|
|
365
365
|
else {
|
|
366
366
|
// .$variable (named variable as key)
|
|
367
367
|
keyValue = getVariable(this.ctx, access.variableName);
|
|
368
368
|
if (keyValue === undefined) {
|
|
369
|
-
throw new RuntimeError(
|
|
369
|
+
throw new RuntimeError('RILL-R005', `RILL-R005: Variable '${access.variableName}' is undefined`, this.getNodeLocation(node));
|
|
370
370
|
}
|
|
371
371
|
}
|
|
372
372
|
// Validate key type (EC-2, EC-3)
|
|
373
373
|
if (typeof keyValue === 'boolean') {
|
|
374
|
-
throw new RuntimeError(
|
|
374
|
+
throw new RuntimeError('RILL-R002', `Key must be string or number, got bool`, this.getNodeLocation(node));
|
|
375
375
|
}
|
|
376
376
|
if (Array.isArray(keyValue)) {
|
|
377
|
-
throw new RuntimeError(
|
|
377
|
+
throw new RuntimeError('RILL-R002', `Key must be string or number, got list`, this.getNodeLocation(node));
|
|
378
378
|
}
|
|
379
379
|
// Handle string key (dict access)
|
|
380
380
|
if (typeof keyValue === 'string') {
|
|
@@ -399,7 +399,7 @@ function createVariablesMixin(Base) {
|
|
|
399
399
|
return null;
|
|
400
400
|
}
|
|
401
401
|
// Other types (dict, closure) - fall through to type error
|
|
402
|
-
throw new RuntimeError(
|
|
402
|
+
throw new RuntimeError('RILL-R002', `Key must be string or number, got ${inferType(keyValue)}`, this.getNodeLocation(node));
|
|
403
403
|
}
|
|
404
404
|
/**
|
|
405
405
|
* Evaluate field access using a computed expression as the key.
|
|
@@ -417,18 +417,18 @@ function createVariablesMixin(Base) {
|
|
|
417
417
|
const keyValue = await this.evaluatePipeChain(access.expression);
|
|
418
418
|
// EC-4: Expression result is closure
|
|
419
419
|
if (isCallable(keyValue)) {
|
|
420
|
-
throw new RuntimeError(
|
|
420
|
+
throw new RuntimeError('RILL-R002', `Computed key evaluated to closure, expected string or number`, this.getNodeLocation(node));
|
|
421
421
|
}
|
|
422
422
|
// EC-5: Expression result is dict
|
|
423
423
|
if (isDict(keyValue)) {
|
|
424
|
-
throw new RuntimeError(
|
|
424
|
+
throw new RuntimeError('RILL-R002', `Computed key evaluated to dict, expected string or number`, this.getNodeLocation(node));
|
|
425
425
|
}
|
|
426
426
|
// Other invalid types (boolean, list)
|
|
427
427
|
if (typeof keyValue === 'boolean') {
|
|
428
|
-
throw new RuntimeError(
|
|
428
|
+
throw new RuntimeError('RILL-R002', `Computed key evaluated to bool, expected string or number`, this.getNodeLocation(node));
|
|
429
429
|
}
|
|
430
430
|
if (Array.isArray(keyValue)) {
|
|
431
|
-
throw new RuntimeError(
|
|
431
|
+
throw new RuntimeError('RILL-R002', `Computed key evaluated to list, expected string or number`, this.getNodeLocation(node));
|
|
432
432
|
}
|
|
433
433
|
// Handle string key (dict access)
|
|
434
434
|
if (typeof keyValue === 'string') {
|
|
@@ -453,7 +453,7 @@ function createVariablesMixin(Base) {
|
|
|
453
453
|
return null;
|
|
454
454
|
}
|
|
455
455
|
// Shouldn't reach here due to exhaustive type checks above
|
|
456
|
-
throw new RuntimeError(
|
|
456
|
+
throw new RuntimeError('RILL-R002', `Computed key evaluated to unexpected type`, this.getNodeLocation(node));
|
|
457
457
|
}
|
|
458
458
|
/**
|
|
459
459
|
* Evaluate field access using alternatives (try keys left-to-right).
|
|
@@ -468,7 +468,7 @@ function createVariablesMixin(Base) {
|
|
|
468
468
|
async evaluateFieldAccessAlternatives(access, value, node) {
|
|
469
469
|
// EC-6: Target must be dict
|
|
470
470
|
if (!isDict(value)) {
|
|
471
|
-
throw new RuntimeError(
|
|
471
|
+
throw new RuntimeError('RILL-R002', `Alternative access requires dict, got ${inferType(value)}`, this.getNodeLocation(node));
|
|
472
472
|
}
|
|
473
473
|
// Try each alternative left-to-right (short-circuit on first match)
|
|
474
474
|
for (const key of access.alternatives) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"variables.js","sourceRoot":"","sources":["../../../../../src/runtime/core/eval/mixins/variables.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"variables.js","sourceRoot":"","sources":["../../../../../src/runtime/core/eval/mixins/variables.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Public API for executing Rill scripts.
|
|
5
5
|
* Provides both full execution and step-by-step execution.
|
|
6
6
|
*/
|
|
7
|
-
import { RuntimeError
|
|
7
|
+
import { RuntimeError } from '../../types.js';
|
|
8
8
|
import { executeStatement, checkAutoExceptions, checkAborted, } from './eval/index.js';
|
|
9
9
|
import { ReturnSignal } from './signals.js';
|
|
10
10
|
/**
|
|
@@ -82,7 +82,7 @@ export function createStepper(script, context) {
|
|
|
82
82
|
try {
|
|
83
83
|
// Check for RecoveryErrorNode from recovery mode parsing
|
|
84
84
|
if (isRecoveryErrorNode(stmt)) {
|
|
85
|
-
throw RuntimeError.fromNode(
|
|
85
|
+
throw RuntimeError.fromNode('RILL-P002', `Cannot execute RecoveryErrorNode: ${stmt.message}. Use parse() instead of parseWithRecovery() for execution.`, stmt);
|
|
86
86
|
}
|
|
87
87
|
// Execute the statement (handles both regular and annotated)
|
|
88
88
|
const value = await executeStatement(stmt, context);
|
|
@@ -146,7 +146,7 @@ export function createStepper(script, context) {
|
|
|
146
146
|
// Empty script implicitly evaluates to $
|
|
147
147
|
if (total === 0) {
|
|
148
148
|
if (context.pipeValue === null) {
|
|
149
|
-
throw new RuntimeError(
|
|
149
|
+
throw new RuntimeError('RILL-R005', 'Undefined variable: $', undefined, { variable: '$' });
|
|
150
150
|
}
|
|
151
151
|
return {
|
|
152
152
|
value: context.pipeValue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/runtime/core/execute.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/runtime/core/execute.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime Introspection API
|
|
3
|
+
*
|
|
4
|
+
* Functions for inspecting runtime context at runtime.
|
|
5
|
+
* These enable host applications to discover available functions and their signatures.
|
|
6
|
+
*/
|
|
7
|
+
import type { RuntimeContext } from './types.js';
|
|
8
|
+
import type { RillValue } from './values.js';
|
|
9
|
+
/**
|
|
10
|
+
* Metadata describing a function's signature and documentation.
|
|
11
|
+
* Returned by introspection APIs like getFunctions().
|
|
12
|
+
*/
|
|
13
|
+
export interface FunctionMetadata {
|
|
14
|
+
/** Function name (including namespace if applicable, e.g., "math::add") */
|
|
15
|
+
readonly name: string;
|
|
16
|
+
/** Human-readable description of what the function does */
|
|
17
|
+
readonly description: string;
|
|
18
|
+
/** Parameter metadata in declaration order */
|
|
19
|
+
readonly params: readonly ParamMetadata[];
|
|
20
|
+
/** Return type (default: 'any' for unspecified) */
|
|
21
|
+
readonly returnType: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Metadata describing a single function parameter.
|
|
25
|
+
*/
|
|
26
|
+
export interface ParamMetadata {
|
|
27
|
+
/** Parameter name */
|
|
28
|
+
readonly name: string;
|
|
29
|
+
/** Type constraint (e.g., "string", "number", "list") */
|
|
30
|
+
readonly type: string;
|
|
31
|
+
/** Human-readable description of the parameter's purpose */
|
|
32
|
+
readonly description: string;
|
|
33
|
+
/** Default value if parameter is optional (undefined if required) */
|
|
34
|
+
readonly defaultValue: RillValue | undefined;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Enumerate all callable functions registered in runtime context.
|
|
38
|
+
*
|
|
39
|
+
* Returns flat list combining host functions, built-ins, and script closures.
|
|
40
|
+
* Namespaced functions preserve `::` separator in name field.
|
|
41
|
+
* Malformed entries silently skipped (valid entries returned).
|
|
42
|
+
* Script closures: reads `^(doc: "...")` annotation for description.
|
|
43
|
+
* Script closures: excludes nested closures in dicts/lists.
|
|
44
|
+
*
|
|
45
|
+
* Order: host functions, then built-ins, then script closures.
|
|
46
|
+
*
|
|
47
|
+
* @param ctx Runtime context
|
|
48
|
+
* @returns Array of function metadata
|
|
49
|
+
*/
|
|
50
|
+
export declare function getFunctions(ctx: RuntimeContext): FunctionMetadata[];
|
|
51
|
+
/**
|
|
52
|
+
* Documentation coverage metrics for runtime context.
|
|
53
|
+
* Used to assess quality of function documentation.
|
|
54
|
+
*/
|
|
55
|
+
export interface DocumentationCoverageResult {
|
|
56
|
+
/** Total function count */
|
|
57
|
+
readonly total: number;
|
|
58
|
+
/** Functions with complete documentation */
|
|
59
|
+
readonly documented: number;
|
|
60
|
+
/** Percentage (0-100), rounded to 2 decimal places */
|
|
61
|
+
readonly percentage: number;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Analyze documentation coverage of functions in runtime context.
|
|
65
|
+
*
|
|
66
|
+
* Counts function as documented when:
|
|
67
|
+
* - Has non-empty description string (after trim)
|
|
68
|
+
* - All parameters have non-empty description string (after trim)
|
|
69
|
+
*
|
|
70
|
+
* Script closures with `^(doc: "...")` annotation count as having description.
|
|
71
|
+
* Whitespace-only descriptions count as undocumented.
|
|
72
|
+
* Empty context returns `{ total: 0, documented: 0, percentage: 100 }`.
|
|
73
|
+
*
|
|
74
|
+
* @param ctx Runtime context
|
|
75
|
+
* @returns Documentation coverage metrics
|
|
76
|
+
*/
|
|
77
|
+
export declare function getDocumentationCoverage(ctx: RuntimeContext): DocumentationCoverageResult;
|
|
78
|
+
/**
|
|
79
|
+
* Return complete rill language reference for LLM prompt context.
|
|
80
|
+
*
|
|
81
|
+
* Returns bundled content from `docs/ref-llm.txt`.
|
|
82
|
+
* Content includes syntax, operators, control flow, type system.
|
|
83
|
+
* Always succeeds at runtime (content embedded at build time).
|
|
84
|
+
*
|
|
85
|
+
* @returns Language reference text
|
|
86
|
+
*/
|
|
87
|
+
export declare function getLanguageReference(): string;
|
|
88
|
+
//# sourceMappingURL=introspection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"introspection.d.ts","sourceRoot":"","sources":["../../../src/runtime/core/introspection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAI7C;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,8CAA8C;IAC9C,QAAQ,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;IAC1C,mDAAmD;IACnD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,qBAAqB;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,qEAAqE;IACrE,QAAQ,CAAC,YAAY,EAAE,SAAS,GAAG,SAAS,CAAC;CAC9C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,cAAc,GAAG,gBAAgB,EAAE,CA4FpE;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,2BAA2B;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,4CAA4C;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sDAAsD;IACtD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,cAAc,GAClB,2BAA2B,CAkC7B;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime Introspection API
|
|
3
|
+
*
|
|
4
|
+
* Functions for inspecting runtime context at runtime.
|
|
5
|
+
* These enable host applications to discover available functions and their signatures.
|
|
6
|
+
*/
|
|
7
|
+
import { isApplicationCallable, isScriptCallable } from './callable.js';
|
|
8
|
+
import { LANGUAGE_REFERENCE } from '../../generated/introspection-data.js';
|
|
9
|
+
/**
|
|
10
|
+
* Enumerate all callable functions registered in runtime context.
|
|
11
|
+
*
|
|
12
|
+
* Returns flat list combining host functions, built-ins, and script closures.
|
|
13
|
+
* Namespaced functions preserve `::` separator in name field.
|
|
14
|
+
* Malformed entries silently skipped (valid entries returned).
|
|
15
|
+
* Script closures: reads `^(doc: "...")` annotation for description.
|
|
16
|
+
* Script closures: excludes nested closures in dicts/lists.
|
|
17
|
+
*
|
|
18
|
+
* Order: host functions, then built-ins, then script closures.
|
|
19
|
+
*
|
|
20
|
+
* @param ctx Runtime context
|
|
21
|
+
* @returns Array of function metadata
|
|
22
|
+
*/
|
|
23
|
+
export function getFunctions(ctx) {
|
|
24
|
+
const result = [];
|
|
25
|
+
// Defensive: handle invalid context (EC-1)
|
|
26
|
+
if (!ctx || !ctx.functions || !ctx.variables) {
|
|
27
|
+
return result;
|
|
28
|
+
}
|
|
29
|
+
// Separate host functions and built-ins
|
|
30
|
+
const hostFunctions = [];
|
|
31
|
+
const builtinFunctions = [];
|
|
32
|
+
// Enumerate functions in ctx.functions
|
|
33
|
+
for (const [name, fn] of ctx.functions.entries()) {
|
|
34
|
+
try {
|
|
35
|
+
// Check if this is an ApplicationCallable with metadata (host function)
|
|
36
|
+
const callable = fn;
|
|
37
|
+
if (isApplicationCallable(callable)) {
|
|
38
|
+
if (callable.params) {
|
|
39
|
+
const params = callable.params.map((p) => ({
|
|
40
|
+
name: p.name,
|
|
41
|
+
type: p.typeName ?? 'any',
|
|
42
|
+
description: p.description ?? '',
|
|
43
|
+
defaultValue: p.defaultValue ?? undefined,
|
|
44
|
+
}));
|
|
45
|
+
hostFunctions.push({
|
|
46
|
+
name,
|
|
47
|
+
description: callable.description ?? '',
|
|
48
|
+
params,
|
|
49
|
+
returnType: callable.returnType ?? 'any',
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
// ApplicationCallable without params (untyped)
|
|
54
|
+
builtinFunctions.push({
|
|
55
|
+
name,
|
|
56
|
+
description: callable.description ?? '',
|
|
57
|
+
params: [],
|
|
58
|
+
returnType: 'any',
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
// Built-in function (no parameter metadata)
|
|
64
|
+
builtinFunctions.push({
|
|
65
|
+
name,
|
|
66
|
+
description: '',
|
|
67
|
+
params: [],
|
|
68
|
+
returnType: 'any',
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
// EC-2: Malformed function entry skipped
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// Enumerate script closures from variables (top-level only, no nested)
|
|
78
|
+
for (const [name, value] of ctx.variables.entries()) {
|
|
79
|
+
try {
|
|
80
|
+
if (isScriptCallable(value)) {
|
|
81
|
+
// Extract description from ^(doc: "...") annotation
|
|
82
|
+
let description = '';
|
|
83
|
+
if (value.annotations && 'doc' in value.annotations) {
|
|
84
|
+
const docValue = value.annotations['doc'];
|
|
85
|
+
if (typeof docValue === 'string') {
|
|
86
|
+
description = docValue;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
// Convert params to ParamMetadata
|
|
90
|
+
const params = value.params.map((p) => ({
|
|
91
|
+
name: p.name,
|
|
92
|
+
type: p.typeName ?? 'any',
|
|
93
|
+
description: p.description ?? '',
|
|
94
|
+
defaultValue: p.defaultValue ?? undefined,
|
|
95
|
+
}));
|
|
96
|
+
result.push({
|
|
97
|
+
name,
|
|
98
|
+
description,
|
|
99
|
+
params,
|
|
100
|
+
returnType: 'any',
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
// EC-2: Malformed entry skipped
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
// Combine in specified order: host, built-ins, script closures
|
|
110
|
+
return [...hostFunctions, ...builtinFunctions, ...result];
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Analyze documentation coverage of functions in runtime context.
|
|
114
|
+
*
|
|
115
|
+
* Counts function as documented when:
|
|
116
|
+
* - Has non-empty description string (after trim)
|
|
117
|
+
* - All parameters have non-empty description string (after trim)
|
|
118
|
+
*
|
|
119
|
+
* Script closures with `^(doc: "...")` annotation count as having description.
|
|
120
|
+
* Whitespace-only descriptions count as undocumented.
|
|
121
|
+
* Empty context returns `{ total: 0, documented: 0, percentage: 100 }`.
|
|
122
|
+
*
|
|
123
|
+
* @param ctx Runtime context
|
|
124
|
+
* @returns Documentation coverage metrics
|
|
125
|
+
*/
|
|
126
|
+
export function getDocumentationCoverage(ctx) {
|
|
127
|
+
// Get all functions using existing getFunctions helper
|
|
128
|
+
const functions = getFunctions(ctx);
|
|
129
|
+
// Handle empty context (AC-11)
|
|
130
|
+
if (functions.length === 0) {
|
|
131
|
+
return { total: 0, documented: 0, percentage: 100 };
|
|
132
|
+
}
|
|
133
|
+
// Count documented functions
|
|
134
|
+
let documented = 0;
|
|
135
|
+
for (const fn of functions) {
|
|
136
|
+
// Function is documented when:
|
|
137
|
+
// 1. Has non-empty description (after trim)
|
|
138
|
+
// 2. All params have non-empty description (after trim)
|
|
139
|
+
const hasDescription = fn.description.trim().length > 0;
|
|
140
|
+
const allParamsDocumented = fn.params.every((p) => p.description.trim().length > 0);
|
|
141
|
+
// AC-13: Function with 0 params and description counts as documented
|
|
142
|
+
if (hasDescription && allParamsDocumented) {
|
|
143
|
+
documented++;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
// Calculate percentage with spec formula
|
|
147
|
+
const percentage = Math.round((documented / functions.length) * 10000) / 100;
|
|
148
|
+
return {
|
|
149
|
+
total: functions.length,
|
|
150
|
+
documented,
|
|
151
|
+
percentage,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Return complete rill language reference for LLM prompt context.
|
|
156
|
+
*
|
|
157
|
+
* Returns bundled content from `docs/ref-llm.txt`.
|
|
158
|
+
* Content includes syntax, operators, control flow, type system.
|
|
159
|
+
* Always succeeds at runtime (content embedded at build time).
|
|
160
|
+
*
|
|
161
|
+
* @returns Language reference text
|
|
162
|
+
*/
|
|
163
|
+
export function getLanguageReference() {
|
|
164
|
+
return LANGUAGE_REFERENCE;
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=introspection.js.map
|