@manifesto-ai/compiler 3.2.0 → 3.3.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.
@@ -1,5 +1,5 @@
1
- import{_ as n}from"./chunk-Z6PR4OWA.js";function s(o){let r=o.location;if(!r)return`[${o.code}] ${o.message}`;let{line:e,column:t}=r.start;return`[${o.code}] ${o.message} (${e}:${t})`}function c(o,r){let e=n(o,{mode:"domain"});if(e.errors.length>0){let i=e.errors.map(s).join(`
1
+ import{$ as n}from"./chunk-3KVBHKIL.js";function s(o){let r=o.location;if(!r)return`[${o.code}] ${o.message}`;let{line:e,column:t}=r.start;return`[${o.code}] ${o.message} (${e}:${t})`}function c(o,r){let e=n(o,{mode:"domain"});if(e.errors.length>0){let i=e.errors.map(s).join(`
2
2
  `);throw new Error(`MEL compilation failed for ${r}
3
3
  ${i}`)}if(!e.schema)throw new Error(`MEL compilation produced no schema for ${r}`);return`export default ${JSON.stringify(e.schema,null,2)};
4
4
  `}export{s as a,c as b};
5
- //# sourceMappingURL=chunk-VJFQRHAM.js.map
5
+ //# sourceMappingURL=chunk-F7ORNXSB.js.map
@@ -1,5 +1,5 @@
1
- import{a as d}from"./chunk-VJFQRHAM.js";import{_ as f}from"./chunk-Z6PR4OWA.js";import{createHash as u}from"crypto";import*as i from"path";import{createUnplugin as p}from"unplugin";var h=new Set(["transform","build","both"]);function l(e){return e.split("?",1)[0]}function y(e,t){return e.lastIndex=0,e.test(t)}function b(e){let t=l(e).replace(/\\/g,"/");if(!t)return"domain.mel";if(!i.isAbsolute(e))return t.replace(/^\.\//,"");let n=i.relative(process.cwd(),e);return!n||n.startsWith("..")||i.isAbsolute(n)?M(t):n.split(i.sep).join("/")}function M(e){let t=i.posix.basename(e)||"domain.mel",n=i.posix.extname(t),o=t.slice(0,t.length-n.length)||"domain",r=u("sha256").update(e).digest("hex").slice(0,12);return`external/${x(o)}--${r}${n}`}function x(e){return e.replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"domain"}function w(e){if(!e)return null;if(typeof e=="function")return{emit:e,timing:"transform"};if(typeof e=="object"&&typeof e.emit=="function"){let t=e.timing??"transform";if(!h.has(t))throw new TypeError(`manifesto:mel codegen timing must be one of "transform", "build", or "both" (received ${JSON.stringify(t)})`);return{emit:e.emit,timing:t}}throw new TypeError("manifesto:mel codegen must be a function or an object with a callable emit field")}var I=p((e={})=>{let t=e.include??/\.mel$/,n=new Map,o=w(e.codegen);return{name:"manifesto:mel",enforce:"pre",transformInclude(r){return y(t,l(r))},async transform(r,s){let m=l(s),a=f(r,{mode:"domain"});if(a.errors.length>0){let g=a.errors.map(d).join(`
1
+ import{a as d}from"./chunk-F7ORNXSB.js";import{$ as f}from"./chunk-3KVBHKIL.js";import{createHash as u}from"crypto";import*as i from"path";import{createUnplugin as p}from"unplugin";var h=new Set(["transform","build","both"]);function l(e){return e.split("?",1)[0]}function y(e,t){return e.lastIndex=0,e.test(t)}function b(e){let t=l(e).replace(/\\/g,"/");if(!t)return"domain.mel";if(!i.isAbsolute(e))return t.replace(/^\.\//,"");let n=i.relative(process.cwd(),e);return!n||n.startsWith("..")||i.isAbsolute(n)?M(t):n.split(i.sep).join("/")}function M(e){let t=i.posix.basename(e)||"domain.mel",n=i.posix.extname(t),o=t.slice(0,t.length-n.length)||"domain",r=u("sha256").update(e).digest("hex").slice(0,12);return`external/${x(o)}--${r}${n}`}function x(e){return e.replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"domain"}function w(e){if(!e)return null;if(typeof e=="function")return{emit:e,timing:"transform"};if(typeof e=="object"&&typeof e.emit=="function"){let t=e.timing??"transform";if(!h.has(t))throw new TypeError(`manifesto:mel codegen timing must be one of "transform", "build", or "both" (received ${JSON.stringify(t)})`);return{emit:e.emit,timing:t}}throw new TypeError("manifesto:mel codegen must be a function or an object with a callable emit field")}var I=p((e={})=>{let t=e.include??/\.mel$/,n=new Map,o=w(e.codegen);return{name:"manifesto:mel",enforce:"pre",transformInclude(r){return y(t,l(r))},async transform(r,s){let m=l(s),a=f(r,{mode:"domain"});if(a.errors.length>0){let g=a.errors.map(d).join(`
2
2
  `);throw new Error(`MEL compilation failed for ${m}
3
3
  ${g}`)}if(!a.schema)throw new Error(`MEL compilation produced no schema for ${m}`);let c=b(m);return o&&((o.timing==="transform"||o.timing==="both")&&await o.emit({schema:a.schema,sourceId:c}),(o.timing==="build"||o.timing==="both")&&n.set(c,a.schema)),`export default ${JSON.stringify(a.schema,null,2)};
4
4
  `},async buildEnd(){if(!(!o||n.size===0))for(let[r,s]of n)await o.emit({schema:s,sourceId:r})}}});export{I as a};
5
- //# sourceMappingURL=chunk-7V3B4M34.js.map
5
+ //# sourceMappingURL=chunk-PHMJ5ODH.js.map
package/dist/esbuild.js CHANGED
@@ -1,2 +1,2 @@
1
- import{a as e}from"./chunk-7V3B4M34.js";import"./chunk-VJFQRHAM.js";import"./chunk-Z6PR4OWA.js";var t=e.esbuild,n=t;export{n as default,t as melPlugin};
1
+ import{a as e}from"./chunk-PHMJ5ODH.js";import"./chunk-F7ORNXSB.js";import"./chunk-3KVBHKIL.js";var t=e.esbuild,n=t;export{n as default,t as melPlugin};
2
2
  //# sourceMappingURL=esbuild.js.map
@@ -65,6 +65,7 @@ export interface FieldSpec {
65
65
  */
66
66
  export interface StateSpec {
67
67
  fields: Record<string, FieldSpec>;
68
+ fieldTypes?: Record<string, TypeDefinition>;
68
69
  }
69
70
  /**
70
71
  * Computed field specification
@@ -91,13 +92,19 @@ export interface ComputedSpec {
91
92
  export interface ActionSpec {
92
93
  flow: CoreFlowNode;
93
94
  input?: FieldSpec;
95
+ inputType?: TypeDefinition;
96
+ params?: readonly string[];
94
97
  available?: CoreExprNode;
98
+ dispatchable?: CoreExprNode;
95
99
  description?: string;
96
100
  }
97
101
  export interface CompilerActionSpec {
98
102
  flow: CompilerFlowNode;
99
103
  input?: FieldSpec;
104
+ inputType?: TypeDefinition;
105
+ params?: readonly string[];
100
106
  available?: CompilerExprNode;
107
+ dispatchable?: CompilerExprNode;
101
108
  description?: string;
102
109
  }
103
110
  /**
package/dist/index.js CHANGED
@@ -1,22 +1,22 @@
1
- import{$ as Un,A as Nn,B as vn,C as bn,D as x,E as Cn,F as Sn,G as B,H as Pn,I as $n,J as wn,K as An,L as xn,M as On,N as Rn,O as jn,P as Fn,Q as Tn,R as Dn,S as w,T as In,U as _n,V as Gn,W as qn,X as Ln,Y as H,Z as X,_ as Mn,a as Jt,b as Yt,c as Qt,d as Zt,e as en,f as tn,g as nn,h as rn,i as an,j as on,k as sn,l as _,m as cn,n as un,o as dn,p as ln,q as pn,r as fn,s as mn,t as gn,u as yn,v as G,w as hn,x as En,y as K,z as kn}from"./chunk-Z6PR4OWA.js";var J={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"},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 Kn(e){return J[e]}function Bn(e){let t=J[e];return t?`${e}: ${t.message}`:e}function Y(e,t){let{code:n,message:r,location:a}=e;if(!a||a.start.line===0&&a.start.column===0)return`[${n}] ${r}`;let{line:o,column:i}=a.start,u=`[${n}] ${r} (${o}:${i})`;if(!t)return u;let y=t.split(`
1
+ import{$ as Un,A as Nn,B as vn,C as bn,D as x,E as Cn,F as Sn,G as B,H as Pn,I as $n,J as wn,K as An,L as xn,M as On,N as Rn,O as Fn,P as jn,Q as Tn,R as Dn,S as In,T as w,U as _n,V as Gn,W as qn,X as Ln,Y as Mn,Z as H,_ as X,a as Jt,aa as Vn,b as Yt,c as Qt,d as Zt,e as en,f as tn,g as nn,h as rn,i as an,j as on,k as sn,l as _,m as cn,n as un,o as dn,p as ln,q as pn,r as fn,s as mn,t as gn,u as yn,v as G,w as hn,x as En,y as K,z as kn}from"./chunk-3KVBHKIL.js";var J={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"},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 Bn(e){return J[e]}function Hn(e){let t=J[e];return t?`${e}: ${t.message}`:e}function Y(e,t){let{code:n,message:r,location:a}=e;if(!a||a.start.line===0&&a.start.column===0)return`[${n}] ${r}`;let{line:o,column:i}=a.start,u=`[${n}] ${r} (${o}:${i})`;if(!t)return u;let y=t.split(`
2
2
  `)[o-1];if(!y)return u;let p=String(o).padStart(4," "),f=`${p} | ${y}`,l=Math.max(1,a.end.line===a.start.line?Math.min(a.end.column-i,y.length-i+1):1),E=`${" ".repeat(p.length+3+i-1)}${"^".repeat(l)}`;return`${u}
3
3
  ${f}
4
4
  ${E}`}function Ne(e,t){return e.map(n=>Y(n,t)).join(`
5
5
 
6
- `)}function er(e,t,n){switch(e){case"+":return{kind:"add",left:t,right:n};case"-":return{kind:"sub",left:t,right:n};case"*":return{kind:"mul",left:t,right:n};case"/":return{kind:"div",left:t,right:n};case"%":return{kind:"mod",left:t,right:n};case"==":return{kind:"eq",left:t,right:n};case"!=":return{kind:"neq",left:t,right:n};case"<":return{kind:"lt",left:t,right:n};case"<=":return{kind:"lte",left:t,right:n};case">":return{kind:"gt",left:t,right:n};case">=":return{kind:"gte",left:t,right:n};case"&&":return{kind:"and",args:[t,n]};case"||":return{kind:"or",args:[t,n]};case"??":return{kind:"coalesce",args:[t,n]}}}function tr(e,t){switch(e){case"add":return{kind:"add",left:t[0],right:t[1]};case"sub":return{kind:"sub",left:t[0],right:t[1]};case"mul":return{kind:"mul",left:t[0],right:t[1]};case"div":return{kind:"div",left:t[0],right:t[1]};case"mod":return{kind:"mod",left:t[0],right:t[1]};case"neg":return{kind:"neg",arg:t[0]};case"abs":return{kind:"abs",arg:t[0]};case"min":return t.length===1?{kind:"minArray",array:t[0]}:{kind:"min",args:t};case"max":return t.length===1?{kind:"maxArray",array:t[0]}:{kind:"max",args:t};case"sum":return{kind:"sumArray",array:t[0]};case"floor":return{kind:"floor",arg:t[0]};case"ceil":return{kind:"ceil",arg:t[0]};case"round":return{kind:"round",arg:t[0]};case"sqrt":return{kind:"sqrt",arg:t[0]};case"pow":return{kind:"pow",base:t[0],exponent:t[1]};case"eq":return{kind:"eq",left:t[0],right:t[1]};case"neq":return{kind:"neq",left:t[0],right:t[1]};case"gt":return{kind:"gt",left:t[0],right:t[1]};case"gte":return{kind:"gte",left:t[0],right:t[1]};case"lt":return{kind:"lt",left:t[0],right:t[1]};case"lte":return{kind:"lte",left:t[0],right:t[1]};case"and":return{kind:"and",args:t};case"or":return{kind:"or",args:t};case"not":return{kind:"not",arg:t[0]};case"isNull":return{kind:"isNull",arg:t[0]};case"isNotNull":return{kind:"not",arg:{kind:"isNull",arg:t[0]}};case"typeof":return{kind:"typeof",arg:t[0]};case"coalesce":return{kind:"coalesce",args:t};case"concat":return{kind:"concat",args:t};case"trim":return{kind:"trim",str:t[0]};case"lower":case"toLowerCase":return{kind:"toLowerCase",str:t[0]};case"upper":case"toUpperCase":return{kind:"toUpperCase",str:t[0]};case"strlen":case"strLen":return{kind:"strLen",str:t[0]};case"substr":case"substring":return t[2]?{kind:"substring",str:t[0],start:t[1],end:t[2]}:{kind:"substring",str:t[0],start:t[1]};case"toString":return{kind:"toString",arg:t[0]};case"len":case"length":return{kind:"len",arg:t[0]};case"at":return{kind:"at",array:t[0],index:t[1]};case"first":return{kind:"first",array:t[0]};case"last":return{kind:"last",array:t[0]};case"slice":return t[2]?{kind:"slice",array:t[0],start:t[1],end:t[2]}:{kind:"slice",array:t[0],start:t[1]};case"includes":return{kind:"includes",array:t[0],item:t[1]};case"filter":return{kind:"filter",array:t[0],predicate:t[1]};case"map":return{kind:"map",array:t[0],mapper:t[1]};case"find":return{kind:"find",array:t[0],predicate:t[1]};case"every":return{kind:"every",array:t[0],predicate:t[1]};case"some":return{kind:"some",array:t[0],predicate:t[1]};case"append":return{kind:"append",array:t[0],items:t.slice(1)};case"keys":return{kind:"keys",obj:t[0]};case"values":return{kind:"values",obj:t[0]};case"entries":return{kind:"entries",obj:t[0]};case"merge":return{kind:"merge",objects:t};case"if":case"cond":return{kind:"if",cond:t[0],then:t[1],else:t[2]};default:return{kind:"object",fields:{__call:{kind:"lit",value:e},__args:{kind:"lit",value:t}}}}}import{hashSchemaSync as ve,semanticPathToPatchPath as be}from"@manifesto-ai/core";function Q(e){let t=structuredClone(e),n=!1;for(let[i,u]of Object.entries(t.actions)){let d=Ce(i);if(R(u.flow,d),d.slots.size!==0){n=!0;for(let y of d.slots.values())$e(t.state.fields,i,y);t.actions[i]={...u,flow:Ae(u.flow,d)}}}if(!n)return t;let{hash:r,...a}=t,o=ve(a);return{...a,hash:o}}function Ce(e){return{actionName:e,slots:new Map}}function Se(e){switch(e){case"timestamp":case"time.now":return"number";default:return"string"}}function Pe(e){return e.replaceAll(".","_")}function O(e,t){let n=e[t];if(n&&n.type==="object")return n.required=!1,n.default??={},n.fields??={},n;let r={type:"object",required:!1,default:{},fields:{}};return e[t]=r,r}function $e(e,t,n){let r=O(e,"$mel"),a=O(r.fields??(r.fields={}),"sys"),o=O(a.fields??(a.fields={}),t),i=O(o.fields??(o.fields={}),n.normalizedKey),u=i.fields??(i.fields={});u.intent={type:"string",required:!1,default:null},u.value={type:Se(n.key),required:!1,default:null}}function we(e){return be(e)}function R(e,t){switch(e.kind){case"seq":for(let n of e.steps)R(n,t);break;case"if":C(e.cond,t),R(e.then,t),e.else&&R(e.else,t);break;case"patch":e.value&&C(e.value,t);break;case"effect":for(let n of Object.values(e.params))C(n,t);break;case"fail":e.message&&C(e.message,t);break}}function C(e,t){if(e.kind==="get"&&e.path.startsWith("$system.")){let n=e.path.slice(8);if(!t.slots.has(n)){let r=Pe(n);t.slots.set(n,{key:n,normalizedKey:r,valuePath:`$mel.sys.${t.actionName}.${r}.value`,intentPath:`$mel.sys.${t.actionName}.${r}.intent`})}return}if(e.kind==="object"){for(let n of Object.values(e.fields))n&&typeof n=="object"&&"kind"in n&&C(n,t);return}for(let n of Object.values(e))if(typeof n=="object"&&n!==null)if(Array.isArray(n))for(let r of n)typeof r=="object"&&r!==null&&"kind"in r&&C(r,t);else"kind"in n&&C(n,t)}function Ae(e,t){if(t.slots.size===0)return e;let n=[];for(let u of t.slots.values()){let d={kind:"if",cond:{kind:"neq",left:{kind:"get",path:u.intentPath},right:{kind:"get",path:"meta.intentId"}},then:{kind:"seq",steps:[{kind:"patch",op:"set",path:we(u.intentPath),value:{kind:"get",path:"meta.intentId"}},{kind:"effect",type:"system.get",params:{key:{kind:"lit",value:u.key},into:{kind:"lit",value:u.valuePath}}}]}};n.push(d)}let r=[];for(let u of t.slots.values())r.push({kind:"eq",left:{kind:"get",path:u.intentPath},right:{kind:"get",path:"meta.intentId"}});let a=r.length===1?r[0]:{kind:"and",args:r},o=j(e,t),i={kind:"if",cond:a,then:o};return{kind:"seq",steps:[...n,i]}}function j(e,t){switch(e.kind){case"seq":return{kind:"seq",steps:e.steps.map(r=>j(r,t))};case"if":return{kind:"if",cond:h(e.cond,t),then:j(e.then,t),else:e.else?j(e.else,t):void 0};case"patch":return{kind:"patch",op:e.op,path:e.path,value:e.value?h(e.value,t):void 0};case"effect":let n={};for(let[r,a]of Object.entries(e.params))n[r]=h(a,t);return{kind:"effect",type:e.type,params:n};case"fail":return{kind:"fail",code:e.code,message:e.message?h(e.message,t):void 0};default:return e}}function h(e,t){if(e.kind==="get"&&e.path.startsWith("$system.")){let n=e.path.slice(8),r=t.slots.get(n);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:h(e.left,t),right:h(e.right,t)};case"and":case"or":case"coalesce":case"concat":case"min":case"max":case"merge":return{kind:e.kind,args:e.args.map(r=>h(r,t))};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:h(e.arg,t)};case"trim":case"toLowerCase":case"toUpperCase":case"strLen":return{kind:e.kind,str:h(e.str,t)};case"at":case"includes":return{kind:e.kind,array:h(e.array,t),index:h(e.index??e.item,t)};case"filter":case"map":case"find":case"every":case"some":return{kind:e.kind,array:h(e.array,t),predicate:h(e.predicate??e.mapper,t)};case"if":return{kind:"if",cond:h(e.cond,t),then:h(e.then,t),else:h(e.else,t)};case"field":return{kind:"field",object:h(e.object,t),property:e.property};case"object":let n={};for(let[r,a]of Object.entries(e.fields))n[r]=h(a,t);return{kind:"object",fields:n};case"append":return{kind:"append",array:h(e.array,t),items:e.items.map(r=>h(r,t))};default:return e}}function k(e){switch(e.kind){case"primitive":return e.name;case"literal":return xe(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 Oe(e.members);case"object":return Re(e.fields)}}function xe(e){return e===null?"null":typeof e=="string"?`"${Z(e)}"`:typeof e=="boolean"?e?"true":"false":String(e)}function Oe(e){return e.length===0?"never":e.map(k).join(" | ")}function Re(e){return e.length===0?"{}":`{ ${e.map(n=>{let r=n.optional?"?":"";return`${n.name}${r}: ${k(n.type)}`}).join(", ")} }`}function P(e,t){let n=k(e.type);return t!==void 0?`${e.name}: ${n} = ${S(t)}`:e.optional?`${e.name}?: ${n}`:`${e.name}: ${n}`}function S(e){return e===null||e===void 0?"null":typeof e=="string"?`"${Z(e)}"`:typeof e=="number"?String(e):typeof e=="boolean"?e?"true":"false":Array.isArray(e)?`[${e.map(S).join(", ")}]`:typeof e=="object"?`{ ${Object.entries(e).map(([n,r])=>`${n}: ${S(r)}`).join(", ")} }`:String(e)}function Z(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t")}function s(e){switch(e.kind){case"lit":return q(e.value);case"get":return je(e.path);case"eq":return`eq(${s(e.left)}, ${s(e.right)})`;case"neq":return`neq(${s(e.left)}, ${s(e.right)})`;case"gt":return`gt(${s(e.left)}, ${s(e.right)})`;case"gte":return`gte(${s(e.left)}, ${s(e.right)})`;case"lt":return`lt(${s(e.left)}, ${s(e.right)})`;case"lte":return`lte(${s(e.left)}, ${s(e.right)})`;case"and":return!e.args||!Array.isArray(e.args)?"and(/* malformed: args undefined */)":`and(${e.args.map(s).join(", ")})`;case"or":return!e.args||!Array.isArray(e.args)?"or(/* malformed: args undefined */)":`or(${e.args.map(s).join(", ")})`;case"not":return e.arg?`not(${s(e.arg)})`:"not(/* malformed: arg undefined */)";case"if":return`if(${s(e.cond)}, ${s(e.then)}, ${s(e.else)})`;case"add":return`add(${s(e.left)}, ${s(e.right)})`;case"sub":return`sub(${s(e.left)}, ${s(e.right)})`;case"mul":return`mul(${s(e.left)}, ${s(e.right)})`;case"div":return`div(${s(e.left)}, ${s(e.right)})`;case"mod":return`mod(${s(e.left)}, ${s(e.right)})`;case"concat":return!e.args||!Array.isArray(e.args)?"concat(/* malformed: args undefined */)":`concat(${e.args.map(s).join(", ")})`;case"substring":return e.end!==void 0?`substring(${s(e.str)}, ${s(e.start)}, ${s(e.end)})`:`substring(${s(e.str)}, ${s(e.start)})`;case"trim":return`trim(${s(e.str)})`;case"len":return`len(${s(e.arg)})`;case"at":return`at(${s(e.array)}, ${s(e.index)})`;case"first":return`first(${s(e.array)})`;case"last":return`last(${s(e.array)})`;case"slice":return e.end!==void 0?`slice(${s(e.array)}, ${s(e.start)}, ${s(e.end)})`:`slice(${s(e.array)}, ${s(e.start)})`;case"includes":return`includes(${s(e.array)}, ${s(e.item)})`;case"filter":return`filter(${s(e.array)}, ${s(e.predicate)})`;case"map":return`map(${s(e.array)}, ${s(e.mapper)})`;case"find":return`find(${s(e.array)}, ${s(e.predicate)})`;case"every":return`every(${s(e.array)}, ${s(e.predicate)})`;case"some":return`some(${s(e.array)}, ${s(e.predicate)})`;case"append":return!e.items||!Array.isArray(e.items)?`append(${s(e.array)}, /* malformed: items undefined */)`:`append(${s(e.array)}, ${e.items.map(s).join(", ")})`;case"object":return Fe(e.fields);case"field":return`${s(e.object)}.${e.property}`;case"keys":return`keys(${s(e.obj)})`;case"values":return`values(${s(e.obj)})`;case"entries":return`entries(${s(e.obj)})`;case"merge":return!e.objects||!Array.isArray(e.objects)?"merge(/* malformed: objects undefined */)":`merge(${e.objects.map(s).join(", ")})`;case"typeof":return`typeof(${s(e.arg)})`;case"isNull":return`isNull(${s(e.arg)})`;case"coalesce":return!e.args||!Array.isArray(e.args)?"coalesce(/* malformed: args undefined */)":`coalesce(${e.args.map(s).join(", ")})`;default:return`/* unknown: ${JSON.stringify(e)} */`}}function q(e){return e===null||e===void 0?"null":typeof e=="string"?`"${Te(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(([n,r])=>`${n}: ${q(r)}`).join(", ")} }`:String(e)}function je(e){return e.startsWith("$meta.")||e.startsWith("$system.")||e.startsWith("$input.")?e:e.startsWith("data.")?e.slice(5):e}function Fe(e){return`{ ${Object.entries(e).map(([n,r])=>`${n}: ${s(r)}`).join(", ")} }`}function Te(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t")}import{parsePath as ee}from"@manifesto-ai/core";var De={indent:" ",includeComments:!1,commentPrefix:"// "};function v(e,t){let n={...De,...t};switch(e.kind){case"addType":return Ie(e,n);case"addField":return _e(e,n);case"setFieldType":return Ge(e,n);case"setDefaultValue":return qe(e,n);case"addConstraint":return Le(e,n);case"addComputed":return Me(e,n);case"addActionAvailable":return Ue(e,n);default:return`// Unknown operation: ${JSON.stringify(e)}`}}function Ie(e,t){let{indent:n}=t;if(e.typeExpr.kind==="object"){let r=e.typeExpr.fields.map(a=>`${n}${P(a)}`).join(`
6
+ `)}function tr(e,t,n){switch(e){case"+":return{kind:"add",left:t,right:n};case"-":return{kind:"sub",left:t,right:n};case"*":return{kind:"mul",left:t,right:n};case"/":return{kind:"div",left:t,right:n};case"%":return{kind:"mod",left:t,right:n};case"==":return{kind:"eq",left:t,right:n};case"!=":return{kind:"neq",left:t,right:n};case"<":return{kind:"lt",left:t,right:n};case"<=":return{kind:"lte",left:t,right:n};case">":return{kind:"gt",left:t,right:n};case">=":return{kind:"gte",left:t,right:n};case"&&":return{kind:"and",args:[t,n]};case"||":return{kind:"or",args:[t,n]};case"??":return{kind:"coalesce",args:[t,n]}}}function nr(e,t){switch(e){case"add":return{kind:"add",left:t[0],right:t[1]};case"sub":return{kind:"sub",left:t[0],right:t[1]};case"mul":return{kind:"mul",left:t[0],right:t[1]};case"div":return{kind:"div",left:t[0],right:t[1]};case"mod":return{kind:"mod",left:t[0],right:t[1]};case"neg":return{kind:"neg",arg:t[0]};case"abs":return{kind:"abs",arg:t[0]};case"min":return t.length===1?{kind:"minArray",array:t[0]}:{kind:"min",args:t};case"max":return t.length===1?{kind:"maxArray",array:t[0]}:{kind:"max",args:t};case"sum":return{kind:"sumArray",array:t[0]};case"floor":return{kind:"floor",arg:t[0]};case"ceil":return{kind:"ceil",arg:t[0]};case"round":return{kind:"round",arg:t[0]};case"sqrt":return{kind:"sqrt",arg:t[0]};case"pow":return{kind:"pow",base:t[0],exponent:t[1]};case"eq":return{kind:"eq",left:t[0],right:t[1]};case"neq":return{kind:"neq",left:t[0],right:t[1]};case"gt":return{kind:"gt",left:t[0],right:t[1]};case"gte":return{kind:"gte",left:t[0],right:t[1]};case"lt":return{kind:"lt",left:t[0],right:t[1]};case"lte":return{kind:"lte",left:t[0],right:t[1]};case"and":return{kind:"and",args:t};case"or":return{kind:"or",args:t};case"not":return{kind:"not",arg:t[0]};case"isNull":return{kind:"isNull",arg:t[0]};case"isNotNull":return{kind:"not",arg:{kind:"isNull",arg:t[0]}};case"typeof":return{kind:"typeof",arg:t[0]};case"coalesce":return{kind:"coalesce",args:t};case"concat":return{kind:"concat",args:t};case"trim":return{kind:"trim",str:t[0]};case"lower":case"toLowerCase":return{kind:"toLowerCase",str:t[0]};case"upper":case"toUpperCase":return{kind:"toUpperCase",str:t[0]};case"strlen":case"strLen":return{kind:"strLen",str:t[0]};case"substr":case"substring":return t[2]?{kind:"substring",str:t[0],start:t[1],end:t[2]}:{kind:"substring",str:t[0],start:t[1]};case"toString":return{kind:"toString",arg:t[0]};case"len":case"length":return{kind:"len",arg:t[0]};case"at":return{kind:"at",array:t[0],index:t[1]};case"first":return{kind:"first",array:t[0]};case"last":return{kind:"last",array:t[0]};case"slice":return t[2]?{kind:"slice",array:t[0],start:t[1],end:t[2]}:{kind:"slice",array:t[0],start:t[1]};case"includes":return{kind:"includes",array:t[0],item:t[1]};case"filter":return{kind:"filter",array:t[0],predicate:t[1]};case"map":return{kind:"map",array:t[0],mapper:t[1]};case"find":return{kind:"find",array:t[0],predicate:t[1]};case"every":return{kind:"every",array:t[0],predicate:t[1]};case"some":return{kind:"some",array:t[0],predicate:t[1]};case"append":return{kind:"append",array:t[0],items:t.slice(1)};case"keys":return{kind:"keys",obj:t[0]};case"values":return{kind:"values",obj:t[0]};case"entries":return{kind:"entries",obj:t[0]};case"merge":return{kind:"merge",objects:t};case"if":case"cond":return{kind:"if",cond:t[0],then:t[1],else:t[2]};default:return{kind:"object",fields:{__call:{kind:"lit",value:e},__args:{kind:"lit",value:t}}}}}import{hashSchemaSync as ve,semanticPathToPatchPath as be}from"@manifesto-ai/core";function Q(e){let t=structuredClone(e),n=!1;for(let[i,u]of Object.entries(t.actions)){let d=Ce(i);if(R(u.flow,d),d.slots.size!==0){n=!0;for(let y of d.slots.values())$e(t.state.fields,i,y);t.actions[i]={...u,flow:Ae(u.flow,d)}}}if(!n)return t;let{hash:r,...a}=t,o=ve(a);return{...a,hash:o}}function Ce(e){return{actionName:e,slots:new Map}}function Se(e){switch(e){case"timestamp":case"time.now":return"number";default:return"string"}}function Pe(e){return e.replaceAll(".","_")}function O(e,t){let n=e[t];if(n&&n.type==="object")return n.required=!1,n.default??={},n.fields??={},n;let r={type:"object",required:!1,default:{},fields:{}};return e[t]=r,r}function $e(e,t,n){let r=O(e,"$mel"),a=O(r.fields??(r.fields={}),"sys"),o=O(a.fields??(a.fields={}),t),i=O(o.fields??(o.fields={}),n.normalizedKey),u=i.fields??(i.fields={});u.intent={type:"string",required:!1,default:null},u.value={type:Se(n.key),required:!1,default:null}}function we(e){return be(e)}function R(e,t){switch(e.kind){case"seq":for(let n of e.steps)R(n,t);break;case"if":C(e.cond,t),R(e.then,t),e.else&&R(e.else,t);break;case"patch":e.value&&C(e.value,t);break;case"effect":for(let n of Object.values(e.params))C(n,t);break;case"fail":e.message&&C(e.message,t);break}}function C(e,t){if(e.kind==="get"&&e.path.startsWith("$system.")){let n=e.path.slice(8);if(!t.slots.has(n)){let r=Pe(n);t.slots.set(n,{key:n,normalizedKey:r,valuePath:`$mel.sys.${t.actionName}.${r}.value`,intentPath:`$mel.sys.${t.actionName}.${r}.intent`})}return}if(e.kind==="object"){for(let n of Object.values(e.fields))n&&typeof n=="object"&&"kind"in n&&C(n,t);return}for(let n of Object.values(e))if(typeof n=="object"&&n!==null)if(Array.isArray(n))for(let r of n)typeof r=="object"&&r!==null&&"kind"in r&&C(r,t);else"kind"in n&&C(n,t)}function Ae(e,t){if(t.slots.size===0)return e;let n=[];for(let u of t.slots.values()){let d={kind:"if",cond:{kind:"neq",left:{kind:"get",path:u.intentPath},right:{kind:"get",path:"meta.intentId"}},then:{kind:"seq",steps:[{kind:"patch",op:"set",path:we(u.intentPath),value:{kind:"get",path:"meta.intentId"}},{kind:"effect",type:"system.get",params:{key:{kind:"lit",value:u.key},into:{kind:"lit",value:u.valuePath}}}]}};n.push(d)}let r=[];for(let u of t.slots.values())r.push({kind:"eq",left:{kind:"get",path:u.intentPath},right:{kind:"get",path:"meta.intentId"}});let a=r.length===1?r[0]:{kind:"and",args:r},o=F(e,t),i={kind:"if",cond:a,then:o};return{kind:"seq",steps:[...n,i]}}function F(e,t){switch(e.kind){case"seq":return{kind:"seq",steps:e.steps.map(r=>F(r,t))};case"if":return{kind:"if",cond:h(e.cond,t),then:F(e.then,t),else:e.else?F(e.else,t):void 0};case"patch":return{kind:"patch",op:e.op,path:e.path,value:e.value?h(e.value,t):void 0};case"effect":let n={};for(let[r,a]of Object.entries(e.params))n[r]=h(a,t);return{kind:"effect",type:e.type,params:n};case"fail":return{kind:"fail",code:e.code,message:e.message?h(e.message,t):void 0};default:return e}}function h(e,t){if(e.kind==="get"&&e.path.startsWith("$system.")){let n=e.path.slice(8),r=t.slots.get(n);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:h(e.left,t),right:h(e.right,t)};case"and":case"or":case"coalesce":case"concat":case"min":case"max":case"merge":return{kind:e.kind,args:e.args.map(r=>h(r,t))};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:h(e.arg,t)};case"trim":case"toLowerCase":case"toUpperCase":case"strLen":return{kind:e.kind,str:h(e.str,t)};case"at":case"includes":return{kind:e.kind,array:h(e.array,t),index:h(e.index??e.item,t)};case"filter":case"map":case"find":case"every":case"some":return{kind:e.kind,array:h(e.array,t),predicate:h(e.predicate??e.mapper,t)};case"if":return{kind:"if",cond:h(e.cond,t),then:h(e.then,t),else:h(e.else,t)};case"field":return{kind:"field",object:h(e.object,t),property:e.property};case"object":let n={};for(let[r,a]of Object.entries(e.fields))n[r]=h(a,t);return{kind:"object",fields:n};case"append":return{kind:"append",array:h(e.array,t),items:e.items.map(r=>h(r,t))};default:return e}}function k(e){switch(e.kind){case"primitive":return e.name;case"literal":return xe(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 Oe(e.members);case"object":return Re(e.fields)}}function xe(e){return e===null?"null":typeof e=="string"?`"${Z(e)}"`:typeof e=="boolean"?e?"true":"false":String(e)}function Oe(e){return e.length===0?"never":e.map(k).join(" | ")}function Re(e){return e.length===0?"{}":`{ ${e.map(n=>{let r=n.optional?"?":"";return`${n.name}${r}: ${k(n.type)}`}).join(", ")} }`}function P(e,t){let n=k(e.type);return t!==void 0?`${e.name}: ${n} = ${S(t)}`:e.optional?`${e.name}?: ${n}`:`${e.name}: ${n}`}function S(e){return e===null||e===void 0?"null":typeof e=="string"?`"${Z(e)}"`:typeof e=="number"?String(e):typeof e=="boolean"?e?"true":"false":Array.isArray(e)?`[${e.map(S).join(", ")}]`:typeof e=="object"?`{ ${Object.entries(e).map(([n,r])=>`${n}: ${S(r)}`).join(", ")} }`:String(e)}function Z(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t")}function s(e){switch(e.kind){case"lit":return q(e.value);case"get":return Fe(e.path);case"eq":return`eq(${s(e.left)}, ${s(e.right)})`;case"neq":return`neq(${s(e.left)}, ${s(e.right)})`;case"gt":return`gt(${s(e.left)}, ${s(e.right)})`;case"gte":return`gte(${s(e.left)}, ${s(e.right)})`;case"lt":return`lt(${s(e.left)}, ${s(e.right)})`;case"lte":return`lte(${s(e.left)}, ${s(e.right)})`;case"and":return!e.args||!Array.isArray(e.args)?"and(/* malformed: args undefined */)":`and(${e.args.map(s).join(", ")})`;case"or":return!e.args||!Array.isArray(e.args)?"or(/* malformed: args undefined */)":`or(${e.args.map(s).join(", ")})`;case"not":return e.arg?`not(${s(e.arg)})`:"not(/* malformed: arg undefined */)";case"if":return`if(${s(e.cond)}, ${s(e.then)}, ${s(e.else)})`;case"add":return`add(${s(e.left)}, ${s(e.right)})`;case"sub":return`sub(${s(e.left)}, ${s(e.right)})`;case"mul":return`mul(${s(e.left)}, ${s(e.right)})`;case"div":return`div(${s(e.left)}, ${s(e.right)})`;case"mod":return`mod(${s(e.left)}, ${s(e.right)})`;case"concat":return!e.args||!Array.isArray(e.args)?"concat(/* malformed: args undefined */)":`concat(${e.args.map(s).join(", ")})`;case"substring":return e.end!==void 0?`substring(${s(e.str)}, ${s(e.start)}, ${s(e.end)})`:`substring(${s(e.str)}, ${s(e.start)})`;case"trim":return`trim(${s(e.str)})`;case"len":return`len(${s(e.arg)})`;case"at":return`at(${s(e.array)}, ${s(e.index)})`;case"first":return`first(${s(e.array)})`;case"last":return`last(${s(e.array)})`;case"slice":return e.end!==void 0?`slice(${s(e.array)}, ${s(e.start)}, ${s(e.end)})`:`slice(${s(e.array)}, ${s(e.start)})`;case"includes":return`includes(${s(e.array)}, ${s(e.item)})`;case"filter":return`filter(${s(e.array)}, ${s(e.predicate)})`;case"map":return`map(${s(e.array)}, ${s(e.mapper)})`;case"find":return`find(${s(e.array)}, ${s(e.predicate)})`;case"every":return`every(${s(e.array)}, ${s(e.predicate)})`;case"some":return`some(${s(e.array)}, ${s(e.predicate)})`;case"append":return!e.items||!Array.isArray(e.items)?`append(${s(e.array)}, /* malformed: items undefined */)`:`append(${s(e.array)}, ${e.items.map(s).join(", ")})`;case"object":return je(e.fields);case"field":return`${s(e.object)}.${e.property}`;case"keys":return`keys(${s(e.obj)})`;case"values":return`values(${s(e.obj)})`;case"entries":return`entries(${s(e.obj)})`;case"merge":return!e.objects||!Array.isArray(e.objects)?"merge(/* malformed: objects undefined */)":`merge(${e.objects.map(s).join(", ")})`;case"typeof":return`typeof(${s(e.arg)})`;case"isNull":return`isNull(${s(e.arg)})`;case"coalesce":return!e.args||!Array.isArray(e.args)?"coalesce(/* malformed: args undefined */)":`coalesce(${e.args.map(s).join(", ")})`;default:return`/* unknown: ${JSON.stringify(e)} */`}}function q(e){return e===null||e===void 0?"null":typeof e=="string"?`"${Te(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(([n,r])=>`${n}: ${q(r)}`).join(", ")} }`:String(e)}function Fe(e){return e.startsWith("$meta.")||e.startsWith("$system.")||e.startsWith("$input.")?e:e.startsWith("data.")?e.slice(5):e}function je(e){return`{ ${Object.entries(e).map(([n,r])=>`${n}: ${s(r)}`).join(", ")} }`}function Te(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t")}import{parsePath as ee}from"@manifesto-ai/core";var De={indent:" ",includeComments:!1,commentPrefix:"// "};function v(e,t){let n={...De,...t};switch(e.kind){case"addType":return Ie(e,n);case"addField":return _e(e,n);case"setFieldType":return Ge(e,n);case"setDefaultValue":return qe(e,n);case"addConstraint":return Le(e,n);case"addComputed":return Me(e,n);case"addActionAvailable":return Ue(e,n);default:return`// Unknown operation: ${JSON.stringify(e)}`}}function Ie(e,t){let{indent:n}=t;if(e.typeExpr.kind==="object"){let r=e.typeExpr.fields.map(a=>`${n}${P(a)}`).join(`
7
7
  `);return`type ${e.typeName} {
8
8
  ${r}
9
9
  }`}return`type ${e.typeName} = ${k(e.typeExpr)}`}function _e(e,t){let n=e.field;return"defaultValue"in n&&n.defaultValue!==void 0?P(n,n.defaultValue):P(n)}function Ge(e,t){let n=k(e.typeExpr),r=te(e.path),a=[];return t.includeComments&&a.push(`${t.commentPrefix}Change ${e.path} type to: ${n}`),a.push(`${r}: ${n}`),a.join(`
10
10
  `)}function qe(e,t){let n=te(e.path),r=S(e.value),a=[];return t.includeComments&&a.push(`${t.commentPrefix}Set default value for ${e.path}`),a.push(`${n} = ${r}`),a.join(`
11
11
  `)}function Le(e,t){let n=s(e.rule),r=e.message?` - "${e.message}"`:"";return`${t.commentPrefix}Constraint on ${e.targetPath}: ${n}${r}`}function Me(e,t){let n=s(e.expr),r=[];return t.includeComments&&e.deps&&e.deps.length>0&&r.push(`${t.commentPrefix}Dependencies: ${e.deps.join(", ")}`),r.push(`computed ${e.name} = ${n}`),r.join(`
12
12
  `)}function Ue(e,t){let n=s(e.expr),r=[];return t.includeComments&&r.push(`${t.commentPrefix}Add availability condition to ${e.actionName}`),r.push(`action ${e.actionName}() available when ${n} {`),r.push(`${t.indent}// action body...`),r.push("}"),r.join(`
13
- `)}function te(e){let t=ee(e);return t[t.length-1]??""}function ne(e){let t=ee(e);if(t.length>=2)return t[0]}var F={indent:" ",includeComments:!0,commentPrefix:"// ",includeMetadata:!0,includeEvidence:!1,includeConfidence:!0,includeFragmentId:!1};function L(e,t){let n={...F,...t},r=[];if(n.includeMetadata){if(n.includeFragmentId&&r.push(`${n.commentPrefix}Fragment: ${e.fragmentId}`),n.includeConfidence){let o=(e.confidence*100).toFixed(0);r.push(`${n.commentPrefix}Confidence: ${o}%`)}if(n.includeEvidence&&e.evidence.length>0){r.push(`${n.commentPrefix}Evidence:`);for(let o of e.evidence)r.push(`${n.commentPrefix} - ${o}`)}}let a=v(e.op,{indent:n.indent,includeComments:n.includeComments,commentPrefix:n.commentPrefix});return r.push(a),r.join(`
14
- `)}function M(e,t){let n={...F,...t};return e.map(a=>L(a,n)).join(`
13
+ `)}function te(e){let t=ee(e);return t[t.length-1]??""}function ne(e){let t=ee(e);if(t.length>=2)return t[0]}var j={indent:" ",includeComments:!0,commentPrefix:"// ",includeMetadata:!0,includeEvidence:!1,includeConfidence:!0,includeFragmentId:!1};function L(e,t){let n={...j,...t},r=[];if(n.includeMetadata){if(n.includeFragmentId&&r.push(`${n.commentPrefix}Fragment: ${e.fragmentId}`),n.includeConfidence){let o=(e.confidence*100).toFixed(0);r.push(`${n.commentPrefix}Confidence: ${o}%`)}if(n.includeEvidence&&e.evidence.length>0){r.push(`${n.commentPrefix}Evidence:`);for(let o of e.evidence)r.push(`${n.commentPrefix} - ${o}`)}}let a=v(e.op,{indent:n.indent,includeComments:n.includeComments,commentPrefix:n.commentPrefix});return r.push(a),r.join(`
14
+ `)}function M(e,t){let n={...j,...t};return e.map(a=>L(a,n)).join(`
15
15
 
16
- `)}function re(e,t){let n={...F,...t},r={};for(let o of e){let i=o.op.kind;r[i]||(r[i]=[]),r[i].push(o)}let a={};for(let[o,i]of Object.entries(r))a[o]=M(i,n);return a}function ae(e,t,n){let a={...F,...n}.indent??" ",o=[],i=[],u=[],d=[],y=[],p=[];for(let l of t)switch(l.op.kind){case"addType":o.push(l);break;case"addField":case"setFieldType":i.push(l);break;case"setDefaultValue":u.push(l);break;case"addComputed":d.push(l);break;case"addConstraint":y.push(l);break;case"addActionAvailable":p.push(l);break}let f=[];if(f.push(`domain ${e} {`),i.length>0||u.length>0){f.push(`${a}state {`);for(let l of[...i,...u]){let g=v(l.op,{indent:a+a,includeComments:!1});f.push(`${a}${a}${g}`)}f.push(`${a}}`),f.push("")}for(let l of o){let E=v(l.op,{indent:a,includeComments:!1}).split(`
16
+ `)}function re(e,t){let n={...j,...t},r={};for(let o of e){let i=o.op.kind;r[i]||(r[i]=[]),r[i].push(o)}let a={};for(let[o,i]of Object.entries(r))a[o]=M(i,n);return a}function ae(e,t,n){let a={...j,...n}.indent??" ",o=[],i=[],u=[],d=[],y=[],p=[];for(let l of t)switch(l.op.kind){case"addType":o.push(l);break;case"addField":case"setFieldType":i.push(l);break;case"setDefaultValue":u.push(l);break;case"addComputed":d.push(l);break;case"addConstraint":y.push(l);break;case"addActionAvailable":p.push(l);break}let f=[];if(f.push(`domain ${e} {`),i.length>0||u.length>0){f.push(`${a}state {`);for(let l of[...i,...u]){let g=v(l.op,{indent:a+a,includeComments:!1});f.push(`${a}${a}${g}`)}f.push(`${a}}`),f.push("")}for(let l of o){let E=v(l.op,{indent:a,includeComments:!1}).split(`
17
17
  `).map(b=>`${a}${b}`).join(`
18
18
  `);f.push(E),f.push("")}for(let l of d){let g=v(l.op,{indent:a,includeComments:!1});f.push(`${a}${g}`)}d.length>0&&f.push("");for(let l of y){let g=v(l.op,{indent:a,includeComments:!0});f.push(`${a}${g}`)}y.length>0&&f.push("");for(let l of p){let E=v(l.op,{indent:a,includeComments:!1}).split(`
19
19
  `).map(b=>`${a}${b}`).join(`
20
20
  `);f.push(E),f.push("")}return f.push("}"),f.join(`
21
- `)}import{parsePath as Ve}from"@manifesto-ai/core";function We(e){return{snapshot:e.snapshot??{data:{},computed:{}},meta:e.meta,input:e.input??{},item:e.item}}function U(e,t,n){let r=structuredClone(e.data);return ze(r,t,n),{data:r,computed:e.computed}}function ze(e,t,n){let r=Ve(t),a=e;for(let i=0;i<r.length-1;i++){let u=r[i];(!(u in a)||typeof a[u]!="object")&&(a[u]={}),a=a[u]}let o=r[r.length-1];a[o]=n}import{parsePath as Ke}from"@manifesto-ai/core";function N(e,t){try{return c(e,t)}catch{return null}}function c(e,t){switch(e.kind){case"lit":return e.value;case"get":return Be(e.path,t);case"eq":return oe(e.left,e.right,t);case"neq":return He(e.left,e.right,t);case"gt":return T(e.left,e.right,t,(n,r)=>n>r);case"gte":return T(e.left,e.right,t,(n,r)=>n>=r);case"lt":return T(e.left,e.right,t,(n,r)=>n<r);case"lte":return T(e.left,e.right,t,(n,r)=>n<=r);case"and":return Xe(e.args,t);case"or":return Je(e.args,t);case"not":return Ye(e.arg,t);case"if":return Qe(e.cond,e.then,e.else,t);case"add":return V(e.left,e.right,t,(n,r)=>n+r);case"sub":return V(e.left,e.right,t,(n,r)=>n-r);case"mul":return V(e.left,e.right,t,(n,r)=>n*r);case"div":return Ze(e.left,e.right,t);case"mod":return et(e.left,e.right,t);case"neg":return tt(e.arg,t);case"concat":return nt(e.args,t);case"substring":return rt(e.str,e.start,e.end,t);case"trim":return at(e.str,t);case"len":return ot(e.arg,t);case"at":return it(e.array,e.index,t);case"first":return st(e.array,t);case"last":return ct(e.array,t);case"slice":return ut(e.array,e.start,e.end,t);case"includes":return dt(e.array,e.item,t);case"filter":return lt(e.array,e.predicate,t);case"map":return pt(e.array,e.mapper,t);case"find":return ft(e.array,e.predicate,t);case"every":return mt(e.array,e.predicate,t);case"some":return gt(e.array,e.predicate,t);case"append":return yt(e.array,e.items,t);case"object":return ht(e.fields,t);case"field":return Et(e.object,e.property,t);case"keys":return kt(e.obj,t);case"values":return Nt(e.obj,t);case"entries":return vt(e.obj,t);case"merge":return bt(e.objects,t);case"typeof":return Ct(e.arg,t);case"isNull":return St(e.arg,t);case"coalesce":return Pt(e.args,t);default:return null}}function Be(e,t){let n=Ke(e);return n[0]==="meta"?A(t.meta,n.slice(1)):n[0]==="input"?A(t.input,n.slice(1)):n[0]==="$item"?t.item===void 0?null:n.length===1?t.item:A(t.item,n.slice(1)):e in t.snapshot.computed?t.snapshot.computed[e]:A(t.snapshot.data,n)}function A(e,t){if(t.length===0)return e;if(e==null||typeof e!="object")return null;let[n,...r]=t,a=e[n];return r.length===0?a===void 0?null:a:A(a,r)}function oe(e,t,n){let r=c(e,n),a=c(t,n);return D(r,a)}function He(e,t,n){let r=oe(e,t,n);return r===null?null:!r}function T(e,t,n,r){let a=c(e,n),o=c(t,n);return typeof a!="number"||typeof o!="number"?null:r(a,o)}function D(e,t){if(e===t)return!0;if(e===null||t===null)return e===t;if(typeof e!=typeof t)return!1;if(Array.isArray(e)&&Array.isArray(t))return e.length!==t.length?!1:e.every((n,r)=>D(n,t[r]));if(typeof e=="object"&&typeof t=="object"){let n=Object.keys(e),r=Object.keys(t);return n.length!==r.length?!1:n.every(a=>Object.prototype.hasOwnProperty.call(t,a)&&D(e[a],t[a]))}return!1}function Xe(e,t){for(let n of e){let r=c(n,t);if(r!==!0)return r===!1?!1:null}return!0}function Je(e,t){for(let n of e){let r=c(n,t);if(r===!0)return!0;if(r!==!1)return null}return!1}function Ye(e,t){let n=c(e,t);return typeof n!="boolean"?null:!n}function Qe(e,t,n,r){let a=c(e,r);return a===!0?c(t,r):a===!1?c(n,r):null}function V(e,t,n,r){let a=c(e,n),o=c(t,n);if(typeof a!="number"||typeof o!="number")return null;let i=r(a,o);return Number.isFinite(i)?i:null}function Ze(e,t,n){let r=c(e,n),a=c(t,n);return typeof r!="number"||typeof a!="number"||a===0?null:r/a}function et(e,t,n){let r=c(e,n),a=c(t,n);return typeof r!="number"||typeof a!="number"||a===0?null:r%a}function tt(e,t){let n=c(e,t);return typeof n=="number"?-n:null}function nt(e,t){let n=[];for(let r of e){let a=c(r,t);if(typeof a!="string")return null;n.push(a)}return n.join("")}function rt(e,t,n,r){let a=c(e,r),o=c(t,r);if(typeof a!="string"||typeof o!="number")return null;if(n===void 0)return a.substring(o);let i=c(n,r);return typeof i!="number"?null:a.substring(o,i)}function at(e,t){let n=c(e,t);return typeof n!="string"?null:n.trim()}function ot(e,t){let n=c(e,t);return Array.isArray(n)||typeof n=="string"?n.length:n!==null&&typeof n=="object"?Object.keys(n).length:null}function it(e,t,n){let r=c(e,n),a=c(t,n);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 st(e,t){let n=c(e,t);return!Array.isArray(n)||n.length===0?null:n[0]}function ct(e,t){let n=c(e,t);return!Array.isArray(n)||n.length===0?null:n[n.length-1]}function ut(e,t,n,r){let a=c(e,r),o=c(t,r);if(!Array.isArray(a)||typeof o!="number")return null;if(n===void 0)return a.slice(o);let i=c(n,r);return typeof i!="number"?null:a.slice(o,i)}function dt(e,t,n){let r=c(e,n),a=c(t,n);return Array.isArray(r)?r.some(o=>D(o,a)):null}function lt(e,t,n){let r=c(e,n);if(!Array.isArray(r))return null;let a=[];for(let o of r){let i={...n,item:o},u=c(t,i);if(u===!0)a.push(o);else if(u!==!1)return null}return a}function pt(e,t,n){let r=c(e,n);if(!Array.isArray(r))return null;let a=[];for(let o of r){let i={...n,item:o},u=c(t,i);a.push(u)}return a}function ft(e,t,n){let r=c(e,n);if(!Array.isArray(r))return null;for(let a of r){let o={...n,item:a},i=c(t,o);if(i===!0)return a;if(i!==!1)return null}return null}function mt(e,t,n){let r=c(e,n);if(!Array.isArray(r))return null;for(let a of r){let o={...n,item:a},i=c(t,o);if(i===!1)return!1;if(i!==!0)return null}return!0}function gt(e,t,n){let r=c(e,n);if(!Array.isArray(r))return null;for(let a of r){let o={...n,item:a},i=c(t,o);if(i===!0)return!0;if(i!==!1)return null}return!1}function yt(e,t,n){let r=c(e,n);if(!Array.isArray(r))return null;let a=t.map(o=>c(o,n));return[...r,...a]}function ht(e,t){let n={};for(let r of Object.keys(e).sort(w)){let a=e[r];n[r]=c(a,t)}return n}function Et(e,t,n){let r=c(e,n);return r===null||typeof r!="object"||Array.isArray(r)?null:r[t]??null}function kt(e,t){let n=c(e,t);return n===null||typeof n!="object"||Array.isArray(n)?null:Object.keys(n).sort(w)}function Nt(e,t){let n=c(e,t);return n===null||typeof n!="object"||Array.isArray(n)?null:Object.keys(n).sort(w).map(r=>n[r])}function vt(e,t){let n=c(e,t);return n===null||typeof n!="object"||Array.isArray(n)?null:Object.keys(n).sort(w).map(r=>[r,n[r]])}function bt(e,t){let n={};for(let r of e){let a=c(r,t);if(a===null||typeof a!="object"||Array.isArray(a))return null;Object.assign(n,a)}return n}function Ct(e,t){let n=c(e,t);return n===null?"null":Array.isArray(n)?"array":typeof n}function St(e,t){return c(e,t)===null}function Pt(e,t){for(let n of e){let r=c(n,t);if(r!=null)return r}return null}function $t(e,t){let n=[],r=[],a=t.snapshot;for(let o of e){let i={...t,snapshot:a};if(o.condition!==void 0){let d=N(o.condition,i);if(d!==!0){let y=d===!1?"false":d===null?"null":"non-boolean";r.push({fragmentId:o.fragmentId,reason:y});continue}}let u={fragmentId:o.fragmentId,op:o.op,confidence:o.confidence,conditionEvaluated:o.condition!==void 0};n.push(u),a=At(a,o.op,i)}return{patches:n,skipped:r,finalSnapshot:a}}function wt(e,t){return e.filter(n=>n.condition===void 0?!0:N(n.condition,t)===!0).map(n=>({fragmentId:n.fragmentId,op:n.op,confidence:n.confidence,conditionEvaluated:n.condition!==void 0}))}function At(e,t,n){switch(t.kind){case"setDefaultValue":return U(e,t.path,t.value);case"addType":case"addField":case"setFieldType":case"addConstraint":case"addComputed":case"addActionAvailable":return e}}function xt(e,t){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 Ot(e,t){return e===void 0?!0:N(e,t)===!0}function Rt(e,t){if(e===void 0)return{passes:!0,reason:"no-condition"};let n=N(e,t);return n===!0?{passes:!0,reason:"true"}:n===!1?{passes:!1,reason:"false"}:n===null?{passes:!1,reason:"null"}:{passes:!1,reason:"non-boolean"}}import{mergeAtPatchPath as jt,patchPathToDisplayString as ie,setByPatchPath as Ft,unsetByPatchPath as Tt}from"@manifesto-ai/core";var Dt=new Set(["__proto__","constructor","prototype"]);function It(e,t){return de(e,t).patches}function de(e,t){let n=[],r=[],a=[],o=t.snapshot,i=[];for(let u=0;u<e.length;u++){let d=e[u],y=d.op==="set"&&I(d.path),p=i.length>0,f=y||!p?o:i[i.length-1].snapshot,l={...t,snapshot:f};if(d.condition!==void 0){let $=N(d.condition,l);if($!==!0){let ke=$===!1?"false":$===null?"null":"non-boolean";r.push({index:u,path:ue(d.path),reason:ke});continue}}let g=qt(d.path,l);if(!g.ok){r.push({index:u,path:ue(d.path),reason:"invalid-path"}),a.push(`Skipped runtime patch at index ${u}: ${g.warning}`);continue}let E=g.path,b=d.value?N(d.value,l):void 0,m=_t(d.op,E,b);if(m!==null&&!(d.op==="unset"&&I(d.path)&&(!p||!ce(i[i.length-1].markerPath,E)))){if(n.push(m),o=Gt(o,m),d.op==="set"&&I(d.path)){i.push({markerPath:E,snapshot:o});continue}d.op==="unset"&&I(d.path)&&i.length>0&&ce(i[i.length-1].markerPath,E)&&i.pop()}}return{patches:n,skipped:r,warnings:a,finalSnapshot:o}}function _t(e,t,n){switch(e){case"set":return{op:"set",path:t,value:n};case"unset":return{op:"unset",path:t};case"merge":return Mt(n)?{op:"merge",path:t,value:n}:{op:"set",path:t,value:null}}}function Gt(e,t){let n=e.data;return{data:(()=>{switch(t.op){case"set":return Ft(n,t.path,t.value);case"unset":return Tt(n,t.path);case"merge":return jt(n,t.path,t.value)}})(),computed:e.computed}}function qt(e,t){if(e.length===0)return{ok:!1,warning:"path is empty"};let n=[];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}'`};n.push({kind:"prop",name:a.name});continue}let o=N(a.expr,t),i=Lt(o);if(i===null)return{ok:!1,warning:`expr segment at index ${r} resolved to invalid value`};n.push(i)}return{ok:!0,path:n}}function Lt(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&&!Dt.has(e)}function I(e){return se(e,["$mel","__whenGuards"])||se(e,["$mel","__onceScopeGuards"])}function se(e,t){if(e.length<t.length)return!1;for(let n=0;n<t.length;n++){let r=e[n];if(r.kind!=="prop"||r.name!==t[n])return!1}return!0}function ce(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++){let r=e[n],a=t[n];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 t=[];for(let n of e){if(n.kind==="prop"){t.push({kind:"prop",name:n.name});continue}return t.length===0?"[expr]":`${ie(t)}.[expr]`}return t.length===0?"":ie(t)}function Mt(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}var Ut=new Set(["$item","$index","$array"]);function Vr(e){let t=Object.keys(e.state.fields).filter(p=>!p.startsWith("$")),n=Vt(e),r=new Set(n),a=new Set(t),o=Object.keys(e.actions),i=[...t.map(p=>({id:W(p),kind:"state",name:p})),...n.map(p=>({id:z(p),kind:"computed",name:p})),...o.map(p=>({id:fe(p),kind:"action",name:p}))],u=new Set,d=[],y=(p,f,l)=>{if(!p||!f)return;let g=`${p}|${l}|${f}`;u.has(g)||(u.add(g),d.push({from:p,to:f,relation:l}))};for(let p of n){let f=e.computed.fields[p];if(f)for(let l of f.deps)y(pe(l,e,r,a),z(p),"feeds")}for(let p of o){let f=e.actions[p],l=fe(p);for(let g of Wt(f.flow,e))a.has(g)&&y(l,W(g),"mutates");if(f.available)for(let g of Ee(f.available))y(pe(g,e,r,a),l,"unlocks")}return Bt({nodes:i,edges:d})}function Vt(e){let t=e.computed.fields,n=new Map,r=(a,o)=>{let i=n.get(a);if(i!==void 0)return i;if(o.has(a))return!1;o.add(a);let u=t[a];if(!u)return o.delete(a),n.set(a,!0),!0;for(let d of Ee(u.expr)){if(he(d))return o.delete(a),n.set(a,!1),!1;let y=me(d,t);if(y!==null&&!r(y,o))return o.delete(a),n.set(a,!1),!1}return o.delete(a),n.set(a,!0),!0};return Object.keys(t).filter(a=>r(a,new Set))}function Wt(e,t){let n=new Set,r=(a,o)=>{if(a)switch(a.kind){case"seq":a.steps.forEach(i=>r(i,o));return;case"if":r(a.then,o),r(a.else,o);return;case"patch":{let i=zt(a.path);i&&n.add(i);return}case"effect":{let i=Kt(a.params.into);i&&n.add(i);return}case"call":{if(o.has(a.flow))return;let i=t.actions[a.flow];if(!i)return;let u=new Set(o);u.add(a.flow),r(i.flow,u);return}case"halt":case"fail":return}};return r(e,new Set),[...n]}function zt(e){let[t]=e;return!t||t.kind!=="prop"||t.name.startsWith("$")?null:t.name}function Kt(e){return typeof e!="object"||e===null||e.kind!=="lit"||typeof e.value!="string"?null:ge(e.value)}function pe(e,t,n,r){let a=me(e,t.computed.fields);if(a!==null&&n.has(a))return z(a);if(he(e))return null;let o=ge(e);return!o||!r.has(o)?null:W(o)}function me(e,t){if(Object.prototype.hasOwnProperty.call(t,e))return e;if(!e.startsWith("computed."))return null;let n=e.slice(9);return Object.prototype.hasOwnProperty.call(t,n)?n:null}function ge(e){let t=ye(e),n=t.startsWith("data.")?t.slice(5):t,r=/^([^.[\]]+)/.exec(n);if(!r)return null;let[a]=r.slice(1);return!a||a.startsWith("$")?null:a}function ye(e){return e.startsWith("/")?e.slice(1).replace(/\//g,"."):e}function he(e){let t=ye(e),n=t.startsWith("data.")?t.slice(5):t,a=/^([^.[\]]+)/.exec(n)?.[1]??"";return a.startsWith("$")?!Ut.has(a):!1}function Ee(e){let t=[],n=new WeakSet,r=a=>{if(a==null)return;if(Array.isArray(a)){a.forEach(r);return}if(typeof a!="object")return;let o=a;if(!n.has(o)&&(n.add(o),o.kind!=="lit")){if(o.kind==="get"&&typeof o.path=="string"){t.push(o.path);return}for(let i of Object.values(o))r(i)}};return r(e),t}function W(e){return`state:${e}`}function z(e){return`computed:${e}`}function fe(e){return`action:${e}`}function Bt(e){return Object.freeze({nodes:Object.freeze(e.nodes.map(t=>Object.freeze(t))),edges:Object.freeze([...e.edges].sort(Ht).map(t=>Object.freeze(t)))})}function Ht(e,t){return e.from.localeCompare(t.from)||e.to.localeCompare(t.to)||e.relation.localeCompare(t.relation)}function Xt(e,t={}){let n=[],r=performance.now(),a=_(e);if(n.push({phase:"lex",durationMs:performance.now()-r,details:{tokenCount:a.tokens.length}}),x(a.diagnostics))return{schema:null,trace:n,warnings:a.diagnostics.filter(m=>m.severity==="warning"),errors:a.diagnostics.filter(m=>m.severity==="error"),success:!1};let o=performance.now(),i=G(a.tokens),u=i.diagnostics;if(n.push({phase:"parse",durationMs:performance.now()-o}),x(u))return{schema:null,trace:n,warnings:u.filter(m=>m.severity==="warning"),errors:u.filter(m=>m.severity==="error"),success:!1};let d=[],y=performance.now(),p=X(i.program);if(d.push(...p.diagnostics),!t.skipSemanticAnalysis){let m=K(p.program),$=B(p.program);d.push(...m.diagnostics,...$.diagnostics)}if(n.push({phase:"analyze",durationMs:performance.now()-y}),d.some(m=>m.severity==="error"))return{schema:null,trace:n,warnings:d.filter(m=>m.severity==="warning"),errors:d.filter(m=>m.severity==="error"),success:!1};let f=performance.now(),l=H(p.program);d.push(...l.diagnostics),n.push({phase:"generate",durationMs:performance.now()-f}),t.skipSemanticAnalysis&&d.push(...i.diagnostics);let g=d.filter(m=>m.severity==="error");if(l.schema===null||g.length>0)return{schema:null,trace:n,warnings:d.filter(m=>m.severity==="warning"),errors:g,success:!1};let E=l.schema;if(t.lowerSystemValues){let m=performance.now();E=Q(E),n.push({phase:"lower",durationMs:performance.now()-m})}let b=d.filter(m=>m.severity==="warning");return{schema:E,trace:n,warnings:b,errors:d.filter(m=>m.severity==="error"),success:g.length===0}}function Qr(e){let t=_(e);return x(t.diagnostics)?{program:null,diagnostics:t.diagnostics}:G(t.tokens)}function Zr(e){return Xt(e).errors}export{$n as DEFAULT_ACTION_CONTEXT,An as DEFAULT_PATCH_CONTEXT,Pn as DEFAULT_SCHEMA_CONTEXT,J as DIAGNOSTIC_CODES,wn as EFFECT_ARGS_CONTEXT,Jt as KEYWORDS,sn as Lexer,xn as LoweringError,yn as Parser,dn as Precedence,Yt as RESERVED_KEYWORDS,hn as Scope,En as ScopeAnalyzer,Sn as SemanticValidator,K as analyzeScope,U as applyPatchToWorkingSnapshot,Zr as check,Rt as classifyCondition,Xt as compile,Mn as compileMelDomain,Un as compileMelPatch,kn as createError,We as createEvaluationContext,vn as createInfo,rn as createLocation,an as createPointLocation,nn as createPosition,tn as createToken,Nn as createWarning,Ot as evaluateCondition,$t as evaluateConditionalPatchOps,N as evaluateExpr,xt as evaluatePatchExpressions,wt as evaluatePatches,It as evaluateRuntimePatches,de as evaluateRuntimePatchesWithTrace,Vr as extractSchemaGraph,ne as extractTypeName,Cn as filterBySeverity,Y as formatDiagnostic,Bn as formatDiagnosticCode,Ne as formatDiagnostics,H as generate,Ln as generateCanonical,ln as getBinaryPrecedence,Kn as getDiagnosticInfo,en as getKeywordKind,x as hasErrors,On as invalidKindForContext,Tn as invalidShape,jn as invalidSysPath,fn as isBinaryOp,bn as isError,cn as isExprNode,Qt as isKeyword,Zt as isReserved,gn as isRightAssociative,un as isStmtNode,mn as isUnaryOp,In as lowerExprNode,_n as lowerPatchFragments,qn as lowerRuntimePatch,Gn as lowerRuntimePatches,Q as lowerSystemValues,on as mergeLocations,er as normalizeExpr,tr as normalizeFunctionCall,G as parse,Qr as parseSource,ae as renderAsDomain,s as renderExprNode,L as renderFragment,M as renderFragments,re as renderFragmentsByKind,v as renderPatchOp,k as renderTypeExpr,P as renderTypeField,S as renderValue,pn as tokenToBinaryOp,_ as tokenize,Rn as unknownCallFn,Dn as unknownNodeKind,Fn as unsupportedBase,B as validateSemantics};
21
+ `)}import{parsePath as Ve}from"@manifesto-ai/core";function We(e){return{snapshot:e.snapshot??{data:{},computed:{}},meta:e.meta,input:e.input??{},item:e.item}}function U(e,t,n){let r=structuredClone(e.data);return ze(r,t,n),{data:r,computed:e.computed}}function ze(e,t,n){let r=Ve(t),a=e;for(let i=0;i<r.length-1;i++){let u=r[i];(!(u in a)||typeof a[u]!="object")&&(a[u]={}),a=a[u]}let o=r[r.length-1];a[o]=n}import{parsePath as Ke}from"@manifesto-ai/core";function N(e,t){try{return c(e,t)}catch{return null}}function c(e,t){switch(e.kind){case"lit":return e.value;case"get":return Be(e.path,t);case"eq":return oe(e.left,e.right,t);case"neq":return He(e.left,e.right,t);case"gt":return T(e.left,e.right,t,(n,r)=>n>r);case"gte":return T(e.left,e.right,t,(n,r)=>n>=r);case"lt":return T(e.left,e.right,t,(n,r)=>n<r);case"lte":return T(e.left,e.right,t,(n,r)=>n<=r);case"and":return Xe(e.args,t);case"or":return Je(e.args,t);case"not":return Ye(e.arg,t);case"if":return Qe(e.cond,e.then,e.else,t);case"add":return V(e.left,e.right,t,(n,r)=>n+r);case"sub":return V(e.left,e.right,t,(n,r)=>n-r);case"mul":return V(e.left,e.right,t,(n,r)=>n*r);case"div":return Ze(e.left,e.right,t);case"mod":return et(e.left,e.right,t);case"neg":return tt(e.arg,t);case"concat":return nt(e.args,t);case"substring":return rt(e.str,e.start,e.end,t);case"trim":return at(e.str,t);case"len":return ot(e.arg,t);case"at":return it(e.array,e.index,t);case"first":return st(e.array,t);case"last":return ct(e.array,t);case"slice":return ut(e.array,e.start,e.end,t);case"includes":return dt(e.array,e.item,t);case"filter":return lt(e.array,e.predicate,t);case"map":return pt(e.array,e.mapper,t);case"find":return ft(e.array,e.predicate,t);case"every":return mt(e.array,e.predicate,t);case"some":return gt(e.array,e.predicate,t);case"append":return yt(e.array,e.items,t);case"object":return ht(e.fields,t);case"field":return Et(e.object,e.property,t);case"keys":return kt(e.obj,t);case"values":return Nt(e.obj,t);case"entries":return vt(e.obj,t);case"merge":return bt(e.objects,t);case"typeof":return Ct(e.arg,t);case"isNull":return St(e.arg,t);case"coalesce":return Pt(e.args,t);default:return null}}function Be(e,t){let n=Ke(e);return n[0]==="meta"?A(t.meta,n.slice(1)):n[0]==="input"?A(t.input,n.slice(1)):n[0]==="$item"?t.item===void 0?null:n.length===1?t.item:A(t.item,n.slice(1)):e in t.snapshot.computed?t.snapshot.computed[e]:A(t.snapshot.data,n)}function A(e,t){if(t.length===0)return e;if(e==null||typeof e!="object")return null;let[n,...r]=t,a=e[n];return r.length===0?a===void 0?null:a:A(a,r)}function oe(e,t,n){let r=c(e,n),a=c(t,n);return D(r,a)}function He(e,t,n){let r=oe(e,t,n);return r===null?null:!r}function T(e,t,n,r){let a=c(e,n),o=c(t,n);return typeof a!="number"||typeof o!="number"?null:r(a,o)}function D(e,t){if(e===t)return!0;if(e===null||t===null)return e===t;if(typeof e!=typeof t)return!1;if(Array.isArray(e)&&Array.isArray(t))return e.length!==t.length?!1:e.every((n,r)=>D(n,t[r]));if(typeof e=="object"&&typeof t=="object"){let n=Object.keys(e),r=Object.keys(t);return n.length!==r.length?!1:n.every(a=>Object.prototype.hasOwnProperty.call(t,a)&&D(e[a],t[a]))}return!1}function Xe(e,t){for(let n of e){let r=c(n,t);if(r!==!0)return r===!1?!1:null}return!0}function Je(e,t){for(let n of e){let r=c(n,t);if(r===!0)return!0;if(r!==!1)return null}return!1}function Ye(e,t){let n=c(e,t);return typeof n!="boolean"?null:!n}function Qe(e,t,n,r){let a=c(e,r);return a===!0?c(t,r):a===!1?c(n,r):null}function V(e,t,n,r){let a=c(e,n),o=c(t,n);if(typeof a!="number"||typeof o!="number")return null;let i=r(a,o);return Number.isFinite(i)?i:null}function Ze(e,t,n){let r=c(e,n),a=c(t,n);return typeof r!="number"||typeof a!="number"||a===0?null:r/a}function et(e,t,n){let r=c(e,n),a=c(t,n);return typeof r!="number"||typeof a!="number"||a===0?null:r%a}function tt(e,t){let n=c(e,t);return typeof n=="number"?-n:null}function nt(e,t){let n=[];for(let r of e){let a=c(r,t);if(typeof a!="string")return null;n.push(a)}return n.join("")}function rt(e,t,n,r){let a=c(e,r),o=c(t,r);if(typeof a!="string"||typeof o!="number")return null;if(n===void 0)return a.substring(o);let i=c(n,r);return typeof i!="number"?null:a.substring(o,i)}function at(e,t){let n=c(e,t);return typeof n!="string"?null:n.trim()}function ot(e,t){let n=c(e,t);return Array.isArray(n)||typeof n=="string"?n.length:n!==null&&typeof n=="object"?Object.keys(n).length:null}function it(e,t,n){let r=c(e,n),a=c(t,n);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 st(e,t){let n=c(e,t);return!Array.isArray(n)||n.length===0?null:n[0]}function ct(e,t){let n=c(e,t);return!Array.isArray(n)||n.length===0?null:n[n.length-1]}function ut(e,t,n,r){let a=c(e,r),o=c(t,r);if(!Array.isArray(a)||typeof o!="number")return null;if(n===void 0)return a.slice(o);let i=c(n,r);return typeof i!="number"?null:a.slice(o,i)}function dt(e,t,n){let r=c(e,n),a=c(t,n);return Array.isArray(r)?r.some(o=>D(o,a)):null}function lt(e,t,n){let r=c(e,n);if(!Array.isArray(r))return null;let a=[];for(let o of r){let i={...n,item:o},u=c(t,i);if(u===!0)a.push(o);else if(u!==!1)return null}return a}function pt(e,t,n){let r=c(e,n);if(!Array.isArray(r))return null;let a=[];for(let o of r){let i={...n,item:o},u=c(t,i);a.push(u)}return a}function ft(e,t,n){let r=c(e,n);if(!Array.isArray(r))return null;for(let a of r){let o={...n,item:a},i=c(t,o);if(i===!0)return a;if(i!==!1)return null}return null}function mt(e,t,n){let r=c(e,n);if(!Array.isArray(r))return null;for(let a of r){let o={...n,item:a},i=c(t,o);if(i===!1)return!1;if(i!==!0)return null}return!0}function gt(e,t,n){let r=c(e,n);if(!Array.isArray(r))return null;for(let a of r){let o={...n,item:a},i=c(t,o);if(i===!0)return!0;if(i!==!1)return null}return!1}function yt(e,t,n){let r=c(e,n);if(!Array.isArray(r))return null;let a=t.map(o=>c(o,n));return[...r,...a]}function ht(e,t){let n={};for(let r of Object.keys(e).sort(w)){let a=e[r];n[r]=c(a,t)}return n}function Et(e,t,n){let r=c(e,n);return r===null||typeof r!="object"||Array.isArray(r)?null:r[t]??null}function kt(e,t){let n=c(e,t);return n===null||typeof n!="object"||Array.isArray(n)?null:Object.keys(n).sort(w)}function Nt(e,t){let n=c(e,t);return n===null||typeof n!="object"||Array.isArray(n)?null:Object.keys(n).sort(w).map(r=>n[r])}function vt(e,t){let n=c(e,t);return n===null||typeof n!="object"||Array.isArray(n)?null:Object.keys(n).sort(w).map(r=>[r,n[r]])}function bt(e,t){let n={};for(let r of e){let a=c(r,t);if(a===null||typeof a!="object"||Array.isArray(a))return null;Object.assign(n,a)}return n}function Ct(e,t){let n=c(e,t);return n===null?"null":Array.isArray(n)?"array":typeof n}function St(e,t){return c(e,t)===null}function Pt(e,t){for(let n of e){let r=c(n,t);if(r!=null)return r}return null}function $t(e,t){let n=[],r=[],a=t.snapshot;for(let o of e){let i={...t,snapshot:a};if(o.condition!==void 0){let d=N(o.condition,i);if(d!==!0){let y=d===!1?"false":d===null?"null":"non-boolean";r.push({fragmentId:o.fragmentId,reason:y});continue}}let u={fragmentId:o.fragmentId,op:o.op,confidence:o.confidence,conditionEvaluated:o.condition!==void 0};n.push(u),a=At(a,o.op,i)}return{patches:n,skipped:r,finalSnapshot:a}}function wt(e,t){return e.filter(n=>n.condition===void 0?!0:N(n.condition,t)===!0).map(n=>({fragmentId:n.fragmentId,op:n.op,confidence:n.confidence,conditionEvaluated:n.condition!==void 0}))}function At(e,t,n){switch(t.kind){case"setDefaultValue":return U(e,t.path,t.value);case"addType":case"addField":case"setFieldType":case"addConstraint":case"addComputed":case"addActionAvailable":return e}}function xt(e,t){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 Ot(e,t){return e===void 0?!0:N(e,t)===!0}function Rt(e,t){if(e===void 0)return{passes:!0,reason:"no-condition"};let n=N(e,t);return n===!0?{passes:!0,reason:"true"}:n===!1?{passes:!1,reason:"false"}:n===null?{passes:!1,reason:"null"}:{passes:!1,reason:"non-boolean"}}import{mergeAtPatchPath as Ft,patchPathToDisplayString as ie,setByPatchPath as jt,unsetByPatchPath as Tt}from"@manifesto-ai/core";var Dt=new Set(["__proto__","constructor","prototype"]);function It(e,t){return de(e,t).patches}function de(e,t){let n=[],r=[],a=[],o=t.snapshot,i=[];for(let u=0;u<e.length;u++){let d=e[u],y=d.op==="set"&&I(d.path),p=i.length>0,f=y||!p?o:i[i.length-1].snapshot,l={...t,snapshot:f};if(d.condition!==void 0){let $=N(d.condition,l);if($!==!0){let ke=$===!1?"false":$===null?"null":"non-boolean";r.push({index:u,path:ue(d.path),reason:ke});continue}}let g=qt(d.path,l);if(!g.ok){r.push({index:u,path:ue(d.path),reason:"invalid-path"}),a.push(`Skipped runtime patch at index ${u}: ${g.warning}`);continue}let E=g.path,b=d.value?N(d.value,l):void 0,m=_t(d.op,E,b);if(m!==null&&!(d.op==="unset"&&I(d.path)&&(!p||!ce(i[i.length-1].markerPath,E)))){if(n.push(m),o=Gt(o,m),d.op==="set"&&I(d.path)){i.push({markerPath:E,snapshot:o});continue}d.op==="unset"&&I(d.path)&&i.length>0&&ce(i[i.length-1].markerPath,E)&&i.pop()}}return{patches:n,skipped:r,warnings:a,finalSnapshot:o}}function _t(e,t,n){switch(e){case"set":return{op:"set",path:t,value:n};case"unset":return{op:"unset",path:t};case"merge":return Mt(n)?{op:"merge",path:t,value:n}:{op:"set",path:t,value:null}}}function Gt(e,t){let n=e.data;return{data:(()=>{switch(t.op){case"set":return jt(n,t.path,t.value);case"unset":return Tt(n,t.path);case"merge":return Ft(n,t.path,t.value)}})(),computed:e.computed}}function qt(e,t){if(e.length===0)return{ok:!1,warning:"path is empty"};let n=[];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}'`};n.push({kind:"prop",name:a.name});continue}let o=N(a.expr,t),i=Lt(o);if(i===null)return{ok:!1,warning:`expr segment at index ${r} resolved to invalid value`};n.push(i)}return{ok:!0,path:n}}function Lt(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&&!Dt.has(e)}function I(e){return se(e,["$mel","__whenGuards"])||se(e,["$mel","__onceScopeGuards"])}function se(e,t){if(e.length<t.length)return!1;for(let n=0;n<t.length;n++){let r=e[n];if(r.kind!=="prop"||r.name!==t[n])return!1}return!0}function ce(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++){let r=e[n],a=t[n];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 t=[];for(let n of e){if(n.kind==="prop"){t.push({kind:"prop",name:n.name});continue}return t.length===0?"[expr]":`${ie(t)}.[expr]`}return t.length===0?"":ie(t)}function Mt(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}var Ut=new Set(["$item","$index","$array"]);function Wr(e){let t=Object.keys(e.state.fields).filter(p=>!p.startsWith("$")),n=Vt(e),r=new Set(n),a=new Set(t),o=Object.keys(e.actions),i=[...t.map(p=>({id:W(p),kind:"state",name:p})),...n.map(p=>({id:z(p),kind:"computed",name:p})),...o.map(p=>({id:fe(p),kind:"action",name:p}))],u=new Set,d=[],y=(p,f,l)=>{if(!p||!f)return;let g=`${p}|${l}|${f}`;u.has(g)||(u.add(g),d.push({from:p,to:f,relation:l}))};for(let p of n){let f=e.computed.fields[p];if(f)for(let l of f.deps)y(pe(l,e,r,a),z(p),"feeds")}for(let p of o){let f=e.actions[p],l=fe(p);for(let g of Wt(f.flow,e))a.has(g)&&y(l,W(g),"mutates");if(f.available)for(let g of Ee(f.available))y(pe(g,e,r,a),l,"unlocks")}return Bt({nodes:i,edges:d})}function Vt(e){let t=e.computed.fields,n=new Map,r=(a,o)=>{let i=n.get(a);if(i!==void 0)return i;if(o.has(a))return!1;o.add(a);let u=t[a];if(!u)return o.delete(a),n.set(a,!0),!0;for(let d of Ee(u.expr)){if(he(d))return o.delete(a),n.set(a,!1),!1;let y=me(d,t);if(y!==null&&!r(y,o))return o.delete(a),n.set(a,!1),!1}return o.delete(a),n.set(a,!0),!0};return Object.keys(t).filter(a=>r(a,new Set))}function Wt(e,t){let n=new Set,r=(a,o)=>{if(a)switch(a.kind){case"seq":a.steps.forEach(i=>r(i,o));return;case"if":r(a.then,o),r(a.else,o);return;case"patch":{let i=zt(a.path);i&&n.add(i);return}case"effect":{let i=Kt(a.params.into);i&&n.add(i);return}case"call":{if(o.has(a.flow))return;let i=t.actions[a.flow];if(!i)return;let u=new Set(o);u.add(a.flow),r(i.flow,u);return}case"halt":case"fail":return}};return r(e,new Set),[...n]}function zt(e){let[t]=e;return!t||t.kind!=="prop"||t.name.startsWith("$")?null:t.name}function Kt(e){return typeof e!="object"||e===null||e.kind!=="lit"||typeof e.value!="string"?null:ge(e.value)}function pe(e,t,n,r){let a=me(e,t.computed.fields);if(a!==null&&n.has(a))return z(a);if(he(e))return null;let o=ge(e);return!o||!r.has(o)?null:W(o)}function me(e,t){if(Object.prototype.hasOwnProperty.call(t,e))return e;if(!e.startsWith("computed."))return null;let n=e.slice(9);return Object.prototype.hasOwnProperty.call(t,n)?n:null}function ge(e){let t=ye(e),n=t.startsWith("data.")?t.slice(5):t,r=/^([^.[\]]+)/.exec(n);if(!r)return null;let[a]=r.slice(1);return!a||a.startsWith("$")?null:a}function ye(e){return e.startsWith("/")?e.slice(1).replace(/\//g,"."):e}function he(e){let t=ye(e),n=t.startsWith("data.")?t.slice(5):t,a=/^([^.[\]]+)/.exec(n)?.[1]??"";return a.startsWith("$")?!Ut.has(a):!1}function Ee(e){let t=[],n=new WeakSet,r=a=>{if(a==null)return;if(Array.isArray(a)){a.forEach(r);return}if(typeof a!="object")return;let o=a;if(!n.has(o)&&(n.add(o),o.kind!=="lit")){if(o.kind==="get"&&typeof o.path=="string"){t.push(o.path);return}for(let i of Object.values(o))r(i)}};return r(e),t}function W(e){return`state:${e}`}function z(e){return`computed:${e}`}function fe(e){return`action:${e}`}function Bt(e){return Object.freeze({nodes:Object.freeze(e.nodes.map(t=>Object.freeze(t))),edges:Object.freeze([...e.edges].sort(Ht).map(t=>Object.freeze(t)))})}function Ht(e,t){return e.from.localeCompare(t.from)||e.to.localeCompare(t.to)||e.relation.localeCompare(t.relation)}function Xt(e,t={}){let n=[],r=performance.now(),a=_(e);if(n.push({phase:"lex",durationMs:performance.now()-r,details:{tokenCount:a.tokens.length}}),x(a.diagnostics))return{schema:null,trace:n,warnings:a.diagnostics.filter(m=>m.severity==="warning"),errors:a.diagnostics.filter(m=>m.severity==="error"),success:!1};let o=performance.now(),i=G(a.tokens),u=i.diagnostics;if(n.push({phase:"parse",durationMs:performance.now()-o}),x(u))return{schema:null,trace:n,warnings:u.filter(m=>m.severity==="warning"),errors:u.filter(m=>m.severity==="error"),success:!1};let d=[],y=performance.now(),p=X(i.program);if(d.push(...p.diagnostics),!t.skipSemanticAnalysis){let m=K(p.program),$=B(p.program);d.push(...m.diagnostics,...$.diagnostics)}if(n.push({phase:"analyze",durationMs:performance.now()-y}),d.some(m=>m.severity==="error"))return{schema:null,trace:n,warnings:d.filter(m=>m.severity==="warning"),errors:d.filter(m=>m.severity==="error"),success:!1};let f=performance.now(),l=H(p.program);d.push(...l.diagnostics),n.push({phase:"generate",durationMs:performance.now()-f}),t.skipSemanticAnalysis&&d.push(...i.diagnostics);let g=d.filter(m=>m.severity==="error");if(l.schema===null||g.length>0)return{schema:null,trace:n,warnings:d.filter(m=>m.severity==="warning"),errors:g,success:!1};let E=l.schema;if(t.lowerSystemValues){let m=performance.now();E=Q(E),n.push({phase:"lower",durationMs:performance.now()-m})}let b=d.filter(m=>m.severity==="warning");return{schema:E,trace:n,warnings:b,errors:d.filter(m=>m.severity==="error"),success:g.length===0}}function Zr(e){let t=_(e);return x(t.diagnostics)?{program:null,diagnostics:t.diagnostics}:G(t.tokens)}function ea(e){return Xt(e).errors}export{$n as DEFAULT_ACTION_CONTEXT,wn as DEFAULT_DISPATCHABLE_CONTEXT,xn as DEFAULT_PATCH_CONTEXT,Pn as DEFAULT_SCHEMA_CONTEXT,J as DIAGNOSTIC_CODES,An as EFFECT_ARGS_CONTEXT,Jt as KEYWORDS,sn as Lexer,On as LoweringError,yn as Parser,dn as Precedence,Yt as RESERVED_KEYWORDS,hn as Scope,En as ScopeAnalyzer,Sn as SemanticValidator,K as analyzeScope,U as applyPatchToWorkingSnapshot,ea as check,Rt as classifyCondition,Xt as compile,Un as compileMelDomain,Vn as compileMelPatch,kn as createError,We as createEvaluationContext,vn as createInfo,rn as createLocation,an as createPointLocation,nn as createPosition,tn as createToken,Nn as createWarning,Ot as evaluateCondition,$t as evaluateConditionalPatchOps,N as evaluateExpr,xt as evaluatePatchExpressions,wt as evaluatePatches,It as evaluateRuntimePatches,de as evaluateRuntimePatchesWithTrace,Wr as extractSchemaGraph,ne as extractTypeName,Cn as filterBySeverity,Y as formatDiagnostic,Hn as formatDiagnosticCode,Ne as formatDiagnostics,H as generate,Mn as generateCanonical,ln as getBinaryPrecedence,Bn as getDiagnosticInfo,en as getKeywordKind,x as hasErrors,Rn as invalidKindForContext,Dn as invalidShape,jn as invalidSysPath,fn as isBinaryOp,bn as isError,cn as isExprNode,Qt as isKeyword,Zt as isReserved,gn as isRightAssociative,un as isStmtNode,mn as isUnaryOp,_n as lowerExprNode,Gn as lowerPatchFragments,Ln as lowerRuntimePatch,qn as lowerRuntimePatches,Q as lowerSystemValues,on as mergeLocations,tr as normalizeExpr,nr as normalizeFunctionCall,G as parse,Zr as parseSource,ae as renderAsDomain,s as renderExprNode,L as renderFragment,M as renderFragments,re as renderFragmentsByKind,v as renderPatchOp,k as renderTypeExpr,P as renderTypeField,S as renderValue,pn as tokenToBinaryOp,_ as tokenize,Fn as unknownCallFn,In as unknownNodeKind,Tn as unsupportedBase,B as validateSemantics};
22
22
  //# sourceMappingURL=index.js.map