@manifesto-ai/compiler 1.6.2 → 1.8.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 (201) hide show
  1. package/README.md +67 -18
  2. package/dist/chunk-BH25NHMN.js +74 -0
  3. package/dist/chunk-BH25NHMN.js.map +1 -0
  4. package/dist/chunk-D62NIFP4.js +33 -0
  5. package/dist/chunk-D62NIFP4.js.map +1 -0
  6. package/dist/chunk-MKLDAZ2Z.js +6920 -0
  7. package/dist/chunk-MKLDAZ2Z.js.map +1 -0
  8. package/dist/esbuild.d.ts +8 -0
  9. package/dist/esbuild.js +14 -0
  10. package/dist/esbuild.js.map +1 -0
  11. package/dist/index.d.ts +2810 -11
  12. package/dist/index.js +2425 -43
  13. package/dist/index.js.map +1 -1
  14. package/dist/node-loader.d.ts +18 -0
  15. package/dist/node-loader.js +47 -0
  16. package/dist/node-loader.js.map +1 -0
  17. package/dist/rollup.d.ts +8 -0
  18. package/dist/rollup.js +14 -0
  19. package/dist/rollup.js.map +1 -0
  20. package/dist/rspack.d.ts +7 -0
  21. package/dist/rspack.js +14 -0
  22. package/dist/rspack.js.map +1 -0
  23. package/dist/unplugin-6wnvFiEo.d.ts +17 -0
  24. package/dist/vite.d.ts +8 -17
  25. package/dist/vite.js +13 -33
  26. package/dist/vite.js.map +1 -1
  27. package/dist/webpack.d.ts +8 -0
  28. package/dist/webpack.js +14 -0
  29. package/dist/webpack.js.map +1 -0
  30. package/package.json +40 -22
  31. package/dist/analyzer/index.d.ts +0 -6
  32. package/dist/analyzer/index.d.ts.map +0 -1
  33. package/dist/analyzer/index.js +0 -6
  34. package/dist/analyzer/index.js.map +0 -1
  35. package/dist/analyzer/scope.d.ts +0 -77
  36. package/dist/analyzer/scope.d.ts.map +0 -1
  37. package/dist/analyzer/scope.js +0 -296
  38. package/dist/analyzer/scope.js.map +0 -1
  39. package/dist/analyzer/validator.d.ts +0 -60
  40. package/dist/analyzer/validator.d.ts.map +0 -1
  41. package/dist/analyzer/validator.js +0 -439
  42. package/dist/analyzer/validator.js.map +0 -1
  43. package/dist/api/compile-mel-patch-collector.d.ts +0 -32
  44. package/dist/api/compile-mel-patch-collector.d.ts.map +0 -1
  45. package/dist/api/compile-mel-patch-collector.js +0 -425
  46. package/dist/api/compile-mel-patch-collector.js.map +0 -1
  47. package/dist/api/compile-mel-patch-expr.d.ts +0 -9
  48. package/dist/api/compile-mel-patch-expr.d.ts.map +0 -1
  49. package/dist/api/compile-mel-patch-expr.js +0 -179
  50. package/dist/api/compile-mel-patch-expr.js.map +0 -1
  51. package/dist/api/compile-mel-patch-location.d.ts +0 -10
  52. package/dist/api/compile-mel-patch-location.d.ts.map +0 -1
  53. package/dist/api/compile-mel-patch-location.js +0 -48
  54. package/dist/api/compile-mel-patch-location.js.map +0 -1
  55. package/dist/api/compile-mel-patch.d.ts +0 -6
  56. package/dist/api/compile-mel-patch.d.ts.map +0 -1
  57. package/dist/api/compile-mel-patch.js +0 -244
  58. package/dist/api/compile-mel-patch.js.map +0 -1
  59. package/dist/api/compile-mel.d.ts +0 -126
  60. package/dist/api/compile-mel.d.ts.map +0 -1
  61. package/dist/api/compile-mel.js +0 -114
  62. package/dist/api/compile-mel.js.map +0 -1
  63. package/dist/api/index.d.ts +0 -10
  64. package/dist/api/index.d.ts.map +0 -1
  65. package/dist/api/index.js +0 -9
  66. package/dist/api/index.js.map +0 -1
  67. package/dist/diagnostics/codes.d.ts +0 -25
  68. package/dist/diagnostics/codes.d.ts.map +0 -1
  69. package/dist/diagnostics/codes.js +0 -154
  70. package/dist/diagnostics/codes.js.map +0 -1
  71. package/dist/diagnostics/index.d.ts +0 -6
  72. package/dist/diagnostics/index.d.ts.map +0 -1
  73. package/dist/diagnostics/index.js +0 -6
  74. package/dist/diagnostics/index.js.map +0 -1
  75. package/dist/diagnostics/types.d.ts +0 -67
  76. package/dist/diagnostics/types.d.ts.map +0 -1
  77. package/dist/diagnostics/types.js +0 -58
  78. package/dist/diagnostics/types.js.map +0 -1
  79. package/dist/evaluation/context.d.ts +0 -91
  80. package/dist/evaluation/context.d.ts.map +0 -1
  81. package/dist/evaluation/context.js +0 -53
  82. package/dist/evaluation/context.js.map +0 -1
  83. package/dist/evaluation/evaluate-expr.d.ts +0 -24
  84. package/dist/evaluation/evaluate-expr.d.ts.map +0 -1
  85. package/dist/evaluation/evaluate-expr.js +0 -577
  86. package/dist/evaluation/evaluate-expr.js.map +0 -1
  87. package/dist/evaluation/evaluate-patch.d.ts +0 -123
  88. package/dist/evaluation/evaluate-patch.d.ts.map +0 -1
  89. package/dist/evaluation/evaluate-patch.js +0 -202
  90. package/dist/evaluation/evaluate-patch.js.map +0 -1
  91. package/dist/evaluation/evaluate-runtime-patch.d.ts +0 -86
  92. package/dist/evaluation/evaluate-runtime-patch.d.ts.map +0 -1
  93. package/dist/evaluation/evaluate-runtime-patch.js +0 -185
  94. package/dist/evaluation/evaluate-runtime-patch.js.map +0 -1
  95. package/dist/evaluation/index.d.ts +0 -15
  96. package/dist/evaluation/index.d.ts.map +0 -1
  97. package/dist/evaluation/index.js +0 -13
  98. package/dist/evaluation/index.js.map +0 -1
  99. package/dist/generator/index.d.ts +0 -7
  100. package/dist/generator/index.d.ts.map +0 -1
  101. package/dist/generator/index.js +0 -7
  102. package/dist/generator/index.js.map +0 -1
  103. package/dist/generator/ir.d.ts +0 -348
  104. package/dist/generator/ir.d.ts.map +0 -1
  105. package/dist/generator/ir.js +0 -715
  106. package/dist/generator/ir.js.map +0 -1
  107. package/dist/generator/lowering.d.ts +0 -11
  108. package/dist/generator/lowering.d.ts.map +0 -1
  109. package/dist/generator/lowering.js +0 -369
  110. package/dist/generator/lowering.js.map +0 -1
  111. package/dist/generator/normalizer.d.ts +0 -16
  112. package/dist/generator/normalizer.d.ts.map +0 -1
  113. package/dist/generator/normalizer.js +0 -181
  114. package/dist/generator/normalizer.js.map +0 -1
  115. package/dist/index.d.ts.map +0 -1
  116. package/dist/lexer/index.d.ts +0 -7
  117. package/dist/lexer/index.d.ts.map +0 -1
  118. package/dist/lexer/index.js +0 -7
  119. package/dist/lexer/index.js.map +0 -1
  120. package/dist/lexer/lexer.d.ts +0 -59
  121. package/dist/lexer/lexer.d.ts.map +0 -1
  122. package/dist/lexer/lexer.js +0 -433
  123. package/dist/lexer/lexer.js.map +0 -1
  124. package/dist/lexer/source-location.d.ts +0 -41
  125. package/dist/lexer/source-location.d.ts.map +0 -1
  126. package/dist/lexer/source-location.js +0 -33
  127. package/dist/lexer/source-location.js.map +0 -1
  128. package/dist/lexer/tokens.d.ts +0 -47
  129. package/dist/lexer/tokens.d.ts.map +0 -1
  130. package/dist/lexer/tokens.js +0 -73
  131. package/dist/lexer/tokens.js.map +0 -1
  132. package/dist/loader.d.ts +0 -23
  133. package/dist/loader.d.ts.map +0 -1
  134. package/dist/loader.js +0 -62
  135. package/dist/loader.js.map +0 -1
  136. package/dist/lowering/context.d.ts +0 -96
  137. package/dist/lowering/context.d.ts.map +0 -1
  138. package/dist/lowering/context.js +0 -42
  139. package/dist/lowering/context.js.map +0 -1
  140. package/dist/lowering/errors.d.ts +0 -84
  141. package/dist/lowering/errors.d.ts.map +0 -1
  142. package/dist/lowering/errors.js +0 -81
  143. package/dist/lowering/errors.js.map +0 -1
  144. package/dist/lowering/index.d.ts +0 -20
  145. package/dist/lowering/index.d.ts.map +0 -1
  146. package/dist/lowering/index.js +0 -13
  147. package/dist/lowering/index.js.map +0 -1
  148. package/dist/lowering/lower-expr.d.ts +0 -76
  149. package/dist/lowering/lower-expr.d.ts.map +0 -1
  150. package/dist/lowering/lower-expr.js +0 -366
  151. package/dist/lowering/lower-expr.js.map +0 -1
  152. package/dist/lowering/lower-patch.d.ts +0 -231
  153. package/dist/lowering/lower-patch.d.ts.map +0 -1
  154. package/dist/lowering/lower-patch.js +0 -146
  155. package/dist/lowering/lower-patch.js.map +0 -1
  156. package/dist/lowering/lower-runtime-patch.d.ts +0 -100
  157. package/dist/lowering/lower-runtime-patch.d.ts.map +0 -1
  158. package/dist/lowering/lower-runtime-patch.js +0 -49
  159. package/dist/lowering/lower-runtime-patch.js.map +0 -1
  160. package/dist/mel-module.d.ts +0 -13
  161. package/dist/mel-module.d.ts.map +0 -1
  162. package/dist/mel-module.js +0 -33
  163. package/dist/mel-module.js.map +0 -1
  164. package/dist/parser/ast.d.ts +0 -344
  165. package/dist/parser/ast.d.ts.map +0 -1
  166. package/dist/parser/ast.js +0 -24
  167. package/dist/parser/ast.js.map +0 -1
  168. package/dist/parser/index.d.ts +0 -7
  169. package/dist/parser/index.d.ts.map +0 -1
  170. package/dist/parser/index.js +0 -7
  171. package/dist/parser/index.js.map +0 -1
  172. package/dist/parser/parser.d.ts +0 -92
  173. package/dist/parser/parser.d.ts.map +0 -1
  174. package/dist/parser/parser.js +0 -892
  175. package/dist/parser/parser.js.map +0 -1
  176. package/dist/parser/precedence.d.ts +0 -44
  177. package/dist/parser/precedence.d.ts.map +0 -1
  178. package/dist/parser/precedence.js +0 -69
  179. package/dist/parser/precedence.js.map +0 -1
  180. package/dist/renderer/expr-node.d.ts +0 -172
  181. package/dist/renderer/expr-node.d.ts.map +0 -1
  182. package/dist/renderer/expr-node.js +0 -218
  183. package/dist/renderer/expr-node.js.map +0 -1
  184. package/dist/renderer/fragment.d.ts +0 -84
  185. package/dist/renderer/fragment.d.ts.map +0 -1
  186. package/dist/renderer/fragment.js +0 -172
  187. package/dist/renderer/fragment.js.map +0 -1
  188. package/dist/renderer/index.d.ts +0 -23
  189. package/dist/renderer/index.d.ts.map +0 -1
  190. package/dist/renderer/index.js +0 -27
  191. package/dist/renderer/index.js.map +0 -1
  192. package/dist/renderer/patch-op.d.ts +0 -82
  193. package/dist/renderer/patch-op.d.ts.map +0 -1
  194. package/dist/renderer/patch-op.js +0 -204
  195. package/dist/renderer/patch-op.js.map +0 -1
  196. package/dist/renderer/type-expr.d.ts +0 -61
  197. package/dist/renderer/type-expr.d.ts.map +0 -1
  198. package/dist/renderer/type-expr.js +0 -131
  199. package/dist/renderer/type-expr.js.map +0 -1
  200. package/dist/vite.d.ts.map +0 -1
  201. package/loader.cjs +0 -22
@@ -1 +0,0 @@
1
- {"version":3,"file":"ir.js","sourceRoot":"","sources":["../../src/generator/ir.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- /**
2
- * System Value Lowering
3
- * Transforms $system.* references into effect-based acquisition
4
- * Based on MEL SPEC v0.3.1 Section 5.4
5
- */
6
- import type { DomainSchema } from "./ir.js";
7
- /**
8
- * Apply system value lowering to a domain schema
9
- */
10
- export declare function lowerSystemValues(schema: DomainSchema): DomainSchema;
11
- //# sourceMappingURL=lowering.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lowering.d.ts","sourceRoot":"","sources":["../../src/generator/lowering.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAqD,MAAM,SAAS,CAAC;AAuB/F;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAgDpE"}
@@ -1,369 +0,0 @@
1
- /**
2
- * System Value Lowering
3
- * Transforms $system.* references into effect-based acquisition
4
- * Based on MEL SPEC v0.3.1 Section 5.4
5
- */
6
- import { hashSchemaSync } from "@manifesto-ai/core";
7
- import { parsePath } from "@manifesto-ai/core";
8
- // ============ Main Lowering Function ============
9
- /**
10
- * Apply system value lowering to a domain schema
11
- */
12
- export function lowerSystemValues(schema) {
13
- // Clone schema
14
- const result = structuredClone(schema);
15
- let lowered = false;
16
- // Process each action
17
- for (const [actionName, action] of Object.entries(result.actions)) {
18
- const ctx = createContext(actionName);
19
- // Collect all $system.* references
20
- collectSystemRefs(action.flow, ctx);
21
- if (ctx.slots.size === 0) {
22
- continue; // No system values to lower
23
- }
24
- lowered = true;
25
- // Add state slots
26
- for (const slot of ctx.slots.values()) {
27
- result.state.fields[slotName(slot.valuePath)] = {
28
- type: systemValueType(slot.key),
29
- required: true,
30
- default: null,
31
- };
32
- result.state.fields[slotName(slot.intentPath)] = {
33
- type: "string",
34
- required: true,
35
- default: null,
36
- };
37
- }
38
- // Transform the flow
39
- result.actions[actionName] = {
40
- ...action,
41
- flow: lowerFlow(action.flow, ctx),
42
- };
43
- }
44
- if (!lowered) {
45
- return result;
46
- }
47
- const { hash: _hash, ...schemaWithoutHash } = result;
48
- const nextHash = hashSchemaSync(schemaWithoutHash);
49
- return {
50
- ...schemaWithoutHash,
51
- hash: nextHash,
52
- };
53
- }
54
- function slotName(path) {
55
- // Extract field name from path like "__sys__addTask_uuid_value"
56
- const parts = parsePath(path);
57
- return parts[parts.length - 1] ?? "";
58
- }
59
- function createContext(actionName) {
60
- return {
61
- actionName,
62
- slots: new Map(),
63
- };
64
- }
65
- function systemValueType(key) {
66
- switch (key) {
67
- case "timestamp":
68
- case "time.now":
69
- return "number";
70
- default:
71
- return "string";
72
- }
73
- }
74
- // ============ Collection Phase ============
75
- /**
76
- * Collect all $system.* references in a flow
77
- */
78
- function collectSystemRefs(flow, ctx) {
79
- switch (flow.kind) {
80
- case "seq":
81
- for (const step of flow.steps) {
82
- collectSystemRefs(step, ctx);
83
- }
84
- break;
85
- case "if":
86
- collectSystemRefsFromExpr(flow.cond, ctx);
87
- collectSystemRefs(flow.then, ctx);
88
- if (flow.else) {
89
- collectSystemRefs(flow.else, ctx);
90
- }
91
- break;
92
- case "patch":
93
- if (flow.value) {
94
- collectSystemRefsFromExpr(flow.value, ctx);
95
- }
96
- break;
97
- case "effect":
98
- for (const param of Object.values(flow.params)) {
99
- collectSystemRefsFromExpr(param, ctx);
100
- }
101
- break;
102
- case "fail":
103
- if (flow.message) {
104
- collectSystemRefsFromExpr(flow.message, ctx);
105
- }
106
- break;
107
- }
108
- }
109
- /**
110
- * Collect $system.* references from an expression
111
- */
112
- function collectSystemRefsFromExpr(expr, ctx) {
113
- if (expr.kind === "get" && expr.path.startsWith("$system.")) {
114
- const key = expr.path.slice("$system.".length);
115
- if (!ctx.slots.has(key)) {
116
- ctx.slots.set(key, {
117
- key,
118
- valuePath: `__sys__${ctx.actionName}_${key}_value`,
119
- intentPath: `__sys__${ctx.actionName}_${key}_intent`,
120
- });
121
- }
122
- return;
123
- }
124
- // Recursively process nested expressions
125
- for (const value of Object.values(expr)) {
126
- if (typeof value === "object" && value !== null) {
127
- if (Array.isArray(value)) {
128
- for (const item of value) {
129
- if (typeof item === "object" && item !== null && "kind" in item) {
130
- collectSystemRefsFromExpr(item, ctx);
131
- }
132
- }
133
- }
134
- else if ("kind" in value) {
135
- collectSystemRefsFromExpr(value, ctx);
136
- }
137
- }
138
- }
139
- }
140
- // ============ Transformation Phase ============
141
- /**
142
- * Lower a flow with system value acquisition
143
- */
144
- function lowerFlow(flow, ctx) {
145
- if (ctx.slots.size === 0) {
146
- return flow;
147
- }
148
- // Generate acquisition effects
149
- const acquisitionSteps = [];
150
- for (const slot of ctx.slots.values()) {
151
- // once(__sys__action_key_intent) {
152
- // patch __sys__action_key_intent = $meta.intentId
153
- // effect system.get({ key: "uuid", into: __sys__action_key_value })
154
- // }
155
- const acquisitionFlow = {
156
- kind: "if",
157
- cond: {
158
- kind: "neq",
159
- left: { kind: "get", path: slot.intentPath },
160
- right: { kind: "get", path: "meta.intentId" },
161
- },
162
- then: {
163
- kind: "seq",
164
- steps: [
165
- {
166
- kind: "patch",
167
- op: "set",
168
- path: slot.intentPath,
169
- value: { kind: "get", path: "meta.intentId" },
170
- },
171
- {
172
- kind: "effect",
173
- type: "system.get",
174
- params: {
175
- key: { kind: "lit", value: slot.key },
176
- into: { kind: "lit", value: slot.valuePath },
177
- },
178
- },
179
- ],
180
- },
181
- };
182
- acquisitionSteps.push(acquisitionFlow);
183
- }
184
- // Generate readiness condition
185
- // eq(__sys__action_key_intent, $meta.intentId) for all slots
186
- const readinessConditions = [];
187
- for (const slot of ctx.slots.values()) {
188
- readinessConditions.push({
189
- kind: "eq",
190
- left: { kind: "get", path: slot.intentPath },
191
- right: { kind: "get", path: "meta.intentId" },
192
- });
193
- }
194
- const readinessCond = readinessConditions.length === 1
195
- ? readinessConditions[0]
196
- : { kind: "and", args: readinessConditions };
197
- // Transform the original flow
198
- const transformedFlow = transformFlow(flow, ctx);
199
- // Wrap with readiness guard
200
- const guardedFlow = {
201
- kind: "if",
202
- cond: readinessCond,
203
- then: transformedFlow,
204
- };
205
- // Combine: acquisitions + guarded flow
206
- return {
207
- kind: "seq",
208
- steps: [...acquisitionSteps, guardedFlow],
209
- };
210
- }
211
- /**
212
- * Transform a flow, replacing $system.* references with slot accesses
213
- */
214
- function transformFlow(flow, ctx) {
215
- switch (flow.kind) {
216
- case "seq":
217
- return {
218
- kind: "seq",
219
- steps: flow.steps.map(s => transformFlow(s, ctx)),
220
- };
221
- case "if":
222
- return {
223
- kind: "if",
224
- cond: transformExpr(flow.cond, ctx),
225
- then: transformFlow(flow.then, ctx),
226
- else: flow.else ? transformFlow(flow.else, ctx) : undefined,
227
- };
228
- case "patch":
229
- return {
230
- kind: "patch",
231
- op: flow.op,
232
- path: flow.path,
233
- value: flow.value ? transformExpr(flow.value, ctx) : undefined,
234
- };
235
- case "effect":
236
- const params = {};
237
- for (const [key, value] of Object.entries(flow.params)) {
238
- params[key] = transformExpr(value, ctx);
239
- }
240
- return {
241
- kind: "effect",
242
- type: flow.type,
243
- params,
244
- };
245
- case "fail":
246
- return {
247
- kind: "fail",
248
- code: flow.code,
249
- message: flow.message ? transformExpr(flow.message, ctx) : undefined,
250
- };
251
- default:
252
- return flow;
253
- }
254
- }
255
- /**
256
- * Transform an expression, replacing $system.* with slot accesses
257
- */
258
- function transformExpr(expr, ctx) {
259
- // Replace $system.* with slot value path
260
- if (expr.kind === "get" && expr.path.startsWith("$system.")) {
261
- const key = expr.path.slice("$system.".length);
262
- const slot = ctx.slots.get(key);
263
- if (slot) {
264
- return { kind: "get", path: slot.valuePath };
265
- }
266
- }
267
- // Recursively transform nested expressions
268
- switch (expr.kind) {
269
- case "eq":
270
- case "neq":
271
- case "gt":
272
- case "gte":
273
- case "lt":
274
- case "lte":
275
- case "add":
276
- case "sub":
277
- case "mul":
278
- case "div":
279
- case "mod":
280
- return {
281
- kind: expr.kind,
282
- left: transformExpr(expr.left, ctx),
283
- right: transformExpr(expr.right, ctx),
284
- };
285
- case "and":
286
- case "or":
287
- case "coalesce":
288
- case "concat":
289
- case "min":
290
- case "max":
291
- case "merge":
292
- return {
293
- kind: expr.kind,
294
- args: expr.args.map((a) => transformExpr(a, ctx)),
295
- };
296
- case "not":
297
- case "neg":
298
- case "abs":
299
- case "floor":
300
- case "ceil":
301
- case "round":
302
- case "isNull":
303
- case "typeof":
304
- case "toString":
305
- case "len":
306
- case "keys":
307
- case "values":
308
- case "entries":
309
- case "first":
310
- case "last":
311
- return {
312
- kind: expr.kind,
313
- arg: transformExpr(expr.arg, ctx),
314
- };
315
- case "trim":
316
- case "toLowerCase":
317
- case "toUpperCase":
318
- case "strLen":
319
- return {
320
- kind: expr.kind,
321
- str: transformExpr(expr.str, ctx),
322
- };
323
- case "at":
324
- case "includes":
325
- return {
326
- kind: expr.kind,
327
- array: transformExpr(expr.array, ctx),
328
- index: transformExpr(expr.index ?? expr.item, ctx),
329
- };
330
- case "filter":
331
- case "map":
332
- case "find":
333
- case "every":
334
- case "some":
335
- return {
336
- kind: expr.kind,
337
- array: transformExpr(expr.array, ctx),
338
- predicate: transformExpr(expr.predicate ?? expr.mapper, ctx),
339
- };
340
- case "if":
341
- return {
342
- kind: "if",
343
- cond: transformExpr(expr.cond, ctx),
344
- then: transformExpr(expr.then, ctx),
345
- else: transformExpr(expr.else, ctx),
346
- };
347
- case "field":
348
- return {
349
- kind: "field",
350
- object: transformExpr(expr.object, ctx),
351
- property: expr.property,
352
- };
353
- case "object":
354
- const fields = {};
355
- for (const [key, value] of Object.entries(expr.fields)) {
356
- fields[key] = transformExpr(value, ctx);
357
- }
358
- return { kind: "object", fields };
359
- case "append":
360
- return {
361
- kind: "append",
362
- array: transformExpr(expr.array, ctx),
363
- items: expr.items.map((i) => transformExpr(i, ctx)),
364
- };
365
- default:
366
- return expr;
367
- }
368
- }
369
- //# sourceMappingURL=lowering.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lowering.js","sourceRoot":"","sources":["../../src/generator/lowering.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- /**
2
- * Expression Normalizer
3
- * Converts MEL operators and function calls to Core ExprNode format
4
- * Based on MEL SPEC v0.3.1 Section 4 and FDR-MEL-038
5
- */
6
- import type { CoreExprNode } from "./ir.js";
7
- import type { BinaryOperator } from "../parser/ast.js";
8
- /**
9
- * Normalize a binary operator to Core ExprNode
10
- */
11
- export declare function normalizeExpr(op: BinaryOperator, left: CoreExprNode, right: CoreExprNode): CoreExprNode;
12
- /**
13
- * Function name to Core ExprNode mapping
14
- */
15
- export declare function normalizeFunctionCall(name: string, args: CoreExprNode[]): CoreExprNode;
16
- //# sourceMappingURL=normalizer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"normalizer.d.ts","sourceRoot":"","sources":["../../src/generator/normalizer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,cAAc,EAClB,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,YAAY,GAClB,YAAY,CAwBd;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,YAAY,EAAE,GACnB,YAAY,CA0Jd"}
@@ -1,181 +0,0 @@
1
- /**
2
- * Expression Normalizer
3
- * Converts MEL operators and function calls to Core ExprNode format
4
- * Based on MEL SPEC v0.3.1 Section 4 and FDR-MEL-038
5
- */
6
- /**
7
- * Normalize a binary operator to Core ExprNode
8
- */
9
- export function normalizeExpr(op, left, right) {
10
- switch (op) {
11
- // Arithmetic
12
- case "+": return { kind: "add", left, right };
13
- case "-": return { kind: "sub", left, right };
14
- case "*": return { kind: "mul", left, right };
15
- case "/": return { kind: "div", left, right };
16
- case "%": return { kind: "mod", left, right };
17
- // Comparison
18
- case "==": return { kind: "eq", left, right };
19
- case "!=": return { kind: "neq", left, right };
20
- case "<": return { kind: "lt", left, right };
21
- case "<=": return { kind: "lte", left, right };
22
- case ">": return { kind: "gt", left, right };
23
- case ">=": return { kind: "gte", left, right };
24
- // Logical
25
- case "&&": return { kind: "and", args: [left, right] };
26
- case "||": return { kind: "or", args: [left, right] };
27
- // Nullish coalescing
28
- case "??": return { kind: "coalesce", args: [left, right] };
29
- }
30
- }
31
- /**
32
- * Function name to Core ExprNode mapping
33
- */
34
- export function normalizeFunctionCall(name, args) {
35
- switch (name) {
36
- // ============ Arithmetic ============
37
- case "add":
38
- return { kind: "add", left: args[0], right: args[1] };
39
- case "sub":
40
- return { kind: "sub", left: args[0], right: args[1] };
41
- case "mul":
42
- return { kind: "mul", left: args[0], right: args[1] };
43
- case "div":
44
- return { kind: "div", left: args[0], right: args[1] };
45
- case "mod":
46
- return { kind: "mod", left: args[0], right: args[1] };
47
- case "neg":
48
- return { kind: "neg", arg: args[0] };
49
- case "abs":
50
- return { kind: "abs", arg: args[0] };
51
- case "min":
52
- // v0.3.2: single arg = array aggregation, multiple args = value comparison
53
- if (args.length === 1) {
54
- return { kind: "minArray", array: args[0] };
55
- }
56
- return { kind: "min", args };
57
- case "max":
58
- // v0.3.2: single arg = array aggregation, multiple args = value comparison
59
- if (args.length === 1) {
60
- return { kind: "maxArray", array: args[0] };
61
- }
62
- return { kind: "max", args };
63
- // v0.3.2: sum array aggregation
64
- case "sum":
65
- return { kind: "sumArray", array: args[0] };
66
- case "floor":
67
- return { kind: "floor", arg: args[0] };
68
- case "ceil":
69
- return { kind: "ceil", arg: args[0] };
70
- case "round":
71
- return { kind: "round", arg: args[0] };
72
- case "sqrt":
73
- return { kind: "sqrt", arg: args[0] };
74
- case "pow":
75
- return { kind: "pow", base: args[0], exponent: args[1] };
76
- // ============ Comparison ============
77
- case "eq":
78
- return { kind: "eq", left: args[0], right: args[1] };
79
- case "neq":
80
- return { kind: "neq", left: args[0], right: args[1] };
81
- case "gt":
82
- return { kind: "gt", left: args[0], right: args[1] };
83
- case "gte":
84
- return { kind: "gte", left: args[0], right: args[1] };
85
- case "lt":
86
- return { kind: "lt", left: args[0], right: args[1] };
87
- case "lte":
88
- return { kind: "lte", left: args[0], right: args[1] };
89
- // ============ Logical ============
90
- case "and":
91
- return { kind: "and", args };
92
- case "or":
93
- return { kind: "or", args };
94
- case "not":
95
- return { kind: "not", arg: args[0] };
96
- // ============ Type Checking ============
97
- case "isNull":
98
- return { kind: "isNull", arg: args[0] };
99
- case "isNotNull":
100
- // isNotNull(x) -> not(isNull(x))
101
- return { kind: "not", arg: { kind: "isNull", arg: args[0] } };
102
- case "typeof":
103
- return { kind: "typeof", arg: args[0] };
104
- case "coalesce":
105
- return { kind: "coalesce", args };
106
- // ============ String ============
107
- case "concat":
108
- return { kind: "concat", args };
109
- case "trim":
110
- return { kind: "trim", str: args[0] };
111
- case "lower":
112
- case "toLowerCase":
113
- return { kind: "toLowerCase", str: args[0] };
114
- case "upper":
115
- case "toUpperCase":
116
- return { kind: "toUpperCase", str: args[0] };
117
- case "strlen":
118
- case "strLen":
119
- return { kind: "strLen", str: args[0] };
120
- case "substr":
121
- case "substring":
122
- return args[2]
123
- ? { kind: "substring", str: args[0], start: args[1], end: args[2] }
124
- : { kind: "substring", str: args[0], start: args[1] };
125
- case "toString":
126
- return { kind: "toString", arg: args[0] };
127
- // ============ Collection ============
128
- case "len":
129
- case "length":
130
- return { kind: "len", arg: args[0] };
131
- case "at":
132
- return { kind: "at", array: args[0], index: args[1] };
133
- case "first":
134
- return { kind: "first", array: args[0] };
135
- case "last":
136
- return { kind: "last", array: args[0] };
137
- case "slice":
138
- return args[2]
139
- ? { kind: "slice", array: args[0], start: args[1], end: args[2] }
140
- : { kind: "slice", array: args[0], start: args[1] };
141
- case "includes":
142
- return { kind: "includes", array: args[0], item: args[1] };
143
- case "filter":
144
- return { kind: "filter", array: args[0], predicate: args[1] };
145
- case "map":
146
- return { kind: "map", array: args[0], mapper: args[1] };
147
- case "find":
148
- return { kind: "find", array: args[0], predicate: args[1] };
149
- case "every":
150
- return { kind: "every", array: args[0], predicate: args[1] };
151
- case "some":
152
- return { kind: "some", array: args[0], predicate: args[1] };
153
- case "append":
154
- return { kind: "append", array: args[0], items: args.slice(1) };
155
- // ============ Object ============
156
- case "keys":
157
- return { kind: "keys", obj: args[0] };
158
- case "values":
159
- return { kind: "values", obj: args[0] };
160
- case "entries":
161
- return { kind: "entries", obj: args[0] };
162
- case "merge":
163
- return { kind: "merge", objects: args };
164
- // ============ Conditional ============
165
- case "if":
166
- case "cond":
167
- return { kind: "if", cond: args[0], then: args[1], else: args[2] };
168
- // ============ Unknown Function ============
169
- default:
170
- // For unknown functions, create a generic call representation
171
- // This will be caught during semantic analysis
172
- return {
173
- kind: "object",
174
- fields: {
175
- __call: { kind: "lit", value: name },
176
- __args: { kind: "lit", value: args },
177
- },
178
- };
179
- }
180
- }
181
- //# sourceMappingURL=normalizer.js.map