@manifesto-ai/compiler 3.6.0 → 3.7.1
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 +1 -1
- package/dist/annotations.d.ts +2 -0
- package/dist/api/compile-mel.d.ts +1 -0
- package/dist/api/index.d.ts +1 -1
- package/dist/{chunk-BGYS7OOZ.js → chunk-2ZRNXFBQ.js} +1 -1
- package/dist/chunk-O654OLQV.js +12 -0
- package/dist/{chunk-SCNQFUUN.js → chunk-Q56VWGSA.js} +1 -1
- package/dist/esbuild.js +1 -1
- package/dist/index.js +10 -10
- package/dist/node-loader.js +1 -1
- package/dist/rollup.js +1 -1
- package/dist/rspack.js +1 -1
- package/dist/source-map.d.ts +70 -0
- package/dist/vite.js +1 -1
- package/dist/webpack.js +1 -1
- package/package.json +10 -10
- package/dist/chunk-JNATEPDW.js +0 -12
package/dist/index.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import{$ as H,A as
|
|
1
|
+
import{$ as H,A as kt,B as vt,C as bt,D as w,E as Nt,F as Ct,G as z,H as Pt,I as $t,J as At,K as St,L as xt,M as wt,N as Rt,O as Ot,P as Ft,Q as jt,R as Tt,S as Dt,T as S,U as It,V as _t,W as Mt,X as qt,Y as Lt,Z as B,_ as K,a as Xn,aa as Ut,b as Yn,ba as J,c as Qn,ca as X,d as Zn,da as Vt,e as et,ea as Wt,f as nt,fa as Gt,g as tt,h as rt,i as at,j as ot,k as it,l as _,m as st,n as ut,o as ct,p as lt,q as dt,r as pt,s as ft,t as mt,u as gt,v as M,w as yt,x as ht,y as G,z as Et}from"./chunk-O654OLQV.js";var Y={E001:{code:"E001",message:"$system.* cannot be used in computed expressions (non-deterministic)",category:"semantic"},E002:{code:"E002",message:"$system.* cannot be used in state initializers",category:"semantic"},E003:{code:"E003",message:"Invalid $system reference",category:"semantic"},E004:{code:"E004",message:"Identifier starts with reserved prefix '__sys__'",category:"syntax"},E005:{code:"E005",message:"available expression must be pure (no Effects, no $system.*)",category:"semantic"},E006:{code:"E006",message:"fail must be inside a guard (when, once, or onceIntent)",category:"semantic"},E007:{code:"E007",message:"stop must be inside a guard (when, once, or onceIntent)",category:"semantic"},E008:{code:"E008",message:"stop message suggests waiting/pending - use 'Already processed' style instead",category:"semantic"},E009:{code:"E009",message:"Primitive aggregation (sum, min, max) only allowed in computed",category:"semantic"},E010:{code:"E010",message:"Primitive aggregation does not allow composition - use direct reference only",category:"semantic"},E011:{code:"E011",message:"reduce/fold/scan is forbidden - use sum, min, max for aggregation",category:"semantic"},E013:{code:"E013",message:"Circular include detected",category:"semantic"},E014:{code:"E014",message:"Include expansion depth exceeds limit",category:"semantic"},E015:{code:"E015",message:"Include target is not a declared flow",category:"semantic"},E016:{code:"E016",message:"Include not allowed in InnerStmt position",category:"semantic"},E017:{code:"E017",message:"once() not allowed in flow",category:"semantic"},E018:{code:"E018",message:"onceIntent not allowed in flow",category:"semantic"},E019:{code:"E019",message:"patch not allowed in flow",category:"semantic"},E020:{code:"E020",message:"effect not allowed in flow",category:"semantic"},E021:{code:"E021",message:"Flow parameter name conflicts with top-level identifier",category:"semantic"},E022:{code:"E022",message:"Flow and action share the same name",category:"semantic"},E023:{code:"E023",message:"Wrong number of arguments for included flow",category:"semantic"},E024:{code:"E024",message:"Include argument type mismatch",category:"type"},E030:{code:"E030",message:"Collection element type does not have an 'id' field",category:"type"},E030a:{code:"E030a",message:"Collection element 'id' field is not a primitive type",category:"type"},E030b:{code:"E030b",message:"Duplicate '.id' values detected in state initializer",category:"type"},E031:{code:"E031",message:"updateById/removeById not allowed in this context",category:"semantic"},E032:{code:"E032",message:"Nested transform primitive",category:"semantic"},E033:{code:"E033",message:"Transform primitive collection argument is not a state path",category:"semantic"},E034:{code:"E034",message:"Transform primitive in guard condition",category:"semantic"},E035:{code:"E035",message:"Transform primitive in available condition",category:"semantic"},E040:{code:"E040",message:"Circular computed dependency",category:"semantic"},E041:{code:"E041",message:"Computed references undeclared identifier",category:"semantic"},E042:{code:"E042",message:"State initializer references non-constant value",category:"semantic"},E043:{code:"E043",message:"Non-trivial union type cannot be lowered to FieldSpec",category:"type"},E044:{code:"E044",message:"Recursive named type cannot be lowered to FieldSpec",category:"type"},E045:{code:"E045",message:"Nullable type cannot be lowered to FieldSpec",category:"type"},E046:{code:"E046",message:"Record type cannot be lowered to FieldSpec",category:"type"},E047:{code:"E047",message:"dispatchable expression must be pure (state/computed/action parameters only)",category:"semantic"},E048:{code:"E048",message:"Transform primitive in dispatchable condition",category:"semantic"},E049:{code:"E049",message:"Invalid literal clamp bounds",category:"semantic"},E050:{code:"E050",message:"Invalid match() form",category:"semantic"},E051:{code:"E051",message:"Duplicate match() key",category:"semantic"},E052:{code:"E052",message:"Invalid argmax()/argmin() form",category:"semantic"},E053:{code:"E053",message:"@meta can attach only to domain, type, type field, state field, computed, or action declarations",category:"syntax"},E054:{code:"E054",message:"Action-parameter annotations are not part of the current MEL syntax",category:"syntax"},E055:{code:"E055",message:"Annotation payloads must be JSON-like literals",category:"semantic"},E056:{code:"E056",message:"Annotation payload nesting exceeds the current MEL limit of 2 levels",category:"semantic"},E057:{code:"E057",message:"Annotation target does not map to the emitted DomainSchema",category:"semantic"},E_UNDEFINED:{code:"E_UNDEFINED",message:"Undefined identifier",category:"semantic"},E_DUPLICATE:{code:"E_DUPLICATE",message:"Duplicate identifier",category:"semantic"},E_INVALID_ACCESS:{code:"E_INVALID_ACCESS",message:"Invalid access to identifier in this context",category:"semantic"},E_UNGUARDED_STMT:{code:"E_UNGUARDED_STMT",message:"Statement must be inside a guard (when or once)",category:"semantic"},E_UNGUARDED_PATCH:{code:"E_UNGUARDED_PATCH",message:"Patch must be inside a guard",category:"semantic"},E_UNGUARDED_EFFECT:{code:"E_UNGUARDED_EFFECT",message:"Effect must be inside a guard",category:"semantic"},E_ARG_COUNT:{code:"E_ARG_COUNT",message:"Wrong number of arguments",category:"type"},E_TYPE_MISMATCH:{code:"E_TYPE_MISMATCH",message:"Type mismatch",category:"type"},W_NON_BOOL_COND:{code:"W_NON_BOOL_COND",message:"Condition may not be boolean",category:"semantic"},W_UNUSED:{code:"W_UNUSED",message:"Unused identifier",category:"semantic"},W012:{code:"W012",message:"Anonymous object type in state field - use named type declaration instead",category:"type"},MEL_LEXER:{code:"MEL_LEXER",message:"Lexer error",category:"syntax"},MEL_PARSER:{code:"MEL_PARSER",message:"Parser error",category:"syntax"}};function Ht(e){return Y[e]}function Jt(e){let n=Y[e];return n?`${e}: ${n.message}`:e}function Q(e,n){let{code:t,message:r,location:a}=e;if(!a||a.start.line===0&&a.start.column===0)return`[${t}] ${r}`;let{line:o,column:s}=a.start,l=`[${t}] ${r} (${o}:${s})`;if(!n)return l;let y=n.split(`
|
|
2
2
|
`)[o-1];if(!y)return l;let h=String(o).padStart(4," "),f=`${h} | ${y}`,p=Math.max(1,a.end.line===a.start.line?Math.min(a.end.column-s,y.length-s+1):1),E=`${" ".repeat(h.length+3+s-1)}${"^".repeat(p)}`;return`${l}
|
|
3
3
|
${f}
|
|
4
|
-
${E}`}function
|
|
4
|
+
${E}`}function me(e,n){return e.map(t=>Q(t,n)).join(`
|
|
5
5
|
|
|
6
|
-
`)}function Zt(e,n,t){switch(e){case"+":return{kind:"add",left:n,right:t};case"-":return{kind:"sub",left:n,right:t};case"*":return{kind:"mul",left:n,right:t};case"/":return{kind:"div",left:n,right:t};case"%":return{kind:"mod",left:n,right:t};case"==":return{kind:"eq",left:n,right:t};case"!=":return{kind:"neq",left:n,right:t};case"<":return{kind:"lt",left:n,right:t};case"<=":return{kind:"lte",left:n,right:t};case">":return{kind:"gt",left:n,right:t};case">=":return{kind:"gte",left:n,right:t};case"&&":return{kind:"and",args:[n,t]};case"||":return{kind:"or",args:[n,t]};case"??":return{kind:"coalesce",args:[n,t]}}}function er(e,n){switch(e){case"add":return{kind:"add",left:n[0],right:n[1]};case"sub":return{kind:"sub",left:n[0],right:n[1]};case"mul":return{kind:"mul",left:n[0],right:n[1]};case"div":return{kind:"div",left:n[0],right:n[1]};case"mod":return{kind:"mod",left:n[0],right:n[1]};case"neg":return{kind:"neg",arg:n[0]};case"abs":return{kind:"abs",arg:n[0]};case"min":return n.length===1?{kind:"minArray",array:n[0]}:{kind:"min",args:n};case"max":return n.length===1?{kind:"maxArray",array:n[0]}:{kind:"max",args:n};case"sum":return{kind:"sumArray",array:n[0]};case"floor":return{kind:"floor",arg:n[0]};case"ceil":return{kind:"ceil",arg:n[0]};case"round":return{kind:"round",arg:n[0]};case"sqrt":return{kind:"sqrt",arg:n[0]};case"pow":return{kind:"pow",base:n[0],exponent:n[1]};case"eq":return{kind:"eq",left:n[0],right:n[1]};case"neq":return{kind:"neq",left:n[0],right:n[1]};case"gt":return{kind:"gt",left:n[0],right:n[1]};case"gte":return{kind:"gte",left:n[0],right:n[1]};case"lt":return{kind:"lt",left:n[0],right:n[1]};case"lte":return{kind:"lte",left:n[0],right:n[1]};case"and":return{kind:"and",args:n};case"or":return{kind:"or",args:n};case"not":return{kind:"not",arg:n[0]};case"isNull":return{kind:"isNull",arg:n[0]};case"isNotNull":return{kind:"not",arg:{kind:"isNull",arg:n[0]}};case"typeof":return{kind:"typeof",arg:n[0]};case"coalesce":return{kind:"coalesce",args:n};case"concat":return{kind:"concat",args:n};case"trim":return{kind:"trim",str:n[0]};case"lower":case"toLowerCase":return{kind:"toLowerCase",str:n[0]};case"upper":case"toUpperCase":return{kind:"toUpperCase",str:n[0]};case"strlen":case"strLen":return{kind:"strLen",str:n[0]};case"substr":case"substring":return n[2]?{kind:"substring",str:n[0],start:n[1],end:n[2]}:{kind:"substring",str:n[0],start:n[1]};case"toString":return{kind:"toString",arg:n[0]};case"len":case"length":return{kind:"len",arg:n[0]};case"at":return{kind:"at",array:n[0],index:n[1]};case"first":return{kind:"first",array:n[0]};case"last":return{kind:"last",array:n[0]};case"slice":return n[2]?{kind:"slice",array:n[0],start:n[1],end:n[2]}:{kind:"slice",array:n[0],start:n[1]};case"includes":return{kind:"includes",array:n[0],item:n[1]};case"filter":return{kind:"filter",array:n[0],predicate:n[1]};case"map":return{kind:"map",array:n[0],mapper:n[1]};case"find":return{kind:"find",array:n[0],predicate:n[1]};case"every":return{kind:"every",array:n[0],predicate:n[1]};case"some":return{kind:"some",array:n[0],predicate:n[1]};case"append":return{kind:"append",array:n[0],items:n.slice(1)};case"keys":return{kind:"keys",obj:n[0]};case"values":return{kind:"values",obj:n[0]};case"entries":return{kind:"entries",obj:n[0]};case"merge":return{kind:"merge",objects:n};case"if":case"cond":return{kind:"if",cond:n[0],then:n[1],else:n[2]};default:return{kind:"object",fields:{__call:{kind:"lit",value:e},__args:{kind:"lit",value:n}}}}}import{hashSchemaSync as fe,semanticPathToPatchPath as me}from"@manifesto-ai/core";function Y(e){let n=structuredClone(e),t=!1;for(let[s,l]of Object.entries(n.actions)){let c=ge(s);if(O(l.flow,c),c.slots.size!==0){t=!0;for(let y of c.slots.values())Ee(n.state.fields,s,y);n.actions[s]={...l,flow:ve(l.flow,c)}}}if(!t)return n;let{hash:r,...a}=n,o=fe(a);return{...a,hash:o}}function ge(e){return{actionName:e,slots:new Map}}function ye(e){switch(e){case"timestamp":case"time.now":return"number";default:return"string"}}function he(e){return e.replaceAll(".","_")}function R(e,n){let t=e[n];if(t&&t.type==="object")return t.required=!1,t.default??={},t.fields??={},t;let r={type:"object",required:!1,default:{},fields:{}};return e[n]=r,r}function Ee(e,n,t){let r=R(e,"$mel"),a=R(r.fields??(r.fields={}),"sys"),o=R(a.fields??(a.fields={}),n),s=R(o.fields??(o.fields={}),t.normalizedKey),l=s.fields??(s.fields={});l.intent={type:"string",required:!1,default:null},l.value={type:ye(t.key),required:!1,default:null}}function ke(e){return me(e)}function O(e,n){switch(e.kind){case"seq":for(let t of e.steps)O(t,n);break;case"if":C(e.cond,n),O(e.then,n),e.else&&O(e.else,n);break;case"patch":e.value&&C(e.value,n);break;case"effect":for(let t of Object.values(e.params))C(t,n);break;case"fail":e.message&&C(e.message,n);break}}function C(e,n){if(e.kind==="get"&&e.path.startsWith("$system.")){let t=e.path.slice(8);if(!n.slots.has(t)){let r=he(t);n.slots.set(t,{key:t,normalizedKey:r,valuePath:`$mel.sys.${n.actionName}.${r}.value`,intentPath:`$mel.sys.${n.actionName}.${r}.intent`})}return}if(e.kind==="object"){for(let t of Object.values(e.fields))t&&typeof t=="object"&&"kind"in t&&C(t,n);return}for(let t of Object.values(e))if(typeof t=="object"&&t!==null)if(Array.isArray(t))for(let r of t)typeof r=="object"&&r!==null&&"kind"in r&&C(r,n);else"kind"in t&&C(t,n)}function ve(e,n){if(n.slots.size===0)return e;let t=[];for(let l of n.slots.values()){let c={kind:"if",cond:{kind:"neq",left:{kind:"get",path:l.intentPath},right:{kind:"get",path:"meta.intentId"}},then:{kind:"seq",steps:[{kind:"patch",op:"set",path:ke(l.intentPath),value:{kind:"get",path:"meta.intentId"}},{kind:"effect",type:"system.get",params:{key:{kind:"lit",value:l.key},into:{kind:"lit",value:l.valuePath}}}]}};t.push(c)}let r=[];for(let l of n.slots.values())r.push({kind:"eq",left:{kind:"get",path:l.intentPath},right:{kind:"get",path:"meta.intentId"}});let a=r.length===1?r[0]:{kind:"and",args:r},o=F(e,n),s={kind:"if",cond:a,then:o};return{kind:"seq",steps:[...t,s]}}function F(e,n){switch(e.kind){case"seq":return{kind:"seq",steps:e.steps.map(r=>F(r,n))};case"if":return{kind:"if",cond:m(e.cond,n),then:F(e.then,n),else:e.else?F(e.else,n):void 0};case"patch":return{kind:"patch",op:e.op,path:e.path,value:e.value?m(e.value,n):void 0};case"effect":let t={};for(let[r,a]of Object.entries(e.params))t[r]=m(a,n);return{kind:"effect",type:e.type,params:t};case"fail":return{kind:"fail",code:e.code,message:e.message?m(e.message,n):void 0};default:return e}}function m(e,n){if(e.kind==="get"&&e.path.startsWith("$system.")){let t=e.path.slice(8),r=n.slots.get(t);if(r)return{kind:"get",path:r.valuePath}}switch(e.kind){case"eq":case"neq":case"gt":case"gte":case"lt":case"lte":case"add":case"sub":case"mul":case"div":case"mod":return{kind:e.kind,left:m(e.left,n),right:m(e.right,n)};case"and":case"or":case"coalesce":case"concat":case"min":case"max":case"merge":return{kind:e.kind,args:e.args.map(r=>m(r,n))};case"not":case"neg":case"abs":case"floor":case"ceil":case"round":case"isNull":case"typeof":case"toString":case"len":case"keys":case"values":case"entries":case"first":case"last":return{kind:e.kind,arg:m(e.arg,n)};case"trim":case"toLowerCase":case"toUpperCase":case"strLen":return{kind:e.kind,str:m(e.str,n)};case"at":case"includes":return{kind:e.kind,array:m(e.array,n),index:m(e.index??e.item,n)};case"filter":case"map":case"find":case"every":case"some":return{kind:e.kind,array:m(e.array,n),predicate:m(e.predicate??e.mapper,n)};case"if":return{kind:"if",cond:m(e.cond,n),then:m(e.then,n),else:m(e.else,n)};case"field":return{kind:"field",object:m(e.object,n),property:e.property};case"object":let t={};for(let[r,a]of Object.entries(e.fields))t[r]=m(a,n);return{kind:"object",fields:t};case"append":return{kind:"append",array:m(e.array,n),items:e.items.map(r=>m(r,n))};default:return e}}function k(e){switch(e.kind){case"primitive":return e.name;case"literal":return be(e.value);case"ref":return e.name;case"array":return`Array<${k(e.element)}>`;case"record":return`Record<${k(e.key)}, ${k(e.value)}>`;case"union":return Ne(e.members);case"object":return Ce(e.fields)}}function be(e){return e===null?"null":typeof e=="string"?`"${Q(e)}"`:typeof e=="boolean"?e?"true":"false":String(e)}function Ne(e){return e.length===0?"never":e.map(k).join(" | ")}function Ce(e){return e.length===0?"{}":`{ ${e.map(t=>{let r=t.optional?"?":"";return`${t.name}${r}: ${k(t.type)}`}).join(", ")} }`}function $(e,n){let t=k(e.type);return n!==void 0?`${e.name}: ${t} = ${P(n)}`:e.optional?`${e.name}?: ${t}`:`${e.name}: ${t}`}function P(e){return e===null||e===void 0?"null":typeof e=="string"?`"${Q(e)}"`:typeof e=="number"?String(e):typeof e=="boolean"?e?"true":"false":Array.isArray(e)?`[${e.map(P).join(", ")}]`:typeof e=="object"?`{ ${Object.entries(e).map(([t,r])=>`${t}: ${P(r)}`).join(", ")} }`:String(e)}function Q(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t")}function i(e){switch(e.kind){case"lit":return q(e.value);case"get":return Pe(e.path);case"eq":return`eq(${i(e.left)}, ${i(e.right)})`;case"neq":return`neq(${i(e.left)}, ${i(e.right)})`;case"gt":return`gt(${i(e.left)}, ${i(e.right)})`;case"gte":return`gte(${i(e.left)}, ${i(e.right)})`;case"lt":return`lt(${i(e.left)}, ${i(e.right)})`;case"lte":return`lte(${i(e.left)}, ${i(e.right)})`;case"and":return!e.args||!Array.isArray(e.args)?"and(/* malformed: args undefined */)":`and(${e.args.map(i).join(", ")})`;case"or":return!e.args||!Array.isArray(e.args)?"or(/* malformed: args undefined */)":`or(${e.args.map(i).join(", ")})`;case"not":return e.arg?`not(${i(e.arg)})`:"not(/* malformed: arg undefined */)";case"if":return`if(${i(e.cond)}, ${i(e.then)}, ${i(e.else)})`;case"add":return`add(${i(e.left)}, ${i(e.right)})`;case"sub":return`sub(${i(e.left)}, ${i(e.right)})`;case"mul":return`mul(${i(e.left)}, ${i(e.right)})`;case"div":return`div(${i(e.left)}, ${i(e.right)})`;case"mod":return`mod(${i(e.left)}, ${i(e.right)})`;case"concat":return!e.args||!Array.isArray(e.args)?"concat(/* malformed: args undefined */)":`concat(${e.args.map(i).join(", ")})`;case"substring":return e.end!==void 0?`substring(${i(e.str)}, ${i(e.start)}, ${i(e.end)})`:`substring(${i(e.str)}, ${i(e.start)})`;case"trim":return`trim(${i(e.str)})`;case"len":return`len(${i(e.arg)})`;case"at":return`at(${i(e.array)}, ${i(e.index)})`;case"first":return`first(${i(e.array)})`;case"last":return`last(${i(e.array)})`;case"slice":return e.end!==void 0?`slice(${i(e.array)}, ${i(e.start)}, ${i(e.end)})`:`slice(${i(e.array)}, ${i(e.start)})`;case"includes":return`includes(${i(e.array)}, ${i(e.item)})`;case"filter":return`filter(${i(e.array)}, ${i(e.predicate)})`;case"map":return`map(${i(e.array)}, ${i(e.mapper)})`;case"find":return`find(${i(e.array)}, ${i(e.predicate)})`;case"every":return`every(${i(e.array)}, ${i(e.predicate)})`;case"some":return`some(${i(e.array)}, ${i(e.predicate)})`;case"append":return!e.items||!Array.isArray(e.items)?`append(${i(e.array)}, /* malformed: items undefined */)`:`append(${i(e.array)}, ${e.items.map(i).join(", ")})`;case"object":return $e(e.fields);case"field":return`${i(e.object)}.${e.property}`;case"keys":return`keys(${i(e.obj)})`;case"values":return`values(${i(e.obj)})`;case"entries":return`entries(${i(e.obj)})`;case"merge":return!e.objects||!Array.isArray(e.objects)?"merge(/* malformed: objects undefined */)":`merge(${e.objects.map(i).join(", ")})`;case"typeof":return`typeof(${i(e.arg)})`;case"isNull":return`isNull(${i(e.arg)})`;case"coalesce":return!e.args||!Array.isArray(e.args)?"coalesce(/* malformed: args undefined */)":`coalesce(${e.args.map(i).join(", ")})`;default:return`/* unknown: ${JSON.stringify(e)} */`}}function q(e){return e===null||e===void 0?"null":typeof e=="string"?`"${Ae(e)}"`:typeof e=="number"?String(e):typeof e=="boolean"?e?"true":"false":Array.isArray(e)?`[${e.map(q).join(", ")}]`:typeof e=="object"?`{ ${Object.entries(e).map(([t,r])=>`${t}: ${q(r)}`).join(", ")} }`:String(e)}function Pe(e){return e.startsWith("$meta.")||e.startsWith("$system.")||e.startsWith("$input.")?e:e.startsWith("data.")?e.slice(5):e}function $e(e){return`{ ${Object.entries(e).map(([t,r])=>`${t}: ${i(r)}`).join(", ")} }`}function Ae(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t")}import{parsePath as Z}from"@manifesto-ai/core";var Se={indent:" ",includeComments:!1,commentPrefix:"// "};function b(e,n){let t={...Se,...n};switch(e.kind){case"addType":return xe(e,t);case"addField":return we(e,t);case"setFieldType":return Re(e,t);case"setDefaultValue":return Oe(e,t);case"addConstraint":return Fe(e,t);case"addComputed":return je(e,t);case"addActionAvailable":return Te(e,t);default:return`// Unknown operation: ${JSON.stringify(e)}`}}function xe(e,n){let{indent:t}=n;if(e.typeExpr.kind==="object"){let r=e.typeExpr.fields.map(a=>`${t}${$(a)}`).join(`
|
|
6
|
+
`)}function tr(e,n,t){switch(e){case"+":return{kind:"add",left:n,right:t};case"-":return{kind:"sub",left:n,right:t};case"*":return{kind:"mul",left:n,right:t};case"/":return{kind:"div",left:n,right:t};case"%":return{kind:"mod",left:n,right:t};case"==":return{kind:"eq",left:n,right:t};case"!=":return{kind:"neq",left:n,right:t};case"<":return{kind:"lt",left:n,right:t};case"<=":return{kind:"lte",left:n,right:t};case">":return{kind:"gt",left:n,right:t};case">=":return{kind:"gte",left:n,right:t};case"&&":return{kind:"and",args:[n,t]};case"||":return{kind:"or",args:[n,t]};case"??":return{kind:"coalesce",args:[n,t]}}}function rr(e,n){switch(e){case"add":return{kind:"add",left:n[0],right:n[1]};case"sub":return{kind:"sub",left:n[0],right:n[1]};case"mul":return{kind:"mul",left:n[0],right:n[1]};case"div":return{kind:"div",left:n[0],right:n[1]};case"mod":return{kind:"mod",left:n[0],right:n[1]};case"neg":return{kind:"neg",arg:n[0]};case"abs":return{kind:"abs",arg:n[0]};case"min":return n.length===1?{kind:"minArray",array:n[0]}:{kind:"min",args:n};case"max":return n.length===1?{kind:"maxArray",array:n[0]}:{kind:"max",args:n};case"sum":return{kind:"sumArray",array:n[0]};case"floor":return{kind:"floor",arg:n[0]};case"ceil":return{kind:"ceil",arg:n[0]};case"round":return{kind:"round",arg:n[0]};case"sqrt":return{kind:"sqrt",arg:n[0]};case"pow":return{kind:"pow",base:n[0],exponent:n[1]};case"eq":return{kind:"eq",left:n[0],right:n[1]};case"neq":return{kind:"neq",left:n[0],right:n[1]};case"gt":return{kind:"gt",left:n[0],right:n[1]};case"gte":return{kind:"gte",left:n[0],right:n[1]};case"lt":return{kind:"lt",left:n[0],right:n[1]};case"lte":return{kind:"lte",left:n[0],right:n[1]};case"and":return{kind:"and",args:n};case"or":return{kind:"or",args:n};case"not":return{kind:"not",arg:n[0]};case"isNull":return{kind:"isNull",arg:n[0]};case"isNotNull":return{kind:"not",arg:{kind:"isNull",arg:n[0]}};case"typeof":return{kind:"typeof",arg:n[0]};case"coalesce":return{kind:"coalesce",args:n};case"concat":return{kind:"concat",args:n};case"trim":return{kind:"trim",str:n[0]};case"lower":case"toLowerCase":return{kind:"toLowerCase",str:n[0]};case"upper":case"toUpperCase":return{kind:"toUpperCase",str:n[0]};case"strlen":case"strLen":return{kind:"strLen",str:n[0]};case"substr":case"substring":return n[2]?{kind:"substring",str:n[0],start:n[1],end:n[2]}:{kind:"substring",str:n[0],start:n[1]};case"toString":return{kind:"toString",arg:n[0]};case"len":case"length":return{kind:"len",arg:n[0]};case"at":return{kind:"at",array:n[0],index:n[1]};case"first":return{kind:"first",array:n[0]};case"last":return{kind:"last",array:n[0]};case"slice":return n[2]?{kind:"slice",array:n[0],start:n[1],end:n[2]}:{kind:"slice",array:n[0],start:n[1]};case"includes":return{kind:"includes",array:n[0],item:n[1]};case"filter":return{kind:"filter",array:n[0],predicate:n[1]};case"map":return{kind:"map",array:n[0],mapper:n[1]};case"find":return{kind:"find",array:n[0],predicate:n[1]};case"every":return{kind:"every",array:n[0],predicate:n[1]};case"some":return{kind:"some",array:n[0],predicate:n[1]};case"append":return{kind:"append",array:n[0],items:n.slice(1)};case"keys":return{kind:"keys",obj:n[0]};case"values":return{kind:"values",obj:n[0]};case"entries":return{kind:"entries",obj:n[0]};case"merge":return{kind:"merge",objects:n};case"if":case"cond":return{kind:"if",cond:n[0],then:n[1],else:n[2]};default:return{kind:"object",fields:{__call:{kind:"lit",value:e},__args:{kind:"lit",value:n}}}}}import{hashSchemaSync as ge,semanticPathToPatchPath as ye}from"@manifesto-ai/core";function Z(e){let n=structuredClone(e),t=!1;for(let[s,l]of Object.entries(n.actions)){let c=he(s);if(O(l.flow,c),c.slots.size!==0){t=!0;for(let y of c.slots.values())ve(n.state.fields,s,y);n.actions[s]={...l,flow:Ne(l.flow,c)}}}if(!t)return n;let{hash:r,...a}=n,o=ge(a);return{...a,hash:o}}function he(e){return{actionName:e,slots:new Map}}function Ee(e){switch(e){case"timestamp":case"time.now":return"number";default:return"string"}}function ke(e){return e.replaceAll(".","_")}function R(e,n){let t=e[n];if(t&&t.type==="object")return t.required=!1,t.default??={},t.fields??={},t;let r={type:"object",required:!1,default:{},fields:{}};return e[n]=r,r}function ve(e,n,t){let r=R(e,"$mel"),a=R(r.fields??(r.fields={}),"sys"),o=R(a.fields??(a.fields={}),n),s=R(o.fields??(o.fields={}),t.normalizedKey),l=s.fields??(s.fields={});l.intent={type:"string",required:!1,default:null},l.value={type:Ee(t.key),required:!1,default:null}}function be(e){return ye(e)}function O(e,n){switch(e.kind){case"seq":for(let t of e.steps)O(t,n);break;case"if":P(e.cond,n),O(e.then,n),e.else&&O(e.else,n);break;case"patch":e.value&&P(e.value,n);break;case"effect":for(let t of Object.values(e.params))P(t,n);break;case"fail":e.message&&P(e.message,n);break}}function P(e,n){if(e.kind==="get"&&e.path.startsWith("$system.")){let t=e.path.slice(8);if(!n.slots.has(t)){let r=ke(t);n.slots.set(t,{key:t,normalizedKey:r,valuePath:`$mel.sys.${n.actionName}.${r}.value`,intentPath:`$mel.sys.${n.actionName}.${r}.intent`})}return}if(e.kind==="object"){for(let t of Object.values(e.fields))t&&typeof t=="object"&&"kind"in t&&P(t,n);return}for(let t of Object.values(e))if(typeof t=="object"&&t!==null)if(Array.isArray(t))for(let r of t)typeof r=="object"&&r!==null&&"kind"in r&&P(r,n);else"kind"in t&&P(t,n)}function Ne(e,n){if(n.slots.size===0)return e;let t=[];for(let l of n.slots.values()){let c={kind:"if",cond:{kind:"neq",left:{kind:"get",path:l.intentPath},right:{kind:"get",path:"meta.intentId"}},then:{kind:"seq",steps:[{kind:"patch",op:"set",path:be(l.intentPath),value:{kind:"get",path:"meta.intentId"}},{kind:"effect",type:"system.get",params:{key:{kind:"lit",value:l.key},into:{kind:"lit",value:l.valuePath}}}]}};t.push(c)}let r=[];for(let l of n.slots.values())r.push({kind:"eq",left:{kind:"get",path:l.intentPath},right:{kind:"get",path:"meta.intentId"}});let a=r.length===1?r[0]:{kind:"and",args:r},o=F(e,n),s={kind:"if",cond:a,then:o};return{kind:"seq",steps:[...t,s]}}function F(e,n){switch(e.kind){case"seq":return{kind:"seq",steps:e.steps.map(r=>F(r,n))};case"if":return{kind:"if",cond:m(e.cond,n),then:F(e.then,n),else:e.else?F(e.else,n):void 0};case"patch":return{kind:"patch",op:e.op,path:e.path,value:e.value?m(e.value,n):void 0};case"effect":let t={};for(let[r,a]of Object.entries(e.params))t[r]=m(a,n);return{kind:"effect",type:e.type,params:t};case"fail":return{kind:"fail",code:e.code,message:e.message?m(e.message,n):void 0};default:return e}}function m(e,n){if(e.kind==="get"&&e.path.startsWith("$system.")){let t=e.path.slice(8),r=n.slots.get(t);if(r)return{kind:"get",path:r.valuePath}}switch(e.kind){case"eq":case"neq":case"gt":case"gte":case"lt":case"lte":case"add":case"sub":case"mul":case"div":case"mod":return{kind:e.kind,left:m(e.left,n),right:m(e.right,n)};case"and":case"or":case"coalesce":case"concat":case"min":case"max":case"merge":return{kind:e.kind,args:e.args.map(r=>m(r,n))};case"not":case"neg":case"abs":case"floor":case"ceil":case"round":case"isNull":case"typeof":case"toString":case"len":case"keys":case"values":case"entries":case"first":case"last":return{kind:e.kind,arg:m(e.arg,n)};case"trim":case"toLowerCase":case"toUpperCase":case"strLen":return{kind:e.kind,str:m(e.str,n)};case"at":case"includes":return{kind:e.kind,array:m(e.array,n),index:m(e.index??e.item,n)};case"filter":case"map":case"find":case"every":case"some":return{kind:e.kind,array:m(e.array,n),predicate:m(e.predicate??e.mapper,n)};case"if":return{kind:"if",cond:m(e.cond,n),then:m(e.then,n),else:m(e.else,n)};case"field":return{kind:"field",object:m(e.object,n),property:e.property};case"object":let t={};for(let[r,a]of Object.entries(e.fields))t[r]=m(a,n);return{kind:"object",fields:t};case"append":return{kind:"append",array:m(e.array,n),items:e.items.map(r=>m(r,n))};default:return e}}function k(e){switch(e.kind){case"primitive":return e.name;case"literal":return Ce(e.value);case"ref":return e.name;case"array":return`Array<${k(e.element)}>`;case"record":return`Record<${k(e.key)}, ${k(e.value)}>`;case"union":return Pe(e.members);case"object":return $e(e.fields)}}function Ce(e){return e===null?"null":typeof e=="string"?`"${ee(e)}"`:typeof e=="boolean"?e?"true":"false":String(e)}function Pe(e){return e.length===0?"never":e.map(k).join(" | ")}function $e(e){return e.length===0?"{}":`{ ${e.map(t=>{let r=t.optional?"?":"";return`${t.name}${r}: ${k(t.type)}`}).join(", ")} }`}function A(e,n){let t=k(e.type);return n!==void 0?`${e.name}: ${t} = ${$(n)}`:e.optional?`${e.name}?: ${t}`:`${e.name}: ${t}`}function $(e){return e===null||e===void 0?"null":typeof e=="string"?`"${ee(e)}"`:typeof e=="number"?String(e):typeof e=="boolean"?e?"true":"false":Array.isArray(e)?`[${e.map($).join(", ")}]`:typeof e=="object"?`{ ${Object.entries(e).map(([t,r])=>`${t}: ${$(r)}`).join(", ")} }`:String(e)}function ee(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t")}function i(e){switch(e.kind){case"lit":return q(e.value);case"get":return Ae(e.path);case"eq":return`eq(${i(e.left)}, ${i(e.right)})`;case"neq":return`neq(${i(e.left)}, ${i(e.right)})`;case"gt":return`gt(${i(e.left)}, ${i(e.right)})`;case"gte":return`gte(${i(e.left)}, ${i(e.right)})`;case"lt":return`lt(${i(e.left)}, ${i(e.right)})`;case"lte":return`lte(${i(e.left)}, ${i(e.right)})`;case"and":return!e.args||!Array.isArray(e.args)?"and(/* malformed: args undefined */)":`and(${e.args.map(i).join(", ")})`;case"or":return!e.args||!Array.isArray(e.args)?"or(/* malformed: args undefined */)":`or(${e.args.map(i).join(", ")})`;case"not":return e.arg?`not(${i(e.arg)})`:"not(/* malformed: arg undefined */)";case"if":return`if(${i(e.cond)}, ${i(e.then)}, ${i(e.else)})`;case"add":return`add(${i(e.left)}, ${i(e.right)})`;case"sub":return`sub(${i(e.left)}, ${i(e.right)})`;case"mul":return`mul(${i(e.left)}, ${i(e.right)})`;case"div":return`div(${i(e.left)}, ${i(e.right)})`;case"mod":return`mod(${i(e.left)}, ${i(e.right)})`;case"concat":return!e.args||!Array.isArray(e.args)?"concat(/* malformed: args undefined */)":`concat(${e.args.map(i).join(", ")})`;case"substring":return e.end!==void 0?`substring(${i(e.str)}, ${i(e.start)}, ${i(e.end)})`:`substring(${i(e.str)}, ${i(e.start)})`;case"trim":return`trim(${i(e.str)})`;case"len":return`len(${i(e.arg)})`;case"at":return`at(${i(e.array)}, ${i(e.index)})`;case"first":return`first(${i(e.array)})`;case"last":return`last(${i(e.array)})`;case"slice":return e.end!==void 0?`slice(${i(e.array)}, ${i(e.start)}, ${i(e.end)})`:`slice(${i(e.array)}, ${i(e.start)})`;case"includes":return`includes(${i(e.array)}, ${i(e.item)})`;case"filter":return`filter(${i(e.array)}, ${i(e.predicate)})`;case"map":return`map(${i(e.array)}, ${i(e.mapper)})`;case"find":return`find(${i(e.array)}, ${i(e.predicate)})`;case"every":return`every(${i(e.array)}, ${i(e.predicate)})`;case"some":return`some(${i(e.array)}, ${i(e.predicate)})`;case"append":return!e.items||!Array.isArray(e.items)?`append(${i(e.array)}, /* malformed: items undefined */)`:`append(${i(e.array)}, ${e.items.map(i).join(", ")})`;case"object":return Se(e.fields);case"field":return`${i(e.object)}.${e.property}`;case"keys":return`keys(${i(e.obj)})`;case"values":return`values(${i(e.obj)})`;case"entries":return`entries(${i(e.obj)})`;case"merge":return!e.objects||!Array.isArray(e.objects)?"merge(/* malformed: objects undefined */)":`merge(${e.objects.map(i).join(", ")})`;case"typeof":return`typeof(${i(e.arg)})`;case"isNull":return`isNull(${i(e.arg)})`;case"coalesce":return!e.args||!Array.isArray(e.args)?"coalesce(/* malformed: args undefined */)":`coalesce(${e.args.map(i).join(", ")})`;default:return`/* unknown: ${JSON.stringify(e)} */`}}function q(e){return e===null||e===void 0?"null":typeof e=="string"?`"${xe(e)}"`:typeof e=="number"?String(e):typeof e=="boolean"?e?"true":"false":Array.isArray(e)?`[${e.map(q).join(", ")}]`:typeof e=="object"?`{ ${Object.entries(e).map(([t,r])=>`${t}: ${q(r)}`).join(", ")} }`:String(e)}function Ae(e){return e.startsWith("$meta.")||e.startsWith("$system.")||e.startsWith("$input.")?e:e.startsWith("data.")?e.slice(5):e}function Se(e){return`{ ${Object.entries(e).map(([t,r])=>`${t}: ${i(r)}`).join(", ")} }`}function xe(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t")}import{parsePath as ne}from"@manifesto-ai/core";var we={indent:" ",includeComments:!1,commentPrefix:"// "};function b(e,n){let t={...we,...n};switch(e.kind){case"addType":return Re(e,t);case"addField":return Oe(e,t);case"setFieldType":return Fe(e,t);case"setDefaultValue":return je(e,t);case"addConstraint":return Te(e,t);case"addComputed":return De(e,t);case"addActionAvailable":return Ie(e,t);default:return`// Unknown operation: ${JSON.stringify(e)}`}}function Re(e,n){let{indent:t}=n;if(e.typeExpr.kind==="object"){let r=e.typeExpr.fields.map(a=>`${t}${A(a)}`).join(`
|
|
7
7
|
`);return`type ${e.typeName} {
|
|
8
8
|
${r}
|
|
9
|
-
}`}return`type ${e.typeName} = ${k(e.typeExpr)}`}function
|
|
10
|
-
`)}function
|
|
11
|
-
`)}function
|
|
12
|
-
`)}function
|
|
13
|
-
`)}function
|
|
9
|
+
}`}return`type ${e.typeName} = ${k(e.typeExpr)}`}function Oe(e,n){let t=e.field;return"defaultValue"in t&&t.defaultValue!==void 0?A(t,t.defaultValue):A(t)}function Fe(e,n){let t=k(e.typeExpr),r=te(e.path),a=[];return n.includeComments&&a.push(`${n.commentPrefix}Change ${e.path} type to: ${t}`),a.push(`${r}: ${t}`),a.join(`
|
|
10
|
+
`)}function je(e,n){let t=te(e.path),r=$(e.value),a=[];return n.includeComments&&a.push(`${n.commentPrefix}Set default value for ${e.path}`),a.push(`${t} = ${r}`),a.join(`
|
|
11
|
+
`)}function Te(e,n){let t=i(e.rule),r=e.message?` - "${e.message}"`:"";return`${n.commentPrefix}Constraint on ${e.targetPath}: ${t}${r}`}function De(e,n){let t=i(e.expr),r=[];return n.includeComments&&e.deps&&e.deps.length>0&&r.push(`${n.commentPrefix}Dependencies: ${e.deps.join(", ")}`),r.push(`computed ${e.name} = ${t}`),r.join(`
|
|
12
|
+
`)}function Ie(e,n){let t=i(e.expr),r=[];return n.includeComments&&r.push(`${n.commentPrefix}Add availability condition to ${e.actionName}`),r.push(`action ${e.actionName}() available when ${t} {`),r.push(`${n.indent}// action body...`),r.push("}"),r.join(`
|
|
13
|
+
`)}function te(e){let n=ne(e);return n[n.length-1]??""}function re(e){let n=ne(e);if(n.length>=2)return n[0]}var j={indent:" ",includeComments:!0,commentPrefix:"// ",includeMetadata:!0,includeEvidence:!1,includeConfidence:!0,includeFragmentId:!1};function L(e,n){let t={...j,...n},r=[];if(t.includeMetadata){if(t.includeFragmentId&&r.push(`${t.commentPrefix}Fragment: ${e.fragmentId}`),t.includeConfidence){let o=(e.confidence*100).toFixed(0);r.push(`${t.commentPrefix}Confidence: ${o}%`)}if(t.includeEvidence&&e.evidence.length>0){r.push(`${t.commentPrefix}Evidence:`);for(let o of e.evidence)r.push(`${t.commentPrefix} - ${o}`)}}let a=b(e.op,{indent:t.indent,includeComments:t.includeComments,commentPrefix:t.commentPrefix});return r.push(a),r.join(`
|
|
14
14
|
`)}function U(e,n){let t={...j,...n};return e.map(a=>L(a,t)).join(`
|
|
15
15
|
|
|
16
|
-
`)}function
|
|
16
|
+
`)}function ae(e,n){let t={...j,...n},r={};for(let o of e){let s=o.op.kind;r[s]||(r[s]=[]),r[s].push(o)}let a={};for(let[o,s]of Object.entries(r))a[o]=U(s,t);return a}function oe(e,n,t){let a={...j,...t}.indent??" ",o=[],s=[],l=[],c=[],y=[],h=[];for(let p of n)switch(p.op.kind){case"addType":o.push(p);break;case"addField":case"setFieldType":s.push(p);break;case"setDefaultValue":l.push(p);break;case"addComputed":c.push(p);break;case"addConstraint":y.push(p);break;case"addActionAvailable":h.push(p);break}let f=[];if(f.push(`domain ${e} {`),s.length>0||l.length>0){f.push(`${a}state {`);for(let p of[...s,...l]){let g=b(p.op,{indent:a+a,includeComments:!1});f.push(`${a}${a}${g}`)}f.push(`${a}}`),f.push("")}for(let p of o){let E=b(p.op,{indent:a,includeComments:!1}).split(`
|
|
17
17
|
`).map(N=>`${a}${N}`).join(`
|
|
18
18
|
`);f.push(E),f.push("")}for(let p of c){let g=b(p.op,{indent:a,includeComments:!1});f.push(`${a}${g}`)}c.length>0&&f.push("");for(let p of y){let g=b(p.op,{indent:a,includeComments:!0});f.push(`${a}${g}`)}y.length>0&&f.push("");for(let p of h){let E=b(p.op,{indent:a,includeComments:!1}).split(`
|
|
19
19
|
`).map(N=>`${a}${N}`).join(`
|
|
20
20
|
`);f.push(E),f.push("")}return f.push("}"),f.join(`
|
|
21
|
-
`)}import{parsePath as De}from"@manifesto-ai/core";function Ie(e){return{snapshot:e.snapshot??{data:{},computed:{}},meta:e.meta,input:e.input??{},item:e.item}}function V(e,n,t){let r=structuredClone(e.data);return _e(r,n,t),{data:r,computed:e.computed}}function _e(e,n,t){let r=De(n),a=e;for(let s=0;s<r.length-1;s++){let l=r[s];(!(l in a)||typeof a[l]!="object")&&(a[l]={}),a=a[l]}let o=r[r.length-1];a[o]=t}import{parsePath as Me}from"@manifesto-ai/core";function v(e,n){try{return u(e,n)}catch{return null}}function u(e,n){switch(e.kind){case"lit":return e.value;case"get":return qe(e.path,n);case"eq":return ae(e.left,e.right,n);case"neq":return Le(e.left,e.right,n);case"gt":return T(e.left,e.right,n,(t,r)=>t>r);case"gte":return T(e.left,e.right,n,(t,r)=>t>=r);case"lt":return T(e.left,e.right,n,(t,r)=>t<r);case"lte":return T(e.left,e.right,n,(t,r)=>t<=r);case"and":return Ue(e.args,n);case"or":return Ve(e.args,n);case"not":return We(e.arg,n);case"if":return Ge(e.cond,e.then,e.else,n);case"add":return W(e.left,e.right,n,(t,r)=>t+r);case"sub":return W(e.left,e.right,n,(t,r)=>t-r);case"mul":return W(e.left,e.right,n,(t,r)=>t*r);case"div":return ze(e.left,e.right,n);case"mod":return Be(e.left,e.right,n);case"neg":return Ke(e.arg,n);case"min":return He(e.args,n);case"max":return Je(e.args,n);case"abs":return Xe(e.arg,n);case"floor":return Ye(e.arg,n);case"ceil":return Qe(e.arg,n);case"round":return Ze(e.arg,n);case"sqrt":return en(e.arg,n);case"pow":return nn(e.base,e.exponent,n);case"concat":return tn(e.args,n);case"substring":return rn(e.str,e.start,e.end,n);case"trim":return an(e.str,n);case"len":return on(e.arg,n);case"at":return sn(e.array,e.index,n);case"first":return un(e.array,n);case"last":return cn(e.array,n);case"slice":return ln(e.array,e.start,e.end,n);case"includes":return dn(e.array,e.item,n);case"filter":return pn(e.array,e.predicate,n);case"map":return fn(e.array,e.mapper,n);case"find":return mn(e.array,e.predicate,n);case"every":return gn(e.array,e.predicate,n);case"some":return yn(e.array,e.predicate,n);case"append":return hn(e.array,e.items,n);case"sumArray":return En(e.array,n);case"minArray":return kn(e.array,n);case"maxArray":return vn(e.array,n);case"object":return bn(e.fields,n);case"field":return Nn(e.object,e.property,n);case"keys":return Cn(e.obj,n);case"values":return Pn(e.obj,n);case"entries":return $n(e.obj,n);case"merge":return An(e.objects,n);case"typeof":return Sn(e.arg,n);case"isNull":return xn(e.arg,n);case"coalesce":return wn(e.args,n);default:return null}}function qe(e,n){let t=Me(e);return t[0]==="meta"?x(n.meta,t.slice(1)):t[0]==="input"?x(n.input,t.slice(1)):t[0]==="$item"?n.item===void 0?null:t.length===1?n.item:x(n.item,t.slice(1)):e in n.snapshot.computed?n.snapshot.computed[e]:x(n.snapshot.data,t)}function x(e,n){if(n.length===0)return e;if(e==null||typeof e!="object")return null;let[t,...r]=n,a=e[t];return r.length===0?a===void 0?null:a:x(a,r)}function ae(e,n,t){let r=u(e,t),a=u(n,t);return D(r,a)}function Le(e,n,t){let r=ae(e,n,t);return r===null?null:!r}function T(e,n,t,r){let a=u(e,t),o=u(n,t);return typeof a!="number"||typeof o!="number"?null:r(a,o)}function D(e,n){if(e===n)return!0;if(e===null||n===null)return e===n;if(typeof e!=typeof n)return!1;if(Array.isArray(e)&&Array.isArray(n))return e.length!==n.length?!1:e.every((t,r)=>D(t,n[r]));if(typeof e=="object"&&typeof n=="object"){let t=Object.keys(e),r=Object.keys(n);return t.length!==r.length?!1:t.every(a=>Object.prototype.hasOwnProperty.call(n,a)&&D(e[a],n[a]))}return!1}function Ue(e,n){for(let t of e){let r=u(t,n);if(r!==!0)return r===!1?!1:null}return!0}function Ve(e,n){for(let t of e){let r=u(t,n);if(r===!0)return!0;if(r!==!1)return null}return!1}function We(e,n){let t=u(e,n);return typeof t!="boolean"?null:!t}function Ge(e,n,t,r){let a=u(e,r);return a===!0?u(n,r):a===!1?u(t,r):null}function W(e,n,t,r){let a=u(e,t),o=u(n,t);if(typeof a!="number"||typeof o!="number")return null;let s=r(a,o);return Number.isFinite(s)?s:null}function ze(e,n,t){let r=u(e,t),a=u(n,t);return typeof r!="number"||typeof a!="number"||a===0?null:r/a}function Be(e,n,t){let r=u(e,t),a=u(n,t);return typeof r!="number"||typeof a!="number"||a===0?null:r%a}function Ke(e,n){let t=u(e,n);return typeof t=="number"?-t:null}function He(e,n){if(e.length===0)return null;let t=null;for(let r of e){let a=u(r,n);if(typeof a!="number")return null;t=t===null?a:Math.min(t,a)}return t}function Je(e,n){if(e.length===0)return null;let t=null;for(let r of e){let a=u(r,n);if(typeof a!="number")return null;t=t===null?a:Math.max(t,a)}return t}function Xe(e,n){let t=u(e,n);return typeof t=="number"?Math.abs(t):null}function Ye(e,n){let t=u(e,n);return typeof t=="number"?Math.floor(t):null}function Qe(e,n){let t=u(e,n);return typeof t=="number"?Math.ceil(t):null}function Ze(e,n){let t=u(e,n);return typeof t=="number"?Math.round(t):null}function en(e,n){let t=u(e,n);return typeof t!="number"||t<0?null:Math.sqrt(t)}function nn(e,n,t){let r=u(e,t),a=u(n,t);if(typeof r!="number"||typeof a!="number")return null;let o=Math.pow(r,a);return Number.isFinite(o)?o:null}function tn(e,n){let t=[];for(let r of e){let a=u(r,n);if(typeof a!="string")return null;t.push(a)}return t.join("")}function rn(e,n,t,r){let a=u(e,r),o=u(n,r);if(typeof a!="string"||typeof o!="number")return null;if(t===void 0)return a.substring(o);let s=u(t,r);return typeof s!="number"?null:a.substring(o,s)}function an(e,n){let t=u(e,n);return typeof t!="string"?null:t.trim()}function on(e,n){let t=u(e,n);return Array.isArray(t)||typeof t=="string"?t.length:t!==null&&typeof t=="object"?Object.keys(t).length:null}function sn(e,n,t){let r=u(e,t),a=u(n,t);return Array.isArray(r)&&typeof a=="number"?a<0||a>=r.length?null:r[a]:typeof r=="object"&&r!==null&&!Array.isArray(r)&&typeof a=="string"?r[a]??null:null}function un(e,n){let t=u(e,n);return!Array.isArray(t)||t.length===0?null:t[0]}function cn(e,n){let t=u(e,n);return!Array.isArray(t)||t.length===0?null:t[t.length-1]}function ln(e,n,t,r){let a=u(e,r),o=u(n,r);if(!Array.isArray(a)||typeof o!="number")return null;if(t===void 0)return a.slice(o);let s=u(t,r);return typeof s!="number"?null:a.slice(o,s)}function dn(e,n,t){let r=u(e,t),a=u(n,t);return Array.isArray(r)?r.some(o=>D(o,a)):null}function pn(e,n,t){let r=u(e,t);if(!Array.isArray(r))return null;let a=[];for(let o of r){let s={...t,item:o},l=u(n,s);if(l===!0)a.push(o);else if(l!==!1)return null}return a}function fn(e,n,t){let r=u(e,t);if(!Array.isArray(r))return null;let a=[];for(let o of r){let s={...t,item:o},l=u(n,s);a.push(l)}return a}function mn(e,n,t){let r=u(e,t);if(!Array.isArray(r))return null;for(let a of r){let o={...t,item:a},s=u(n,o);if(s===!0)return a;if(s!==!1)return null}return null}function gn(e,n,t){let r=u(e,t);if(!Array.isArray(r))return null;for(let a of r){let o={...t,item:a},s=u(n,o);if(s===!1)return!1;if(s!==!0)return null}return!0}function yn(e,n,t){let r=u(e,t);if(!Array.isArray(r))return null;for(let a of r){let o={...t,item:a},s=u(n,o);if(s===!0)return!0;if(s!==!1)return null}return!1}function hn(e,n,t){let r=u(e,t);if(!Array.isArray(r))return null;let a=n.map(o=>u(o,t));return[...r,...a]}function En(e,n){let t=u(e,n);if(!Array.isArray(t))return null;let r=0;for(let a of t){if(typeof a!="number")return null;r+=a}return r}function kn(e,n){let t=u(e,n);if(!Array.isArray(t)||t.length===0)return null;let r=null;for(let a of t){if(typeof a!="number")return null;r=r===null?a:Math.min(r,a)}return r}function vn(e,n){let t=u(e,n);if(!Array.isArray(t)||t.length===0)return null;let r=null;for(let a of t){if(typeof a!="number")return null;r=r===null?a:Math.max(r,a)}return r}function bn(e,n){let t={};for(let r of Object.keys(e).sort(S)){let a=e[r];t[r]=u(a,n)}return t}function Nn(e,n,t){let r=u(e,t);return r===null||typeof r!="object"||Array.isArray(r)?null:r[n]??null}function Cn(e,n){let t=u(e,n);return t===null||typeof t!="object"||Array.isArray(t)?null:Object.keys(t).sort(S)}function Pn(e,n){let t=u(e,n);return t===null||typeof t!="object"||Array.isArray(t)?null:Object.keys(t).sort(S).map(r=>t[r])}function $n(e,n){let t=u(e,n);return t===null||typeof t!="object"||Array.isArray(t)?null:Object.keys(t).sort(S).map(r=>[r,t[r]])}function An(e,n){let t={};for(let r of e){let a=u(r,n);if(a===null||typeof a!="object"||Array.isArray(a))return null;Object.assign(t,a)}return t}function Sn(e,n){let t=u(e,n);return t===null?"null":Array.isArray(t)?"array":typeof t}function xn(e,n){return u(e,n)===null}function wn(e,n){for(let t of e){let r=u(t,n);if(r!=null)return r}return null}function Rn(e,n){let t=[],r=[],a=n.snapshot;for(let o of e){let s={...n,snapshot:a};if(o.condition!==void 0){let c=v(o.condition,s);if(c!==!0){let y=c===!1?"false":c===null?"null":"non-boolean";r.push({fragmentId:o.fragmentId,reason:y});continue}}let l={fragmentId:o.fragmentId,op:o.op,confidence:o.confidence,conditionEvaluated:o.condition!==void 0};t.push(l),a=Fn(a,o.op,s)}return{patches:t,skipped:r,finalSnapshot:a}}function On(e,n){return e.filter(t=>t.condition===void 0?!0:v(t.condition,n)===!0).map(t=>({fragmentId:t.fragmentId,op:t.op,confidence:t.confidence,conditionEvaluated:t.condition!==void 0}))}function Fn(e,n,t){switch(n.kind){case"setDefaultValue":return V(e,n.path,n.value);case"addType":case"addField":case"setFieldType":case"addConstraint":case"addComputed":case"addActionAvailable":return e}}function jn(e,n){switch(e.kind){case"addType":case"addField":case"setFieldType":case"setDefaultValue":return e;case"addConstraint":return{...e};case"addComputed":return{...e};case"addActionAvailable":return{...e}}}function Tn(e,n){return e===void 0?!0:v(e,n)===!0}function Dn(e,n){if(e===void 0)return{passes:!0,reason:"no-condition"};let t=v(e,n);return t===!0?{passes:!0,reason:"true"}:t===!1?{passes:!1,reason:"false"}:t===null?{passes:!1,reason:"null"}:{passes:!1,reason:"non-boolean"}}import{mergeAtPatchPath as In,patchPathToDisplayString as oe,setByPatchPath as _n,unsetByPatchPath as Mn}from"@manifesto-ai/core";var qn=new Set(["__proto__","constructor","prototype"]);function Ln(e,n){return ce(e,n).patches}function ce(e,n){let t=[],r=[],a=[],o=n.snapshot,s=[];for(let l=0;l<e.length;l++){let c=e[l],y=c.op==="set"&&I(c.path),h=s.length>0,f=y||!h?o:s[s.length-1].snapshot,p={...n,snapshot:f};if(c.condition!==void 0){let A=v(c.condition,p);if(A!==!0){let de=A===!1?"false":A===null?"null":"non-boolean";r.push({index:l,path:ue(c.path),reason:de});continue}}let g=Wn(c.path,p);if(!g.ok){r.push({index:l,path:ue(c.path),reason:"invalid-path"}),a.push(`Skipped runtime patch at index ${l}: ${g.warning}`);continue}let E=g.path,N=c.value?v(c.value,p):void 0,d=Un(c.op,E,N);if(d!==null&&!(c.op==="unset"&&I(c.path)&&(!h||!se(s[s.length-1].markerPath,E)))){if(t.push(d),o=Vn(o,d),c.op==="set"&&I(c.path)){s.push({markerPath:E,snapshot:o});continue}c.op==="unset"&&I(c.path)&&s.length>0&&se(s[s.length-1].markerPath,E)&&s.pop()}}return{patches:t,skipped:r,warnings:a,finalSnapshot:o}}function Un(e,n,t){switch(e){case"set":return{op:"set",path:n,value:t};case"unset":return{op:"unset",path:n};case"merge":return zn(t)?{op:"merge",path:n,value:t}:{op:"set",path:n,value:null}}}function Vn(e,n){let t=e.data;return{data:(()=>{switch(n.op){case"set":return _n(t,n.path,n.value);case"unset":return Mn(t,n.path);case"merge":return In(t,n.path,n.value)}})(),computed:e.computed}}function Wn(e,n){if(e.length===0)return{ok:!1,warning:"path is empty"};let t=[];for(let r=0;r<e.length;r++){let a=e[r];if(a.kind==="prop"){if(!le(a.name))return{ok:!1,warning:`invalid prop segment '${a.name}'`};t.push({kind:"prop",name:a.name});continue}let o=v(a.expr,n),s=Gn(o);if(s===null)return{ok:!1,warning:`expr segment at index ${r} resolved to invalid value`};t.push(s)}return{ok:!0,path:t}}function Gn(e){return typeof e=="number"&&Number.isInteger(e)&&Number.isFinite(e)&&e>=0?{kind:"index",index:e}:typeof e=="string"&&e.length>0&&le(e)?{kind:"prop",name:e}:null}function le(e){return e.length>0&&!qn.has(e)}function I(e){return ie(e,["$mel","__whenGuards"])||ie(e,["$mel","__onceScopeGuards"])}function ie(e,n){if(e.length<n.length)return!1;for(let t=0;t<n.length;t++){let r=e[t];if(r.kind!=="prop"||r.name!==n[t])return!1}return!0}function se(e,n){if(e.length!==n.length)return!1;for(let t=0;t<e.length;t++){let r=e[t],a=n[t];if(r.kind!==a.kind||r.kind==="prop"&&a.kind==="prop"&&r.name!==a.name||r.kind==="index"&&a.kind==="index"&&r.index!==a.index)return!1}return!0}function ue(e){let n=[];for(let t of e){if(t.kind==="prop"){n.push({kind:"prop",name:t.name});continue}return n.length===0?"[expr]":`${oe(n)}.[expr]`}return n.length===0?"":oe(n)}function zn(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Bn(e,n={}){let t=[],r=performance.now(),a=_(e);if(t.push({phase:"lex",durationMs:performance.now()-r,details:{tokenCount:a.tokens.length}}),w(a.diagnostics))return{schema:null,trace:t,warnings:a.diagnostics.filter(d=>d.severity==="warning"),errors:a.diagnostics.filter(d=>d.severity==="error"),success:!1};let o=performance.now(),s=M(a.tokens),l=s.diagnostics;if(t.push({phase:"parse",durationMs:performance.now()-o}),w(l))return{schema:null,trace:t,warnings:l.filter(d=>d.severity==="warning"),errors:l.filter(d=>d.severity==="error"),success:!1};let c=[],y=performance.now(),h=H(s.program);if(c.push(...h.diagnostics),!n.skipSemanticAnalysis){let d=G(h.program),A=z(h.program);c.push(...d.diagnostics,...A.diagnostics)}if(t.push({phase:"analyze",durationMs:performance.now()-y}),c.some(d=>d.severity==="error"))return{schema:null,trace:t,warnings:c.filter(d=>d.severity==="warning"),errors:c.filter(d=>d.severity==="error"),success:!1};let f=performance.now(),p=B(h.program);if(c.push(...p.diagnostics),t.push({phase:"generate",durationMs:performance.now()-f}),!n.skipSemanticAnalysis&&p.schema){let d=K(h.program,p.schema);c.push(...d.diagnostics)}n.skipSemanticAnalysis&&c.push(...s.diagnostics);let g=c.filter(d=>d.severity==="error");if(p.schema===null||g.length>0)return{schema:null,trace:t,warnings:c.filter(d=>d.severity==="warning"),errors:g,success:!1};let E=p.schema;if(n.lowerSystemValues){let d=performance.now();E=Y(E),t.push({phase:"lower",durationMs:performance.now()-d})}let N=c.filter(d=>d.severity==="warning");return{schema:E,trace:t,warnings:N,errors:c.filter(d=>d.severity==="error"),success:g.length===0}}function Xr(e){let n=_(e);return w(n.diagnostics)?{program:null,diagnostics:n.diagnostics}:M(n.tokens)}function Yr(e){return Bn(e).errors}export{Nt as DEFAULT_ACTION_CONTEXT,Ct as DEFAULT_DISPATCHABLE_CONTEXT,$t as DEFAULT_PATCH_CONTEXT,bt as DEFAULT_SCHEMA_CONTEXT,J as DIAGNOSTIC_CODES,Pt as EFFECT_ARGS_CONTEXT,Kn as KEYWORDS,rt as Lexer,At as LoweringError,pt as Parser,it as Precedence,Hn as RESERVED_KEYWORDS,ft as Scope,mt as ScopeAnalyzer,vt as SemanticValidator,G as analyzeScope,V as applyPatchToWorkingSnapshot,K as buildAnnotationIndex,Yr as check,Dn as classifyCondition,Bn as compile,qt as compileMelDomain,Lt as compileMelModule,Ut as compileMelPatch,gt as createError,Ie as createEvaluationContext,ht as createInfo,et as createLocation,nt as createPointLocation,Zn as createPosition,Qn as createToken,yt as createWarning,Tn as evaluateCondition,Rn as evaluateConditionalPatchOps,v as evaluateExpr,jn as evaluatePatchExpressions,On as evaluatePatches,Ln as evaluateRuntimePatches,ce as evaluateRuntimePatchesWithTrace,Mt as extractSchemaGraph,ne as extractTypeName,kt as filterBySeverity,X as formatDiagnostic,Bt as formatDiagnosticCode,pe as formatDiagnostics,B as generate,_t as generateCanonical,st as getBinaryPrecedence,zt as getDiagnosticInfo,Yn as getKeywordKind,w as hasErrors,St as invalidKindForContext,Ot as invalidShape,wt as invalidSysPath,ct as isBinaryOp,Et as isError,at as isExprNode,Jn as isKeyword,Xn as isReserved,dt as isRightAssociative,ot as isStmtNode,lt as isUnaryOp,jt as lowerExprNode,Tt as lowerPatchFragments,It as lowerRuntimePatch,Dt as lowerRuntimePatches,Y as lowerSystemValues,tt as mergeLocations,Zt as normalizeExpr,er as normalizeFunctionCall,M as parse,Xr as parseSource,re as renderAsDomain,i as renderExprNode,L as renderFragment,U as renderFragments,te as renderFragmentsByKind,b as renderPatchOp,k as renderTypeExpr,$ as renderTypeField,P as renderValue,ut as tokenToBinaryOp,_ as tokenize,xt as unknownCallFn,Ft as unknownNodeKind,Rt as unsupportedBase,z as validateSemantics};
|
|
21
|
+
`)}import{parsePath as _e}from"@manifesto-ai/core";function Me(e){return{snapshot:e.snapshot??{data:{},computed:{}},meta:e.meta,input:e.input??{},item:e.item}}function V(e,n,t){let r=structuredClone(e.data);return qe(r,n,t),{data:r,computed:e.computed}}function qe(e,n,t){let r=_e(n),a=e;for(let s=0;s<r.length-1;s++){let l=r[s];(!(l in a)||typeof a[l]!="object")&&(a[l]={}),a=a[l]}let o=r[r.length-1];a[o]=t}import{parsePath as Le}from"@manifesto-ai/core";function v(e,n){try{return u(e,n)}catch{return null}}function u(e,n){switch(e.kind){case"lit":return e.value;case"get":return Ue(e.path,n);case"eq":return ie(e.left,e.right,n);case"neq":return Ve(e.left,e.right,n);case"gt":return T(e.left,e.right,n,(t,r)=>t>r);case"gte":return T(e.left,e.right,n,(t,r)=>t>=r);case"lt":return T(e.left,e.right,n,(t,r)=>t<r);case"lte":return T(e.left,e.right,n,(t,r)=>t<=r);case"and":return We(e.args,n);case"or":return Ge(e.args,n);case"not":return ze(e.arg,n);case"if":return Be(e.cond,e.then,e.else,n);case"add":return W(e.left,e.right,n,(t,r)=>t+r);case"sub":return W(e.left,e.right,n,(t,r)=>t-r);case"mul":return W(e.left,e.right,n,(t,r)=>t*r);case"div":return Ke(e.left,e.right,n);case"mod":return He(e.left,e.right,n);case"neg":return Je(e.arg,n);case"min":return Xe(e.args,n);case"max":return Ye(e.args,n);case"abs":return Qe(e.arg,n);case"floor":return Ze(e.arg,n);case"ceil":return en(e.arg,n);case"round":return nn(e.arg,n);case"sqrt":return tn(e.arg,n);case"pow":return rn(e.base,e.exponent,n);case"concat":return an(e.args,n);case"substring":return on(e.str,e.start,e.end,n);case"trim":return sn(e.str,n);case"len":return un(e.arg,n);case"at":return cn(e.array,e.index,n);case"first":return ln(e.array,n);case"last":return dn(e.array,n);case"slice":return pn(e.array,e.start,e.end,n);case"includes":return fn(e.array,e.item,n);case"filter":return mn(e.array,e.predicate,n);case"map":return gn(e.array,e.mapper,n);case"find":return yn(e.array,e.predicate,n);case"every":return hn(e.array,e.predicate,n);case"some":return En(e.array,e.predicate,n);case"append":return kn(e.array,e.items,n);case"sumArray":return vn(e.array,n);case"minArray":return bn(e.array,n);case"maxArray":return Nn(e.array,n);case"object":return Cn(e.fields,n);case"field":return Pn(e.object,e.property,n);case"keys":return $n(e.obj,n);case"values":return An(e.obj,n);case"entries":return Sn(e.obj,n);case"merge":return xn(e.objects,n);case"typeof":return wn(e.arg,n);case"isNull":return Rn(e.arg,n);case"coalesce":return On(e.args,n);default:return null}}function Ue(e,n){let t=Le(e);return t[0]==="meta"?x(n.meta,t.slice(1)):t[0]==="input"?x(n.input,t.slice(1)):t[0]==="$item"?n.item===void 0?null:t.length===1?n.item:x(n.item,t.slice(1)):e in n.snapshot.computed?n.snapshot.computed[e]:x(n.snapshot.data,t)}function x(e,n){if(n.length===0)return e;if(e==null||typeof e!="object")return null;let[t,...r]=n,a=e[t];return r.length===0?a===void 0?null:a:x(a,r)}function ie(e,n,t){let r=u(e,t),a=u(n,t);return D(r,a)}function Ve(e,n,t){let r=ie(e,n,t);return r===null?null:!r}function T(e,n,t,r){let a=u(e,t),o=u(n,t);return typeof a!="number"||typeof o!="number"?null:r(a,o)}function D(e,n){if(e===n)return!0;if(e===null||n===null)return e===n;if(typeof e!=typeof n)return!1;if(Array.isArray(e)&&Array.isArray(n))return e.length!==n.length?!1:e.every((t,r)=>D(t,n[r]));if(typeof e=="object"&&typeof n=="object"){let t=Object.keys(e),r=Object.keys(n);return t.length!==r.length?!1:t.every(a=>Object.prototype.hasOwnProperty.call(n,a)&&D(e[a],n[a]))}return!1}function We(e,n){for(let t of e){let r=u(t,n);if(r!==!0)return r===!1?!1:null}return!0}function Ge(e,n){for(let t of e){let r=u(t,n);if(r===!0)return!0;if(r!==!1)return null}return!1}function ze(e,n){let t=u(e,n);return typeof t!="boolean"?null:!t}function Be(e,n,t,r){let a=u(e,r);return a===!0?u(n,r):a===!1?u(t,r):null}function W(e,n,t,r){let a=u(e,t),o=u(n,t);if(typeof a!="number"||typeof o!="number")return null;let s=r(a,o);return Number.isFinite(s)?s:null}function Ke(e,n,t){let r=u(e,t),a=u(n,t);return typeof r!="number"||typeof a!="number"||a===0?null:r/a}function He(e,n,t){let r=u(e,t),a=u(n,t);return typeof r!="number"||typeof a!="number"||a===0?null:r%a}function Je(e,n){let t=u(e,n);return typeof t=="number"?-t:null}function Xe(e,n){if(e.length===0)return null;let t=null;for(let r of e){let a=u(r,n);if(typeof a!="number")return null;t=t===null?a:Math.min(t,a)}return t}function Ye(e,n){if(e.length===0)return null;let t=null;for(let r of e){let a=u(r,n);if(typeof a!="number")return null;t=t===null?a:Math.max(t,a)}return t}function Qe(e,n){let t=u(e,n);return typeof t=="number"?Math.abs(t):null}function Ze(e,n){let t=u(e,n);return typeof t=="number"?Math.floor(t):null}function en(e,n){let t=u(e,n);return typeof t=="number"?Math.ceil(t):null}function nn(e,n){let t=u(e,n);return typeof t=="number"?Math.round(t):null}function tn(e,n){let t=u(e,n);return typeof t!="number"||t<0?null:Math.sqrt(t)}function rn(e,n,t){let r=u(e,t),a=u(n,t);if(typeof r!="number"||typeof a!="number")return null;let o=Math.pow(r,a);return Number.isFinite(o)?o:null}function an(e,n){let t=[];for(let r of e){let a=u(r,n);if(typeof a!="string")return null;t.push(a)}return t.join("")}function on(e,n,t,r){let a=u(e,r),o=u(n,r);if(typeof a!="string"||typeof o!="number")return null;if(t===void 0)return a.substring(o);let s=u(t,r);return typeof s!="number"?null:a.substring(o,s)}function sn(e,n){let t=u(e,n);return typeof t!="string"?null:t.trim()}function un(e,n){let t=u(e,n);return Array.isArray(t)||typeof t=="string"?t.length:t!==null&&typeof t=="object"?Object.keys(t).length:null}function cn(e,n,t){let r=u(e,t),a=u(n,t);return Array.isArray(r)&&typeof a=="number"?a<0||a>=r.length?null:r[a]:typeof r=="object"&&r!==null&&!Array.isArray(r)&&typeof a=="string"?r[a]??null:null}function ln(e,n){let t=u(e,n);return!Array.isArray(t)||t.length===0?null:t[0]}function dn(e,n){let t=u(e,n);return!Array.isArray(t)||t.length===0?null:t[t.length-1]}function pn(e,n,t,r){let a=u(e,r),o=u(n,r);if(!Array.isArray(a)||typeof o!="number")return null;if(t===void 0)return a.slice(o);let s=u(t,r);return typeof s!="number"?null:a.slice(o,s)}function fn(e,n,t){let r=u(e,t),a=u(n,t);return Array.isArray(r)?r.some(o=>D(o,a)):null}function mn(e,n,t){let r=u(e,t);if(!Array.isArray(r))return null;let a=[];for(let o of r){let s={...t,item:o},l=u(n,s);if(l===!0)a.push(o);else if(l!==!1)return null}return a}function gn(e,n,t){let r=u(e,t);if(!Array.isArray(r))return null;let a=[];for(let o of r){let s={...t,item:o},l=u(n,s);a.push(l)}return a}function yn(e,n,t){let r=u(e,t);if(!Array.isArray(r))return null;for(let a of r){let o={...t,item:a},s=u(n,o);if(s===!0)return a;if(s!==!1)return null}return null}function hn(e,n,t){let r=u(e,t);if(!Array.isArray(r))return null;for(let a of r){let o={...t,item:a},s=u(n,o);if(s===!1)return!1;if(s!==!0)return null}return!0}function En(e,n,t){let r=u(e,t);if(!Array.isArray(r))return null;for(let a of r){let o={...t,item:a},s=u(n,o);if(s===!0)return!0;if(s!==!1)return null}return!1}function kn(e,n,t){let r=u(e,t);if(!Array.isArray(r))return null;let a=n.map(o=>u(o,t));return[...r,...a]}function vn(e,n){let t=u(e,n);if(!Array.isArray(t))return null;let r=0;for(let a of t){if(typeof a!="number")return null;r+=a}return r}function bn(e,n){let t=u(e,n);if(!Array.isArray(t)||t.length===0)return null;let r=null;for(let a of t){if(typeof a!="number")return null;r=r===null?a:Math.min(r,a)}return r}function Nn(e,n){let t=u(e,n);if(!Array.isArray(t)||t.length===0)return null;let r=null;for(let a of t){if(typeof a!="number")return null;r=r===null?a:Math.max(r,a)}return r}function Cn(e,n){let t={};for(let r of Object.keys(e).sort(S)){let a=e[r];t[r]=u(a,n)}return t}function Pn(e,n,t){let r=u(e,t);return r===null||typeof r!="object"||Array.isArray(r)?null:r[n]??null}function $n(e,n){let t=u(e,n);return t===null||typeof t!="object"||Array.isArray(t)?null:Object.keys(t).sort(S)}function An(e,n){let t=u(e,n);return t===null||typeof t!="object"||Array.isArray(t)?null:Object.keys(t).sort(S).map(r=>t[r])}function Sn(e,n){let t=u(e,n);return t===null||typeof t!="object"||Array.isArray(t)?null:Object.keys(t).sort(S).map(r=>[r,t[r]])}function xn(e,n){let t={};for(let r of e){let a=u(r,n);if(a===null||typeof a!="object"||Array.isArray(a))return null;Object.assign(t,a)}return t}function wn(e,n){let t=u(e,n);return t===null?"null":Array.isArray(t)?"array":typeof t}function Rn(e,n){return u(e,n)===null}function On(e,n){for(let t of e){let r=u(t,n);if(r!=null)return r}return null}function Fn(e,n){let t=[],r=[],a=n.snapshot;for(let o of e){let s={...n,snapshot:a};if(o.condition!==void 0){let c=v(o.condition,s);if(c!==!0){let y=c===!1?"false":c===null?"null":"non-boolean";r.push({fragmentId:o.fragmentId,reason:y});continue}}let l={fragmentId:o.fragmentId,op:o.op,confidence:o.confidence,conditionEvaluated:o.condition!==void 0};t.push(l),a=Tn(a,o.op,s)}return{patches:t,skipped:r,finalSnapshot:a}}function jn(e,n){return e.filter(t=>t.condition===void 0?!0:v(t.condition,n)===!0).map(t=>({fragmentId:t.fragmentId,op:t.op,confidence:t.confidence,conditionEvaluated:t.condition!==void 0}))}function Tn(e,n,t){switch(n.kind){case"setDefaultValue":return V(e,n.path,n.value);case"addType":case"addField":case"setFieldType":case"addConstraint":case"addComputed":case"addActionAvailable":return e}}function Dn(e,n){switch(e.kind){case"addType":case"addField":case"setFieldType":case"setDefaultValue":return e;case"addConstraint":return{...e};case"addComputed":return{...e};case"addActionAvailable":return{...e}}}function In(e,n){return e===void 0?!0:v(e,n)===!0}function _n(e,n){if(e===void 0)return{passes:!0,reason:"no-condition"};let t=v(e,n);return t===!0?{passes:!0,reason:"true"}:t===!1?{passes:!1,reason:"false"}:t===null?{passes:!1,reason:"null"}:{passes:!1,reason:"non-boolean"}}import{mergeAtPatchPath as Mn,patchPathToDisplayString as se,setByPatchPath as qn,unsetByPatchPath as Ln}from"@manifesto-ai/core";var Un=new Set(["__proto__","constructor","prototype"]);function Vn(e,n){return de(e,n).patches}function de(e,n){let t=[],r=[],a=[],o=n.snapshot,s=[];for(let l=0;l<e.length;l++){let c=e[l],y=c.op==="set"&&I(c.path),h=s.length>0,f=y||!h?o:s[s.length-1].snapshot,p={...n,snapshot:f};if(c.condition!==void 0){let C=v(c.condition,p);if(C!==!0){let fe=C===!1?"false":C===null?"null":"non-boolean";r.push({index:l,path:le(c.path),reason:fe});continue}}let g=zn(c.path,p);if(!g.ok){r.push({index:l,path:le(c.path),reason:"invalid-path"}),a.push(`Skipped runtime patch at index ${l}: ${g.warning}`);continue}let E=g.path,N=c.value?v(c.value,p):void 0,d=Wn(c.op,E,N);if(d!==null&&!(c.op==="unset"&&I(c.path)&&(!h||!ce(s[s.length-1].markerPath,E)))){if(t.push(d),o=Gn(o,d),c.op==="set"&&I(c.path)){s.push({markerPath:E,snapshot:o});continue}c.op==="unset"&&I(c.path)&&s.length>0&&ce(s[s.length-1].markerPath,E)&&s.pop()}}return{patches:t,skipped:r,warnings:a,finalSnapshot:o}}function Wn(e,n,t){switch(e){case"set":return{op:"set",path:n,value:t};case"unset":return{op:"unset",path:n};case"merge":return Kn(t)?{op:"merge",path:n,value:t}:{op:"set",path:n,value:null}}}function Gn(e,n){let t=e.data;return{data:(()=>{switch(n.op){case"set":return qn(t,n.path,n.value);case"unset":return Ln(t,n.path);case"merge":return Mn(t,n.path,n.value)}})(),computed:e.computed}}function zn(e,n){if(e.length===0)return{ok:!1,warning:"path is empty"};let t=[];for(let r=0;r<e.length;r++){let a=e[r];if(a.kind==="prop"){if(!pe(a.name))return{ok:!1,warning:`invalid prop segment '${a.name}'`};t.push({kind:"prop",name:a.name});continue}let o=v(a.expr,n),s=Bn(o);if(s===null)return{ok:!1,warning:`expr segment at index ${r} resolved to invalid value`};t.push(s)}return{ok:!0,path:t}}function Bn(e){return typeof e=="number"&&Number.isInteger(e)&&Number.isFinite(e)&&e>=0?{kind:"index",index:e}:typeof e=="string"&&e.length>0&&pe(e)?{kind:"prop",name:e}:null}function pe(e){return e.length>0&&!Un.has(e)}function I(e){return ue(e,["$mel","__whenGuards"])||ue(e,["$mel","__onceScopeGuards"])}function ue(e,n){if(e.length<n.length)return!1;for(let t=0;t<n.length;t++){let r=e[t];if(r.kind!=="prop"||r.name!==n[t])return!1}return!0}function ce(e,n){if(e.length!==n.length)return!1;for(let t=0;t<e.length;t++){let r=e[t],a=n[t];if(r.kind!==a.kind||r.kind==="prop"&&a.kind==="prop"&&r.name!==a.name||r.kind==="index"&&a.kind==="index"&&r.index!==a.index)return!1}return!0}function le(e){let n=[];for(let t of e){if(t.kind==="prop"){n.push({kind:"prop",name:t.name});continue}return n.length===0?"[expr]":`${se(n)}.[expr]`}return n.length===0?"":se(n)}function Kn(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}var Hn="3.5.0";function Jn(e,n={}){let t=[],r=performance.now(),a=_(e);if(t.push({phase:"lex",durationMs:performance.now()-r,details:{tokenCount:a.tokens.length}}),w(a.diagnostics))return{schema:null,trace:t,warnings:a.diagnostics.filter(d=>d.severity==="warning"),errors:a.diagnostics.filter(d=>d.severity==="error"),success:!1};let o=performance.now(),s=M(a.tokens),l=s.diagnostics;if(t.push({phase:"parse",durationMs:performance.now()-o}),w(l))return{schema:null,trace:t,warnings:l.filter(d=>d.severity==="warning"),errors:l.filter(d=>d.severity==="error"),success:!1};let c=[],y=performance.now(),h=H(s.program);if(c.push(...h.diagnostics),!n.skipSemanticAnalysis){let d=G(h.program),C=z(h.program);c.push(...d.diagnostics,...C.diagnostics)}if(t.push({phase:"analyze",durationMs:performance.now()-y}),c.some(d=>d.severity==="error"))return{schema:null,trace:t,warnings:c.filter(d=>d.severity==="warning"),errors:c.filter(d=>d.severity==="error"),success:!1};let f=performance.now(),p=B(h.program);if(c.push(...p.diagnostics),t.push({phase:"generate",durationMs:performance.now()-f}),!n.skipSemanticAnalysis&&p.schema){let d=K(h.program,p.schema);c.push(...d.diagnostics);let C=X(h.program,e,p.schema,J(Hn));c.push(...C.diagnostics)}n.skipSemanticAnalysis&&c.push(...s.diagnostics);let g=c.filter(d=>d.severity==="error");if(p.schema===null||g.length>0)return{schema:null,trace:t,warnings:c.filter(d=>d.severity==="warning"),errors:g,success:!1};let E=p.schema;if(n.lowerSystemValues){let d=performance.now();E=Z(E),t.push({phase:"lower",durationMs:performance.now()-d})}let N=c.filter(d=>d.severity==="warning");return{schema:E,trace:t,warnings:N,errors:c.filter(d=>d.severity==="error"),success:g.length===0}}function ea(e){let n=_(e);return w(n.diagnostics)?{program:null,diagnostics:n.diagnostics}:M(n.tokens)}function na(e){return Jn(e).errors}export{$t as DEFAULT_ACTION_CONTEXT,At as DEFAULT_DISPATCHABLE_CONTEXT,xt as DEFAULT_PATCH_CONTEXT,Pt as DEFAULT_SCHEMA_CONTEXT,Y as DIAGNOSTIC_CODES,St as EFFECT_ARGS_CONTEXT,Xn as KEYWORDS,it as Lexer,wt as LoweringError,gt as Parser,ct as Precedence,Yn as RESERVED_KEYWORDS,yt as Scope,ht as ScopeAnalyzer,Ct as SemanticValidator,G as analyzeScope,V as applyPatchToWorkingSnapshot,K as buildAnnotationIndex,na as check,_n as classifyCondition,Jn as compile,Vt as compileMelDomain,Wt as compileMelModule,Gt as compileMelPatch,Et as createError,Me as createEvaluationContext,vt as createInfo,rt as createLocation,at as createPointLocation,tt as createPosition,nt as createToken,kt as createWarning,In as evaluateCondition,Fn as evaluateConditionalPatchOps,v as evaluateExpr,Dn as evaluatePatchExpressions,jn as evaluatePatches,Vn as evaluateRuntimePatches,de as evaluateRuntimePatchesWithTrace,Ut as extractSchemaGraph,re as extractTypeName,Nt as filterBySeverity,Q as formatDiagnostic,Jt as formatDiagnosticCode,me as formatDiagnostics,B as generate,Lt as generateCanonical,lt as getBinaryPrecedence,Ht as getDiagnosticInfo,et as getKeywordKind,w as hasErrors,Rt as invalidKindForContext,Tt as invalidShape,Ft as invalidSysPath,pt as isBinaryOp,bt as isError,st as isExprNode,Qn as isKeyword,Zn as isReserved,mt as isRightAssociative,ut as isStmtNode,ft as isUnaryOp,It as lowerExprNode,_t as lowerPatchFragments,qt as lowerRuntimePatch,Mt as lowerRuntimePatches,Z as lowerSystemValues,ot as mergeLocations,tr as normalizeExpr,rr as normalizeFunctionCall,M as parse,ea as parseSource,oe as renderAsDomain,i as renderExprNode,L as renderFragment,U as renderFragments,ae as renderFragmentsByKind,b as renderPatchOp,k as renderTypeExpr,A as renderTypeField,$ as renderValue,dt as tokenToBinaryOp,_ as tokenize,Ot as unknownCallFn,Dt as unknownNodeKind,jt as unsupportedBase,z as validateSemantics};
|
package/dist/node-loader.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as n}from"./chunk-
|
|
1
|
+
import{c as n}from"./chunk-2ZRNXFBQ.js";import"./chunk-O654OLQV.js";import{readFile as i}from"fs/promises";import{fileURLToPath as c}from"url";function u(o){let[t]=o.split("?",1),[r]=t.split("#",1);return r}function s(o){return u(o).endsWith(".mel")}function a(o){try{return c(o)}catch{return o}}var h=async(o,t,r)=>s(o)?{...await r(o,t),shortCircuit:!0}:r(o,t),p=async(o,t,r)=>{if(!s(o))return r(o,t);let e=await i(new URL(o),"utf8");return{format:"module",source:n(e,a(o)),shortCircuit:!0}};export{p as load,h as resolve};
|
package/dist/rollup.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./chunk-
|
|
1
|
+
import{a as e}from"./chunk-Q56VWGSA.js";import"./chunk-2ZRNXFBQ.js";import"./chunk-O654OLQV.js";var l=e.rollup,t=l;export{t as default,l as melPlugin};
|
package/dist/rspack.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./chunk-
|
|
1
|
+
import{a as e}from"./chunk-Q56VWGSA.js";import"./chunk-2ZRNXFBQ.js";import"./chunk-O654OLQV.js";var t=e.rspack,o=t;export{o as default,t as melPlugin};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { type Diagnostic } from "./diagnostics/types.js";
|
|
2
|
+
import type { DomainSchema } from "./generator/ir.js";
|
|
3
|
+
import type { ProgramNode } from "./parser/ast.js";
|
|
4
|
+
import type { LocalTargetKey } from "./annotations.js";
|
|
5
|
+
export interface SourcePoint {
|
|
6
|
+
readonly line: number;
|
|
7
|
+
readonly column: number;
|
|
8
|
+
readonly offset?: number;
|
|
9
|
+
}
|
|
10
|
+
export interface SourceSpan {
|
|
11
|
+
readonly start: SourcePoint;
|
|
12
|
+
readonly end: SourcePoint;
|
|
13
|
+
}
|
|
14
|
+
export type SourceMapPath = {
|
|
15
|
+
readonly kind: "domain";
|
|
16
|
+
readonly domain: {
|
|
17
|
+
readonly name: string;
|
|
18
|
+
};
|
|
19
|
+
} | {
|
|
20
|
+
readonly kind: "type";
|
|
21
|
+
readonly type: {
|
|
22
|
+
readonly name: string;
|
|
23
|
+
};
|
|
24
|
+
} | {
|
|
25
|
+
readonly kind: "type_field";
|
|
26
|
+
readonly type: {
|
|
27
|
+
readonly name: string;
|
|
28
|
+
};
|
|
29
|
+
readonly field: {
|
|
30
|
+
readonly name: string;
|
|
31
|
+
};
|
|
32
|
+
} | {
|
|
33
|
+
readonly kind: "state_field";
|
|
34
|
+
readonly field: {
|
|
35
|
+
readonly name: string;
|
|
36
|
+
};
|
|
37
|
+
} | {
|
|
38
|
+
readonly kind: "computed";
|
|
39
|
+
readonly computed: {
|
|
40
|
+
readonly name: string;
|
|
41
|
+
};
|
|
42
|
+
} | {
|
|
43
|
+
readonly kind: "action";
|
|
44
|
+
readonly action: {
|
|
45
|
+
readonly name: string;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
export interface SourceMapEntry {
|
|
49
|
+
readonly target: SourceMapPath;
|
|
50
|
+
readonly span: SourceSpan;
|
|
51
|
+
}
|
|
52
|
+
export interface SourceMapIndex {
|
|
53
|
+
readonly schemaHash: string;
|
|
54
|
+
readonly sourceHash: string;
|
|
55
|
+
readonly format: "manifesto/source-map-v1";
|
|
56
|
+
readonly coordinateUnit: "utf16" | "bytes";
|
|
57
|
+
readonly emissionFingerprint: string;
|
|
58
|
+
readonly entries: Record<LocalTargetKey, SourceMapEntry>;
|
|
59
|
+
}
|
|
60
|
+
export interface SourceMapEmissionContext {
|
|
61
|
+
readonly coordinateUnit: "utf16" | "bytes";
|
|
62
|
+
readonly compilerVersion: string;
|
|
63
|
+
readonly emissionOptionsFingerprint: string;
|
|
64
|
+
}
|
|
65
|
+
export interface SourceMapExtractionResult {
|
|
66
|
+
readonly sourceMap: SourceMapIndex;
|
|
67
|
+
readonly diagnostics: Diagnostic[];
|
|
68
|
+
}
|
|
69
|
+
export declare function createDefaultSourceMapEmissionContext(compilerVersion: string): SourceMapEmissionContext;
|
|
70
|
+
export declare function extractSourceMap(program: ProgramNode, sourceText: string, schema: DomainSchema, ctx: SourceMapEmissionContext): SourceMapExtractionResult;
|
package/dist/vite.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./chunk-
|
|
1
|
+
import{a as e}from"./chunk-Q56VWGSA.js";import"./chunk-2ZRNXFBQ.js";import"./chunk-O654OLQV.js";var t=e.vite,o=t;export{o as default,t as melPlugin};
|
package/dist/webpack.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./chunk-
|
|
1
|
+
import{a as e}from"./chunk-Q56VWGSA.js";import"./chunk-2ZRNXFBQ.js";import"./chunk-O654OLQV.js";var t=e.webpack,o=t;export{o as default,t as melPlugin};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@manifesto-ai/compiler",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.7.1",
|
|
4
4
|
"description": "Manifesto Compiler - MEL (Manifesto Expression Language) to DomainSchema compiler",
|
|
5
5
|
"author": "eggplantiny <eggplantiny@gmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -81,21 +81,21 @@
|
|
|
81
81
|
"unplugin": "^3.0.0"
|
|
82
82
|
},
|
|
83
83
|
"devDependencies": {
|
|
84
|
-
"@anthropic-ai/sdk": "^0.
|
|
85
|
-
"@types/node": "^25.
|
|
84
|
+
"@anthropic-ai/sdk": "^0.80.0",
|
|
85
|
+
"@types/node": "^25.5.2",
|
|
86
86
|
"@types/react": "^19.2.14",
|
|
87
|
-
"dotenv": "^17.
|
|
88
|
-
"ink": "^
|
|
87
|
+
"dotenv": "^17.4.2",
|
|
88
|
+
"ink": "^7.0.0",
|
|
89
89
|
"ink-select-input": "^6.2.0",
|
|
90
90
|
"ink-spinner": "^5.0.0",
|
|
91
91
|
"meow": "^14.1.0",
|
|
92
|
-
"openai": "^6.
|
|
93
|
-
"react": "^19.2.
|
|
92
|
+
"openai": "^6.33.0",
|
|
93
|
+
"react": "^19.2.4",
|
|
94
94
|
"tsx": "^4.21.0",
|
|
95
95
|
"typescript": "^5.9.3",
|
|
96
|
-
"vite": "^8.0.
|
|
97
|
-
"vitest": "^4.1.
|
|
98
|
-
"webpack": "^5.
|
|
96
|
+
"vite": "^8.0.3",
|
|
97
|
+
"vitest": "^4.1.2",
|
|
98
|
+
"webpack": "^5.106.1",
|
|
99
99
|
"zod": "^4.3.6",
|
|
100
100
|
"@manifesto-ai/core": "2.12.0"
|
|
101
101
|
},
|