@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.
Files changed (141) hide show
  1. package/dist/check/config.d.ts.map +1 -1
  2. package/dist/check/config.js +9 -9
  3. package/dist/check/config.js.map +1 -1
  4. package/dist/check/visitor.d.ts.map +1 -1
  5. package/dist/check/visitor.js +1 -0
  6. package/dist/check/visitor.js.map +1 -1
  7. package/dist/cli-check.js +8 -9
  8. package/dist/cli-check.js.map +1 -1
  9. package/dist/cli-eval.js +4 -5
  10. package/dist/cli-eval.js.map +1 -1
  11. package/dist/cli-exec.d.ts.map +1 -1
  12. package/dist/cli-exec.js +2 -3
  13. package/dist/cli-exec.js.map +1 -1
  14. package/dist/cli-shared.d.ts +5 -3
  15. package/dist/cli-shared.d.ts.map +1 -1
  16. package/dist/cli-shared.js +5 -9
  17. package/dist/cli-shared.js.map +1 -1
  18. package/dist/generated/introspection-data.d.ts +2 -0
  19. package/dist/generated/introspection-data.d.ts.map +1 -0
  20. package/dist/generated/introspection-data.js +618 -0
  21. package/dist/generated/introspection-data.js.map +1 -0
  22. package/dist/generated/version-data.d.ts +18 -0
  23. package/dist/generated/version-data.d.ts.map +1 -0
  24. package/dist/generated/version-data.js +16 -0
  25. package/dist/generated/version-data.js.map +1 -0
  26. package/dist/index.d.ts +2 -1
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +5 -1
  29. package/dist/index.js.map +1 -1
  30. package/dist/lexer/errors.d.ts +3 -2
  31. package/dist/lexer/errors.d.ts.map +1 -1
  32. package/dist/lexer/errors.js +19 -4
  33. package/dist/lexer/errors.js.map +1 -1
  34. package/dist/lexer/operators.d.ts.map +1 -1
  35. package/dist/lexer/operators.js +1 -0
  36. package/dist/lexer/operators.js.map +1 -1
  37. package/dist/lexer/readers.d.ts.map +1 -1
  38. package/dist/lexer/readers.js +4 -4
  39. package/dist/lexer/readers.js.map +1 -1
  40. package/dist/lexer/tokenizer.js +1 -1
  41. package/dist/lexer/tokenizer.js.map +1 -1
  42. package/dist/parser/helpers.d.ts.map +1 -1
  43. package/dist/parser/helpers.js +5 -3
  44. package/dist/parser/helpers.js.map +1 -1
  45. package/dist/parser/parser-collect.js +1 -1
  46. package/dist/parser/parser-collect.js.map +1 -1
  47. package/dist/parser/parser-control.js +6 -4
  48. package/dist/parser/parser-control.js.map +1 -1
  49. package/dist/parser/parser-expr.d.ts.map +1 -1
  50. package/dist/parser/parser-expr.js +24 -4
  51. package/dist/parser/parser-expr.js.map +1 -1
  52. package/dist/parser/parser-extract.js +1 -1
  53. package/dist/parser/parser-extract.js.map +1 -1
  54. package/dist/parser/parser-functions.js +2 -1
  55. package/dist/parser/parser-functions.js.map +1 -1
  56. package/dist/parser/parser-literals.d.ts.map +1 -1
  57. package/dist/parser/parser-literals.js +39 -10
  58. package/dist/parser/parser-literals.js.map +1 -1
  59. package/dist/parser/parser-script.js +2 -0
  60. package/dist/parser/parser-script.js.map +1 -1
  61. package/dist/parser/parser-variables.d.ts +2 -2
  62. package/dist/parser/parser-variables.d.ts.map +1 -1
  63. package/dist/parser/parser-variables.js +28 -12
  64. package/dist/parser/parser-variables.js.map +1 -1
  65. package/dist/parser/state.js +1 -1
  66. package/dist/parser/state.js.map +1 -1
  67. package/dist/runtime/core/callable.d.ts +8 -0
  68. package/dist/runtime/core/callable.d.ts.map +1 -1
  69. package/dist/runtime/core/callable.js +6 -6
  70. package/dist/runtime/core/callable.js.map +1 -1
  71. package/dist/runtime/core/context.d.ts.map +1 -1
  72. package/dist/runtime/core/context.js +17 -8
  73. package/dist/runtime/core/context.js.map +1 -1
  74. package/dist/runtime/core/equals.d.ts.map +1 -1
  75. package/dist/runtime/core/equals.js +7 -1
  76. package/dist/runtime/core/equals.js.map +1 -1
  77. package/dist/runtime/core/eval/base.js +2 -2
  78. package/dist/runtime/core/eval/base.js.map +1 -1
  79. package/dist/runtime/core/eval/mixins/annotations.js +2 -2
  80. package/dist/runtime/core/eval/mixins/annotations.js.map +1 -1
  81. package/dist/runtime/core/eval/mixins/closures.d.ts.map +1 -1
  82. package/dist/runtime/core/eval/mixins/closures.js +32 -26
  83. package/dist/runtime/core/eval/mixins/closures.js.map +1 -1
  84. package/dist/runtime/core/eval/mixins/collections.js +13 -13
  85. package/dist/runtime/core/eval/mixins/collections.js.map +1 -1
  86. package/dist/runtime/core/eval/mixins/control-flow.js +1 -1
  87. package/dist/runtime/core/eval/mixins/control-flow.js.map +1 -1
  88. package/dist/runtime/core/eval/mixins/core.d.ts.map +1 -1
  89. package/dist/runtime/core/eval/mixins/core.js +37 -14
  90. package/dist/runtime/core/eval/mixins/core.js.map +1 -1
  91. package/dist/runtime/core/eval/mixins/expressions.d.ts +2 -0
  92. package/dist/runtime/core/eval/mixins/expressions.d.ts.map +1 -1
  93. package/dist/runtime/core/eval/mixins/expressions.js +80 -27
  94. package/dist/runtime/core/eval/mixins/expressions.js.map +1 -1
  95. package/dist/runtime/core/eval/mixins/extraction.js +14 -14
  96. package/dist/runtime/core/eval/mixins/extraction.js.map +1 -1
  97. package/dist/runtime/core/eval/mixins/literals.d.ts +4 -1
  98. package/dist/runtime/core/eval/mixins/literals.d.ts.map +1 -1
  99. package/dist/runtime/core/eval/mixins/literals.js +117 -14
  100. package/dist/runtime/core/eval/mixins/literals.js.map +1 -1
  101. package/dist/runtime/core/eval/mixins/types.js +3 -3
  102. package/dist/runtime/core/eval/mixins/types.js.map +1 -1
  103. package/dist/runtime/core/eval/mixins/variables.d.ts.map +1 -1
  104. package/dist/runtime/core/eval/mixins/variables.js +121 -31
  105. package/dist/runtime/core/eval/mixins/variables.js.map +1 -1
  106. package/dist/runtime/core/execute.js +2 -2
  107. package/dist/runtime/core/execute.js.map +1 -1
  108. package/dist/runtime/core/introspection-data.d.ts +2 -0
  109. package/dist/runtime/core/introspection-data.d.ts.map +1 -0
  110. package/dist/runtime/core/introspection-data.js +618 -0
  111. package/dist/runtime/core/introspection-data.js.map +1 -0
  112. package/dist/runtime/core/introspection.d.ts +59 -0
  113. package/dist/runtime/core/introspection.d.ts.map +1 -0
  114. package/dist/runtime/core/introspection.js +120 -0
  115. package/dist/runtime/core/introspection.js.map +1 -0
  116. package/dist/runtime/core/version-data.d.ts +18 -0
  117. package/dist/runtime/core/version-data.d.ts.map +1 -0
  118. package/dist/runtime/core/version-data.js +16 -0
  119. package/dist/runtime/core/version-data.js.map +1 -0
  120. package/dist/runtime/ext/builtins.js +21 -21
  121. package/dist/runtime/ext/builtins.js.map +1 -1
  122. package/dist/runtime/ext/extensions.js +1 -1
  123. package/dist/runtime/ext/extensions.js.map +1 -1
  124. package/dist/runtime/index.d.ts +4 -0
  125. package/dist/runtime/index.d.ts.map +1 -1
  126. package/dist/runtime/index.js +2 -0
  127. package/dist/runtime/index.js.map +1 -1
  128. package/dist/types.d.ts +127 -9
  129. package/dist/types.d.ts.map +1 -1
  130. package/dist/types.js +457 -11
  131. package/dist/types.js.map +1 -1
  132. package/docs/02_types.md +35 -3
  133. package/docs/04_operators.md +22 -1
  134. package/docs/05_control-flow.md +62 -0
  135. package/docs/11_reference.md +9 -5
  136. package/docs/12_examples.md +4 -4
  137. package/docs/14_host-integration.md +152 -0
  138. package/docs/15_grammar.ebnf +33 -6
  139. package/docs/88_errors.md +902 -0
  140. package/docs/99_llm-reference.txt +19 -0
  141. 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.4.4",
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
- "prebuild": "rm -f tsconfig.tsbuildinfo",
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",