@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.
- package/README.md +67 -18
- package/dist/chunk-BH25NHMN.js +74 -0
- package/dist/chunk-BH25NHMN.js.map +1 -0
- package/dist/chunk-D62NIFP4.js +33 -0
- package/dist/chunk-D62NIFP4.js.map +1 -0
- package/dist/chunk-MKLDAZ2Z.js +6920 -0
- package/dist/chunk-MKLDAZ2Z.js.map +1 -0
- package/dist/esbuild.d.ts +8 -0
- package/dist/esbuild.js +14 -0
- package/dist/esbuild.js.map +1 -0
- package/dist/index.d.ts +2810 -11
- package/dist/index.js +2425 -43
- package/dist/index.js.map +1 -1
- package/dist/node-loader.d.ts +18 -0
- package/dist/node-loader.js +47 -0
- package/dist/node-loader.js.map +1 -0
- package/dist/rollup.d.ts +8 -0
- package/dist/rollup.js +14 -0
- package/dist/rollup.js.map +1 -0
- package/dist/rspack.d.ts +7 -0
- package/dist/rspack.js +14 -0
- package/dist/rspack.js.map +1 -0
- package/dist/unplugin-6wnvFiEo.d.ts +17 -0
- package/dist/vite.d.ts +8 -17
- package/dist/vite.js +13 -33
- package/dist/vite.js.map +1 -1
- package/dist/webpack.d.ts +8 -0
- package/dist/webpack.js +14 -0
- package/dist/webpack.js.map +1 -0
- package/package.json +40 -22
- package/dist/analyzer/index.d.ts +0 -6
- package/dist/analyzer/index.d.ts.map +0 -1
- package/dist/analyzer/index.js +0 -6
- package/dist/analyzer/index.js.map +0 -1
- package/dist/analyzer/scope.d.ts +0 -77
- package/dist/analyzer/scope.d.ts.map +0 -1
- package/dist/analyzer/scope.js +0 -296
- package/dist/analyzer/scope.js.map +0 -1
- package/dist/analyzer/validator.d.ts +0 -60
- package/dist/analyzer/validator.d.ts.map +0 -1
- package/dist/analyzer/validator.js +0 -439
- package/dist/analyzer/validator.js.map +0 -1
- package/dist/api/compile-mel-patch-collector.d.ts +0 -32
- package/dist/api/compile-mel-patch-collector.d.ts.map +0 -1
- package/dist/api/compile-mel-patch-collector.js +0 -425
- package/dist/api/compile-mel-patch-collector.js.map +0 -1
- package/dist/api/compile-mel-patch-expr.d.ts +0 -9
- package/dist/api/compile-mel-patch-expr.d.ts.map +0 -1
- package/dist/api/compile-mel-patch-expr.js +0 -179
- package/dist/api/compile-mel-patch-expr.js.map +0 -1
- package/dist/api/compile-mel-patch-location.d.ts +0 -10
- package/dist/api/compile-mel-patch-location.d.ts.map +0 -1
- package/dist/api/compile-mel-patch-location.js +0 -48
- package/dist/api/compile-mel-patch-location.js.map +0 -1
- package/dist/api/compile-mel-patch.d.ts +0 -6
- package/dist/api/compile-mel-patch.d.ts.map +0 -1
- package/dist/api/compile-mel-patch.js +0 -244
- package/dist/api/compile-mel-patch.js.map +0 -1
- package/dist/api/compile-mel.d.ts +0 -126
- package/dist/api/compile-mel.d.ts.map +0 -1
- package/dist/api/compile-mel.js +0 -114
- package/dist/api/compile-mel.js.map +0 -1
- package/dist/api/index.d.ts +0 -10
- package/dist/api/index.d.ts.map +0 -1
- package/dist/api/index.js +0 -9
- package/dist/api/index.js.map +0 -1
- package/dist/diagnostics/codes.d.ts +0 -25
- package/dist/diagnostics/codes.d.ts.map +0 -1
- package/dist/diagnostics/codes.js +0 -154
- package/dist/diagnostics/codes.js.map +0 -1
- package/dist/diagnostics/index.d.ts +0 -6
- package/dist/diagnostics/index.d.ts.map +0 -1
- package/dist/diagnostics/index.js +0 -6
- package/dist/diagnostics/index.js.map +0 -1
- package/dist/diagnostics/types.d.ts +0 -67
- package/dist/diagnostics/types.d.ts.map +0 -1
- package/dist/diagnostics/types.js +0 -58
- package/dist/diagnostics/types.js.map +0 -1
- package/dist/evaluation/context.d.ts +0 -91
- package/dist/evaluation/context.d.ts.map +0 -1
- package/dist/evaluation/context.js +0 -53
- package/dist/evaluation/context.js.map +0 -1
- package/dist/evaluation/evaluate-expr.d.ts +0 -24
- package/dist/evaluation/evaluate-expr.d.ts.map +0 -1
- package/dist/evaluation/evaluate-expr.js +0 -577
- package/dist/evaluation/evaluate-expr.js.map +0 -1
- package/dist/evaluation/evaluate-patch.d.ts +0 -123
- package/dist/evaluation/evaluate-patch.d.ts.map +0 -1
- package/dist/evaluation/evaluate-patch.js +0 -202
- package/dist/evaluation/evaluate-patch.js.map +0 -1
- package/dist/evaluation/evaluate-runtime-patch.d.ts +0 -86
- package/dist/evaluation/evaluate-runtime-patch.d.ts.map +0 -1
- package/dist/evaluation/evaluate-runtime-patch.js +0 -185
- package/dist/evaluation/evaluate-runtime-patch.js.map +0 -1
- package/dist/evaluation/index.d.ts +0 -15
- package/dist/evaluation/index.d.ts.map +0 -1
- package/dist/evaluation/index.js +0 -13
- package/dist/evaluation/index.js.map +0 -1
- package/dist/generator/index.d.ts +0 -7
- package/dist/generator/index.d.ts.map +0 -1
- package/dist/generator/index.js +0 -7
- package/dist/generator/index.js.map +0 -1
- package/dist/generator/ir.d.ts +0 -348
- package/dist/generator/ir.d.ts.map +0 -1
- package/dist/generator/ir.js +0 -715
- package/dist/generator/ir.js.map +0 -1
- package/dist/generator/lowering.d.ts +0 -11
- package/dist/generator/lowering.d.ts.map +0 -1
- package/dist/generator/lowering.js +0 -369
- package/dist/generator/lowering.js.map +0 -1
- package/dist/generator/normalizer.d.ts +0 -16
- package/dist/generator/normalizer.d.ts.map +0 -1
- package/dist/generator/normalizer.js +0 -181
- package/dist/generator/normalizer.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/lexer/index.d.ts +0 -7
- package/dist/lexer/index.d.ts.map +0 -1
- package/dist/lexer/index.js +0 -7
- package/dist/lexer/index.js.map +0 -1
- package/dist/lexer/lexer.d.ts +0 -59
- package/dist/lexer/lexer.d.ts.map +0 -1
- package/dist/lexer/lexer.js +0 -433
- package/dist/lexer/lexer.js.map +0 -1
- package/dist/lexer/source-location.d.ts +0 -41
- package/dist/lexer/source-location.d.ts.map +0 -1
- package/dist/lexer/source-location.js +0 -33
- package/dist/lexer/source-location.js.map +0 -1
- package/dist/lexer/tokens.d.ts +0 -47
- package/dist/lexer/tokens.d.ts.map +0 -1
- package/dist/lexer/tokens.js +0 -73
- package/dist/lexer/tokens.js.map +0 -1
- package/dist/loader.d.ts +0 -23
- package/dist/loader.d.ts.map +0 -1
- package/dist/loader.js +0 -62
- package/dist/loader.js.map +0 -1
- package/dist/lowering/context.d.ts +0 -96
- package/dist/lowering/context.d.ts.map +0 -1
- package/dist/lowering/context.js +0 -42
- package/dist/lowering/context.js.map +0 -1
- package/dist/lowering/errors.d.ts +0 -84
- package/dist/lowering/errors.d.ts.map +0 -1
- package/dist/lowering/errors.js +0 -81
- package/dist/lowering/errors.js.map +0 -1
- package/dist/lowering/index.d.ts +0 -20
- package/dist/lowering/index.d.ts.map +0 -1
- package/dist/lowering/index.js +0 -13
- package/dist/lowering/index.js.map +0 -1
- package/dist/lowering/lower-expr.d.ts +0 -76
- package/dist/lowering/lower-expr.d.ts.map +0 -1
- package/dist/lowering/lower-expr.js +0 -366
- package/dist/lowering/lower-expr.js.map +0 -1
- package/dist/lowering/lower-patch.d.ts +0 -231
- package/dist/lowering/lower-patch.d.ts.map +0 -1
- package/dist/lowering/lower-patch.js +0 -146
- package/dist/lowering/lower-patch.js.map +0 -1
- package/dist/lowering/lower-runtime-patch.d.ts +0 -100
- package/dist/lowering/lower-runtime-patch.d.ts.map +0 -1
- package/dist/lowering/lower-runtime-patch.js +0 -49
- package/dist/lowering/lower-runtime-patch.js.map +0 -1
- package/dist/mel-module.d.ts +0 -13
- package/dist/mel-module.d.ts.map +0 -1
- package/dist/mel-module.js +0 -33
- package/dist/mel-module.js.map +0 -1
- package/dist/parser/ast.d.ts +0 -344
- package/dist/parser/ast.d.ts.map +0 -1
- package/dist/parser/ast.js +0 -24
- package/dist/parser/ast.js.map +0 -1
- package/dist/parser/index.d.ts +0 -7
- package/dist/parser/index.d.ts.map +0 -1
- package/dist/parser/index.js +0 -7
- package/dist/parser/index.js.map +0 -1
- package/dist/parser/parser.d.ts +0 -92
- package/dist/parser/parser.d.ts.map +0 -1
- package/dist/parser/parser.js +0 -892
- package/dist/parser/parser.js.map +0 -1
- package/dist/parser/precedence.d.ts +0 -44
- package/dist/parser/precedence.d.ts.map +0 -1
- package/dist/parser/precedence.js +0 -69
- package/dist/parser/precedence.js.map +0 -1
- package/dist/renderer/expr-node.d.ts +0 -172
- package/dist/renderer/expr-node.d.ts.map +0 -1
- package/dist/renderer/expr-node.js +0 -218
- package/dist/renderer/expr-node.js.map +0 -1
- package/dist/renderer/fragment.d.ts +0 -84
- package/dist/renderer/fragment.d.ts.map +0 -1
- package/dist/renderer/fragment.js +0 -172
- package/dist/renderer/fragment.js.map +0 -1
- package/dist/renderer/index.d.ts +0 -23
- package/dist/renderer/index.d.ts.map +0 -1
- package/dist/renderer/index.js +0 -27
- package/dist/renderer/index.js.map +0 -1
- package/dist/renderer/patch-op.d.ts +0 -82
- package/dist/renderer/patch-op.d.ts.map +0 -1
- package/dist/renderer/patch-op.js +0 -204
- package/dist/renderer/patch-op.js.map +0 -1
- package/dist/renderer/type-expr.d.ts +0 -61
- package/dist/renderer/type-expr.d.ts.map +0 -1
- package/dist/renderer/type-expr.js +0 -131
- package/dist/renderer/type-expr.js.map +0 -1
- package/dist/vite.d.ts.map +0 -1
- package/loader.cjs +0 -22
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Expression Lowering
|
|
3
|
-
*
|
|
4
|
-
* Transforms MEL Canonical IR (7 kinds) to Core Runtime IR (30+ kinds).
|
|
5
|
-
*
|
|
6
|
-
* @see SPEC v0.4.0 §17
|
|
7
|
-
*/
|
|
8
|
-
import type { ExprNode as CoreExprNode } from "@manifesto-ai/core";
|
|
9
|
-
import type { ExprLoweringContext } from "./context.js";
|
|
10
|
-
/**
|
|
11
|
-
* MEL primitive value.
|
|
12
|
-
*/
|
|
13
|
-
export type MelPrimitive = null | boolean | number | string;
|
|
14
|
-
/**
|
|
15
|
-
* MEL path segment.
|
|
16
|
-
*/
|
|
17
|
-
export type MelPathSegment = {
|
|
18
|
-
kind: "prop";
|
|
19
|
-
name: string;
|
|
20
|
-
};
|
|
21
|
-
/**
|
|
22
|
-
* MEL path node array.
|
|
23
|
-
*/
|
|
24
|
-
export type MelPathNode = MelPathSegment[];
|
|
25
|
-
/**
|
|
26
|
-
* MEL system path as segment array.
|
|
27
|
-
*/
|
|
28
|
-
export type MelSystemPath = string[];
|
|
29
|
-
/**
|
|
30
|
-
* MEL object field.
|
|
31
|
-
*/
|
|
32
|
-
export type MelObjField = {
|
|
33
|
-
key: string;
|
|
34
|
-
value: MelExprNode;
|
|
35
|
-
};
|
|
36
|
-
/**
|
|
37
|
-
* MEL Canonical IR (7 kinds).
|
|
38
|
-
*
|
|
39
|
-
* @see SPEC v0.4.0 §17.1.1
|
|
40
|
-
*/
|
|
41
|
-
export type MelExprNode = {
|
|
42
|
-
kind: "lit";
|
|
43
|
-
value: MelPrimitive;
|
|
44
|
-
} | {
|
|
45
|
-
kind: "var";
|
|
46
|
-
name: "item";
|
|
47
|
-
} | {
|
|
48
|
-
kind: "sys";
|
|
49
|
-
path: MelSystemPath;
|
|
50
|
-
} | {
|
|
51
|
-
kind: "get";
|
|
52
|
-
base?: MelExprNode;
|
|
53
|
-
path: MelPathNode;
|
|
54
|
-
} | {
|
|
55
|
-
kind: "call";
|
|
56
|
-
fn: string;
|
|
57
|
-
args: MelExprNode[];
|
|
58
|
-
} | {
|
|
59
|
-
kind: "obj";
|
|
60
|
-
fields: MelObjField[];
|
|
61
|
-
} | {
|
|
62
|
-
kind: "arr";
|
|
63
|
-
elements: MelExprNode[];
|
|
64
|
-
};
|
|
65
|
-
/**
|
|
66
|
-
* Lower MEL expression to Core expression.
|
|
67
|
-
*
|
|
68
|
-
* @param input - MEL canonical IR expression
|
|
69
|
-
* @param ctx - Lowering context
|
|
70
|
-
* @returns Core runtime IR expression
|
|
71
|
-
* @throws LoweringError if expression cannot be lowered
|
|
72
|
-
*
|
|
73
|
-
* @see SPEC v0.4.0 §17.3
|
|
74
|
-
*/
|
|
75
|
-
export declare function lowerExprNode(input: MelExprNode, ctx: ExprLoweringContext): CoreExprNode;
|
|
76
|
-
//# sourceMappingURL=lower-expr.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lower-expr.d.ts","sourceRoot":"","sources":["../../src/lowering/lower-expr.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAWxD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5D;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;AAE3C;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC;AAErC;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,CAAC;AAE9D;;;;GAIG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,aAAa,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,EAAE,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,EAAE,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC;AAI7C;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,mBAAmB,GACvB,YAAY,CA0Bd"}
|
|
@@ -1,366 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Expression Lowering
|
|
3
|
-
*
|
|
4
|
-
* Transforms MEL Canonical IR (7 kinds) to Core Runtime IR (30+ kinds).
|
|
5
|
-
*
|
|
6
|
-
* @see SPEC v0.4.0 §17
|
|
7
|
-
*/
|
|
8
|
-
import { invalidKindForContext, invalidSysPath, unknownCallFn, unknownNodeKind, unsupportedBase, } from "./errors.js";
|
|
9
|
-
// ============ Lowering Function ============
|
|
10
|
-
/**
|
|
11
|
-
* Lower MEL expression to Core expression.
|
|
12
|
-
*
|
|
13
|
-
* @param input - MEL canonical IR expression
|
|
14
|
-
* @param ctx - Lowering context
|
|
15
|
-
* @returns Core runtime IR expression
|
|
16
|
-
* @throws LoweringError if expression cannot be lowered
|
|
17
|
-
*
|
|
18
|
-
* @see SPEC v0.4.0 §17.3
|
|
19
|
-
*/
|
|
20
|
-
export function lowerExprNode(input, ctx) {
|
|
21
|
-
switch (input.kind) {
|
|
22
|
-
case "lit":
|
|
23
|
-
return lowerLit(input);
|
|
24
|
-
case "var":
|
|
25
|
-
return lowerVar(input, ctx);
|
|
26
|
-
case "sys":
|
|
27
|
-
return lowerSys(input, ctx);
|
|
28
|
-
case "get":
|
|
29
|
-
return lowerGet(input, ctx);
|
|
30
|
-
case "call":
|
|
31
|
-
return lowerCall(input, ctx);
|
|
32
|
-
case "obj":
|
|
33
|
-
return lowerObj(input, ctx);
|
|
34
|
-
case "arr":
|
|
35
|
-
return lowerArr(input, ctx);
|
|
36
|
-
default:
|
|
37
|
-
throw unknownNodeKind(input.kind);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
// ============ Individual Kind Lowering ============
|
|
41
|
-
/**
|
|
42
|
-
* Lower lit node.
|
|
43
|
-
* Pass through - Core lit accepts any value.
|
|
44
|
-
*/
|
|
45
|
-
function lowerLit(input) {
|
|
46
|
-
return { kind: "lit", value: input.value };
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Lower var node.
|
|
50
|
-
*
|
|
51
|
-
* var(item) → get("$item")
|
|
52
|
-
*
|
|
53
|
-
* Only allowed in effect.args context (allowItem: true).
|
|
54
|
-
*
|
|
55
|
-
* @see FDR-MEL-068, SPEC §17.3.2
|
|
56
|
-
*/
|
|
57
|
-
function lowerVar(input, ctx) {
|
|
58
|
-
if (!ctx.allowItem) {
|
|
59
|
-
throw invalidKindForContext("var", ctx.mode);
|
|
60
|
-
}
|
|
61
|
-
return { kind: "get", path: "$item" };
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Lower sys node.
|
|
65
|
-
*
|
|
66
|
-
* sys(["meta", "intentId"]) → get("meta.intentId")
|
|
67
|
-
* sys(["input", "title"]) → get("input.title")
|
|
68
|
-
* sys(["system", ...]) → LoweringError (forbidden in Translator path)
|
|
69
|
-
*
|
|
70
|
-
* @see FDR-MEL-067, FDR-MEL-071, SPEC §17.3.1
|
|
71
|
-
*/
|
|
72
|
-
function lowerSys(input, ctx) {
|
|
73
|
-
if (input.path.length === 0) {
|
|
74
|
-
throw invalidSysPath(input.path);
|
|
75
|
-
}
|
|
76
|
-
const prefix = input.path[0];
|
|
77
|
-
const allowedPrefixes = ctx.allowSysPaths?.prefixes ?? ["meta", "input"];
|
|
78
|
-
if (!allowedPrefixes.includes(prefix)) {
|
|
79
|
-
throw invalidSysPath(input.path);
|
|
80
|
-
}
|
|
81
|
-
// Core convention: no $ prefix for meta/input
|
|
82
|
-
const path = input.path.join(".");
|
|
83
|
-
return { kind: "get", path };
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Lower get node.
|
|
87
|
-
*
|
|
88
|
-
* PathNode[] → dot-notation string
|
|
89
|
-
* get.base only supports var(item)
|
|
90
|
-
*
|
|
91
|
-
* @see FDR-MEL-066, SPEC §17.3.3, §17.3.4
|
|
92
|
-
*/
|
|
93
|
-
function lowerGet(input, ctx) {
|
|
94
|
-
const pathStr = input.path.map((seg) => seg.name).join(".");
|
|
95
|
-
if (input.base === undefined) {
|
|
96
|
-
return { kind: "get", path: pathStr };
|
|
97
|
-
}
|
|
98
|
-
// base must be var(item)
|
|
99
|
-
if (input.base.kind === "var" && input.base.name === "item") {
|
|
100
|
-
if (!ctx.allowItem) {
|
|
101
|
-
throw invalidKindForContext("var", ctx.mode);
|
|
102
|
-
}
|
|
103
|
-
return { kind: "get", path: `$item.${pathStr}` };
|
|
104
|
-
}
|
|
105
|
-
throw unsupportedBase(input.base.kind);
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Lower call node.
|
|
109
|
-
*
|
|
110
|
-
* call(fn, args) → specialized Core node
|
|
111
|
-
*
|
|
112
|
-
* @see SPEC §17.3.5
|
|
113
|
-
*/
|
|
114
|
-
function lowerCall(input, ctx) {
|
|
115
|
-
const { fn, args } = input;
|
|
116
|
-
// Binary operators: left, right
|
|
117
|
-
if (isBinaryOp(fn)) {
|
|
118
|
-
if (args.length !== 2) {
|
|
119
|
-
throw unknownCallFn(fn);
|
|
120
|
-
}
|
|
121
|
-
const [left, right] = args;
|
|
122
|
-
return {
|
|
123
|
-
kind: fn,
|
|
124
|
-
left: lowerExprNode(left, ctx),
|
|
125
|
-
right: lowerExprNode(right, ctx),
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
// Unary operators: arg
|
|
129
|
-
if (isUnaryArgOp(fn)) {
|
|
130
|
-
if (args.length !== 1) {
|
|
131
|
-
throw unknownCallFn(fn);
|
|
132
|
-
}
|
|
133
|
-
return {
|
|
134
|
-
kind: fn,
|
|
135
|
-
arg: lowerExprNode(args[0], ctx),
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
// Unary operators: str
|
|
139
|
-
if (fn === "trim") {
|
|
140
|
-
if (args.length !== 1) {
|
|
141
|
-
throw unknownCallFn(fn);
|
|
142
|
-
}
|
|
143
|
-
return {
|
|
144
|
-
kind: "trim",
|
|
145
|
-
str: lowerExprNode(args[0], ctx),
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
// Variadic operators: args
|
|
149
|
-
if (isArgsOp(fn)) {
|
|
150
|
-
return {
|
|
151
|
-
kind: fn,
|
|
152
|
-
args: args.map((a) => lowerExprNode(a, ctx)),
|
|
153
|
-
};
|
|
154
|
-
}
|
|
155
|
-
// Conditional: if(cond, then, else)
|
|
156
|
-
if (fn === "if") {
|
|
157
|
-
if (args.length !== 3) {
|
|
158
|
-
throw unknownCallFn(fn);
|
|
159
|
-
}
|
|
160
|
-
return {
|
|
161
|
-
kind: "if",
|
|
162
|
-
cond: lowerExprNode(args[0], ctx),
|
|
163
|
-
then: lowerExprNode(args[1], ctx),
|
|
164
|
-
else: lowerExprNode(args[2], ctx),
|
|
165
|
-
};
|
|
166
|
-
}
|
|
167
|
-
if (fn === "field") {
|
|
168
|
-
if (args.length !== 2) {
|
|
169
|
-
throw unknownCallFn(fn);
|
|
170
|
-
}
|
|
171
|
-
const object = lowerExprNode(args[0], ctx);
|
|
172
|
-
const property = args[1];
|
|
173
|
-
if (property.kind !== "lit" || typeof property.value !== "string") {
|
|
174
|
-
throw unknownCallFn(fn);
|
|
175
|
-
}
|
|
176
|
-
return {
|
|
177
|
-
kind: "field",
|
|
178
|
-
object,
|
|
179
|
-
property: property.value,
|
|
180
|
-
};
|
|
181
|
-
}
|
|
182
|
-
// Array operators: array
|
|
183
|
-
if (isArrayArgOp(fn)) {
|
|
184
|
-
if (args.length !== 1) {
|
|
185
|
-
throw unknownCallFn(fn);
|
|
186
|
-
}
|
|
187
|
-
return {
|
|
188
|
-
kind: fn,
|
|
189
|
-
array: lowerExprNode(args[0], ctx),
|
|
190
|
-
};
|
|
191
|
-
}
|
|
192
|
-
// Object operators: obj
|
|
193
|
-
if (isObjArgOp(fn)) {
|
|
194
|
-
if (args.length !== 1) {
|
|
195
|
-
throw unknownCallFn(fn);
|
|
196
|
-
}
|
|
197
|
-
return {
|
|
198
|
-
kind: fn,
|
|
199
|
-
obj: lowerExprNode(args[0], ctx),
|
|
200
|
-
};
|
|
201
|
-
}
|
|
202
|
-
// at(array, index)
|
|
203
|
-
if (fn === "at") {
|
|
204
|
-
if (args.length !== 2) {
|
|
205
|
-
throw unknownCallFn(fn);
|
|
206
|
-
}
|
|
207
|
-
return {
|
|
208
|
-
kind: "at",
|
|
209
|
-
array: lowerExprNode(args[0], ctx),
|
|
210
|
-
index: lowerExprNode(args[1], ctx),
|
|
211
|
-
};
|
|
212
|
-
}
|
|
213
|
-
// includes(array, item)
|
|
214
|
-
if (fn === "includes") {
|
|
215
|
-
if (args.length !== 2) {
|
|
216
|
-
throw unknownCallFn(fn);
|
|
217
|
-
}
|
|
218
|
-
return {
|
|
219
|
-
kind: "includes",
|
|
220
|
-
array: lowerExprNode(args[0], ctx),
|
|
221
|
-
item: lowerExprNode(args[1], ctx),
|
|
222
|
-
};
|
|
223
|
-
}
|
|
224
|
-
// filter, map, find, every, some: array, predicate/mapper
|
|
225
|
-
if (isPredicateOp(fn)) {
|
|
226
|
-
if (args.length !== 2) {
|
|
227
|
-
throw unknownCallFn(fn);
|
|
228
|
-
}
|
|
229
|
-
const predicateCtx = { ...ctx, allowItem: true };
|
|
230
|
-
if (fn === "map") {
|
|
231
|
-
return {
|
|
232
|
-
kind: "map",
|
|
233
|
-
array: lowerExprNode(args[0], ctx),
|
|
234
|
-
mapper: lowerExprNode(args[1], predicateCtx),
|
|
235
|
-
};
|
|
236
|
-
}
|
|
237
|
-
return {
|
|
238
|
-
kind: fn,
|
|
239
|
-
array: lowerExprNode(args[0], ctx),
|
|
240
|
-
predicate: lowerExprNode(args[1], predicateCtx),
|
|
241
|
-
};
|
|
242
|
-
}
|
|
243
|
-
// slice(array, start, end?)
|
|
244
|
-
if (fn === "slice") {
|
|
245
|
-
if (args.length < 2 || args.length > 3) {
|
|
246
|
-
throw unknownCallFn(fn);
|
|
247
|
-
}
|
|
248
|
-
const result = {
|
|
249
|
-
kind: "slice",
|
|
250
|
-
array: lowerExprNode(args[0], ctx),
|
|
251
|
-
start: lowerExprNode(args[1], ctx),
|
|
252
|
-
};
|
|
253
|
-
if (args.length === 3) {
|
|
254
|
-
result.end = lowerExprNode(args[2], ctx);
|
|
255
|
-
}
|
|
256
|
-
return result;
|
|
257
|
-
}
|
|
258
|
-
// substring(str, start, end?)
|
|
259
|
-
if (fn === "substring") {
|
|
260
|
-
if (args.length < 2 || args.length > 3) {
|
|
261
|
-
throw unknownCallFn(fn);
|
|
262
|
-
}
|
|
263
|
-
const result = {
|
|
264
|
-
kind: "substring",
|
|
265
|
-
str: lowerExprNode(args[0], ctx),
|
|
266
|
-
start: lowerExprNode(args[1], ctx),
|
|
267
|
-
};
|
|
268
|
-
if (args.length === 3) {
|
|
269
|
-
result.end = lowerExprNode(args[2], ctx);
|
|
270
|
-
}
|
|
271
|
-
return result;
|
|
272
|
-
}
|
|
273
|
-
// append(array, ...items)
|
|
274
|
-
if (fn === "append") {
|
|
275
|
-
if (args.length < 1) {
|
|
276
|
-
throw unknownCallFn(fn);
|
|
277
|
-
}
|
|
278
|
-
return {
|
|
279
|
-
kind: "append",
|
|
280
|
-
array: lowerExprNode(args[0], ctx),
|
|
281
|
-
items: args.slice(1).map((a) => lowerExprNode(a, ctx)),
|
|
282
|
-
};
|
|
283
|
-
}
|
|
284
|
-
// merge(...objects)
|
|
285
|
-
if (fn === "merge") {
|
|
286
|
-
return {
|
|
287
|
-
kind: "merge",
|
|
288
|
-
objects: args.map((a) => lowerExprNode(a, ctx)),
|
|
289
|
-
};
|
|
290
|
-
}
|
|
291
|
-
throw unknownCallFn(fn);
|
|
292
|
-
}
|
|
293
|
-
/**
|
|
294
|
-
* Lower obj node.
|
|
295
|
-
*
|
|
296
|
-
* obj({ fields: [{key, value}] }) → object({ fields: Record })
|
|
297
|
-
*
|
|
298
|
-
* @see SPEC §17
|
|
299
|
-
*/
|
|
300
|
-
function lowerObj(input, ctx) {
|
|
301
|
-
const fields = {};
|
|
302
|
-
for (const field of input.fields) {
|
|
303
|
-
fields[field.key] = lowerExprNode(field.value, ctx);
|
|
304
|
-
}
|
|
305
|
-
return { kind: "object", fields };
|
|
306
|
-
}
|
|
307
|
-
/**
|
|
308
|
-
* Lower arr node.
|
|
309
|
-
*
|
|
310
|
-
* arr({ elements: [...] }) → lit([...evaluated])
|
|
311
|
-
*
|
|
312
|
-
* Note: Core doesn't have an "arr" kind, so we evaluate to lit
|
|
313
|
-
* if all elements are literals, otherwise use concat/append pattern.
|
|
314
|
-
* For simplicity, we'll create an evaluated array literal.
|
|
315
|
-
*
|
|
316
|
-
* @see SPEC §17
|
|
317
|
-
*/
|
|
318
|
-
function lowerArr(input, ctx) {
|
|
319
|
-
// If all elements are literals, we can create a lit array
|
|
320
|
-
const allLiterals = input.elements.every((e) => e.kind === "lit");
|
|
321
|
-
if (allLiterals) {
|
|
322
|
-
const values = input.elements.map((e) => e.value);
|
|
323
|
-
return { kind: "lit", value: values };
|
|
324
|
-
}
|
|
325
|
-
// Otherwise, we need to build the array using concat
|
|
326
|
-
// Start with empty array and append each element
|
|
327
|
-
const loweredElements = input.elements.map((e) => lowerExprNode(e, ctx));
|
|
328
|
-
if (loweredElements.length === 0) {
|
|
329
|
-
return { kind: "lit", value: [] };
|
|
330
|
-
}
|
|
331
|
-
// Use append pattern: append([], e1, e2, ...)
|
|
332
|
-
return {
|
|
333
|
-
kind: "append",
|
|
334
|
-
array: { kind: "lit", value: [] },
|
|
335
|
-
items: loweredElements,
|
|
336
|
-
};
|
|
337
|
-
}
|
|
338
|
-
// ============ Operator Classification ============
|
|
339
|
-
/** Binary operators: eq, neq, gt, gte, lt, lte, add, sub, mul, div, mod */
|
|
340
|
-
function isBinaryOp(fn) {
|
|
341
|
-
return [
|
|
342
|
-
"eq", "neq", "gt", "gte", "lt", "lte",
|
|
343
|
-
"add", "sub", "mul", "div", "mod",
|
|
344
|
-
].includes(fn);
|
|
345
|
-
}
|
|
346
|
-
/** Unary operators with 'arg' field: not, len, typeof, isNull */
|
|
347
|
-
function isUnaryArgOp(fn) {
|
|
348
|
-
return ["not", "len", "typeof", "isNull"].includes(fn);
|
|
349
|
-
}
|
|
350
|
-
/** Variadic operators with 'args' field: and, or, concat, coalesce */
|
|
351
|
-
function isArgsOp(fn) {
|
|
352
|
-
return ["and", "or", "concat", "coalesce"].includes(fn);
|
|
353
|
-
}
|
|
354
|
-
/** Array operators with 'array' field: first, last */
|
|
355
|
-
function isArrayArgOp(fn) {
|
|
356
|
-
return ["first", "last"].includes(fn);
|
|
357
|
-
}
|
|
358
|
-
/** Object operators with 'obj' field: keys, values, entries */
|
|
359
|
-
function isObjArgOp(fn) {
|
|
360
|
-
return ["keys", "values", "entries"].includes(fn);
|
|
361
|
-
}
|
|
362
|
-
/** Predicate operators: filter, find, every, some, map */
|
|
363
|
-
function isPredicateOp(fn) {
|
|
364
|
-
return ["filter", "find", "every", "some", "map"].includes(fn);
|
|
365
|
-
}
|
|
366
|
-
//# sourceMappingURL=lower-expr.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lower-expr.js","sourceRoot":"","sources":["../../src/lowering/lower-expr.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Patch Lowering
|
|
3
|
-
*
|
|
4
|
-
* Transforms PatchFragment[] (MEL IR) to ConditionalPatchOp[] (Core IR).
|
|
5
|
-
*
|
|
6
|
-
* @see SPEC v0.4.0 §17.4, §17.5
|
|
7
|
-
*/
|
|
8
|
-
import type { ExprNode as CoreExprNode } from "@manifesto-ai/core";
|
|
9
|
-
import type { PatchLoweringContext } from "./context.js";
|
|
10
|
-
import { MelExprNode } from "./lower-expr.js";
|
|
11
|
-
/**
|
|
12
|
-
* MEL TypeExpr (Translator output).
|
|
13
|
-
*/
|
|
14
|
-
export type MelTypeExpr = {
|
|
15
|
-
kind: "primitive";
|
|
16
|
-
name: "string" | "number" | "boolean" | "null";
|
|
17
|
-
} | {
|
|
18
|
-
kind: "array";
|
|
19
|
-
element: MelTypeExpr;
|
|
20
|
-
} | {
|
|
21
|
-
kind: "object";
|
|
22
|
-
fields: MelTypeField[];
|
|
23
|
-
} | {
|
|
24
|
-
kind: "union";
|
|
25
|
-
members: MelTypeExpr[];
|
|
26
|
-
} | {
|
|
27
|
-
kind: "literal";
|
|
28
|
-
value: string | number | boolean | null;
|
|
29
|
-
} | {
|
|
30
|
-
kind: "ref";
|
|
31
|
-
name: string;
|
|
32
|
-
};
|
|
33
|
-
/**
|
|
34
|
-
* MEL TypeField.
|
|
35
|
-
*/
|
|
36
|
-
export type MelTypeField = {
|
|
37
|
-
name: string;
|
|
38
|
-
type: MelTypeExpr;
|
|
39
|
-
optional?: boolean;
|
|
40
|
-
};
|
|
41
|
-
/**
|
|
42
|
-
* MEL PatchOp (Translator output - schema operations).
|
|
43
|
-
*
|
|
44
|
-
* @see SPEC v0.4.0 §17.4
|
|
45
|
-
*/
|
|
46
|
-
export type MelPatchOp = {
|
|
47
|
-
kind: "addType";
|
|
48
|
-
typeName: string;
|
|
49
|
-
typeExpr: MelTypeExpr;
|
|
50
|
-
} | {
|
|
51
|
-
kind: "addField";
|
|
52
|
-
typeName: string;
|
|
53
|
-
field: MelTypeField & {
|
|
54
|
-
defaultValue?: unknown;
|
|
55
|
-
};
|
|
56
|
-
} | {
|
|
57
|
-
kind: "setFieldType";
|
|
58
|
-
path: string;
|
|
59
|
-
typeExpr: MelTypeExpr;
|
|
60
|
-
} | {
|
|
61
|
-
kind: "setDefaultValue";
|
|
62
|
-
path: string;
|
|
63
|
-
value: unknown;
|
|
64
|
-
} | {
|
|
65
|
-
kind: "addConstraint";
|
|
66
|
-
targetPath: string;
|
|
67
|
-
rule: MelExprNode;
|
|
68
|
-
message?: string;
|
|
69
|
-
} | {
|
|
70
|
-
kind: "addComputed";
|
|
71
|
-
name: string;
|
|
72
|
-
expr: MelExprNode;
|
|
73
|
-
deps?: string[];
|
|
74
|
-
} | {
|
|
75
|
-
kind: "addActionAvailable";
|
|
76
|
-
actionName: string;
|
|
77
|
-
expr: MelExprNode;
|
|
78
|
-
};
|
|
79
|
-
/**
|
|
80
|
-
* MEL PatchFragment (Translator output).
|
|
81
|
-
*
|
|
82
|
-
* Contains MEL IR expressions that need lowering.
|
|
83
|
-
*
|
|
84
|
-
* @see SPEC v0.4.0 §17.4
|
|
85
|
-
*/
|
|
86
|
-
export interface MelPatchFragment {
|
|
87
|
-
/**
|
|
88
|
-
* Unique fragment identifier (content-addressed).
|
|
89
|
-
*/
|
|
90
|
-
fragmentId: string;
|
|
91
|
-
/**
|
|
92
|
-
* Source intent identifier.
|
|
93
|
-
*/
|
|
94
|
-
sourceIntentId: string;
|
|
95
|
-
/**
|
|
96
|
-
* Fragment operation with MEL IR expressions.
|
|
97
|
-
*/
|
|
98
|
-
op: MelPatchOp;
|
|
99
|
-
/**
|
|
100
|
-
* Optional condition (MEL IR).
|
|
101
|
-
* Preserved in output as Core IR.
|
|
102
|
-
*/
|
|
103
|
-
condition?: MelExprNode;
|
|
104
|
-
/**
|
|
105
|
-
* Confidence score (0-1).
|
|
106
|
-
*/
|
|
107
|
-
confidence: number;
|
|
108
|
-
/**
|
|
109
|
-
* Evidence strings.
|
|
110
|
-
*/
|
|
111
|
-
evidence: string[];
|
|
112
|
-
/**
|
|
113
|
-
* Creation timestamp (ISO 8601).
|
|
114
|
-
*/
|
|
115
|
-
createdAt: string;
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Lowered TypeExpr (Core format).
|
|
119
|
-
*/
|
|
120
|
-
export type LoweredTypeExpr = {
|
|
121
|
-
kind: "primitive";
|
|
122
|
-
name: "string" | "number" | "boolean" | "null";
|
|
123
|
-
} | {
|
|
124
|
-
kind: "array";
|
|
125
|
-
element: LoweredTypeExpr;
|
|
126
|
-
} | {
|
|
127
|
-
kind: "object";
|
|
128
|
-
fields: LoweredTypeField[];
|
|
129
|
-
} | {
|
|
130
|
-
kind: "union";
|
|
131
|
-
members: LoweredTypeExpr[];
|
|
132
|
-
} | {
|
|
133
|
-
kind: "literal";
|
|
134
|
-
value: string | number | boolean | null;
|
|
135
|
-
} | {
|
|
136
|
-
kind: "ref";
|
|
137
|
-
name: string;
|
|
138
|
-
};
|
|
139
|
-
/**
|
|
140
|
-
* Lowered TypeField.
|
|
141
|
-
*/
|
|
142
|
-
export type LoweredTypeField = {
|
|
143
|
-
name: string;
|
|
144
|
-
type: LoweredTypeExpr;
|
|
145
|
-
optional?: boolean;
|
|
146
|
-
};
|
|
147
|
-
/**
|
|
148
|
-
* Lowered PatchOp (Core IR expressions).
|
|
149
|
-
*
|
|
150
|
-
* Same structure as MelPatchOp but with Core IR expressions.
|
|
151
|
-
*/
|
|
152
|
-
export type LoweredPatchOp = {
|
|
153
|
-
kind: "addType";
|
|
154
|
-
typeName: string;
|
|
155
|
-
typeExpr: LoweredTypeExpr;
|
|
156
|
-
} | {
|
|
157
|
-
kind: "addField";
|
|
158
|
-
typeName: string;
|
|
159
|
-
field: LoweredTypeField & {
|
|
160
|
-
defaultValue?: unknown;
|
|
161
|
-
};
|
|
162
|
-
} | {
|
|
163
|
-
kind: "setFieldType";
|
|
164
|
-
path: string;
|
|
165
|
-
typeExpr: LoweredTypeExpr;
|
|
166
|
-
} | {
|
|
167
|
-
kind: "setDefaultValue";
|
|
168
|
-
path: string;
|
|
169
|
-
value: unknown;
|
|
170
|
-
} | {
|
|
171
|
-
kind: "addConstraint";
|
|
172
|
-
targetPath: string;
|
|
173
|
-
rule: CoreExprNode;
|
|
174
|
-
message?: string;
|
|
175
|
-
} | {
|
|
176
|
-
kind: "addComputed";
|
|
177
|
-
name: string;
|
|
178
|
-
expr: CoreExprNode;
|
|
179
|
-
deps?: string[];
|
|
180
|
-
} | {
|
|
181
|
-
kind: "addActionAvailable";
|
|
182
|
-
actionName: string;
|
|
183
|
-
expr: CoreExprNode;
|
|
184
|
-
};
|
|
185
|
-
/**
|
|
186
|
-
* Schema conditional patch operation (intermediate IR for Translator → Host).
|
|
187
|
-
*
|
|
188
|
-
* Used for schema evolution operations (addType, addField, addComputed, etc.).
|
|
189
|
-
* Preserves fragment condition for later evaluation.
|
|
190
|
-
*
|
|
191
|
-
* @see SPEC v0.4.0 §17.5
|
|
192
|
-
*/
|
|
193
|
-
export interface SchemaConditionalPatchOp {
|
|
194
|
-
/**
|
|
195
|
-
* Fragment identifier (for tracing).
|
|
196
|
-
*/
|
|
197
|
-
fragmentId: string;
|
|
198
|
-
/**
|
|
199
|
-
* Condition expression (Core IR).
|
|
200
|
-
* If present, op is only applied when condition evaluates to true.
|
|
201
|
-
*
|
|
202
|
-
* @see FDR-MEL-073
|
|
203
|
-
*/
|
|
204
|
-
condition?: CoreExprNode;
|
|
205
|
-
/**
|
|
206
|
-
* Lowered patch operation.
|
|
207
|
-
*/
|
|
208
|
-
op: LoweredPatchOp;
|
|
209
|
-
/**
|
|
210
|
-
* Confidence (preserved from fragment).
|
|
211
|
-
*/
|
|
212
|
-
confidence: number;
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* @deprecated Use SchemaConditionalPatchOp instead.
|
|
216
|
-
*/
|
|
217
|
-
export type ConditionalPatchOp = SchemaConditionalPatchOp;
|
|
218
|
-
/**
|
|
219
|
-
* Lower PatchFragment[] to SchemaConditionalPatchOp[].
|
|
220
|
-
*
|
|
221
|
-
* Transforms MEL IR expressions to Core IR expressions.
|
|
222
|
-
* Preserves fragment conditions for evaluation phase.
|
|
223
|
-
*
|
|
224
|
-
* @param fragments - MEL IR patch fragments from Translator
|
|
225
|
-
* @param ctx - Patch lowering context
|
|
226
|
-
* @returns Core IR schema conditional patch operations
|
|
227
|
-
*
|
|
228
|
-
* @see SPEC v0.4.0 §17.5
|
|
229
|
-
*/
|
|
230
|
-
export declare function lowerPatchFragments(fragments: MelPatchFragment[], ctx: PatchLoweringContext): SchemaConditionalPatchOp[];
|
|
231
|
-
//# sourceMappingURL=lower-patch.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lower-patch.d.ts","sourceRoot":"","sources":["../../src/lowering/lower-patch.ts"],"names":[],"mappings":"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"}
|