@manifesto-ai/core 5.1.0 → 5.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/package.json +6 -6
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
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};
|
|
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.hasOwn(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.hasOwn(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.hasOwn(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.hasOwn(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.hasOwn(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.hasOwn(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};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@manifesto-ai/core",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.1",
|
|
4
4
|
"description": "Manifesto Core - Pure semantic calculator for deterministic state computation",
|
|
5
5
|
"author": "eggplantiny <eggplantiny@gmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -38,17 +38,17 @@
|
|
|
38
38
|
"zod": "^4.3.6"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"typescript": "^
|
|
42
|
-
"vite": "^8.0.
|
|
43
|
-
"vitest": "^4.1.
|
|
44
|
-
"zod": "^4.3
|
|
41
|
+
"typescript": "^6.0.3",
|
|
42
|
+
"vite": "^8.0.16",
|
|
43
|
+
"vitest": "^4.1.9",
|
|
44
|
+
"zod": "^4.4.3",
|
|
45
45
|
"@manifesto-ai/cts-kit": "5.0.0"
|
|
46
46
|
},
|
|
47
47
|
"scripts": {
|
|
48
48
|
"build": "rm -rf dist && tsup && tsc -p tsconfig.build.json --emitDeclarationOnly --declarationMap false --outDir dist",
|
|
49
49
|
"dev": "tsc --watch",
|
|
50
50
|
"clean": "rm -rf dist",
|
|
51
|
-
"lint": "node ../../
|
|
51
|
+
"lint": "node ../../scripts/run-biome.mjs check src",
|
|
52
52
|
"test": "node ../../scripts/run-vitest.mjs run",
|
|
53
53
|
"test:coverage": "node ../../scripts/run-vitest.mjs run --coverage"
|
|
54
54
|
}
|