@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.
Files changed (246) hide show
  1. package/dist/generated/introspection-data.d.ts +2 -0
  2. package/dist/generated/introspection-data.d.ts.map +1 -0
  3. package/dist/generated/introspection-data.js +539 -0
  4. package/dist/generated/introspection-data.js.map +1 -0
  5. package/dist/generated/version-data.d.ts +18 -0
  6. package/dist/generated/version-data.d.ts.map +1 -0
  7. package/dist/generated/version-data.js +16 -0
  8. package/dist/generated/version-data.js.map +1 -0
  9. package/dist/highlight-map.d.ts +4 -0
  10. package/dist/highlight-map.d.ts.map +1 -0
  11. package/dist/highlight-map.js +71 -0
  12. package/dist/highlight-map.js.map +1 -0
  13. package/dist/index.d.ts +3 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +9 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/lexer/errors.d.ts +3 -2
  18. package/dist/lexer/errors.d.ts.map +1 -1
  19. package/dist/lexer/errors.js +25 -4
  20. package/dist/lexer/errors.js.map +1 -1
  21. package/dist/lexer/operators.d.ts.map +1 -1
  22. package/dist/lexer/operators.js +2 -1
  23. package/dist/lexer/operators.js.map +1 -1
  24. package/dist/lexer/readers.d.ts.map +1 -1
  25. package/dist/lexer/readers.js +4 -4
  26. package/dist/lexer/readers.js.map +1 -1
  27. package/dist/lexer/tokenizer.d.ts.map +1 -1
  28. package/dist/lexer/tokenizer.js +1 -15
  29. package/dist/lexer/tokenizer.js.map +1 -1
  30. package/dist/parser/helpers.d.ts +8 -0
  31. package/dist/parser/helpers.d.ts.map +1 -1
  32. package/dist/parser/helpers.js +7 -5
  33. package/dist/parser/helpers.js.map +1 -1
  34. package/dist/parser/index.d.ts.map +1 -1
  35. package/dist/parser/index.js +1 -1
  36. package/dist/parser/index.js.map +1 -1
  37. package/dist/parser/parser-collect.js +1 -1
  38. package/dist/parser/parser-collect.js.map +1 -1
  39. package/dist/parser/parser-control.js +6 -4
  40. package/dist/parser/parser-control.js.map +1 -1
  41. package/dist/parser/parser-expr.d.ts.map +1 -1
  42. package/dist/parser/parser-expr.js +52 -10
  43. package/dist/parser/parser-expr.js.map +1 -1
  44. package/dist/parser/parser-extract.js +7 -3
  45. package/dist/parser/parser-extract.js.map +1 -1
  46. package/dist/parser/parser-functions.d.ts.map +1 -1
  47. package/dist/parser/parser-functions.js +8 -18
  48. package/dist/parser/parser-functions.js.map +1 -1
  49. package/dist/parser/parser-literals.js +15 -15
  50. package/dist/parser/parser-literals.js.map +1 -1
  51. package/dist/parser/parser-script.js +5 -3
  52. package/dist/parser/parser-script.js.map +1 -1
  53. package/dist/parser/parser-variables.js +10 -6
  54. package/dist/parser/parser-variables.js.map +1 -1
  55. package/dist/parser/state.d.ts +1 -1
  56. package/dist/parser/state.d.ts.map +1 -1
  57. package/dist/parser/state.js +2 -2
  58. package/dist/parser/state.js.map +1 -1
  59. package/dist/runtime/core/callable.d.ts +28 -0
  60. package/dist/runtime/core/callable.d.ts.map +1 -1
  61. package/dist/runtime/core/callable.js +30 -7
  62. package/dist/runtime/core/callable.js.map +1 -1
  63. package/dist/runtime/core/context.d.ts +21 -0
  64. package/dist/runtime/core/context.d.ts.map +1 -1
  65. package/dist/runtime/core/context.js +90 -10
  66. package/dist/runtime/core/context.js.map +1 -1
  67. package/dist/runtime/core/equals.d.ts.map +1 -1
  68. package/dist/runtime/core/equals.js +2 -1
  69. package/dist/runtime/core/equals.js.map +1 -1
  70. package/dist/runtime/core/eval/base.d.ts.map +1 -1
  71. package/dist/runtime/core/eval/base.js +3 -3
  72. package/dist/runtime/core/eval/base.js.map +1 -1
  73. package/dist/runtime/core/eval/index.d.ts.map +1 -1
  74. package/dist/runtime/core/eval/index.js +2 -0
  75. package/dist/runtime/core/eval/index.js.map +1 -1
  76. package/dist/runtime/core/eval/mixins/annotations.js +3 -3
  77. package/dist/runtime/core/eval/mixins/annotations.js.map +1 -1
  78. package/dist/runtime/core/eval/mixins/closures.d.ts.map +1 -1
  79. package/dist/runtime/core/eval/mixins/closures.js +75 -40
  80. package/dist/runtime/core/eval/mixins/closures.js.map +1 -1
  81. package/dist/runtime/core/eval/mixins/collections.js +15 -15
  82. package/dist/runtime/core/eval/mixins/collections.js.map +1 -1
  83. package/dist/runtime/core/eval/mixins/control-flow.d.ts.map +1 -1
  84. package/dist/runtime/core/eval/mixins/control-flow.js +12 -12
  85. package/dist/runtime/core/eval/mixins/control-flow.js.map +1 -1
  86. package/dist/runtime/core/eval/mixins/core.d.ts.map +1 -1
  87. package/dist/runtime/core/eval/mixins/core.js +39 -17
  88. package/dist/runtime/core/eval/mixins/core.js.map +1 -1
  89. package/dist/runtime/core/eval/mixins/expressions.d.ts +2 -0
  90. package/dist/runtime/core/eval/mixins/expressions.d.ts.map +1 -1
  91. package/dist/runtime/core/eval/mixins/expressions.js +81 -28
  92. package/dist/runtime/core/eval/mixins/expressions.js.map +1 -1
  93. package/dist/runtime/core/eval/mixins/extraction.d.ts.map +1 -1
  94. package/dist/runtime/core/eval/mixins/extraction.js +15 -15
  95. package/dist/runtime/core/eval/mixins/extraction.js.map +1 -1
  96. package/dist/runtime/core/eval/mixins/literals.d.ts +4 -1
  97. package/dist/runtime/core/eval/mixins/literals.d.ts.map +1 -1
  98. package/dist/runtime/core/eval/mixins/literals.js +45 -25
  99. package/dist/runtime/core/eval/mixins/literals.js.map +1 -1
  100. package/dist/runtime/core/eval/mixins/types.js +4 -4
  101. package/dist/runtime/core/eval/mixins/types.js.map +1 -1
  102. package/dist/runtime/core/eval/mixins/variables.js +34 -34
  103. package/dist/runtime/core/eval/mixins/variables.js.map +1 -1
  104. package/dist/runtime/core/execute.js +3 -3
  105. package/dist/runtime/core/execute.js.map +1 -1
  106. package/dist/runtime/core/introspection.d.ts +88 -0
  107. package/dist/runtime/core/introspection.d.ts.map +1 -0
  108. package/dist/runtime/core/introspection.js +166 -0
  109. package/dist/runtime/core/introspection.js.map +1 -0
  110. package/dist/runtime/core/types.d.ts +11 -0
  111. package/dist/runtime/core/types.d.ts.map +1 -1
  112. package/dist/runtime/core/types.js.map +1 -1
  113. package/dist/runtime/ext/builtins.js +22 -22
  114. package/dist/runtime/ext/builtins.js.map +1 -1
  115. package/dist/runtime/ext/extensions.d.ts +1 -1
  116. package/dist/runtime/ext/extensions.d.ts.map +1 -1
  117. package/dist/runtime/ext/extensions.js +4 -5
  118. package/dist/runtime/ext/extensions.js.map +1 -1
  119. package/dist/runtime/index.d.ts +8 -2
  120. package/dist/runtime/index.d.ts.map +1 -1
  121. package/dist/runtime/index.js +4 -1
  122. package/dist/runtime/index.js.map +1 -1
  123. package/dist/types.d.ts +141 -32
  124. package/dist/types.d.ts.map +1 -1
  125. package/dist/types.js +806 -40
  126. package/dist/types.js.map +1 -1
  127. package/package.json +7 -64
  128. package/README.md +0 -223
  129. package/dist/check/config.d.ts +0 -20
  130. package/dist/check/config.d.ts.map +0 -1
  131. package/dist/check/config.js +0 -151
  132. package/dist/check/config.js.map +0 -1
  133. package/dist/check/fixer.d.ts +0 -39
  134. package/dist/check/fixer.d.ts.map +0 -1
  135. package/dist/check/fixer.js +0 -119
  136. package/dist/check/fixer.js.map +0 -1
  137. package/dist/check/index.d.ts +0 -10
  138. package/dist/check/index.d.ts.map +0 -1
  139. package/dist/check/index.js +0 -21
  140. package/dist/check/index.js.map +0 -1
  141. package/dist/check/rules/anti-patterns.d.ts +0 -65
  142. package/dist/check/rules/anti-patterns.d.ts.map +0 -1
  143. package/dist/check/rules/anti-patterns.js +0 -481
  144. package/dist/check/rules/anti-patterns.js.map +0 -1
  145. package/dist/check/rules/closures.d.ts +0 -66
  146. package/dist/check/rules/closures.d.ts.map +0 -1
  147. package/dist/check/rules/closures.js +0 -370
  148. package/dist/check/rules/closures.js.map +0 -1
  149. package/dist/check/rules/collections.d.ts +0 -90
  150. package/dist/check/rules/collections.d.ts.map +0 -1
  151. package/dist/check/rules/collections.js +0 -373
  152. package/dist/check/rules/collections.js.map +0 -1
  153. package/dist/check/rules/conditionals.d.ts +0 -41
  154. package/dist/check/rules/conditionals.d.ts.map +0 -1
  155. package/dist/check/rules/conditionals.js +0 -134
  156. package/dist/check/rules/conditionals.js.map +0 -1
  157. package/dist/check/rules/flow.d.ts +0 -46
  158. package/dist/check/rules/flow.d.ts.map +0 -1
  159. package/dist/check/rules/flow.js +0 -206
  160. package/dist/check/rules/flow.js.map +0 -1
  161. package/dist/check/rules/formatting.d.ts +0 -133
  162. package/dist/check/rules/formatting.d.ts.map +0 -1
  163. package/dist/check/rules/formatting.js +0 -648
  164. package/dist/check/rules/formatting.js.map +0 -1
  165. package/dist/check/rules/helpers.d.ts +0 -26
  166. package/dist/check/rules/helpers.d.ts.map +0 -1
  167. package/dist/check/rules/helpers.js +0 -66
  168. package/dist/check/rules/helpers.js.map +0 -1
  169. package/dist/check/rules/index.d.ts +0 -21
  170. package/dist/check/rules/index.d.ts.map +0 -1
  171. package/dist/check/rules/index.js +0 -78
  172. package/dist/check/rules/index.js.map +0 -1
  173. package/dist/check/rules/loops.d.ts +0 -77
  174. package/dist/check/rules/loops.d.ts.map +0 -1
  175. package/dist/check/rules/loops.js +0 -310
  176. package/dist/check/rules/loops.js.map +0 -1
  177. package/dist/check/rules/naming.d.ts +0 -21
  178. package/dist/check/rules/naming.d.ts.map +0 -1
  179. package/dist/check/rules/naming.js +0 -174
  180. package/dist/check/rules/naming.js.map +0 -1
  181. package/dist/check/rules/strings.d.ts +0 -28
  182. package/dist/check/rules/strings.d.ts.map +0 -1
  183. package/dist/check/rules/strings.js +0 -79
  184. package/dist/check/rules/strings.js.map +0 -1
  185. package/dist/check/rules/types.d.ts +0 -41
  186. package/dist/check/rules/types.d.ts.map +0 -1
  187. package/dist/check/rules/types.js +0 -167
  188. package/dist/check/rules/types.js.map +0 -1
  189. package/dist/check/types.d.ts +0 -112
  190. package/dist/check/types.d.ts.map +0 -1
  191. package/dist/check/types.js +0 -6
  192. package/dist/check/types.js.map +0 -1
  193. package/dist/check/validator.d.ts +0 -18
  194. package/dist/check/validator.d.ts.map +0 -1
  195. package/dist/check/validator.js +0 -110
  196. package/dist/check/validator.js.map +0 -1
  197. package/dist/check/visitor.d.ts +0 -33
  198. package/dist/check/visitor.d.ts.map +0 -1
  199. package/dist/check/visitor.js +0 -258
  200. package/dist/check/visitor.js.map +0 -1
  201. package/dist/cli-check.d.ts +0 -43
  202. package/dist/cli-check.d.ts.map +0 -1
  203. package/dist/cli-check.js +0 -369
  204. package/dist/cli-check.js.map +0 -1
  205. package/dist/cli-eval.d.ts +0 -15
  206. package/dist/cli-eval.d.ts.map +0 -1
  207. package/dist/cli-eval.js +0 -117
  208. package/dist/cli-eval.js.map +0 -1
  209. package/dist/cli-exec.d.ts +0 -49
  210. package/dist/cli-exec.d.ts.map +0 -1
  211. package/dist/cli-exec.js +0 -184
  212. package/dist/cli-exec.js.map +0 -1
  213. package/dist/cli-module-loader.d.ts +0 -19
  214. package/dist/cli-module-loader.d.ts.map +0 -1
  215. package/dist/cli-module-loader.js +0 -83
  216. package/dist/cli-module-loader.js.map +0 -1
  217. package/dist/cli-shared.d.ts +0 -42
  218. package/dist/cli-shared.d.ts.map +0 -1
  219. package/dist/cli-shared.js +0 -112
  220. package/dist/cli-shared.js.map +0 -1
  221. package/dist/cli.d.ts +0 -13
  222. package/dist/cli.d.ts.map +0 -1
  223. package/dist/cli.js +0 -62
  224. package/dist/cli.js.map +0 -1
  225. package/docs/00_INDEX.md +0 -67
  226. package/docs/01_guide.md +0 -390
  227. package/docs/02_types.md +0 -482
  228. package/docs/03_variables.md +0 -324
  229. package/docs/04_operators.md +0 -608
  230. package/docs/05_control-flow.md +0 -630
  231. package/docs/06_closures.md +0 -787
  232. package/docs/07_collections.md +0 -688
  233. package/docs/08_iterators.md +0 -330
  234. package/docs/09_strings.md +0 -205
  235. package/docs/10_parsing.md +0 -366
  236. package/docs/11_reference.md +0 -599
  237. package/docs/12_examples.md +0 -748
  238. package/docs/13_modules.md +0 -519
  239. package/docs/14_host-integration.md +0 -833
  240. package/docs/15_grammar.ebnf +0 -755
  241. package/docs/16_conventions.md +0 -695
  242. package/docs/17_cli-tools.md +0 -184
  243. package/docs/18_design-principles.md +0 -247
  244. package/docs/19_cookbook.md +0 -628
  245. package/docs/99_llm-reference.txt +0 -601
  246. package/docs/assets/logo.png +0 -0
@@ -1,119 +0,0 @@
1
- /**
2
- * Fix Applier
3
- * Apply automatic fixes to source code with collision detection.
4
- */
5
- import { parse } from '../parser/index.js';
6
- // ============================================================
7
- // FIX APPLICATION
8
- // ============================================================
9
- /**
10
- * Apply automatic fixes to source code.
11
- *
12
- * Constraints:
13
- * - Applies fixes in reverse position order (end to start) to avoid offset shifts
14
- * - Skips fixes where applicable === false
15
- * - Detects collisions (overlapping ranges) and skips with reason
16
- * - Verifies modified source parses successfully
17
- * - Throws if any applied fix creates invalid syntax
18
- *
19
- * @param source - Original source code
20
- * @param diagnostics - Diagnostics with potential fixes
21
- * @param context - Validation context (unused but required by spec)
22
- * @returns ApplyResult with modified source and counts
23
- * @throws Error if applied fixes create invalid syntax [EC-6]
24
- */
25
- export function applyFixes(source, diagnostics, _context) {
26
- // Filter to diagnostics with fixes
27
- const fixableDiagnostics = diagnostics.filter((d) => d.fix !== null && d.fix.applicable);
28
- // If no applicable fixes, return original
29
- if (fixableDiagnostics.length === 0) {
30
- return {
31
- modified: source,
32
- applied: 0,
33
- skipped: 0,
34
- skippedReasons: [],
35
- };
36
- }
37
- // Convert to ApplicableFix with positions
38
- const fixes = fixableDiagnostics.map((d) => ({
39
- code: d.code,
40
- start: d.fix.range.start.offset,
41
- end: d.fix.range.end.offset,
42
- replacement: d.fix.replacement,
43
- }));
44
- // Sort fixes by end position (descending) to apply from end to start
45
- // This avoids offset shifts when applying multiple fixes
46
- const sortedFixes = fixes.slice().sort((a, b) => b.end - a.end);
47
- // Detect collisions and filter to non-overlapping fixes
48
- const { validFixes, skippedReasons } = filterCollisions(sortedFixes);
49
- // Apply fixes to source
50
- let modified = source;
51
- for (const fix of validFixes) {
52
- const before = modified.slice(0, fix.start);
53
- const after = modified.slice(fix.end);
54
- modified = before + fix.replacement + after;
55
- }
56
- // Verify modified source parses successfully [EC-6]
57
- try {
58
- parse(modified);
59
- }
60
- catch {
61
- throw new Error('Fix would create invalid syntax');
62
- }
63
- const applied = validFixes.length;
64
- const skipped = sortedFixes.length - applied;
65
- return {
66
- modified,
67
- applied,
68
- skipped,
69
- skippedReasons,
70
- };
71
- }
72
- // ============================================================
73
- // COLLISION DETECTION
74
- // ============================================================
75
- /**
76
- * Filter fixes to remove overlapping ranges.
77
- * Detects collisions where fix ranges overlap [EC-5].
78
- *
79
- * Strategy: Keep first fix in sorted order (end to start),
80
- * skip subsequent fixes that overlap with any kept fix.
81
- *
82
- * @param sortedFixes - Fixes sorted by end position (descending)
83
- * @returns Valid fixes and reasons for skipped fixes
84
- */
85
- function filterCollisions(sortedFixes) {
86
- const validFixes = [];
87
- const skippedReasons = [];
88
- for (const fix of sortedFixes) {
89
- // Check if this fix overlaps with any already-kept fix
90
- const hasCollision = validFixes.some((kept) => rangesOverlap(fix, kept));
91
- if (hasCollision) {
92
- // Skip this fix due to collision [EC-5]
93
- skippedReasons.push({
94
- code: fix.code,
95
- reason: 'Fix range overlaps with another fix',
96
- });
97
- }
98
- else {
99
- // No collision, keep this fix
100
- validFixes.push(fix);
101
- }
102
- }
103
- return { validFixes, skippedReasons };
104
- }
105
- /**
106
- * Check if two fix ranges overlap.
107
- *
108
- * Ranges overlap if:
109
- * - One starts before the other ends, AND
110
- * - One ends after the other starts
111
- *
112
- * @param a - First fix range
113
- * @param b - Second fix range
114
- * @returns true if ranges overlap
115
- */
116
- function rangesOverlap(a, b) {
117
- return a.start < b.end && a.end > b.start;
118
- }
119
- //# sourceMappingURL=fixer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fixer.js","sourceRoot":"","sources":["../../src/check/fixer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AA+B3C,+DAA+D;AAC/D,kBAAkB;AAClB,+DAA+D;AAE/D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,UAAU,CACxB,MAAc,EACd,WAAyB,EACzB,QAA2B;IAE3B,mCAAmC;IACnC,MAAM,kBAAkB,GAAG,WAAW,CAAC,MAAM,CAC3C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAC1C,CAAC;IAEF,0CAA0C;IAC1C,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO;YACL,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;YACV,cAAc,EAAE,EAAE;SACnB,CAAC;IACJ,CAAC;IAED,0CAA0C;IAC1C,MAAM,KAAK,GAAoB,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5D,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,KAAK,EAAE,CAAC,CAAC,GAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;QAChC,GAAG,EAAE,CAAC,CAAC,GAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM;QAC5B,WAAW,EAAE,CAAC,CAAC,GAAI,CAAC,WAAW;KAChC,CAAC,CAAC,CAAC;IAEJ,qEAAqE;IACrE,yDAAyD;IACzD,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAEhE,wDAAwD;IACxD,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAErE,wBAAwB;IACxB,IAAI,QAAQ,GAAG,MAAM,CAAC;IACtB,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtC,QAAQ,GAAG,MAAM,GAAG,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC;IAC9C,CAAC;IAED,oDAAoD;IACpD,IAAI,CAAC;QACH,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC;IAClC,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC;IAE7C,OAAO;QACL,QAAQ;QACR,OAAO;QACP,OAAO;QACP,cAAc;KACf,CAAC;AACJ,CAAC;AAED,+DAA+D;AAC/D,sBAAsB;AACtB,+DAA+D;AAE/D;;;;;;;;;GASG;AACH,SAAS,gBAAgB,CAAC,WAA4B;IAIpD,MAAM,UAAU,GAAoB,EAAE,CAAC;IACvC,MAAM,cAAc,GAA4C,EAAE,CAAC;IAEnE,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,uDAAuD;QACvD,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QAEzE,IAAI,YAAY,EAAE,CAAC;YACjB,wCAAwC;YACxC,cAAc,CAAC,IAAI,CAAC;gBAClB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,MAAM,EAAE,qCAAqC;aAC9C,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,8BAA8B;YAC9B,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;AACxC,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,aAAa,CACpB,CAAiC,EACjC,CAAiC;IAEjC,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC;AAC5C,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Check Module - Static Analysis for rill
3
- * Public API for rill-check tool.
4
- */
5
- export type { ValidationRule, RuleCategory, Severity, RuleState, Diagnostic, Fix, CheckConfig, ValidationContext, FixContext, } from './types.js';
6
- export { VALIDATION_RULES } from './rules/index.js';
7
- export { loadConfig, createDefaultConfig } from './config.js';
8
- export { validateScript } from './validator.js';
9
- export { applyFixes, type ApplyResult } from './fixer.js';
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/check/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,YAAY,EACV,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,UAAU,EACV,GAAG,EACH,WAAW,EACX,iBAAiB,EACjB,UAAU,GACX,MAAM,YAAY,CAAC;AAKpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAKpD,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAK9D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKhD,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC"}
@@ -1,21 +0,0 @@
1
- /**
2
- * Check Module - Static Analysis for rill
3
- * Public API for rill-check tool.
4
- */
5
- // ============================================================
6
- // RULE REGISTRY
7
- // ============================================================
8
- export { VALIDATION_RULES } from './rules/index.js';
9
- // ============================================================
10
- // CONFIGURATION
11
- // ============================================================
12
- export { loadConfig, createDefaultConfig } from './config.js';
13
- // ============================================================
14
- // VALIDATION
15
- // ============================================================
16
- export { validateScript } from './validator.js';
17
- // ============================================================
18
- // FIX APPLICATION
19
- // ============================================================
20
- export { applyFixes } from './fixer.js';
21
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/check/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiBH,+DAA+D;AAC/D,gBAAgB;AAChB,+DAA+D;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,+DAA+D;AAC/D,gBAAgB;AAChB,+DAA+D;AAC/D,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE9D,+DAA+D;AAC/D,aAAa;AACb,+DAA+D;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,+DAA+D;AAC/D,kBAAkB;AAClB,+DAA+D;AAC/D,OAAO,EAAE,UAAU,EAAoB,MAAM,YAAY,CAAC"}
@@ -1,65 +0,0 @@
1
- /**
2
- * Anti-Pattern Rules
3
- * Enforces best practices from docs/16_conventions.md:411-462.
4
- */
5
- import type { ValidationRule } from '../types.js';
6
- /**
7
- * Warns on variable reassignment patterns.
8
- * Variables lock to their first type, and reassignment suggests confusing
9
- * flow control. Prefer functional style or new variables.
10
- *
11
- * Detection:
12
- * - Capture node (:> $var) where $var already exists in validation context
13
- * - Tracks variables seen during validation pass
14
- *
15
- * Valid alternatives:
16
- * - Use new variable: $result1, $result2
17
- * - Functional chains: value -> op1 -> op2
18
- *
19
- * References:
20
- * - docs/16_conventions.md:413-424
21
- */
22
- export declare const AVOID_REASSIGNMENT: ValidationRule;
23
- /**
24
- * Warns on complex nested boolean conditions.
25
- * Complex conditions with multiple nested operators are hard to read.
26
- * Extract to named variables for clarity.
27
- *
28
- * Detection:
29
- * - Conditional nodes with conditions containing 3+ boolean operators (&&, ||)
30
- * - Nesting depth > 2 for boolean expressions
31
- *
32
- * Valid alternatives:
33
- * - Extract sub-conditions to named variables
34
- * - Split complex checks into multiple smaller checks
35
- *
36
- * References:
37
- * - docs/16_conventions.md:451-461
38
- */
39
- export declare const COMPLEX_CONDITION: ValidationRule;
40
- /**
41
- * Detects attempts to modify outer-scope variables from inside loops.
42
- * This is a common LLM-generated anti-pattern that never works in Rill.
43
- *
44
- * Rill's scoping rules mean that captures inside loop bodies create LOCAL
45
- * variables that don't affect outer scope. This is a fundamental language
46
- * constraint, not a style preference.
47
- *
48
- * WRONG - this pattern NEVER works:
49
- * 0 :> $count
50
- * [1, 2, 3] -> each { $count + 1 :> $count } # creates LOCAL $count
51
- * $count # still 0!
52
- *
53
- * RIGHT - use accumulators:
54
- * [1, 2, 3] -> fold(0) { $@ + 1 } # returns 3
55
- * [1, 2, 3] -> each(0) { $@ + 1 } # returns [1, 2, 3]
56
- *
57
- * This rule catches captures inside loop/collection bodies where the
58
- * variable name matches an outer-scope variable.
59
- *
60
- * References:
61
- * - docs/99_llm-reference.txt (LOOP STATE PATTERNS)
62
- * - docs/03_variables.md (Scope Rules)
63
- */
64
- export declare const LOOP_OUTER_CAPTURE: ValidationRule;
65
- //# sourceMappingURL=anti-patterns.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"anti-patterns.d.ts","sourceRoot":"","sources":["../../../src/check/rules/anti-patterns.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,aAAa,CAAC;AAuBrB;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,kBAAkB,EAAE,cAgDhC,CAAC;AAMF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iBAAiB,EAAE,cA6C/B,CAAC;AAmIF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,kBAAkB,EAAE,cAwFhC,CAAC"}