@rcrsr/rill 0.4.4 → 0.5.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/check/config.d.ts.map +1 -1
- package/dist/check/config.js +9 -9
- package/dist/check/config.js.map +1 -1
- package/dist/check/visitor.d.ts.map +1 -1
- package/dist/check/visitor.js +1 -0
- package/dist/check/visitor.js.map +1 -1
- package/dist/cli-check.js +8 -9
- package/dist/cli-check.js.map +1 -1
- package/dist/cli-eval.js +4 -5
- package/dist/cli-eval.js.map +1 -1
- package/dist/cli-exec.d.ts.map +1 -1
- package/dist/cli-exec.js +2 -3
- package/dist/cli-exec.js.map +1 -1
- package/dist/cli-shared.d.ts +5 -3
- package/dist/cli-shared.d.ts.map +1 -1
- package/dist/cli-shared.js +5 -9
- package/dist/cli-shared.js.map +1 -1
- 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 +618 -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/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -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 +19 -4
- package/dist/lexer/errors.js.map +1 -1
- package/dist/lexer/operators.d.ts.map +1 -1
- package/dist/lexer/operators.js +1 -0
- 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.js +1 -1
- package/dist/lexer/tokenizer.js.map +1 -1
- package/dist/parser/helpers.d.ts.map +1 -1
- package/dist/parser/helpers.js +5 -3
- package/dist/parser/helpers.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 +24 -4
- package/dist/parser/parser-expr.js.map +1 -1
- package/dist/parser/parser-extract.js +1 -1
- package/dist/parser/parser-extract.js.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.d.ts.map +1 -1
- package/dist/parser/parser-literals.js +39 -10
- package/dist/parser/parser-literals.js.map +1 -1
- package/dist/parser/parser-script.js +2 -0
- package/dist/parser/parser-script.js.map +1 -1
- package/dist/parser/parser-variables.d.ts +2 -2
- package/dist/parser/parser-variables.d.ts.map +1 -1
- package/dist/parser/parser-variables.js +28 -12
- package/dist/parser/parser-variables.js.map +1 -1
- package/dist/parser/state.js +1 -1
- package/dist/parser/state.js.map +1 -1
- package/dist/runtime/core/callable.d.ts +8 -0
- package/dist/runtime/core/callable.d.ts.map +1 -1
- package/dist/runtime/core/callable.js +6 -6
- 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 +17 -8
- 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 +7 -1
- package/dist/runtime/core/equals.js.map +1 -1
- package/dist/runtime/core/eval/base.js +2 -2
- package/dist/runtime/core/eval/base.js.map +1 -1
- package/dist/runtime/core/eval/mixins/annotations.js +2 -2
- 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 +32 -26
- package/dist/runtime/core/eval/mixins/closures.js.map +1 -1
- package/dist/runtime/core/eval/mixins/collections.js +13 -13
- package/dist/runtime/core/eval/mixins/collections.js.map +1 -1
- package/dist/runtime/core/eval/mixins/control-flow.js +1 -1
- 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 +37 -14
- 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 +80 -27
- package/dist/runtime/core/eval/mixins/expressions.js.map +1 -1
- package/dist/runtime/core/eval/mixins/extraction.js +14 -14
- 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 +117 -14
- package/dist/runtime/core/eval/mixins/literals.js.map +1 -1
- package/dist/runtime/core/eval/mixins/types.js +3 -3
- package/dist/runtime/core/eval/mixins/types.js.map +1 -1
- package/dist/runtime/core/eval/mixins/variables.d.ts.map +1 -1
- package/dist/runtime/core/eval/mixins/variables.js +121 -31
- package/dist/runtime/core/eval/mixins/variables.js.map +1 -1
- package/dist/runtime/core/execute.js +2 -2
- package/dist/runtime/core/execute.js.map +1 -1
- package/dist/runtime/core/introspection-data.d.ts +2 -0
- package/dist/runtime/core/introspection-data.d.ts.map +1 -0
- package/dist/runtime/core/introspection-data.js +618 -0
- package/dist/runtime/core/introspection-data.js.map +1 -0
- package/dist/runtime/core/introspection.d.ts +59 -0
- package/dist/runtime/core/introspection.d.ts.map +1 -0
- package/dist/runtime/core/introspection.js +120 -0
- package/dist/runtime/core/introspection.js.map +1 -0
- package/dist/runtime/core/version-data.d.ts +18 -0
- package/dist/runtime/core/version-data.d.ts.map +1 -0
- package/dist/runtime/core/version-data.js +16 -0
- package/dist/runtime/core/version-data.js.map +1 -0
- package/dist/runtime/ext/builtins.js +21 -21
- package/dist/runtime/ext/builtins.js.map +1 -1
- package/dist/runtime/ext/extensions.js +1 -1
- package/dist/runtime/ext/extensions.js.map +1 -1
- package/dist/runtime/index.d.ts +4 -0
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +2 -0
- package/dist/runtime/index.js.map +1 -1
- package/dist/types.d.ts +127 -9
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +457 -11
- package/dist/types.js.map +1 -1
- package/docs/02_types.md +35 -3
- package/docs/04_operators.md +22 -1
- package/docs/05_control-flow.md +62 -0
- package/docs/11_reference.md +9 -5
- package/docs/12_examples.md +4 -4
- package/docs/14_host-integration.md +152 -0
- package/docs/15_grammar.ebnf +33 -6
- package/docs/88_errors.md +902 -0
- package/docs/99_llm-reference.txt +19 -0
- package/package.json +4 -2
|
@@ -106,6 +106,12 @@ CRITICAL DIFFERENCES FROM MAINSTREAM LANGUAGES
|
|
|
106
106
|
Wrong: 0 ? "yes" ! "no"
|
|
107
107
|
Right: (0 == 0) ? "yes" ! "no"
|
|
108
108
|
|
|
109
|
+
Negation (!) also requires boolean:
|
|
110
|
+
Right: !true # false
|
|
111
|
+
Right: "hello" -> .empty -> (!$) # true (negates boolean from .empty)
|
|
112
|
+
Wrong: !"hello" # ERROR: Negation requires boolean, got string
|
|
113
|
+
Wrong: !0 # ERROR: Negation requires boolean, got number
|
|
114
|
+
|
|
109
115
|
4. VARIABLES LOCK TO FIRST TYPE
|
|
110
116
|
"hello" :> $x
|
|
111
117
|
42 :> $x # ERROR: cannot assign number to string variable
|
|
@@ -146,6 +152,8 @@ Dicts: [name: "alice", age: 30] # identifier keys
|
|
|
146
152
|
[1: "one", 2: "two"] # number keys (incl. negative: [-1: "neg"])
|
|
147
153
|
[true: "yes", false: "no"] # boolean keys
|
|
148
154
|
[["a", "b"]: 1] # multi-key: [a: 1, b: 1]
|
|
155
|
+
[$keyVar: value] # variable key (must eval to string)
|
|
156
|
+
[($expr): value] # computed key (must eval to string)
|
|
149
157
|
Tuples: *[1, 2, 3] # for argument unpacking
|
|
150
158
|
Closures: |x|($x + 1) # like lambda/arrow functions
|
|
151
159
|
Type annot: "hi" :> $x:string # lock type on capture
|
|
@@ -204,6 +212,13 @@ Error (halt execution immediately with message):
|
|
|
204
212
|
"Operation failed" -> error # piped form (must be string)
|
|
205
213
|
error "Status: {$code}" # interpolation works
|
|
206
214
|
|
|
215
|
+
Pass (returns $ unchanged, explicit no-op):
|
|
216
|
+
cond ? pass ! "fallback" # preserve $ when condition true
|
|
217
|
+
cond ? "value" ! pass # preserve $ when condition false
|
|
218
|
+
"data" -> { [status: pass] } # include $ in dict: [status: "data"]
|
|
219
|
+
[1, -2, 3] -> map { ($ > 0) ? pass ! 0 } # [1, 0, 3]
|
|
220
|
+
Note: pass requires pipe context. Using pass without $ throws error.
|
|
221
|
+
|
|
207
222
|
LOOP STATE PATTERNS (CRITICAL)
|
|
208
223
|
------------------------------
|
|
209
224
|
Rill loops CANNOT modify outer variables. All state must flow through $ or $@.
|
|
@@ -334,7 +349,11 @@ $data.($i + 1) # computed key
|
|
|
334
349
|
$data.(a || b) # try keys left-to-right
|
|
335
350
|
$data.field ?? "default" # default if missing
|
|
336
351
|
$data.?field # existence check (boolean)
|
|
352
|
+
$data.?$keyVar # variable existence check
|
|
353
|
+
$data.?($expr) # computed existence check
|
|
337
354
|
$data.?field&string # existence AND type check
|
|
355
|
+
$data.?$key&number # variable existence + type check
|
|
356
|
+
$data.?($a -> "{$}_b")&list # computed existence + type check
|
|
338
357
|
|
|
339
358
|
DISPATCH OPERATORS
|
|
340
359
|
------------------
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rcrsr/rill",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Rill - An embeddable scripting language for orchestrating LLM workflows",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -32,7 +32,9 @@
|
|
|
32
32
|
"access": "public"
|
|
33
33
|
},
|
|
34
34
|
"scripts": {
|
|
35
|
-
"
|
|
35
|
+
"generate-docs": "npx tsx scripts/generate-docs-bundle.ts",
|
|
36
|
+
"generate-version": "npx tsx scripts/generate-version.ts",
|
|
37
|
+
"prebuild": "rm -f tsconfig.tsbuildinfo && npm run generate-version && npm run generate-docs",
|
|
36
38
|
"build": "tsc",
|
|
37
39
|
"build:watch": "tsc --watch",
|
|
38
40
|
"typecheck": "tsc --noEmit",
|