@manifesto-ai/core 2.13.0 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{z as Ht}from"zod";var Za=Ht.enum(["VALIDATION_ERROR","PATH_NOT_FOUND","TYPE_MISMATCH","DIVISION_BY_ZERO","INDEX_OUT_OF_BOUNDS","UNKNOWN_ACTION","ACTION_UNAVAILABLE","INVALID_INPUT","CYCLIC_DEPENDENCY","UNKNOWN_FLOW","CYCLIC_CALL","UNKNOWN_EFFECT","INTERNAL_ERROR"]);function v(e,r,t,n,o,a){return{code:e,message:r,source:{actionId:t,nodePath:n},timestamp:o,context:a}}function La(e){if(typeof e!="object"||e===null)return!1;let r=e;return typeof r.code=="string"&&typeof r.message=="string"&&typeof r.source=="object"&&r.source!==null&&typeof r.source.actionId=="string"&&typeof r.source.nodePath=="string"&&typeof r.timestamp=="number"}import{z as w}from"zod";function Ie(e){if(e==null)return e;if(Array.isArray(e))return e.map(Ie);if(typeof e=="object"){let r={},t=Object.keys(e).sort();for(let n of t){let o=e[n];o!==void 0&&(r[n]=Ie(o))}return r}return e}function le(e){let r=Ie(e);return JSON.stringify(r)}function Ha(e){return De(e)}function De(e){if(e===null)return"null";switch(typeof e){case"string":return JSON.stringify(e);case"number":return Number.isFinite(e)?JSON.stringify(e):"null";case"boolean":return e?"true":"false";case"undefined":return"null";case"object":return Array.isArray(e)?Wt(e):Bt(e);default:return"null"}}function Wt(e){return`[${e.map(t=>t===void 0||typeof t=="function"||typeof t=="symbol"?"null":De(t)).join(",")}]`}function Bt(e){let r=Object.keys(e).sort(oe),t=[];for(let n of r){let o=e[n];o===void 0||typeof o=="function"||typeof o=="symbol"||t.push(`${JSON.stringify(n)}:${De(o)}`)}return`{${t.join(",")}}`}function oe(e,r){let t=Array.from(e),n=Array.from(r),o=Math.min(t.length,n.length);for(let a=0;a<o;a++){let s=t[a].codePointAt(0)??0,p=n[a].codePointAt(0)??0;if(s!==p)return s-p}return t.length-n.length}function Wa(e){return JSON.parse(e)}function Ba(e,r){return le(e)===le(r)}function Qe(e,r){if(r==="effective")return e;let t=e.state?.fields??{},n=Object.entries(t).filter(([o])=>!o.startsWith("$"));return n.length===Object.keys(t).length?e:{...e,state:{...e.state,fields:Object.fromEntries(n)}}}async function et(e){let r=new TextEncoder().encode(e),t=await crypto.subtle.digest("SHA-256",r);return Array.from(new Uint8Array(t)).map(o=>o.toString(16).padStart(2,"0")).join("")}var Kt=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Gt=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);function M(e,r){return e>>>r|e<<32-r}function Yt(e){let r=e.length*8,t=e.length+1,n=t%64<=56?56-t%64:120-t%64,o=t+n+8,a=new Uint8Array(o);a.set(e),a[e.length]=128;let s=Math.floor(r/4294967296),p=r>>>0;a[o-8]=s>>>24&255,a[o-7]=s>>>16&255,a[o-6]=s>>>8&255,a[o-5]=s&255,a[o-4]=p>>>24&255,a[o-3]=p>>>16&255,a[o-2]=p>>>8&255,a[o-1]=p&255;let u=new Uint32Array(Gt),d=new DataView(a.buffer);for(let m=0;m<a.length;m+=64){let E=new Uint32Array(64);for(let R=0;R<16;R++)E[R]=d.getUint32(m+R*4);for(let R=16;R<64;R++){let Pe=M(E[R-15],7)^M(E[R-15],18)^E[R-15]>>>3,Fe=M(E[R-2],17)^M(E[R-2],19)^E[R-2]>>>10;E[R]=E[R-16]+Pe+E[R-7]+Fe>>>0}let C=u[0],I=u[1],F=u[2],A=u[3],q=u[4],H=u[5],J=u[6],Ce=u[7];for(let R=0;R<64;R++){let Pe=M(q,6)^M(q,11)^M(q,25),Fe=q&H^~q&J,Xe=Ce+Pe+Fe+Kt[R]+E[R]>>>0,Zt=M(C,2)^M(C,13)^M(C,22),Lt=C&I^C&F^I&F,_t=Zt+Lt>>>0;Ce=J,J=H,H=q,q=A+Xe>>>0,A=F,F=I,I=C,C=Xe+_t>>>0}u[0]=u[0]+C>>>0,u[1]=u[1]+I>>>0,u[2]=u[2]+F>>>0,u[3]=u[3]+A>>>0,u[4]=u[4]+q>>>0,u[5]=u[5]+H>>>0,u[6]=u[6]+J>>>0,u[7]=u[7]+Ce>>>0}let h=new Uint8Array(32),b=new DataView(h.buffer);for(let m=0;m<u.length;m++)b.setUint32(m*4,u[m]);return h}function tt(e){let r=new TextEncoder().encode(e),t=Yt(r),n="";for(let o of t)n+=o.toString(16).padStart(2,"0");return n}async function Jt(e,r="semantic"){let t=le(Qe(e,r));return et(t)}function Oe(e,r="semantic"){let t=le(Qe(e,r));return tt(t)}async function Ya(e){return Jt(e,"effective")}function Ja(e){return Oe(e,"effective")}async function Xa(e,r,t,n){let o=`${e}:${r}:${t}:${n}`;return`req-${(await et(o)).slice(0,16)}`}function rt(e,r,t,n){let o=`${e}:${r}:${t}:${n}`;return`req-${tt(o).slice(0,16)}`}function nt(e=0){return`trace-${e}`}var Xt=w.enum(["expr","computed","flow","patch","effect","branch","call","halt","error"]),ue=w.lazy(()=>w.object({id:w.string(),kind:Xt,sourcePath:w.string(),inputs:w.record(w.string(),w.unknown()),output:w.unknown(),children:w.array(ue),timestamp:w.number()})),Qt=w.enum(["complete","effect","halt","error"]),ot=w.object({root:ue,nodes:w.record(w.string(),ue),intent:w.object({type:w.string(),input:w.unknown()}),baseVersion:w.number(),resultVersion:w.number(),duration:w.number(),terminatedBy:Qt});function te(e){let r=0;return{timestamp:e,nextId:()=>nt(r++)}}function g(e,r,t,n,o,a=[]){return{id:e.nextId(),kind:r,sourcePath:t,inputs:n,output:o,children:a,timestamp:e.timestamp}}function U(e,r,t,n,o,a){return{snapshot:e,schema:r,currentAction:t,nodePath:n,intentId:o,uuidCounter:0,trace:typeof a=="object"?a:te(a)}}function X(e,r,t,n){return{...e,$item:r,$index:t,$array:n}}function $e(e,r){return{...e,snapshot:r}}function ge(e,r){return{...e,nodePath:r}}function D(e){if(!e)return[];let r=[],t="",n=!1;for(let o of e){if(n){o==="."||o==="\\"?t+=o:t+=`\\${o}`,n=!1;continue}if(o==="\\"){n=!0;continue}if(o==="."){r.push(t),t="";continue}t+=o}return n&&(t+="\\"),r.push(t),r}function at(e){return e.replaceAll("\\","\\\\").replaceAll(".","\\.")}function ai(...e){return e.filter(Boolean).map(at).join(".")}function V(e,r){if(!r)return e;let t=D(r),n=e;for(let o of t){if(n==null)return;if(typeof n=="object")n=n[o];else return}return n}function er(e,r,t){if(!r)return t;let n=D(r);return it(e,n,t)}function it(e,r,t){if(r.length===0)return t;let[n,...o]=r,a=e!==null&&typeof e=="object"?e:{};if(o.length===0)return{...a,[n]:t};let s=a[n];return{...a,[n]:it(s,o,t)}}function ii(e,r){if(!r)return;let t=D(r);return st(e,t)}function st(e,r){if(r.length===0||e===null||typeof e!="object")return e;let[t,...n]=r,o=e;if(n.length===0){let{[t]:s,...p}=o;return p}let a=o[t];return{...o,[t]:st(a,n)}}function si(e,r,t){let n=V(e,r),o=n!==null&&typeof n=="object"?{...n,...t}:t;return er(e,r,o)}function pi(e,r){if(!r)return e!==void 0;let t=D(r),n=e;for(let o of t){if(n==null||typeof n!="object"||!(o in n))return!1;n=n[o]}return!0}function li(e){let r=D(e);return tr(...r.slice(0,-1))}function ui(e){let r=D(e);return r[r.length-1]??""}function tr(...e){return e.map(at).join(".")}var rr=new Set(["__proto__","constructor","prototype"]);function ke(e){let r="";for(let t=0;t<e.length;t++){let n=e[t];if(n.kind==="prop"){r+=t===0?n.name:`.${n.name}`;continue}r+=`[${n.index}]`}return r}function pt(e){let r=D(e);if(r.length===0)return[{kind:"prop",name:e}];let t=[];for(let n of r){let o=or(n);if(o){t.push(...o);continue}t.push({kind:"prop",name:n})}return t.length>0?t:[{kind:"prop",name:e}]}function lt(e){return e.every(r=>r.kind!=="prop"||!rr.has(r.name))}function nr(e,r){let t=e;for(let n of r){if(n.kind==="prop"){if(t===null||typeof t!="object"||Array.isArray(t))return;t=t[n.name];continue}if(!Array.isArray(t))return;t=t[n.index]}return t}function ce(e,r,t){return Ve(e,r,t)}function Se(e,r){return qe(e,r)}function be(e,r,t){let n=nr(e,r),o=Me(n)?{...n,...t}:t;return ce(e,r,o)}function Ve(e,r,t){if(r.length===0)return t;let[n,...o]=r;if(n.kind==="prop"){let s=Me(e)?e:{},p=Ve(s[n.name],o,t);return{...s,[n.name]:p}}let a=Array.isArray(e)?[...e]:[];return a[n.index]=Ve(a[n.index],o,t),a}function qe(e,r){if(r.length===0)return e;let[t,...n]=r;if(t.kind==="prop"){if(!Me(e))return e;if(n.length===0){let{[t.name]:a,...s}=e;return s}return{...e,[t.name]:qe(e[t.name],n)}}if(!Array.isArray(e))return e;let o=[...e];return n.length===0?(t.index>=0&&t.index<o.length&&delete o[t.index],o):(o[t.index]=qe(o[t.index],n),o)}function Me(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function or(e){if(!e.includes("[")||e.includes("\\[")||e.includes("\\]"))return null;let r=[],t=0,n=!1;for(;t<e.length;){let o=e.indexOf("[",t);if(o===-1){let u=e.slice(t);if(u.length===0)break;if(n)return null;r.push({kind:"prop",name:u});break}let a=e.slice(t,o);if(a.length>0){if(n)return null;r.push({kind:"prop",name:a})}let s=e.indexOf("]",o+1);if(s===-1)return null;let p=e.slice(o+1,s);if(!/^[0-9]+$/.test(p))return null;r.push({kind:"index",index:Number(p)}),n=!0,t=s+1}return r.length>0?r:null}import{z as ae}from"zod";var W=ae.string().min(1),yi=(e,r)=>ae.discriminatedUnion("ok",[ae.object({ok:ae.literal(!0),value:e}),ae.object({ok:ae.literal(!1),error:r})]),l=e=>({ok:!0,value:e}),re=e=>({ok:!1,error:e}),ie=e=>e.ok,Z=e=>!e.ok;function f(e,r){switch(e.kind){case"lit":return l(e.value);case"get":return ir(e.path,r);case"eq":return B(e.left,e.right,r,(t,n)=>t===n);case"neq":return B(e.left,e.right,r,(t,n)=>t!==n);case"gt":return B(e.left,e.right,r,(t,n)=>y(t)>y(n));case"gte":return B(e.left,e.right,r,(t,n)=>y(t)>=y(n));case"lt":return B(e.left,e.right,r,(t,n)=>y(t)<y(n));case"lte":return B(e.left,e.right,r,(t,n)=>y(t)<=y(n));case"and":return sr(e.args,r);case"or":return pr(e.args,r);case"not":return lr(e.arg,r);case"if":return ur(e,r);case"add":return B(e.left,e.right,r,(t,n)=>y(t)+y(n));case"sub":return B(e.left,e.right,r,(t,n)=>y(t)-y(n));case"mul":return B(e.left,e.right,r,(t,n)=>y(t)*y(n));case"div":return cr(e.left,e.right,r);case"mod":return fr(e.left,e.right,r);case"min":return dr(e.args,r);case"max":return mr(e.args,r);case"abs":return yr(e.arg,r);case"neg":return xr(e.arg,r);case"floor":return Ur(e.arg,r);case"ceil":return Zr(e.arg,r);case"round":return Lr(e.arg,r);case"sqrt":return _r(e.arg,r);case"pow":return Hr(e.base,e.exponent,r);case"sumArray":return Wr(e.array,r);case"minArray":return Br(e.array,r);case"maxArray":return Kr(e.array,r);case"concat":return hr(e.args,r);case"substring":return Er(e,r);case"trim":return gr(e.str,r);case"toLowerCase":return Gr(e.str,r);case"toUpperCase":return Yr(e.str,r);case"strLen":return Jr(e.str,r);case"startsWith":return Xr(e.str,e.prefix,r);case"endsWith":return Qr(e.str,e.suffix,r);case"strIncludes":return en(e.str,e.search,r);case"indexOf":return tn(e.str,e.search,r);case"replace":return rn(e.str,e.search,e.replacement,r);case"split":return nn(e.str,e.delimiter,r);case"len":return kr(e.arg,r);case"at":return Sr(e.array,e.index,r);case"first":return br(e.array,r);case"last":return vr(e.array,r);case"slice":return Nr(e,r);case"includes":return Rr(e.array,e.item,r);case"filter":return wr(e.array,e.predicate,r);case"map":return Tr(e.array,e.mapper,r);case"find":return jr(e.array,e.predicate,r);case"every":return Ar(e.array,e.predicate,r);case"some":return zr(e.array,e.predicate,r);case"append":return Cr(e.array,e.items,r);case"reverse":return on(e.array,r);case"unique":return an(e.array,r);case"flat":return sn(e.array,r);case"object":return Pr(e.fields,r);case"field":return Fr(e.object,e.property,r);case"keys":return Ir(e.obj,r);case"values":return Dr(e.obj,r);case"entries":return Or(e.obj,r);case"merge":return $r(e.objects,r);case"hasKey":return pn(e.obj,e.key,r);case"pick":return ln(e.obj,e.keys,r);case"omit":return un(e.obj,e.keys,r);case"fromEntries":return cn(e.entries,r);case"typeof":return Vr(e.arg,r);case"isNull":return qr(e.arg,r);case"coalesce":return Mr(e.args,r);case"toString":return fn(e.arg,r);case"toNumber":return dn(e.arg,r);case"toBoolean":return mn(e.arg,r);default:return re(v("INTERNAL_ERROR",`Unknown expression kind: ${e.kind}`,r.currentAction??"",r.nodePath,r.trace.timestamp))}}function y(e){return typeof e=="number"?e:typeof e=="string"?parseFloat(e)||0:typeof e=="boolean"&&e?1:0}function K(e){return e==null?!1:typeof e=="boolean"?e:typeof e=="number"?e!==0:typeof e=="string"?e.length>0:!0}function T(e){return e==null?"":typeof e=="string"?e:String(e)}function ar(e,r){let t=`${e}-${r}`,n=0;for(let d=0;d<t.length;d++){let h=t.charCodeAt(d);n=(n<<5)-n+h,n=n&n}let o=Math.abs(n).toString(16).padStart(8,"0"),a=Math.abs(n*31).toString(16).padStart(4,"0"),s=Math.abs(n*37).toString(16).padStart(4,"0"),p=Math.abs(n*41).toString(16).padStart(4,"0"),u=Math.abs(n*43).toString(16).padStart(12,"0");return`${o.slice(0,8)}-${a.slice(0,4)}-4${s.slice(1,4)}-${p.slice(0,4)}-${u.slice(0,12)}`}function ir(e,r){if(e.startsWith("$item")){if(r.$item===void 0)return l(null);if(e==="$item")return l(r.$item);let t=e.slice(6);return l(Q(V(r.$item,t)))}if(e==="$index")return l(r.$index);if(e==="$array")return l(r.$array);if(e.startsWith("$system.")){let t=e.slice(8);if(t==="uuid"){let n=r.intentId??"no-intent",o=r.uuidCounter??0;return r.uuidCounter!==void 0&&(r.uuidCounter=o+1),l(ar(n,o))}return t==="timestamp"?l(new Date(r.snapshot.meta.timestamp).toISOString()):l(null)}if(e.startsWith("meta.")){let t=e.slice(5);return t==="intentId"?l(Q(r.intentId)):t==="actionName"?l(Q(r.currentAction)):l(Q(V(r.snapshot.meta,t)))}if(e.startsWith("input.")||e==="input"){let t=e==="input"?"":e.slice(6);return l(t?Q(V(r.snapshot.input,t)):r.snapshot.input)}if(Object.prototype.hasOwnProperty.call(r.schema.computed.fields,e))return l(Q(r.snapshot.computed[e]));if(e.startsWith("system.")){let t=e.slice(7);return l(Q(V(r.snapshot.system,t)))}return l(Q(V(r.snapshot.data,e)))}function Q(e){return e===void 0?null:e}function B(e,r,t,n){let o=f(e,t);if(!o.ok)return o;let a=f(r,t);return a.ok?l(n(o.value,a.value)):a}function sr(e,r){for(let t of e){let n=f(t,r);if(!n.ok)return n;if(!K(n.value))return l(!1)}return l(!0)}function pr(e,r){for(let t of e){let n=f(t,r);if(!n.ok)return n;if(K(n.value))return l(!0)}return l(!1)}function lr(e,r){let t=f(e,r);return t.ok?l(!K(t.value)):t}function ur(e,r){let t=f(e.cond,r);return t.ok?f(K(t.value)?e.then:e.else,r):t}function cr(e,r,t){let n=f(e,t);if(!n.ok)return n;let o=f(r,t);if(!o.ok)return o;let a=y(o.value);return a===0?l(null):l(y(n.value)/a)}function fr(e,r,t){let n=f(e,t);if(!n.ok)return n;let o=f(r,t);if(!o.ok)return o;let a=y(o.value);return a===0?l(null):l(y(n.value)%a)}function dr(e,r){if(e.length===0)return l(null);let t=[];for(let n of e){let o=f(n,r);if(!o.ok)return o;t.push(y(o.value))}return l(Math.min(...t))}function mr(e,r){if(e.length===0)return l(null);let t=[];for(let n of e){let o=f(n,r);if(!o.ok)return o;t.push(y(o.value))}return l(Math.max(...t))}function yr(e,r){let t=f(e,r);return t.ok?l(Math.abs(y(t.value))):t}function xr(e,r){let t=f(e,r);return t.ok?l(-y(t.value)):t}function hr(e,r){let t=[];for(let a of e){let s=f(a,r);if(!s.ok)return s;t.push(s.value)}if(t.some(a=>Array.isArray(a))){let a=[];for(let s of t)Array.isArray(s)?a.push(...s):s!=null&&a.push(s);return l(a)}let o=t.map(a=>T(a));return l(o.join(""))}function Er(e,r){let t=f(e.str,r);if(!t.ok)return t;let n=f(e.start,r);if(!n.ok)return n;let o=T(t.value),a=y(n.value);if(e.end){let s=f(e.end,r);return s.ok?l(o.substring(a,y(s.value))):s}return l(o.substring(a))}function gr(e,r){let t=f(e,r);return t.ok?l(T(t.value).trim()):t}function kr(e,r){let t=f(e,r);if(!t.ok)return t;let n=t.value;return Array.isArray(n)?l(n.length):typeof n=="string"?l(n.length):typeof n=="object"&&n!==null?l(Object.keys(n).length):l(0)}function Sr(e,r,t){let n=f(e,t);if(!n.ok)return n;let o=f(r,t);if(!o.ok)return o;let a=n.value,s=o.value;if(Array.isArray(a)){let p=y(s);return p<0||p>=a.length?l(null):l(a[p])}return typeof a=="object"&&a!==null&&typeof s=="string"?l(a[s]??null):l(null)}function br(e,r){let t=f(e,r);if(!t.ok)return t;let n=t.value;return!Array.isArray(n)||n.length===0?l(null):l(n[0])}function vr(e,r){let t=f(e,r);if(!t.ok)return t;let n=t.value;return!Array.isArray(n)||n.length===0?l(null):l(n[n.length-1])}function Nr(e,r){let t=f(e.array,r);if(!t.ok)return t;let n=f(e.start,r);if(!n.ok)return n;let o=t.value;if(!Array.isArray(o))return l([]);let a=y(n.value);if(e.end){let s=f(e.end,r);return s.ok?l(o.slice(a,y(s.value))):s}return l(o.slice(a))}function Rr(e,r,t){let n=f(e,t);if(!n.ok)return n;let o=f(r,t);if(!o.ok)return o;let a=n.value;return Array.isArray(a)?l(a.includes(o.value)):l(!1)}function wr(e,r,t){let n=f(e,t);if(!n.ok)return n;let o=n.value;if(!Array.isArray(o))return l([]);let a=[];for(let s=0;s<o.length;s++){let p=X(t,o[s],s,o),u=f(r,p);if(!u.ok)return u;K(u.value)&&a.push(o[s])}return l(a)}function Tr(e,r,t){let n=f(e,t);if(!n.ok)return n;let o=n.value;if(!Array.isArray(o))return l([]);let a=[];for(let s=0;s<o.length;s++){let p=X(t,o[s],s,o),u=f(r,p);if(!u.ok)return u;a.push(u.value)}return l(a)}function jr(e,r,t){let n=f(e,t);if(!n.ok)return n;let o=n.value;if(!Array.isArray(o))return l(null);for(let a=0;a<o.length;a++){let s=X(t,o[a],a,o),p=f(r,s);if(!p.ok)return p;if(K(p.value))return l(o[a])}return l(null)}function Ar(e,r,t){let n=f(e,t);if(!n.ok)return n;let o=n.value;if(!Array.isArray(o))return l(!0);for(let a=0;a<o.length;a++){let s=X(t,o[a],a,o),p=f(r,s);if(!p.ok)return p;if(!K(p.value))return l(!1)}return l(!0)}function zr(e,r,t){let n=f(e,t);if(!n.ok)return n;let o=n.value;if(!Array.isArray(o))return l(!1);for(let a=0;a<o.length;a++){let s=X(t,o[a],a,o),p=f(r,s);if(!p.ok)return p;if(K(p.value))return l(!0)}return l(!1)}function Cr(e,r,t){let n=f(e,t);if(!n.ok)return n;let o=n.value,a=Array.isArray(o)?[...o]:[];for(let s of r){let p=f(s,t);if(!p.ok)return p;a.push(p.value)}return l(a)}function Pr(e,r){let t={};for(let n of Object.keys(e).sort(oe)){let o=e[n],a=f(o,r);if(!a.ok)return a;t[n]=a.value}return l(t)}function Fr(e,r,t){let n=f(e,t);if(!n.ok)return n;let o=n.value;return typeof o!="object"||o===null||Array.isArray(o)?l(null):l(o[r]??null)}function Ir(e,r){let t=f(e,r);if(!t.ok)return t;let n=t.value;return typeof n!="object"||n===null?l([]):l(Object.keys(n).sort(oe))}function Dr(e,r){let t=f(e,r);if(!t.ok)return t;let n=t.value;return typeof n!="object"||n===null?l([]):l(Object.keys(n).sort(oe).map(o=>n[o]))}function Or(e,r){let t=f(e,r);if(!t.ok)return t;let n=t.value;return typeof n!="object"||n===null?l([]):l(Object.keys(n).sort(oe).map(o=>[o,n[o]]))}function $r(e,r){let t={};for(let n of e){let o=f(n,r);if(!o.ok)return o;let a=o.value;typeof a=="object"&&a!==null&&!Array.isArray(a)&&Object.assign(t,a)}return l(t)}function Vr(e,r){let t=f(e,r);if(!t.ok)return t;let n=t.value;return n===null?l("null"):Array.isArray(n)?l("array"):l(typeof n)}function qr(e,r){let t=f(e,r);return t.ok?l(t.value===null||t.value===void 0):t}function Mr(e,r){for(let t of e){let n=f(t,r);if(!n.ok||n.value!==null&&n.value!==void 0)return n}return l(null)}function Ur(e,r){let t=f(e,r);return t.ok?l(Math.floor(y(t.value))):t}function Zr(e,r){let t=f(e,r);return t.ok?l(Math.ceil(y(t.value))):t}function Lr(e,r){let t=f(e,r);return t.ok?l(Math.round(y(t.value))):t}function _r(e,r){let t=f(e,r);if(!t.ok)return t;let n=y(t.value);return n<0?l(null):l(Math.sqrt(n))}function Hr(e,r,t){let n=f(e,t);if(!n.ok)return n;let o=f(r,t);if(!o.ok)return o;let a=Math.pow(y(n.value),y(o.value));return Number.isFinite(a)?l(a):l(null)}function Wr(e,r){let t=f(e,r);if(!t.ok)return t;let n=t.value;if(!Array.isArray(n))return l(0);let o=0;for(let a of n)o+=y(a);return l(o)}function Br(e,r){let t=f(e,r);if(!t.ok)return t;let n=t.value;if(!Array.isArray(n)||n.length===0)return l(null);let o=y(n[0]);for(let a=1;a<n.length;a++){let s=y(n[a]);s<o&&(o=s)}return l(o)}function Kr(e,r){let t=f(e,r);if(!t.ok)return t;let n=t.value;if(!Array.isArray(n)||n.length===0)return l(null);let o=y(n[0]);for(let a=1;a<n.length;a++){let s=y(n[a]);s>o&&(o=s)}return l(o)}function Gr(e,r){let t=f(e,r);return t.ok?l(T(t.value).toLowerCase()):t}function Yr(e,r){let t=f(e,r);return t.ok?l(T(t.value).toUpperCase()):t}function Jr(e,r){let t=f(e,r);return t.ok?l(T(t.value).length):t}function Xr(e,r,t){let n=f(e,t);if(!n.ok)return n;let o=f(r,t);return o.ok?l(T(n.value).startsWith(T(o.value))):o}function Qr(e,r,t){let n=f(e,t);if(!n.ok)return n;let o=f(r,t);return o.ok?l(T(n.value).endsWith(T(o.value))):o}function en(e,r,t){let n=f(e,t);if(!n.ok)return n;let o=f(r,t);return o.ok?l(T(n.value).includes(T(o.value))):o}function tn(e,r,t){let n=f(e,t);if(!n.ok)return n;let o=f(r,t);return o.ok?l(T(n.value).indexOf(T(o.value))):o}function rn(e,r,t,n){let o=f(e,n);if(!o.ok)return o;let a=f(r,n);if(!a.ok)return a;let s=f(t,n);return s.ok?l(T(o.value).replace(T(a.value),T(s.value))):s}function nn(e,r,t){let n=f(e,t);if(!n.ok)return n;let o=f(r,t);if(!o.ok)return o;let a=T(n.value).split(T(o.value));return l(a.length===0?[""]:a)}function on(e,r){let t=f(e,r);if(!t.ok)return t;let n=t.value;return Array.isArray(n)?l([...n].reverse()):l([])}function an(e,r){let t=f(e,r);if(!t.ok)return t;let n=t.value;if(!Array.isArray(n))return l([]);let o=[],a=[];for(let s of n)o.some(p=>p===s)||(o.push(s),a.push(s));return l(a)}function sn(e,r){let t=f(e,r);if(!t.ok)return t;let n=t.value;if(!Array.isArray(n))return l([]);let o=[];for(let a of n)Array.isArray(a)?o.push(...a):o.push(a);return l(o)}function pn(e,r,t){let n=f(e,t);if(!n.ok)return n;let o=f(r,t);if(!o.ok)return o;let a=n.value;if(typeof a!="object"||a===null||Array.isArray(a))return l(!1);let s=o.value;return typeof s!="string"?l(!1):l(Object.prototype.hasOwnProperty.call(a,s))}function ln(e,r,t){let n=f(e,t);if(!n.ok)return n;let o=f(r,t);if(!o.ok)return o;let a=n.value;if(typeof a!="object"||a===null||Array.isArray(a))return l({});let s=o.value;if(!Array.isArray(s))return l({});let p={};for(let u of s)typeof u=="string"&&Object.prototype.hasOwnProperty.call(a,u)&&(p[u]=a[u]);return l(p)}function un(e,r,t){let n=f(e,t);if(!n.ok)return n;let o=f(r,t);if(!o.ok)return o;let a=n.value;if(typeof a!="object"||a===null||Array.isArray(a))return l({});let s=o.value,p=new Set;if(Array.isArray(s))for(let d of s)typeof d=="string"&&p.add(d);let u={};for(let[d,h]of Object.entries(a))p.has(d)||(u[d]=h);return l(u)}function cn(e,r){let t=f(e,r);if(!t.ok)return t;let n=t.value;if(!Array.isArray(n))return l({});let o={};for(let a of n)Array.isArray(a)&&a.length===2&&typeof a[0]=="string"&&(o[a[0]]=a[1]);return l(o)}function fn(e,r){let t=f(e,r);return t.ok?l(T(t.value)):t}function dn(e,r){let t=f(e,r);return t.ok?l(y(t.value)):t}function mn(e,r){let t=f(e,r);return t.ok?l(K(t.value)):t}function yn(e){return/^\d+$/.test(e)}function xn(e,r){let t=L(e,r);return t?t.kind==="primitive"&&t.type==="null"||t.kind==="literal"&&t.value===null:!1}function ut(e,r){let t=L(e,r);if(!t)return null;if(t.kind!=="union")return t;let n=t.types.filter(a=>!xn(a,r));return n.length!==t.types.length?n.length!==1?null:L(n[0],r):t}function L(e,r,t=[]){if(e.kind!=="ref")return e;if(t.includes(e.name))return null;let n=r[e.name];return n?L(n.definition,r,[...t,e.name]):null}function ct(e,r,t){return t?dt(e,r,D(t))!==null:!0}function ft(e,r,t){return dt(e,r,t)!==null}function dt(e,r,t){let n=e;for(let o of t){if(!n)return null;let a=ut(n,r);if(!a)return null;switch(a.kind){case"object":n=a.fields[o]?.type??null;break;case"record":n=a.value;break;case"array":if(!yn(o))return null;n=a.element;break;case"primitive":return null;default:return null}}return n}function ve(e,r,t){let n=e;for(let o of t){if(!n)return null;let a=ut(n,r);if(!a)return null;switch(a.kind){case"object":if(o.kind!=="prop")return null;n=a.fields[o.name]?.type??null;break;case"record":if(o.kind!=="prop")return null;n=a.value;break;case"array":if(o.kind!=="index")return null;n=a.element;break;case"primitive":return null;default:return null}}return n}function Ne(e,r,t){if(!e.fieldTypes||t.length===0)return null;let[n,...o]=t;if(!n||n.kind!=="prop"||!(n.name in e.fields))return null;let a=e.fieldTypes[n.name];return a?o.length===0?a:ve(a,r,o):null}function $(e,r,t,n){if(e===void 0)return n?.allowUndefined?{ok:!0}:{ok:!1,message:"Value is required"};let o=L(r,t);if(!o)return{ok:!1,message:"Unknown type reference"};if(o.kind==="union")return o.types.map(s=>$(e,s,t,n)).find(s=>s.ok)??{ok:!1,message:"Value does not match any union branch"};switch(o.kind){case"primitive":switch(o.type){case"null":return e===null?{ok:!0}:{ok:!1,message:"Expected null"};case"string":return typeof e=="string"?{ok:!0}:{ok:!1,message:"Expected string"};case"number":return typeof e=="number"&&Number.isFinite(e)?{ok:!0}:{ok:!1,message:"Expected number"};case"boolean":return typeof e=="boolean"?{ok:!0}:{ok:!1,message:"Expected boolean"};case"object":return e!==null&&!Array.isArray(e)&&typeof e=="object"?{ok:!0}:{ok:!1,message:"Expected object"};case"array":return Array.isArray(e)?{ok:!0}:{ok:!1,message:"Expected array"};default:return{ok:!1,message:`Unsupported primitive type: ${o.type}`}}case"literal":return Object.is(e,o.value)?{ok:!0}:{ok:!1,message:`Expected literal ${JSON.stringify(o.value)}`};case"array":if(!Array.isArray(e))return{ok:!1,message:"Expected array"};for(let s of e){let p=$(s,o.element,t,{allowUndefined:!1});if(!p.ok)return p}return{ok:!0};case"object":return e===null||Array.isArray(e)||typeof e!="object"?{ok:!1,message:"Expected object"}:hn(e,o.fields,t,n?.allowPartial??!1,n?.allowUndefined??!1);case"record":if(e===null||Array.isArray(e)||typeof e!="object")return{ok:!1,message:"Expected object"};let a=L(o.key,t);if(!a||a.kind!=="primitive"||a.type!=="string")return{ok:!1,message:"Record keys must be strings"};for(let s of Object.values(e)){let p=$(s,o.value,t,{allowUndefined:!1});if(!p.ok)return p}return{ok:!0};case"ref":return{ok:!1,message:"Unresolved type reference"}}}function hn(e,r,t,n,o){let a=new Set(Object.keys(r));for(let s of Object.keys(e))if(!a.has(s))return{ok:!1,message:`Unknown field: ${s}`};for(let[s,p]of Object.entries(r)){if(!(s in e)){if(!n&&!p.optional)return{ok:!1,message:`Missing required field: ${s}`};continue}let u=$(e[s],p.type,t,{allowPartial:n,allowUndefined:o});if(!u.ok)return u}return{ok:!0}}var En=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/,gn=/^[a-zA-Z][a-zA-Z0-9+.-]*:/,kn=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function mt(e){return gn.test(e)||kn.test(e)}function yt(e){return En.test(e)}function G(e){let r=[],t=n=>{switch(n.kind){case"lit":return;case"get":r.push(n.path);return;case"eq":case"neq":case"gt":case"gte":case"lt":case"lte":case"add":case"sub":case"mul":case"div":case"mod":t(n.left),t(n.right);return;case"pow":t(n.base),t(n.exponent);return;case"and":case"or":case"concat":case"coalesce":case"min":case"max":n.args.forEach(t);return;case"not":case"typeof":case"isNull":case"len":case"abs":case"neg":case"floor":case"ceil":case"round":case"sqrt":case"toString":case"toNumber":case"toBoolean":t(n.arg);return;case"first":case"last":case"reverse":case"unique":case"flat":case"sumArray":case"minArray":case"maxArray":t(n.array);return;case"if":t(n.cond),t(n.then),t(n.else);return;case"substring":t(n.str),t(n.start),n.end&&t(n.end);return;case"trim":case"toLowerCase":case"toUpperCase":case"strLen":t(n.str);return;case"startsWith":t(n.str),t(n.prefix);return;case"endsWith":t(n.str),t(n.suffix);return;case"strIncludes":case"indexOf":t(n.str),t(n.search);return;case"replace":t(n.str),t(n.search),t(n.replacement);return;case"split":t(n.str),t(n.delimiter);return;case"at":t(n.array),t(n.index);return;case"slice":t(n.array),t(n.start),n.end&&t(n.end);return;case"includes":t(n.array),t(n.item);return;case"filter":case"find":case"every":case"some":t(n.array),t(n.predicate);return;case"map":t(n.array),t(n.mapper);return;case"append":t(n.array),n.items.forEach(t);return;case"object":Object.values(n.fields).forEach(t);return;case"field":t(n.object);return;case"keys":case"values":case"entries":t(n.obj);return;case"merge":n.objects.forEach(t);return;case"hasKey":t(n.obj),t(n.key);return;case"pick":case"omit":t(n.obj),t(n.keys);return;case"fromEntries":t(n.entries);return}};return t(e),r}function xt(e){let r=[],t=n=>{switch(n.kind){case"seq":n.steps.forEach(t);return;case"if":r.push(...G(n.cond)),t(n.then),n.else&&t(n.else);return;case"patch":n.op!=="unset"&&n.value&&r.push(...G(n.value));return;case"effect":Object.values(n.params).forEach(o=>{r.push(...G(o))});return;case"fail":n.message&&r.push(...G(n.message));return;case"call":case"halt":return}};return t(e),r}function fe(e,r,t={}){if(e.fieldTypes){if(!r)return!0;let n=D(r),[o,...a]=n;if(!o)return!0;if(!(o in e.fields))return!1;let s=e.fieldTypes[o];if(s&&(a.length===0?!0:ft(s,t,a)))return!0}return Ue({type:"object",required:!0,fields:e.fields},r)}function de(e,r){return Object.prototype.hasOwnProperty.call(e.fields,r)}function Ue(e,r){if(!r)return!0;let t=D(r);if(t.length===0)return!0;let n=e;for(let o of t){if(!n)return!1;let a=n.type;if(a==="object"){if(!n.fields)return!0;if(!(o in n.fields))return!1;n=n.fields[o];continue}if(a==="array"){if(!bn(o))return!1;n=n.items??null;continue}return!1}return!0}function Y(e,r,t){if(e===void 0)return t?.allowUndefined&&r.required===!1?{ok:!0}:{ok:!1,message:"Value is required"};if(e===null)return{ok:!0};let n=r.type;if(typeof n=="object"&&"enum"in n)return n.enum.some(o=>Object.is(o,e))?{ok:!0}:{ok:!1,message:"Value is not in enum"};switch(n){case"null":return e===null?{ok:!0}:{ok:!1,message:"Expected null"};case"string":return typeof e=="string"?{ok:!0}:{ok:!1,message:"Expected string"};case"number":return typeof e=="number"&&Number.isFinite(e)?{ok:!0}:{ok:!1,message:"Expected number"};case"boolean":return typeof e=="boolean"?{ok:!0}:{ok:!1,message:"Expected boolean"};case"object":return e===null||Array.isArray(e)||typeof e!="object"?{ok:!1,message:"Expected object"}:Sn(e,r,t?.allowPartial??!1,t?.allowUndefined??!1);case"array":if(!Array.isArray(e))return{ok:!1,message:"Expected array"};if(!r.items)return{ok:!0};for(let o of e){let a=Y(o,r.items,{allowUndefined:!1});if(!a.ok)return a}return{ok:!0}}}function Sn(e,r,t,n){if(!r.fields)return{ok:!0};let o=Object.entries(r.fields),a=new Set(o.map(([s])=>s));for(let s of Object.keys(e)){if(!a.has(s))return{ok:!1,message:`Unknown field: ${s}`};let p=r.fields[s],u=Y(e[s],p,{allowPartial:t,allowUndefined:n});if(!u.ok)return u}if(!t){for(let[s,p]of o)if(p.required&&!(s in e))return{ok:!1,message:`Missing required field: ${s}`}}return{ok:!0}}function Re(e,r){if(r.length===0)return e;let t=e;for(let n of r){if(!t)return null;let o=t.type;if(o==="object"){if(n.kind!=="prop"||!t.fields||!(n.name in t.fields))return null;t=t.fields[n.name];continue}if(o==="array"){if(n.kind!=="index")return null;t=t.items??null;continue}return null}return t}function bn(e){return/^[0-9]+$/.test(e)}function ht(e){return{snapshot:e,status:"running",patches:[],requirements:[],error:null}}function Et(e,r){let t=e.snapshot.data;switch(r.op){case"set":t=ce(t,r.path,r.value);break;case"unset":t=Se(t,r.path);break;case"merge":t=be(t,r.path,r.value);break}return{...e,snapshot:{...e.snapshot,data:t},patches:[...e.patches,r]}}function vn(e,r){return{...e,status:"pending",requirements:[...e.requirements,r]}}function P(e,r){return{...e,status:"error",error:r}}function se(e,r,t,n){if(t.status!=="running")return{state:t,trace:g(r.trace,"flow",n,{},null,[])};switch(e.kind){case"seq":return Nn(e.steps,r,t,n);case"if":return Rn(e,r,t,n);case"patch":return wn(e,r,t,n);case"effect":return Tn(e,r,t,n);case"call":return zn(e.flow,r,t,n);case"halt":return Cn(e.reason,r,t,n);case"fail":return Pn(e,r,t,n);default:return{state:P(t,v("INTERNAL_ERROR",`Unknown flow kind: ${e.kind}`,r.currentAction??"",n,r.trace.timestamp)),trace:g(r.trace,"error",n,{},null,[])}}}async function $i(e,r,t,n){return se(e,r,t,n)}function Nn(e,r,t,n){let o=t,a=[];for(let s=0;s<e.length;s++){let p=`${n}.steps[${s}]`,u=ge($e(r,o.snapshot),p),d=se(e[s],u,o,p);if(a.push(d.trace),o=d.state,o.status!=="running")break}return{state:o,trace:g(r.trace,"flow",n,{kind:"seq"},null,a)}}function Rn(e,r,t,n){let o=f(e.cond,r);if(!o.ok)return{state:P(t,o.error),trace:g(r.trace,"branch",n,{cond:!1},null,[])};let a=o.value,s=a!=null&&a!==!1,p=s?`${n}.then`:`${n}.else`,u=s?e.then:e.else;if(!u)return{state:t,trace:g(r.trace,"branch",n,{cond:s},null,[])};let d=ge(r,p),h=se(u,d,t,p);return{state:h.state,trace:g(r.trace,"branch",n,{cond:s},null,[h.trace])}}function wn(e,r,t,n){let o;if(e.op!=="unset"&&e.value){let b=f(e.value,r);if(!b.ok)return{state:P(t,b.error),trace:g(r.trace,"error",n,{},null,[])};o=b.value}let a={type:"object",required:!0,fields:r.schema.state.fields},s=Ne(r.schema.state,r.schema.types,e.path),p=s?null:Re(a,e.path),u=ke(e.path);if(!s&&!p)return{state:P(t,v("PATH_NOT_FOUND",`Unknown patch path: ${u}`,r.currentAction??"",n,r.trace.timestamp)),trace:g(r.trace,"error",n,{},null,[])};if(e.op!=="unset"){let b=s?$(o,s,r.schema.types,{allowPartial:e.op==="merge",allowUndefined:!1}):Y(o,p,{allowPartial:e.op==="merge",allowUndefined:!1});if(!b.ok)return{state:P(t,v("TYPE_MISMATCH",`Invalid patch value at ${u}: ${b.message??"type mismatch"}`,r.currentAction??"",n,r.trace.timestamp)),trace:g(r.trace,"error",n,{},null,[])}}let d=e.op==="unset"?{op:"unset",path:e.path}:e.op==="merge"?{op:"merge",path:e.path,value:o}:{op:"set",path:e.path,value:o};return{state:Et(t,d),trace:g(r.trace,"patch",n,{op:e.op,path:u},o,[])}}function Tn(e,r,t,n){if(e.type==="array.map"||e.type==="array.filter")return jn(e,r,t,n);let o={};for(let[u,d]of Object.entries(e.params)){let h=f(d,r);if(!h.ok)return{state:P(t,h.error),trace:g(r.trace,"error",n,{},null,[])};o[u]=h.value}let s={id:rt(r.snapshot.meta.schemaHash,r.intentId??"",r.currentAction??"",n),type:e.type,params:o,actionId:r.currentAction??"",flowPosition:{nodePath:n,snapshotVersion:r.snapshot.meta.version},createdAt:r.trace.timestamp};return{state:vn(t,s),trace:g(r.trace,"effect",n,{type:e.type},o,[])}}function jn(e,r,t,n){let{params:o}=e,a=$e(r,t.snapshot),s=o.source;if(!s)return{state:P(t,v("INVALID_INPUT",`${e.type} requires 'source' parameter`,r.currentAction??"",n,r.trace.timestamp)),trace:g(a.trace,"error",n,{},null,[])};let p=f(s,a);if(!p.ok)return{state:P(t,p.error),trace:g(a.trace,"error",n,{},null,[])};let u=p.value;if(!Array.isArray(u))return{state:P(t,v("TYPE_MISMATCH",`${e.type} source must be an array`,a.currentAction??"",n,a.trace.timestamp)),trace:g(a.trace,"error",n,{},null,[])};let d=o.into;if(!d)return{state:P(t,v("INVALID_INPUT",`${e.type} requires 'into' parameter`,a.currentAction??"",n,a.trace.timestamp)),trace:g(a.trace,"error",n,{},null,[])};let h=f(d,a);if(!h.ok)return{state:P(t,h.error),trace:g(a.trace,"error",n,{},null,[])};let b=An(h.value);if(!b)return{state:P(t,v("INVALID_INPUT",`${e.type} into must resolve to PatchPath segments or semantic string path`,a.currentAction??"",n,a.trace.timestamp)),trace:g(a.trace,"error",n,{},null,[])};let m=e.type==="array.map"?o.select:o.where;if(!m)return{state:P(t,v("INVALID_INPUT",`${e.type} requires '${e.type==="array.map"?"select":"where"}' parameter`,a.currentAction??"",n,a.trace.timestamp)),trace:g(a.trace,"error",n,{},null,[])};let E=[];for(let F=0;F<u.length;F++){let A=u[F],q=X(a,A,F,u),H=f(m,q);if(!H.ok)return{state:P(t,H.error),trace:g(a.trace,"error",n,{},null,[])};if(e.type==="array.map")E.push(H.value);else{let J=H.value;J!=null&&J!==!1&&E.push(A)}}return{state:Et(t,{op:"set",path:b,value:E}),trace:g(a.trace,"effect",n,{type:e.type,target:b},{count:E.length},[])}}function An(e){if(typeof e=="string")return pt(e);if(!Array.isArray(e))return null;let r=[];for(let t of e){if(!t||typeof t!="object")return null;let n=t.kind;if(n==="prop"){let o=t.name;if(typeof o!="string"||o.length===0)return null;r.push({kind:"prop",name:o});continue}if(n==="index"){let o=t.index;if(!Number.isInteger(o)||o<0)return null;r.push({kind:"index",index:o});continue}return null}return r.length>0?r:null}function zn(e,r,t,n){let o=r.schema.actions[e];if(!o)return{state:P(t,v("UNKNOWN_FLOW",`Unknown flow: ${e}`,r.currentAction??"",n,r.trace.timestamp)),trace:g(r.trace,"error",n,{},null,[])};let a=`${n}.call(${e})`,s=ge(r,a),p=se(o.flow,s,t,a);return{state:p.state,trace:g(r.trace,"call",n,{flow:e},null,[p.trace])}}function Cn(e,r,t,n){return{state:{...t,status:"halted"},trace:g(r.trace,"halt",n,{reason:e},null,[])}}function Pn(e,r,t,n){let o=e.code;if(e.message){let s=f(e.message,r);s.ok&&(o=String(s.value))}let a=v("VALIDATION_ERROR",o,r.currentAction??"",n,r.trace.timestamp,{code:e.code});return{state:P(t,a),trace:g(r.trace,"error",n,{code:e.code},o,[])}}function we(e){let r=Object.keys(e.fields),t=new Map;for(let[n,o]of Object.entries(e.fields)){let a=o.deps.filter(s=>s in e.fields);t.set(n,a)}return{nodes:r,edges:t}}function Te(e){let r=new Map,t=new Map;for(let a of e.nodes)r.set(a,0),t.set(a,[]);for(let[a,s]of e.edges)for(let p of s)t.has(p)&&t.get(p).push(a),r.set(a,(r.get(a)??0)+1);let n=[];for(let[a,s]of r)s===0&&n.push(a);let o=[];for(;n.length>0;){let a=n.shift();o.push(a);for(let s of t.get(a)??[]){let p=(r.get(s)??1)-1;r.set(s,p),p===0&&n.push(s)}}if(o.length!==e.nodes.length){let a=e.nodes.filter(s=>!o.includes(s));return re({code:"V-002",message:`Cyclic dependency detected in computed fields: ${a.join(", ")}`,path:a[0]})}return l(o)}function gt(e){let r=new Set,t=new Set,n=[];function o(a,s){r.add(a),t.add(a);let p=e.edges.get(a)??[];for(let u of p)if(r.has(u)){if(t.has(u)){let d=s.indexOf(u);d!==-1?n.push([...s.slice(d),u]):n.push([...s,u])}}else if(o(u,[...s,u]))return!0;return t.delete(a),!1}for(let a of e.nodes)r.has(a)||o(a,[a]);return n.length>0?n:null}function Mi(e,r){let t=new Set,n=[...e.edges.get(r)??[]];for(;n.length>0;){let o=n.shift();t.has(o)||(t.add(o),n.push(...e.edges.get(o)??[]))}return t}function pe(e,r){let t=te(r.meta.timestamp),n=we(e.computed),o=Te(n);if(!o.ok)return re(v("CYCLIC_DEPENDENCY",o.error.message,"",o.error.path??"",t.timestamp));let a={},s={...r,computed:a};for(let p of o.value){let u=e.computed.fields[p];if(!u)continue;let d=U(s,e,null,p,void 0,t),h=f(u.expr,d);if(Z(h))return h;a[p]=h.value,s={...s,computed:{...a}}}return l(a)}function Ki(e,r,t){let n=te(r.meta.timestamp),o=e.computed.fields[t];if(!o)return re(v("PATH_NOT_FOUND",`Computed field not found: ${t}`,"",t,n.timestamp));let a=U(r,e,null,t,void 0,n);return f(o.expr,a)}function Ze(e,r){let t=pe(e,r);return Z(t)?{kind:"error",code:"INTERNAL_ERROR",message:`Error evaluating computed values for legality query: ${t.error.message}`}:{kind:"ok",snapshot:{...r,computed:t.value}}}function Le(e,r,t,n){let o=e.actions[t];if(!o)return{kind:"error",code:"UNKNOWN_ACTION",message:`Unknown action: ${t}`};if(!o.available)return{kind:"ok",available:!0};let a=U(r,e,null,`actions.${t}.available`,void 0,n),s=f(o.available,a);return Z(s)?{kind:"error",code:"INTERNAL_ERROR",message:`Error evaluating availability: ${s.error.message}`}:typeof s.value!="boolean"?{kind:"error",code:"TYPE_MISMATCH",message:`Availability condition must return boolean, got ${typeof s.value}`}:{kind:"ok",available:s.value}}function _e(e,r,t,n=r.meta.timestamp){let o=Ze(e,r);return o.kind==="error"?o:Le(e,o.snapshot,t,n)}function kt(e,r,t){let n=_e(e,r,t);if(n.kind==="error")throw new Error(n.message);return n.available}function Fn(e,r,t,n=r.meta.timestamp){let o=e.actions[t.type];if(!o)return{kind:"error",code:"UNKNOWN_ACTION",message:`Unknown action: ${t.type}`};let a=Ze(e,r);if(a.kind==="error")return a;let s=Le(e,a.snapshot,t.type,n);if(s.kind==="error")return s;if(!s.available)return{kind:"ok",dispatchable:!1};if(!o.dispatchable)return{kind:"ok",dispatchable:!0};let p=U({...a.snapshot,input:t.input},e,t.type,`actions.${t.type}.dispatchable`,t.intentId,n),u=f(o.dispatchable,p);return Z(u)?{kind:"error",code:"INTERNAL_ERROR",message:`Error evaluating dispatchability: ${u.error.message}`}:typeof u.value!="boolean"?{kind:"error",code:"TYPE_MISMATCH",message:`Dispatchability condition must return boolean, got ${typeof u.value}`}:{kind:"ok",dispatchable:u.value}}function St(e,r,t){let n=Fn(e,r,t);if(n.kind==="error")throw new Error(n.message);return n.dispatchable}function bt(e,r){let t=Ze(e,r);if(t.kind==="error")throw new Error(t.message);return Object.keys(e.actions).filter(n=>{let o=Le(e,t.snapshot,n,r.meta.timestamp);if(o.kind==="error")throw new Error(o.message);return o.available})}function je(e,r){let t=He(r,"status"),n=He(r,"currentAction"),o=He(r,"lastError"),a=new Set(r.removeRequirementIds??[]),s=r.addRequirements??[],p=In(e.system.pendingRequirements,a,s),u={...e.system,status:t?r.status:e.system.status,currentAction:n?r.currentAction??null:e.system.currentAction,lastError:o?r.lastError??null:e.system.lastError,pendingRequirements:p};return Dn(e.system,u)?{...e,system:u,meta:{...e.meta,version:e.meta.version+1}}:e}function In(e,r,t){let n=new Set(t.map(a=>a.id));return[...e.filter(a=>!r.has(a.id)&&!n.has(a.id)),...t]}function Dn(e,r){return e.status!==r.status||e.currentAction!==r.currentAction||!$n(e.lastError,r.lastError)||!On(e.pendingRequirements,r.pendingRequirements)}function On(e,r){if(e.length!==r.length)return!1;for(let t=0;t<e.length;t++)if(!Vn(e[t],r[t]))return!1;return!0}function $n(e,r){if(e===r)return!0;if(e===null||r===null||e.code!==r.code||e.message!==r.message||e.timestamp!==r.timestamp||e.source.actionId!==r.source.actionId||e.source.nodePath!==r.source.nodePath)return!1;let t=e.context??{},n=r.context??{};return JSON.stringify(t)===JSON.stringify(n)}function Vn(e,r){return e.id===r.id&&e.type===r.type&&e.actionId===r.actionId&&e.createdAt===r.createdAt&&e.flowPosition.nodePath===r.flowPosition.nodePath&&e.flowPosition.snapshotVersion===r.flowPosition.snapshotVersion&&JSON.stringify(e.params)===JSON.stringify(r.params)}function He(e,r){return Object.prototype.hasOwnProperty.call(e,r)}function We(e,r,t,n){let o=r,a=pe(e,r);ie(a)&&(o={...r,computed:a.value});let s=e.actions[t.type];if(!s)return Ae(o,t,"UNKNOWN_ACTION",`Unknown action: ${t.type}`,n);let p=Nt(e,t);if(p)return Ae(o,t,"INVALID_INPUT",p,n);let u=o.system.currentAction===t.type;if(s.available&&!u){let A=_e(e,o,t.type,n.now);if(A.kind==="error")return Ae(o,t,A.code,A.message,n);if(!A.available)return Ae(o,t,"ACTION_UNAVAILABLE",`Action "${t.type}" is not available`,n)}let d={...o,input:t.input,system:{...o.system,status:"computing",currentAction:t.type}},h=U(d,e,t.type,`actions.${t.type}.flow`,t.intentId,n.now),b=ht(d),m=se(s.flow,h,b,`actions.${t.type}.flow`),E=qn(m.state.status),C=Zn(o,t,E,m.state.error,m.state.requirements),I=[...m.state.patches],F={root:m.trace,nodes:Un(m.trace),intent:{type:t.type,input:t.input},baseVersion:o.meta.version,resultVersion:Rt(o,I,C),duration:n.durationMs??0,terminatedBy:Mn(m.state.status)};return{patches:I,systemDelta:C,trace:F,status:E}}async function vt(e,r,t,n){return We(e,r,t,n)}function Nt(e,r){if(!r.intentId||r.intentId==="")return"Intent must have a non-empty intentId";let t=e.actions[r.type];return!t||!t.input&&!t.inputType?null:Ln(e,t.inputType,t.input,r.input)}function qn(e){switch(e){case"running":case"complete":return"complete";case"pending":return"pending";case"halted":return"halted";case"error":return"error"}}function Mn(e){switch(e){case"running":case"complete":return"complete";case"pending":return"effect";case"halted":return"halt";case"error":return"error"}}function Un(e){let r={};function t(n){r[n.id]=n;for(let o of n.children)t(o)}return t(e),r}function Ae(e,r,t,n,o){let a=v(t,n,r.type,"",o.now),s={status:"error",currentAction:null,lastError:a,addRequirements:[],removeRequirementIds:[]},p={root:{id:`trace-error-${r.intentId}`,kind:"error",sourcePath:"",inputs:{},output:a,children:[],timestamp:o.now},nodes:{},intent:{type:r.type,input:r.input},baseVersion:e.meta.version,resultVersion:Rt(e,[],s),duration:o.durationMs??0,terminatedBy:"error"};return{patches:[],systemDelta:s,trace:p,status:"error"}}function Zn(e,r,t,n,o){let a=t==="error";return{status:t==="pending"?"pending":t==="error"?"error":"idle",currentAction:t==="pending"?r.type:null,lastError:n,addRequirements:[...o],removeRequirementIds:e.system.pendingRequirements.map(p=>p.id)}}function Rt(e,r,t){let n=e.meta.version;return n+=1,je(e,t)!==e&&(n+=1),n}function Ln(e,r,t,n){if(r){let o=$(n,r,e.types);return o.ok?null:o.message??"Invalid input"}if(!t)return null;if(t.type==="object"){if(typeof n!="object"||n===null||Array.isArray(n))return`Expected object input, got ${typeof n}`;let o=n,a=t.fields??{};for(let[s,p]of Object.entries(a))if(p.required&&!(s in o))return`Missing required field: ${s}`;for(let s of Object.keys(o))if(!(s in a))return`Unknown field: ${s}`;for(let[s,p]of Object.entries(a))if(s in o){let u=_n(p,o[s],s);if(u)return u}}return null}function _n(e,r,t){if(r==null)return e.required?`Missing required field: ${t}`:null;switch(e.type){case"string":if(typeof r!="string")return`Expected string for ${t}, got ${typeof r}`;break;case"number":if(typeof r!="number")return`Expected number for ${t}, got ${typeof r}`;break;case"boolean":if(typeof r!="boolean")return`Expected boolean for ${t}, got ${typeof r}`;break;case"array":if(!Array.isArray(r))return`Expected array for ${t}, got ${typeof r}`;break;case"object":if(typeof r!="object"||Array.isArray(r))return`Expected object for ${t}, got ${typeof r}`;break}return null}var Hn={type:"object",required:!1};function At(e,r,t,n){let o=r.data,a=r.system,s=r.input,p=[],u={type:"object",required:!0,fields:e.state.fields};for(let m of t){let E=ke(m.path);if(!lt(m.path)){p.push(v("PATH_NOT_FOUND",`Unsafe patch path: ${E}`,r.system.currentAction??"",E,n.now,{patch:m}));continue}if(Wn(m.path)){if(m.op!=="unset"){if(m.path.length===1){let A=Y(m.value,Hn,{allowPartial:m.op==="merge",allowUndefined:!1});if(!A.ok){p.push(v("TYPE_MISMATCH",`Invalid patch value at ${E}: ${A.message??"type mismatch"}`,r.system.currentAction??"",E,n.now,{patch:m}));continue}}if(m.op==="merge"&&!Tt(o,m.path)){p.push(v("TYPE_MISMATCH",`Invalid merge target at ${E}: target path must be an object or absent`,r.system.currentAction??"",E,n.now,{patch:m}));continue}}o=jt(o,m);continue}let I=Ne(e.state,e.types,m.path),F=I?null:Re(u,m.path);if(!I&&!F){p.push(v("PATH_NOT_FOUND",`Unknown patch path: ${E}`,r.system.currentAction??"",E,n.now,{patch:m}));continue}if(m.op==="merge"&&!Tt(o,m.path)){p.push(v("TYPE_MISMATCH",`Invalid merge target at ${E}: target path must be an object or absent`,r.system.currentAction??"",E,n.now,{patch:m}));continue}if(m.op!=="unset"){let A=I?$(m.value,I,e.types,{allowPartial:m.op==="merge",allowUndefined:!1}):Y(m.value,F,{allowPartial:m.op==="merge",allowUndefined:!1});if(!A.ok){p.push(v("TYPE_MISMATCH",`Invalid patch value at ${E}: ${A.message??"type mismatch"}`,r.system.currentAction??"",E,n.now,{patch:m}));continue}}o=jt(o,m)}if(p.length>0){let m=p[p.length-1];a={...a,status:"error",lastError:m}}let d={...r,data:o,system:a,input:s},h=pe(e,d),b=r.computed;if(ie(h))b=h.value;else if(Z(h)){let m=h.error;b={},a={...a,status:"error",lastError:m}}return{data:o,computed:b,system:a,input:s,meta:{...r.meta,version:r.meta.version+1,timestamp:n.now,randomSeed:n.randomSeed}}}function Wn(e){let r=e[0];return r.kind!=="prop"?null:r.name.startsWith("$")?r.name:null}function wt(e){return e!==null&&!Array.isArray(e)&&typeof e=="object"}function Tt(e,r){let t=e;for(let n of r){if(t===void 0)return!0;if(n.kind==="prop"){if(!wt(t))return!1;t=t[n.name];continue}if(!Array.isArray(t))return!1;t=t[n.index]}return t===void 0?!0:wt(t)}function jt(e,r){switch(r.op){case"set":return ce(e,r.path,r.value);case"unset":return Se(e,r.path);case"merge":return be(e,r.path,r.value)}}import{z as O}from"zod";import{z}from"zod";import{z as k}from"zod";var _=k.lazy(()=>k.discriminatedUnion("kind",[k.object({kind:k.literal("primitive"),type:k.string()}),k.object({kind:k.literal("array"),element:_}),k.object({kind:k.literal("record"),key:_,value:_}),k.object({kind:k.literal("object"),fields:k.record(k.string(),k.object({type:_,optional:k.boolean()}))}),k.object({kind:k.literal("union"),types:k.array(_).min(1)}),k.object({kind:k.literal("literal"),value:k.union([k.string(),k.number(),k.boolean(),k.null()])}),k.object({kind:k.literal("ref"),name:k.string()})])),zt=k.object({name:k.string(),definition:_});var Bn=z.enum(["string","number","boolean","null","object","array"]),Kn=z.object({enum:z.array(z.unknown()).readonly()}),Gn=z.union([Bn,Kn]),me=z.lazy(()=>z.object({type:Gn,required:z.boolean(),default:z.unknown().optional(),description:z.string().optional(),fields:z.record(z.string(),me).optional(),items:me.optional()})),Ct=z.object({fields:z.record(z.string(),me),fieldTypes:z.record(z.string(),_).optional()});import{z as ye}from"zod";import{z as i}from"zod";var Yn=i.object({kind:i.literal("lit"),value:i.unknown()}),Jn=i.object({kind:i.literal("get"),path:W}),Xn=i.object({kind:i.literal("eq"),left:i.lazy(()=>c),right:i.lazy(()=>c)}),Qn=i.object({kind:i.literal("neq"),left:i.lazy(()=>c),right:i.lazy(()=>c)}),eo=i.object({kind:i.literal("gt"),left:i.lazy(()=>c),right:i.lazy(()=>c)}),to=i.object({kind:i.literal("gte"),left:i.lazy(()=>c),right:i.lazy(()=>c)}),ro=i.object({kind:i.literal("lt"),left:i.lazy(()=>c),right:i.lazy(()=>c)}),no=i.object({kind:i.literal("lte"),left:i.lazy(()=>c),right:i.lazy(()=>c)}),oo=i.object({kind:i.literal("and"),args:i.array(i.lazy(()=>c))}),ao=i.object({kind:i.literal("or"),args:i.array(i.lazy(()=>c))}),io=i.object({kind:i.literal("not"),arg:i.lazy(()=>c)}),so=i.object({kind:i.literal("if"),cond:i.lazy(()=>c),then:i.lazy(()=>c),else:i.lazy(()=>c)}),po=i.object({kind:i.literal("add"),left:i.lazy(()=>c),right:i.lazy(()=>c)}),lo=i.object({kind:i.literal("sub"),left:i.lazy(()=>c),right:i.lazy(()=>c)}),uo=i.object({kind:i.literal("mul"),left:i.lazy(()=>c),right:i.lazy(()=>c)}),co=i.object({kind:i.literal("div"),left:i.lazy(()=>c),right:i.lazy(()=>c)}),fo=i.object({kind:i.literal("mod"),left:i.lazy(()=>c),right:i.lazy(()=>c)}),mo=i.object({kind:i.literal("min"),args:i.array(i.lazy(()=>c))}),yo=i.object({kind:i.literal("max"),args:i.array(i.lazy(()=>c))}),xo=i.object({kind:i.literal("abs"),arg:i.lazy(()=>c)}),ho=i.object({kind:i.literal("neg"),arg:i.lazy(()=>c)}),Eo=i.object({kind:i.literal("floor"),arg:i.lazy(()=>c)}),go=i.object({kind:i.literal("ceil"),arg:i.lazy(()=>c)}),ko=i.object({kind:i.literal("round"),arg:i.lazy(()=>c)}),So=i.object({kind:i.literal("sqrt"),arg:i.lazy(()=>c)}),bo=i.object({kind:i.literal("pow"),base:i.lazy(()=>c),exponent:i.lazy(()=>c)}),vo=i.object({kind:i.literal("sumArray"),array:i.lazy(()=>c)}),No=i.object({kind:i.literal("minArray"),array:i.lazy(()=>c)}),Ro=i.object({kind:i.literal("maxArray"),array:i.lazy(()=>c)}),wo=i.object({kind:i.literal("concat"),args:i.array(i.lazy(()=>c))}),To=i.object({kind:i.literal("substring"),str:i.lazy(()=>c),start:i.lazy(()=>c),end:i.lazy(()=>c).optional()}),jo=i.object({kind:i.literal("trim"),str:i.lazy(()=>c)}),Ao=i.object({kind:i.literal("toLowerCase"),str:i.lazy(()=>c)}),zo=i.object({kind:i.literal("toUpperCase"),str:i.lazy(()=>c)}),Co=i.object({kind:i.literal("strLen"),str:i.lazy(()=>c)}),Po=i.object({kind:i.literal("startsWith"),str:i.lazy(()=>c),prefix:i.lazy(()=>c)}),Fo=i.object({kind:i.literal("endsWith"),str:i.lazy(()=>c),suffix:i.lazy(()=>c)}),Io=i.object({kind:i.literal("strIncludes"),str:i.lazy(()=>c),search:i.lazy(()=>c)}),Do=i.object({kind:i.literal("indexOf"),str:i.lazy(()=>c),search:i.lazy(()=>c)}),Oo=i.object({kind:i.literal("replace"),str:i.lazy(()=>c),search:i.lazy(()=>c),replacement:i.lazy(()=>c)}),$o=i.object({kind:i.literal("split"),str:i.lazy(()=>c),delimiter:i.lazy(()=>c)}),Vo=i.object({kind:i.literal("len"),arg:i.lazy(()=>c)}),qo=i.object({kind:i.literal("at"),array:i.lazy(()=>c),index:i.lazy(()=>c)}),Mo=i.object({kind:i.literal("first"),array:i.lazy(()=>c)}),Uo=i.object({kind:i.literal("last"),array:i.lazy(()=>c)}),Zo=i.object({kind:i.literal("slice"),array:i.lazy(()=>c),start:i.lazy(()=>c),end:i.lazy(()=>c).optional()}),Lo=i.object({kind:i.literal("includes"),array:i.lazy(()=>c),item:i.lazy(()=>c)}),_o=i.object({kind:i.literal("filter"),array:i.lazy(()=>c),predicate:i.lazy(()=>c)}),Ho=i.object({kind:i.literal("map"),array:i.lazy(()=>c),mapper:i.lazy(()=>c)}),Wo=i.object({kind:i.literal("find"),array:i.lazy(()=>c),predicate:i.lazy(()=>c)}),Bo=i.object({kind:i.literal("every"),array:i.lazy(()=>c),predicate:i.lazy(()=>c)}),Ko=i.object({kind:i.literal("some"),array:i.lazy(()=>c),predicate:i.lazy(()=>c)}),Go=i.object({kind:i.literal("append"),array:i.lazy(()=>c),items:i.array(i.lazy(()=>c))}),Yo=i.object({kind:i.literal("reverse"),array:i.lazy(()=>c)}),Jo=i.object({kind:i.literal("unique"),array:i.lazy(()=>c)}),Xo=i.object({kind:i.literal("flat"),array:i.lazy(()=>c)}),Qo=i.object({kind:i.literal("object"),fields:i.record(i.string(),i.lazy(()=>c))}),ea=i.object({kind:i.literal("field"),object:i.lazy(()=>c),property:i.string()}),ta=i.object({kind:i.literal("keys"),obj:i.lazy(()=>c)}),ra=i.object({kind:i.literal("values"),obj:i.lazy(()=>c)}),na=i.object({kind:i.literal("entries"),obj:i.lazy(()=>c)}),oa=i.object({kind:i.literal("merge"),objects:i.array(i.lazy(()=>c))}),aa=i.object({kind:i.literal("hasKey"),obj:i.lazy(()=>c),key:i.lazy(()=>c)}),ia=i.object({kind:i.literal("pick"),obj:i.lazy(()=>c),keys:i.lazy(()=>c)}),sa=i.object({kind:i.literal("omit"),obj:i.lazy(()=>c),keys:i.lazy(()=>c)}),pa=i.object({kind:i.literal("fromEntries"),entries:i.lazy(()=>c)}),la=i.object({kind:i.literal("typeof"),arg:i.lazy(()=>c)}),ua=i.object({kind:i.literal("isNull"),arg:i.lazy(()=>c)}),ca=i.object({kind:i.literal("coalesce"),args:i.array(i.lazy(()=>c))}),fa=i.object({kind:i.literal("toString"),arg:i.lazy(()=>c)}),da=i.object({kind:i.literal("toNumber"),arg:i.lazy(()=>c)}),ma=i.object({kind:i.literal("toBoolean"),arg:i.lazy(()=>c)}),c=i.union([Yn,Jn,Xn,Qn,eo,to,ro,no,oo,ao,io,so,po,lo,uo,co,fo,mo,yo,xo,ho,Eo,go,ko,So,bo,vo,No,Ro,wo,To,jo,Ao,zo,Co,Po,Fo,Io,Do,Oo,$o,Vo,qo,Mo,Uo,Zo,Lo,_o,Ho,Wo,Bo,Ko,Go,Yo,Jo,Xo,Qo,ea,ta,ra,na,oa,aa,ia,sa,pa,la,ua,ca,fa,da,ma]),Rs=i.enum(["lit","get","eq","neq","gt","gte","lt","lte","and","or","not","if","add","sub","mul","div","mod","min","max","abs","neg","floor","ceil","round","sqrt","pow","sumArray","minArray","maxArray","concat","substring","trim","toLowerCase","toUpperCase","strLen","startsWith","endsWith","strIncludes","indexOf","replace","split","len","at","first","last","slice","includes","filter","map","find","every","some","append","reverse","unique","flat","object","field","keys","values","entries","merge","hasKey","pick","omit","fromEntries","typeof","isNull","coalesce","toString","toNumber","toBoolean"]);var ya=ye.object({deps:ye.array(W),expr:c,description:ye.string().optional()}),Pt=ye.object({fields:ye.record(W,ya)});import{z as ze}from"zod";import{z as S}from"zod";import{z as N}from"zod";var xa=N.discriminatedUnion("kind",[N.object({kind:N.literal("prop"),name:N.string().min(1)}),N.object({kind:N.literal("index"),index:N.number().int().nonnegative()})]),xe=N.array(xa).min(1),Ft=N.discriminatedUnion("op",[N.object({op:N.literal("set"),path:xe,value:N.unknown()}),N.object({op:N.literal("unset"),path:xe}),N.object({op:N.literal("merge"),path:xe,value:N.record(N.string(),N.unknown())})]),Ps=N.object({type:N.string(),input:N.unknown().optional(),intentId:N.string()});function Fs(e){return{kind:"prop",name:e}}function Is(e){return{kind:"index",index:e}}function Ds(e,r){return{op:"set",path:e,value:r}}function Os(e){return{op:"unset",path:e}}function $s(e,r){return{op:"merge",path:e,value:r}}var ha=S.enum(["set","unset","merge"]),Ea=S.object({kind:S.literal("seq"),steps:S.array(S.lazy(()=>he))}),ga=S.object({kind:S.literal("if"),cond:c,then:S.lazy(()=>he),else:S.lazy(()=>he).optional()}),ka=S.object({kind:S.literal("patch"),op:ha,path:xe,value:c.optional()}),Sa=S.object({kind:S.literal("effect"),type:S.string(),params:S.record(S.string(),c)}),ba=S.object({kind:S.literal("call"),flow:S.string()}),va=S.object({kind:S.literal("halt"),reason:S.string().optional()}),Na=S.object({kind:S.literal("fail"),code:S.string(),message:c.optional()}),he=S.union([Ea,ga,ka,Sa,ba,va,Na]),Zs=S.enum(["seq","if","patch","effect","call","halt","fail"]);var It=ze.object({flow:he,input:me.optional(),inputType:_.optional(),params:ze.array(ze.string()).readonly().optional(),available:c.optional(),dispatchable:c.optional(),description:ze.string().optional()});var Ra=O.object({name:O.string().optional(),description:O.string().optional(),authors:O.array(O.string()).optional()}),Dt=O.object({id:O.string(),version:O.string(),hash:O.string(),types:O.record(O.string(),zt),state:Ct,computed:Pt,actions:O.record(O.string(),It),meta:Ra.optional()});import{z as j}from"zod";import{z as x}from"zod";var Be=x.object({code:x.string(),message:x.string(),source:x.object({actionId:x.string(),nodePath:x.string()}),timestamp:x.number(),context:x.record(x.string(),x.unknown()).optional()}),wa=x.object({nodePath:x.string(),snapshotVersion:x.number()}),Ke=x.object({id:x.string(),type:x.string(),params:x.record(x.string(),x.unknown()),actionId:x.string(),flowPosition:wa,createdAt:x.number()}),Ge=x.object({status:x.enum(["idle","computing","pending","error"]),lastError:Be.nullable(),pendingRequirements:x.array(Ke),currentAction:x.string().nullable()}),Ta=x.object({version:x.number(),timestamp:x.number(),randomSeed:x.string(),schemaHash:x.string()}),op=x.object({data:x.unknown(),computed:x.record(W,x.unknown()),system:Ge,input:x.unknown(),meta:Ta});function Ot(){return{status:"idle",lastError:null,pendingRequirements:[],currentAction:null}}var ja=j.enum(["complete","pending","halted","error"]),Aa=j.object({status:Ge.shape.status.optional(),currentAction:j.string().nullable().optional(),lastError:Be.nullable().optional(),addRequirements:j.array(Ke),removeRequirementIds:j.array(j.string())}),cp=j.object({patches:j.array(Ft),systemDelta:Aa,trace:ot,status:ja}),za=j.object({code:j.string(),message:j.string(),path:j.string().optional()}),fp=j.object({valid:j.boolean(),errors:j.array(za)}),dp=j.object({value:j.unknown(),trace:ue,deps:j.array(W)});function $t(){return{valid:!0,errors:[]}}function Ye(e){return{valid:!1,errors:e}}function qt(e){let r=[],t=Dt.safeParse(e);if(!t.success){let b=t.error.issues.map(m=>({code:"SCHEMA_ERROR",message:m.message,path:m.path.map(String).join(".")}));return Ye(b)}let n=t.data;mt(n.id)||r.push({code:"SCHEMA_ERROR",message:"Schema id must be a valid URI or UUID",path:"id"}),yt(n.version)||r.push({code:"SCHEMA_ERROR",message:"Schema version must follow Semantic Versioning 2.0",path:"version"});let o=n.hash;if(!o)r.push({code:"SCHEMA_ERROR",message:"Schema hash is required",path:"hash"});else{let b=e,{hash:m,...E}=b,C=Oe(E);o!==C&&r.push({code:"V-008",message:`Schema hash mismatch: expected ${C}, got ${o}`,path:"hash"})}Object.keys(n.state.fields).length===0&&r.push({code:"SCHEMA_ERROR",message:"StateSpec.fields must not be empty",path:"state.fields"}),Object.keys(n.computed.fields).length===0&&r.push({code:"SCHEMA_ERROR",message:"ComputedSpec.fields must not be empty",path:"computed.fields"}),Object.keys(n.actions).length===0&&r.push({code:"SCHEMA_ERROR",message:"actions must not be empty",path:"actions"}),r.push(...Fa(n)),r.push(...Da(n,"state.fields")),r.push(...Oa(n)),r.push(...$a(n)),r.push(...Va(n)),r.push(...qa(n));let a=we(n.computed),s=Te(a);Z(s)&&r.push(s.error);let p=gt(a);if(p)for(let b of p)r.push({code:"V-002",message:`Cyclic dependency: ${b.join(" -> ")}`,path:b[0]});let u=new Set(Object.keys(n.actions)),d=Ca(n,u);r.push(...d);let h=Pa(n);return r.push(...h),r.length>0?Ye(r):$t()}function Ca(e,r){let t=[];for(let[n,o]of Object.entries(e.actions)){let a=Ee(o.flow);for(let s of a)r.has(s)||t.push({code:"V-004",message:`Unknown flow reference: "${s}" in action "${n}"`,path:`actions.${n}`})}return t}function Ee(e){let r=[];switch(e.kind){case"call":r.push(e.flow);break;case"seq":for(let t of e.steps)r.push(...Ee(t));break;case"if":r.push(...Ee(e.then)),e.else&&r.push(...Ee(e.else));break}return r}function Pa(e){let r=[],t=new Map;for(let[s,p]of Object.entries(e.actions))t.set(s,Ee(p.flow));let n=new Set,o=new Set;function a(s,p){n.add(s),o.add(s);let u=t.get(s)??[];for(let d of u)if(n.has(d)){if(o.has(d))return r.push({code:"V-005",message:`Cyclic call detected: ${[...p,d].join(" -> ")}`,path:`actions.${s}`}),!0}else if(a(d,[...p,d]))return!0;return o.delete(s),!1}for(let s of t.keys())n.has(s)||a(s,[s]);return r}function Fa(e){let r=[];if(e.state.fieldTypes)for(let t of Object.keys(e.state.fieldTypes))t in e.state.fields||r.push({code:"V-010",message:`state.fieldTypes.${t} has no matching state.fields entry`,path:`state.fieldTypes.${t}`}),r.push(...ee(e.state.fieldTypes[t],e.types,`state.fieldTypes.${t}`));for(let[t,n]of Object.entries(e.actions)){if(!n.inputType){n.params&&n.params.length>0&&r.push(...Vt(t,n,e.types));continue}r.push(...ee(n.inputType,e.types,`actions.${t}.inputType`)),n.params&&n.params.length>0&&r.push(...Vt(t,n,e.types))}return r}function Vt(e,r,t){let n=r.params??[];if(n.length===0)return[];let o=[],a=new Set;for(let[u,d]of n.entries()){if(a.has(d)){o.push({code:"V-010",message:`Duplicate parameter name "${d}" is not allowed`,path:`actions.${e}.params.${u}`});continue}a.add(d)}let s=null;if(r.inputType?s=Je(r.inputType,t):r.input?.type==="object"&&r.input.fields&&(s=Object.keys(r.input.fields)),!s)return[...o,{code:"V-010",message:`actions.${e}.params requires an object-shaped input carrier`,path:`actions.${e}.params`}];let p=new Set(s);return[...o,...n.flatMap((u,d)=>p.has(u)?[]:[{code:"V-010",message:`Parameter "${u}" has no matching input field`,path:`actions.${e}.params.${d}`}])]}function Je(e,r,t=[]){if(e.kind==="ref"){if(t.includes(e.name))return null;let n=r[e.name];return n?Je(n.definition,r,[...t,e.name]):null}if(e.kind==="union"){let n=e.types.filter(o=>!Ia(o,r,t));return n.length===1?Je(n[0],r,t):null}return e.kind==="object"?Object.keys(e.fields):null}function Ia(e,r,t=[]){let n=L(e,r,t);return n?n.kind==="primitive"&&n.type==="null"||n.kind==="literal"&&n.value===null:!1}function ee(e,r,t,n=[]){let o=[];if(e.kind==="ref"){if(n.includes(e.name))return o.push({code:"V-010",message:`Cyclic type reference "${e.name}" in typing seam`,path:t}),o;let a=r[e.name];return!a||!L(e,r)?(o.push({code:"V-010",message:`Unknown type reference "${e.name}" in typing seam`,path:t}),o):(o.push(...ee(a.definition,r,t,[...n,e.name])),o)}switch(e.kind){case"array":return ee(e.element,r,`${t}.element`,n);case"record":{let a=[...ee(e.key,r,`${t}.key`,n),...ee(e.value,r,`${t}.value`,n)],s=L(e.key,r);return s&&(s.kind!=="primitive"||s.type!=="string")&&a.push({code:"V-010",message:"Record typing seams require string keys",path:`${t}.key`}),a}case"object":for(let[a,s]of Object.entries(e.fields))o.push(...ee(s.type,r,`${t}.fields.${a}.type`,n));return o;case"union":for(let[a,s]of e.types.entries())o.push(...ee(s,r,`${t}.types.${a}`,n));return o;default:return o}}function Da(e,r){let t=[],n=e.state,o=(a,s,p)=>{if(!a.required&&a.default===void 0&&t.push({code:"SCHEMA_ERROR",message:"Optional fields must define a default value",path:s}),a.default!==void 0){if(p){let u=$(a.default,p,e.types);u.ok||t.push({code:"V-009",message:`Default value type mismatch: ${u.message}`,path:s})}else if(a.default===null&&a.required!==!1)t.push({code:"V-009",message:`Default value 'null' is not compatible with required field type '${typeof a.type=="string"?a.type:"enum"}'`,path:s});else if(a.default!==null){let u=Y(a.default,a);u.ok||t.push({code:"V-009",message:`Default value type mismatch: ${u.message}`,path:s})}}if(a.type==="object"&&a.fields)for(let[u,d]of Object.entries(a.fields)){let h=p?ve(p,e.types,[{kind:"prop",name:u}]):null;o(d,`${s}.${u}`,h??void 0)}if(a.type==="array"&&a.items){let u=p?ve(p,e.types,[{kind:"index",index:0}]):null;o(a.items,`${s}[]`,u??void 0)}};for(let[a,s]of Object.entries(n.fields))o(s,`${r}.${a}`,n.fieldTypes?.[a]);return t}function Oa(e){let r=[];for(let[t,n]of Object.entries(e.computed.fields))for(let o of n.deps)de(e.computed,o)||fe(e.state,o,e.types)||r.push({code:"V-001",message:`Unknown dependency path: ${o}`,path:`computed.fields.${t}`});return r}function $a(e){let r=[];for(let[t,n]of Object.entries(e.computed.fields)){let a=G(n.expr).filter(s=>s.startsWith("$")||de(e.computed,s)?!1:s.startsWith("input.")||s.startsWith("system.")?!0:!fe(e.state,s,e.types));for(let s of a)r.push({code:"V-003",message:`Unknown path in computed expression: ${s}`,path:`computed.fields.${t}`})}return r}function Va(e){let r=[];for(let[t,n]of Object.entries(e.computed.fields)){let o=G(n.expr),a=new Set(n.deps),s=new Set(o.filter(p=>p.startsWith("$")||p==="input"||p.startsWith("input.")||p==="system"||p.startsWith("system.")||p==="meta"||p.startsWith("meta.")?!1:de(e.computed,p)?!0:fe(e.state,p,e.types)));for(let p of s)a.has(p)||r.push({code:"V-001",message:`Missing dependency for computed expression path: ${p}`,path:`computed.fields.${t}`})}return r}function qa(e){let r=[];for(let[t,n]of Object.entries(e.actions)){let o=[...xt(n.flow),...n.available?G(n.available):[],...n.dispatchable?G(n.dispatchable):[]];for(let a of o)if(!a.startsWith("$")){if(a==="input"||a.startsWith("input.")){if(n.inputType){let s=a==="input"?"":a.slice(6);ct(n.inputType,e.types,s)||r.push({code:"V-003",message:`Unknown input path: ${a}`,path:`actions.${t}`})}else if(n.input){let s=a==="input"?"":a.slice(6);Ue(n.input,s)||r.push({code:"V-003",message:`Unknown input path: ${a}`,path:`actions.${t}`})}continue}de(e.computed,a)||a.startsWith("system.")||a==="meta"||a.startsWith("meta.")||fe(e.state,a,e.types)||r.push({code:"V-003",message:`Unknown state path: ${a}`,path:`actions.${t}`})}}return r}function Mt(e,r,t){let n=te(r.meta.timestamp);return Ut(e,r,t,n)}function Ut(e,r,t,n){if(e.computed.fields[t]!==void 0)return Ma(e,r,t,n);if(t.startsWith("system.")){let a=V(r.system,t.slice(7));return{value:a,trace:g(n,"expr",t,{path:t},a,[]),deps:[]}}if(t.startsWith("input.")||t==="input"){let a=t==="input"?r.input:V(r.input,t.slice(6));return{value:a,trace:g(n,"expr",t,{path:t},a,[]),deps:[]}}let o=V(r.data,t);return{value:o,trace:g(n,"expr",t,{path:t},o,[]),deps:[]}}function Ma(e,r,t,n){let o=e.computed.fields[t];if(!o){let d=r.computed[t];return{value:d,trace:g(n,"computed",t,{path:t},d,[]),deps:[]}}let a=U(r,e,null,t,void 0,n),s=f(o.expr,a),p=ie(s)?s.value:null,u=o.deps.map(d=>Ut(e,r,d,n).trace);return{value:p,trace:g(n,"computed",t,{expr:o.expr},p,u),deps:o.deps}}function Ap(e){let r={};for(let[t,n]of Object.entries(e.fields))n.default!==void 0&&(r[t]=n.default);return r}import{z as ne}from"zod";var Pp=ne.object({now:ne.number(),randomSeed:ne.string(),env:ne.record(ne.string(),ne.unknown()).optional(),durationMs:ne.number().optional()});function sl(e,r,t){return{data:e,computed:{},system:Ot(),input:void 0,meta:{version:0,timestamp:t.now,randomSeed:t.randomSeed,schemaHash:r}}}function pl(e,r,t){return t===void 0&&typeof r=="string"?{type:e,input:void 0,intentId:r}:t===void 0?{type:e,input:r,intentId:""}:{type:e,input:r,intentId:t}}function xl(){return{compute:vt,computeSync:We,apply:At,applySystemDelta:je,validate:qt,explain:Mt,isActionAvailable:kt,getAvailableActions:bt,isIntentDispatchable:St}}export{xo as AbsExpr,It as ActionSpec,po as AddExpr,oo as AndExpr,Go as AppendExpr,qo as AtExpr,ba as CallFlow,go as CeilExpr,ca as CoalesceExpr,cp as ComputeResult,ja as ComputeStatus,ya as ComputedFieldSpec,Pt as ComputedSpec,wo as ConcatExpr,Za as CoreErrorCode,co as DivExpr,Dt as DomainSchema,Sa as EffectFlow,Fo as EndsWithExpr,na as EntriesExpr,Kn as EnumFieldType,Xn as EqExpr,Be as ErrorValue,Bo as EveryExpr,dp as ExplainResult,Rs as ExprKind,c as ExprNodeSchema,Na as FailFlow,ea as FieldExpr,me as FieldSpec,Gn as FieldType,_o as FilterExpr,Wo as FindExpr,Mo as FirstExpr,Xo as FlatExpr,Eo as FloorExpr,Zs as FlowKind,he as FlowNodeSchema,wa as FlowPosition,pa as FromEntriesExpr,Jn as GetExpr,eo as GtExpr,to as GteExpr,va as HaltFlow,aa as HasKeyExpr,Pp as HostContext,so as IfExpr,ga as IfFlow,Lo as IncludesExpr,Do as IndexOfExpr,Ps as Intent,ua as IsNullExpr,ta as KeysExpr,Uo as LastExpr,Vo as LenExpr,Yn as LitExpr,ro as LtExpr,no as LteExpr,Ho as MapExpr,Ro as MaxArrayExpr,yo as MaxExpr,oa as MergeExpr,No as MinArrayExpr,mo as MinExpr,fo as ModExpr,uo as MulExpr,ho as NegExpr,Qn as NeqExpr,io as NotExpr,Qo as ObjectExpr,sa as OmitExpr,ao as OrExpr,Ft as Patch,ka as PatchFlow,ha as PatchOp,xe as PatchPath,xa as PatchSegment,ia as PickExpr,bo as PowExpr,Bn as PrimitiveFieldType,Oo as ReplaceExpr,Ke as Requirement,yi as Result,Yo as ReverseExpr,ko as RoundExpr,Ra as SchemaMeta,W as SemanticPath,Ea as SeqFlow,Zo as SliceExpr,op as Snapshot,Ta as SnapshotMeta,Ko as SomeExpr,$o as SplitExpr,So as SqrtExpr,Po as StartsWithExpr,Ct as StateSpec,Io as StrIncludesExpr,Co as StrLenExpr,lo as SubExpr,To as SubstringExpr,vo as SumArrayExpr,Aa as SystemDelta,Ge as SystemState,ma as ToBooleanExpr,Ao as ToLowerCaseExpr,da as ToNumberExpr,fa as ToStringExpr,zo as ToUpperCaseExpr,ot as TraceGraph,ue as TraceNode,Xt as TraceNodeKind,Qt as TraceTermination,jo as TrimExpr,_ as TypeDefinition,zt as TypeSpec,la as TypeofExpr,Jo as UniqueExpr,za as ValidationError,fp as ValidationResult,ra as ValuesExpr,At as apply,je as applySystemDelta,we as buildDependencyGraph,Ba as canonicalEqual,oe as compareUnicodeCodePoints,vt as compute,We as computeSync,U as createContext,xl as createCore,v as createError,ht as createFlowState,Ot as createInitialSystemState,pl as createIntent,sl as createSnapshot,te as createTraceContext,g as createTraceNode,gt as detectCycles,re as err,pe as evaluateComputed,f as evaluateExpr,$i as evaluateFlow,se as evaluateFlowSync,Ki as evaluateSingleComputed,Mt as explain,Ap as extractDefaults,Wa as fromCanonical,Xa as generateRequirementId,rt as generateRequirementIdSync,nt as generateTraceId,bt as getAvailableActions,nr as getByPatchPath,V as getByPath,Mi as getTransitiveDeps,pi as hasPath,Jt as hashSchema,Ya as hashSchemaEffective,Ja as hashSchemaEffectiveSync,Oe as hashSchemaSync,Is as indexSegment,Ye as invalidResult,kt as isActionAvailable,Z as isErr,La as isErrorValue,St as isIntentDispatchable,ie as isOk,lt as isSafePatchPath,ai as joinPath,ui as lastSegment,be as mergeAtPatchPath,si as mergeAtPath,$s as mergePatch,l as ok,li as parentPath,D as parsePath,ke as patchPathToDisplayString,Fs as propSegment,pt as semanticPathToPatchPath,ce as setByPatchPath,er as setByPath,Ds as setPatch,et as sha256,tt as sha256Sync,Ie as sortKeys,le as toCanonical,Ha as toJcs,Te as topologicalSort,Se as unsetByPatchPath,ii as unsetByPath,Os as unsetPatch,$t as validResult,qt as validate,Nt as validateIntentInput,X as withCollectionContext,ge as withNodePath,$e as withSnapshot};
1
+ import{z as sr}from"zod";var Ai=sr.enum(["VALIDATION_ERROR","INVALID_PATCH_PATH","PATH_NOT_FOUND","TYPE_MISMATCH","DIVISION_BY_ZERO","INDEX_OUT_OF_BOUNDS","UNKNOWN_ACTION","ACTION_UNAVAILABLE","INVALID_INPUT","INVALID_VALUE","INVALID_CONTEXT","CYCLIC_DEPENDENCY","UNKNOWN_FLOW","CYCLIC_CALL","UNKNOWN_EFFECT","INTERNAL_ERROR"]);function x(e,t,r,n,o,a){return{code:e,message:t,source:{actionId:r,nodePath:n},timestamp:o,context:a}}function wi(e){if(typeof e!="object"||e===null)return!1;let t=e;return typeof t.code=="string"&&typeof t.message=="string"&&typeof t.source=="object"&&t.source!==null&&typeof t.source.actionId=="string"&&typeof t.source.nodePath=="string"&&typeof t.timestamp=="number"}import{z as j}from"zod";function Ze(e){if(e==null)return e;if(Array.isArray(e))return e.map(Ze);if(typeof e=="object"){let t={},r=Object.keys(e).sort();for(let n of r){let o=e[n];o!==void 0&&(t[n]=Ze(o))}return t}return e}function te(e){let t=Ze(e);return JSON.stringify(t)}function Ri(e){return He(e)}function He(e){if(e===null)return"null";switch(typeof e){case"string":return JSON.stringify(e);case"number":return Number.isFinite(e)?JSON.stringify(e):"null";case"boolean":return e?"true":"false";case"undefined":return"null";case"object":return Array.isArray(e)?lr(e):cr(e);default:return"null"}}function lr(e){return`[${e.map(r=>r===void 0||typeof r=="function"||typeof r=="symbol"?"null":He(r)).join(",")}]`}function cr(e){let t=Object.keys(e).sort(ue),r=[];for(let n of t){let o=e[n];o===void 0||typeof o=="function"||typeof o=="symbol"||r.push(`${JSON.stringify(n)}:${He(o)}`)}return`{${r.join(",")}}`}function ue(e,t){let r=Array.from(e),n=Array.from(t),o=Math.min(r.length,n.length);for(let a=0;a<o;a++){let i=r[a].codePointAt(0)??0,l=n[a].codePointAt(0)??0;if(i!==l)return i-l}return r.length-n.length}function ji(e){return JSON.parse(e)}function Ci(e,t){return te(e)===te(t)}function mt(e,t){if(t==="effective")return e;let r=e.state?.fields??{},n=Object.entries(r).filter(([o])=>!o.startsWith("$"));return n.length===Object.keys(r).length?e:{...e,state:{...e.state,fields:Object.fromEntries(n)}}}async function yt(e){let t=new TextEncoder().encode(e),r=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(r)).map(o=>o.toString(16).padStart(2,"0")).join("")}var ur=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),pr=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);function Z(e,t){return e>>>t|e<<32-t}function fr(e){let t=e.length*8,r=e.length+1,n=r%64<=56?56-r%64:120-r%64,o=r+n+8,a=new Uint8Array(o);a.set(e),a[e.length]=128;let i=Math.floor(t/4294967296),l=t>>>0;a[o-8]=i>>>24&255,a[o-7]=i>>>16&255,a[o-6]=i>>>8&255,a[o-5]=i&255,a[o-4]=l>>>24&255,a[o-3]=l>>>16&255,a[o-2]=l>>>8&255,a[o-1]=l&255;let c=new Uint32Array(pr),d=new DataView(a.buffer);for(let y=0;y<a.length;y+=64){let S=new Uint32Array(64);for(let v=0;v<16;v++)S[v]=d.getUint32(y+v*4);for(let v=16;v<64;v++){let Me=Z(S[v-15],7)^Z(S[v-15],18)^S[v-15]>>>3,Le=Z(S[v-2],17)^Z(S[v-2],19)^S[v-2]>>>10;S[v]=S[v-16]+Me+S[v-7]+Le>>>0}let A=c[0],_=c[1],T=c[2],D=c[3],O=c[4],U=c[5],M=c[6],he=c[7];for(let v=0;v<64;v++){let Me=Z(O,6)^Z(O,11)^Z(O,25),Le=O&U^~O&M,dt=he+Me+Le+ur[v]+S[v]>>>0,or=Z(A,2)^Z(A,13)^Z(A,22),ar=A&_^A&T^_&T,ir=or+ar>>>0;he=M,M=U,U=O,O=D+dt>>>0,D=T,T=_,_=A,A=dt+ir>>>0}c[0]=c[0]+A>>>0,c[1]=c[1]+_>>>0,c[2]=c[2]+T>>>0,c[3]=c[3]+D>>>0,c[4]=c[4]+O>>>0,c[5]=c[5]+U>>>0,c[6]=c[6]+M>>>0,c[7]=c[7]+he>>>0}let m=new Uint8Array(32),b=new DataView(m.buffer);for(let y=0;y<c.length;y++)b.setUint32(y*4,c[y]);return m}function we(e){let t=new TextEncoder().encode(e),r=fr(t),n="";for(let o of r)n+=o.toString(16).padStart(2,"0");return n}async function dr(e,t="semantic"){let r=te(mt(e,t));return yt(r)}function We(e,t="semantic"){let r=te(mt(e,t));return we(r)}async function Ii(e){return dr(e,"effective")}function $i(e){return We(e,"effective")}async function Fi(e,t,r,n){let o=`${e}:${t}:${r}:${n}`;return`req-${(await yt(o)).slice(0,16)}`}function xt(e,t,r,n){let o=`${e}:${t}:${r}:${n}`;return`req-${we(o).slice(0,16)}`}function ht(e=0){return`trace-${e}`}var mr=j.enum(["expr","computed","flow","patch","namespaceRead","namespaceDelta","effect","branch","call","halt","error"]),Ee=j.lazy(()=>j.object({id:j.string(),kind:mr,sourcePath:j.string(),inputs:j.record(j.string(),j.unknown()),output:j.unknown(),children:j.array(Ee),timestamp:j.number()})),yr=j.enum(["complete","effect","halt","error"]),Et=j.object({root:Ee,nodes:j.record(j.string(),Ee),intent:j.object({type:j.string(),input:j.unknown()}),baseVersion:j.number(),resultVersion:j.number(),duration:j.number(),terminatedBy:yr});function oe(e){let t=0;return{timestamp:e,nextId:()=>ht(t++)}}function E(e,t,r,n,o,a=[]){return{id:e.nextId(),kind:t,sourcePath:r,inputs:n,output:o,children:a,timestamp:e.timestamp}}function H(e,t,r,n,o,a,i={}){return{snapshot:e,schema:t,currentAction:r,nodePath:n,intentId:o,context:i.context,phase:i.phase??(i.context?"flow":"snapshot"),runtimeOrdinal:0,runtimeAllocator:{ordinal:0},trace:typeof a=="object"?a:oe(a),collectionStack:[]}}function re(e,t,r,n){return{...e,$item:t,$index:r,$array:n,collectionStack:[...e.collectionStack??[],r]}}function ge(e,t){return{...e,snapshot:t}}function ae(e,t){return{...e,nodePath:t}}function V(e){if(!e)return[];let t=[],r="",n=!1;for(let o of e){if(n){o==="."||o==="\\"?r+=o:r+=`\\${o}`,n=!1;continue}if(o==="\\"){n=!0;continue}if(o==="."){t.push(r),r="";continue}r+=o}return n&&(r+="\\"),t.push(r),t}function gt(e){return e.replaceAll("\\","\\\\").replaceAll(".","\\.")}function Mi(...e){return e.filter(Boolean).map(gt).join(".")}function W(e,t){if(!t)return e;let r=V(t),n=e;for(let o of r){if(n==null)return;if(typeof n=="object")n=n[o];else return}return n}function xr(e,t,r){if(!t)return r;let n=V(t);return kt(e,n,r)}function kt(e,t,r){if(t.length===0)return r;let[n,...o]=t,a=e!==null&&typeof e=="object"?e:{};if(o.length===0)return{...a,[n]:r};let i=a[n];return{...a,[n]:kt(i,o,r)}}function Li(e,t){if(!t)return;let r=V(t);return bt(e,r)}function bt(e,t){if(t.length===0||e===null||typeof e!="object")return e;let[r,...n]=t,o=e;if(n.length===0){let{[r]:i,...l}=o;return l}let a=o[r];return{...o,[r]:bt(a,n)}}function Zi(e,t,r){let n=W(e,t),o=n!==null&&typeof n=="object"?{...n,...r}:r;return xr(e,t,o)}function Hi(e,t){if(!t)return e!==void 0;let r=V(t),n=e;for(let o of r){if(n==null||typeof n!="object"||!(o in n))return!1;n=n[o]}return!0}function Wi(e){let t=V(e);return hr(...t.slice(0,-1))}function Gi(e){let t=V(e);return t[t.length-1]??""}function hr(...e){return e.map(gt).join(".")}var Er=new Set(["__proto__","constructor","prototype"]);function ie(e){let t="";for(let r=0;r<e.length;r++){let n=e[r];if(n.kind==="prop"){t+=r===0?n.name:`.${n.name}`;continue}t+=`[${n.index}]`}return t}function St(e){let t=V(e);if(t.length===0)return[{kind:"prop",name:e}];let r=[];for(let n of t){let o=kr(n);if(o){r.push(...o);continue}r.push({kind:"prop",name:n})}return r.length>0?r:[{kind:"prop",name:e}]}function ke(e){return e.every(t=>t.kind!=="prop"||!Er.has(t.name))}function gr(e,t){let r=e;for(let n of t){if(n.kind==="prop"){if(r===null||typeof r!="object"||Array.isArray(r))return;r=r[n.name];continue}if(!Array.isArray(r))return;r=r[n.index]}return r}function be(e,t,r){return Ge(e,t,r)}function Te(e,t){return Ke(e,t)}function Re(e,t,r){let n=gr(e,t),o=Be(n)?{...n,...r}:r;return be(e,t,o)}function Ge(e,t,r){if(t.length===0)return r;let[n,...o]=t;if(n.kind==="prop"){let i=Be(e)?e:{},l=Ge(i[n.name],o,r);return{...i,[n.name]:l}}let a=Array.isArray(e)?[...e]:[];return a[n.index]=Ge(a[n.index],o,r),a}function Ke(e,t){if(t.length===0)return e;let[r,...n]=t;if(r.kind==="prop"){if(!Be(e))return e;if(n.length===0){let{[r.name]:a,...i}=e;return i}return{...e,[r.name]:Ke(e[r.name],n)}}if(!Array.isArray(e))return e;let o=[...e];return n.length===0?(r.index>=0&&r.index<o.length&&delete o[r.index],o):(o[r.index]=Ke(o[r.index],n),o)}function Be(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function kr(e){if(!e.includes("[")||e.includes("\\[")||e.includes("\\]"))return null;let t=[],r=0,n=!1;for(;r<e.length;){let o=e.indexOf("[",r);if(o===-1){let c=e.slice(r);if(c.length===0)break;if(n)return null;t.push({kind:"prop",name:c});break}let a=e.slice(r,o);if(a.length>0){if(n)return null;t.push({kind:"prop",name:a})}let i=e.indexOf("]",o+1);if(i===-1)return null;let l=e.slice(o+1,i);if(!/^[0-9]+$/.test(l))return null;t.push({kind:"index",index:Number(l)}),n=!0,r=i+1}return t.length>0?t:null}import{z as pe}from"zod";var Y=pe.string().min(1),Xi=(e,t)=>pe.discriminatedUnion("ok",[pe.object({ok:pe.literal(!0),value:e}),pe.object({ok:pe.literal(!1),error:t})]),u=e=>({ok:!0,value:e}),$=e=>({ok:!1,error:e}),fe=e=>e.ok,G=e=>!e.ok;function br(e){return/^\d+$/.test(e)}function Sr(e,t){let r=K(e,t);return r?r.kind==="primitive"&&r.type==="null"||r.kind==="literal"&&r.value===null:!1}function vt(e,t){let r=K(e,t);if(!r)return null;if(r.kind!=="union")return r;let n=r.types.filter(a=>!Sr(a,t));return n.length!==r.types.length?n.length!==1?null:K(n[0],t):r}function K(e,t,r=[]){if(e.kind!=="ref")return e;if(r.includes(e.name))return null;let n=t[e.name];return n?K(n.definition,t,[...r,e.name]):null}function Nt(e,t,r){return r?wt(e,t,V(r))!==null:!0}function At(e,t,r){return wt(e,t,r)!==null}function wt(e,t,r){let n=e;for(let o of r){if(!n)return null;let a=vt(n,t);if(!a)return null;switch(a.kind){case"object":n=a.fields[o]?.type??null;break;case"record":n=a.value;break;case"array":if(!br(o))return null;n=a.element;break;case"primitive":return null;default:return null}}return n}function je(e,t,r){let n=e;for(let o of r){if(!n)return null;let a=vt(n,t);if(!a)return null;switch(a.kind){case"object":if(o.kind!=="prop")return null;n=a.fields[o.name]?.type??null;break;case"record":if(o.kind!=="prop")return null;n=a.value;break;case"array":if(o.kind!=="index")return null;n=a.element;break;case"primitive":return null;default:return null}}return n}function Ce(e,t,r){if(!e.fieldTypes||r.length===0)return null;let[n,...o]=r;if(!n||n.kind!=="prop"||!(n.name in e.fields))return null;let a=e.fieldTypes[n.name];return a?o.length===0?a:je(a,t,o):null}function F(e,t,r,n){if(e===void 0)return n?.allowUndefined?{ok:!0}:{ok:!1,message:"Value is required"};let o=K(t,r);if(!o)return{ok:!1,message:"Unknown type reference"};if(o.kind==="union")return o.types.map(i=>F(e,i,r,n)).find(i=>i.ok)??{ok:!1,message:"Value does not match any union branch"};switch(o.kind){case"primitive":switch(o.type){case"null":return e===null?{ok:!0}:{ok:!1,message:"Expected null"};case"string":return typeof e=="string"?{ok:!0}:{ok:!1,message:"Expected string"};case"number":return typeof e=="number"&&Number.isFinite(e)?{ok:!0}:{ok:!1,message:"Expected number"};case"boolean":return typeof e=="boolean"?{ok:!0}:{ok:!1,message:"Expected boolean"};case"object":return e!==null&&!Array.isArray(e)&&typeof e=="object"?{ok:!0}:{ok:!1,message:"Expected object"};case"array":return Array.isArray(e)?{ok:!0}:{ok:!1,message:"Expected array"};default:return{ok:!1,message:`Unsupported primitive type: ${o.type}`}}case"literal":return Object.is(e,o.value)?{ok:!0}:{ok:!1,message:`Expected literal ${JSON.stringify(o.value)}`};case"array":if(!Array.isArray(e))return{ok:!1,message:"Expected array"};for(let a of e){let i=F(a,o.element,r,{allowUndefined:!1});if(!i.ok)return i}return{ok:!0};case"object":return e===null||Array.isArray(e)||typeof e!="object"?{ok:!1,message:"Expected object"}:vr(e,o.fields,r,n?.allowPartial??!1,n?.allowUndefined??!1);case"record":{if(e===null||Array.isArray(e)||typeof e!="object")return{ok:!1,message:"Expected object"};let a=K(o.key,r);if(!a||a.kind!=="primitive"||a.type!=="string")return{ok:!1,message:"Record keys must be strings"};for(let i of Object.values(e)){let l=F(i,o.value,r,{allowUndefined:!1});if(!l.ok)return l}return{ok:!0}}case"ref":return{ok:!1,message:"Unresolved type reference"}}}function vr(e,t,r,n,o){let a=new Set(Object.keys(t));for(let i of Object.keys(e))if(!a.has(i))return{ok:!1,message:`Unknown field: ${i}`};for(let[i,l]of Object.entries(t)){if(!(i in e)){if(!n&&!l.optional)return{ok:!1,message:`Missing required field: ${i}`};continue}let c=F(e[i],l.type,r,{allowPartial:n,allowUndefined:o});if(!c.ok)return c}return{ok:!0}}var Nr=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/,Ar=/^[a-zA-Z][a-zA-Z0-9+.-]*:/,wr=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function Tt(e){return Ar.test(e)||wr.test(e)}function Rt(e){return Nr.test(e)}function L(e){let t=[],r=n=>{switch(n.kind){case"lit":return;case"get":t.push(n.path);return;case"eq":case"neq":case"gt":case"gte":case"lt":case"lte":case"add":case"sub":case"mul":case"div":case"mod":r(n.left),r(n.right);return;case"pow":r(n.base),r(n.exponent);return;case"and":case"or":case"concat":case"coalesce":case"min":case"max":n.args.forEach(r);return;case"not":case"typeof":case"isNull":case"len":case"abs":case"neg":case"floor":case"ceil":case"round":case"sqrt":case"toString":case"toNumber":case"toBoolean":r(n.arg);return;case"first":case"last":case"reverse":case"unique":case"flat":case"sumArray":case"minArray":case"maxArray":r(n.array);return;case"if":r(n.cond),r(n.then),r(n.else);return;case"substring":r(n.str),r(n.start),n.end&&r(n.end);return;case"trim":case"toLowerCase":case"toUpperCase":case"strLen":r(n.str);return;case"startsWith":r(n.str),r(n.prefix);return;case"endsWith":r(n.str),r(n.suffix);return;case"strIncludes":case"indexOf":r(n.str),r(n.search);return;case"replace":r(n.str),r(n.search),r(n.replacement);return;case"split":r(n.str),r(n.delimiter);return;case"at":r(n.array),r(n.index);return;case"slice":r(n.array),r(n.start),n.end&&r(n.end);return;case"includes":r(n.array),r(n.item);return;case"filter":case"find":case"every":case"some":r(n.array),r(n.predicate);return;case"map":r(n.array),r(n.mapper);return;case"append":r(n.array),n.items.forEach(r);return;case"object":Object.values(n.fields).forEach(r);return;case"field":r(n.object);return;case"keys":case"values":case"entries":r(n.obj);return;case"merge":n.objects.forEach(r);return;case"hasKey":r(n.obj),r(n.key);return;case"pick":case"omit":r(n.obj),r(n.keys);return;case"fromEntries":r(n.entries);return}};return r(e),t}function jt(e){let t=[],r=n=>{switch(n.kind){case"seq":n.steps.forEach(r);return;case"if":t.push(...L(n.cond)),r(n.then),n.else&&r(n.else);return;case"patch":for(let o of n.path)o.kind==="expr"&&t.push(...L(o.expr));n.op!=="unset"&&n.value&&t.push(...L(n.value));return;case"causalGuard":r(n.body);return;case"effect":Object.values(n.params).forEach(o=>{t.push(...L(o))});return;case"fail":n.message&&t.push(...L(n.message));return;case"call":case"halt":return}};return r(e),t}function ne(e,t,r={}){if(e.fieldTypes){if(!t)return!0;let n=V(t),[o,...a]=n;if(!o)return!0;if(!(o in e.fields))return!1;let i=e.fieldTypes[o];if(i&&(a.length===0?!0:At(i,r,a)))return!0}return Je({type:"object",required:!0,fields:e.fields},t)}function Se(e,t){return Object.prototype.hasOwnProperty.call(e.fields,t)}function Je(e,t){if(!t)return!0;let r=V(t);if(r.length===0)return!0;let n=e;for(let o of r){if(!n)return!1;let a=n.type;if(a==="object"){if(!n.fields)return!0;if(!(o in n.fields))return!1;n=n.fields[o];continue}if(a==="array"){if(!Rr(o))return!1;n=n.items??null;continue}return!1}return!0}function B(e,t,r){if(e===void 0)return r?.allowUndefined&&t.required===!1?{ok:!0}:{ok:!1,message:"Value is required"};if(e===null)return{ok:!0};let n=t.type;if(typeof n=="object"&&"enum"in n)return n.enum.some(o=>Object.is(o,e))?{ok:!0}:{ok:!1,message:"Value is not in enum"};switch(n){case"null":return e===null?{ok:!0}:{ok:!1,message:"Expected null"};case"string":return typeof e=="string"?{ok:!0}:{ok:!1,message:"Expected string"};case"number":return typeof e=="number"&&Number.isFinite(e)?{ok:!0}:{ok:!1,message:"Expected number"};case"boolean":return typeof e=="boolean"?{ok:!0}:{ok:!1,message:"Expected boolean"};case"object":return e===null||Array.isArray(e)||typeof e!="object"?{ok:!1,message:"Expected object"}:Tr(e,t,r?.allowPartial??!1,r?.allowUndefined??!1);case"array":if(!Array.isArray(e))return{ok:!1,message:"Expected array"};if(!t.items)return{ok:!0};for(let o of e){let a=B(o,t.items,{allowUndefined:!1});if(!a.ok)return a}return{ok:!0}}}function Tr(e,t,r,n){if(!t.fields)return{ok:!0};let o=Object.entries(t.fields),a=new Set(o.map(([i])=>i));for(let i of Object.keys(e)){if(!a.has(i))return{ok:!1,message:`Unknown field: ${i}`};let l=t.fields[i],c=B(e[i],l,{allowPartial:r,allowUndefined:n});if(!c.ok)return c}if(!r){for(let[i,l]of o)if(l.required&&!(i in e))return{ok:!1,message:`Missing required field: ${i}`}}return{ok:!0}}function ze(e,t){if(t.length===0)return e;let r=e;for(let n of t){if(!r)return null;let o=r.type;if(o==="object"){if(n.kind!=="prop"||!r.fields||!(n.name in r.fields))return null;r=r.fields[n.name];continue}if(o==="array"){if(n.kind!=="index")return null;r=r.items??null;continue}return null}return r}function Rr(e){return/^[0-9]+$/.test(e)}function f(e,t){switch(e.kind){case"lit":return u(e.value);case"get":return jr(e.path,t);case"eq":return X(e.left,e.right,t,(r,n)=>r===n);case"neq":return X(e.left,e.right,t,(r,n)=>r!==n);case"gt":return X(e.left,e.right,t,(r,n)=>g(r)>g(n));case"gte":return X(e.left,e.right,t,(r,n)=>g(r)>=g(n));case"lt":return X(e.left,e.right,t,(r,n)=>g(r)<g(n));case"lte":return X(e.left,e.right,t,(r,n)=>g(r)<=g(n));case"and":return Fr(e.args,t);case"or":return Dr(e.args,t);case"not":return Or(e.arg,t);case"if":return Vr(e,t);case"add":return X(e.left,e.right,t,(r,n)=>g(r)+g(n));case"sub":return X(e.left,e.right,t,(r,n)=>g(r)-g(n));case"mul":return X(e.left,e.right,t,(r,n)=>g(r)*g(n));case"div":return qr(e.left,e.right,t);case"mod":return Ur(e.left,e.right,t);case"min":return _r(e.args,t);case"max":return Mr(e.args,t);case"abs":return Lr(e.arg,t);case"neg":return Zr(e.arg,t);case"floor":return xn(e.arg,t);case"ceil":return hn(e.arg,t);case"round":return En(e.arg,t);case"sqrt":return gn(e.arg,t);case"pow":return kn(e.base,e.exponent,t);case"sumArray":return bn(e.array,t);case"minArray":return Sn(e.array,t);case"maxArray":return vn(e.array,t);case"concat":return Hr(e.args,t);case"substring":return Wr(e,t);case"trim":return Gr(e.str,t);case"toLowerCase":return Nn(e.str,t);case"toUpperCase":return An(e.str,t);case"strLen":return wn(e.str,t);case"startsWith":return Tn(e.str,e.prefix,t);case"endsWith":return Rn(e.str,e.suffix,t);case"strIncludes":return jn(e.str,e.search,t);case"indexOf":return Cn(e.str,e.search,t);case"replace":return zn(e.str,e.search,e.replacement,t);case"split":return Pn(e.str,e.delimiter,t);case"len":return Kr(e.arg,t);case"at":return Br(e.array,e.index,t);case"first":return Jr(e.array,t);case"last":return Yr(e.array,t);case"slice":return Xr(e,t);case"includes":return Qr(e.array,e.item,t);case"filter":return en(e.array,e.predicate,t);case"map":return tn(e.array,e.mapper,t);case"find":return rn(e.array,e.predicate,t);case"every":return nn(e.array,e.predicate,t);case"some":return on(e.array,e.predicate,t);case"append":return an(e.array,e.items,t);case"reverse":return In(e.array,t);case"unique":return $n(e.array,t);case"flat":return Fn(e.array,t);case"object":return sn(e.fields,t);case"field":return ln(e.object,e.property,t);case"keys":return cn(e.obj,t);case"values":return un(e.obj,t);case"entries":return pn(e.obj,t);case"merge":return fn(e.objects,t);case"hasKey":return Dn(e.obj,e.key,t);case"pick":return On(e.obj,e.keys,t);case"omit":return Vn(e.obj,e.keys,t);case"fromEntries":return qn(e.entries,t);case"typeof":return dn(e.arg,t);case"isNull":return mn(e.arg,t);case"coalesce":return yn(e.args,t);case"toString":return Un(e.arg,t);case"toNumber":return _n(e.arg,t);case"toBoolean":return Mn(e.arg,t);default:return $(x("INTERNAL_ERROR",`Unknown expression kind: ${e.kind}`,t.currentAction??"",t.nodePath,t.trace.timestamp))}}function g(e){return typeof e=="number"?e:typeof e=="string"?parseFloat(e)||0:typeof e=="boolean"&&e?1:0}function Q(e){return e==null?!1:typeof e=="boolean"?e:typeof e=="number"?e!==0:typeof e=="string"?e.length>0:!0}function C(e){return e==null?"":typeof e=="string"?e:String(e)}function jr(e,t){let r=t.expressionPath;t.expressionPath=e;try{return Cr(e,t)}finally{t.expressionPath=r}}function Cr(e,t){if(e.startsWith("$item")){if(t.$item===void 0)return u(null);if(e==="$item")return u(t.$item);let r=e.slice(6);return u(se(W(t.$item,r)))}if(e==="$index")return u(t.$index);if(e==="$array")return u(t.$array);if(e==="$runtime"||e.startsWith("$runtime."))return zr(e,t);if(e==="$context"||e.startsWith("$context."))return Pr(e,t);if(e.startsWith("$"))return $(x("PATH_NOT_FOUND",`Unknown reserved expression path: ${e}`,t.currentAction??"",t.nodePath,t.trace.timestamp));if(e.startsWith("input.")||e==="input"){if(t.phase!=="flow"&&t.phase!=="dispatchability")return $(x("PATH_NOT_FOUND",`Input path is not available during ${t.phase} expression evaluation: ${e}`,t.currentAction??"",t.nodePath,t.trace.timestamp));let r=e==="input"?"":e.slice(6);return u(r?se(W(t.snapshot.input,r)):t.snapshot.input)}return Object.prototype.hasOwnProperty.call(t.schema.computed.fields,e)?u(se(t.snapshot.computed[e])):u(se(W(t.snapshot.state,e)))}function zr(e,t){if(t.phase!=="flow"||!t.context)return $(x("PATH_NOT_FOUND",`Runtime path is only available during bound action flow evaluation: ${e}`,t.currentAction??"",t.nodePath,t.trace.timestamp));switch(e){case"$runtime.intent.id":return u(se(t.intentId));case"$runtime.intent.action":return u(se(t.currentAction));case"$runtime.time.timestamp":return u(t.context.runtime.time.timestamp);case"$runtime.time.iso":return u(Ir(t.context.runtime.time.timestamp));case"$runtime.random.seed":return u(t.context.runtime.random.seed);case"$runtime.random.uuid":return u($r(t));default:return $(x("PATH_NOT_FOUND",`Unknown runtime path: ${e}`,t.currentAction??"",t.nodePath,t.trace.timestamp))}}function Pr(e,t){if(t.phase!=="flow"||!t.context)return $(x("PATH_NOT_FOUND",`Context path is only available during bound action flow evaluation: ${e}`,t.currentAction??"",t.nodePath,t.trace.timestamp));if(!t.schema.context)return $(x("PATH_NOT_FOUND",`Schema does not declare user context path: ${e}`,t.currentAction??"",t.nodePath,t.trace.timestamp));if(e==="$context")return u(t.context.external);let r=e.slice(9);return ne(t.schema.context,r,t.schema.types)?u(se(W(t.context.external,r))):$(x("PATH_NOT_FOUND",`Unknown user context path: ${e}`,t.currentAction??"",t.nodePath,t.trace.timestamp))}function Ir(e){if(!Number.isFinite(e))return null;let t=new Date(e);return Number.isFinite(t.getTime())?t.toISOString():null}function $r(e){let t=e.runtimeAllocator??{ordinal:e.runtimeOrdinal??0};e.runtimeAllocator=t;let r=t.ordinal;t.ordinal=r+1,e.runtimeOrdinal=t.ordinal;let n=te({nodePath:e.nodePath,expressionPath:e.expressionPath??"$runtime.random.uuid",collectionStack:e.collectionStack??[],ordinal:r}),o=te({runtimeSeed:e.context?.runtime.random.seed??"",intentId:e.intentId??"",allocationSite:n}),a=we(o).slice(0,32).padEnd(32,"0"),i=(Number.parseInt(a[16]??"0",16)&3|8).toString(16);return[a.slice(0,8),a.slice(8,12),`4${a.slice(13,16)}`,`${i}${a.slice(17,20)}`,a.slice(20,32)].join("-")}function se(e){return e===void 0?null:e}function X(e,t,r,n){let o=f(e,r);if(!o.ok)return o;let a=f(t,r);return a.ok?u(n(o.value,a.value)):a}function Fr(e,t){for(let r of e){let n=f(r,t);if(!n.ok)return n;if(!Q(n.value))return u(!1)}return u(!0)}function Dr(e,t){for(let r of e){let n=f(r,t);if(!n.ok)return n;if(Q(n.value))return u(!0)}return u(!1)}function Or(e,t){let r=f(e,t);return r.ok?u(!Q(r.value)):r}function Vr(e,t){let r=f(e.cond,t);return r.ok?f(Q(r.value)?e.then:e.else,t):r}function qr(e,t,r){let n=f(e,r);if(!n.ok)return n;let o=f(t,r);if(!o.ok)return o;let a=g(o.value);return a===0?u(null):u(g(n.value)/a)}function Ur(e,t,r){let n=f(e,r);if(!n.ok)return n;let o=f(t,r);if(!o.ok)return o;let a=g(o.value);return a===0?u(null):u(g(n.value)%a)}function _r(e,t){if(e.length===0)return u(null);let r=[];for(let n of e){let o=f(n,t);if(!o.ok)return o;r.push(g(o.value))}return u(Math.min(...r))}function Mr(e,t){if(e.length===0)return u(null);let r=[];for(let n of e){let o=f(n,t);if(!o.ok)return o;r.push(g(o.value))}return u(Math.max(...r))}function Lr(e,t){let r=f(e,t);return r.ok?u(Math.abs(g(r.value))):r}function Zr(e,t){let r=f(e,t);return r.ok?u(-g(r.value)):r}function Hr(e,t){let r=[];for(let a of e){let i=f(a,t);if(!i.ok)return i;r.push(i.value)}if(r.some(a=>Array.isArray(a))){let a=[];for(let i of r)Array.isArray(i)?a.push(...i):i!=null&&a.push(i);return u(a)}let o=r.map(a=>C(a));return u(o.join(""))}function Wr(e,t){let r=f(e.str,t);if(!r.ok)return r;let n=f(e.start,t);if(!n.ok)return n;let o=C(r.value),a=g(n.value);if(e.end){let i=f(e.end,t);return i.ok?u(o.substring(a,g(i.value))):i}return u(o.substring(a))}function Gr(e,t){let r=f(e,t);return r.ok?u(C(r.value).trim()):r}function Kr(e,t){let r=f(e,t);if(!r.ok)return r;let n=r.value;return Array.isArray(n)?u(n.length):typeof n=="string"?u(n.length):typeof n=="object"&&n!==null?u(Object.keys(n).length):u(0)}function Br(e,t,r){let n=f(e,r);if(!n.ok)return n;let o=f(t,r);if(!o.ok)return o;let a=n.value,i=o.value;if(Array.isArray(a)){let l=g(i);return l<0||l>=a.length?u(null):u(a[l])}return typeof a=="object"&&a!==null&&typeof i=="string"?u(a[i]??null):u(null)}function Jr(e,t){let r=f(e,t);if(!r.ok)return r;let n=r.value;return!Array.isArray(n)||n.length===0?u(null):u(n[0])}function Yr(e,t){let r=f(e,t);if(!r.ok)return r;let n=r.value;return!Array.isArray(n)||n.length===0?u(null):u(n[n.length-1])}function Xr(e,t){let r=f(e.array,t);if(!r.ok)return r;let n=f(e.start,t);if(!n.ok)return n;let o=r.value;if(!Array.isArray(o))return u([]);let a=g(n.value);if(e.end){let i=f(e.end,t);return i.ok?u(o.slice(a,g(i.value))):i}return u(o.slice(a))}function Qr(e,t,r){let n=f(e,r);if(!n.ok)return n;let o=f(t,r);if(!o.ok)return o;let a=n.value;return Array.isArray(a)?u(a.includes(o.value)):u(!1)}function en(e,t,r){let n=f(e,r);if(!n.ok)return n;let o=n.value;if(!Array.isArray(o))return u([]);let a=[];for(let i=0;i<o.length;i++){let l=re(r,o[i],i,o),c=f(t,l);if(!c.ok)return c;Q(c.value)&&a.push(o[i])}return u(a)}function tn(e,t,r){let n=f(e,r);if(!n.ok)return n;let o=n.value;if(!Array.isArray(o))return u([]);let a=[];for(let i=0;i<o.length;i++){let l=re(r,o[i],i,o),c=f(t,l);if(!c.ok)return c;a.push(c.value)}return u(a)}function rn(e,t,r){let n=f(e,r);if(!n.ok)return n;let o=n.value;if(!Array.isArray(o))return u(null);for(let a=0;a<o.length;a++){let i=re(r,o[a],a,o),l=f(t,i);if(!l.ok)return l;if(Q(l.value))return u(o[a])}return u(null)}function nn(e,t,r){let n=f(e,r);if(!n.ok)return n;let o=n.value;if(!Array.isArray(o))return u(!0);for(let a=0;a<o.length;a++){let i=re(r,o[a],a,o),l=f(t,i);if(!l.ok)return l;if(!Q(l.value))return u(!1)}return u(!0)}function on(e,t,r){let n=f(e,r);if(!n.ok)return n;let o=n.value;if(!Array.isArray(o))return u(!1);for(let a=0;a<o.length;a++){let i=re(r,o[a],a,o),l=f(t,i);if(!l.ok)return l;if(Q(l.value))return u(!0)}return u(!1)}function an(e,t,r){let n=f(e,r);if(!n.ok)return n;let o=n.value,a=Array.isArray(o)?[...o]:[];for(let i of t){let l=f(i,r);if(!l.ok)return l;a.push(l.value)}return u(a)}function sn(e,t){let r={};for(let n of Object.keys(e).sort(ue)){let o=e[n],a=f(o,t);if(!a.ok)return a;r[n]=a.value}return u(r)}function ln(e,t,r){let n=f(e,r);if(!n.ok)return n;let o=n.value;return typeof o!="object"||o===null||Array.isArray(o)?u(null):u(o[t]??null)}function cn(e,t){let r=f(e,t);if(!r.ok)return r;let n=r.value;return typeof n!="object"||n===null?u([]):u(Object.keys(n).sort(ue))}function un(e,t){let r=f(e,t);if(!r.ok)return r;let n=r.value;return typeof n!="object"||n===null?u([]):u(Object.keys(n).sort(ue).map(o=>n[o]))}function pn(e,t){let r=f(e,t);if(!r.ok)return r;let n=r.value;return typeof n!="object"||n===null?u([]):u(Object.keys(n).sort(ue).map(o=>[o,n[o]]))}function fn(e,t){let r={};for(let n of e){let o=f(n,t);if(!o.ok)return o;let a=o.value;typeof a=="object"&&a!==null&&!Array.isArray(a)&&Object.assign(r,a)}return u(r)}function dn(e,t){let r=f(e,t);if(!r.ok)return r;let n=r.value;return n===null?u("null"):Array.isArray(n)?u("array"):u(typeof n)}function mn(e,t){let r=f(e,t);return r.ok?u(r.value===null||r.value===void 0):r}function yn(e,t){for(let r of e){let n=f(r,t);if(!n.ok||n.value!==null&&n.value!==void 0)return n}return u(null)}function xn(e,t){let r=f(e,t);return r.ok?u(Math.floor(g(r.value))):r}function hn(e,t){let r=f(e,t);return r.ok?u(Math.ceil(g(r.value))):r}function En(e,t){let r=f(e,t);return r.ok?u(Math.round(g(r.value))):r}function gn(e,t){let r=f(e,t);if(!r.ok)return r;let n=g(r.value);return n<0?u(null):u(Math.sqrt(n))}function kn(e,t,r){let n=f(e,r);if(!n.ok)return n;let o=f(t,r);if(!o.ok)return o;let a=Math.pow(g(n.value),g(o.value));return Number.isFinite(a)?u(a):u(null)}function bn(e,t){let r=f(e,t);if(!r.ok)return r;let n=r.value;if(!Array.isArray(n))return u(0);let o=0;for(let a of n)o+=g(a);return u(o)}function Sn(e,t){let r=f(e,t);if(!r.ok)return r;let n=r.value;if(!Array.isArray(n)||n.length===0)return u(null);let o=g(n[0]);for(let a=1;a<n.length;a++){let i=g(n[a]);i<o&&(o=i)}return u(o)}function vn(e,t){let r=f(e,t);if(!r.ok)return r;let n=r.value;if(!Array.isArray(n)||n.length===0)return u(null);let o=g(n[0]);for(let a=1;a<n.length;a++){let i=g(n[a]);i>o&&(o=i)}return u(o)}function Nn(e,t){let r=f(e,t);return r.ok?u(C(r.value).toLowerCase()):r}function An(e,t){let r=f(e,t);return r.ok?u(C(r.value).toUpperCase()):r}function wn(e,t){let r=f(e,t);return r.ok?u(C(r.value).length):r}function Tn(e,t,r){let n=f(e,r);if(!n.ok)return n;let o=f(t,r);return o.ok?u(C(n.value).startsWith(C(o.value))):o}function Rn(e,t,r){let n=f(e,r);if(!n.ok)return n;let o=f(t,r);return o.ok?u(C(n.value).endsWith(C(o.value))):o}function jn(e,t,r){let n=f(e,r);if(!n.ok)return n;let o=f(t,r);return o.ok?u(C(n.value).includes(C(o.value))):o}function Cn(e,t,r){let n=f(e,r);if(!n.ok)return n;let o=f(t,r);return o.ok?u(C(n.value).indexOf(C(o.value))):o}function zn(e,t,r,n){let o=f(e,n);if(!o.ok)return o;let a=f(t,n);if(!a.ok)return a;let i=f(r,n);return i.ok?u(C(o.value).replace(C(a.value),C(i.value))):i}function Pn(e,t,r){let n=f(e,r);if(!n.ok)return n;let o=f(t,r);if(!o.ok)return o;let a=C(n.value).split(C(o.value));return u(a.length===0?[""]:a)}function In(e,t){let r=f(e,t);if(!r.ok)return r;let n=r.value;return Array.isArray(n)?u([...n].reverse()):u([])}function $n(e,t){let r=f(e,t);if(!r.ok)return r;let n=r.value;if(!Array.isArray(n))return u([]);let o=[],a=[];for(let i of n)o.some(l=>l===i)||(o.push(i),a.push(i));return u(a)}function Fn(e,t){let r=f(e,t);if(!r.ok)return r;let n=r.value;if(!Array.isArray(n))return u([]);let o=[];for(let a of n)Array.isArray(a)?o.push(...a):o.push(a);return u(o)}function Dn(e,t,r){let n=f(e,r);if(!n.ok)return n;let o=f(t,r);if(!o.ok)return o;let a=n.value;if(typeof a!="object"||a===null||Array.isArray(a))return u(!1);let i=o.value;return typeof i!="string"?u(!1):u(Object.prototype.hasOwnProperty.call(a,i))}function On(e,t,r){let n=f(e,r);if(!n.ok)return n;let o=f(t,r);if(!o.ok)return o;let a=n.value;if(typeof a!="object"||a===null||Array.isArray(a))return u({});let i=o.value;if(!Array.isArray(i))return u({});let l={};for(let c of i)typeof c=="string"&&Object.prototype.hasOwnProperty.call(a,c)&&(l[c]=a[c]);return u(l)}function Vn(e,t,r){let n=f(e,r);if(!n.ok)return n;let o=f(t,r);if(!o.ok)return o;let a=n.value;if(typeof a!="object"||a===null||Array.isArray(a))return u({});let i=o.value,l=new Set;if(Array.isArray(i))for(let d of i)typeof d=="string"&&l.add(d);let c={};for(let[d,m]of Object.entries(a))l.has(d)||(c[d]=m);return u(c)}function qn(e,t){let r=f(e,t);if(!r.ok)return r;let n=r.value;if(!Array.isArray(n))return u({});let o={};for(let a of n)Array.isArray(a)&&a.length===2&&typeof a[0]=="string"&&(o[a[0]]=a[1]);return u(o)}function Un(e,t){let r=f(e,t);return r.ok?u(C(r.value)):r}function _n(e,t){let r=f(e,t);return r.ok?u(g(r.value)):r}function Mn(e,t){let r=f(e,t);return r.ok?u(Q(r.value)):r}var Pe="core",Xe="causalGuards";function zt(e){return{snapshot:e,status:"running",patches:[],namespaceDelta:[],requirements:[],error:null}}function Pt(e,t){let r=e.snapshot.state;switch(t.op){case"set":r=be(r,t.path,t.value);break;case"unset":r=Te(r,t.path);break;case"merge":r=Re(r,t.path,t.value);break}return{...e,snapshot:{...e.snapshot,state:r},patches:[...e.patches,t]}}function Ln(e,t,r,n){return{...e,snapshot:{...e.snapshot,namespaces:{...e.snapshot.namespaces,[t]:r}},namespaceDelta:[...e.namespaceDelta,{namespace:t,patches:[n]}]}}function Zn(e,t){return{...e,status:"pending",requirements:[...e.requirements,t]}}function z(e,t){return{...e,status:"error",error:t}}function le(e,t,r,n){let o=t.phase==="flow"?t:{...t,phase:"flow"};if(r.status!=="running")return{state:r,trace:E(o.trace,"flow",n,{},null,[])};switch(e.kind){case"seq":return Hn(e.steps,o,r,n);case"if":return Wn(e,o,r,n);case"patch":return Gn(e,o,r,n);case"causalGuard":return Jn(e,o,r,n);case"effect":return Qn(e,o,r,n);case"call":return ro(e.flow,o,r,n);case"halt":return no(e.reason,o,r,n);case"fail":return oo(e,o,r,n);default:return{state:z(r,x("INTERNAL_ERROR",`Unknown flow kind: ${e.kind}`,o.currentAction??"",n,o.trace.timestamp)),trace:E(o.trace,"error",n,{},null,[])}}}async function bs(e,t,r,n){return le(e,t,r,n)}function Hn(e,t,r,n){let o=r,a=[];for(let i=0;i<e.length;i++){let l=`${n}.steps[${i}]`,c=ae(ge(t,o.snapshot),l),d=le(e[i],c,o,l);if(a.push(d.trace),o=d.state,o.status!=="running")break}return{state:o,trace:E(t.trace,"flow",n,{kind:"seq"},null,a)}}function Wn(e,t,r,n){let o=f(e.cond,t);if(!o.ok)return{state:z(r,o.error),trace:E(t.trace,"branch",n,{cond:!1},null,[])};let a=o.value,i=a!=null&&a!==!1,l=i?`${n}.then`:`${n}.else`,c=i?e.then:e.else;if(!c)return{state:r,trace:E(t.trace,"branch",n,{cond:i},null,[])};let d=ae(t,l),m=le(c,d,r,l);return{state:m.state,trace:E(t.trace,"branch",n,{cond:i},null,[m.trace])}}function Gn(e,t,r,n){let o=ge(t,r.snapshot),a=Kn(e.path,o,n);if(!a.ok)return{state:z(r,a.error),trace:E(t.trace,"error",n,{},null,[])};let i=a.path,l=ie(i),c={type:"object",required:!0,fields:t.schema.state.fields},d=Ce(t.schema.state,t.schema.types,i),m=d?null:ze(c,i);if(!d&&!m)return{state:z(r,x("PATH_NOT_FOUND",`Unknown patch path: ${l}`,t.currentAction??"",n,t.trace.timestamp)),trace:E(t.trace,"error",n,{},null,[])};if(e.op==="merge"&&!Bn(r.snapshot.state,i))return{state:z(r,x("TYPE_MISMATCH",`Invalid merge target at ${l}: target path must be an object or absent`,t.currentAction??"",n,t.trace.timestamp)),trace:E(t.trace,"error",n,{},null,[])};let b;if(e.value){let A=f(e.value,ae(o,`${n}.value`));if(!A.ok)return{state:z(r,A.error),trace:E(t.trace,"error",n,{},null,[])};b=A.value}if(e.op!=="unset"){let A=d?F(b,d,t.schema.types,{allowPartial:e.op==="merge",allowUndefined:!1}):B(b,m,{allowPartial:e.op==="merge",allowUndefined:!1});if(!A.ok)return{state:z(r,x("TYPE_MISMATCH",`Invalid patch value at ${l}: ${A.message??"type mismatch"}`,t.currentAction??"",n,t.trace.timestamp)),trace:E(t.trace,"error",n,{},null,[])}}let y=e.op==="unset"?{op:"unset",path:i}:e.op==="merge"?{op:"merge",path:i,value:b}:{op:"set",path:i,value:b};return{state:Pt(r,y),trace:E(t.trace,"patch",n,{op:e.op,path:l},b,[])}}function Kn(e,t,r){let n=[];for(let[o,a]of e.entries()){if(a.kind==="prop"||a.kind==="index"){let d=Ye([...n,a],t,r,o);if(!d.ok)return d;n.push(a);continue}let i=ae(t,`${r}.path[${o}]`),l=f(a.expr,i);if(!l.ok)return l;let c=l.value;if(typeof c=="string"&&c.length>0){let d={kind:"prop",name:c},m=Ye([...n,d],t,r,o);if(!m.ok)return m;n.push(d);continue}if(typeof c=="number"&&Number.isInteger(c)&&c>=0){let d={kind:"index",index:c},m=Ye([...n,d],t,r,o);if(!m.ok)return m;n.push(d);continue}return{ok:!1,error:x("INVALID_PATCH_PATH",`Invalid dynamic patch path segment at index ${o}: expected non-empty string or non-negative integer, got ${Ct(c)}`,t.currentAction??"",`${r}.path[${o}]`,t.trace.timestamp,{segmentIndex:o,resolvedType:Ct(c)})}}return{ok:!0,path:n}}function Ye(e,t,r,n){return ke(e)?{ok:!0}:{ok:!1,error:x("INVALID_PATCH_PATH",`Unsafe patch path segment at index ${n}: ${ie(e)}`,t.currentAction??"",`${r}.path[${n}]`,t.trace.timestamp,{segmentIndex:n,path:ie(e)})}}function Ct(e){return e===null?"null":Array.isArray(e)?"array":typeof e}function Bn(e,t){let r=e;for(let n of t){if(r===void 0)return!0;if(n.kind==="prop"){if(!Ie(r))return!1;r=r[n.name];continue}if(!Array.isArray(r))return!1;r=r[n.index]}return r===void 0?!0:Ie(r)}function Jn(e,t,r,n){let o=t.intentId;if(!o)return{state:z(r,x("INVALID_INPUT","causalGuard requires a current intent id",t.currentAction??"",n,t.trace.timestamp)),trace:E(t.trace,"error",n,{},null,[])};let a=Yn(r.snapshot,t,n);if(!a.ok)return{state:z(r,a.error),trace:E(t.trace,"error",n,{},null,[])};let i=Xn(a.value);if(i[e.guardId]===o)return{state:r,trace:E(t.trace,"flow",n,{kind:"causalGuard",guardId:e.guardId,skipped:!0},null,[])};let l={...a.value,[Xe]:{...i,[e.guardId]:o}},c={op:"merge",path:[{kind:"prop",name:Xe}],value:{[e.guardId]:o}},d=Ln(r,Pe,l,c),m=E(t.trace,"namespaceDelta",`${n}.namespaceDelta`,{namespace:Pe,patchCount:1},{namespace:Pe,patches:[c]},[]),b=`${n}.body`,y=ae(ge(t,d.snapshot),b),S=le(e.body,y,d,b);return{state:S.state,trace:E(t.trace,"flow",n,{kind:"causalGuard",guardId:e.guardId,skipped:!1},null,[m,S.trace])}}function Yn(e,t,r){let n=e.namespaces[Pe];return n===void 0?{ok:!0,value:{}}:Ie(n)?{ok:!0,value:n}:{ok:!1,error:x("TYPE_MISMATCH","Invalid core namespace root: expected object",t.currentAction??"",r,t.trace.timestamp)}}function Xn(e){let t=e[Xe];return Ie(t)?Object.fromEntries(Object.entries(t).filter(r=>typeof r[1]=="string")):{}}function Qn(e,t,r,n){if(e.type==="array.map"||e.type==="array.filter")return eo(e,t,r,n);let o={};for(let[c,d]of Object.entries(e.params)){let m=f(d,t);if(!m.ok)return{state:z(r,m.error),trace:E(t.trace,"error",n,{},null,[])};o[c]=m.value}let i={id:xt(t.snapshot.meta.schemaHash,t.intentId??"",t.currentAction??"",n),type:e.type,params:o,actionId:t.currentAction??"",flowPosition:{nodePath:n,snapshotVersion:t.snapshot.meta.version},createdAt:t.trace.timestamp};return{state:Zn(r,i),trace:E(t.trace,"effect",n,{type:e.type},o,[])}}function eo(e,t,r,n){let{params:o}=e,a=ge(t,r.snapshot),i=o.source;if(!i)return{state:z(r,x("INVALID_INPUT",`${e.type} requires 'source' parameter`,t.currentAction??"",n,t.trace.timestamp)),trace:E(a.trace,"error",n,{},null,[])};let l=f(i,a);if(!l.ok)return{state:z(r,l.error),trace:E(a.trace,"error",n,{},null,[])};let c=l.value;if(!Array.isArray(c))return{state:z(r,x("TYPE_MISMATCH",`${e.type} source must be an array`,a.currentAction??"",n,a.trace.timestamp)),trace:E(a.trace,"error",n,{},null,[])};let d=o.into;if(!d)return{state:z(r,x("INVALID_INPUT",`${e.type} requires 'into' parameter`,a.currentAction??"",n,a.trace.timestamp)),trace:E(a.trace,"error",n,{},null,[])};let m=f(d,a);if(!m.ok)return{state:z(r,m.error),trace:E(a.trace,"error",n,{},null,[])};let b=to(m.value);if(!b)return{state:z(r,x("INVALID_INPUT",`${e.type} into must resolve to PatchPath segments or semantic string path`,a.currentAction??"",n,a.trace.timestamp)),trace:E(a.trace,"error",n,{},null,[])};let y=e.type==="array.map"?o.select:o.where;if(!y)return{state:z(r,x("INVALID_INPUT",`${e.type} requires '${e.type==="array.map"?"select":"where"}' parameter`,a.currentAction??"",n,a.trace.timestamp)),trace:E(a.trace,"error",n,{},null,[])};let S=[];for(let T=0;T<c.length;T++){let D=c[T],O=re(a,D,T,c),U=f(y,O);if(!U.ok)return{state:z(r,U.error),trace:E(a.trace,"error",n,{},null,[])};if(e.type==="array.map")S.push(U.value);else{let M=U.value;M!=null&&M!==!1&&S.push(D)}}return{state:Pt(r,{op:"set",path:b,value:S}),trace:E(a.trace,"effect",n,{type:e.type,target:b},{count:S.length},[])}}function to(e){if(typeof e=="string")return St(e);if(!Array.isArray(e))return null;let t=[];for(let r of e){if(!r||typeof r!="object")return null;let n=r.kind;if(n==="prop"){let o=r.name;if(typeof o!="string"||o.length===0)return null;t.push({kind:"prop",name:o});continue}if(n==="index"){let o=r.index;if(!Number.isInteger(o)||o<0)return null;t.push({kind:"index",index:o});continue}return null}return t.length>0?t:null}function Ie(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function ro(e,t,r,n){let o=t.schema.actions[e];if(!o)return{state:z(r,x("UNKNOWN_FLOW",`Unknown flow: ${e}`,t.currentAction??"",n,t.trace.timestamp)),trace:E(t.trace,"error",n,{},null,[])};let a=`${n}.call(${e})`,i=ae(t,a),l=le(o.flow,i,r,a);return{state:l.state,trace:E(t.trace,"call",n,{flow:e},null,[l.trace])}}function no(e,t,r,n){return{state:{...r,status:"halted"},trace:E(t.trace,"halt",n,{reason:e},null,[])}}function oo(e,t,r,n){let o=e.code;if(e.message){let i=f(e.message,t);i.ok&&(o=String(i.value))}let a=x("VALIDATION_ERROR",o,t.currentAction??"",n,t.trace.timestamp,{code:e.code});return{state:z(r,a),trace:E(t.trace,"error",n,{code:e.code},o,[])}}function $e(e){let t=Object.keys(e.fields),r=new Map;for(let[n,o]of Object.entries(e.fields)){let a=o.deps.filter(i=>i in e.fields);r.set(n,a)}return{nodes:t,edges:r}}function Fe(e){let t=new Map,r=new Map;for(let a of e.nodes)t.set(a,0),r.set(a,[]);for(let[a,i]of e.edges)for(let l of i)r.has(l)&&r.get(l).push(a),t.set(a,(t.get(a)??0)+1);let n=[];for(let[a,i]of t)i===0&&n.push(a);let o=[];for(;n.length>0;){let a=n.shift();o.push(a);for(let i of r.get(a)??[]){let l=(t.get(i)??1)-1;t.set(i,l),l===0&&n.push(i)}}if(o.length!==e.nodes.length){let a=e.nodes.filter(i=>!o.includes(i));return $({code:"V-002",message:`Cyclic dependency detected in computed fields: ${a.join(", ")}`,path:a[0]})}return u(o)}function It(e){let t=new Set,r=new Set,n=[];function o(a,i){t.add(a),r.add(a);let l=e.edges.get(a)??[];for(let c of l)if(t.has(c)){if(r.has(c)){let d=i.indexOf(c);d!==-1?n.push([...i.slice(d),c]):n.push([...i,c])}}else if(o(c,[...i,c]))return!0;return r.delete(a),!1}for(let a of e.nodes)t.has(a)||o(a,[a]);return n.length>0?n:null}function Ns(e,t){let r=new Set,n=[...e.edges.get(t)??[]];for(;n.length>0;){let o=n.shift();r.has(o)||(r.add(o),n.push(...e.edges.get(o)??[]))}return r}function de(e,t){let r=oe(t.meta.timestamp),n=$e(e.computed),o=Fe(n);if(!o.ok)return $(x("CYCLIC_DEPENDENCY",o.error.message,"",o.error.path??"",r.timestamp));let a={},i={...t,computed:a};for(let l of o.value){let c=e.computed.fields[l];if(!c)continue;let d=H(i,e,null,l,void 0,r,{phase:"computed"}),m=f(c.expr,d);if(G(m))return m;a[l]=m.value,i={...i,computed:{...a}}}return u(a)}function Ps(e,t,r){let n=oe(t.meta.timestamp),o=e.computed.fields[r];if(!o)return $(x("PATH_NOT_FOUND",`Computed field not found: ${r}`,"",r,n.timestamp));let a=H(t,e,null,r,void 0,n,{phase:"computed"});return f(o.expr,a)}import{z as P}from"zod";var Qe=P.lazy(()=>P.union([P.null(),P.string(),P.number().finite(),P.boolean(),P.array(Qe),P.record(P.string(),Qe)])),$t=P.object({runtime:P.object({time:P.object({timestamp:P.number().finite()}),random:P.object({seed:P.string()})}),external:P.record(P.string(),Qe)});function De(e,t){let r=de(e,t);return G(r)?{kind:"error",code:"INTERNAL_ERROR",message:`Error evaluating computed values for legality query: ${r.error.message}`}:{kind:"ok",snapshot:{...t,computed:r.value}}}function Oe(e,t,r,n){let o=e.actions[r];if(!o)return{kind:"error",code:"UNKNOWN_ACTION",message:`Unknown action: ${r}`};if(!o.available)return{kind:"ok",available:!0};let a=H(t,e,null,`actions.${r}.available`,void 0,n,{phase:"availability"}),i=f(o.available,a);return G(i)?{kind:"error",code:"INTERNAL_ERROR",message:`Error evaluating availability: ${i.error.message}`}:typeof i.value!="boolean"?{kind:"error",code:"TYPE_MISMATCH",message:`Availability condition must return boolean, got ${typeof i.value}`}:{kind:"ok",available:i.value}}function Ve(e,t,r,n=t.meta.timestamp){let o=De(e,t);return o.kind==="error"?o:Oe(e,o.snapshot,r,n)}function Ft(e,t,r){let n=Ve(e,t,r);if(n.kind==="error")throw new Error(n.message);return n.available}function Dt(e,t,r,n=t.meta.timestamp){let o=e.actions[r.type];if(!o)return{kind:"error",code:"UNKNOWN_ACTION",message:`Unknown action: ${r.type}`};let a=De(e,t);if(a.kind==="error")return a;let i=Oe(e,a.snapshot,r.type,n);if(i.kind==="error")return i;if(!i.available)return{kind:"ok",dispatchable:!1};if(!o.dispatchable)return{kind:"ok",dispatchable:!0};let l=H({...a.snapshot,input:r.input},e,r.type,`actions.${r.type}.dispatchable`,r.intentId,n,{phase:"dispatchability"}),c=f(o.dispatchable,l);return G(c)?{kind:"error",code:"INTERNAL_ERROR",message:`Error evaluating dispatchability: ${c.error.message}`}:typeof c.value!="boolean"?{kind:"error",code:"TYPE_MISMATCH",message:`Dispatchability condition must return boolean, got ${typeof c.value}`}:{kind:"ok",dispatchable:c.value}}function Ot(e,t,r){let n=Dt(e,t,r);if(n.kind==="error")throw new Error(n.message);return n.dispatchable}function ao(e,t){let r=De(e,t);if(r.kind==="error")return r;let n=[],o=[];for(let a of Object.keys(e.actions)){let i=Oe(e,r.snapshot,a,t.meta.timestamp);if(i.kind==="error"){o.push({actionName:a,code:i.code,message:i.message});continue}i.available&&n.push(a)}return{kind:"ok",actions:n,errors:o}}function Vt(e,t){let r=De(e,t);if(r.kind==="error")throw new Error(r.message);return Object.keys(e.actions).filter(n=>{let o=Oe(e,r.snapshot,n,t.meta.timestamp);if(o.kind==="error")throw new Error(o.message);return o.available})}import{z as R}from"zod";import{z as w}from"zod";var io=w.discriminatedUnion("kind",[w.object({kind:w.literal("prop"),name:w.string().min(1)}),w.object({kind:w.literal("index"),index:w.number().int().nonnegative()})]),et=w.array(io).min(1),tt=w.discriminatedUnion("op",[w.object({op:w.literal("set"),path:et,value:w.unknown()}),w.object({op:w.literal("unset"),path:et}),w.object({op:w.literal("merge"),path:et,value:w.record(w.string(),w.unknown())})]),Ms=w.object({type:w.string(),input:w.unknown().optional(),intentId:w.string()});function Ls(e){return{kind:"prop",name:e}}function Zs(e){return{kind:"index",index:e}}function Hs(e,t){return{op:"set",path:e,value:t}}function Ws(e){return{op:"unset",path:e}}function Gs(e,t){return{op:"merge",path:e,value:t}}import{z as k}from"zod";var rt=k.object({code:k.string(),message:k.string(),source:k.object({actionId:k.string(),nodePath:k.string()}),timestamp:k.number(),context:k.record(k.string(),k.unknown()).optional()}),so=k.object({nodePath:k.string(),snapshotVersion:k.number()}),nt=k.object({id:k.string(),type:k.string(),params:k.record(k.string(),k.unknown()),actionId:k.string(),flowPosition:so,createdAt:k.number()}),ot=k.object({status:k.enum(["idle","computing","pending","error"]),lastError:rt.nullable(),pendingRequirements:k.array(nt),currentAction:k.string().nullable()}),lo=k.object({version:k.number(),timestamp:k.number(),randomSeed:k.string(),schemaHash:k.string()}),co=k.record(k.string(),k.unknown()),Ys=k.object({state:k.unknown(),computed:k.record(Y,k.unknown()),system:ot,input:k.unknown(),meta:lo,namespaces:co});function qt(){return{status:"idle",lastError:null,pendingRequirements:[],currentAction:null}}function Ut(){return{}}var uo=R.enum(["complete","pending","halted","error"]),po=R.object({status:ot.shape.status.optional(),currentAction:R.string().nullable().optional(),lastError:rt.nullable().optional(),addRequirements:R.array(nt).optional(),removeRequirementIds:R.array(R.string()).optional()}),fo=R.object({namespace:R.string().min(1),patches:R.array(tt)}),ol=R.object({patches:R.array(tt),namespaceDelta:R.array(fo).optional(),systemDelta:po,trace:Et,status:uo}),mo=R.object({code:R.string(),message:R.string(),path:R.string().optional()}),al=R.object({valid:R.boolean(),errors:R.array(mo)}),il=R.object({value:R.unknown(),trace:Ee,deps:R.array(Y)});function ve(){return{valid:!0,errors:[]}}function me(e){return{valid:!1,errors:e}}function qe(e,t){let r=[],n=e.context;if(!n)return Object.keys(t).length===0?ve():me(Object.keys(t).map(i=>({code:"INVALID_CONTEXT",message:`Schema does not declare user context field "${i}"`,path:`context.${i}`})));let o=n.fields,a=new Set(Object.keys(o));for(let i of Object.keys(t))a.has(i)||r.push({code:"INVALID_CONTEXT",message:`Unknown context field: ${i}`,path:`context.${i}`});for(let[i,l]of Object.entries(o)){if(!(i in t)){l.required&&r.push({code:"INVALID_CONTEXT",message:`Missing required context field: ${i}`,path:`context.${i}`});continue}let c=n.fieldTypes?.[i],d=c?F(t[i],c,e.types):B(t[i],l);d.ok||r.push({code:"INVALID_CONTEXT",message:d.message??`Invalid context field: ${i}`,path:`context.${i}`})}return r.length===0?ve():me(r)}function Ue(e,t){let r=at(t,"status"),n=at(t,"currentAction"),o=at(t,"lastError"),a=new Set(t.removeRequirementIds??[]),i=t.addRequirements??[],l=yo(e.system.pendingRequirements,a,i),c={...e.system,status:r?t.status:e.system.status,currentAction:n?t.currentAction??null:e.system.currentAction,lastError:o?t.lastError??null:e.system.lastError,pendingRequirements:l};return xo(e.system,c)?{...e,system:c,meta:{...e.meta,version:e.meta.version+1}}:e}function yo(e,t,r){let n=new Set(r.map(a=>a.id));return[...e.filter(a=>!t.has(a.id)&&!n.has(a.id)),...r]}function xo(e,t){return e.status!==t.status||e.currentAction!==t.currentAction||!Eo(e.lastError,t.lastError)||!ho(e.pendingRequirements,t.pendingRequirements)}function ho(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!go(e[r],t[r]))return!1;return!0}function Eo(e,t){if(e===t)return!0;if(e===null||t===null||e.code!==t.code||e.message!==t.message||e.timestamp!==t.timestamp||e.source.actionId!==t.source.actionId||e.source.nodePath!==t.source.nodePath)return!1;let r=e.context??{},n=t.context??{};return JSON.stringify(r)===JSON.stringify(n)}function go(e,t){return e.id===t.id&&e.type===t.type&&e.actionId===t.actionId&&e.createdAt===t.createdAt&&e.flowPosition.nodePath===t.flowPosition.nodePath&&e.flowPosition.snapshotVersion===t.flowPosition.snapshotVersion&&JSON.stringify(e.params)===JSON.stringify(t.params)}function at(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function it(e,t,r,n){let o=ko(n);if(!o.ok)return ce(t,r,"INVALID_INPUT",o.message,t.meta.timestamp);let a=o.value,i=a.runtime.time.timestamp,l=qe(e,a.external);if(!l.valid)return ce(t,r,"INVALID_CONTEXT",`Invalid context: ${l.errors.map(v=>v.path?`${v.path}: ${v.message}`:v.message).join("; ")}`,i);let c=t,d=de(e,t);if(fe(d))c={...t,computed:d.value};else return ce(t,r,d.error.code,d.error.message,i);let m=e.actions[r.type];if(!m)return ce(c,r,"UNKNOWN_ACTION",`Unknown action: ${r.type}`,i);let b=Mt(e,r);if(b)return ce(c,r,"INVALID_INPUT",b,i);let y=c.system.currentAction===r.type;if(m.available&&!y){let v=Ve(e,c,r.type,i);if(v.kind==="error")return ce(c,r,v.code,v.message,i);if(!v.available)return ce(c,r,"ACTION_UNAVAILABLE",`Action "${r.type}" is not available`,i)}let S={...c,input:r.input,system:{...c.system,status:"computing",currentAction:r.type}},A=H(S,e,r.type,`actions.${r.type}.flow`,r.intentId,i,{context:a,phase:"flow"}),_=zt(S),T=le(m.flow,A,_,`actions.${r.type}.flow`),D=So(T.state.status),O=Ao(c,r,D,T.state.error,T.state.requirements),U=[...T.state.patches],M=[...T.state.namespaceDelta],he={root:T.trace,nodes:No(T.trace),intent:{type:r.type,input:r.input},baseVersion:c.meta.version,resultVersion:Lt(c,U,M,O),duration:0,terminatedBy:vo(T.state.status)};return{patches:U,namespaceDelta:M,systemDelta:O,trace:he,status:D}}async function _t(e,t,r,n){return it(e,t,r,n)}function ko(e){try{let t=$t.safeParse(e);return t.success?{ok:!0,value:t.data}:{ok:!1,message:`Invalid context: ${t.error.issues.map(r=>r.message).join("; ")}`}}catch(t){return{ok:!1,message:`Invalid context: ${bo(t)}`}}}function bo(e){return e instanceof Error&&e.message.length>0?e.message:"context validation failed"}function Mt(e,t){if(!t.intentId||t.intentId==="")return"Intent must have a non-empty intentId";let r=e.actions[t.type];return r?!r.input&&!r.inputType?t.input===void 0?null:`Action "${t.type}" does not accept input`:wo(e,r.inputType,r.input,t.input):null}function So(e){switch(e){case"running":case"complete":return"complete";case"pending":return"pending";case"halted":return"halted";case"error":return"error"}}function vo(e){switch(e){case"running":case"complete":return"complete";case"pending":return"effect";case"halted":return"halt";case"error":return"error"}}function No(e){let t={};function r(n){t[n.id]=n;for(let o of n.children)r(o)}return r(e),t}function ce(e,t,r,n,o){let a=x(r,n,t.type,"",o),i={status:"error",currentAction:null,lastError:a,addRequirements:[],removeRequirementIds:[]},l={root:{id:`trace-error-${t.intentId}`,kind:"error",sourcePath:"",inputs:{},output:a,children:[],timestamp:o},nodes:{},intent:{type:t.type,input:t.input},baseVersion:e.meta.version,resultVersion:Lt(e,[],[],i),duration:0,terminatedBy:"error"};return{patches:[],namespaceDelta:[],systemDelta:i,trace:l,status:"error"}}function Ao(e,t,r,n,o){let a=r==="error";return{status:r==="pending"?"pending":r==="error"?"error":"idle",currentAction:r==="pending"?t.type:null,lastError:n,addRequirements:[...o],removeRequirementIds:e.system.pendingRequirements.map(l=>l.id)}}function Lt(e,t,r,n){let o=e.meta.version;return o+=1,r.length>0&&(o+=1),Ue(e,n)!==e&&(o+=1),o}function wo(e,t,r,n){if(t){let o=F(n,t,e.types);return o.ok?null:o.message??"Invalid input"}if(!r)return null;if(r.type==="object"){if(typeof n!="object"||n===null||Array.isArray(n))return`Expected object input, got ${typeof n}`;let o=n,a=r.fields??{};for(let[i,l]of Object.entries(a))if(l.required&&!(i in o))return`Missing required field: ${i}`;for(let i of Object.keys(o))if(!(i in a))return`Unknown field: ${i}`;for(let[i,l]of Object.entries(a))if(i in o){let c=To(l,o[i],i);if(c)return c}}return null}function To(e,t,r){if(t==null)return e.required?`Missing required field: ${r}`:null;switch(e.type){case"string":if(typeof t!="string")return`Expected string for ${r}, got ${typeof t}`;break;case"number":if(typeof t!="number")return`Expected number for ${r}, got ${typeof t}`;break;case"boolean":if(typeof t!="boolean")return`Expected boolean for ${r}, got ${typeof t}`;break;case"array":if(!Array.isArray(t))return`Expected array for ${r}, got ${typeof t}`;break;case"object":if(typeof t!="object"||Array.isArray(t))return`Expected object for ${r}, got ${typeof t}`;break}return null}function Ro(e){let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function st(e,t,r){if(e===null)return null;switch(typeof e){case"string":case"boolean":return null;case"number":return Number.isFinite(e)?null:{path:t,reason:`non-finite number (${String(e)})`};case"undefined":return{path:t,reason:"undefined is not a JSON value"};case"function":return{path:t,reason:"functions are not JSON values"};case"symbol":return{path:t,reason:"symbols are not JSON values"};case"bigint":return{path:t,reason:"bigints are not JSON values"};case"object":break;default:return{path:t,reason:`unsupported value type (${typeof e})`}}let n=e;if(r.has(n))return{path:t,reason:"circular reference"};r.add(n);try{if(Array.isArray(n)){for(let o=0;o<n.length;o+=1){let a=st(n[o],`${t}[${o}]`,r);if(a)return a}return null}if(!Ro(n)){let o=n.constructor?.name??"unknown";return{path:t,reason:`non-plain object (${o}) is not a JSON value`}}for(let[o,a]of Object.entries(n)){let i=st(a,`${t}.${o}`,r);if(i)return i}return null}finally{r.delete(n)}}function lt(e,t="value"){return st(e,t,new Set)}function Ht(e,t,r){let n=t.state,o=t.system,a=t.input,i=[],l=t.meta.timestamp,c={type:"object",required:!0,fields:e.state.fields};for(let y of r){let S=ie(y.path);if(!ke(y.path)){i.push(x("PATH_NOT_FOUND",`Unsafe patch path: ${S}`,t.system.currentAction??"",S,l,{patch:y}));continue}let A=Ce(e.state,e.types,y.path),_=A?null:ze(c,y.path);if(!A&&!_){i.push(x("PATH_NOT_FOUND",`Unknown patch path: ${S}`,t.system.currentAction??"",S,l,{patch:y}));continue}if(y.op==="merge"&&!Wt(n,y.path)){i.push(x("TYPE_MISMATCH",`Invalid merge target at ${S}: target path must be an object or absent`,t.system.currentAction??"",S,l,{patch:y}));continue}if(y.op!=="unset"){let T=A?F(y.value,A,e.types,{allowPartial:y.op==="merge",allowUndefined:!1}):B(y.value,_,{allowPartial:y.op==="merge",allowUndefined:!1});if(!T.ok){i.push(x("TYPE_MISMATCH",`Invalid patch value at ${S}: ${T.message??"type mismatch"}`,t.system.currentAction??"",S,l,{patch:y}));continue}let D=lt(y.value,S);if(D){i.push(x("INVALID_VALUE",`Non-JSON patch value at ${D.path}: ${D.reason}`,t.system.currentAction??"",S,l,{patch:y}));continue}}n=Gt(n,y)}if(i.length>0){let y=i[i.length-1];o={...o,status:"error",lastError:y}}let d={...t,state:n,system:o,input:a},m=de(e,d),b=t.computed;if(fe(m))b=m.value;else if(G(m)){let y=m.error;b={},o={...o,status:"error",lastError:y}}return{state:n,computed:b,system:o,input:a,meta:{...t.meta,version:t.meta.version+1},namespaces:t.namespaces}}function ct(e){return e!==null&&!Array.isArray(e)&&typeof e=="object"}function Wt(e,t){let r=e;for(let n of t){if(r===void 0)return!0;if(n.kind==="prop"){if(!ct(r))return!1;r=r[n.name];continue}if(!Array.isArray(r))return!1;r=r[n.index]}return r===void 0?!0:ct(r)}function Gt(e,t){switch(t.op){case"set":return be(e,t.path,t.value);case"unset":return Te(e,t.path);case"merge":return Re(e,t.path,t.value)}}function Kt(e,t){if(t.length===0)return e;let r=Zt(e.namespaces),n=e.system,o=[],a=e.meta.timestamp;for(let i of t){if(i.namespace.length===0){o.push(x("PATH_NOT_FOUND","Invalid namespace: namespace must be non-empty",e.system.currentAction??"","namespaces",a,{delta:i}));continue}let l=Object.prototype.hasOwnProperty.call(r,i.namespace)?r[i.namespace]:void 0;if(l!==void 0&&!ct(l)){o.push(x("TYPE_MISMATCH",`Invalid namespace root: ${i.namespace} must be an object`,e.system.currentAction??"",`namespaces.${i.namespace}`,a,{delta:i}));continue}let c=l??{},d=!1;for(let m of i.patches){let b=`${i.namespace}.${ie(m.path)}`;if(!ke(m.path)){o.push(x("PATH_NOT_FOUND",`Unsafe namespace patch path: ${b}`,e.system.currentAction??"",b,a,{delta:i,patch:m})),d=!0;break}if(m.op==="merge"&&!Wt(c,m.path)){o.push(x("TYPE_MISMATCH",`Invalid namespace merge target at ${b}: target path must be an object or absent`,e.system.currentAction??"",b,a,{delta:i,patch:m})),d=!0;break}if(m.op!=="unset"){let y=lt(m.value,b);if(y){o.push(x("INVALID_VALUE",`Non-JSON namespace patch value at ${y.path}: ${y.reason}`,e.system.currentAction??"",b,a,{delta:i,patch:m})),d=!0;break}}c=Gt(c,m)}d||(r=Zt(r),r[i.namespace]=c)}if(o.length>0){let i=o[o.length-1];n={...n,status:"error",lastError:i}}return{...e,system:n,namespaces:r,meta:{...e.meta,version:e.meta.version+1}}}function Zt(e){return Object.assign(Object.create(null),e)}import{z as q}from"zod";import{z as I}from"zod";import{z as N}from"zod";var J=N.lazy(()=>N.discriminatedUnion("kind",[N.object({kind:N.literal("primitive"),type:N.string()}),N.object({kind:N.literal("array"),element:J}),N.object({kind:N.literal("record"),key:J,value:J}),N.object({kind:N.literal("object"),fields:N.record(N.string(),N.object({type:J,optional:N.boolean()}))}),N.object({kind:N.literal("union"),types:N.array(J).min(1)}),N.object({kind:N.literal("literal"),value:N.union([N.string(),N.number(),N.boolean(),N.null()])}),N.object({kind:N.literal("ref"),name:N.string()})])),Bt=N.object({name:N.string(),definition:J});var jo=I.enum(["string","number","boolean","null","object","array"]),Co=I.object({enum:I.array(I.unknown()).readonly()}),zo=I.union([jo,Co]),Ne=I.lazy(()=>I.object({type:zo,required:I.boolean(),default:I.unknown().optional(),description:I.string().optional(),fields:I.record(I.string(),Ne).optional(),items:Ne.optional()})),ut=I.object({fields:I.record(I.string(),Ne),fieldTypes:I.record(I.string(),J).optional()});import{z as Ae}from"zod";import{z as s}from"zod";var Po=s.object({kind:s.literal("lit"),value:s.unknown()}),Io=s.object({kind:s.literal("get"),path:Y}),$o=s.object({kind:s.literal("eq"),left:s.lazy(()=>p),right:s.lazy(()=>p)}),Fo=s.object({kind:s.literal("neq"),left:s.lazy(()=>p),right:s.lazy(()=>p)}),Do=s.object({kind:s.literal("gt"),left:s.lazy(()=>p),right:s.lazy(()=>p)}),Oo=s.object({kind:s.literal("gte"),left:s.lazy(()=>p),right:s.lazy(()=>p)}),Vo=s.object({kind:s.literal("lt"),left:s.lazy(()=>p),right:s.lazy(()=>p)}),qo=s.object({kind:s.literal("lte"),left:s.lazy(()=>p),right:s.lazy(()=>p)}),Uo=s.object({kind:s.literal("and"),args:s.array(s.lazy(()=>p))}),_o=s.object({kind:s.literal("or"),args:s.array(s.lazy(()=>p))}),Mo=s.object({kind:s.literal("not"),arg:s.lazy(()=>p)}),Lo=s.object({kind:s.literal("if"),cond:s.lazy(()=>p),then:s.lazy(()=>p),else:s.lazy(()=>p)}),Zo=s.object({kind:s.literal("add"),left:s.lazy(()=>p),right:s.lazy(()=>p)}),Ho=s.object({kind:s.literal("sub"),left:s.lazy(()=>p),right:s.lazy(()=>p)}),Wo=s.object({kind:s.literal("mul"),left:s.lazy(()=>p),right:s.lazy(()=>p)}),Go=s.object({kind:s.literal("div"),left:s.lazy(()=>p),right:s.lazy(()=>p)}),Ko=s.object({kind:s.literal("mod"),left:s.lazy(()=>p),right:s.lazy(()=>p)}),Bo=s.object({kind:s.literal("min"),args:s.array(s.lazy(()=>p))}),Jo=s.object({kind:s.literal("max"),args:s.array(s.lazy(()=>p))}),Yo=s.object({kind:s.literal("abs"),arg:s.lazy(()=>p)}),Xo=s.object({kind:s.literal("neg"),arg:s.lazy(()=>p)}),Qo=s.object({kind:s.literal("floor"),arg:s.lazy(()=>p)}),ea=s.object({kind:s.literal("ceil"),arg:s.lazy(()=>p)}),ta=s.object({kind:s.literal("round"),arg:s.lazy(()=>p)}),ra=s.object({kind:s.literal("sqrt"),arg:s.lazy(()=>p)}),na=s.object({kind:s.literal("pow"),base:s.lazy(()=>p),exponent:s.lazy(()=>p)}),oa=s.object({kind:s.literal("sumArray"),array:s.lazy(()=>p)}),aa=s.object({kind:s.literal("minArray"),array:s.lazy(()=>p)}),ia=s.object({kind:s.literal("maxArray"),array:s.lazy(()=>p)}),sa=s.object({kind:s.literal("concat"),args:s.array(s.lazy(()=>p))}),la=s.object({kind:s.literal("substring"),str:s.lazy(()=>p),start:s.lazy(()=>p),end:s.lazy(()=>p).optional()}),ca=s.object({kind:s.literal("trim"),str:s.lazy(()=>p)}),ua=s.object({kind:s.literal("toLowerCase"),str:s.lazy(()=>p)}),pa=s.object({kind:s.literal("toUpperCase"),str:s.lazy(()=>p)}),fa=s.object({kind:s.literal("strLen"),str:s.lazy(()=>p)}),da=s.object({kind:s.literal("startsWith"),str:s.lazy(()=>p),prefix:s.lazy(()=>p)}),ma=s.object({kind:s.literal("endsWith"),str:s.lazy(()=>p),suffix:s.lazy(()=>p)}),ya=s.object({kind:s.literal("strIncludes"),str:s.lazy(()=>p),search:s.lazy(()=>p)}),xa=s.object({kind:s.literal("indexOf"),str:s.lazy(()=>p),search:s.lazy(()=>p)}),ha=s.object({kind:s.literal("replace"),str:s.lazy(()=>p),search:s.lazy(()=>p),replacement:s.lazy(()=>p)}),Ea=s.object({kind:s.literal("split"),str:s.lazy(()=>p),delimiter:s.lazy(()=>p)}),ga=s.object({kind:s.literal("len"),arg:s.lazy(()=>p)}),ka=s.object({kind:s.literal("at"),array:s.lazy(()=>p),index:s.lazy(()=>p)}),ba=s.object({kind:s.literal("first"),array:s.lazy(()=>p)}),Sa=s.object({kind:s.literal("last"),array:s.lazy(()=>p)}),va=s.object({kind:s.literal("slice"),array:s.lazy(()=>p),start:s.lazy(()=>p),end:s.lazy(()=>p).optional()}),Na=s.object({kind:s.literal("includes"),array:s.lazy(()=>p),item:s.lazy(()=>p)}),Aa=s.object({kind:s.literal("filter"),array:s.lazy(()=>p),predicate:s.lazy(()=>p)}),wa=s.object({kind:s.literal("map"),array:s.lazy(()=>p),mapper:s.lazy(()=>p)}),Ta=s.object({kind:s.literal("find"),array:s.lazy(()=>p),predicate:s.lazy(()=>p)}),Ra=s.object({kind:s.literal("every"),array:s.lazy(()=>p),predicate:s.lazy(()=>p)}),ja=s.object({kind:s.literal("some"),array:s.lazy(()=>p),predicate:s.lazy(()=>p)}),Ca=s.object({kind:s.literal("append"),array:s.lazy(()=>p),items:s.array(s.lazy(()=>p))}),za=s.object({kind:s.literal("reverse"),array:s.lazy(()=>p)}),Pa=s.object({kind:s.literal("unique"),array:s.lazy(()=>p)}),Ia=s.object({kind:s.literal("flat"),array:s.lazy(()=>p)}),$a=s.object({kind:s.literal("object"),fields:s.record(s.string(),s.lazy(()=>p))}),Fa=s.object({kind:s.literal("field"),object:s.lazy(()=>p),property:s.string()}),Da=s.object({kind:s.literal("keys"),obj:s.lazy(()=>p)}),Oa=s.object({kind:s.literal("values"),obj:s.lazy(()=>p)}),Va=s.object({kind:s.literal("entries"),obj:s.lazy(()=>p)}),qa=s.object({kind:s.literal("merge"),objects:s.array(s.lazy(()=>p))}),Ua=s.object({kind:s.literal("hasKey"),obj:s.lazy(()=>p),key:s.lazy(()=>p)}),_a=s.object({kind:s.literal("pick"),obj:s.lazy(()=>p),keys:s.lazy(()=>p)}),Ma=s.object({kind:s.literal("omit"),obj:s.lazy(()=>p),keys:s.lazy(()=>p)}),La=s.object({kind:s.literal("fromEntries"),entries:s.lazy(()=>p)}),Za=s.object({kind:s.literal("typeof"),arg:s.lazy(()=>p)}),Ha=s.object({kind:s.literal("isNull"),arg:s.lazy(()=>p)}),Wa=s.object({kind:s.literal("coalesce"),args:s.array(s.lazy(()=>p))}),Ga=s.object({kind:s.literal("toString"),arg:s.lazy(()=>p)}),Ka=s.object({kind:s.literal("toNumber"),arg:s.lazy(()=>p)}),Ba=s.object({kind:s.literal("toBoolean"),arg:s.lazy(()=>p)}),p=s.union([Po,Io,$o,Fo,Do,Oo,Vo,qo,Uo,_o,Mo,Lo,Zo,Ho,Wo,Go,Ko,Bo,Jo,Yo,Xo,Qo,ea,ta,ra,na,oa,aa,ia,sa,la,ca,ua,pa,fa,da,ma,ya,xa,ha,Ea,ga,ka,ba,Sa,va,Na,Aa,wa,Ta,Ra,ja,Ca,za,Pa,Ia,$a,Fa,Da,Oa,Va,qa,Ua,_a,Ma,La,Za,Ha,Wa,Ga,Ka,Ba]),Ul=s.enum(["lit","get","eq","neq","gt","gte","lt","lte","and","or","not","if","add","sub","mul","div","mod","min","max","abs","neg","floor","ceil","round","sqrt","pow","sumArray","minArray","maxArray","concat","substring","trim","toLowerCase","toUpperCase","strLen","startsWith","endsWith","strIncludes","indexOf","replace","split","len","at","first","last","slice","includes","filter","map","find","every","some","append","reverse","unique","flat","object","field","keys","values","entries","merge","hasKey","pick","omit","fromEntries","typeof","isNull","coalesce","toString","toNumber","toBoolean"]);var Ja=Ae.object({deps:Ae.array(Y),expr:p,description:Ae.string().optional()}),Jt=Ae.object({fields:Ae.record(Y,Ja)});import{z as _e}from"zod";import{z as h}from"zod";var Ya=h.enum(["set","unset","merge"]),Xa=h.discriminatedUnion("kind",[h.object({kind:h.literal("prop"),name:h.string().min(1)}),h.object({kind:h.literal("index"),index:h.number().int().nonnegative()}),h.object({kind:h.literal("expr"),expr:p})]),Qa=h.array(Xa).min(1),ei=h.object({kind:h.literal("seq"),steps:h.array(h.lazy(()=>ye))}),ti=h.object({kind:h.literal("if"),cond:p,then:h.lazy(()=>ye),else:h.lazy(()=>ye).optional()}),ri=h.object({kind:h.literal("patch"),op:Ya,path:Qa,value:p.optional()}),ni=h.object({kind:h.literal("causalGuard"),guardId:h.string().min(1),body:h.lazy(()=>ye)}),oi=h.object({kind:h.literal("effect"),type:h.string(),params:h.record(h.string(),p)}),ai=h.object({kind:h.literal("call"),flow:h.string()}),ii=h.object({kind:h.literal("halt"),reason:h.string().optional()}),si=h.object({kind:h.literal("fail"),code:h.string(),message:p.optional()}),ye=h.union([ei,ti,ri,ni,oi,ai,ii,si]),Kl=h.enum(["seq","if","patch","causalGuard","effect","call","halt","fail"]);var Yt=_e.object({flow:ye,input:Ne.optional(),inputType:J.optional(),params:_e.array(_e.string()).readonly().optional(),available:p.optional(),dispatchable:p.optional(),description:_e.string().optional()});var li=ut,ci=q.object({name:q.string().optional(),description:q.string().optional(),authors:q.array(q.string()).optional()}),Xt=q.object({id:q.string(),version:q.string(),hash:q.string(),types:q.record(q.string(),Bt),state:ut,context:li.optional(),computed:Jt,actions:q.record(q.string(),Yt),meta:ci.optional()});function er(e){let t=[],r=Xt.safeParse(e);if(!r.success){let b=r.error.issues.map(y=>({code:"SCHEMA_ERROR",message:y.message,path:y.path.map(String).join(".")}));return me(b)}let n=r.data;Tt(n.id)||t.push({code:"SCHEMA_ERROR",message:"Schema id must be a valid URI or UUID",path:"id"}),Rt(n.version)||t.push({code:"SCHEMA_ERROR",message:"Schema version must follow Semantic Versioning 2.0",path:"version"});let o=n.hash;if(!o)t.push({code:"SCHEMA_ERROR",message:"Schema hash is required",path:"hash"});else{let b=e,{hash:y,...S}=b,A=We(S);o!==A&&t.push({code:"V-008",message:`Schema hash mismatch: expected ${A}, got ${o}`,path:"hash"})}Object.keys(n.state.fields).length===0&&t.push({code:"SCHEMA_ERROR",message:"StateSpec.fields must not be empty",path:"state.fields"}),t.push(...ui(n)),Object.keys(n.computed.fields).length===0&&t.push({code:"SCHEMA_ERROR",message:"ComputedSpec.fields must not be empty",path:"computed.fields"}),Object.keys(n.actions).length===0&&t.push({code:"SCHEMA_ERROR",message:"actions must not be empty",path:"actions"}),t.push(...di(n)),t.push(...yi(n,"state.fields")),t.push(...xi(n)),t.push(...Ei(n)),t.push(...hi(n)),t.push(...ki(n)),t.push(...bi(n));let a=$e(n.computed),i=Fe(a);G(i)&&t.push(i.error);let l=It(a);if(l)for(let b of l)t.push({code:"V-002",message:`Cyclic dependency: ${b.join(" -> ")}`,path:b[0]});let c=new Set(Object.keys(n.actions)),d=pi(n,c);t.push(...d);let m=fi(n);return t.push(...m),t.length>0?me(t):ve()}function ui(e){let t=[],r=(n,o)=>{for(let[a,i]of Object.entries(n)){let l=`${o}.${a}`;a.startsWith("$")&&t.push({code:"SCHEMA_ERROR",message:`State field "${a}" uses reserved namespace prefix "$"`,path:l}),i.type==="object"&&i.fields&&r(i.fields,l)}};if(r(e.state.fields,"state.fields"),e.state.fieldTypes)for(let n of Object.keys(e.state.fieldTypes))n.startsWith("$")&&t.push({code:"SCHEMA_ERROR",message:`state.fieldTypes.${n} uses reserved namespace prefix "$"`,path:`state.fieldTypes.${n}`});return t}function pi(e,t){let r=[];for(let[n,o]of Object.entries(e.actions)){let a=xe(o.flow);for(let i of a)t.has(i)||r.push({code:"V-004",message:`Unknown flow reference: "${i}" in action "${n}"`,path:`actions.${n}`})}return r}function xe(e){let t=[];switch(e.kind){case"call":t.push(e.flow);break;case"seq":for(let r of e.steps)t.push(...xe(r));break;case"if":t.push(...xe(e.then)),e.else&&t.push(...xe(e.else));break;case"causalGuard":t.push(...xe(e.body));break}return t}function fi(e){let t=[],r=new Map;for(let[i,l]of Object.entries(e.actions))r.set(i,xe(l.flow));let n=new Set,o=new Set;function a(i,l){n.add(i),o.add(i);let c=r.get(i)??[];for(let d of c)if(n.has(d)){if(o.has(d))return t.push({code:"V-005",message:`Cyclic call detected: ${[...l,d].join(" -> ")}`,path:`actions.${i}`}),!0}else if(a(d,[...l,d]))return!0;return o.delete(i),!1}for(let i of r.keys())n.has(i)||a(i,[i]);return t}function di(e){let t=[];if(e.state.fieldTypes)for(let r of Object.keys(e.state.fieldTypes))r in e.state.fields||t.push({code:"V-010",message:`state.fieldTypes.${r} has no matching state.fields entry`,path:`state.fieldTypes.${r}`}),t.push(...ee(e.state.fieldTypes[r],e.types,`state.fieldTypes.${r}`));if(e.context?.fieldTypes)for(let r of Object.keys(e.context.fieldTypes))r in e.context.fields||t.push({code:"V-010",message:`context.fieldTypes.${r} has no matching context.fields entry`,path:`context.fieldTypes.${r}`}),t.push(...ee(e.context.fieldTypes[r],e.types,`context.fieldTypes.${r}`));for(let[r,n]of Object.entries(e.actions)){if(!n.inputType){n.params&&n.params.length>0&&t.push(...Qt(r,n,e.types));continue}t.push(...ee(n.inputType,e.types,`actions.${r}.inputType`)),n.params&&n.params.length>0&&t.push(...Qt(r,n,e.types))}return t}function Qt(e,t,r){let n=t.params??[];if(n.length===0)return[];let o=[],a=new Set;for(let[c,d]of n.entries()){if(a.has(d)){o.push({code:"V-010",message:`Duplicate parameter name "${d}" is not allowed`,path:`actions.${e}.params.${c}`});continue}a.add(d)}let i=null;if(t.inputType?i=ft(t.inputType,r):t.input?.type==="object"&&t.input.fields&&(i=Object.keys(t.input.fields)),!i)return[...o,{code:"V-010",message:`actions.${e}.params requires an object-shaped input carrier`,path:`actions.${e}.params`}];let l=new Set(i);return[...o,...n.flatMap((c,d)=>l.has(c)?[]:[{code:"V-010",message:`Parameter "${c}" has no matching input field`,path:`actions.${e}.params.${d}`}])]}function ft(e,t,r=[]){if(e.kind==="ref"){if(r.includes(e.name))return null;let n=t[e.name];return n?ft(n.definition,t,[...r,e.name]):null}if(e.kind==="union"){let n=e.types.filter(o=>!mi(o,t,r));return n.length===1?ft(n[0],t,r):null}return e.kind==="object"?Object.keys(e.fields):null}function mi(e,t,r=[]){let n=K(e,t,r);return n?n.kind==="primitive"&&n.type==="null"||n.kind==="literal"&&n.value===null:!1}function ee(e,t,r,n=[]){let o=[];if(e.kind==="ref"){if(n.includes(e.name))return o.push({code:"V-010",message:`Cyclic type reference "${e.name}" in typing seam`,path:r}),o;let a=t[e.name];return!a||!K(e,t)?(o.push({code:"V-010",message:`Unknown type reference "${e.name}" in typing seam`,path:r}),o):(o.push(...ee(a.definition,t,r,[...n,e.name])),o)}switch(e.kind){case"array":return ee(e.element,t,`${r}.element`,n);case"record":{let a=[...ee(e.key,t,`${r}.key`,n),...ee(e.value,t,`${r}.value`,n)],i=K(e.key,t);return i&&(i.kind!=="primitive"||i.type!=="string")&&a.push({code:"V-010",message:"Record typing seams require string keys",path:`${r}.key`}),a}case"object":for(let[a,i]of Object.entries(e.fields))o.push(...ee(i.type,t,`${r}.fields.${a}.type`,n));return o;case"union":for(let[a,i]of e.types.entries())o.push(...ee(i,t,`${r}.types.${a}`,n));return o;default:return o}}function yi(e,t){let r=[],n=e.state,o=(a,i,l)=>{if(!a.required&&a.default===void 0&&r.push({code:"SCHEMA_ERROR",message:"Optional fields must define a default value",path:i}),a.default!==void 0){if(l){let c=F(a.default,l,e.types);c.ok||r.push({code:"V-009",message:`Default value type mismatch: ${c.message}`,path:i})}else if(a.default===null&&a.required!==!1)r.push({code:"V-009",message:`Default value 'null' is not compatible with required field type '${typeof a.type=="string"?a.type:"enum"}'`,path:i});else if(a.default!==null){let c=B(a.default,a);c.ok||r.push({code:"V-009",message:`Default value type mismatch: ${c.message}`,path:i})}}if(a.type==="object"&&a.fields)for(let[c,d]of Object.entries(a.fields)){let m=l?je(l,e.types,[{kind:"prop",name:c}]):null;o(d,`${i}.${c}`,m??void 0)}if(a.type==="array"&&a.items){let c=l?je(l,e.types,[{kind:"index",index:0}]):null;o(a.items,`${i}[]`,c??void 0)}};for(let[a,i]of Object.entries(n.fields))o(i,`${t}.${a}`,n.fieldTypes?.[a]);return r}function xi(e){let t=[];for(let[r,n]of Object.entries(e.computed.fields))for(let o of n.deps)Se(e.computed,o)||ne(e.state,o,e.types)||t.push({code:"V-001",message:`Unknown dependency path: ${o}`,path:`computed.fields.${r}`});return t}function hi(e){let t=[];for(let[r,n]of Object.entries(e.computed.fields)){let a=L(n.expr).filter(i=>i.startsWith("$")||Se(e.computed,i)?!1:i.startsWith("input.")||i.startsWith("system.")?!0:!ne(e.state,i,e.types));for(let i of a)t.push({code:"V-003",message:`Unknown path in computed expression: ${i}`,path:`computed.fields.${r}`})}return t}function Ei(e){let t=[];for(let[r,n]of Object.entries(e.computed.fields)){let o=L(n.expr);for(let a of o)gi(a)&&t.push({code:"V-012",message:`Computed expression must not read runtime or namespace path: ${a}`,path:`computed.fields.${r}`})}return t}function gi(e){return e==="input"||e.startsWith("input.")||e.startsWith("system.")||e.startsWith("meta.")?!0:e.startsWith("$")?!tr(e):!1}function ki(e){let t=[];for(let[r,n]of Object.entries(e.computed.fields)){let o=L(n.expr),a=new Set(n.deps),i=new Set(o.filter(l=>l.startsWith("$")||l==="input"||l.startsWith("input.")||l==="system"||l.startsWith("system.")||l==="meta"||l.startsWith("meta.")?!1:Se(e.computed,l)?!0:ne(e.state,l,e.types)));for(let l of i)a.has(l)||t.push({code:"V-001",message:`Missing dependency for computed expression path: ${l}`,path:`computed.fields.${r}`})}return t}function bi(e){let t=[];for(let[r,n]of Object.entries(e.actions)){let o=jt(n.flow);for(let a of o)pt(e,r,n,a,"flow",t);if(n.available)for(let a of L(n.available))pt(e,r,n,a,"available",t);if(n.dispatchable)for(let a of L(n.dispatchable))pt(e,r,n,a,"dispatchable",t)}return t}function pt(e,t,r,n,o,a){if(n.startsWith("$")){Si(e,t,n,o,a);return}if(n==="input"||n.startsWith("input.")){if(o!=="flow"&&o!=="dispatchable"){a.push({code:"V-003",message:`Input path is not allowed in ${o} expression: ${n}`,path:`actions.${t}`});return}if(r.inputType){let i=n==="input"?"":n.slice(6);Nt(r.inputType,e.types,i)||a.push({code:"V-003",message:`Unknown input path: ${n}`,path:`actions.${t}`})}else if(r.input){let i=n==="input"?"":n.slice(6);Je(r.input,i)||a.push({code:"V-003",message:`Unknown input path: ${n}`,path:`actions.${t}`})}return}Se(e.computed,n)||ne(e.state,n,e.types)||a.push({code:"V-003",message:`Unknown state path: ${n}`,path:`actions.${t}`})}function tr(e){return e==="$item"||e.startsWith("$item.")||e==="$index"||e==="$array"}function Si(e,t,r,n,o){if(!tr(r)){if(r==="$runtime"||r.startsWith("$runtime.")){n!=="flow"&&o.push({code:"V-003",message:`$runtime is not allowed in ${n} expression: ${r}`,path:`actions.${t}`});return}if(r==="$context"||r.startsWith("$context.")){if(n!=="flow"){o.push({code:"V-003",message:`$context is not allowed in ${n} expression: ${r}`,path:`actions.${t}`});return}if(!e.context){o.push({code:"V-003",message:`Schema does not declare user context path: ${r}`,path:`actions.${t}`});return}if(r!=="$context"){let a=r.slice(9);ne(e.context,a,e.types)||o.push({code:"V-003",message:`Unknown user context path: ${r}`,path:`actions.${t}`})}return}o.push({code:"V-003",message:`Namespace or reserved runtime path is not allowed in action expression: ${r}`,path:`actions.${t}`})}}function rr(e,t,r){let n=oe(t.meta.timestamp);return nr(e,t,r,n)}function nr(e,t,r,n){if(e.computed.fields[r]!==void 0)return vi(e,t,r,n);if(r.startsWith("system.")){let a=W(t.system,r.slice(7));return{value:a,trace:E(n,"expr",r,{path:r},a,[]),deps:[]}}if(r.startsWith("input.")||r==="input"){let a=r==="input"?t.input:W(t.input,r.slice(6));return{value:a,trace:E(n,"expr",r,{path:r},a,[]),deps:[]}}let o=W(t.state,r);return{value:o,trace:E(n,"expr",r,{path:r},o,[]),deps:[]}}function vi(e,t,r,n){let o=e.computed.fields[r];if(!o){let d=t.computed[r];return{value:d,trace:E(n,"computed",r,{path:r},d,[]),deps:[]}}let a=H(t,e,null,r,void 0,n),i=f(o.expr,a),l=fe(i)?i.value:null,c=o.deps.map(d=>nr(e,t,d,n).trace);return{value:l,trace:E(n,"computed",r,{expr:o.expr},l,c),deps:o.deps}}function Sc(e){let t={};for(let[r,n]of Object.entries(e.fields))n.default!==void 0&&(t[r]=n.default);return t}function Xc(e,t,r){return{state:e,computed:{},system:qt(),input:void 0,meta:{version:0,timestamp:r.runtime.time.timestamp,randomSeed:r.runtime.random.seed,schemaHash:t},namespaces:Ut()}}function Qc(e,t,r){return r===void 0&&typeof t=="string"?{type:e,input:void 0,intentId:t}:r===void 0?{type:e,input:t,intentId:""}:{type:e,input:t,intentId:r}}function lu(){return{compute:_t,computeSync:it,apply:Ht,applyNamespaceDeltas:Kt,applySystemDelta:Ue,validate:er,explain:rr,isActionAvailable:Ft,getAvailableActions:Vt,isIntentDispatchable:Ot,validateExternalContext:qe}}export{Yo as AbsExpr,Yt as ActionSpec,Zo as AddExpr,Uo as AndExpr,Ca as AppendExpr,ka as AtExpr,ai as CallFlow,ni as CausalGuardFlow,ea as CeilExpr,Wa as CoalesceExpr,ol as ComputeResult,uo as ComputeStatus,Ja as ComputedFieldSpec,Jt as ComputedSpec,sa as ConcatExpr,$t as Context,li as ContextSpec,Ai as CoreErrorCode,Go as DivExpr,Xt as DomainSchema,oi as EffectFlow,ma as EndsWithExpr,Va as EntriesExpr,Co as EnumFieldType,$o as EqExpr,rt as ErrorValue,Ra as EveryExpr,il as ExplainResult,Ul as ExprKind,p as ExprNodeSchema,si as FailFlow,Fa as FieldExpr,Ne as FieldSpec,zo as FieldType,Aa as FilterExpr,Ta as FindExpr,ba as FirstExpr,Ia as FlatExpr,Qo as FloorExpr,Kl as FlowKind,ye as FlowNodeSchema,Qa as FlowPatchPath,Xa as FlowPatchSegment,so as FlowPosition,La as FromEntriesExpr,Io as GetExpr,Do as GtExpr,Oo as GteExpr,ii as HaltFlow,Ua as HasKeyExpr,Lo as IfExpr,ti as IfFlow,Na as IncludesExpr,xa as IndexOfExpr,Ms as Intent,Ha as IsNullExpr,Qe as JsonValue,Da as KeysExpr,Sa as LastExpr,ga as LenExpr,Po as LitExpr,Vo as LtExpr,qo as LteExpr,wa as MapExpr,ia as MaxArrayExpr,Jo as MaxExpr,qa as MergeExpr,aa as MinArrayExpr,Bo as MinExpr,Ko as ModExpr,Wo as MulExpr,fo as NamespaceDelta,Xo as NegExpr,Fo as NeqExpr,Mo as NotExpr,$a as ObjectExpr,Ma as OmitExpr,_o as OrExpr,tt as Patch,ri as PatchFlow,Ya as PatchOp,et as PatchPath,io as PatchSegment,_a as PickExpr,na as PowExpr,jo as PrimitiveFieldType,ha as ReplaceExpr,nt as Requirement,Xi as Result,za as ReverseExpr,ta as RoundExpr,ci as SchemaMeta,Y as SemanticPath,ei as SeqFlow,va as SliceExpr,Ys as Snapshot,lo as SnapshotMeta,co as SnapshotNamespaces,ja as SomeExpr,Ea as SplitExpr,ra as SqrtExpr,da as StartsWithExpr,ut as StateSpec,ya as StrIncludesExpr,fa as StrLenExpr,Ho as SubExpr,la as SubstringExpr,oa as SumArrayExpr,po as SystemDelta,ot as SystemState,Ba as ToBooleanExpr,ua as ToLowerCaseExpr,Ka as ToNumberExpr,Ga as ToStringExpr,pa as ToUpperCaseExpr,Et as TraceGraph,Ee as TraceNode,mr as TraceNodeKind,yr as TraceTermination,ca as TrimExpr,J as TypeDefinition,Bt as TypeSpec,Za as TypeofExpr,Pa as UniqueExpr,mo as ValidationError,al as ValidationResult,Oa as ValuesExpr,Ht as apply,Kt as applyNamespaceDeltas,Ue as applySystemDelta,$e as buildDependencyGraph,Ci as canonicalEqual,ue as compareUnicodeCodePoints,_t as compute,it as computeSync,H as createContext,lu as createCore,x as createError,zt as createFlowState,Ut as createInitialNamespaces,qt as createInitialSystemState,Qc as createIntent,Xc as createSnapshot,oe as createTraceContext,E as createTraceNode,It as detectCycles,$ as err,Ve as evaluateActionAvailability,ao as evaluateAvailableActions,de as evaluateComputed,f as evaluateExpr,bs as evaluateFlow,le as evaluateFlowSync,Dt as evaluateIntentDispatchability,Ps as evaluateSingleComputed,rr as explain,Sc as extractDefaults,lt as findJsonValueViolation,ji as fromCanonical,Fi as generateRequirementId,xt as generateRequirementIdSync,ht as generateTraceId,Vt as getAvailableActions,gr as getByPatchPath,W as getByPath,Ns as getTransitiveDeps,Hi as hasPath,dr as hashSchema,Ii as hashSchemaEffective,$i as hashSchemaEffectiveSync,We as hashSchemaSync,Zs as indexSegment,me as invalidResult,Ft as isActionAvailable,G as isErr,wi as isErrorValue,Ot as isIntentDispatchable,fe as isOk,ke as isSafePatchPath,Mi as joinPath,Gi as lastSegment,Re as mergeAtPatchPath,Zi as mergeAtPath,Gs as mergePatch,u as ok,Wi as parentPath,V as parsePath,ie as patchPathToDisplayString,Ls as propSegment,St as semanticPathToPatchPath,be as setByPatchPath,xr as setByPath,Hs as setPatch,yt as sha256,we as sha256Sync,Ze as sortKeys,te as toCanonical,Ri as toJcs,Fe as topologicalSort,Te as unsetByPatchPath,Li as unsetByPath,Ws as unsetPatch,ve as validResult,er as validate,qe as validateExternalContext,Mt as validateIntentInput,re as withCollectionContext,ae as withNodePath,ge as withSnapshot};
@@ -0,0 +1,17 @@
1
+ import { z } from "zod";
2
+ export type JsonValue = null | string | number | boolean | readonly JsonValue[] | {
3
+ readonly [key: string]: JsonValue;
4
+ };
5
+ export declare const JsonValue: z.ZodType<JsonValue>;
6
+ export type Context<TExternalContext extends Record<string, JsonValue> = Record<string, JsonValue>> = {
7
+ readonly runtime: {
8
+ readonly time: {
9
+ readonly timestamp: number;
10
+ };
11
+ readonly random: {
12
+ readonly seed: string;
13
+ };
14
+ };
15
+ readonly external: TExternalContext;
16
+ };
17
+ export declare const Context: z.ZodType<Context>;
@@ -1,4 +1,9 @@
1
1
  import { z } from "zod";
2
+ export declare const ContextSpec: z.ZodObject<{
3
+ fields: z.ZodRecord<z.ZodString, z.ZodType<import("./field.js").FieldSpec, unknown, z.core.$ZodTypeInternals<import("./field.js").FieldSpec, unknown>>>;
4
+ fieldTypes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<import("./type-spec.js").TypeDefinition, unknown, z.core.$ZodTypeInternals<import("./type-spec.js").TypeDefinition, unknown>>>>;
5
+ }, z.core.$strip>;
6
+ export type ContextSpec = z.infer<typeof ContextSpec>;
2
7
  /**
3
8
  * Schema metadata
4
9
  */
@@ -28,6 +33,10 @@ export declare const DomainSchema: z.ZodObject<{
28
33
  fields: z.ZodRecord<z.ZodString, z.ZodType<import("./field.js").FieldSpec, unknown, z.core.$ZodTypeInternals<import("./field.js").FieldSpec, unknown>>>;
29
34
  fieldTypes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<import("./type-spec.js").TypeDefinition, unknown, z.core.$ZodTypeInternals<import("./type-spec.js").TypeDefinition, unknown>>>>;
30
35
  }, z.core.$strip>;
36
+ context: z.ZodOptional<z.ZodObject<{
37
+ fields: z.ZodRecord<z.ZodString, z.ZodType<import("./field.js").FieldSpec, unknown, z.core.$ZodTypeInternals<import("./field.js").FieldSpec, unknown>>>;
38
+ fieldTypes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<import("./type-spec.js").TypeDefinition, unknown, z.core.$ZodTypeInternals<import("./type-spec.js").TypeDefinition, unknown>>>>;
39
+ }, z.core.$strip>>;
31
40
  computed: z.ZodObject<{
32
41
  fields: z.ZodRecord<z.ZodString, z.ZodObject<{
33
42
  deps: z.ZodArray<z.ZodString>;
@@ -6,7 +6,7 @@ import { type ExprNode } from "./expr.js";
6
6
  * Flows do NOT return values; they modify Snapshot.
7
7
  * Flows are NOT Turing-complete; they always terminate.
8
8
  */
9
- export type FlowNode = SeqFlow | IfFlow | PatchFlow | EffectFlow | CallFlow | HaltFlow | FailFlow;
9
+ export type FlowNode = SeqFlow | IfFlow | PatchFlow | CausalGuardFlow | EffectFlow | CallFlow | HaltFlow | FailFlow;
10
10
  /**
11
11
  * Patch operations
12
12
  */
@@ -16,6 +16,35 @@ export declare const PatchOp: z.ZodEnum<{
16
16
  merge: "merge";
17
17
  }>;
18
18
  export type PatchOp = z.infer<typeof PatchOp>;
19
+ /**
20
+ * FlowPatchSegment - Patch target segment used inside Flow evaluation.
21
+ *
22
+ * Unlike apply-time PatchPath segments, Flow patch targets may carry expression
23
+ * segments. Core resolves those expressions during compute() before emitting
24
+ * concrete Patch[].
25
+ */
26
+ export declare const FlowPatchSegment: z.ZodDiscriminatedUnion<[z.ZodObject<{
27
+ kind: z.ZodLiteral<"prop">;
28
+ name: z.ZodString;
29
+ }, z.core.$strip>, z.ZodObject<{
30
+ kind: z.ZodLiteral<"index">;
31
+ index: z.ZodNumber;
32
+ }, z.core.$strip>, z.ZodObject<{
33
+ kind: z.ZodLiteral<"expr">;
34
+ expr: z.ZodType<ExprNode, unknown, z.core.$ZodTypeInternals<ExprNode, unknown>>;
35
+ }, z.core.$strip>], "kind">;
36
+ export type FlowPatchSegment = z.infer<typeof FlowPatchSegment>;
37
+ export declare const FlowPatchPath: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
38
+ kind: z.ZodLiteral<"prop">;
39
+ name: z.ZodString;
40
+ }, z.core.$strip>, z.ZodObject<{
41
+ kind: z.ZodLiteral<"index">;
42
+ index: z.ZodNumber;
43
+ }, z.core.$strip>, z.ZodObject<{
44
+ kind: z.ZodLiteral<"expr">;
45
+ expr: z.ZodType<ExprNode, unknown, z.core.$ZodTypeInternals<ExprNode, unknown>>;
46
+ }, z.core.$strip>], "kind">>;
47
+ export type FlowPatchPath = z.infer<typeof FlowPatchPath>;
19
48
  /**
20
49
  * seq - Execute steps in order
21
50
  */
@@ -50,10 +79,25 @@ export declare const PatchFlow: z.ZodObject<{
50
79
  }, z.core.$strip>, z.ZodObject<{
51
80
  kind: z.ZodLiteral<"index">;
52
81
  index: z.ZodNumber;
82
+ }, z.core.$strip>, z.ZodObject<{
83
+ kind: z.ZodLiteral<"expr">;
84
+ expr: z.ZodType<ExprNode, unknown, z.core.$ZodTypeInternals<ExprNode, unknown>>;
53
85
  }, z.core.$strip>], "kind">>;
54
86
  value: z.ZodOptional<z.ZodType<ExprNode, unknown, z.core.$ZodTypeInternals<ExprNode, unknown>>>;
55
87
  }, z.core.$strip>;
56
88
  export type PatchFlow = z.infer<typeof PatchFlow>;
89
+ /**
90
+ * causalGuard - Core-owned per-intent re-entry guard.
91
+ *
92
+ * This is a generic Flow primitive. Frontends may lower their syntax into it,
93
+ * but Core does not know which frontend produced it.
94
+ */
95
+ export declare const CausalGuardFlow: z.ZodType<{
96
+ kind: "causalGuard";
97
+ guardId: string;
98
+ body: FlowNode;
99
+ }>;
100
+ export type CausalGuardFlow = z.infer<typeof CausalGuardFlow>;
57
101
  /**
58
102
  * effect - External operation requirement declaration
59
103
  * Effects are NOT executed by Core. They are declarations recorded in Snapshot.
@@ -104,5 +148,6 @@ export declare const FlowKind: z.ZodEnum<{
104
148
  halt: "halt";
105
149
  fail: "fail";
106
150
  seq: "seq";
151
+ causalGuard: "causalGuard";
107
152
  }>;
108
153
  export type FlowKind = z.infer<typeof FlowKind>;
@@ -6,9 +6,9 @@ export * from "./computed.js";
6
6
  export * from "./action.js";
7
7
  export * from "./domain.js";
8
8
  export * from "./type-spec.js";
9
+ export * from "./context.js";
9
10
  export * from "./snapshot.js";
10
11
  export * from "./defaults.js";
11
12
  export * from "./patch.js";
12
- export * from "./host-context.js";
13
13
  export * from "./trace.js";
14
14
  export * from "./result.js";
@@ -11,7 +11,11 @@ export declare const PatchSegment: z.ZodDiscriminatedUnion<[z.ZodObject<{
11
11
  }, z.core.$strip>], "kind">;
12
12
  export type PatchSegment = z.infer<typeof PatchSegment>;
13
13
  /**
14
- * PatchPath - Path segments rooted at snapshot.data.
14
+ * PatchPath - Root-relative path segments.
15
+ *
16
+ * The transition channel determines the root:
17
+ * - ComputeResult.patches: snapshot.state
18
+ * - NamespaceDelta.patches: snapshot.namespaces[namespace]
15
19
  */
16
20
  export declare const PatchPath: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
17
21
  kind: z.ZodLiteral<"prop">;