@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.
Files changed (295) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +187 -0
  3. package/dist/cli.d.ts +11 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +69 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/demo.d.ts +6 -0
  8. package/dist/demo.d.ts.map +1 -0
  9. package/dist/demo.js +121 -0
  10. package/dist/demo.js.map +1 -0
  11. package/dist/index.d.ts +10 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +9 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/lexer/errors.d.ts +9 -0
  16. package/dist/lexer/errors.d.ts.map +1 -0
  17. package/dist/lexer/errors.js +12 -0
  18. package/dist/lexer/errors.js.map +1 -0
  19. package/dist/lexer/helpers.d.ts +14 -0
  20. package/dist/lexer/helpers.d.ts.map +1 -0
  21. package/dist/lexer/helpers.js +30 -0
  22. package/dist/lexer/helpers.js.map +1 -0
  23. package/dist/lexer/index.d.ts +8 -0
  24. package/dist/lexer/index.d.ts.map +1 -0
  25. package/dist/lexer/index.js +8 -0
  26. package/dist/lexer/index.js.map +1 -0
  27. package/dist/lexer/operators.d.ts +11 -0
  28. package/dist/lexer/operators.d.ts.map +1 -0
  29. package/dist/lexer/operators.js +58 -0
  30. package/dist/lexer/operators.js.map +1 -0
  31. package/dist/lexer/readers.d.ts +12 -0
  32. package/dist/lexer/readers.d.ts.map +1 -0
  33. package/dist/lexer/readers.js +144 -0
  34. package/dist/lexer/readers.js.map +1 -0
  35. package/dist/lexer/state.d.ts +18 -0
  36. package/dist/lexer/state.d.ts.map +1 -0
  37. package/dist/lexer/state.js +37 -0
  38. package/dist/lexer/state.js.map +1 -0
  39. package/dist/lexer/tokenizer.d.ts +9 -0
  40. package/dist/lexer/tokenizer.d.ts.map +1 -0
  41. package/dist/lexer/tokenizer.js +100 -0
  42. package/dist/lexer/tokenizer.js.map +1 -0
  43. package/dist/lexer.d.ts +19 -0
  44. package/dist/lexer.d.ts.map +1 -0
  45. package/dist/lexer.js +344 -0
  46. package/dist/lexer.js.map +1 -0
  47. package/dist/parser/arithmetic.d.ts +16 -0
  48. package/dist/parser/arithmetic.d.ts.map +1 -0
  49. package/dist/parser/arithmetic.js +128 -0
  50. package/dist/parser/arithmetic.js.map +1 -0
  51. package/dist/parser/boolean.d.ts +15 -0
  52. package/dist/parser/boolean.d.ts.map +1 -0
  53. package/dist/parser/boolean.js +20 -0
  54. package/dist/parser/boolean.js.map +1 -0
  55. package/dist/parser/control-flow.d.ts +56 -0
  56. package/dist/parser/control-flow.d.ts.map +1 -0
  57. package/dist/parser/control-flow.js +167 -0
  58. package/dist/parser/control-flow.js.map +1 -0
  59. package/dist/parser/expressions.d.ts +23 -0
  60. package/dist/parser/expressions.d.ts.map +1 -0
  61. package/dist/parser/expressions.js +950 -0
  62. package/dist/parser/expressions.js.map +1 -0
  63. package/dist/parser/extraction.d.ts +48 -0
  64. package/dist/parser/extraction.d.ts.map +1 -0
  65. package/dist/parser/extraction.js +279 -0
  66. package/dist/parser/extraction.js.map +1 -0
  67. package/dist/parser/functions.d.ts +20 -0
  68. package/dist/parser/functions.d.ts.map +1 -0
  69. package/dist/parser/functions.js +96 -0
  70. package/dist/parser/functions.js.map +1 -0
  71. package/dist/parser/helpers.d.ts +94 -0
  72. package/dist/parser/helpers.d.ts.map +1 -0
  73. package/dist/parser/helpers.js +225 -0
  74. package/dist/parser/helpers.js.map +1 -0
  75. package/dist/parser/index.d.ts +49 -0
  76. package/dist/parser/index.d.ts.map +1 -0
  77. package/dist/parser/index.js +73 -0
  78. package/dist/parser/index.js.map +1 -0
  79. package/dist/parser/literals.d.ts +37 -0
  80. package/dist/parser/literals.d.ts.map +1 -0
  81. package/dist/parser/literals.js +373 -0
  82. package/dist/parser/literals.js.map +1 -0
  83. package/dist/parser/parser-collect.d.ts +16 -0
  84. package/dist/parser/parser-collect.d.ts.map +1 -0
  85. package/dist/parser/parser-collect.js +125 -0
  86. package/dist/parser/parser-collect.js.map +1 -0
  87. package/dist/parser/parser-control.d.ts +20 -0
  88. package/dist/parser/parser-control.d.ts.map +1 -0
  89. package/dist/parser/parser-control.js +120 -0
  90. package/dist/parser/parser-control.js.map +1 -0
  91. package/dist/parser/parser-expr.d.ts +37 -0
  92. package/dist/parser/parser-expr.d.ts.map +1 -0
  93. package/dist/parser/parser-expr.js +639 -0
  94. package/dist/parser/parser-expr.js.map +1 -0
  95. package/dist/parser/parser-extract.d.ts +17 -0
  96. package/dist/parser/parser-extract.d.ts.map +1 -0
  97. package/dist/parser/parser-extract.js +222 -0
  98. package/dist/parser/parser-extract.js.map +1 -0
  99. package/dist/parser/parser-functions.d.ts +21 -0
  100. package/dist/parser/parser-functions.d.ts.map +1 -0
  101. package/dist/parser/parser-functions.js +155 -0
  102. package/dist/parser/parser-functions.js.map +1 -0
  103. package/dist/parser/parser-literals.d.ts +22 -0
  104. package/dist/parser/parser-literals.d.ts.map +1 -0
  105. package/dist/parser/parser-literals.js +288 -0
  106. package/dist/parser/parser-literals.js.map +1 -0
  107. package/dist/parser/parser-script.d.ts +21 -0
  108. package/dist/parser/parser-script.d.ts.map +1 -0
  109. package/dist/parser/parser-script.js +174 -0
  110. package/dist/parser/parser-script.js.map +1 -0
  111. package/dist/parser/parser-variables.d.ts +20 -0
  112. package/dist/parser/parser-variables.d.ts.map +1 -0
  113. package/dist/parser/parser-variables.js +146 -0
  114. package/dist/parser/parser-variables.js.map +1 -0
  115. package/dist/parser/parser.d.ts +49 -0
  116. package/dist/parser/parser.d.ts.map +1 -0
  117. package/dist/parser/parser.js +54 -0
  118. package/dist/parser/parser.js.map +1 -0
  119. package/dist/parser/script.d.ts +14 -0
  120. package/dist/parser/script.d.ts.map +1 -0
  121. package/dist/parser/script.js +196 -0
  122. package/dist/parser/script.js.map +1 -0
  123. package/dist/parser/state.d.ts +40 -0
  124. package/dist/parser/state.d.ts.map +1 -0
  125. package/dist/parser/state.js +129 -0
  126. package/dist/parser/state.js.map +1 -0
  127. package/dist/parser/variables.d.ts +10 -0
  128. package/dist/parser/variables.d.ts.map +1 -0
  129. package/dist/parser/variables.js +215 -0
  130. package/dist/parser/variables.js.map +1 -0
  131. package/dist/runtime/ast-equals.d.ts +13 -0
  132. package/dist/runtime/ast-equals.d.ts.map +1 -0
  133. package/dist/runtime/ast-equals.js +447 -0
  134. package/dist/runtime/ast-equals.js.map +1 -0
  135. package/dist/runtime/builtins.d.ts +13 -0
  136. package/dist/runtime/builtins.d.ts.map +1 -0
  137. package/dist/runtime/builtins.js +180 -0
  138. package/dist/runtime/builtins.js.map +1 -0
  139. package/dist/runtime/callable.d.ts +88 -0
  140. package/dist/runtime/callable.d.ts.map +1 -0
  141. package/dist/runtime/callable.js +98 -0
  142. package/dist/runtime/callable.js.map +1 -0
  143. package/dist/runtime/context.d.ts +13 -0
  144. package/dist/runtime/context.d.ts.map +1 -0
  145. package/dist/runtime/context.js +73 -0
  146. package/dist/runtime/context.js.map +1 -0
  147. package/dist/runtime/core/callable.d.ts +171 -0
  148. package/dist/runtime/core/callable.d.ts.map +1 -0
  149. package/dist/runtime/core/callable.js +246 -0
  150. package/dist/runtime/core/callable.js.map +1 -0
  151. package/dist/runtime/core/context.d.ts +29 -0
  152. package/dist/runtime/core/context.d.ts.map +1 -0
  153. package/dist/runtime/core/context.js +154 -0
  154. package/dist/runtime/core/context.js.map +1 -0
  155. package/dist/runtime/core/equals.d.ts +9 -0
  156. package/dist/runtime/core/equals.d.ts.map +1 -0
  157. package/dist/runtime/core/equals.js +381 -0
  158. package/dist/runtime/core/equals.js.map +1 -0
  159. package/dist/runtime/core/eval/base.d.ts +65 -0
  160. package/dist/runtime/core/eval/base.d.ts.map +1 -0
  161. package/dist/runtime/core/eval/base.js +112 -0
  162. package/dist/runtime/core/eval/base.js.map +1 -0
  163. package/dist/runtime/core/eval/evaluator.d.ts +47 -0
  164. package/dist/runtime/core/eval/evaluator.d.ts.map +1 -0
  165. package/dist/runtime/core/eval/evaluator.js +73 -0
  166. package/dist/runtime/core/eval/evaluator.js.map +1 -0
  167. package/dist/runtime/core/eval/index.d.ts +57 -0
  168. package/dist/runtime/core/eval/index.d.ts.map +1 -0
  169. package/dist/runtime/core/eval/index.js +95 -0
  170. package/dist/runtime/core/eval/index.js.map +1 -0
  171. package/dist/runtime/core/eval/mixins/annotations.d.ts +19 -0
  172. package/dist/runtime/core/eval/mixins/annotations.d.ts.map +1 -0
  173. package/dist/runtime/core/eval/mixins/annotations.js +146 -0
  174. package/dist/runtime/core/eval/mixins/annotations.js.map +1 -0
  175. package/dist/runtime/core/eval/mixins/closures.d.ts +49 -0
  176. package/dist/runtime/core/eval/mixins/closures.d.ts.map +1 -0
  177. package/dist/runtime/core/eval/mixins/closures.js +479 -0
  178. package/dist/runtime/core/eval/mixins/closures.js.map +1 -0
  179. package/dist/runtime/core/eval/mixins/collections.d.ts +24 -0
  180. package/dist/runtime/core/eval/mixins/collections.d.ts.map +1 -0
  181. package/dist/runtime/core/eval/mixins/collections.js +466 -0
  182. package/dist/runtime/core/eval/mixins/collections.js.map +1 -0
  183. package/dist/runtime/core/eval/mixins/control-flow.d.ts +27 -0
  184. package/dist/runtime/core/eval/mixins/control-flow.d.ts.map +1 -0
  185. package/dist/runtime/core/eval/mixins/control-flow.js +369 -0
  186. package/dist/runtime/core/eval/mixins/control-flow.js.map +1 -0
  187. package/dist/runtime/core/eval/mixins/core.d.ts +24 -0
  188. package/dist/runtime/core/eval/mixins/core.d.ts.map +1 -0
  189. package/dist/runtime/core/eval/mixins/core.js +335 -0
  190. package/dist/runtime/core/eval/mixins/core.js.map +1 -0
  191. package/dist/runtime/core/eval/mixins/expressions.d.ts +19 -0
  192. package/dist/runtime/core/eval/mixins/expressions.d.ts.map +1 -0
  193. package/dist/runtime/core/eval/mixins/expressions.js +202 -0
  194. package/dist/runtime/core/eval/mixins/expressions.js.map +1 -0
  195. package/dist/runtime/core/eval/mixins/extraction.d.ts +10 -0
  196. package/dist/runtime/core/eval/mixins/extraction.d.ts.map +1 -0
  197. package/dist/runtime/core/eval/mixins/extraction.js +250 -0
  198. package/dist/runtime/core/eval/mixins/extraction.js.map +1 -0
  199. package/dist/runtime/core/eval/mixins/literals.d.ts +23 -0
  200. package/dist/runtime/core/eval/mixins/literals.d.ts.map +1 -0
  201. package/dist/runtime/core/eval/mixins/literals.js +180 -0
  202. package/dist/runtime/core/eval/mixins/literals.js.map +1 -0
  203. package/dist/runtime/core/eval/mixins/types.d.ts +20 -0
  204. package/dist/runtime/core/eval/mixins/types.d.ts.map +1 -0
  205. package/dist/runtime/core/eval/mixins/types.js +109 -0
  206. package/dist/runtime/core/eval/mixins/types.js.map +1 -0
  207. package/dist/runtime/core/eval/mixins/variables.d.ts +34 -0
  208. package/dist/runtime/core/eval/mixins/variables.d.ts.map +1 -0
  209. package/dist/runtime/core/eval/mixins/variables.js +247 -0
  210. package/dist/runtime/core/eval/mixins/variables.js.map +1 -0
  211. package/dist/runtime/core/eval/types.d.ts +41 -0
  212. package/dist/runtime/core/eval/types.d.ts.map +1 -0
  213. package/dist/runtime/core/eval/types.js +10 -0
  214. package/dist/runtime/core/eval/types.js.map +1 -0
  215. package/dist/runtime/core/evaluate.d.ts +42 -0
  216. package/dist/runtime/core/evaluate.d.ts.map +1 -0
  217. package/dist/runtime/core/evaluate.debug.js +1251 -0
  218. package/dist/runtime/core/evaluate.js +1913 -0
  219. package/dist/runtime/core/evaluate.js.map +1 -0
  220. package/dist/runtime/core/execute.d.ts +26 -0
  221. package/dist/runtime/core/execute.d.ts.map +1 -0
  222. package/dist/runtime/core/execute.js +177 -0
  223. package/dist/runtime/core/execute.js.map +1 -0
  224. package/dist/runtime/core/signals.d.ts +19 -0
  225. package/dist/runtime/core/signals.d.ts.map +1 -0
  226. package/dist/runtime/core/signals.js +26 -0
  227. package/dist/runtime/core/signals.js.map +1 -0
  228. package/dist/runtime/core/types.d.ts +177 -0
  229. package/dist/runtime/core/types.d.ts.map +1 -0
  230. package/dist/runtime/core/types.js +50 -0
  231. package/dist/runtime/core/types.js.map +1 -0
  232. package/dist/runtime/core/values.d.ts +66 -0
  233. package/dist/runtime/core/values.d.ts.map +1 -0
  234. package/dist/runtime/core/values.js +240 -0
  235. package/dist/runtime/core/values.js.map +1 -0
  236. package/dist/runtime/evaluate.d.ts +32 -0
  237. package/dist/runtime/evaluate.d.ts.map +1 -0
  238. package/dist/runtime/evaluate.js +1111 -0
  239. package/dist/runtime/evaluate.js.map +1 -0
  240. package/dist/runtime/execute.d.ts +26 -0
  241. package/dist/runtime/execute.d.ts.map +1 -0
  242. package/dist/runtime/execute.js +121 -0
  243. package/dist/runtime/execute.js.map +1 -0
  244. package/dist/runtime/ext/builtins.d.ts +16 -0
  245. package/dist/runtime/ext/builtins.d.ts.map +1 -0
  246. package/dist/runtime/ext/builtins.js +528 -0
  247. package/dist/runtime/ext/builtins.js.map +1 -0
  248. package/dist/runtime/ext/content-parser.d.ts +83 -0
  249. package/dist/runtime/ext/content-parser.d.ts.map +1 -0
  250. package/dist/runtime/ext/content-parser.js +536 -0
  251. package/dist/runtime/ext/content-parser.js.map +1 -0
  252. package/dist/runtime/index.d.ts +28 -0
  253. package/dist/runtime/index.d.ts.map +1 -0
  254. package/dist/runtime/index.js +34 -0
  255. package/dist/runtime/index.js.map +1 -0
  256. package/dist/runtime/signals.d.ts +19 -0
  257. package/dist/runtime/signals.d.ts.map +1 -0
  258. package/dist/runtime/signals.js +26 -0
  259. package/dist/runtime/signals.js.map +1 -0
  260. package/dist/runtime/types.d.ts +169 -0
  261. package/dist/runtime/types.d.ts.map +1 -0
  262. package/dist/runtime/types.js +50 -0
  263. package/dist/runtime/types.js.map +1 -0
  264. package/dist/runtime/values.d.ts +50 -0
  265. package/dist/runtime/values.d.ts.map +1 -0
  266. package/dist/runtime/values.js +209 -0
  267. package/dist/runtime/values.js.map +1 -0
  268. package/dist/runtime.d.ts +254 -0
  269. package/dist/runtime.d.ts.map +1 -0
  270. package/dist/runtime.js +2014 -0
  271. package/dist/runtime.js.map +1 -0
  272. package/dist/types.d.ts +752 -0
  273. package/dist/types.d.ts.map +1 -0
  274. package/dist/types.js +189 -0
  275. package/dist/types.js.map +1 -0
  276. package/docs/00_INDEX.md +65 -0
  277. package/docs/01_guide.md +390 -0
  278. package/docs/02_types.md +399 -0
  279. package/docs/03_variables.md +314 -0
  280. package/docs/04_operators.md +551 -0
  281. package/docs/05_control-flow.md +350 -0
  282. package/docs/06_closures.md +353 -0
  283. package/docs/07_collections.md +686 -0
  284. package/docs/08_iterators.md +330 -0
  285. package/docs/09_strings.md +205 -0
  286. package/docs/10_parsing.md +366 -0
  287. package/docs/11_reference.md +350 -0
  288. package/docs/12_examples.md +771 -0
  289. package/docs/13_modules.md +519 -0
  290. package/docs/14_host-integration.md +826 -0
  291. package/docs/15_grammar.ebnf +693 -0
  292. package/docs/16_conventions.md +696 -0
  293. package/docs/99_llm-reference.txt +300 -0
  294. package/docs/assets/logo.png +0 -0
  295. package/package.json +70 -0
@@ -0,0 +1,536 @@
1
+ /**
2
+ * Content Parser
3
+ *
4
+ * Auto-detects and extracts structured content from LLM responses.
5
+ * Handles markdown code blocks, raw JSON, XML tags, YAML frontmatter,
6
+ * checklists, and other common patterns.
7
+ */
8
+ // ============================================================
9
+ // DETECTION PATTERNS
10
+ // ============================================================
11
+ const PATTERNS = {
12
+ // Frontmatter: starts with ---\n and ends with ---\n
13
+ frontmatter: /^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/,
14
+ // Fenced code block: ```lang\ncontent\n```
15
+ fence: /```(\w*)\r?\n([\s\S]*?)```/,
16
+ fenceAll: /```(\w*)\r?\n([\s\S]*?)```/g,
17
+ // XML tags: <tag>content</tag>
18
+ xmlTag: /<(\w+)(?:\s[^>]*)?>[\s\S]*?<\/\1>/,
19
+ xmlTagNamed: (tag) => new RegExp(`<${tag}(?:\\s[^>]*)?>([\\s\\S]*?)</${tag}>`),
20
+ xmlTagAll: /<(\w+)(?:\s[^>]*)?>[\s\S]*?<\/\1>/g,
21
+ // JSON object or array (with possible preamble)
22
+ jsonObject: /\{[\s\S]*\}/,
23
+ jsonArray: /\[[\s\S]*\]/,
24
+ // YAML-like key: value patterns
25
+ yaml: /^\w+:\s+.+$/m,
26
+ // Checklist items
27
+ checklist: /^[-*]\s*\[([ xX])\]\s*(.+)$/gm,
28
+ checklistSingle: /^[-*]\s*\[([ xX])\]\s*(.+)$/m,
29
+ };
30
+ /**
31
+ * Attempt to repair common JSON formatting errors.
32
+ */
33
+ function repairJson(text) {
34
+ const repairs = [];
35
+ let result = text;
36
+ // Remove trailing commas before } or ]
37
+ const trailingComma = /,(\s*[}\]])/g;
38
+ if (trailingComma.test(result)) {
39
+ result = result.replace(trailingComma, '$1');
40
+ repairs.push('removed trailing commas');
41
+ }
42
+ // Convert single quotes to double quotes (for string values)
43
+ // This is tricky - only convert quotes that look like string delimiters
44
+ const singleQuotePattern = /:\s*'([^']*?)'/g;
45
+ if (singleQuotePattern.test(result)) {
46
+ result = result.replace(singleQuotePattern, ': "$1"');
47
+ repairs.push('converted single quotes to double quotes');
48
+ }
49
+ // Quote unquoted keys
50
+ const unquotedKey = /([{,]\s*)(\w+)(\s*:)/g;
51
+ const needsQuoting = unquotedKey.test(result);
52
+ if (needsQuoting) {
53
+ result = result.replace(unquotedKey, '$1"$2"$3');
54
+ repairs.push('quoted unquoted keys');
55
+ }
56
+ // Try to close unclosed braces/brackets
57
+ let openBraces = 0;
58
+ let openBrackets = 0;
59
+ for (const char of result) {
60
+ if (char === '{')
61
+ openBraces++;
62
+ if (char === '}')
63
+ openBraces--;
64
+ if (char === '[')
65
+ openBrackets++;
66
+ if (char === ']')
67
+ openBrackets--;
68
+ }
69
+ if (openBraces > 0) {
70
+ result += '}'.repeat(openBraces);
71
+ repairs.push(`closed ${openBraces} unclosed brace(s)`);
72
+ }
73
+ if (openBrackets > 0) {
74
+ result += ']'.repeat(openBrackets);
75
+ repairs.push(`closed ${openBrackets} unclosed bracket(s)`);
76
+ }
77
+ return { text: result, repairs };
78
+ }
79
+ /**
80
+ * Extract and parse frontmatter from document.
81
+ */
82
+ function extractFrontmatter(text, _options) {
83
+ const match = PATTERNS.frontmatter.exec(text);
84
+ if (!match)
85
+ return null;
86
+ const [, yamlContent, body] = match;
87
+ if (!yamlContent)
88
+ return null;
89
+ try {
90
+ // Parse YAML manually (simple key: value format)
91
+ const data = parseSimpleYaml(yamlContent);
92
+ return {
93
+ raw: yamlContent,
94
+ parsed: { meta: data, body: body?.trim() ?? '' },
95
+ confidence: 0.95,
96
+ repaired: false,
97
+ repairs: [],
98
+ };
99
+ }
100
+ catch {
101
+ return null;
102
+ }
103
+ }
104
+ /**
105
+ * Extract content from fenced code blocks.
106
+ */
107
+ function extractFence(text, options) {
108
+ const match = PATTERNS.fence.exec(text);
109
+ if (!match)
110
+ return null;
111
+ const [, lang, content] = match;
112
+ if (!content)
113
+ return null;
114
+ const trimmed = content.trim();
115
+ const langLower = (lang ?? '').toLowerCase();
116
+ // If JSON fence, parse as JSON
117
+ if (langLower === 'json') {
118
+ const jsonResult = parseJsonWithRepair(trimmed, !options.strict);
119
+ if (jsonResult) {
120
+ return {
121
+ raw: trimmed,
122
+ parsed: jsonResult.data,
123
+ confidence: jsonResult.repaired ? 0.85 : 0.98,
124
+ repaired: jsonResult.repaired,
125
+ repairs: jsonResult.repairs,
126
+ };
127
+ }
128
+ }
129
+ // If YAML fence, parse as YAML
130
+ if (langLower === 'yaml' || langLower === 'yml') {
131
+ try {
132
+ const data = parseSimpleYaml(trimmed);
133
+ return {
134
+ raw: trimmed,
135
+ parsed: data,
136
+ confidence: 0.95,
137
+ repaired: false,
138
+ repairs: [],
139
+ };
140
+ }
141
+ catch {
142
+ // Fall through to return raw content
143
+ }
144
+ }
145
+ // Return raw content for other languages
146
+ return {
147
+ raw: trimmed,
148
+ parsed: trimmed,
149
+ confidence: 0.9,
150
+ repaired: false,
151
+ repairs: [],
152
+ };
153
+ }
154
+ /**
155
+ * Extract content from XML tags.
156
+ */
157
+ function extractXml(text, options) {
158
+ // If a specific tag is requested, extract just that
159
+ if (options.tag) {
160
+ const pattern = PATTERNS.xmlTagNamed(options.tag);
161
+ const match = pattern.exec(text);
162
+ if (!match || !match[1])
163
+ return null;
164
+ return {
165
+ raw: match[1].trim(),
166
+ parsed: match[1].trim(),
167
+ confidence: 0.95,
168
+ repaired: false,
169
+ repairs: [],
170
+ };
171
+ }
172
+ // Find all XML tags and extract their content
173
+ const matches = text.match(PATTERNS.xmlTagAll);
174
+ if (!matches || matches.length === 0)
175
+ return null;
176
+ // Parse into a dict of tag -> content
177
+ const data = {};
178
+ let rawParts = [];
179
+ for (const fullMatch of matches) {
180
+ const tagMatch = /<(\w+)(?:\s[^>]*)?>/.exec(fullMatch);
181
+ if (!tagMatch || !tagMatch[1])
182
+ continue;
183
+ const tagName = tagMatch[1];
184
+ const contentPattern = PATTERNS.xmlTagNamed(tagName);
185
+ const contentMatch = contentPattern.exec(fullMatch);
186
+ if (contentMatch && contentMatch[1]) {
187
+ const content = contentMatch[1].trim();
188
+ data[tagName] = content;
189
+ rawParts.push(fullMatch);
190
+ }
191
+ }
192
+ if (Object.keys(data).length === 0)
193
+ return null;
194
+ return {
195
+ raw: rawParts.join('\n'),
196
+ parsed: data,
197
+ confidence: 0.92,
198
+ repaired: false,
199
+ repairs: [],
200
+ };
201
+ }
202
+ /**
203
+ * Extract raw JSON from text (handling preamble/postamble).
204
+ */
205
+ function extractJson(text, options) {
206
+ // Try to find JSON object
207
+ let match = PATTERNS.jsonObject.exec(text);
208
+ if (!match) {
209
+ // Try array
210
+ match = PATTERNS.jsonArray.exec(text);
211
+ }
212
+ if (!match)
213
+ return null;
214
+ const jsonText = match[0];
215
+ const result = parseJsonWithRepair(jsonText, !options.strict);
216
+ if (!result)
217
+ return null;
218
+ // Lower confidence if JSON was found with preamble/postamble
219
+ const hasPreamble = text.indexOf(jsonText) > 0;
220
+ const hasPostamble = text.indexOf(jsonText) + jsonText.length < text.length;
221
+ let confidence = result.repaired ? 0.8 : 0.9;
222
+ if (hasPreamble || hasPostamble) {
223
+ confidence -= 0.05;
224
+ }
225
+ return {
226
+ raw: jsonText,
227
+ parsed: result.data,
228
+ confidence,
229
+ repaired: result.repaired,
230
+ repairs: result.repairs,
231
+ };
232
+ }
233
+ /**
234
+ * Extract checklist items.
235
+ */
236
+ function extractChecklist(text, _options) {
237
+ const items = [];
238
+ const rawLines = [];
239
+ let match;
240
+ const pattern = new RegExp(PATTERNS.checklist.source, 'gm');
241
+ while ((match = pattern.exec(text)) !== null) {
242
+ const checked = match[1]?.toLowerCase() === 'x';
243
+ const content = match[2]?.trim() ?? '';
244
+ items.push([checked, content]);
245
+ rawLines.push(match[0]);
246
+ }
247
+ if (items.length === 0)
248
+ return null;
249
+ return {
250
+ raw: rawLines.join('\n'),
251
+ parsed: items,
252
+ confidence: 0.92,
253
+ repaired: false,
254
+ repairs: [],
255
+ };
256
+ }
257
+ /**
258
+ * Extract YAML content (without frontmatter delimiters).
259
+ */
260
+ function extractYaml(text, _options) {
261
+ // Only try if it looks YAML-ish and not like other formats
262
+ if (!PATTERNS.yaml.test(text))
263
+ return null;
264
+ if (PATTERNS.jsonObject.test(text))
265
+ return null;
266
+ if (PATTERNS.xmlTag.test(text))
267
+ return null;
268
+ // Don't match YAML if text contains checklist items
269
+ if (PATTERNS.checklistSingle.test(text))
270
+ return null;
271
+ // Require multiple key: value lines to be confident it's YAML
272
+ const yamlLines = text
273
+ .split('\n')
274
+ .filter((line) => /^\w+:\s+.+$/.test(line.trim()));
275
+ if (yamlLines.length < 2)
276
+ return null;
277
+ try {
278
+ const data = parseSimpleYaml(text.trim());
279
+ return {
280
+ raw: text.trim(),
281
+ parsed: data,
282
+ confidence: 0.75, // Lower confidence for bare YAML
283
+ repaired: false,
284
+ repairs: [],
285
+ };
286
+ }
287
+ catch {
288
+ return null;
289
+ }
290
+ }
291
+ /**
292
+ * Parse JSON with optional repair.
293
+ */
294
+ function parseJsonWithRepair(text, attemptRepair) {
295
+ // Try parsing as-is
296
+ try {
297
+ const data = JSON.parse(text);
298
+ return { data, repaired: false, repairs: [] };
299
+ }
300
+ catch {
301
+ if (!attemptRepair)
302
+ return null;
303
+ }
304
+ // Attempt repair
305
+ const { text: repairedText, repairs } = repairJson(text);
306
+ if (repairs.length === 0)
307
+ return null;
308
+ try {
309
+ const data = JSON.parse(repairedText);
310
+ return { data, repaired: true, repairs };
311
+ }
312
+ catch {
313
+ return null;
314
+ }
315
+ }
316
+ /**
317
+ * Simple YAML parser for key: value format.
318
+ * Does not handle full YAML spec - just common LLM output patterns.
319
+ */
320
+ function parseSimpleYaml(text) {
321
+ const result = {};
322
+ const lines = text.split('\n');
323
+ for (const line of lines) {
324
+ const trimmed = line.trim();
325
+ if (!trimmed || trimmed.startsWith('#'))
326
+ continue;
327
+ const colonIdx = trimmed.indexOf(':');
328
+ if (colonIdx === -1)
329
+ continue;
330
+ const key = trimmed.slice(0, colonIdx).trim();
331
+ let value = trimmed.slice(colonIdx + 1).trim();
332
+ // Parse value type
333
+ if (value === 'true')
334
+ value = true;
335
+ else if (value === 'false')
336
+ value = false;
337
+ else if (value === 'null' || value === '~')
338
+ value = null;
339
+ else if (/^-?\d+$/.test(value))
340
+ value = parseInt(value, 10);
341
+ else if (/^-?\d+\.\d+$/.test(value))
342
+ value = parseFloat(value);
343
+ else if (value.startsWith('[') && value.endsWith(']')) {
344
+ // Simple array: [a, b, c]
345
+ try {
346
+ value = JSON.parse(value);
347
+ }
348
+ catch {
349
+ // Keep as string if JSON parse fails
350
+ }
351
+ }
352
+ else if (value.startsWith('"') && value.endsWith('"')) {
353
+ value = value.slice(1, -1);
354
+ }
355
+ else if (value.startsWith("'") && value.endsWith("'")) {
356
+ value = value.slice(1, -1);
357
+ }
358
+ result[key] = value;
359
+ }
360
+ return result;
361
+ }
362
+ // ============================================================
363
+ // MAIN SMART PARSE FUNCTION
364
+ // ============================================================
365
+ /**
366
+ * Auto-detect and parse structured content from LLM output.
367
+ *
368
+ * Detection priority:
369
+ * 1. Frontmatter (---\n...\n---\n)
370
+ * 2. Fenced JSON/YAML (```json or ```yaml)
371
+ * 3. Other fenced blocks (```lang)
372
+ * 4. XML tags (<tag>...</tag>)
373
+ * 5. Raw JSON ({...} or [...])
374
+ * 6. Raw YAML (key: value patterns)
375
+ * 7. Checklist (- [ ] or - [x])
376
+ * 8. Plain text (fallback)
377
+ */
378
+ export function parse(text, options = {}) {
379
+ const trimmed = text.trim();
380
+ // Detection order (most specific first)
381
+ const detectors = [
382
+ { type: 'frontmatter', extract: extractFrontmatter },
383
+ { type: 'fence', extract: extractFence },
384
+ { type: 'xml', extract: extractXml },
385
+ { type: 'json', extract: extractJson },
386
+ { type: 'yaml', extract: extractYaml },
387
+ { type: 'checklist', extract: extractChecklist },
388
+ ];
389
+ // If a format is preferred, try it first
390
+ if (options.prefer) {
391
+ const preferred = detectors.find((d) => d.type === options.prefer);
392
+ if (preferred) {
393
+ const result = preferred.extract(trimmed, options);
394
+ if (result && (!options.strict || result.confidence >= 0.9)) {
395
+ return {
396
+ type: preferred.type === 'fence'
397
+ ? detectFenceType(trimmed)
398
+ : preferred.type,
399
+ data: result.parsed,
400
+ raw: result.raw,
401
+ confidence: result.confidence,
402
+ repaired: result.repaired,
403
+ repairs: result.repairs,
404
+ };
405
+ }
406
+ }
407
+ }
408
+ // Try each detector in order
409
+ for (const { type, extract } of detectors) {
410
+ const result = extract(trimmed, options);
411
+ if (result) {
412
+ // In strict mode, require higher confidence
413
+ if (options.strict && result.confidence < 0.9)
414
+ continue;
415
+ return {
416
+ type: type === 'fence' ? detectFenceType(trimmed) : type,
417
+ data: result.parsed,
418
+ raw: result.raw,
419
+ confidence: result.confidence,
420
+ repaired: result.repaired,
421
+ repairs: result.repairs,
422
+ };
423
+ }
424
+ }
425
+ // Fallback: return as plain text
426
+ return {
427
+ type: 'text',
428
+ data: trimmed,
429
+ raw: trimmed,
430
+ confidence: 1.0,
431
+ repaired: false,
432
+ repairs: [],
433
+ };
434
+ }
435
+ /**
436
+ * Detect the actual content type of a fenced block.
437
+ */
438
+ function detectFenceType(text) {
439
+ const match = PATTERNS.fence.exec(text);
440
+ if (!match)
441
+ return 'fence';
442
+ const lang = (match[1] ?? '').toLowerCase();
443
+ if (lang === 'json')
444
+ return 'json';
445
+ if (lang === 'yaml' || lang === 'yml')
446
+ return 'yaml';
447
+ if (lang === 'xml')
448
+ return 'xml';
449
+ return 'fence';
450
+ }
451
+ // ============================================================
452
+ // CONVENIENCE EXTRACTORS
453
+ // ============================================================
454
+ /**
455
+ * Extract content from a specific fenced code block type.
456
+ */
457
+ export function extractFenceByLang(text, lang) {
458
+ const pattern = new RegExp(`\`\`\`${lang}\\r?\\n([\\s\\S]*?)\`\`\``, 'i');
459
+ const match = pattern.exec(text);
460
+ return match ? (match[1]?.trim() ?? null) : null;
461
+ }
462
+ /**
463
+ * Extract all fenced code blocks with their language tags.
464
+ */
465
+ export function extractAllFences(text) {
466
+ const results = [];
467
+ let match;
468
+ const pattern = new RegExp(PATTERNS.fenceAll.source, 'g');
469
+ while ((match = pattern.exec(text)) !== null) {
470
+ results.push({
471
+ lang: match[1] ?? '',
472
+ content: match[2]?.trim() ?? '',
473
+ });
474
+ }
475
+ return results;
476
+ }
477
+ /**
478
+ * Extract content from a named XML tag.
479
+ */
480
+ export function extractXmlTag(text, tagName) {
481
+ const pattern = PATTERNS.xmlTagNamed(tagName);
482
+ const match = pattern.exec(text);
483
+ return match ? (match[1]?.trim() ?? null) : null;
484
+ }
485
+ /**
486
+ * Extract all instances of a named XML tag.
487
+ */
488
+ export function extractAllXmlTags(text, tagName) {
489
+ const pattern = new RegExp(`<${tagName}(?:\\s[^>]*)?>([\\s\\S]*?)</${tagName}>`, 'g');
490
+ const results = [];
491
+ let match;
492
+ while ((match = pattern.exec(text)) !== null) {
493
+ if (match[1]) {
494
+ results.push(match[1].trim());
495
+ }
496
+ }
497
+ return results;
498
+ }
499
+ /**
500
+ * Parse JSON with automatic repair of common errors.
501
+ */
502
+ export function parseJson(text, repair = true) {
503
+ const result = parseJsonWithRepair(text.trim(), repair);
504
+ return result ? result.data : null;
505
+ }
506
+ /**
507
+ * Extract frontmatter and body from a document.
508
+ */
509
+ export function parseFrontmatter(text) {
510
+ const match = PATTERNS.frontmatter.exec(text);
511
+ if (!match || !match[1])
512
+ return null;
513
+ try {
514
+ const meta = parseSimpleYaml(match[1]);
515
+ return { meta, body: (match[2] ?? '').trim() };
516
+ }
517
+ catch {
518
+ return null;
519
+ }
520
+ }
521
+ /**
522
+ * Parse checklist items.
523
+ */
524
+ export function parseChecklist(text) {
525
+ const items = [];
526
+ let match;
527
+ const pattern = new RegExp(PATTERNS.checklist.source, 'gm');
528
+ while ((match = pattern.exec(text)) !== null) {
529
+ items.push({
530
+ checked: match[1]?.toLowerCase() === 'x',
531
+ text: match[2]?.trim() ?? '',
532
+ });
533
+ }
534
+ return items;
535
+ }
536
+ //# sourceMappingURL=content-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-parser.js","sourceRoot":"","sources":["../../../src/runtime/ext/content-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Rill Runtime
3
+ *
4
+ * Public API for executing Rill scripts.
5
+ *
6
+ * Module Structure:
7
+ * - core/: Essential execution engine
8
+ * - types.ts: Public types (RuntimeContext, RuntimeOptions, etc.)
9
+ * - callable.ts: Callable types and type guards
10
+ * - values.ts: RillValue, RillTuple, and value utilities
11
+ * - signals.ts: Control flow signals (BreakSignal, ReturnSignal)
12
+ * - context.ts: Runtime context factory
13
+ * - execute.ts: Script execution (execute, createStepper)
14
+ * - evaluate.ts: AST evaluation (internal)
15
+ * - equals.ts: AST structural equality (internal)
16
+ * - ext/: Self-contained extensions
17
+ * - builtins.ts: Built-in functions and methods
18
+ * - content-parser.ts: LLM output parsing utilities
19
+ */
20
+ export type { CaptureEvent, ErrorEvent, ExecutionResult, ExecutionStepper, HostCallEvent, FunctionReturnEvent, ObservabilityCallbacks, RuntimeCallbacks, RuntimeContext, RuntimeOptions, StepEndEvent, StepResult, StepStartEvent, } from './core/types.js';
21
+ export type { ApplicationCallable, CallableFn, HostFunctionDefinition, HostFunctionParam, RillCallable, RuntimeCallable, ScriptCallable, } from './core/callable.js';
22
+ export { callable, isApplicationCallable, isCallable, isDict, isRuntimeCallable, isScriptCallable, validateHostFunctionArgs, } from './core/callable.js';
23
+ export type { RillTuple, RillValue } from './core/values.js';
24
+ export { isTuple, isReservedMethod, RESERVED_DICT_METHODS, } from './core/values.js';
25
+ export { BreakSignal, ReturnSignal } from './core/signals.js';
26
+ export { createRuntimeContext } from './core/context.js';
27
+ export { createStepper, execute } from './core/execute.js';
28
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAMH,YAAY,EACV,YAAY,EACZ,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,UAAU,EACV,cAAc,GACf,MAAM,iBAAiB,CAAC;AAMzB,YAAY,EACV,mBAAmB,EACnB,UAAU,EACV,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,QAAQ,EACR,qBAAqB,EACrB,UAAU,EACV,MAAM,EACN,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAM5B,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EACL,OAAO,EACP,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAM9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAMzD,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Rill Runtime
3
+ *
4
+ * Public API for executing Rill scripts.
5
+ *
6
+ * Module Structure:
7
+ * - core/: Essential execution engine
8
+ * - types.ts: Public types (RuntimeContext, RuntimeOptions, etc.)
9
+ * - callable.ts: Callable types and type guards
10
+ * - values.ts: RillValue, RillTuple, and value utilities
11
+ * - signals.ts: Control flow signals (BreakSignal, ReturnSignal)
12
+ * - context.ts: Runtime context factory
13
+ * - execute.ts: Script execution (execute, createStepper)
14
+ * - evaluate.ts: AST evaluation (internal)
15
+ * - equals.ts: AST structural equality (internal)
16
+ * - ext/: Self-contained extensions
17
+ * - builtins.ts: Built-in functions and methods
18
+ * - content-parser.ts: LLM output parsing utilities
19
+ */
20
+ export { callable, isApplicationCallable, isCallable, isDict, isRuntimeCallable, isScriptCallable, validateHostFunctionArgs, } from './core/callable.js';
21
+ export { isTuple, isReservedMethod, RESERVED_DICT_METHODS, } from './core/values.js';
22
+ // ============================================================
23
+ // CONTROL FLOW SIGNALS
24
+ // ============================================================
25
+ export { BreakSignal, ReturnSignal } from './core/signals.js';
26
+ // ============================================================
27
+ // CONTEXT FACTORY
28
+ // ============================================================
29
+ export { createRuntimeContext } from './core/context.js';
30
+ // ============================================================
31
+ // SCRIPT EXECUTION
32
+ // ============================================================
33
+ export { createStepper, execute } from './core/execute.js';
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAoCH,OAAO,EACL,QAAQ,EACR,qBAAqB,EACrB,UAAU,EACV,MAAM,EACN,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAQ5B,OAAO,EACL,OAAO,EACP,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAE1B,+DAA+D;AAC/D,uBAAuB;AACvB,+DAA+D;AAE/D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE9D,+DAA+D;AAC/D,kBAAkB;AAClB,+DAA+D;AAE/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,+DAA+D;AAC/D,mBAAmB;AACnB,+DAA+D;AAE/D,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Control Flow Signals
3
+ *
4
+ * Signals thrown to unwind the call stack for control flow.
5
+ * These are part of the public API for host applications that
6
+ * need to catch and handle control flow.
7
+ */
8
+ import type { RillValue } from './values.js';
9
+ /** Signal thrown by `break` to exit loops */
10
+ export declare class BreakSignal extends Error {
11
+ readonly value: RillValue;
12
+ constructor(value: RillValue);
13
+ }
14
+ /** Signal thrown by `return` to exit blocks */
15
+ export declare class ReturnSignal extends Error {
16
+ readonly value: RillValue;
17
+ constructor(value: RillValue);
18
+ }
19
+ //# sourceMappingURL=signals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../../src/runtime/signals.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,6CAA6C;AAC7C,qBAAa,WAAY,SAAQ,KAAK;aACR,KAAK,EAAE,SAAS;gBAAhB,KAAK,EAAE,SAAS;CAI7C;AAED,+CAA+C;AAC/C,qBAAa,YAAa,SAAQ,KAAK;aACT,KAAK,EAAE,SAAS;gBAAhB,KAAK,EAAE,SAAS;CAI7C"}