@graphrefly/graphrefly 0.40.0 → 0.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/dist/{chunk-6XVD5TZV.js → chunk-2W553JJC.js} +1 -1
  2. package/dist/{chunk-WL6LFPJB.js → chunk-33N4TU3X.js} +1 -1
  3. package/dist/{chunk-RZJDIV2G.js → chunk-4MKL6Q3K.js} +1 -1
  4. package/dist/chunk-5B3JDG5F.js +1 -0
  5. package/dist/{chunk-K2Z7UENB.js → chunk-5QSXEMXG.js} +1 -1
  6. package/dist/{chunk-ECQRP2UT.js → chunk-5TEFC2ZX.js} +1 -1
  7. package/dist/{chunk-SVFKHUCW.js → chunk-5TOPVRN6.js} +1 -1
  8. package/dist/{chunk-XJLYLLIJ.js → chunk-5VEZLQFN.js} +1 -1
  9. package/dist/{chunk-32N3JALT.js → chunk-7PQLZMOG.js} +1 -1
  10. package/dist/{chunk-2QXRYP7Q.js → chunk-AI7QC7J6.js} +1 -1
  11. package/dist/{chunk-FHRBBHJN.js → chunk-AK5RHMC5.js} +1 -1
  12. package/dist/{chunk-B7LCDQEV.js → chunk-CGNOWGV6.js} +1 -1
  13. package/dist/{chunk-LCGAVGGV.js → chunk-CYOSWFT2.js} +1 -1
  14. package/dist/{chunk-VMF23LGB.js → chunk-EC2WNSZ7.js} +1 -1
  15. package/dist/{chunk-UWA6D7UF.js → chunk-ELAASRBT.js} +1 -1
  16. package/dist/{chunk-Z4F3DOWS.js → chunk-F7VUYPP6.js} +1 -1
  17. package/dist/{chunk-LYM4PBMV.js → chunk-G3M3IMEV.js} +1 -1
  18. package/dist/{chunk-SSCGRYJ2.js → chunk-GI4Q7PNY.js} +1 -1
  19. package/dist/{chunk-7Q4ZD3YW.js → chunk-H5SCWHWP.js} +1 -1
  20. package/dist/{chunk-6I726LZU.js → chunk-KNVCCBIU.js} +1 -1
  21. package/dist/{chunk-CKFQS2CJ.js → chunk-L77I47VU.js} +1 -1
  22. package/dist/{chunk-I2DEVPMU.js → chunk-M3FQSXEW.js} +1 -1
  23. package/dist/{chunk-WUT362QV.js → chunk-OLIKJUKI.js} +1 -1
  24. package/dist/{chunk-QSK3RRII.js → chunk-OV5AA6HJ.js} +1 -1
  25. package/dist/{chunk-2BX4NB34.js → chunk-POXANAJ6.js} +1 -1
  26. package/dist/chunk-RSMEXK53.js +43 -0
  27. package/dist/{chunk-MNZIKXK4.js → chunk-SC27WTSG.js} +1 -1
  28. package/dist/{chunk-YXDRGKXP.js → chunk-TT4C7DXW.js} +1 -1
  29. package/dist/{chunk-2DMKW2AD.js → chunk-UISPDFJ3.js} +1 -1
  30. package/dist/{chunk-J63M5U46.js → chunk-URJ2VFNC.js} +1 -1
  31. package/dist/{chunk-XW4YDF6G.js → chunk-VV62MIG4.js} +1 -1
  32. package/dist/{chunk-756D5TFD.js → chunk-VXPLLA4P.js} +1 -1
  33. package/dist/{chunk-PPUYQ66A.js → chunk-WZYB3JQS.js} +1 -1
  34. package/dist/{chunk-6VWBPSSY.js → chunk-X7QKTXXC.js} +1 -1
  35. package/dist/{chunk-JKBOIJ22.js → chunk-YQRN4CIV.js} +1 -1
  36. package/dist/chunk-Z6X7B6A4.js +61 -0
  37. package/dist/{chunk-N43XM7BM.js → chunk-ZAJ7J7TO.js} +1 -1
  38. package/dist/compat/index.js +1 -1
  39. package/dist/compat/nestjs/index.js +1 -1
  40. package/dist/compat/zustand/index.js +1 -1
  41. package/dist/extra/index.js +1 -1
  42. package/dist/extra/node.js +1 -1
  43. package/dist/extra/operators.js +1 -1
  44. package/dist/extra/reactive.js +1 -1
  45. package/dist/extra/sources.js +1 -1
  46. package/dist/graph/index.js +1 -1
  47. package/dist/{index-IUCY0OFN.d.ts → index-CG33HeBW.d.ts} +17 -2
  48. package/dist/{index-BTHOTC0Q.d.cts → index-DGD4_fj6.d.cts} +17 -2
  49. package/dist/{index-D1IEZUsj.d.ts → index-DfOK_oL5.d.ts} +204 -199
  50. package/dist/{index-DJ_MPOJ5.d.cts → index-DuRsN9ae.d.cts} +204 -199
  51. package/dist/index.cjs +46 -46
  52. package/dist/index.d.cts +2 -2
  53. package/dist/index.d.ts +2 -2
  54. package/dist/index.js +1 -1
  55. package/dist/patterns/ai/browser.js +1 -1
  56. package/dist/patterns/ai/index.cjs +11 -11
  57. package/dist/patterns/ai/index.js +1 -1
  58. package/dist/patterns/ai/node.js +1 -1
  59. package/dist/patterns/audit/index.js +1 -1
  60. package/dist/patterns/cqrs/index.js +1 -1
  61. package/dist/patterns/demo-shell/index.js +1 -1
  62. package/dist/patterns/domain-templates/index.js +1 -1
  63. package/dist/patterns/graphspec/index.js +1 -1
  64. package/dist/patterns/guarded-execution/index.js +1 -1
  65. package/dist/patterns/harness/index.cjs +8 -8
  66. package/dist/patterns/harness/index.d.cts +4 -4
  67. package/dist/patterns/harness/index.d.ts +4 -4
  68. package/dist/patterns/harness/index.js +1 -1
  69. package/dist/patterns/job-queue/index.cjs +3 -3
  70. package/dist/patterns/job-queue/index.d.cts +1 -1
  71. package/dist/patterns/job-queue/index.d.ts +1 -1
  72. package/dist/patterns/job-queue/index.js +1 -1
  73. package/dist/patterns/lens/index.js +1 -1
  74. package/dist/patterns/memory/index.js +1 -1
  75. package/dist/patterns/messaging/index.js +1 -1
  76. package/dist/patterns/orchestration/index.js +1 -1
  77. package/dist/patterns/process/index.js +1 -1
  78. package/dist/patterns/reactive-layout/index.js +1 -1
  79. package/dist/patterns/reduction/index.js +1 -1
  80. package/dist/patterns/refine-loop/index.js +1 -1
  81. package/dist/patterns/resilient-pipeline/index.js +1 -1
  82. package/dist/patterns/surface/index.js +1 -1
  83. package/dist/{resilience-S33JV6XC.js → resilience-JISHQD2F.js} +1 -1
  84. package/package.json +1 -1
  85. package/dist/chunk-INQFTVZA.js +0 -61
  86. package/dist/chunk-OSZ22J7O.js +0 -1
  87. package/dist/chunk-YKD7WUYJ.js +0 -43
@@ -1,19 +1,19 @@
1
- "use strict";var On=Object.defineProperty;var qs=Object.getOwnPropertyDescriptor;var Ws=Object.getOwnPropertyNames;var Hs=Object.prototype.hasOwnProperty;var me=(t,e)=>()=>(t&&(e=t(t=0)),e);var An=(t,e)=>{for(var n in e)On(t,n,{get:e[n],enumerable:!0})},Js=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Ws(e))!Hs.call(t,o)&&o!==n&&On(t,o,{get:()=>e[o],enumerable:!(r=qs(e,o))||r.enumerable});return t};var Ys=t=>Js(On({},"__esModule",{value:!0}),t);function Wr(t,e){let n=new TextEncoder().encode(t.name);if(n.length===0||n.length>255)throw new Error(`encodeEnvelope: codec name "${t.name}" encodes to ${n.length} bytes (must be 1\u2013255)`);let r=t.version;if(!Number.isInteger(r)||r<0||r>65535)throw new Error(`encodeEnvelope: codec.version ${r} out of u16 range (expected integer 0\u201365535)`);let o=2+n.length+2+e.length;if(o>4294967295)throw new Error(`encodeEnvelope: total envelope size ${o} exceeds 2^32-1 bytes (payload ${e.length} bytes)`);let s=new Uint8Array(o),a=0;return s[a++]=Cn,s[a++]=n.length,s.set(n,a),a+=n.length,s[a++]=r>>>8&255,s[a++]=r&255,s.set(e,a),s}function Hr(t,e){if(t.length<qr)throw new Error(`decodeEnvelope: bytes too short (${t.length} < ${qr})`);let n=0,r=t[n++];if(r!==Cn)throw new Error(`decodeEnvelope: unsupported envelope version ${r} (expected ${Cn})`);let o=t[n++];if(o===0)throw new Error("decodeEnvelope: name_len must be >= 1");if(n+o+2>t.length)throw new Error(`decodeEnvelope: envelope truncated (need ${n+o+2} bytes, have ${t.length})`);let s=new TextDecoder().decode(t.subarray(n,n+o));n+=o;let a=(t[n]<<8|t[n+1])>>>0;n+=2;let i=t.subarray(n),d=e.lookupCodec(s);if(d==null)throw new Error(`decodeEnvelope: codec "${s}" not registered (envelope codec_v=${a})`);return{codec:d,codecVersion:a,payload:i}}function Jr(t){t.registerCodec(Qs)}var Qs,Cn,qr,Ln=me(()=>{"use strict";Qs={name:"json",version:1,contentType:"application/json",encode(t){let e=JSON.stringify(t);return new TextEncoder().encode(e)},decode(t,e){let n=new TextDecoder().decode(t);return JSON.parse(n)}},Cn=1,qr=4});function $t(t){if(t==null)return st;let{type:e,id:n,...r}=t;return{type:e??"system",id:n??"",...r}}var st,jt=me(()=>{"use strict";st={type:"system",id:""}});function Bt(){return it>0||xt}function Yr(){return it>0}function dt(t){it>0?Rt.push(t):t()}function ne(t){it+=1;let e=!1;try{t()}catch(n){throw e=!0,n}finally{if(it-=1,it===0)if(e){if(!xt){let n=Rt.splice(0);for(let r of n)try{r()}catch{}We.length=0,He.length=0,at.length=0}}else Xs()}}function Xs(){let t=!xt;t&&(xt=!0);let e=[],n=0;try{for(;We.length>0||He.length>0||at.length>0||t&&Rt.length>0;){if(t&&Rt.length>0){let s=Rt.splice(0);for(let a of s)try{a()}catch(i){e.push(i)}continue}if(n+=1,n>1e3)throw We.length=0,He.length=0,at.length=0,new Error("batch drain exceeded 1000 iterations \u2014 likely a reactive cycle");let o=(We.length>0?We:He.length>0?He:at).splice(0);for(let s of o)try{s()}catch(a){e.push(a)}}}finally{t&&(xt=!1)}if(e.length===1)throw e[0];if(e.length>1)throw new AggregateError(e,"batch drain: multiple callbacks threw")}function Vt(t,e,n){if(e.length===0)return;if(e.length===1){let c=n(e[0][0]);if(c<3||!Bt()){t(e);return}(c>=5?at:c===4?He:We).push(()=>t(e));return}let r=e.length,o=r,s=r,a=r,i=0;for(;i<r&&n(e[i][0])<3;)i++;for(o=i;i<r&&n(e[i][0])===3;)i++;for(s=i;i<r&&n(e[i][0])===4;)i++;a=i;let d=Bt();if(o>0){let c=e.slice(0,o);t(c)}if(s>o){let c=e.slice(o,s);d?We.push(()=>t(c)):t(c)}if(a>s){let c=e.slice(s,a);d?He.push(()=>t(c)):t(c)}if(r>a){let c=e.slice(a,r);d?at.push(()=>t(c)):t(c)}}var it,xt,We,He,at,Rt,_e=me(()=>{"use strict";it=0,xt=!1,We=[],He=[],at=[],Rt=[]});function z(){return Math.trunc(performance.now()*1e6)}function ie(){return Date.now()*1e6}var ge=me(()=>{"use strict"});var je,D,X,U,Oe,xe,Ae,ue,$,P,Je,Kt,Qr,zt,Xr,Zr,Ut,Dn,In,Pn,qt,se=me(()=>{"use strict";je=Symbol.for("graphrefly/START"),D=Symbol.for("graphrefly/DATA"),X=Symbol.for("graphrefly/DIRTY"),U=Symbol.for("graphrefly/RESOLVED"),Oe=Symbol.for("graphrefly/INVALIDATE"),xe=Symbol.for("graphrefly/PAUSE"),Ae=Symbol.for("graphrefly/RESUME"),ue=Symbol.for("graphrefly/TEARDOWN"),$=Symbol.for("graphrefly/COMPLETE"),P=Symbol.for("graphrefly/ERROR"),Je=Object.freeze([X]),Kt=Object.freeze([U]),Qr=Object.freeze([Oe]),zt=Object.freeze([je]),Xr=Object.freeze([$]),Zr=Object.freeze([ue]),Ut=Object.freeze([Je]),Dn=Object.freeze([Kt]),In=Object.freeze([Qr]),Pn=Object.freeze([Xr]),qt=Object.freeze([Zr])});function eo(t){t.registerMessageType(je,{tier:0,wireCrossing:!1}),t.registerMessageType(X,{tier:1,wireCrossing:!1}),t.registerMessageType(Oe,{tier:1,wireCrossing:!1,metaPassthrough:!1}),t.registerMessageType(xe,{tier:2,wireCrossing:!1}),t.registerMessageType(Ae,{tier:2,wireCrossing:!1}),t.registerMessageType(D,{tier:3,wireCrossing:!0}),t.registerMessageType(U,{tier:3,wireCrossing:!0}),t.registerMessageType($,{tier:4,wireCrossing:!0,metaPassthrough:!1}),t.registerMessageType(P,{tier:4,wireCrossing:!0,metaPassthrough:!1}),t.registerMessageType(ue,{tier:5,wireCrossing:!0,metaPassthrough:!1})}var Wt,to=me(()=>{"use strict";se();Wt=class{_messageTypes=new Map;_codecs=new Map;_onMessage;_onSubscribe;_defaultVersioning;_defaultHashFn;_inspectorEnabled=!(typeof process<"u"&&process.env?.NODE_ENV==="production");_globalInspector;_rigorRecorder;_frozen=!1;tierOf;constructor(e){this._onMessage=e.onMessage,this._onSubscribe=e.onSubscribe,this._defaultVersioning=e.defaultVersioning,this._defaultHashFn=e.defaultHashFn,this.tierOf=n=>{let r=this._messageTypes.get(n);return r!=null?r.tier:1}}get onMessage(){return this._frozen=!0,this._onMessage}get onSubscribe(){return this._frozen=!0,this._onSubscribe}set onMessage(e){this._assertUnfrozen(),this._onMessage=e}set onSubscribe(e){this._assertUnfrozen(),this._onSubscribe=e}get defaultVersioning(){return this._defaultVersioning}set defaultVersioning(e){this._assertUnfrozen(),this._defaultVersioning=e}get defaultHashFn(){return this._defaultHashFn}set defaultHashFn(e){this._assertUnfrozen(),this._defaultHashFn=e}get inspectorEnabled(){return this._inspectorEnabled}set inspectorEnabled(e){this._inspectorEnabled=e}get globalInspector(){return this._globalInspector}set globalInspector(e){this._globalInspector=e}get rigorRecorder(){return this._rigorRecorder}set rigorRecorder(e){this._rigorRecorder=e}registerMessageType(e,n){return this._assertUnfrozen(),this._messageTypes.set(e,{tier:n.tier,wireCrossing:n.wireCrossing??n.tier>=3,metaPassthrough:n.metaPassthrough??!0}),this}messageTier(e){let n=this._messageTypes.get(e);return n!=null?n.tier:1}isWireCrossing(e){let n=this._messageTypes.get(e);return n!=null?n.wireCrossing:!0}isLocalOnly(e){return!this.isWireCrossing(e)}isMetaPassthrough(e){let n=this._messageTypes.get(e);return n!=null?n.metaPassthrough:!0}isKnownMessageType(e){return this._messageTypes.has(e)}registerCodec(e){return this._assertUnfrozen(),this._codecs.set(e.name,e),this}lookupCodec(e){return this._codecs.get(e)}_isFrozen(){return this._frozen}_assertUnfrozen(){if(this._frozen)throw new Error("GraphReFlyConfig is frozen: a node has already captured this config. Register custom types and set hooks before creating any node.")}}});function no(t){return Array.isArray(t)?[...t]:[t]}function Zs(t,e){return t.has(e)||t.has("*")}function ro(t){let e=[];return t((o,s)=>{e.push({kind:"allow",actions:new Set(no(o)),where:s?.where??(()=>!0)})},(o,s)=>{e.push({kind:"deny",actions:new Set(no(o)),where:s?.where??(()=>!0)})}),(o,s)=>{let a=!1,i=!1;for(let d of e)Zs(d.actions,s)&&d.where(o)&&(d.kind==="deny"?a=!0:i=!0);return a?!1:i}}function Gn(t){let e=ei.filter(n=>t({type:n,id:""},"write"));return e.length===0?"restricted":e.includes("human")&&e.includes("llm")&&e.every(n=>n==="human"||n==="llm"||n==="system")?"both":e.length===1?e[0]:e.join("+")}var Ce,ei,ct=me(()=>{"use strict";Ce=class extends Error{actor;action;nodeName;constructor(e,n){super(n??`GuardDenied: action "${String(e.action)}" denied for actor type "${String(e.actor.type)}"`),this.name="GuardDenied",this.actor=e.actor,this.action=e.action,this.nodeName=e.nodeName}get node(){return this.nodeName}};ei=["human","llm","wallet","system"]});function Fn(t){if(t===void 0)return null;if(typeof t=="number"){if(!Number.isFinite(t))throw new TypeError(`Cannot hash non-finite number: ${t}`);if(Number.isInteger(t)&&!Number.isSafeInteger(t))throw new TypeError(`Cannot hash integer outside safe range (|n| > 2^53-1): ${t}. Cross-language cid parity is not guaranteed for unsafe integers.`);return t}if(typeof t=="string"||typeof t=="boolean"||t===null)return t;if(Array.isArray(t))return t.map(Fn);if(typeof t=="object"&&t!==null){let e={};for(let n of Object.keys(t).sort())e[n]=Fn(t[n]);return e}return null}function ri(t){let e=ni.encode(t),n=e.length,r=n*8,o=n+9+63&-64,s=new Uint8Array(o);s.set(e),s[n]=128;let a=new DataView(s.buffer);a.setUint32(o-4,r>>>0,!1),a.setUint32(o-8,Math.floor(r/4294967296)>>>0,!1);let i=1779033703,d=3144134277,c=1013904242,u=2773480762,l=1359893119,p=2600822924,f=528734635,m=1541459225,h=new Uint32Array(64),g=(T,b)=>T>>>b|T<<32-b;for(let T=0;T<o;T+=64){for(let M=0;M<16;M++)h[M]=a.getUint32(T+M*4,!1);for(let M=16;M<64;M++){let L=h[M-15],S=h[M-2],E=g(L,7)^g(L,18)^L>>>3,I=g(S,17)^g(S,19)^S>>>10;h[M]=h[M-16]+E+h[M-7]+I>>>0}let b=i,v=d,k=c,_=u,w=l,R=p,x=f,N=m;for(let M=0;M<64;M++){let L=g(w,6)^g(w,11)^g(w,25),S=w&R^~w&x,E=N+L+S+ti[M]+h[M]>>>0,I=g(b,2)^g(b,13)^g(b,22),K=b&v^b&k^v&k,q=I+K>>>0;N=x,x=R,R=w,w=_+E>>>0,_=k,k=v,v=b,b=E+q>>>0}i=i+b>>>0,d=d+v>>>0,c=c+k>>>0,u=u+_>>>0,l=l+w>>>0,p=p+R>>>0,f=f+x>>>0,m=m+N>>>0}let y=T=>T.toString(16).padStart(8,"0");return y(i)+y(d)+y(c)+y(u)+y(l)+y(p)+y(f)+y(m)}function $n(t){let e=Fn(t??null),n=JSON.stringify(e);return ri(n).slice(0,16)}function oi(){let t=globalThis.crypto;if(t?.randomUUID)return t.randomUUID();let e=()=>Math.floor(Math.random()*4294967296).toString(16).padStart(8,"0"),n=e()+e()+e()+e();return`${n.slice(0,8)}-${n.slice(8,12)}-4${n.slice(13,16)}-${(parseInt(n.slice(16,17),16)&3|8).toString(16)}${n.slice(17,20)}-${n.slice(20,32)}`}function jn(t,e,n){let r=n?.id??oi();if(t===0)return{id:r,version:0};let s=(n?.hash??$n)(e);return{id:r,version:0,cid:s,prev:null}}function oo(t,e,n){t.version+=1,"cid"in t&&(t.prev=t.cid,t.cid=n(e))}var ti,ni,so=me(()=>{"use strict";ti=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]),ni=new TextEncoder});function co(t){return{node:t,unsub:null,prevData:void 0,dirty:!1,involvedThisWave:!1,dataBatch:[],terminal:void 0}}function Bn(t){t.prevData=void 0,t.dirty=!1,t.involvedThisWave=!1,t.dataBatch.length=0,t.terminal=void 0}function Ht(t){return t.length===0?t:typeof t[0]=="symbol"?[t]:t}function te(t,e,n){let r=uo(t)?t:[],o=typeof t=="function"?t:typeof e=="function"?e:void 0,s={};return uo(t)?s=(Vn(e)?e:n)??{}:Vn(t)?s=t:s=(Vn(e)?e:n)??{},new le(r,o,s)}var io,ao,si,ii,ut,le,uo,Vn,ve=me(()=>{"use strict";Ln();jt();_e();ge();to();ct();se();so();io=()=>{},ao=100;si=(t,e,n,r)=>{n.direction==="down-in"&&t._onDepMessage(n.depIndex,e)},ii=(t,e,n,r)=>{let o=t;if(o._status==="completed"||o._status==="errored")return;let s=o._cached,a=s===void 0?[zt]:[zt,[D,s]];o._status==="dirty"&&a.push(Je),Vt(e,a,o._config.tierOf)},ut=new Wt({onMessage:si,onSubscribe:ii});eo(ut);Jr(ut);le=class t{_optsName;_describeKind;meta;_hasMeta;_config;_deps;_sinks=null;_sinkCount=0;_cached;_status;_cleanup;_store={};_waveHasNewData=!1;_hasNewTerminal=!1;_hasCalledFnOnce=!1;_paused=!1;_pendingWave=!1;_isExecutingFn=!1;_pendingRerun=!1;_rerunDepth=0;_dirtyDepCount=0;_batchPendingMessages=null;_pauseLocks=null;_pauseBuffer=null;_fn;_equals;_resubscribable;_resetOnTeardown;_autoComplete;_autoError;_pausable;_partial;_guard;_extraGuards;_hashFn;_versioning;_versioningLevel;_lastMutation;_inspectorHooks;_actions;constructor(e,n,r){this._config=r.config??ut,this._config.onMessage,this._optsName=r.name,this._describeKind=r.describeKind,this._equals=r.equals??Object.is,this._resubscribable=r.resubscribable??!1,this._resetOnTeardown=r.resetOnTeardown??!1,this._autoComplete=r.completeWhenDepsComplete??!0,this._autoError=r.errorWhenDepsError??!0,this._pausable=r.pausable??!0,this._guard=r.guard,this._fn=n,this._partial=r.partial??!1,this._cached=r.initial!==void 0?r.initial:void 0,this._status=e.length===0&&n==null&&this._cached!==void 0?"settled":"sentinel",this._hashFn=r.versioningHash??this._config.defaultHashFn??$n;let o=r.versioning??this._config.defaultVersioning;this._versioningLevel=o,this._versioning=o!=null?jn(o,this._cached===void 0?void 0:this._cached,{id:r.versioningId,hash:this._hashFn}):void 0,this._deps=e.map(co);let s={};for(let[i,d]of Object.entries(r.meta??{})){let c={initial:d,name:`${r.name??"node"}:meta:${i}`,describeKind:"state",config:this._config};r.guard!=null&&(c.guard=r.guard),s[i]=new t([],void 0,c)}Object.freeze(s),this.meta=s,this._hasMeta=Object.keys(s).length>0;let a=this;this._actions={emit(i){a._emit([[D,i]])},down(i){a._emit(Ht(i))},up(i){a._emitUp(Ht(i))}},this.down=this.down.bind(this),this.up=this.up.bind(this)}get _isTerminal(){return this._status==="completed"||this._status==="errored"}get name(){return this._optsName}get status(){return this._status}get cache(){return this._cached===void 0?void 0:this._cached}get lastMutation(){return this._lastMutation}get v(){return this._versioning}hasGuard(){return this._guard!=null}_applyVersioning(e,n){if(this._isExecutingFn)throw new Error(`Node "${this.name}": _applyVersioning cannot run mid-fn \u2014 call it outside of \`_execFn\` (typically at graph setup time before the first subscribe).`);let r=this._versioningLevel;if(r!=null&&e<=r)return;let o=n?.hash??this._hashFn;o!==this._hashFn&&(this._hashFn=o);let s=this._cached===void 0?void 0:this._cached,a=this._versioning,i=a?.id??n?.id,d=a?.version??0,c=jn(e,s,{id:i,hash:o});c.version=d,this._versioning=c,this._versioningLevel=e}_setInspectorHook(e){return e==null?()=>{}:(this._inspectorHooks==null&&(this._inspectorHooks=new Set),this._inspectorHooks.add(e),()=>{this._inspectorHooks?.delete(e),this._inspectorHooks?.size===0&&(this._inspectorHooks=void 0)})}_pushGuard(e){return this._extraGuards==null&&(this._extraGuards=new Set),this._extraGuards.add(e),()=>{this._extraGuards?.delete(e),this._extraGuards?.size===0&&(this._extraGuards=void 0)}}allowsObserve(e){if(this._guard==null&&this._extraGuards==null)return!0;let n=$t(e);if(this._guard!=null&&!this._guard(n,"observe"))return!1;if(this._extraGuards!=null){for(let r of this._extraGuards)if(!r(n,"observe"))return!1}return!0}_checkGuard(e){if(e?.internal)return;let n=this._guard!=null||this._extraGuards!=null,r=e?.actor!=null;if(!n&&!r)return;let o=$t(e?.actor),s=e?.delivery==="signal"?"signal":"write";if(this._guard!=null&&!this._guard(o,s))throw new Ce({actor:o,action:s,nodeName:this.name});if(this._extraGuards!=null){for(let a of this._extraGuards)if(!a(o,s))throw new Ce({actor:o,action:s,nodeName:this.name})}this._lastMutation={actor:o,timestamp_ns:ie()}}down(e,n){let r=Ht(e);r.length!==0&&(this._checkGuard(n),this._emit(r))}emit(e,n){this._checkGuard(n),this._emit([[D,e]])}up(e,n){if(this._deps.length===0)return;let r=Ht(e);if(r.length===0)return;this._checkGuard(n);let o=n??{internal:!0};this._validateUpTiers(r);for(let s of this._deps)s.node.up?.(r,o)}_emitUp(e){if(this._deps.length!==0&&e.length!==0){this._validateUpTiers(e);for(let n of this._deps)n.node.up?.(e,{internal:!0})}}_validateUpTiers(e){let n=this._config.tierOf;for(let r of e){let o=n(r[0]);if(o===3||o===4)throw new Error(`Node "${this.name}": tier-${o} messages cannot flow up \u2014 DATA/RESOLVED/COMPLETE/ERROR are downstream-only. Use \`down(...)\` for value delivery; \`up(...)\` is for control signals (DIRTY, INVALIDATE, PAUSE, RESUME, TEARDOWN).`)}}subscribe(e,n){if(n!=null&&this._guard!=null){let d=$t(n);if(!this._guard(d,"observe"))throw new Ce({actor:d,action:"observe",nodeName:this.name})}let o=this._isTerminal&&this._resubscribable;if(o){this._cached=void 0,this._status="sentinel",this._store={},this._hasCalledFnOnce=!1,this._waveHasNewData=!1,this._hasNewTerminal=!1,this._paused=!1,this._pendingWave=!1,this._pendingRerun=!1,this._isExecutingFn=!1,this._rerunDepth=0,this._dirtyDepCount=0,this._pauseLocks=null,this._pauseBuffer=null;for(let d of this._deps)Bn(d);if(this._partial===!1){for(let d of this._deps)if(d.prevData!==void 0||d.dataBatch.length!==0||d.terminal!==void 0||d.dirty)throw new Error(`resubscribable-reset invariant: DepRecord not fully reset for node ${this._optsName??"(anonymous)"}`)}}this._sinkCount+=1;let s;try{s=this._config.onSubscribe(this,e,{sinkCount:this._sinkCount,afterTerminalReset:o},this._actions)}catch(d){throw this._sinkCount-=1,d}this._sinks==null?this._sinks=e:typeof this._sinks=="function"?this._sinks=new Set([this._sinks,e]):this._sinks.add(e);let a=this._isTerminal;if(this._sinkCount===1&&!a)try{this._activate()}catch(d){if(this._sinkCount-=1,this._removeSink(e),this._sinkCount===0&&(this._status="sentinel"),typeof s=="function")try{s()}catch{}throw d}this._status==="sentinel"&&this._cached===void 0&&(this._status="pending");let i=!1;return()=>{i||(i=!0,this._sinkCount-=1,this._removeSink(e),typeof s=="function"&&s(),this._sinks==null&&this._deactivate())}}_removeSink(e){if(this._sinks===e)this._sinks=null;else if(this._sinks!=null&&typeof this._sinks!="function")if(this._sinks.delete(e),this._sinks.size===1){let[n]=this._sinks;this._sinks=n}else this._sinks.size===0&&(this._sinks=null)}_activate(){if(this._deps.length===0){this._fn&&this._execFn();return}this._dirtyDepCount=0;let e=this._deps.length,n=0;try{for(let r=0;r<e;r++){let o=r,s=this._deps[r];s.unsub=io,s.unsub=s.node.subscribe(a=>{if(s.unsub===null)return;let i=this._config.tierOf,d=!1;for(let c of a)i(c[0])>=3&&(d=!0),this._config.onMessage(this,c,{direction:"down-in",depIndex:o},this._actions);d&&this._maybeRunFnOnSettlement()}),n++}}catch(r){this._deps[n].unsub=null;for(let o=0;o<n;o++){let s=this._deps[o];if(s.unsub!=null){let a=s.unsub;s.unsub=null;try{a()}catch{}Bn(s)}}throw this._dirtyDepCount=0,r}}_addDep(e){for(let o=0;o<this._deps.length;o++)if(this._deps[o].node===e)return o;let n=this._deps.length,r=co(e);if(this._deps.push(r),this._sinks==null)return n;r.dirty=!0,this._dirtyDepCount++,this._status!=="dirty"&&this._emit(Ut),r.unsub=io;try{r.unsub=e.subscribe(o=>{if(r.unsub===null)return;let s=this._config.tierOf,a=!1;for(let i of o)s(i[0])>=3&&(a=!0),this._config.onMessage(this,i,{direction:"down-in",depIndex:n},this._actions);a&&this._maybeRunFnOnSettlement()})}catch(o){throw r.unsub=null,this._deps.pop(),this._dirtyDepCount--,o}return n}_deactivate(e=!1){let n=this._cleanup;if(this._cleanup=void 0,typeof n=="function")try{n()}catch(r){this._emit([[P,this._wrapFnError("cleanup threw",r)]])}else if(n!=null&&typeof n=="object"){let r=n.deactivate;if(typeof r=="function")try{r()}catch(o){this._emit([[P,this._wrapFnError("cleanup.deactivate threw",o)]])}}for(let r of this._deps){if(r.unsub!=null){let o=r.unsub;r.unsub=null;try{o()}catch{}}Bn(r)}this._waveHasNewData=!1,this._hasNewTerminal=!1,this._hasCalledFnOnce=!1,this._paused=!1,this._pendingWave=!1,this._pendingRerun=!1,this._rerunDepth=0,this._store={},this._dirtyDepCount=0,this._pauseLocks=null,this._pauseBuffer=null,this._fn!=null&&(this._cached=void 0),e||(this._fn!=null||this._deps.length>0)&&(!this._isTerminal||this._resubscribable)&&(this._status="sentinel")}_onDepMessage(e,n){let r=this._deps[e],o=n[0];if(this._inspectorHooks!=null){let s={kind:"dep_message",depIndex:e,message:n};for(let a of this._inspectorHooks)a(s)}if(o!==je){if(o===X){this._depDirtied(r);return}if(o===Oe){if(this._depInvalidated(r),this._cached===void 0)return;this._emit(In);return}if(o===xe||o===Ae){this._emit([n]);return}if(o===ue){this._emit(qt);return}if(o===D)this._depSettledAsData(r,n[1]);else if(o===U)this._depSettledAsResolved(r);else if(o===$)this._depSettledAsTerminal(r,!0);else if(o===P)this._depSettledAsTerminal(r,n[1]);else{this._emit([n]);return}if(!this._fn){(o===D||o===U)&&this._emit([n]),(o===$||o===P)&&this._maybeAutoTerminalAfterWave();return}}}_depDirtied(e){e.dirty||(e.dirty=!0,e.involvedThisWave=!0,this._dirtyDepCount++,this._status!=="dirty"&&this._emit(Ut))}_depSettledAsData(e,n){e.dirty&&(e.dirty=!1,this._dirtyDepCount--),e.involvedThisWave=!0,e.dataBatch.push(n),this._waveHasNewData=!0}_depSettledAsResolved(e){e.dirty&&(e.dirty=!1,this._dirtyDepCount--)}_depSettledAsTerminal(e,n){e.dirty&&(e.dirty=!1,this._dirtyDepCount--),e.terminal=n,e.involvedThisWave=!0,this._hasNewTerminal=!0}_depInvalidated(e){e.prevData=void 0,e.terminal=void 0,e.dataBatch.length=0,e.dirty?e.involvedThisWave=!1:(e.dirty=!0,e.involvedThisWave=!0,this._dirtyDepCount++)}_maybeRunFnOnSettlement(){if(!(this._isTerminal&&!this._resubscribable)&&!(this._dirtyDepCount>0)){if(!this._partial&&!this._hasCalledFnOnce)for(let e=0;e<this._deps.length;e++){let n=this._deps[e];if(n.dataBatch.length===0&&n.prevData===void 0&&n.terminal===void 0){this._maybeAutoTerminalAfterWave();return}}if(this._paused){this._pendingWave=!0;return}if(!this._waveHasNewData&&!this._hasNewTerminal&&this._hasCalledFnOnce){this._clearWaveFlags(),this._emit(Dn),this._maybeAutoTerminalAfterWave();return}this._fn&&this._execFn(),this._maybeAutoTerminalAfterWave()}}_maybeAutoTerminalAfterWave(){if(this._deps.length===0||this._isTerminal)return;let e=this._deps.find(n=>n.terminal!==void 0&&n.terminal!==!0);if(e!=null){this._autoError&&this._emit([[P,e.terminal]]);return}this._autoComplete&&this._deps.every(n=>n.terminal!==void 0)&&this._emit(Pn)}_execFn(){if(!this._fn||this._isTerminal&&!this._resubscribable)return;if(this._isExecutingFn){this._pendingRerun=!0;return}let e=this._cleanup;if(typeof e=="function"){this._cleanup=void 0;try{e()}catch(a){this._emit([[P,this._wrapFnError("cleanup threw",a)]]);return}}else if(e!=null&&typeof e=="object"){let a=e.beforeRun;if(typeof a=="function"){e.beforeRun=void 0;try{a()}catch(i){this._emit([[P,this._wrapFnError("cleanup.beforeRun threw",i)]]);return}}}let n=this._deps.map(a=>a.involvedThisWave?a.dataBatch.length>0?[...a.dataBatch]:[]:void 0),r=this._deps.map(a=>a.prevData);for(let a=0;a<this._deps.length;a++){let i=n[a];i!=null&&i.length>0&&(this._deps[a].prevData=i[i.length-1])}let o=this._deps.map(a=>a.terminal),s={prevData:r,terminalDeps:o,store:this._store};if(this._hasCalledFnOnce=!0,this._clearWaveFlags(),this._inspectorHooks!=null){let a={kind:"run",batchData:n,prevData:r};for(let i of this._inspectorHooks)i(a)}this._isExecutingFn=!0;try{let a=this._fn(n,this._actions,s);if(typeof a=="function")this._cleanup=a;else if(a!=null&&typeof a=="object"){let i=a;(typeof i.beforeRun=="function"||typeof i.deactivate=="function"||typeof i.invalidate=="function")&&(this._cleanup=a)}}catch(a){this._emit([[P,this._wrapFnError("fn threw",a)]])}finally{this._isExecutingFn=!1,this._pendingRerun?(this._pendingRerun=!1,this._rerunDepth+=1,this._rerunDepth>ao?(this._rerunDepth=0,this._emit([[P,new Error(`Node "${this.name}": _pendingRerun depth exceeded ${ao} \u2014 likely a reactive cycle`)]])):this._maybeRunFnOnSettlement()):this._rerunDepth=0,this._clearWaveFlags()}}_clearWaveFlags(){this._waveHasNewData=!1,this._hasNewTerminal=!1;for(let e of this._deps)e.involvedThisWave=!1,e.dataBatch.length=0}_wrapFnError(e,n){let r=n instanceof Error?n.message:String(n);return new Error(`Node "${this.name}": ${e}: ${r}`,{cause:n})}_frameBatch(e){let n=this._config.tierOf;if(e.length===1)return n(e[0][0])===3&&this._status!=="dirty"?[Je,e[0]]:e;let r=!0,o=!1,s=!1,a=-1;for(let d of e){let c=n(d[0]);c<a&&(r=!1),c===3&&(o=!0),d[0]===X&&(s=!0),a=c}let i=e;if(!r){let d=e.map((c,u)=>({m:c,i:u,tier:n(c[0])}));d.sort((c,u)=>c.tier-u.tier||c.i-u.i),i=d.map(c=>c.m)}if(o&&!s&&this._status!=="dirty"){let d=0;for(;d<i.length&&n(i[d][0])===0;)d++;return d===0?[Je,...i]:[...i.slice(0,d),Je,...i.slice(d)]}return i}_emit(e){if(e.length===0)return;for(let i=0;i<e.length;i++){let d=e[i];if(d[0]===P&&d[1]===void 0)throw new TypeError('[ERROR, payload] requires a non-undefined payload (spec \xA71.2). Pass an Error object or domain tag instead \u2014 e.g. node.down([[ERROR, new Error("reason")]])')}let n=e;if(this._isTerminal&&!this._resubscribable){let i=e.filter(d=>d[0]===ue||d[0]===Oe);if(i.length===0)return;n=i}n=this._frameBatch(n);let o=null;for(let i=0;i<n.length;i++){let d=n[i],c=d[0];if(c!==xe&&c!==Ae){o?.push(d);continue}if(d.length<2)throw new Error(`Node "${this.name}": [[${c===xe?"PAUSE":"RESUME"}]] must carry a lockId payload \u2014 bare PAUSE/RESUME is a protocol violation (C0 rule). Use \`[[PAUSE, lockId]]\` / \`[[RESUME, lockId]]\`.`);let u=!0;if(this._pausable!==!1){let l=d[1];if(c===xe)this._pauseLocks==null&&(this._pauseLocks=new Set),this._pauseLocks.add(l),this._paused=!0,this._pausable==="resumeAll"&&this._pauseBuffer==null&&(this._pauseBuffer=[]);else if(this._pauseLocks==null||!this._pauseLocks.has(l))u=!1;else if(this._pauseLocks.delete(l),this._pauseLocks.size===0){if(this._paused=!1,this._pauseBuffer!=null&&this._pauseBuffer.length>0){let p=this._pauseBuffer;this._pauseBuffer=[],this._emit(p)}this._pendingWave&&(this._pendingWave=!1,this._maybeRunFnOnSettlement())}}u?o?.push(d):o==null&&(o=n.slice(0,i))}if(o!=null){if(o.length===0)return;n=o}if(this._hasMeta&&n.some(i=>i[0]===ue))for(let i of Object.keys(this.meta))try{this.meta[i]._emit(qt)}catch{}let{finalMessages:s,equalsError:a}=this._updateState(n);if(s.length>0&&this._config.inspectorEnabled){let i=this._config.globalInspector;if(i!=null)try{i({kind:"emit",node:this,messages:s})}catch{}}if(s.length>0)if(this._paused&&this._pausable==="resumeAll"&&this._pauseBuffer!=null){let i=this._config.tierOf,d=[];for(let c of s)i(c[0])===3?this._pauseBuffer.push(c):d.push(c);d.length>0&&this._dispatchOrAccumulate(d)}else this._dispatchOrAccumulate(s);a!=null&&this._emit([[P,a]])}_updateState(e){let n=this._config.tierOf,r,o,s=-1,a=0;for(let u of e)n(u[0])===3&&a++;let i=a<=1,d=-1;if(this._versioning!=null&&a>1){for(let u=e.length-1;u>=0;u--)if(e[u][0]===D){d=u;break}}for(let u=0;u<e.length;u++){let l=e[u],p=l[0];if(p===D){if(l.length>=2){let f=!1;if(i&&this._cached!==void 0)try{f=this._equals(this._cached,l[1])}catch(m){o=this._wrapFnError("equals threw",m),s=u;break}if(f){r==null&&(r=e.slice(0,u)),r.push(Kt),this._status="resolved";continue}this._cached=l[1],this._versioning!=null&&(d<0||u===d)&&oo(this._versioning,l[1],this._hashFn)}this._status="settled",r?.push(l)}else if(r?.push(l),p===X)this._status="dirty";else if(p===U)this._status="resolved";else if(p===$){this._status="completed";{let f=this._config.rigorRecorder;if(f!=null)try{f.onTerminalTransition(this,"completed",this._autoComplete,this._autoError,this._deps.length>0)}catch{}}}else if(p===P){this._status="errored";{let f=this._config.rigorRecorder;if(f!=null)try{f.onTerminalTransition(this,"errored",this._autoComplete,this._autoError,this._deps.length>0)}catch{}}}else if(p===Oe){if(this._cached!==void 0){let m=this._config.rigorRecorder;if(m!=null)try{m.onNonVacuousInvalidate(this,this._cached)}catch{}}this._cached=void 0,this._status="dirty";let f=this._cleanup;if(typeof f=="function"){this._cleanup=void 0;try{f()}catch{}}else if(f!=null&&typeof f=="object"){let m=f.invalidate;if(typeof m=="function")try{m()}catch{}}}else p===ue&&(this._resetOnTeardown&&(this._cached=void 0),this._deactivate(!0),this._status="sentinel")}let c=s>=0?r??e.slice(0,s):r??e;return o!=null?{finalMessages:c,equalsError:o}:{finalMessages:c}}_deliverToSinks=e=>{if(this._sinks==null)return;if(typeof this._sinks=="function"){this._sinks(e);return}let n=[...this._sinks];for(let r of n)r(e)};_dispatchOrAccumulate(e){if(Yr()){this._batchPendingMessages===null&&(this._batchPendingMessages=[],dt(()=>this._flushBatchPending()));for(let n of e)this._batchPendingMessages.push(n);return}Vt(this._deliverToSinks,e,this._config.tierOf)}_flushBatchPending(){let e=this._batchPendingMessages;if(e===null||(this._batchPendingMessages=null,e.length===0))return;let n=this._frameBatch(e);Vt(this._deliverToSinks,n,this._config.tierOf)}},uo=t=>Array.isArray(t),Vn=t=>typeof t=="object"&&t!=null&&!Array.isArray(t)});function F(t,e){return te([],{...e,initial:t})}function oe(t,e){return te((r,o,s)=>t(o,s)??void 0,{describeKind:"producer",...e})}function A(t,e,n){return te(t,(o,s,a)=>{let i=o.map((d,c)=>d!=null&&d.length>0?d.at(-1):a.prevData[c]);s.emit(e(i,a))},{describeKind:"derived",...n})}function Re(t,e,n){return te(t,(o,s,a)=>{let i=o.map((d,c)=>d!=null&&d.length>0?d.at(-1):a.prevData[c]);return e(i,s,a)??void 0},{describeKind:"effect",...n})}var Q=me(()=>{"use strict";ve()});var ho={};An(ho,{NS_PER_MS:()=>lt,NS_PER_SEC:()=>pt,constant:()=>lo,decorrelatedJitter:()=>go,exponential:()=>fo,fibonacci:()=>mo,linear:()=>po,resolveBackoffPreset:()=>zn,withMaxAttempts:()=>ui});function Ye(t){return t<0?0:t}function di(t,e){return e==="none"?t:e==="full"?Math.random()*t:t/2+Math.random()*(t/2)}function ci(t,e){return t+Math.random()*(e-t)}function lo(t){let e=Ye(t);return()=>e}function po(t,e){let n=Ye(t),r=e===void 0?n:Ye(e);return o=>n+r*Math.max(0,o)}function fo(t){let e=Ye(t?.baseNs??1e8),n=t?.factor!==void 0&&t.factor<1?1:t?.factor??2,r=Ye(t?.maxDelayNs??30*1e9),o=t?.jitter??"none";return s=>{let a;if(e===0)a=0;else if(n===1)a=e;else{let i=r/e,d=1;for(let c=0;c<Math.max(0,s);c++){if(d>=i){d=i;break}d*=n}a=e*d,a>r&&(a=r)}return di(a,o)}}function mo(t=100*1e6,e=30*1e9){let n=Ye(t),r=Ye(e);function o(s){if(s<=0)return 1;let a=1,i=2;for(let d=1;d<s;d++){let c=a+i;a=i,i=c}return i}return s=>{let a=o(s)*n;return a<=r?a:r}}function go(t=100*1e6,e=30*1e9){return(n,r,o)=>{let a=Math.min(e,(o??t)*3);return ci(t,a)}}function ui(t,e){return(n,r,o)=>n>=e?null:t(n,r,o)}function zn(t){if(t==="constant")return lo(1*1e9);if(t==="linear")return po(1*1e9);if(t==="exponential")return fo();if(t==="fibonacci")return mo();if(t==="decorrelatedJitter")return go();throw new Error(`Unknown backoff preset: "${String(t)}". Use one of: constant, linear, exponential, fibonacci, decorrelatedJitter`)}var lt,pt,Un=me(()=>{"use strict";lt=1e6,pt=1e9});function Wn(t,e){if(e!=null&&e.length>0)return new Set(e);switch(t){case"standard":return new Set(["type","status","value","deps","meta","v"]);case"full":return null;case"spec":return new Set(["type","deps","meta","value"]);default:return new Set(["type","deps"])}}function li(t){return t._describeKind!=null?t._describeKind:t._deps.length>0?"derived":t._fn!=null?"producer":"state"}function ft(t){let e=new WeakSet,n={};for(let[r,o]of yo(t))n[r]=qn(o,e);return n}function qn(t,e){if(t==null)return t;let n=typeof t;if(n==="boolean"||n==="number"||n==="string")return t;if(n==="function")return"<function>";if(Array.isArray(t))return e.has(t)?"<cycle>":(e.add(t),t.map(r=>qn(r,e)));if(n==="object"){let r=t;if(e.has(r))return"<cycle>";e.add(r);try{if(typeof r.subscribe=="function"&&"cache"in r)return"<Node>"}catch{return"<unserializable>"}let o={};for(let[s,a]of yo(r))o[s]=qn(a,e);return o}return"<unserializable>"}function yo(t){let e=[],n;try{n=Object.keys(t)}catch{return e}for(let r of n)try{e.push([r,t[r]])}catch{e.push([r,"<unserializable>"])}return e}function ae(t,e){let n={factory:t};return e!==void 0&&(n.factoryArgs=e),n}function pi(t){let e={};for(let[n,r]of Object.entries(t.meta))try{e[n]=r.cache}catch{}return e}function Hn(t,e,n){let r=e==null,o=!r&&e!=null?[...e].filter(u=>u.startsWith("meta.")).map(u=>u.slice(5)):null,s=r||e.has("meta")||o!=null&&o.length>0,a="state",i=[];t instanceof le&&(a=li(t),i=t._deps.map(u=>u.node.name??""));let d={type:a,deps:i};(r||e.has("status"))&&(d.status=t.status);let c=t instanceof le?t._guard:void 0;if(s){let u={...pi(t)};if(c!=null&&u.access===void 0&&(u.access=Gn(c)),o!=null&&o.length>0&&!e.has("meta")){let l={};for(let p of o)p in u&&(l[p]=u[p]);d.meta=l}else d.meta=u}if(t.name!=null&&(d.name=t.name),(r||e.has("value"))&&(!n||a==="state")){t.status==="sentinel"&&(d.sentinel=!0);try{d.value=t.cache}catch{}}if((r||e.has("v"))&&t.v!=null){let u={id:t.v.id,version:t.v.version};"cid"in t.v&&(u.cid=t.v.cid,u.prev=t.v.prev),d.v=u}return(r||e.has("guard"))&&c!=null&&(d.guard=Gn(c)),(r||e.has("lastMutation"))&&t.lastMutation!=null&&(d.lastMutation=t.lastMutation),d}var Le=me(()=>{"use strict";ct();ve()});function De(t,e,n){return{[t]:!0,[`${t}_type`]:e,...n??{}}}var Qe=me(()=>{"use strict"});function bo(t,e,n){if(e.length===0)throw new RangeError("budgetGate requires at least one constraint");let r=e.map(f=>f.node),o=[t,...r],s=new Jn,a=!1,i=!1,d=Symbol("budget-gate"),c=new Array(e.length);function u(){return e.every((f,m)=>f.check(c[m]))}function l(f){for(;s.size>0&&u();){let m=s.shift();f.emit(m)}s.size===0&&i&&(i=!1,f.down([[U]]))}return te([],(f,m)=>{for(let g=0;g<e.length;g++)c[g]=e[g].node.cache;let h=[];for(let g=0;g<o.length;g++){let y=o[g];h.push(y.subscribe(T=>{for(let b of T)p(b,g,m)}))}return()=>{for(let g of h)g()}},{...n,describeKind:"derived",meta:De("resilience","budget_gate",n?.meta)});function p(f,m,h){let g=f[0];if(m===0){if(g===D)return u()&&s.size===0?h.emit(f[1]):(s.push(f[1]),a||(a=!0,h.up([[xe,d]]))),!0;if(g===X)return h.down([[X]]),!0;if(g===U)return s.size===0?h.down([[U]]):i=!0,!0;if(g===$||g===P){for(;s.size>0;)h.emit(s.shift());return i=!1,a&&(a=!1,h.up([[Ae,d]])),h.down([f]),!0}return!1}if(g===D&&(c[m-1]=f[1]),g===D||g===U){let y=u();return y&&s.size>0?(l(h),s.size===0&&a&&(a=!1,h.up([[Ae,d]]))):!y&&!a&&s.size>0&&(a=!0,h.up([[xe,d]])),!0}return g===X?!0:g===P?(h.down([f]),!0):g===$}}var Jn,To=me(()=>{"use strict";se();ve();Qe();Jn=class{buf=[];head=0;get size(){return this.buf.length-this.head}push(e){this.buf.push(e)}shift(){if(this.head>=this.buf.length)return;let e=this.buf[this.head];return this.buf[this.head]=void 0,this.head++,this.head>32&&this.head*2>this.buf.length&&(this.buf=this.buf.slice(this.head),this.head=0),e}clear(){this.buf=[],this.head=0}}});var pe,Be=me(()=>{"use strict";pe=class{_timer;_gen=0;start(e,n){this.cancel(),this._gen+=1;let r=this._gen;this._timer=setTimeout(()=>{this._timer=void 0,r===this._gen&&n()},e)}cancel(){this._timer!==void 0&&(clearTimeout(this._timer),this._timer=void 0)}get pending(){return this._timer!==void 0}}});var Xe,Yn=me(()=>{"use strict";Xe=class{constructor(e){this.capacity=e;if(!Number.isInteger(e)||e<=0)throw new Error(`RingBuffer capacity must be a positive integer (got ${e})`);this.buf=new Array(e)}buf;head=0;_size=0;get size(){return this._size}get maxSize(){return this.capacity}push(e){let n=(this.head+this._size)%this.capacity;this.buf[n]=e,this._size<this.capacity?this._size++:this.head=(this.head+1)%this.capacity}shift(){if(this._size===0)return;let e=this.buf[this.head];return this.buf[this.head]=void 0,this.head=(this.head+1)%this.capacity,this._size--,e}at(e){if(this._size===0)return;let n=e<0?this._size+e:e;if(!(n<0||n>=this._size))return this.buf[(this.head+n)%this.capacity]}toArray(){let e=new Array(this._size);for(let n=0;n<this._size;n++)e[n]=this.buf[(this.head+n)%this.capacity];return e}clear(){for(let e=0;e<this._size;e++)this.buf[(this.head+e)%this.capacity]=void 0;this.head=0,this._size=0}}});function Ze(t){return{describeKind:"derived",...t}}function fi(t){return t<0?0:t}function Qn(t){return t[1]}function mi(t){if(typeof t!="number"||!Number.isFinite(t))throw new TypeError("backoff strategy must return a finite number");return t<0?0:t}function vo(t){let e=t?.count,n=t?.backoff;if(n!==void 0&&e===void 0)throw new RangeError("retry({ backoff }) requires explicit count to prevent unbounded retries; pass { count: <n>, backoff: ... }");let r=e!==void 0?e:0;if(r<0)throw new RangeError("retry count must be >= 0");let o=n===void 0?null:typeof n=="string"?zn(n):n;return{maxRetries:r,strategy:o}}function wo(t){let e={};return t?.count!==void 0&&(e.count=t.count),typeof t?.backoff=="string"&&(e.backoff=t.backoff),Object.keys(e).length>0?e:void 0}function ko(t,e,n){let r=0,o=!1,s=null,a,i=new pe;function d(){a?.(),a=void 0}function c(l){if(o)return;if(r>=t.maxRetries){d(),n.down([[P,l]]);return}let p=t.strategy===null?0:t.strategy(r,l,s);if(p==null){d(),n.down([[P,l]]);return}let f;try{f=mi(p)}catch{d(),n.down([[P,l]]);return}s=f,r+=1,d();let m=f>0?f/1e6:1;i.start(m,()=>{o||u()})}function u(){i.cancel(),d();let l;try{l=e()}catch(p){c(p);return}a=l.subscribe(p=>{if(!o)for(let f of p){let m=f[0];if(m===X)n.down([[X]]);else if(m===D)r=0,s=null,n.emit(f[1]);else if(m===U)n.down([[U]]);else if(m===$)d(),n.down([[$]]);else if(m===P){c(Qn(f));return}else n.down([f])}})}return u(),()=>{o=!0,i.cancel(),d()}}function Xn(t,e){return typeof t=="function"?hi(t,e):gi(t,e)}function gi(t,e){let n=vo(e);return oe(r=>ko(n,()=>t,r),{...Ze(),initial:t.cache,meta:{...e?.meta??{},...ae("retry",wo(e))}})}function hi(t,e){let n=vo(e);return oe(r=>ko(n,t,r),{...Ze(),initial:e?.initial,meta:{...e?.meta??{},...ae("retry",wo(e))}})}function _t(t){let e=Math.max(1,t?.failureThreshold??5),n=fi(t?.cooldownNs??30*1e9),r=t?.cooldown??null,o=Math.max(1,t?.halfOpenMax??1),s=t?.now??z,a="closed",i=0,d=0,c=0,u=n,l=0;function p(){if(!r)return n;let h=r(d);return h!==null?h:n}function f(){a="open",u=p(),c=s(),l=0}return{canExecute(){return a==="closed"?!0:a==="open"?s()-c>=u?(a="half-open",l=1,!0):!1:l<o?(l++,!0):!1},recordSuccess(){a==="half-open"?(a="closed",i=0,d=0):a==="closed"&&(i=0)},recordFailure(h){if(a==="half-open"){d++,f();return}a==="closed"&&(i++,i>=e&&f())},get state(){return a},get failureCount(){return i},reset(){a="closed",i=0,d=0,l=0}}}function yi(t,e){let n=e?.onOpen??"skip",r=e?.meta;return o=>{let s=te([],(a,i)=>{function d(){s.meta.breakerState.down([[D,t.state]])}let c=o.subscribe(u=>{for(let l of u){let p=l[0];p===X?i.down([[X]]):p===D?t.canExecute()?(d(),i.emit(l[1])):(d(),n==="error"?i.down([[P,new ze]]):i.down([[U]])):p===U?i.down([[U]]):p===$?(t.recordSuccess(),d(),i.down([[$]])):p===P?(t.recordFailure(Qn(l)),d(),i.down([l])):i.down([l])}});return d(),c},{...Ze(),meta:{...r??{},breakerState:t.state,...ae("withBreaker",{onOpen:n})},completeWhenDepsComplete:!1,initial:o.cache});return{node:s,breakerState:s.meta.breakerState}}}function Nt(t,e,n){if(t<=0)throw new RangeError("capacity must be > 0");if(e<0)throw new RangeError("refillPerSecond must be >= 0");let r=n?.clock??z,o=t,s=r();function a(i){if(e>0){let d=i-s;o=Math.min(t,o+d/1e9*e)}s=i}return{available(){return a(r()),o},tryConsume(i=1){if(i<=0)return!0;let d=r();return a(d),o>=i?(o-=i,!0):!1},putBack(i=1){i<=0||(a(r()),o=Math.min(t,o+i))}}}function bi(t,e){return t.droppedCount===e.droppedCount&&t.pendingCount===e.pendingCount&&t.paused===e.paused}function Ti(t,e){let{maxEvents:n,windowNs:r}=e;if(n<=0)throw new RangeError("maxEvents must be > 0");if(r<=0)throw new RangeError("windowNs must be > 0");let o=e.maxBuffer;if(o===void 0)throw new RangeError("rateLimiter requires explicit maxBuffer (use Infinity to opt in to unbounded)");let s=o===1/0;if(!s&&(!Number.isInteger(o)||o<1))throw new RangeError("maxBuffer must be a positive integer (or Infinity for unbounded)");let a=e.onOverflow??"drop-newest",i=n*1e9/r,d=oe(c=>{let u=Nt(n,i),l=s?wi():vi(o),p=new pe,f=!1,m=0,h=1e9/i,g=d.meta.droppedCount,y=d.meta.rateLimitState,T=Jt;function b(){g.emit(m);let R={droppedCount:m,pendingCount:l.size,paused:l.size>0};bi(T,R)||(T=R,y.emit(R))}T=Jt,g.emit(0),y.emit(Jt);function v(){for(;l.size>0;)if(u.tryConsume(1))c.emit(l.shift()),b();else{p.start(Math.max(1,h/1e6),v);return}}function k(){m+=1,b()}function _(){for(f=!0,p.cancel();l.size>0;)l.shift();m=0}let w=t.subscribe(R=>{for(let x of R){if(f)return;let N=x[0];if(N===X)c.down([[X]]);else if(N===D){if(!s&&l.size>=o)if(a==="drop-newest")k();else if(a==="drop-oldest")l.shift(),l.push(x[1]),k();else{k(),_(),c.down([[P,new Yt(o)]]);return}else l.push(x[1]),b();v()}else if(N===U)c.down([[U]]);else if(N===$)_(),c.down([[$]]);else if(N===P)_(),c.down([x]);else if(N===ue){_(),c.down([x]);return}else c.down([x])}});return()=>{f=!0,p.cancel(),w()}},{...Ze(),initial:t.cache,meta:{...e.meta??{},droppedCount:0,rateLimitState:Jt,...ae("rateLimiter",e)}});return{node:d,droppedCount:d.meta.droppedCount,rateLimitState:d.meta.rateLimitState}}function vi(t){let e=new Xe(t);return{push:n=>e.push(n),shift:()=>e.shift(),get size(){return e.size}}}function wi(){let t=[];return{push:e=>{t.push(e)},shift:()=>t.shift(),get size(){return t.length}}}function ki(t,e){let n=e?.initialStatus??"pending",r=e?.meta,o=te([],(s,a)=>{let i=n;return o.meta.status.down([[D,n]]),o.meta.error.down([[D,null]]),t.subscribe(c=>{for(let u of c){let l=u[0];if(l===X)a.down([[X]]);else if(l===D)i==="errored"?ne(()=>{o.meta.error.down([[D,null]]),o.meta.status.down([[D,"running"]])}):o.meta.status.down([[D,"running"]]),i="running",a.emit(u[1]);else if(l===U)a.down([[U]]);else if(l===$)o.meta.status.down([[D,"completed"]]),i="completed",a.down([[$]]);else if(l===P){let p=Qn(u);ne(()=>{o.meta.error.down([[D,p]]),o.meta.status.down([[D,"errored"]])}),i="errored",a.down([u])}else a.down([u])}})},{...Ze(),meta:{...r??{},status:n,error:null,...ae("withStatus",{initialStatus:n})},completeWhenDepsComplete:!1,resubscribable:!0,initial:t.cache});return{node:o,status:o.meta.status,error:o.meta.error}}function xi(t){return t!=null&&typeof t=="object"&&"cache"in t&&typeof t.subscribe=="function"}function Ri(t){return t!=null&&typeof t.then=="function"}function Si(t){return t!=null&&typeof t=="object"&&typeof t[Symbol.asyncIterator]=="function"}function _i(t,e,n){let r=n?.meta;return oe(o=>{let s,a;function i(){a?.(),a=void 0,xi(e)||Ri(e)||Si(e)?s=V(e).subscribe(c=>{o.down(c);for(let u of c){let l=u[0];if(l===$||l===P||l===ue){s=void 0;return}}}):(o.emit(e),o.down([[$]]))}return a=t.subscribe(d=>{for(let c of d){let u=c[0];if(u===X)o.down([[X]]);else if(u===D)o.emit(c[1]);else if(u===U)o.down([[U]]);else if(u===$)o.down([[$]]);else if(u===P){i();return}else if(u===ue){s?.(),o.down([c]);return}else o.down([c])}}),()=>{a?.(),s?.()}},{...Ze(),initial:t.cache,meta:{...r??{},...ae("fallback")}})}function Ni(t,e,n){if(e<=0)throw new RangeError("timeoutNs must be > 0");let r=n?.meta;return oe(o=>{let s=!1,a=new pe;function i(){let c=e/1e6;a.start(c,()=>{s||(s=!0,d(),o.down([[P,new Qt(e)]]))})}let d=t.subscribe(c=>{for(let u of c){if(s)return;let l=u[0];if(l===X)o.down([[X]]);else if(l===D)i(),o.emit(u[1]);else if(l===U)o.down([[U]]);else if(l===$){a.cancel(),s=!0,o.down([[$]]);return}else if(l===P){a.cancel(),s=!0,o.down([u]);return}else if(l===ue){a.cancel(),s=!0,o.down([u]);return}else o.down([u])}});return i(),()=>{s=!0,a.cancel(),d()}},{...Ze(),initial:t.cache,meta:{...r??{},...ae("timeout",{timeoutNs:e})}})}var ze,Yt,Jt,Qt,xo=me(()=>{"use strict";To();_e();ge();se();Le();ve();Q();Un();Z();Be();Yn();ze=class extends Error{name="CircuitOpenError";constructor(){super("Circuit breaker is open")}};Yt=class extends Error{name="RateLimiterOverflowError";constructor(e){super(`rateLimiter buffer overflow (maxBuffer=${e})`)}};Jt=Object.freeze({droppedCount:0,pendingCount:0,paused:!1});Qt=class extends Error{name="TimeoutError";constructor(e){super(`Timed out after ${e/1e6}ms`)}}});var Ro={};An(Ro,{CircuitOpenError:()=>ze,RateLimiterOverflowError:()=>Yt,TimeoutError:()=>Qt,budgetGate:()=>bo,circuitBreaker:()=>_t,fallback:()=>_i,rateLimiter:()=>Ti,retry:()=>Xn,timeout:()=>Ni,tokenBucket:()=>Nt,withBreaker:()=>yi,withStatus:()=>ki});var mt=me(()=>{"use strict";xo()});function Xt(t){return{describeKind:"producer",...t}}function Zt(t,e){let{signal:n,period:r,...o}=e??{};return oe(s=>{let a=!1,i=0,d,c,u=()=>{a=!0,d!==void 0&&clearTimeout(d),c!==void 0&&clearInterval(c),n?.removeEventListener("abort",p)},l=()=>{a||(r!=null?(s.emit(i++),c=setInterval(()=>{a||s.emit(i++)},r)):(a=!0,n?.removeEventListener("abort",p),s.emit(i++),s.down([[$]])))},p=()=>{a||(u(),s.down([[P,n.reason]]))};if(n?.aborted){p();return}return d=setTimeout(l,t),n?.addEventListener("abort",p,{once:!0}),u},Xt(o))}function No(t,e){return oe(n=>{let r=!1;try{for(let o of t){if(r)return;n.emit(o)}r||n.down([[$]])}catch(o){r||n.down([[P,o]])}return()=>{r=!0}},Xt(e))}function Mi(t){return t!=null&&typeof t.then=="function"}function en(t,e){let{signal:n,...r}=e??{};return oe(o=>{let s=!1,a=()=>{s||(s=!0,o.down([[P,n.reason]]))};if(n?.aborted){a();return}return n?.addEventListener("abort",a,{once:!0}),Promise.resolve(t).then(i=>{s||(s=!0,n?.removeEventListener("abort",a),o.emit(i),o.down([[$]]))},i=>{s||(s=!0,n?.removeEventListener("abort",a),o.down([[P,i]]))}),()=>{s=!0,n?.removeEventListener("abort",a)}},Xt(r))}function er(t,e){let{signal:n,...r}=e??{};return oe(o=>{let s=new AbortController,a=()=>s.abort(n?.reason);n?.aborted?s.abort(n.reason):n?.addEventListener("abort",a,{once:!0});let i=n??s.signal,d=!1,c=t[Symbol.asyncIterator](),u=()=>{d||i.aborted||Promise.resolve(c.next()).then(l=>{if(!(d||i.aborted)){if(l.done){o.down([[$]]);return}o.emit(l.value),u()}},l=>{!d&&!i.aborted&&o.down([[P,l]])})};return u(),()=>{d=!0,n?.removeEventListener("abort",a),s.abort(),Promise.resolve(c.return?.()).catch(()=>{})}},Xt(r))}function Ei(t){return t!=null&&typeof t=="object"&&"cache"in t&&typeof t.subscribe=="function"}function V(t,e){if(Ei(t))return t;if(Mi(t))return en(t,e);if(t!=null){let n=t;if(typeof n[Symbol.asyncIterator]=="function")return er(t,e);if(typeof n[Symbol.iterator]=="function")return No(t,e)}return Oi(t)}function Oi(...t){return No(t,void 0)}function Mt(t,e,n){return te([t],(o,s)=>{let a=o[0];if(a!=null&&a.length>0)for(let i of a)e(i)},{describeKind:"effect",...n}).subscribe(()=>{})}function Se(t){return new Promise((e,n)=>{let r=!1,o=!1,s;s=t.subscribe(a=>{for(let i of a){if(r)return;if(i[0]===D){r=!0,e(i[1]),s?(s(),s=void 0):o=!0;return}if(i[0]===P){r=!0,n(i[1]),s?(s(),s=void 0):o=!0;return}if(i[0]===$){r=!0,n(new Error("completed without DATA")),s?(s(),s=void 0):o=!0;return}}}),o&&(s?.(),s=void 0)})}function So(t,e,n){return new Promise((r,o)=>{let s=!1,a=!1,i,d=n?.skipCurrent===!0;i=t.subscribe(c=>{for(let u of c){if(s)return;if(!(d&&u[0]===D)){if(u[0]===D){let l=u[1];if(e(l)){s=!0,r(l),i?(i(),i=void 0):a=!0;return}}if(u[0]===P){s=!0,o(u[1]),i?(i(),i=void 0):a=!0;return}if(u[0]===$){s=!0,o(new Error("completed without matching value")),i?(i(),i=void 0):a=!0;return}}}}),d=!1,a&&(i?.(),i=void 0)})}async function Mo(t,e){let n=e?.predicate??(s=>s!=null),r=e?.skipCurrent;if(e?.timeoutMs==null||e.timeoutMs<=0)return await So(t,n,{skipCurrent:r});if(Zn===void 0){let[s,a]=await Promise.all([Promise.resolve().then(()=>(mt(),Ro)),Promise.resolve().then(()=>(Un(),ho))]);Zn=s.timeout,_o=a.NS_PER_MS}let o=Zn(t,e.timeoutMs*_o);return await So(o,n,{skipCurrent:r})}function Eo(t,e){let n=new AbortController,r=e?.reason??new Error("cancelled via nodeSignal"),o,s=!1,a=()=>{o?(o(),o=void 0):s=!0};return o=t.subscribe(i=>{if(!n.signal.aborted)for(let d of i){if(d[0]===D&&d[1]===!0){n.abort(r),a();return}if(d[0]===P){n.abort(d[1]),a();return}if(d[0]===$){a();return}}}),s&&(o?.(),o=void 0),{signal:n.signal,dispose:()=>{o&&(o(),o=void 0)}}}function Y(t){return t.subscribe(()=>{})}var Zn,_o,Oo=me(()=>{"use strict";se();ve();Q()});var Z=me(()=>{"use strict";Oo()});var Ad={};An(Ad,{AgentLoopGraph:()=>Sn,AllTiersExhaustedError:()=>At,BudgetExhaustedError:()=>pn,ChatStreamGraph:()=>xn,CircuitOpenError:()=>ze,DEFAULT_DECAY_RATE:()=>_n,FallbackMissError:()=>zi,LLMTimeoutError:()=>yt,ReplayCacheMissError:()=>nt,ToolRegistryGraph:()=>Rn,admissionFilter3D:()=>ld,admissionScored:()=>Rs,agentLoop:()=>dd,agentMemory:()=>yd,anthropicAdapter:()=>tr,canonicalJson:()=>ar,cascadingLlmAdapter:()=>wr,chatStream:()=>Fr,composePricing:()=>ua,computePrice:()=>mr,contentGate:()=>od,costMeterExtractor:()=>Xa,createAdapter:()=>oa,createCapabilitiesRegistry:()=>ai,createPricingRegistry:()=>da,dryRunAdapter:()=>et,fallbackAdapter:()=>dr,frozenContext:()=>Na,gatedStream:()=>Ja,gaugesAsContext:()=>bd,googleAdapter:()=>cr,graphFromSpec:()=>Ks,graphFromSpecReactive:()=>Sd,handoff:()=>cd,keywordFlagExtractor:()=>ed,knobsAsTools:()=>Nd,llmConsolidator:()=>Mr,llmExtractor:()=>Nr,memoryRetrieval:()=>Ur,memoryWithKG:()=>Kr,memoryWithTiers:()=>zr,memoryWithVectors:()=>Vr,observableAdapter:()=>ia,openAICompatAdapter:()=>lr,parseRateLimitFromError:()=>br,pricingFor:()=>la,promptCall:()=>_r,promptNode:()=>Sr,redactor:()=>sd,registryPricing:()=>ca,resilientAdapter:()=>xa,streamExtractor:()=>td,streamingPromptNode:()=>Ha,suggestStrategy:()=>zs,suggestStrategyReactive:()=>Ed,systemPromptBuilder:()=>Ya,tier:()=>wa,toolCallExtractor:()=>rd,toolExecution:()=>$r,toolRegistry:()=>jr,toolSelector:()=>ud,validateGraphDef:()=>Od,withBreaker:()=>gr,withBudgetGate:()=>yr,withDryRun:()=>fa,withRateLimiter:()=>vr,withReplayCache:()=>Et,withRetry:()=>kr,withTimeout:()=>xr,zeroPrice:()=>ln});module.exports=Ys(Ad);Q();_e();ge();se();Q();var Kn=class{_version=0;_store=new Map;_maxSize;_defaultTtl;constructor(e={}){let{maxSize:n,defaultTtl:r}=e;if(n!==void 0&&n<1)throw new RangeError("maxSize must be >= 1");if(r!==void 0&&r<=0)throw new RangeError("defaultTtl must be positive");this._maxSize=n,this._defaultTtl=r}get version(){return this._version}get size(){return this._store.size}has(e){let n=this._store.get(e);return n===void 0?!1:this._isExpired(n)?(this._store.delete(e),this._version+=1,!1):(this._touchLru(e,n),!0)}get(e){let n=this._store.get(e);if(n!==void 0){if(this._isExpired(n)){this._store.delete(e),this._version+=1;return}return this._touchLru(e,n),n.value}}set(e,n,r){let o=this._resolveExpiresAt(r);this._store.has(e)&&this._store.delete(e),this._store.set(e,{value:n,expiresAt:o}),this._evictLruWhileOver(),this._version+=1}setMany(e,n){let r=this._resolveExpiresAt(n),o=0;try{for(let[s,a]of e)this._store.has(s)&&this._store.delete(s),this._store.set(s,{value:a,expiresAt:r}),o+=1}finally{o>0&&(this._evictLruWhileOver(),this._version+=1)}}delete(e){let n=this._store.delete(e);return n&&(this._version+=1),n}deleteMany(e){let n=0;try{for(let r of e)this._store.delete(r)&&(n+=1)}finally{n>0&&(this._version+=1)}return n}clear(){let e=this._store.size;return e===0?0:(this._store.clear(),this._version+=1,e)}pruneExpired(){let e=z(),n=0;for(let[r,o]of this._store)this._isExpired(o,e)&&(this._store.delete(r),n+=1);return n>0&&(this._version+=1),n}toMap(){let e=z(),n=new Map;for(let[r,o]of this._store)this._isExpired(o,e)||n.set(r,o.value);return n}_resolveExpiresAt(e){let n=e??this._defaultTtl;if(n!==void 0){if(!Number.isFinite(n)||n<=0)throw new RangeError(`MapBackend: ttl must be a positive finite number (got ${n})`);return z()+n*1e9}}_isExpired(e,n){return e.expiresAt===void 0?!1:(n??z())>=e.expiresAt}_touchLru(e,n){this._store.delete(e),this._store.set(e,n)}_evictLruWhileOver(){if(this._maxSize!==void 0)for(;this._store.size>this._maxSize;){let e=this._store.keys().next().value;if(e===void 0)break;this._store.delete(e)}}};function Pe(t={}){let{name:e,maxSize:n,defaultTtl:r,versioning:o,backend:s,retention:a}=t;if(a&&n!==void 0)throw new RangeError("reactiveMap: `maxSize` (LRU) and `retention` (score-based) are mutually exclusive. Pick one eviction policy.");if(a&&a.archiveThreshold===void 0&&a.maxSize===void 0)throw new RangeError("reactiveMap: `retention` requires at least one of `archiveThreshold` or `maxSize` to trigger archival.");let i=s??new Kn({maxSize:n,defaultTtl:r}),d=F(i.toMap(),{name:e,describeKind:"state",equals:(p,f)=>p===f,...o!=null?{versioning:o}:{}});function c(){let p=i.toMap();ne(()=>{d.down([[X]]),d.down([[D,p]])})}function u(){if(!a)return;let p=i.toMap(),f=a.archiveThreshold,m=a.maxSize,h=[];for(let[y,T]of p)h.push({key:y,value:T,score:a.score(y,T)});h.sort((y,T)=>y.score-T.score);let g=new Set;if(f!==void 0)for(let y of h)if(y.score<f)g.add(y.key);else break;if(m!==void 0&&h.length-g.size>m)for(let y of h){if(h.length-g.size<=m)break;g.has(y.key)||g.add(y.key)}if(g.size!==0)for(let y of h)g.has(y.key)&&(a.onArchive?.(y.key,y.value,y.score),i.delete(y.key))}function l(p,f="mutation"){let m=i.version;try{return p()}finally{i.version!==m&&(f==="mutation"&&u(),c())}}return{entries:d,has(p){return l(()=>i.has(p),"read")},get(p){return l(()=>i.get(p),"read")},set(p,f,m){l(()=>i.set(p,f,m?.ttl))},setMany(p,f){l(()=>i.setMany(p,f?.ttl))},delete(p){l(()=>i.delete(p))},deleteMany(p){l(()=>i.deleteMany(p))},clear(){l(()=>i.clear())},pruneExpired(){l(()=>i.pruneExpired())},get size(){return i.size},dispose(){}}}function St(t,e){return`${t}::${e}`}function ai(t){let e=Pe({name:"capabilitiesRegistry"}),n=c=>{e.set(St(c.provider,c.id),c)};if(t)for(let c of t)n(c);let r=(c,u)=>{let l=e.get(St(c,u));if(l)return l;let p=e.entries.cache;if(!p)return;let f;for(let[,m]of p){if(m.provider!==c)continue;let h=m.id;u.startsWith(h)&&(!f||h.length>f.id.length)&&(f=m)}return f},o=128,s=new Map,a=new Map,i=(c,u,l,p)=>{for(c.has(u)&&c.delete(u),c.set(u,l);c.size>p;){let f=c.keys().next().value;if(f===void 0)break;c.delete(f)}},d=A([e.entries],([c])=>Array.from(c.values()),{name:"capabilitiesRegistry/entries",initial:[]});return{register:n,lookup:r,remove(c,u){let l=e.has(St(c,u));return l&&e.delete(St(c,u)),l},entries(){let c=e.entries.cache;return(function*(){if(c)for(let u of c.values())yield u})()},lookupNode(c,u){let l=St(c,u),p=s.get(l);if(p)return s.delete(l),s.set(l,p),p;let f=A([e.entries],()=>r(c,u),{name:`capabilitiesRegistry/lookup/${c}::${u}`,initial:void 0});return i(s,l,f,o),f},entriesNode:d,byProvider(c){let u=a.get(c);if(u)return a.delete(c),a.set(c,u),u;let l=A([d],([p])=>p.filter(f=>f.provider===c),{name:`capabilitiesRegistry/byProvider/${c}`,initial:[]});return i(a,c,l,o),l}}}ge();se();Le();ve();Q();Z();function tn(t){return{describeKind:"derived",...t}}function Ai(t){return{describeKind:"derived",partial:!0,...t}}function Ao(t,e,n){return te([t],(r,o)=>{let s=r[0];if(s==null||s.length===0){o.down([[U]]);return}let a=!1;for(let i of s)e(i)&&(o.emit(i),a=!0);a||o.down([[U]])},{...tn(n),meta:{...ae("filter"),...n?.meta??{}}})}function Co(t,e,n){let r=n?.where??(s=>s!=null),o=!1;return te([t],(s,a)=>{let i=s[0];if(i==null||i.length===0){a.down([[U]]);return}for(let d of i)!o&&r(d)&&(o=!0,e(d)),a.emit(d)},tn(n))}function Lo(t,e,n){return te([t,e],(r,o,s)=>{let a=r[0],i=r[1],d=i!=null&&i.length>0?i.at(-1):s.prevData[1];if(a!=null&&a.length>0){if(!(i!=null&&i.length>0)&&s.prevData[1]===void 0){o.down([[U]]);return}for(let c of a)o.emit([c,d])}else o.down([[U]])},{...Ai(n),meta:{...ae("withLatestFrom"),...n?.meta??{}}})}function Ci(t,e,n){let r,o=!1,s=()=>{o||(o=!0,n())};return r=t.subscribe(a=>{let i=!1,d=!1;for(let c of a)c[0]!==je&&(c[0]===D?e.emit(c[1]):c[0]===$?i=!0:c[0]===P?(d=!0,e.down([c])):(c[0]===X||c[0]===U)&&e.down([c]));d?(r?.(),r=void 0,s()):i&&s()}),()=>{r?.(),r=void 0}}function he(t,e,n){let r,o=!1;function s(){r?.(),r=void 0}return te([t],(a,i,d)=>{if(d.terminalDeps[0]!=null&&d.terminalDeps[0]!==!0){s();return}if(d.terminalDeps[0]===!0){o=!0,r||i.down([[$]]);return}let c=a[0];if(!(c==null||c.length===0))return s(),r=Ci(V(e(c[c.length-1])),i,()=>{s(),o&&i.down([[$]])}),{deactivate:()=>{s(),o=!1}}},{...tn(n),completeWhenDepsComplete:!1,meta:{...ae("switchMap"),...n?.meta??{}}})}function Do(t,e,n){return oe(r=>{let o=t.subscribe(s=>{for(let a of s)if(a[0]===D)r.emit(a[1]);else if(a[0]===P)try{r.emit(e(a[1]))}catch(i){r.down([[P,i]])}else a[0]===$&&r.down([[$]])});return()=>{o()}},tn(n))}async function*gt(t,e){let n=e?.parse??(k=>k),r=e?.signal,o=new TextDecoder,s="",a="message",i=[],d,c,u=[],l=()=>{if(i.length===0&&a==="message"&&d===void 0){i=[];return}let k=i.join(`
2
- `);u.push({event:a,data:n(k),id:d,retry:c}),a="message",i=[],d=void 0,c=void 0},p=k=>{if(k===""){l();return}if(k.startsWith(":"))return;let _=k.indexOf(":"),w=_<0?k:k.slice(0,_),R=_<0?"":k.slice(_+1);switch(R.startsWith(" ")&&(R=R.slice(1)),w){case"event":a=R;break;case"data":i.push(R);break;case"id":R.includes("\0")||(d=R);break;case"retry":{let x=Number(R);Number.isFinite(x)&&(c=x);break}}},f=(k,_)=>{s+=o.decode(k,{stream:!_});let w=s.split(/\r?\n/);s=w.pop()??"";for(let R of w)p(R)},m=t,h=t instanceof ReadableStream?t:m&&typeof m=="object"&&m.body instanceof ReadableStream?m.body:null,g,y,T=!1,b=()=>{T||(T=!0,g&&g.cancel().catch(()=>{}),y&&typeof y.return=="function"&&Promise.resolve(y.return()).catch(()=>{}))},v=()=>{b()};if(r){if(r.aborted)return;r.addEventListener("abort",v,{once:!0})}try{if(h){for(g=h.getReader();!r?.aborted;){let{value:k,done:_}=await g.read();if(_)break;for(f(k,!1);u.length>0;)yield u.shift()}f(new Uint8Array,!0)}else{for(y=t[Symbol.asyncIterator]();!r?.aborted;){let _=await y.next();if(_.done)break;for(f(_.value,!1);u.length>0;)yield u.shift()}f(new Uint8Array,!0)}if(s.trim()){for(let k of s.split(/\r?\n/))p(k);l()}for(;u.length>0;)yield u.shift()}finally{r&&r.removeEventListener("abort",v),b()}}async function Ve(t,e){let n;try{n=await t.text()}catch{n=""}let r=e??"HTTP",o=new Error(`${r} API ${t.status}: ${t.statusText}${n?` \u2014 ${n}`:""}`);return o.status=t.status,o.headers=t.headers,o}function tr(t={}){return t.sdk?Gi(t):Pi(t)}function nn(t,e,n,r){let o=e?.model??n;if(!o)throw new Error("anthropicAdapter: model must be set via options.model or invokeOpts.model");let{system:s,chat:a}=Li(t,e?.systemPrompt),i={model:o,messages:a.map(Di),max_tokens:e?.maxTokens??4096};return s&&(i.system=s),e?.temperature!=null&&(i.temperature=e.temperature),e?.tools&&e.tools.length>0&&(i.tools=e.tools.map(Ii)),e?.maxReasoningTokens!=null&&(i.thinking={type:"enabled",budget_tokens:e.maxReasoningTokens}),e?.cacheHint,r&&(i.stream=!0),e?.providerExtras&&Object.assign(i,e.providerExtras),i}function Li(t,e){let n=[];e&&n.push(e);let r=[];for(let o of t)o.role==="system"?n.push(o.content):r.push(o);return{system:n.length>0?n.join(`
1
+ "use strict";var On=Object.defineProperty;var qs=Object.getOwnPropertyDescriptor;var Ws=Object.getOwnPropertyNames;var Hs=Object.prototype.hasOwnProperty;var me=(t,e)=>()=>(t&&(e=t(t=0)),e);var An=(t,e)=>{for(var n in e)On(t,n,{get:e[n],enumerable:!0})},Js=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Ws(e))!Hs.call(t,o)&&o!==n&&On(t,o,{get:()=>e[o],enumerable:!(r=qs(e,o))||r.enumerable});return t};var Ys=t=>Js(On({},"__esModule",{value:!0}),t);function Wr(t,e){let n=new TextEncoder().encode(t.name);if(n.length===0||n.length>255)throw new Error(`encodeEnvelope: codec name "${t.name}" encodes to ${n.length} bytes (must be 1\u2013255)`);let r=t.version;if(!Number.isInteger(r)||r<0||r>65535)throw new Error(`encodeEnvelope: codec.version ${r} out of u16 range (expected integer 0\u201365535)`);let o=2+n.length+2+e.length;if(o>4294967295)throw new Error(`encodeEnvelope: total envelope size ${o} exceeds 2^32-1 bytes (payload ${e.length} bytes)`);let s=new Uint8Array(o),a=0;return s[a++]=Cn,s[a++]=n.length,s.set(n,a),a+=n.length,s[a++]=r>>>8&255,s[a++]=r&255,s.set(e,a),s}function Hr(t,e){if(t.length<qr)throw new Error(`decodeEnvelope: bytes too short (${t.length} < ${qr})`);let n=0,r=t[n++];if(r!==Cn)throw new Error(`decodeEnvelope: unsupported envelope version ${r} (expected ${Cn})`);let o=t[n++];if(o===0)throw new Error("decodeEnvelope: name_len must be >= 1");if(n+o+2>t.length)throw new Error(`decodeEnvelope: envelope truncated (need ${n+o+2} bytes, have ${t.length})`);let s=new TextDecoder().decode(t.subarray(n,n+o));n+=o;let a=(t[n]<<8|t[n+1])>>>0;n+=2;let i=t.subarray(n),d=e.lookupCodec(s);if(d==null)throw new Error(`decodeEnvelope: codec "${s}" not registered (envelope codec_v=${a})`);return{codec:d,codecVersion:a,payload:i}}function Jr(t){t.registerCodec(Qs)}var Qs,Cn,qr,Ln=me(()=>{"use strict";Qs={name:"json",version:1,contentType:"application/json",encode(t){let e=JSON.stringify(t);return new TextEncoder().encode(e)},decode(t,e){let n=new TextDecoder().decode(t);return JSON.parse(n)}},Cn=1,qr=4});function $t(t){if(t==null)return st;let{type:e,id:n,...r}=t;return{type:e??"system",id:n??"",...r}}var st,jt=me(()=>{"use strict";st={type:"system",id:""}});function Bt(){return it>0||xt}function Yr(){return it>0}function dt(t){it>0?Rt.push(t):t()}function ne(t){it+=1;let e=!1;try{t()}catch(n){throw e=!0,n}finally{if(it-=1,it===0)if(e){if(!xt){let n=Rt.splice(0);for(let r of n)try{r()}catch{}We.length=0,He.length=0,at.length=0}}else Xs()}}function Xs(){let t=!xt;t&&(xt=!0);let e=[],n=0;try{for(;We.length>0||He.length>0||at.length>0||t&&Rt.length>0;){if(t&&Rt.length>0){let s=Rt.splice(0);for(let a of s)try{a()}catch(i){e.push(i)}continue}if(n+=1,n>1e3)throw We.length=0,He.length=0,at.length=0,new Error("batch drain exceeded 1000 iterations \u2014 likely a reactive cycle");let o=(We.length>0?We:He.length>0?He:at).splice(0);for(let s of o)try{s()}catch(a){e.push(a)}}}finally{t&&(xt=!1)}if(e.length===1)throw e[0];if(e.length>1)throw new AggregateError(e,"batch drain: multiple callbacks threw")}function Vt(t,e,n){if(e.length===0)return;if(e.length===1){let c=n(e[0][0]);if(c<3||!Bt()){t(e);return}(c>=5?at:c===4?He:We).push(()=>t(e));return}let r=e.length,o=r,s=r,a=r,i=0;for(;i<r&&n(e[i][0])<3;)i++;for(o=i;i<r&&n(e[i][0])===3;)i++;for(s=i;i<r&&n(e[i][0])===4;)i++;a=i;let d=Bt();if(o>0){let c=e.slice(0,o);t(c)}if(s>o){let c=e.slice(o,s);d?We.push(()=>t(c)):t(c)}if(a>s){let c=e.slice(s,a);d?He.push(()=>t(c)):t(c)}if(r>a){let c=e.slice(a,r);d?at.push(()=>t(c)):t(c)}}var it,xt,We,He,at,Rt,Ne=me(()=>{"use strict";it=0,xt=!1,We=[],He=[],at=[],Rt=[]});function z(){return Math.trunc(performance.now()*1e6)}function ie(){return Date.now()*1e6}var ge=me(()=>{"use strict"});var je,D,X,U,Oe,xe,Ae,ue,$,P,Je,Kt,Qr,zt,Xr,Zr,Ut,Dn,In,Pn,qt,se=me(()=>{"use strict";je=Symbol.for("graphrefly/START"),D=Symbol.for("graphrefly/DATA"),X=Symbol.for("graphrefly/DIRTY"),U=Symbol.for("graphrefly/RESOLVED"),Oe=Symbol.for("graphrefly/INVALIDATE"),xe=Symbol.for("graphrefly/PAUSE"),Ae=Symbol.for("graphrefly/RESUME"),ue=Symbol.for("graphrefly/TEARDOWN"),$=Symbol.for("graphrefly/COMPLETE"),P=Symbol.for("graphrefly/ERROR"),Je=Object.freeze([X]),Kt=Object.freeze([U]),Qr=Object.freeze([Oe]),zt=Object.freeze([je]),Xr=Object.freeze([$]),Zr=Object.freeze([ue]),Ut=Object.freeze([Je]),Dn=Object.freeze([Kt]),In=Object.freeze([Qr]),Pn=Object.freeze([Xr]),qt=Object.freeze([Zr])});function eo(t){t.registerMessageType(je,{tier:0,wireCrossing:!1}),t.registerMessageType(X,{tier:1,wireCrossing:!1}),t.registerMessageType(Oe,{tier:1,wireCrossing:!1,metaPassthrough:!1}),t.registerMessageType(xe,{tier:2,wireCrossing:!1}),t.registerMessageType(Ae,{tier:2,wireCrossing:!1}),t.registerMessageType(D,{tier:3,wireCrossing:!0}),t.registerMessageType(U,{tier:3,wireCrossing:!0}),t.registerMessageType($,{tier:4,wireCrossing:!0,metaPassthrough:!1}),t.registerMessageType(P,{tier:4,wireCrossing:!0,metaPassthrough:!1}),t.registerMessageType(ue,{tier:5,wireCrossing:!0,metaPassthrough:!1})}var Wt,to=me(()=>{"use strict";se();Wt=class{_messageTypes=new Map;_codecs=new Map;_onMessage;_onSubscribe;_defaultVersioning;_defaultHashFn;_inspectorEnabled=!(typeof process<"u"&&process.env?.NODE_ENV==="production");_globalInspector;_rigorRecorder;_frozen=!1;tierOf;constructor(e){this._onMessage=e.onMessage,this._onSubscribe=e.onSubscribe,this._defaultVersioning=e.defaultVersioning,this._defaultHashFn=e.defaultHashFn,this.tierOf=n=>{let r=this._messageTypes.get(n);return r!=null?r.tier:1}}get onMessage(){return this._frozen=!0,this._onMessage}get onSubscribe(){return this._frozen=!0,this._onSubscribe}set onMessage(e){this._assertUnfrozen(),this._onMessage=e}set onSubscribe(e){this._assertUnfrozen(),this._onSubscribe=e}get defaultVersioning(){return this._defaultVersioning}set defaultVersioning(e){this._assertUnfrozen(),this._defaultVersioning=e}get defaultHashFn(){return this._defaultHashFn}set defaultHashFn(e){this._assertUnfrozen(),this._defaultHashFn=e}get inspectorEnabled(){return this._inspectorEnabled}set inspectorEnabled(e){this._inspectorEnabled=e}get globalInspector(){return this._globalInspector}set globalInspector(e){this._globalInspector=e}get rigorRecorder(){return this._rigorRecorder}set rigorRecorder(e){this._rigorRecorder=e}registerMessageType(e,n){return this._assertUnfrozen(),this._messageTypes.set(e,{tier:n.tier,wireCrossing:n.wireCrossing??n.tier>=3,metaPassthrough:n.metaPassthrough??!0}),this}messageTier(e){let n=this._messageTypes.get(e);return n!=null?n.tier:1}isWireCrossing(e){let n=this._messageTypes.get(e);return n!=null?n.wireCrossing:!0}isLocalOnly(e){return!this.isWireCrossing(e)}isMetaPassthrough(e){let n=this._messageTypes.get(e);return n!=null?n.metaPassthrough:!0}isKnownMessageType(e){return this._messageTypes.has(e)}registerCodec(e){return this._assertUnfrozen(),this._codecs.set(e.name,e),this}lookupCodec(e){return this._codecs.get(e)}_isFrozen(){return this._frozen}_assertUnfrozen(){if(this._frozen)throw new Error("GraphReFlyConfig is frozen: a node has already captured this config. Register custom types and set hooks before creating any node.")}}});function no(t){return Array.isArray(t)?[...t]:[t]}function Zs(t,e){return t.has(e)||t.has("*")}function ro(t){let e=[];return t((o,s)=>{e.push({kind:"allow",actions:new Set(no(o)),where:s?.where??(()=>!0)})},(o,s)=>{e.push({kind:"deny",actions:new Set(no(o)),where:s?.where??(()=>!0)})}),(o,s)=>{let a=!1,i=!1;for(let d of e)Zs(d.actions,s)&&d.where(o)&&(d.kind==="deny"?a=!0:i=!0);return a?!1:i}}function Gn(t){let e=ei.filter(n=>t({type:n,id:""},"write"));return e.length===0?"restricted":e.includes("human")&&e.includes("llm")&&e.every(n=>n==="human"||n==="llm"||n==="system")?"both":e.length===1?e[0]:e.join("+")}var Ce,ei,ct=me(()=>{"use strict";Ce=class extends Error{actor;action;nodeName;constructor(e,n){super(n??`GuardDenied: action "${String(e.action)}" denied for actor type "${String(e.actor.type)}"`),this.name="GuardDenied",this.actor=e.actor,this.action=e.action,this.nodeName=e.nodeName}get node(){return this.nodeName}};ei=["human","llm","wallet","system"]});function Fn(t){if(t===void 0)return null;if(typeof t=="number"){if(!Number.isFinite(t))throw new TypeError(`Cannot hash non-finite number: ${t}`);if(Number.isInteger(t)&&!Number.isSafeInteger(t))throw new TypeError(`Cannot hash integer outside safe range (|n| > 2^53-1): ${t}. Cross-language cid parity is not guaranteed for unsafe integers.`);return t}if(typeof t=="string"||typeof t=="boolean"||t===null)return t;if(Array.isArray(t))return t.map(Fn);if(typeof t=="object"&&t!==null){let e={};for(let n of Object.keys(t).sort())e[n]=Fn(t[n]);return e}return null}function ri(t){let e=ni.encode(t),n=e.length,r=n*8,o=n+9+63&-64,s=new Uint8Array(o);s.set(e),s[n]=128;let a=new DataView(s.buffer);a.setUint32(o-4,r>>>0,!1),a.setUint32(o-8,Math.floor(r/4294967296)>>>0,!1);let i=1779033703,d=3144134277,c=1013904242,u=2773480762,l=1359893119,p=2600822924,f=528734635,m=1541459225,h=new Uint32Array(64),g=(T,b)=>T>>>b|T<<32-b;for(let T=0;T<o;T+=64){for(let M=0;M<16;M++)h[M]=a.getUint32(T+M*4,!1);for(let M=16;M<64;M++){let L=h[M-15],S=h[M-2],E=g(L,7)^g(L,18)^L>>>3,I=g(S,17)^g(S,19)^S>>>10;h[M]=h[M-16]+E+h[M-7]+I>>>0}let b=i,v=d,k=c,N=u,w=l,R=p,x=f,_=m;for(let M=0;M<64;M++){let L=g(w,6)^g(w,11)^g(w,25),S=w&R^~w&x,E=_+L+S+ti[M]+h[M]>>>0,I=g(b,2)^g(b,13)^g(b,22),K=b&v^b&k^v&k,q=I+K>>>0;_=x,x=R,R=w,w=N+E>>>0,N=k,k=v,v=b,b=E+q>>>0}i=i+b>>>0,d=d+v>>>0,c=c+k>>>0,u=u+N>>>0,l=l+w>>>0,p=p+R>>>0,f=f+x>>>0,m=m+_>>>0}let y=T=>T.toString(16).padStart(8,"0");return y(i)+y(d)+y(c)+y(u)+y(l)+y(p)+y(f)+y(m)}function $n(t){let e=Fn(t??null),n=JSON.stringify(e);return ri(n).slice(0,16)}function oi(){let t=globalThis.crypto;if(t?.randomUUID)return t.randomUUID();let e=()=>Math.floor(Math.random()*4294967296).toString(16).padStart(8,"0"),n=e()+e()+e()+e();return`${n.slice(0,8)}-${n.slice(8,12)}-4${n.slice(13,16)}-${(parseInt(n.slice(16,17),16)&3|8).toString(16)}${n.slice(17,20)}-${n.slice(20,32)}`}function jn(t,e,n){let r=n?.id??oi();if(t===0)return{id:r,version:0};let s=(n?.hash??$n)(e);return{id:r,version:0,cid:s,prev:null}}function oo(t,e,n){t.version+=1,"cid"in t&&(t.prev=t.cid,t.cid=n(e))}var ti,ni,so=me(()=>{"use strict";ti=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]),ni=new TextEncoder});function co(t){return{node:t,unsub:null,prevData:void 0,dirty:!1,involvedThisWave:!1,dataBatch:[],terminal:void 0}}function Bn(t){t.prevData=void 0,t.dirty=!1,t.involvedThisWave=!1,t.dataBatch.length=0,t.terminal=void 0}function Ht(t){return t.length===0?t:typeof t[0]=="symbol"?[t]:t}function te(t,e,n){let r=uo(t)?t:[],o=typeof t=="function"?t:typeof e=="function"?e:void 0,s={};return uo(t)?s=(Vn(e)?e:n)??{}:Vn(t)?s=t:s=(Vn(e)?e:n)??{},new le(r,o,s)}var io,ao,si,ii,ut,le,uo,Vn,ve=me(()=>{"use strict";Ln();jt();Ne();ge();to();ct();se();so();io=()=>{},ao=100;si=(t,e,n,r)=>{n.direction==="down-in"&&t._onDepMessage(n.depIndex,e)},ii=(t,e,n,r)=>{let o=t;if(o._status==="completed"||o._status==="errored")return;let s=o._cached,a=s===void 0?[zt]:[zt,[D,s]];o._status==="dirty"&&a.push(Je),Vt(e,a,o._config.tierOf)},ut=new Wt({onMessage:si,onSubscribe:ii});eo(ut);Jr(ut);le=class t{_optsName;_describeKind;meta;_hasMeta;_config;_deps;_sinks=null;_sinkCount=0;_cached;_status;_cleanup;_store={};_waveHasNewData=!1;_hasNewTerminal=!1;_hasCalledFnOnce=!1;_paused=!1;_pendingWave=!1;_isExecutingFn=!1;_pendingRerun=!1;_rerunDepth=0;_dirtyDepCount=0;_batchPendingMessages=null;_pauseLocks=null;_pauseBuffer=null;_fn;_equals;_resubscribable;_resetOnTeardown;_autoComplete;_autoError;_pausable;_partial;_guard;_extraGuards;_hashFn;_versioning;_versioningLevel;_lastMutation;_inspectorHooks;_actions;constructor(e,n,r){this._config=r.config??ut,this._config.onMessage,this._optsName=r.name,this._describeKind=r.describeKind,this._equals=r.equals??Object.is,this._resubscribable=r.resubscribable??!1,this._resetOnTeardown=r.resetOnTeardown??!1,this._autoComplete=r.completeWhenDepsComplete??!0,this._autoError=r.errorWhenDepsError??!0,this._pausable=r.pausable??!0,this._guard=r.guard,this._fn=n,this._partial=r.partial??!1,this._cached=r.initial!==void 0?r.initial:void 0,this._status=e.length===0&&n==null&&this._cached!==void 0?"settled":"sentinel",this._hashFn=r.versioningHash??this._config.defaultHashFn??$n;let o=r.versioning??this._config.defaultVersioning;this._versioningLevel=o,this._versioning=o!=null?jn(o,this._cached===void 0?void 0:this._cached,{id:r.versioningId,hash:this._hashFn}):void 0,this._deps=e.map(co);let s={};for(let[i,d]of Object.entries(r.meta??{})){let c={initial:d,name:`${r.name??"node"}:meta:${i}`,describeKind:"state",config:this._config};r.guard!=null&&(c.guard=r.guard),s[i]=new t([],void 0,c)}Object.freeze(s),this.meta=s,this._hasMeta=Object.keys(s).length>0;let a=this;this._actions={emit(i){a._emit([[D,i]])},down(i){a._emit(Ht(i))},up(i){a._emitUp(Ht(i))}},this.down=this.down.bind(this),this.up=this.up.bind(this)}get _isTerminal(){return this._status==="completed"||this._status==="errored"}get name(){return this._optsName}get status(){return this._status}get cache(){return this._cached===void 0?void 0:this._cached}get lastMutation(){return this._lastMutation}get v(){return this._versioning}hasGuard(){return this._guard!=null}_applyVersioning(e,n){if(this._isExecutingFn)throw new Error(`Node "${this.name}": _applyVersioning cannot run mid-fn \u2014 call it outside of \`_execFn\` (typically at graph setup time before the first subscribe).`);let r=this._versioningLevel;if(r!=null&&e<=r)return;let o=n?.hash??this._hashFn;o!==this._hashFn&&(this._hashFn=o);let s=this._cached===void 0?void 0:this._cached,a=this._versioning,i=a?.id??n?.id,d=a?.version??0,c=jn(e,s,{id:i,hash:o});c.version=d,this._versioning=c,this._versioningLevel=e}_setInspectorHook(e){return e==null?()=>{}:(this._inspectorHooks==null&&(this._inspectorHooks=new Set),this._inspectorHooks.add(e),()=>{this._inspectorHooks?.delete(e),this._inspectorHooks?.size===0&&(this._inspectorHooks=void 0)})}_pushGuard(e){return this._extraGuards==null&&(this._extraGuards=new Set),this._extraGuards.add(e),()=>{this._extraGuards?.delete(e),this._extraGuards?.size===0&&(this._extraGuards=void 0)}}allowsObserve(e){if(this._guard==null&&this._extraGuards==null)return!0;let n=$t(e);if(this._guard!=null&&!this._guard(n,"observe"))return!1;if(this._extraGuards!=null){for(let r of this._extraGuards)if(!r(n,"observe"))return!1}return!0}_checkGuard(e){if(e?.internal)return;let n=this._guard!=null||this._extraGuards!=null,r=e?.actor!=null;if(!n&&!r)return;let o=$t(e?.actor),s=e?.delivery==="signal"?"signal":"write";if(this._guard!=null&&!this._guard(o,s))throw new Ce({actor:o,action:s,nodeName:this.name});if(this._extraGuards!=null){for(let a of this._extraGuards)if(!a(o,s))throw new Ce({actor:o,action:s,nodeName:this.name})}this._lastMutation={actor:o,timestamp_ns:ie()}}down(e,n){let r=Ht(e);r.length!==0&&(this._checkGuard(n),this._emit(r))}emit(e,n){this._checkGuard(n),this._emit([[D,e]])}up(e,n){if(this._deps.length===0)return;let r=Ht(e);if(r.length===0)return;this._checkGuard(n);let o=n??{internal:!0};this._validateUpTiers(r);for(let s of this._deps)s.node.up?.(r,o)}_emitUp(e){if(this._deps.length!==0&&e.length!==0){this._validateUpTiers(e);for(let n of this._deps)n.node.up?.(e,{internal:!0})}}_validateUpTiers(e){let n=this._config.tierOf;for(let r of e){let o=n(r[0]);if(o===3||o===4)throw new Error(`Node "${this.name}": tier-${o} messages cannot flow up \u2014 DATA/RESOLVED/COMPLETE/ERROR are downstream-only. Use \`down(...)\` for value delivery; \`up(...)\` is for control signals (DIRTY, INVALIDATE, PAUSE, RESUME, TEARDOWN).`)}}subscribe(e,n){if(n!=null&&this._guard!=null){let d=$t(n);if(!this._guard(d,"observe"))throw new Ce({actor:d,action:"observe",nodeName:this.name})}let o=this._isTerminal&&this._resubscribable;if(o){this._cached=void 0,this._status="sentinel",this._store={},this._hasCalledFnOnce=!1,this._waveHasNewData=!1,this._hasNewTerminal=!1,this._paused=!1,this._pendingWave=!1,this._pendingRerun=!1,this._isExecutingFn=!1,this._rerunDepth=0,this._dirtyDepCount=0,this._pauseLocks=null,this._pauseBuffer=null;for(let d of this._deps)Bn(d);if(this._partial===!1){for(let d of this._deps)if(d.prevData!==void 0||d.dataBatch.length!==0||d.terminal!==void 0||d.dirty)throw new Error(`resubscribable-reset invariant: DepRecord not fully reset for node ${this._optsName??"(anonymous)"}`)}}this._sinkCount+=1;let s;try{s=this._config.onSubscribe(this,e,{sinkCount:this._sinkCount,afterTerminalReset:o},this._actions)}catch(d){throw this._sinkCount-=1,d}this._sinks==null?this._sinks=e:typeof this._sinks=="function"?this._sinks=new Set([this._sinks,e]):this._sinks.add(e);let a=this._isTerminal;if(this._sinkCount===1&&!a)try{this._activate()}catch(d){if(this._sinkCount-=1,this._removeSink(e),this._sinkCount===0&&(this._status="sentinel"),typeof s=="function")try{s()}catch{}throw d}this._status==="sentinel"&&this._cached===void 0&&(this._status="pending");let i=!1;return()=>{i||(i=!0,this._sinkCount-=1,this._removeSink(e),typeof s=="function"&&s(),this._sinks==null&&this._deactivate())}}_removeSink(e){if(this._sinks===e)this._sinks=null;else if(this._sinks!=null&&typeof this._sinks!="function")if(this._sinks.delete(e),this._sinks.size===1){let[n]=this._sinks;this._sinks=n}else this._sinks.size===0&&(this._sinks=null)}_activate(){if(this._deps.length===0){this._fn&&this._execFn();return}this._dirtyDepCount=0;let e=this._deps.length,n=0;try{for(let r=0;r<e;r++){let o=r,s=this._deps[r];s.unsub=io,s.unsub=s.node.subscribe(a=>{if(s.unsub===null)return;let i=this._config.tierOf,d=!1;for(let c of a)i(c[0])>=3&&(d=!0),this._config.onMessage(this,c,{direction:"down-in",depIndex:o},this._actions);d&&this._maybeRunFnOnSettlement()}),n++}}catch(r){this._deps[n].unsub=null;for(let o=0;o<n;o++){let s=this._deps[o];if(s.unsub!=null){let a=s.unsub;s.unsub=null;try{a()}catch{}Bn(s)}}throw this._dirtyDepCount=0,r}}_addDep(e){for(let o=0;o<this._deps.length;o++)if(this._deps[o].node===e)return o;let n=this._deps.length,r=co(e);if(this._deps.push(r),this._sinks==null)return n;r.dirty=!0,this._dirtyDepCount++,this._status!=="dirty"&&this._emit(Ut),r.unsub=io;try{r.unsub=e.subscribe(o=>{if(r.unsub===null)return;let s=this._config.tierOf,a=!1;for(let i of o)s(i[0])>=3&&(a=!0),this._config.onMessage(this,i,{direction:"down-in",depIndex:n},this._actions);a&&this._maybeRunFnOnSettlement()})}catch(o){throw r.unsub=null,this._deps.pop(),this._dirtyDepCount--,o}return n}_deactivate(e=!1){let n=this._cleanup;if(this._cleanup=void 0,typeof n=="function")try{n()}catch(r){this._emit([[P,this._wrapFnError("cleanup threw",r)]])}else if(n!=null&&typeof n=="object"){let r=n.deactivate;if(typeof r=="function")try{r()}catch(o){this._emit([[P,this._wrapFnError("cleanup.deactivate threw",o)]])}}for(let r of this._deps){if(r.unsub!=null){let o=r.unsub;r.unsub=null;try{o()}catch{}}Bn(r)}this._waveHasNewData=!1,this._hasNewTerminal=!1,this._hasCalledFnOnce=!1,this._paused=!1,this._pendingWave=!1,this._pendingRerun=!1,this._rerunDepth=0,this._store={},this._dirtyDepCount=0,this._pauseLocks=null,this._pauseBuffer=null,this._fn!=null&&(this._cached=void 0),e||(this._fn!=null||this._deps.length>0)&&(!this._isTerminal||this._resubscribable)&&(this._status="sentinel")}_onDepMessage(e,n){let r=this._deps[e],o=n[0];if(this._inspectorHooks!=null){let s={kind:"dep_message",depIndex:e,message:n};for(let a of this._inspectorHooks)a(s)}if(o!==je){if(o===X){this._depDirtied(r);return}if(o===Oe){if(this._depInvalidated(r),this._cached===void 0)return;this._emit(In);return}if(o===xe||o===Ae){this._emit([n]);return}if(o===ue){this._emit(qt);return}if(o===D)this._depSettledAsData(r,n[1]);else if(o===U)this._depSettledAsResolved(r);else if(o===$)this._depSettledAsTerminal(r,!0);else if(o===P)this._depSettledAsTerminal(r,n[1]);else{this._emit([n]);return}if(!this._fn){(o===D||o===U)&&this._emit([n]),(o===$||o===P)&&this._maybeAutoTerminalAfterWave();return}}}_depDirtied(e){e.dirty||(e.dirty=!0,e.involvedThisWave=!0,this._dirtyDepCount++,this._status!=="dirty"&&this._emit(Ut))}_depSettledAsData(e,n){e.dirty&&(e.dirty=!1,this._dirtyDepCount--),e.involvedThisWave=!0,e.dataBatch.push(n),this._waveHasNewData=!0}_depSettledAsResolved(e){e.dirty&&(e.dirty=!1,this._dirtyDepCount--)}_depSettledAsTerminal(e,n){e.dirty&&(e.dirty=!1,this._dirtyDepCount--),e.terminal=n,e.involvedThisWave=!0,this._hasNewTerminal=!0}_depInvalidated(e){e.prevData=void 0,e.terminal=void 0,e.dataBatch.length=0,e.dirty?e.involvedThisWave=!1:(e.dirty=!0,e.involvedThisWave=!0,this._dirtyDepCount++)}_maybeRunFnOnSettlement(){if(!(this._isTerminal&&!this._resubscribable)&&!(this._dirtyDepCount>0)){if(!this._partial&&!this._hasCalledFnOnce)for(let e=0;e<this._deps.length;e++){let n=this._deps[e];if(n.dataBatch.length===0&&n.prevData===void 0&&n.terminal===void 0){this._maybeAutoTerminalAfterWave();return}}if(this._paused){this._pendingWave=!0;return}if(!this._waveHasNewData&&!this._hasNewTerminal&&this._hasCalledFnOnce){this._clearWaveFlags(),this._emit(Dn),this._maybeAutoTerminalAfterWave();return}this._fn&&this._execFn(),this._maybeAutoTerminalAfterWave()}}_maybeAutoTerminalAfterWave(){if(this._deps.length===0||this._isTerminal)return;let e=this._deps.find(n=>n.terminal!==void 0&&n.terminal!==!0);if(e!=null){this._autoError&&this._emit([[P,e.terminal]]);return}this._autoComplete&&this._deps.every(n=>n.terminal!==void 0)&&this._emit(Pn)}_execFn(){if(!this._fn||this._isTerminal&&!this._resubscribable)return;if(this._isExecutingFn){this._pendingRerun=!0;return}let e=this._cleanup;if(typeof e=="function"){this._cleanup=void 0;try{e()}catch(a){this._emit([[P,this._wrapFnError("cleanup threw",a)]]);return}}else if(e!=null&&typeof e=="object"){let a=e.beforeRun;if(typeof a=="function"){e.beforeRun=void 0;try{a()}catch(i){this._emit([[P,this._wrapFnError("cleanup.beforeRun threw",i)]]);return}}}let n=this._deps.map(a=>a.involvedThisWave?a.dataBatch.length>0?[...a.dataBatch]:[]:void 0),r=this._deps.map(a=>a.prevData);for(let a=0;a<this._deps.length;a++){let i=n[a];i!=null&&i.length>0&&(this._deps[a].prevData=i[i.length-1])}let o=this._deps.map(a=>a.terminal),s={prevData:r,terminalDeps:o,store:this._store};if(this._hasCalledFnOnce=!0,this._clearWaveFlags(),this._inspectorHooks!=null){let a={kind:"run",batchData:n,prevData:r};for(let i of this._inspectorHooks)i(a)}this._isExecutingFn=!0;try{let a=this._fn(n,this._actions,s);if(typeof a=="function")this._cleanup=a;else if(a!=null&&typeof a=="object"){let i=a;(typeof i.beforeRun=="function"||typeof i.deactivate=="function"||typeof i.invalidate=="function")&&(this._cleanup=a)}}catch(a){this._emit([[P,this._wrapFnError("fn threw",a)]])}finally{this._isExecutingFn=!1,this._pendingRerun?(this._pendingRerun=!1,this._rerunDepth+=1,this._rerunDepth>ao?(this._rerunDepth=0,this._emit([[P,new Error(`Node "${this.name}": _pendingRerun depth exceeded ${ao} \u2014 likely a reactive cycle`)]])):this._maybeRunFnOnSettlement()):this._rerunDepth=0,this._clearWaveFlags()}}_clearWaveFlags(){this._waveHasNewData=!1,this._hasNewTerminal=!1;for(let e of this._deps)e.involvedThisWave=!1,e.dataBatch.length=0}_wrapFnError(e,n){let r=n instanceof Error?n.message:String(n);return new Error(`Node "${this.name}": ${e}: ${r}`,{cause:n})}_frameBatch(e){let n=this._config.tierOf;if(e.length===1)return n(e[0][0])===3&&this._status!=="dirty"?[Je,e[0]]:e;let r=!0,o=!1,s=!1,a=-1;for(let d of e){let c=n(d[0]);c<a&&(r=!1),c===3&&(o=!0),d[0]===X&&(s=!0),a=c}let i=e;if(!r){let d=e.map((c,u)=>({m:c,i:u,tier:n(c[0])}));d.sort((c,u)=>c.tier-u.tier||c.i-u.i),i=d.map(c=>c.m)}if(o&&!s&&this._status!=="dirty"){let d=0;for(;d<i.length&&n(i[d][0])===0;)d++;return d===0?[Je,...i]:[...i.slice(0,d),Je,...i.slice(d)]}return i}_emit(e){if(e.length===0)return;for(let i=0;i<e.length;i++){let d=e[i];if(d[0]===P&&d[1]===void 0)throw new TypeError('[ERROR, payload] requires a non-undefined payload (spec \xA71.2). Pass an Error object or domain tag instead \u2014 e.g. node.down([[ERROR, new Error("reason")]])')}let n=e;if(this._isTerminal&&!this._resubscribable){let i=e.filter(d=>d[0]===ue||d[0]===Oe);if(i.length===0)return;n=i}n=this._frameBatch(n);let o=null;for(let i=0;i<n.length;i++){let d=n[i],c=d[0];if(c!==xe&&c!==Ae){o?.push(d);continue}if(d.length<2)throw new Error(`Node "${this.name}": [[${c===xe?"PAUSE":"RESUME"}]] must carry a lockId payload \u2014 bare PAUSE/RESUME is a protocol violation (C0 rule). Use \`[[PAUSE, lockId]]\` / \`[[RESUME, lockId]]\`.`);let u=!0;if(this._pausable!==!1){let l=d[1];if(c===xe)this._pauseLocks==null&&(this._pauseLocks=new Set),this._pauseLocks.add(l),this._paused=!0,this._pausable==="resumeAll"&&this._pauseBuffer==null&&(this._pauseBuffer=[]);else if(this._pauseLocks==null||!this._pauseLocks.has(l))u=!1;else if(this._pauseLocks.delete(l),this._pauseLocks.size===0){if(this._paused=!1,this._pauseBuffer!=null&&this._pauseBuffer.length>0){let p=this._pauseBuffer;this._pauseBuffer=[],this._emit(p)}this._pendingWave&&(this._pendingWave=!1,this._maybeRunFnOnSettlement())}}u?o?.push(d):o==null&&(o=n.slice(0,i))}if(o!=null){if(o.length===0)return;n=o}if(this._hasMeta&&n.some(i=>i[0]===ue))for(let i of Object.keys(this.meta))try{this.meta[i]._emit(qt)}catch{}let{finalMessages:s,equalsError:a}=this._updateState(n);if(s.length>0&&this._config.inspectorEnabled){let i=this._config.globalInspector;if(i!=null)try{i({kind:"emit",node:this,messages:s})}catch{}}if(s.length>0)if(this._paused&&this._pausable==="resumeAll"&&this._pauseBuffer!=null){let i=this._config.tierOf,d=[];for(let c of s)i(c[0])===3?this._pauseBuffer.push(c):d.push(c);d.length>0&&this._dispatchOrAccumulate(d)}else this._dispatchOrAccumulate(s);a!=null&&this._emit([[P,a]])}_updateState(e){let n=this._config.tierOf,r,o,s=-1,a=0;for(let u of e)n(u[0])===3&&a++;let i=a<=1,d=-1;if(this._versioning!=null&&a>1){for(let u=e.length-1;u>=0;u--)if(e[u][0]===D){d=u;break}}for(let u=0;u<e.length;u++){let l=e[u],p=l[0];if(p===D){if(l.length>=2){let f=!1;if(i&&this._cached!==void 0)try{f=this._equals(this._cached,l[1])}catch(m){o=this._wrapFnError("equals threw",m),s=u;break}if(f){r==null&&(r=e.slice(0,u)),r.push(Kt),this._status="resolved";continue}this._cached=l[1],this._versioning!=null&&(d<0||u===d)&&oo(this._versioning,l[1],this._hashFn)}this._status="settled",r?.push(l)}else if(r?.push(l),p===X)this._status="dirty";else if(p===U)this._status="resolved";else if(p===$){this._status="completed";{let f=this._config.rigorRecorder;if(f!=null)try{f.onTerminalTransition(this,"completed",this._autoComplete,this._autoError,this._deps.length>0)}catch{}}}else if(p===P){this._status="errored";{let f=this._config.rigorRecorder;if(f!=null)try{f.onTerminalTransition(this,"errored",this._autoComplete,this._autoError,this._deps.length>0)}catch{}}}else if(p===Oe){if(this._cached!==void 0){let m=this._config.rigorRecorder;if(m!=null)try{m.onNonVacuousInvalidate(this,this._cached)}catch{}}this._cached=void 0,this._status="dirty";let f=this._cleanup;if(typeof f=="function"){this._cleanup=void 0;try{f()}catch{}}else if(f!=null&&typeof f=="object"){let m=f.invalidate;if(typeof m=="function")try{m()}catch{}}}else p===ue&&(this._resetOnTeardown&&(this._cached=void 0),this._deactivate(!0),this._status="sentinel")}let c=s>=0?r??e.slice(0,s):r??e;return o!=null?{finalMessages:c,equalsError:o}:{finalMessages:c}}_deliverToSinks=e=>{if(this._sinks==null)return;if(typeof this._sinks=="function"){this._sinks(e);return}let n=[...this._sinks];for(let r of n)r(e)};_dispatchOrAccumulate(e){if(Yr()){this._batchPendingMessages===null&&(this._batchPendingMessages=[],dt(()=>this._flushBatchPending()));for(let n of e)this._batchPendingMessages.push(n);return}Vt(this._deliverToSinks,e,this._config.tierOf)}_flushBatchPending(){let e=this._batchPendingMessages;if(e===null||(this._batchPendingMessages=null,e.length===0))return;let n=this._frameBatch(e);Vt(this._deliverToSinks,n,this._config.tierOf)}},uo=t=>Array.isArray(t),Vn=t=>typeof t=="object"&&t!=null&&!Array.isArray(t)});function F(t,e){return te([],{...e,initial:t})}function oe(t,e){return te((r,o,s)=>t(o,s)??void 0,{describeKind:"producer",...e})}function A(t,e,n){return te(t,(o,s,a)=>{let i=o.map((d,c)=>d!=null&&d.length>0?d.at(-1):a.prevData[c]);s.emit(e(i,a))},{describeKind:"derived",...n})}function Re(t,e,n){return te(t,(o,s,a)=>{let i=o.map((d,c)=>d!=null&&d.length>0?d.at(-1):a.prevData[c]);return e(i,s,a)??void 0},{describeKind:"effect",...n})}var Q=me(()=>{"use strict";ve()});var ho={};An(ho,{NS_PER_MS:()=>lt,NS_PER_SEC:()=>pt,constant:()=>lo,decorrelatedJitter:()=>go,exponential:()=>fo,fibonacci:()=>mo,linear:()=>po,resolveBackoffPreset:()=>zn,withMaxAttempts:()=>ui});function Ye(t){return t<0?0:t}function di(t,e){return e==="none"?t:e==="full"?Math.random()*t:t/2+Math.random()*(t/2)}function ci(t,e){return t+Math.random()*(e-t)}function lo(t){let e=Ye(t);return()=>e}function po(t,e){let n=Ye(t),r=e===void 0?n:Ye(e);return o=>n+r*Math.max(0,o)}function fo(t){let e=Ye(t?.baseNs??1e8),n=t?.factor!==void 0&&t.factor<1?1:t?.factor??2,r=Ye(t?.maxDelayNs??30*1e9),o=t?.jitter??"none";return s=>{let a;if(e===0)a=0;else if(n===1)a=e;else{let i=r/e,d=1;for(let c=0;c<Math.max(0,s);c++){if(d>=i){d=i;break}d*=n}a=e*d,a>r&&(a=r)}return di(a,o)}}function mo(t=100*1e6,e=30*1e9){let n=Ye(t),r=Ye(e);function o(s){if(s<=0)return 1;let a=1,i=2;for(let d=1;d<s;d++){let c=a+i;a=i,i=c}return i}return s=>{let a=o(s)*n;return a<=r?a:r}}function go(t=100*1e6,e=30*1e9){return(n,r,o)=>{let a=Math.min(e,(o??t)*3);return ci(t,a)}}function ui(t,e){return(n,r,o)=>n>=e?null:t(n,r,o)}function zn(t){if(t==="constant")return lo(1*1e9);if(t==="linear")return po(1*1e9);if(t==="exponential")return fo();if(t==="fibonacci")return mo();if(t==="decorrelatedJitter")return go();throw new Error(`Unknown backoff preset: "${String(t)}". Use one of: constant, linear, exponential, fibonacci, decorrelatedJitter`)}var lt,pt,Un=me(()=>{"use strict";lt=1e6,pt=1e9});function Wn(t,e){if(e!=null&&e.length>0)return new Set(e);switch(t){case"standard":return new Set(["type","status","value","deps","meta","v"]);case"full":return null;case"spec":return new Set(["type","deps","meta","value"]);default:return new Set(["type","deps"])}}function li(t){return t._describeKind!=null?t._describeKind:t._deps.length>0?"derived":t._fn!=null?"producer":"state"}function ft(t){let e=new WeakSet,n={};for(let[r,o]of yo(t))n[r]=qn(o,e);return n}function qn(t,e){if(t==null)return t;let n=typeof t;if(n==="boolean"||n==="number"||n==="string")return t;if(n==="function")return"<function>";if(Array.isArray(t))return e.has(t)?"<cycle>":(e.add(t),t.map(r=>qn(r,e)));if(n==="object"){let r=t;if(e.has(r))return"<cycle>";e.add(r);try{if(typeof r.subscribe=="function"&&"cache"in r)return"<Node>"}catch{return"<unserializable>"}let o={};for(let[s,a]of yo(r))o[s]=qn(a,e);return o}return"<unserializable>"}function yo(t){let e=[],n;try{n=Object.keys(t)}catch{return e}for(let r of n)try{e.push([r,t[r]])}catch{e.push([r,"<unserializable>"])}return e}function ae(t,e){let n={factory:t};return e!==void 0&&(n.factoryArgs=e),n}function pi(t){let e={};for(let[n,r]of Object.entries(t.meta))try{e[n]=r.cache}catch{}return e}function Hn(t,e,n){let r=e==null,o=!r&&e!=null?[...e].filter(u=>u.startsWith("meta.")).map(u=>u.slice(5)):null,s=r||e.has("meta")||o!=null&&o.length>0,a="state",i=[];t instanceof le&&(a=li(t),i=t._deps.map(u=>u.node.name??""));let d={type:a,deps:i};(r||e.has("status"))&&(d.status=t.status);let c=t instanceof le?t._guard:void 0;if(s){let u={...pi(t)};if(c!=null&&u.access===void 0&&(u.access=Gn(c)),o!=null&&o.length>0&&!e.has("meta")){let l={};for(let p of o)p in u&&(l[p]=u[p]);d.meta=l}else d.meta=u}if(t.name!=null&&(d.name=t.name),(r||e.has("value"))&&(!n||a==="state")){t.status==="sentinel"&&(d.sentinel=!0);try{d.value=t.cache}catch{}}if((r||e.has("v"))&&t.v!=null){let u={id:t.v.id,version:t.v.version};"cid"in t.v&&(u.cid=t.v.cid,u.prev=t.v.prev),d.v=u}return(r||e.has("guard"))&&c!=null&&(d.guard=Gn(c)),(r||e.has("lastMutation"))&&t.lastMutation!=null&&(d.lastMutation=t.lastMutation),d}var Le=me(()=>{"use strict";ct();ve()});function De(t,e,n){return{[t]:!0,[`${t}_type`]:e,...n??{}}}var Qe=me(()=>{"use strict"});function bo(t,e,n){if(e.length===0)throw new RangeError("budgetGate requires at least one constraint");let r=e.map(f=>f.node),o=[t,...r],s=new Jn,a=!1,i=!1,d=Symbol("budget-gate"),c=new Array(e.length);function u(){return e.every((f,m)=>f.check(c[m]))}function l(f){for(;s.size>0&&u();){let m=s.shift();f.emit(m)}s.size===0&&i&&(i=!1,f.down([[U]]))}return te([],(f,m)=>{for(let g=0;g<e.length;g++)c[g]=e[g].node.cache;let h=[];for(let g=0;g<o.length;g++){let y=o[g];h.push(y.subscribe(T=>{for(let b of T)p(b,g,m)}))}return()=>{for(let g of h)g()}},{...n,describeKind:"derived",meta:De("resilience","budget_gate",n?.meta)});function p(f,m,h){let g=f[0];if(m===0){if(g===D)return u()&&s.size===0?h.emit(f[1]):(s.push(f[1]),a||(a=!0,h.up([[xe,d]]))),!0;if(g===X)return h.down([[X]]),!0;if(g===U)return s.size===0?h.down([[U]]):i=!0,!0;if(g===$||g===P){for(;s.size>0;)h.emit(s.shift());return i=!1,a&&(a=!1,h.up([[Ae,d]])),h.down([f]),!0}return!1}if(g===D&&(c[m-1]=f[1]),g===D||g===U){let y=u();return y&&s.size>0?(l(h),s.size===0&&a&&(a=!1,h.up([[Ae,d]]))):!y&&!a&&s.size>0&&(a=!0,h.up([[xe,d]])),!0}return g===X?!0:g===P?(h.down([f]),!0):g===$}}var Jn,To=me(()=>{"use strict";se();ve();Qe();Jn=class{buf=[];head=0;get size(){return this.buf.length-this.head}push(e){this.buf.push(e)}shift(){if(this.head>=this.buf.length)return;let e=this.buf[this.head];return this.buf[this.head]=void 0,this.head++,this.head>32&&this.head*2>this.buf.length&&(this.buf=this.buf.slice(this.head),this.head=0),e}clear(){this.buf=[],this.head=0}}});var pe,Be=me(()=>{"use strict";pe=class{_timer;_gen=0;start(e,n){this.cancel(),this._gen+=1;let r=this._gen;this._timer=setTimeout(()=>{this._timer=void 0,r===this._gen&&n()},e)}cancel(){this._timer!==void 0&&(clearTimeout(this._timer),this._timer=void 0)}get pending(){return this._timer!==void 0}}});var Xe,Yn=me(()=>{"use strict";Xe=class{constructor(e){this.capacity=e;if(!Number.isInteger(e)||e<=0)throw new Error(`RingBuffer capacity must be a positive integer (got ${e})`);this.buf=new Array(e)}buf;head=0;_size=0;get size(){return this._size}get maxSize(){return this.capacity}push(e){let n=(this.head+this._size)%this.capacity;this.buf[n]=e,this._size<this.capacity?this._size++:this.head=(this.head+1)%this.capacity}shift(){if(this._size===0)return;let e=this.buf[this.head];return this.buf[this.head]=void 0,this.head=(this.head+1)%this.capacity,this._size--,e}at(e){if(this._size===0)return;let n=e<0?this._size+e:e;if(!(n<0||n>=this._size))return this.buf[(this.head+n)%this.capacity]}toArray(){let e=new Array(this._size);for(let n=0;n<this._size;n++)e[n]=this.buf[(this.head+n)%this.capacity];return e}clear(){for(let e=0;e<this._size;e++)this.buf[(this.head+e)%this.capacity]=void 0;this.head=0,this._size=0}}});function Ze(t){return{describeKind:"derived",...t}}function fi(t){return t<0?0:t}function Qn(t){return t[1]}function mi(t){if(typeof t!="number"||!Number.isFinite(t))throw new TypeError("backoff strategy must return a finite number");return t<0?0:t}function vo(t){let e=t?.count,n=t?.backoff;if(n!==void 0&&e===void 0)throw new RangeError("retry({ backoff }) requires explicit count to prevent unbounded retries; pass { count: <n>, backoff: ... }");let r=e!==void 0?e:0;if(r<0)throw new RangeError("retry count must be >= 0");let o=n===void 0?null:typeof n=="string"?zn(n):n;return{maxRetries:r,strategy:o}}function wo(t){let e={};return t?.count!==void 0&&(e.count=t.count),typeof t?.backoff=="string"&&(e.backoff=t.backoff),Object.keys(e).length>0?e:void 0}function ko(t,e,n){let r=0,o=!1,s=null,a,i=new pe;function d(){a?.(),a=void 0}function c(l){if(o)return;if(r>=t.maxRetries){d(),n.down([[P,l]]);return}let p=t.strategy===null?0:t.strategy(r,l,s);if(p==null){d(),n.down([[P,l]]);return}let f;try{f=mi(p)}catch{d(),n.down([[P,l]]);return}s=f,r+=1,d();let m=f>0?f/1e6:1;i.start(m,()=>{o||u()})}function u(){i.cancel(),d();let l;try{l=e()}catch(p){c(p);return}a=l.subscribe(p=>{if(!o)for(let f of p){let m=f[0];if(m===X)n.down([[X]]);else if(m===D)r=0,s=null,n.emit(f[1]);else if(m===U)n.down([[U]]);else if(m===$)d(),n.down([[$]]);else if(m===P){c(Qn(f));return}else n.down([f])}})}return u(),()=>{o=!0,i.cancel(),d()}}function Xn(t,e){return typeof t=="function"?hi(t,e):gi(t,e)}function gi(t,e){let n=vo(e);return oe(r=>ko(n,()=>t,r),{...Ze(),initial:t.cache,meta:{...e?.meta??{},...ae("retry",wo(e))}})}function hi(t,e){let n=vo(e);return oe(r=>ko(n,t,r),{...Ze(),initial:e?.initial,meta:{...e?.meta??{},...ae("retry",wo(e))}})}function Nt(t){let e=Math.max(1,t?.failureThreshold??5),n=fi(t?.cooldownNs??30*1e9),r=t?.cooldown??null,o=Math.max(1,t?.halfOpenMax??1),s=t?.now??z,a="closed",i=0,d=0,c=0,u=n,l=0;function p(){if(!r)return n;let h=r(d);return h!==null?h:n}function f(){a="open",u=p(),c=s(),l=0}return{canExecute(){return a==="closed"?!0:a==="open"?s()-c>=u?(a="half-open",l=1,!0):!1:l<o?(l++,!0):!1},recordSuccess(){a==="half-open"?(a="closed",i=0,d=0):a==="closed"&&(i=0)},recordFailure(h){if(a==="half-open"){d++,f();return}a==="closed"&&(i++,i>=e&&f())},get state(){return a},get failureCount(){return i},reset(){a="closed",i=0,d=0,l=0}}}function yi(t,e){let n=e?.onOpen??"skip",r=e?.meta;return o=>{let s=te([],(a,i)=>{function d(){s.meta.breakerState.down([[D,t.state]])}let c=o.subscribe(u=>{for(let l of u){let p=l[0];p===X?i.down([[X]]):p===D?t.canExecute()?(d(),i.emit(l[1])):(d(),n==="error"?i.down([[P,new ze]]):i.down([[U]])):p===U?i.down([[U]]):p===$?(t.recordSuccess(),d(),i.down([[$]])):p===P?(t.recordFailure(Qn(l)),d(),i.down([l])):i.down([l])}});return d(),c},{...Ze(),meta:{...r??{},breakerState:t.state,...ae("withBreaker",{onOpen:n})},completeWhenDepsComplete:!1,initial:o.cache});return{node:s,breakerState:s.meta.breakerState}}}function _t(t,e,n){if(t<=0)throw new RangeError("capacity must be > 0");if(e<0)throw new RangeError("refillPerSecond must be >= 0");let r=n?.clock??z,o=t,s=r();function a(i){if(e>0){let d=i-s;o=Math.min(t,o+d/1e9*e)}s=i}return{available(){return a(r()),o},tryConsume(i=1){if(i<=0)return!0;let d=r();return a(d),o>=i?(o-=i,!0):!1},putBack(i=1){i<=0||(a(r()),o=Math.min(t,o+i))}}}function bi(t,e){return t.droppedCount===e.droppedCount&&t.pendingCount===e.pendingCount&&t.paused===e.paused}function Ti(t,e){let{maxEvents:n,windowNs:r}=e;if(n<=0)throw new RangeError("maxEvents must be > 0");if(r<=0)throw new RangeError("windowNs must be > 0");let o=e.maxBuffer;if(o===void 0)throw new RangeError("rateLimiter requires explicit maxBuffer (use Infinity to opt in to unbounded)");let s=o===1/0;if(!s&&(!Number.isInteger(o)||o<1))throw new RangeError("maxBuffer must be a positive integer (or Infinity for unbounded)");let a=e.onOverflow??"drop-newest",i=n*1e9/r,d=oe(c=>{let u=_t(n,i),l=s?wi():vi(o),p=new pe,f=!1,m=0,h=1e9/i,g=d.meta.droppedCount,y=d.meta.rateLimitState,T=Jt;function b(){g.emit(m);let R={droppedCount:m,pendingCount:l.size,paused:l.size>0};bi(T,R)||(T=R,y.emit(R))}T=Jt,g.emit(0),y.emit(Jt);function v(){for(;l.size>0;)if(u.tryConsume(1))c.emit(l.shift()),b();else{p.start(Math.max(1,h/1e6),v);return}}function k(){m+=1,b()}function N(){for(f=!0,p.cancel();l.size>0;)l.shift();m=0}let w=t.subscribe(R=>{for(let x of R){if(f)return;let _=x[0];if(_===X)c.down([[X]]);else if(_===D){if(!s&&l.size>=o)if(a==="drop-newest")k();else if(a==="drop-oldest")l.shift(),l.push(x[1]),k();else{k(),N(),c.down([[P,new Yt(o)]]);return}else l.push(x[1]),b();v()}else if(_===U)c.down([[U]]);else if(_===$)N(),c.down([[$]]);else if(_===P)N(),c.down([x]);else if(_===ue){N(),c.down([x]);return}else c.down([x])}});return()=>{f=!0,p.cancel(),w()}},{...Ze(),initial:t.cache,meta:{...e.meta??{},droppedCount:0,rateLimitState:Jt,...ae("rateLimiter",e)}});return{node:d,droppedCount:d.meta.droppedCount,rateLimitState:d.meta.rateLimitState}}function vi(t){let e=new Xe(t);return{push:n=>e.push(n),shift:()=>e.shift(),get size(){return e.size}}}function wi(){let t=[];return{push:e=>{t.push(e)},shift:()=>t.shift(),get size(){return t.length}}}function ki(t,e){let n=e?.initialStatus??"pending",r=e?.meta,o=te([],(s,a)=>{let i=n;return o.meta.status.down([[D,n]]),o.meta.error.down([[D,null]]),t.subscribe(c=>{for(let u of c){let l=u[0];if(l===X)a.down([[X]]);else if(l===D)i==="errored"?ne(()=>{o.meta.error.down([[D,null]]),o.meta.status.down([[D,"running"]])}):o.meta.status.down([[D,"running"]]),i="running",a.emit(u[1]);else if(l===U)a.down([[U]]);else if(l===$)o.meta.status.down([[D,"completed"]]),i="completed",a.down([[$]]);else if(l===P){let p=Qn(u);ne(()=>{o.meta.error.down([[D,p]]),o.meta.status.down([[D,"errored"]])}),i="errored",a.down([u])}else a.down([u])}})},{...Ze(),meta:{...r??{},status:n,error:null,...ae("withStatus",{initialStatus:n})},completeWhenDepsComplete:!1,resubscribable:!0,initial:t.cache});return{node:o,status:o.meta.status,error:o.meta.error}}function xi(t){return t!=null&&typeof t=="object"&&"cache"in t&&typeof t.subscribe=="function"}function Ri(t){return t!=null&&typeof t.then=="function"}function Si(t){return t!=null&&typeof t=="object"&&typeof t[Symbol.asyncIterator]=="function"}function Ni(t,e,n){let r=n?.meta;return oe(o=>{let s,a;function i(){a?.(),a=void 0,xi(e)||Ri(e)||Si(e)?s=V(e).subscribe(c=>{o.down(c);for(let u of c){let l=u[0];if(l===$||l===P||l===ue){s=void 0;return}}}):(o.emit(e),o.down([[$]]))}return a=t.subscribe(d=>{for(let c of d){let u=c[0];if(u===X)o.down([[X]]);else if(u===D)o.emit(c[1]);else if(u===U)o.down([[U]]);else if(u===$)o.down([[$]]);else if(u===P){i();return}else if(u===ue){s?.(),o.down([c]);return}else o.down([c])}}),()=>{a?.(),s?.()}},{...Ze(),initial:t.cache,meta:{...r??{},...ae("fallback")}})}function _i(t,e,n){if(e<=0)throw new RangeError("timeoutNs must be > 0");let r=n?.meta;return oe(o=>{let s=!1,a=new pe;function i(){let c=e/1e6;a.start(c,()=>{s||(s=!0,d(),o.down([[P,new Qt(e)]]))})}let d=t.subscribe(c=>{for(let u of c){if(s)return;let l=u[0];if(l===X)o.down([[X]]);else if(l===D)i(),o.emit(u[1]);else if(l===U)o.down([[U]]);else if(l===$){a.cancel(),s=!0,o.down([[$]]);return}else if(l===P){a.cancel(),s=!0,o.down([u]);return}else if(l===ue){a.cancel(),s=!0,o.down([u]);return}else o.down([u])}});return i(),()=>{s=!0,a.cancel(),d()}},{...Ze(),initial:t.cache,meta:{...r??{},...ae("timeout",{timeoutNs:e})}})}var ze,Yt,Jt,Qt,xo=me(()=>{"use strict";To();Ne();ge();se();Le();ve();Q();Un();Z();Be();Yn();ze=class extends Error{name="CircuitOpenError";constructor(){super("Circuit breaker is open")}};Yt=class extends Error{name="RateLimiterOverflowError";constructor(e){super(`rateLimiter buffer overflow (maxBuffer=${e})`)}};Jt=Object.freeze({droppedCount:0,pendingCount:0,paused:!1});Qt=class extends Error{name="TimeoutError";constructor(e){super(`Timed out after ${e/1e6}ms`)}}});var Ro={};An(Ro,{CircuitOpenError:()=>ze,RateLimiterOverflowError:()=>Yt,TimeoutError:()=>Qt,budgetGate:()=>bo,circuitBreaker:()=>Nt,fallback:()=>Ni,rateLimiter:()=>Ti,retry:()=>Xn,timeout:()=>_i,tokenBucket:()=>_t,withBreaker:()=>yi,withStatus:()=>ki});var mt=me(()=>{"use strict";xo()});function Xt(t){return{describeKind:"producer",...t}}function Zt(t,e){let{signal:n,period:r,...o}=e??{};return oe(s=>{let a=!1,i=0,d,c,u=()=>{a=!0,d!==void 0&&clearTimeout(d),c!==void 0&&clearInterval(c),n?.removeEventListener("abort",p)},l=()=>{a||(r!=null?(s.emit(i++),c=setInterval(()=>{a||s.emit(i++)},r)):(a=!0,n?.removeEventListener("abort",p),s.emit(i++),s.down([[$]])))},p=()=>{a||(u(),s.down([[P,n.reason]]))};if(n?.aborted){p();return}return d=setTimeout(l,t),n?.addEventListener("abort",p,{once:!0}),u},Xt(o))}function _o(t,e){return oe(n=>{let r=!1;try{for(let o of t){if(r)return;n.emit(o)}r||n.down([[$]])}catch(o){r||n.down([[P,o]])}return()=>{r=!0}},Xt(e))}function Mi(t){return t!=null&&typeof t.then=="function"}function en(t,e){let{signal:n,...r}=e??{};return oe(o=>{let s=!1,a=()=>{s||(s=!0,o.down([[P,n.reason]]))};if(n?.aborted){a();return}return n?.addEventListener("abort",a,{once:!0}),Promise.resolve(t).then(i=>{s||(s=!0,n?.removeEventListener("abort",a),o.emit(i),o.down([[$]]))},i=>{s||(s=!0,n?.removeEventListener("abort",a),o.down([[P,i]]))}),()=>{s=!0,n?.removeEventListener("abort",a)}},Xt(r))}function er(t,e){let{signal:n,...r}=e??{};return oe(o=>{let s=new AbortController,a=()=>s.abort(n?.reason);n?.aborted?s.abort(n.reason):n?.addEventListener("abort",a,{once:!0});let i=n??s.signal,d=!1,c=t[Symbol.asyncIterator](),u=()=>{d||i.aborted||Promise.resolve(c.next()).then(l=>{if(!(d||i.aborted)){if(l.done){o.down([[$]]);return}o.emit(l.value),u()}},l=>{!d&&!i.aborted&&o.down([[P,l]])})};return u(),()=>{d=!0,n?.removeEventListener("abort",a),s.abort(),Promise.resolve(c.return?.()).catch(()=>{})}},Xt(r))}function Ei(t){return t!=null&&typeof t=="object"&&"cache"in t&&typeof t.subscribe=="function"}function V(t,e){if(Ei(t))return t;if(Mi(t))return en(t,e);if(t!=null){let n=t;if(typeof n[Symbol.asyncIterator]=="function")return er(t,e);if(typeof n[Symbol.iterator]=="function")return _o(t,e)}return Oi(t)}function Oi(...t){return _o(t,void 0)}function Mt(t,e,n){return te([t],(o,s)=>{let a=o[0];if(a!=null&&a.length>0)for(let i of a)e(i)},{describeKind:"effect",...n}).subscribe(()=>{})}function Se(t){return new Promise((e,n)=>{let r=!1,o=!1,s;s=t.subscribe(a=>{for(let i of a){if(r)return;if(i[0]===D){r=!0,e(i[1]),s?(s(),s=void 0):o=!0;return}if(i[0]===P){r=!0,n(i[1]),s?(s(),s=void 0):o=!0;return}if(i[0]===$){r=!0,n(new Error("completed without DATA")),s?(s(),s=void 0):o=!0;return}}}),o&&(s?.(),s=void 0)})}function So(t,e,n){return new Promise((r,o)=>{let s=!1,a=!1,i,d=n?.skipCurrent===!0;i=t.subscribe(c=>{for(let u of c){if(s)return;if(!(d&&u[0]===D)){if(u[0]===D){let l=u[1];if(e(l)){s=!0,r(l),i?(i(),i=void 0):a=!0;return}}if(u[0]===P){s=!0,o(u[1]),i?(i(),i=void 0):a=!0;return}if(u[0]===$){s=!0,o(new Error("completed without matching value")),i?(i(),i=void 0):a=!0;return}}}}),d=!1,a&&(i?.(),i=void 0)})}async function Mo(t,e){let n=e?.predicate??(s=>s!=null),r=e?.skipCurrent;if(e?.timeoutMs==null||e.timeoutMs<=0)return await So(t,n,{skipCurrent:r});if(Zn===void 0){let[s,a]=await Promise.all([Promise.resolve().then(()=>(mt(),Ro)),Promise.resolve().then(()=>(Un(),ho))]);Zn=s.timeout,No=a.NS_PER_MS}let o=Zn(t,e.timeoutMs*No);return await So(o,n,{skipCurrent:r})}function Eo(t,e){let n=new AbortController,r=e?.reason??new Error("cancelled via nodeSignal"),o,s=!1,a=()=>{o?(o(),o=void 0):s=!0};return o=t.subscribe(i=>{if(!n.signal.aborted)for(let d of i){if(d[0]===D&&d[1]===!0){n.abort(r),a();return}if(d[0]===P){n.abort(d[1]),a();return}if(d[0]===$){a();return}}}),s&&(o?.(),o=void 0),{signal:n.signal,dispose:()=>{o&&(o(),o=void 0)}}}function Y(t){return t.subscribe(()=>{})}var Zn,No,Oo=me(()=>{"use strict";se();ve();Q()});var Z=me(()=>{"use strict";Oo()});var Ad={};An(Ad,{AgentLoopGraph:()=>Sn,AllTiersExhaustedError:()=>At,BudgetExhaustedError:()=>pn,ChatStreamGraph:()=>xn,CircuitOpenError:()=>ze,DEFAULT_DECAY_RATE:()=>Nn,FallbackMissError:()=>zi,LLMTimeoutError:()=>yt,ReplayCacheMissError:()=>nt,ToolRegistryGraph:()=>Rn,admissionFilter3D:()=>ld,admissionScored:()=>Rs,agentLoop:()=>dd,agentMemory:()=>yd,anthropicAdapter:()=>tr,canonicalJson:()=>ar,cascadingLlmAdapter:()=>wr,chatStream:()=>Fr,composePricing:()=>ua,computePrice:()=>mr,contentGate:()=>od,costMeterExtractor:()=>Xa,createAdapter:()=>oa,createCapabilitiesRegistry:()=>ai,createPricingRegistry:()=>da,dryRunAdapter:()=>et,fallbackAdapter:()=>dr,frozenContext:()=>_a,gatedStream:()=>Ja,gaugesAsContext:()=>bd,googleAdapter:()=>cr,graphFromSpec:()=>Ks,graphFromSpecReactive:()=>Sd,handoff:()=>cd,keywordFlagExtractor:()=>ed,knobsAsTools:()=>_d,llmConsolidator:()=>Mr,llmExtractor:()=>_r,memoryRetrieval:()=>Ur,memoryWithKG:()=>Kr,memoryWithTiers:()=>zr,memoryWithVectors:()=>Vr,observableAdapter:()=>ia,openAICompatAdapter:()=>lr,parseRateLimitFromError:()=>br,pricingFor:()=>la,promptCall:()=>Nr,promptNode:()=>Sr,redactor:()=>sd,registryPricing:()=>ca,resilientAdapter:()=>xa,streamExtractor:()=>td,streamingPromptNode:()=>Ha,suggestStrategy:()=>zs,suggestStrategyReactive:()=>Ed,systemPromptBuilder:()=>Ya,tier:()=>wa,toolCallExtractor:()=>rd,toolExecution:()=>$r,toolRegistry:()=>jr,toolSelector:()=>ud,validateGraphDef:()=>Od,withBreaker:()=>gr,withBudgetGate:()=>yr,withDryRun:()=>fa,withRateLimiter:()=>vr,withReplayCache:()=>Et,withRetry:()=>kr,withTimeout:()=>xr,zeroPrice:()=>ln});module.exports=Ys(Ad);Q();Ne();ge();se();Q();var Kn=class{_version=0;_store=new Map;_maxSize;_defaultTtl;constructor(e={}){let{maxSize:n,defaultTtl:r}=e;if(n!==void 0&&n<1)throw new RangeError("maxSize must be >= 1");if(r!==void 0&&r<=0)throw new RangeError("defaultTtl must be positive");this._maxSize=n,this._defaultTtl=r}get version(){return this._version}get size(){return this._store.size}has(e){let n=this._store.get(e);return n===void 0?!1:this._isExpired(n)?(this._store.delete(e),this._version+=1,!1):(this._touchLru(e,n),!0)}get(e){let n=this._store.get(e);if(n!==void 0){if(this._isExpired(n)){this._store.delete(e),this._version+=1;return}return this._touchLru(e,n),n.value}}set(e,n,r){let o=this._resolveExpiresAt(r);this._store.has(e)&&this._store.delete(e),this._store.set(e,{value:n,expiresAt:o}),this._evictLruWhileOver(),this._version+=1}setMany(e,n){let r=this._resolveExpiresAt(n),o=0;try{for(let[s,a]of e)this._store.has(s)&&this._store.delete(s),this._store.set(s,{value:a,expiresAt:r}),o+=1}finally{o>0&&(this._evictLruWhileOver(),this._version+=1)}}delete(e){let n=this._store.delete(e);return n&&(this._version+=1),n}deleteMany(e){let n=0;try{for(let r of e)this._store.delete(r)&&(n+=1)}finally{n>0&&(this._version+=1)}return n}clear(){let e=this._store.size;return e===0?0:(this._store.clear(),this._version+=1,e)}pruneExpired(){let e=z(),n=0;for(let[r,o]of this._store)this._isExpired(o,e)&&(this._store.delete(r),n+=1);return n>0&&(this._version+=1),n}toMap(){let e=z(),n=new Map;for(let[r,o]of this._store)this._isExpired(o,e)||n.set(r,o.value);return n}_resolveExpiresAt(e){let n=e??this._defaultTtl;if(n!==void 0){if(!Number.isFinite(n)||n<=0)throw new RangeError(`MapBackend: ttl must be a positive finite number (got ${n})`);return z()+n*1e9}}_isExpired(e,n){return e.expiresAt===void 0?!1:(n??z())>=e.expiresAt}_touchLru(e,n){this._store.delete(e),this._store.set(e,n)}_evictLruWhileOver(){if(this._maxSize!==void 0)for(;this._store.size>this._maxSize;){let e=this._store.keys().next().value;if(e===void 0)break;this._store.delete(e)}}};function Pe(t={}){let{name:e,maxSize:n,defaultTtl:r,versioning:o,backend:s,retention:a}=t;if(a&&n!==void 0)throw new RangeError("reactiveMap: `maxSize` (LRU) and `retention` (score-based) are mutually exclusive. Pick one eviction policy.");if(a&&a.archiveThreshold===void 0&&a.maxSize===void 0)throw new RangeError("reactiveMap: `retention` requires at least one of `archiveThreshold` or `maxSize` to trigger archival.");let i=s??new Kn({maxSize:n,defaultTtl:r}),d=F(i.toMap(),{name:e,describeKind:"state",equals:(p,f)=>p===f,...o!=null?{versioning:o}:{}});function c(){let p=i.toMap();ne(()=>{d.down([[X]]),d.down([[D,p]])})}function u(){if(!a)return;let p=i.toMap(),f=a.archiveThreshold,m=a.maxSize,h=[];for(let[y,T]of p)h.push({key:y,value:T,score:a.score(y,T)});h.sort((y,T)=>y.score-T.score);let g=new Set;if(f!==void 0)for(let y of h)if(y.score<f)g.add(y.key);else break;if(m!==void 0&&h.length-g.size>m)for(let y of h){if(h.length-g.size<=m)break;g.has(y.key)||g.add(y.key)}if(g.size!==0)for(let y of h)g.has(y.key)&&(a.onArchive?.(y.key,y.value,y.score),i.delete(y.key))}function l(p,f="mutation"){let m=i.version;try{return p()}finally{i.version!==m&&(f==="mutation"&&u(),c())}}return{entries:d,has(p){return l(()=>i.has(p),"read")},get(p){return l(()=>i.get(p),"read")},set(p,f,m){l(()=>i.set(p,f,m?.ttl))},setMany(p,f){l(()=>i.setMany(p,f?.ttl))},delete(p){l(()=>i.delete(p))},deleteMany(p){l(()=>i.deleteMany(p))},clear(){l(()=>i.clear())},pruneExpired(){l(()=>i.pruneExpired())},get size(){return i.size},dispose(){}}}function St(t,e){return`${t}::${e}`}function ai(t){let e=Pe({name:"capabilitiesRegistry"}),n=c=>{e.set(St(c.provider,c.id),c)};if(t)for(let c of t)n(c);let r=(c,u)=>{let l=e.get(St(c,u));if(l)return l;let p=e.entries.cache;if(!p)return;let f;for(let[,m]of p){if(m.provider!==c)continue;let h=m.id;u.startsWith(h)&&(!f||h.length>f.id.length)&&(f=m)}return f},o=128,s=new Map,a=new Map,i=(c,u,l,p)=>{for(c.has(u)&&c.delete(u),c.set(u,l);c.size>p;){let f=c.keys().next().value;if(f===void 0)break;c.delete(f)}},d=A([e.entries],([c])=>Array.from(c.values()),{name:"capabilitiesRegistry/entries",initial:[]});return{register:n,lookup:r,remove(c,u){let l=e.has(St(c,u));return l&&e.delete(St(c,u)),l},entries(){let c=e.entries.cache;return(function*(){if(c)for(let u of c.values())yield u})()},lookupNode(c,u){let l=St(c,u),p=s.get(l);if(p)return s.delete(l),s.set(l,p),p;let f=A([e.entries],()=>r(c,u),{name:`capabilitiesRegistry/lookup/${c}::${u}`,initial:void 0});return i(s,l,f,o),f},entriesNode:d,byProvider(c){let u=a.get(c);if(u)return a.delete(c),a.set(c,u),u;let l=A([d],([p])=>p.filter(f=>f.provider===c),{name:`capabilitiesRegistry/byProvider/${c}`,initial:[]});return i(a,c,l,o),l}}}ge();se();Le();ve();Q();Z();function tn(t){return{describeKind:"derived",...t}}function Ai(t){return{describeKind:"derived",partial:!0,...t}}function Ao(t,e,n){return te([t],(r,o)=>{let s=r[0];if(s==null||s.length===0){o.down([[U]]);return}let a=!1;for(let i of s)e(i)&&(o.emit(i),a=!0);a||o.down([[U]])},{...tn(n),meta:{...ae("filter"),...n?.meta??{}}})}function Co(t,e,n){let r=n?.where??(s=>s!=null),o=!1;return te([t],(s,a)=>{let i=s[0];if(i==null||i.length===0){a.down([[U]]);return}for(let d of i)!o&&r(d)&&(o=!0,e(d)),a.emit(d)},tn(n))}function Lo(t,e,n){return te([t,e],(r,o,s)=>{let a=r[0],i=r[1],d=i!=null&&i.length>0?i.at(-1):s.prevData[1];if(a!=null&&a.length>0){if(!(i!=null&&i.length>0)&&s.prevData[1]===void 0){o.down([[U]]);return}for(let c of a)o.emit([c,d])}else o.down([[U]])},{...Ai(n),meta:{...ae("withLatestFrom"),...n?.meta??{}}})}function Ci(t,e,n){let r,o=!1,s=()=>{o||(o=!0,n())};return r=t.subscribe(a=>{let i=!1,d=!1;for(let c of a)c[0]!==je&&(c[0]===D?e.emit(c[1]):c[0]===$?i=!0:c[0]===P?(d=!0,e.down([c])):(c[0]===X||c[0]===U)&&e.down([c]));d?(r?.(),r=void 0,s()):i&&s()}),()=>{r?.(),r=void 0}}function he(t,e,n){let r,o=!1;function s(){r?.(),r=void 0}return te([t],(a,i,d)=>{if(d.terminalDeps[0]!=null&&d.terminalDeps[0]!==!0){s();return}if(d.terminalDeps[0]===!0){o=!0,r||i.down([[$]]);return}let c=a[0];if(!(c==null||c.length===0))return s(),r=Ci(V(e(c[c.length-1])),i,()=>{s(),o&&i.down([[$]])}),{deactivate:()=>{s(),o=!1}}},{...tn(n),completeWhenDepsComplete:!1,meta:{...ae("switchMap"),...n?.meta??{}}})}function Do(t,e,n){return oe(r=>{let o=t.subscribe(s=>{for(let a of s)if(a[0]===D)r.emit(a[1]);else if(a[0]===P)try{r.emit(e(a[1]))}catch(i){r.down([[P,i]])}else a[0]===$&&r.down([[$]])});return()=>{o()}},tn(n))}async function*gt(t,e){let n=e?.parse??(k=>k),r=e?.signal,o=new TextDecoder,s="",a="message",i=[],d,c,u=[],l=()=>{if(i.length===0&&a==="message"&&d===void 0){i=[];return}let k=i.join(`
2
+ `);u.push({event:a,data:n(k),id:d,retry:c}),a="message",i=[],d=void 0,c=void 0},p=k=>{if(k===""){l();return}if(k.startsWith(":"))return;let N=k.indexOf(":"),w=N<0?k:k.slice(0,N),R=N<0?"":k.slice(N+1);switch(R.startsWith(" ")&&(R=R.slice(1)),w){case"event":a=R;break;case"data":i.push(R);break;case"id":R.includes("\0")||(d=R);break;case"retry":{let x=Number(R);Number.isFinite(x)&&(c=x);break}}},f=(k,N)=>{s+=o.decode(k,{stream:!N});let w=s.split(/\r?\n/);s=w.pop()??"";for(let R of w)p(R)},m=t,h=t instanceof ReadableStream?t:m&&typeof m=="object"&&m.body instanceof ReadableStream?m.body:null,g,y,T=!1,b=()=>{T||(T=!0,g&&g.cancel().catch(()=>{}),y&&typeof y.return=="function"&&Promise.resolve(y.return()).catch(()=>{}))},v=()=>{b()};if(r){if(r.aborted)return;r.addEventListener("abort",v,{once:!0})}try{if(h){for(g=h.getReader();!r?.aborted;){let{value:k,done:N}=await g.read();if(N)break;for(f(k,!1);u.length>0;)yield u.shift()}f(new Uint8Array,!0)}else{for(y=t[Symbol.asyncIterator]();!r?.aborted;){let N=await y.next();if(N.done)break;for(f(N.value,!1);u.length>0;)yield u.shift()}f(new Uint8Array,!0)}if(s.trim()){for(let k of s.split(/\r?\n/))p(k);l()}for(;u.length>0;)yield u.shift()}finally{r&&r.removeEventListener("abort",v),b()}}async function Ve(t,e){let n;try{n=await t.text()}catch{n=""}let r=e??"HTTP",o=new Error(`${r} API ${t.status}: ${t.statusText}${n?` \u2014 ${n}`:""}`);return o.status=t.status,o.headers=t.headers,o}function tr(t={}){return t.sdk?Gi(t):Pi(t)}function nn(t,e,n,r){let o=e?.model??n;if(!o)throw new Error("anthropicAdapter: model must be set via options.model or invokeOpts.model");let{system:s,chat:a}=Li(t,e?.systemPrompt),i={model:o,messages:a.map(Di),max_tokens:e?.maxTokens??4096};return s&&(i.system=s),e?.temperature!=null&&(i.temperature=e.temperature),e?.tools&&e.tools.length>0&&(i.tools=e.tools.map(Ii)),e?.maxReasoningTokens!=null&&(i.thinking={type:"enabled",budget_tokens:e.maxReasoningTokens}),e?.cacheHint,r&&(i.stream=!0),e?.providerExtras&&Object.assign(i,e.providerExtras),i}function Li(t,e){let n=[];e&&n.push(e);let r=[];for(let o of t)o.role==="system"?n.push(o.content):r.push(o);return{system:n.length>0?n.join(`
3
3
 
4
- `):void 0,chat:r}}function Di(t){if(t.role==="tool")return{role:"user",content:[{type:"tool_result",tool_use_id:t.toolCallId,content:t.content}]};if(t.role==="assistant"&&t.toolCalls&&t.toolCalls.length>0){let e=[];t.content&&e.push({type:"text",text:t.content});for(let n of t.toolCalls)e.push({type:"tool_use",id:n.id,name:n.name,input:n.arguments});return{role:"assistant",content:e}}return{role:t.role,content:t.content}}function Ii(t){return{name:t.name,description:t.description,input_schema:t.parameters}}function rn(t,e){if(!t)return{...e};let n={...t};return e.input_tokens!=null&&(n.input_tokens=e.input_tokens),e.output_tokens!=null&&(n.output_tokens=e.output_tokens),e.cache_read_input_tokens!=null&&(n.cache_read_input_tokens=e.cache_read_input_tokens),e.cache_creation_input_tokens!=null&&(n.cache_creation_input_tokens=e.cache_creation_input_tokens),e.cache_creation&&(n.cache_creation={...t.cache_creation??{},...e.cache_creation}),e.server_tool_use&&(n.server_tool_use={...t.server_tool_use??{},...e.server_tool_use}),n}function nr(t){let e={input:{regular:t?.input_tokens??0},output:{regular:t?.output_tokens??0},raw:t};return t?.cache_read_input_tokens&&(e.input.cacheRead=t.cache_read_input_tokens),t?.cache_creation?(t.cache_creation.ephemeral_5m_input_tokens&&(e.input.cacheWrite5m=t.cache_creation.ephemeral_5m_input_tokens),t.cache_creation.ephemeral_1h_input_tokens&&(e.input.cacheWrite1h=t.cache_creation.ephemeral_1h_input_tokens)):t?.cache_creation_input_tokens&&(e.input.cacheWrite5m=t.cache_creation_input_tokens),t?.server_tool_use?.web_search_requests&&(e.auxiliary={webSearchRequests:t.server_tool_use.web_search_requests}),e}function Io(t,e){let n=[],r=[];for(let o of t.content)if(o.type==="text"&&typeof o.text=="string")n.push(o.text);else if(o.type==="tool_use"){let s=o;r.push({id:s.id,name:s.name,arguments:s.input??{}})}return{content:n.join(""),toolCalls:r.length>0?r:void 0,usage:nr(t.usage),finishReason:t.stop_reason,latencyMs:e,model:t.model,provider:"anthropic"}}function Pi(t){let e=t.apiKey??globalThis.process?.env?.ANTHROPIC_API_KEY,n=t.baseURL??"https://api.anthropic.com",r=t.anthropicVersion??"2023-06-01",o=t.fetchImpl??fetch,s=()=>{if(!e)throw new Error("anthropicAdapter: apiKey required for invoke/stream (or provide opts.sdk)");return{"x-api-key":e,"anthropic-version":r,"content-type":"application/json",...t.headers??{}}};return{provider:"anthropic",model:t.model,async invoke(a,i){let d=nn(a,i,t.model,!1),c=z(),u=await o(`${n}/v1/messages`,{method:"POST",headers:s(),body:JSON.stringify(d),signal:i?.signal});if(!u.ok)throw await Ve(u,"Anthropic");let l=await u.json(),p=Math.max(0,(z()-c)/1e6);return Io(l,p)},async*stream(a,i){let d=nn(a,i,t.model,!0),c=await o(`${n}/v1/messages`,{method:"POST",headers:{...s(),accept:"text/event-stream"},body:JSON.stringify(d),signal:i?.signal});if(!c.ok)throw await Ve(c,"Anthropic");if(!c.body)throw new Error("anthropicAdapter: streaming response has no body");let u,l,p=new Map;for await(let f of gt(c.body,{signal:i?.signal})){let m=f.data;if(!m)continue;let h;try{h=JSON.parse(m)}catch{continue}switch(h.type){case"message_start":{u=rn(u,h.message.usage);break}case"content_block_start":{let g=h,y=g.content_block;y.type==="tool_use"&&(p.set(g.index,{id:String(y.id??""),name:String(y.name??""),argBuf:""}),yield{type:"tool-call-delta",delta:{id:String(y.id??""),name:String(y.name??"")}});break}case"content_block_delta":{let g=h,y=g.delta;if(y.type==="text_delta"&&typeof y.text=="string")yield{type:"token",delta:y.text};else if(y.type==="input_json_delta"&&typeof y.partial_json=="string"){let T=p.get(g.index);T&&(T.argBuf+=y.partial_json),yield{type:"tool-call-delta",delta:{argumentsDelta:y.partial_json}}}else y.type==="thinking_delta"&&typeof y.thinking=="string"&&(yield{type:"thinking",delta:y.thinking});break}case"message_delta":{let g=h;g.delta.stop_reason&&(l=g.delta.stop_reason),g.delta.usage&&(u=rn(u,g.delta.usage));break}case"message_stop":break}}u&&(yield{type:"usage",usage:nr(u)}),yield{type:"finish",reason:l??"stop"}}}}function Gi(t){let e=t.sdk;if(!e)throw new Error("sdkBackedAnthropic: sdk instance required");return{provider:"anthropic",model:t.model,async invoke(n,r){let o=nn(n,r,t.model,!1),s=z(),a=await e.messages.create(o,{signal:r?.signal}),i=Math.max(0,(z()-s)/1e6);return Io(a,i)},async*stream(n,r){if(!e.messages.stream)throw new Error("sdkBackedAnthropic: SDK instance does not expose .messages.stream");let o=nn(n,r,t.model,!0),s,a;for await(let i of e.messages.stream(o,{signal:r?.signal}))switch(i.type){case"message_start":s=rn(s,i.message.usage);break;case"content_block_delta":{let d=i.delta;d?.type==="text_delta"&&typeof d.text=="string"?yield{type:"token",delta:d.text}:d?.type==="input_json_delta"&&typeof d.partial_json=="string"?yield{type:"tool-call-delta",delta:{argumentsDelta:d.partial_json}}:d?.type==="thinking_delta"&&typeof d.thinking=="string"&&(yield{type:"thinking",delta:d.thinking});break}case"message_delta":{let d=i;d.delta.stop_reason&&(a=d.delta.stop_reason),d.delta.usage&&(s=rn(s,d.delta.usage));break}}s&&(yield{type:"usage",usage:nr(s)}),yield{type:"finish",reason:a??"stop"}}}}Be();function on(){let t=new Error("aborted");return t.name="AbortError",t}function Po(t,e){return t<=0?Promise.resolve():e?.aborted?Promise.reject(on()):new Promise((n,r)=>{let o=new pe,s,a=()=>{o.cancel(),e&&s&&e.removeEventListener("abort",s)};o.start(t,()=>{a(),n()}),e&&(s=()=>{a(),r(on())},e.addEventListener("abort",s,{once:!0}))})}function et(t={}){let e=t.provider??"dry-run",n=t.model??"dry-run-v1",r=t.latencyMs??0,o=Math.max(1,t.streamChunkSize??16),s=t.respond??(i=>{let d=[...i].reverse().find(c=>c.role==="user");return d?`echo: ${d.content}`:"dry-run: no user message"}),a=t.usage??((i,d)=>{let c=i.reduce((u,l)=>u+l.content.length,0);return{input:{regular:Math.ceil(c/4)},output:{regular:Math.ceil(d.length/4)}}});return{provider:e,model:n,async invoke(i,d){if(await Po(r,d?.signal),d?.signal?.aborted)throw on();let c=s(i,d),u=a(i,c);return{content:c,usage:u,finishReason:"stop",model:d?.model??n,provider:e,tier:d?.tier,metadata:{dryRun:!0}}},async*stream(i,d){let c=s(i,d),u=a(i,c),l=Math.ceil(c.length/o)||1,p=r>0?r/l:0;for(let f=0;f<c.length;f+=o){if(d?.signal?.aborted)throw on();await Po(p,d?.signal),yield{type:"token",delta:c.slice(f,f+o)}}yield{type:"usage",usage:u},yield{type:"finish",reason:"stop"}}}}ge();async function sn(t){let e=typeof t=="string"?new TextEncoder().encode(t):t,n=await globalThis.crypto.subtle.digest("SHA-256",e),r=new Uint8Array(n),o="";for(let s=0;s<r.length;s++)o+=Go[r[s]];return o}var Go=new Array(256);for(let t=0;t<256;t++)Go[t]=t.toString(16).padStart(2,"0");function rr(t){if(t===null||typeof t!="object")return t;if(Array.isArray(t))return t.map(rr);let e=t,n=Object.keys(e).sort(),r={};for(let o of n)r[o]=rr(e[o]);return r}function Fo(t){return JSON.stringify(rr(t),void 0,0)}var Fi=new TextEncoder,$i=new TextDecoder("utf-8",{fatal:!0}),ji={name:"json",version:1,encode(t){return Fi.encode(Fo(t))},decode(t){return JSON.parse($i.decode(t))}};function Bi(){let t=new Map;return{name:"memory",read(e){let n=t.get(e);return n===void 0?void 0:new Uint8Array(n)},write(e,n){t.set(e,new Uint8Array(n))},delete(e){t.delete(e)},list(e){let n=[...t.keys()];return e?n.filter(r=>r.startsWith(e)).sort():n.sort()}}}function Vi(t,e={}){let n=e.codec??ji,r=e.name??t.name??"kv",o=e.compactEvery,s=new Map,a=0,i={name:r,debounceMs:e.debounceMs,compactEvery:o,filter:e.filter,save(c,u){if(!(e.filter&&!e.filter(c,u))&&(s.set(c,u),a+=1,o!==void 0&&a%o===0||!e.debounceMs))return d()},load(c){let u=t.read(c);if(u!==void 0)return u instanceof Uint8Array?u.length===0?void 0:n.decode(u):Promise.resolve(u).then(l=>l===void 0||l.length===0?void 0:n.decode(l))},delete(c){if(s.delete(c),!!t.delete)return t.delete(c)},list(c){return t.list?t.list(c):[]},async flush(){await d()},async rollback(){s=new Map}};function d(){if(s.size===0)return;let c=s;s=new Map;let u=[];for(let[l,p]of c){let f=n.encode(p),m=t.write(l,f);m instanceof Promise&&u.push(m)}if(u.length>0)return Promise.all(u).then(()=>{})}return i}function or(t){return Vi(Bi(),t)}ge();var sr=class extends Error{constructor(n,r){super(`content-addressed lookup miss in read-strict mode: ${n}`);this.key=n;this.context=r;this.name="ContentAddressedMissError"}};function ir(t){let e=new Set,n=r=>{if(r===null||typeof r!="object")return r;let o=r;if(e.has(o))return{__cycle:!0};e.add(o);try{if(Array.isArray(r))return r.map(n);let s={};for(let a of Object.keys(r).sort())s[a]=n(r[a]);return s}finally{e.delete(o)}};return JSON.stringify(n(t))}function $o(t){let{storage:e,keyContext:n,keyPrefix:r,mode:o="read-write"}=t,s=n??(i=>i);async function a(i){let d=ir(s(i)),c=await sn(d);return r?`${r}:${c}`:c}return{keyFor:a,async lookup(i){if(o==="write")return;let d=await a(i),c=await e.load(d);if(c===void 0){if(o==="read-strict")throw new sr(d,i);return}return c},async store(i,d){if(o==="read")return;let c=await a(i);await e.save(c,d)},async forget(i){if(o==="read"||o==="write"||!e.delete)return;let d=await a(i);await e.delete(d)}}}Z();function jo(t,e={}){let n=e.keyFn??(o=>String(o)),r=new Map;return o=>{let s=n(o),a=r.get(s);if(a)return a;let i=t(o),d;i!=null&&typeof i.then=="function"?d=Promise.resolve(i):i!=null&&typeof i=="object"&&"subscribe"in i&&"cache"in i?d=Se(i):i!=null&&typeof i=="object"&&Symbol.asyncIterator in i?d=(async()=>{let l=i[Symbol.asyncIterator]();try{let{value:p,done:f}=await l.next();if(f)throw new Error("singleFromAny: factory returned empty async iterable");return p}finally{await l.return?.()}})():i!=null&&typeof i=="object"&&Symbol.iterator in i?d=(async()=>{let l=i[Symbol.iterator]();try{let{value:p,done:f}=l.next();if(f)throw new Error("singleFromAny: factory returned empty iterable");return p}finally{l.return?.()}})():d=Promise.resolve(i);let c,u=()=>{r.get(s)===c&&r.delete(s)};return c=d.then(l=>(u(),l),l=>{throw u(),l}),r.set(s,c),c}}Z();Be();function Bo(t){let{storage:e,mode:n="read-write",keyFn:r,keyPrefix:o="llm-replay"}=t,a=$o({storage:e,keyPrefix:o,mode:n==="read-strict"?"read":n,keyContext:({messages:d,opts:c})=>{let{signal:u,keyContext:l,...p}=c??{};return{messages:d,opts:p}}});async function i(d,c){if(r){if(r.length<=1){let l={messages:d,opts:c,context:c?.keyContext},p=await r(l);return`${o}:${p}`}let u=await r(d,c);return`${o}:${u}`}return a.keyFor({messages:d,opts:c})}return{keyFor:i,async lookup(d,c){if(n!=="write"){if(r){let u=await i(d,c),l=await e.load(u);return l===void 0?void 0:l}return a.lookup({messages:d,opts:c})}},async store(d,c,u){if(n!=="read"){if(r){let l=await i(d,c);await e.save(l,u);return}await a.store({messages:d,opts:c},u)}},async forget(d,c){if(!(n==="read"||n==="write")&&e.delete){if(r){let u=await i(d,c);await e.delete(u);return}await a.forget({messages:d,opts:c})}}}}ge();se();Q();Z();function Te(t,e,n){return{provider:n?.provider??t.provider,model:n?.model??t.model,capabilities:n?.capabilities??t.capabilities?.bind(t),invoke:e.invoke,stream:e.stream}}function an(t,e){let{onResp:n,onError:r,name:o}=e;if(t!=null&&typeof t.then=="function"){let c=t;return r?c.then(n).catch(u=>{throw r(u),u}):c.then(n)}if(t!=null&&typeof t=="object"&&"content"in t)return n(t);let s=V(t);if(r){let c=!1;s.subscribe(u=>{for(let l of u){if(c)return;l[0]===P&&(c=!0,r(l[1]))}})}let a,i=!1,d=Co(s,c=>{a=n(c),i=!0});return A([d],([c])=>c==null?null:i?a:n(c),{name:o??"adapt/invokeTap"})}function tt(t){let e=t.endNs??z();return{timestamp:e,wallClock:t.startWallClockNs??ie(),provider:t.provider,model:t.model,tier:t.tier,usage:t.usage,latencyMs:Math.max(0,(e-t.startNs)/1e6),method:t.method,...t.error?{error:t.error}:{}}}function Fe(){return{input:{regular:0},output:{regular:0}}}var Vo=Symbol.for("graphrefly.adapter.middlewareLayers");function be(t,e,n){let o=[...n?Ki(n):[],e];return Object.defineProperty(t,Vo,{value:Object.freeze(o),enumerable:!1,writable:!1,configurable:!1}),t}function Ki(t){let e=t[Vo];return Array.isArray(e)?e:[]}var nt=class extends Error{constructor(n,r){super(`withReplayCache: no cached response for ${r} (key=${n}, mode=read-strict)`);this.key=n;this.method=r}name="ReplayCacheMissError"};function Et(t,e){let n=e.mode??"read-write",r=e.cacheStreaming??!1,o=e.captureStreamCadence??!1,s=e.replaySpeed??1,a=e.keyPrefix??"llm-replay",i=n==="read"||n==="read-strict",d=Bo({storage:e.storage,mode:n==="write-only"?"write":n,keyFn:e.keyFn,keyPrefix:a}),c=p=>p<=0?Promise.resolve():new Promise(f=>{new pe().start(p,()=>f())}),u=jo(async({messages:p,invokeOpts:f})=>await Se(V(t.invoke(p,f))),{keyFn:({_precomputedKey:p})=>p}),l=Te(t,{async invoke(p,f){let m=await d.keyFor(p,f),h=await d.lookup(p,f);if(h?.response){let y=h.response;return{...y,metadata:{...y.metadata??{},replayCache:"hit"}}}if(n==="read-strict")throw new nt(m,"invoke");let g=await u({messages:p,invokeOpts:f,_precomputedKey:m});return i||await d.store(p,f,{response:g,storedAtNs:ie()}),g},async*stream(p,f){if(!r){for await(let _ of t.stream(p,f))yield _;return}let m=await d.keyFor(p,f),h=await d.lookup(p,f);if(h){let _=h.response;if(h.streamChunks&&h.streamCadenceMs)for(let w=0;w<h.streamChunks.length;w++){let R=h.streamCadenceMs[w]??0,x=s>0?R/s:0;x>0&&await c(x),yield{type:"token",delta:h.streamChunks[w]?.delta??""}}else _.content&&(yield{type:"token",delta:_.content});_.usage&&(yield{type:"usage",usage:_.usage}),yield{type:"finish",reason:_.finishReason??"stop"};return}if(n==="read-strict")throw new nt(m,"stream");let g="",y,T,b=[],v=[],k;for await(let _ of t.stream(p,f)){if(_.type==="token"&&(g+=_.delta,o)){let w=z(),R=k===void 0?0:(w-k)/1e6;v.push(R),k=w,b.push({delta:_.delta})}_.type==="usage"&&(y=_.usage),_.type==="finish"&&(T=_.reason),yield _}if((g||y)&&!i){let w={response:{content:g,usage:y??{input:{regular:0},output:{regular:0}},finishReason:T,model:t.model??f?.model??"",provider:t.provider},storedAtNs:ie(),...o?{streamChunks:b,streamCadenceMs:v}:{}};await d.store(p,f,w)}}});return be(l,"withReplayCache",t),l}var ar=ir;var zi=nt;function Ko(t,e){return{content:"[fallback: no cached response available for this request]",usage:{input:{regular:0},output:{regular:0}},finishReason:"stop",model:e,provider:t,metadata:{degraded:!0,reason:"no-fixture"}}}function zo(t,e,n){return typeof t=="string"?{content:t,usage:{input:{regular:0},output:{regular:0}},finishReason:"stop",model:n,provider:e,metadata:{degraded:!0,reason:"respond"}}:t}async function Ui(t,e){if("key"in t)return t.key;let n=ar({messages:t.messages,opts:t.invokeOpts??{}}),r=await sn(n);return`${e}:${r}`}function qi(t){let e={response:t.response,storedAtNs:ie()};if("key"in t&&t.stream){let n=t.stream.chunks.filter(r=>r.type==="token");return{...e,streamChunks:n.map(r=>({delta:r.delta})),streamCadenceMs:t.stream.delaysMs??n.map(()=>0)}}return e}function Wi(t,e){let n=[];if(t.fixtures!=null&&n.push("fixtures"),t.fixturesStorage!=null&&n.push("fixturesStorage"),n.length>1)throw new TypeError(`fallbackAdapter: \`fixtures\` and \`fixturesStorage\` are mutually exclusive; got both ${n.join(" and ")}. Pick one source. For filesystem directories use the node subpath's \`fallbackAdapter\`.`);if(t.fixtures){let r=or(),o=t.fixtures,s=(async()=>{for(let a of o){let i=await Ui(a,e);await r.save(i,qi(a))}})();return s.catch(()=>{}),{tier:r,seedReady:s}}return t.fixturesStorage?{tier:t.fixturesStorage,seedReady:Promise.resolve()}:{tier:void 0,seedReady:Promise.resolve()}}function dr(t={}){let e=t.provider??"fallback",n=t.model??"fallback",r=t.onMiss??"respond",o=t.keyPrefix??"fallback",s=t.record?t.record.adapter:r==="throw"?et({provider:e,model:n,respond:()=>"[unreachable: read-strict mode throws on miss]"}):{provider:e,model:n,async invoke(u,l){let p=t.respond?t.respond(u,l):Ko(e,n);return zo(p,e,n)},async*stream(u,l){let p=t.respond?t.respond(u,l):Ko(e,n),f=zo(p,e,n);yield{type:"token",delta:f.content},f.usage&&(yield{type:"usage",usage:f.usage}),yield{type:"finish",reason:f.finishReason??"stop"}}},a,i=Promise.resolve();if(t.record){if(!t.record.storage)throw new TypeError("fallbackAdapter: `record.storage` is required in record mode. For filesystem `record.dir` convenience, use the node subpath's `fallbackAdapter`.");a=t.record.storage}else{let u=Wi(t,o);a=u.tier??or(),i=u.seedReady}let d=t.record?"read-write":r==="throw"?"read-strict":"read",c=Et(s,{storage:a,mode:d,keyPrefix:o,cacheStreaming:!0,captureStreamCadence:!0,replaySpeed:t.replaySpeed,...t.keyFn?{keyFn:t.keyFn}:{}});return{provider:e,model:n,capabilities:c.capabilities?.bind(c),async invoke(u,l){return await i,c.invoke(u,l)},async*stream(u,l){await i;for await(let p of c.stream(u,l))yield p}}}ge();function cr(t={}){return t.sdk?Qi(t):Yi(t)}function dn(t,e){let n=[],r=[];e?.systemPrompt&&n.push(e.systemPrompt);for(let a of t){if(a.role==="system"){n.push(a.content);continue}if(a.role==="tool"){r.push({role:"user",parts:[{functionResponse:{name:a.name??a.toolCallId??"tool",response:{result:a.content}}}]});continue}if(a.role==="assistant"&&a.toolCalls&&a.toolCalls.length>0){let i=[];a.content&&i.push({text:a.content});for(let d of a.toolCalls)i.push({functionCall:{name:d.name,args:d.arguments}});r.push({role:"model",parts:i});continue}r.push({role:a.role==="assistant"?"model":"user",parts:[{text:a.content}]})}let o={contents:r};n.length>0&&(o.systemInstruction={role:"system",parts:[{text:n.join(`
4
+ `):void 0,chat:r}}function Di(t){if(t.role==="tool")return{role:"user",content:[{type:"tool_result",tool_use_id:t.toolCallId,content:t.content}]};if(t.role==="assistant"&&t.toolCalls&&t.toolCalls.length>0){let e=[];t.content&&e.push({type:"text",text:t.content});for(let n of t.toolCalls)e.push({type:"tool_use",id:n.id,name:n.name,input:n.arguments});return{role:"assistant",content:e}}return{role:t.role,content:t.content}}function Ii(t){return{name:t.name,description:t.description,input_schema:t.parameters}}function rn(t,e){if(!t)return{...e};let n={...t};return e.input_tokens!=null&&(n.input_tokens=e.input_tokens),e.output_tokens!=null&&(n.output_tokens=e.output_tokens),e.cache_read_input_tokens!=null&&(n.cache_read_input_tokens=e.cache_read_input_tokens),e.cache_creation_input_tokens!=null&&(n.cache_creation_input_tokens=e.cache_creation_input_tokens),e.cache_creation&&(n.cache_creation={...t.cache_creation??{},...e.cache_creation}),e.server_tool_use&&(n.server_tool_use={...t.server_tool_use??{},...e.server_tool_use}),n}function nr(t){let e={input:{regular:t?.input_tokens??0},output:{regular:t?.output_tokens??0},raw:t};return t?.cache_read_input_tokens&&(e.input.cacheRead=t.cache_read_input_tokens),t?.cache_creation?(t.cache_creation.ephemeral_5m_input_tokens&&(e.input.cacheWrite5m=t.cache_creation.ephemeral_5m_input_tokens),t.cache_creation.ephemeral_1h_input_tokens&&(e.input.cacheWrite1h=t.cache_creation.ephemeral_1h_input_tokens)):t?.cache_creation_input_tokens&&(e.input.cacheWrite5m=t.cache_creation_input_tokens),t?.server_tool_use?.web_search_requests&&(e.auxiliary={webSearchRequests:t.server_tool_use.web_search_requests}),e}function Io(t,e){let n=[],r=[];for(let o of t.content)if(o.type==="text"&&typeof o.text=="string")n.push(o.text);else if(o.type==="tool_use"){let s=o;r.push({id:s.id,name:s.name,arguments:s.input??{}})}return{content:n.join(""),toolCalls:r.length>0?r:void 0,usage:nr(t.usage),finishReason:t.stop_reason,latencyMs:e,model:t.model,provider:"anthropic"}}function Pi(t){let e=t.apiKey??globalThis.process?.env?.ANTHROPIC_API_KEY,n=t.baseURL??"https://api.anthropic.com",r=t.anthropicVersion??"2023-06-01",o=t.fetchImpl??fetch,s=()=>{if(!e)throw new Error("anthropicAdapter: apiKey required for invoke/stream (or provide opts.sdk)");return{"x-api-key":e,"anthropic-version":r,"content-type":"application/json",...t.headers??{}}};return{provider:"anthropic",model:t.model,async invoke(a,i){let d=nn(a,i,t.model,!1),c=z(),u=await o(`${n}/v1/messages`,{method:"POST",headers:s(),body:JSON.stringify(d),signal:i?.signal});if(!u.ok)throw await Ve(u,"Anthropic");let l=await u.json(),p=Math.max(0,(z()-c)/1e6);return Io(l,p)},async*stream(a,i){let d=nn(a,i,t.model,!0),c=await o(`${n}/v1/messages`,{method:"POST",headers:{...s(),accept:"text/event-stream"},body:JSON.stringify(d),signal:i?.signal});if(!c.ok)throw await Ve(c,"Anthropic");if(!c.body)throw new Error("anthropicAdapter: streaming response has no body");let u,l,p=new Map;for await(let f of gt(c.body,{signal:i?.signal})){let m=f.data;if(!m)continue;let h;try{h=JSON.parse(m)}catch{continue}switch(h.type){case"message_start":{u=rn(u,h.message.usage);break}case"content_block_start":{let g=h,y=g.content_block;y.type==="tool_use"&&(p.set(g.index,{id:String(y.id??""),name:String(y.name??""),argBuf:""}),yield{type:"tool-call-delta",delta:{id:String(y.id??""),name:String(y.name??"")}});break}case"content_block_delta":{let g=h,y=g.delta;if(y.type==="text_delta"&&typeof y.text=="string")yield{type:"token",delta:y.text};else if(y.type==="input_json_delta"&&typeof y.partial_json=="string"){let T=p.get(g.index);T&&(T.argBuf+=y.partial_json),yield{type:"tool-call-delta",delta:{argumentsDelta:y.partial_json}}}else y.type==="thinking_delta"&&typeof y.thinking=="string"&&(yield{type:"thinking",delta:y.thinking});break}case"message_delta":{let g=h;g.delta.stop_reason&&(l=g.delta.stop_reason),g.delta.usage&&(u=rn(u,g.delta.usage));break}case"message_stop":break}}u&&(yield{type:"usage",usage:nr(u)}),yield{type:"finish",reason:l??"stop"}}}}function Gi(t){let e=t.sdk;if(!e)throw new Error("sdkBackedAnthropic: sdk instance required");return{provider:"anthropic",model:t.model,async invoke(n,r){let o=nn(n,r,t.model,!1),s=z(),a=await e.messages.create(o,{signal:r?.signal}),i=Math.max(0,(z()-s)/1e6);return Io(a,i)},async*stream(n,r){if(!e.messages.stream)throw new Error("sdkBackedAnthropic: SDK instance does not expose .messages.stream");let o=nn(n,r,t.model,!0),s,a;for await(let i of e.messages.stream(o,{signal:r?.signal}))switch(i.type){case"message_start":s=rn(s,i.message.usage);break;case"content_block_delta":{let d=i.delta;d?.type==="text_delta"&&typeof d.text=="string"?yield{type:"token",delta:d.text}:d?.type==="input_json_delta"&&typeof d.partial_json=="string"?yield{type:"tool-call-delta",delta:{argumentsDelta:d.partial_json}}:d?.type==="thinking_delta"&&typeof d.thinking=="string"&&(yield{type:"thinking",delta:d.thinking});break}case"message_delta":{let d=i;d.delta.stop_reason&&(a=d.delta.stop_reason),d.delta.usage&&(s=rn(s,d.delta.usage));break}}s&&(yield{type:"usage",usage:nr(s)}),yield{type:"finish",reason:a??"stop"}}}}Be();function on(){let t=new Error("aborted");return t.name="AbortError",t}function Po(t,e){return t<=0?Promise.resolve():e?.aborted?Promise.reject(on()):new Promise((n,r)=>{let o=new pe,s,a=()=>{o.cancel(),e&&s&&e.removeEventListener("abort",s)};o.start(t,()=>{a(),n()}),e&&(s=()=>{a(),r(on())},e.addEventListener("abort",s,{once:!0}))})}function et(t={}){let e=t.provider??"dry-run",n=t.model??"dry-run-v1",r=t.latencyMs??0,o=Math.max(1,t.streamChunkSize??16),s=t.respond??(i=>{let d=[...i].reverse().find(c=>c.role==="user");return d?`echo: ${d.content}`:"dry-run: no user message"}),a=t.usage??((i,d)=>{let c=i.reduce((u,l)=>u+l.content.length,0);return{input:{regular:Math.ceil(c/4)},output:{regular:Math.ceil(d.length/4)}}});return{provider:e,model:n,async invoke(i,d){if(await Po(r,d?.signal),d?.signal?.aborted)throw on();let c=s(i,d),u=a(i,c);return{content:c,usage:u,finishReason:"stop",model:d?.model??n,provider:e,tier:d?.tier,metadata:{dryRun:!0}}},async*stream(i,d){let c=s(i,d),u=a(i,c),l=Math.ceil(c.length/o)||1,p=r>0?r/l:0;for(let f=0;f<c.length;f+=o){if(d?.signal?.aborted)throw on();await Po(p,d?.signal),yield{type:"token",delta:c.slice(f,f+o)}}yield{type:"usage",usage:u},yield{type:"finish",reason:"stop"}}}}ge();async function sn(t){let e=typeof t=="string"?new TextEncoder().encode(t):t,n=await globalThis.crypto.subtle.digest("SHA-256",e),r=new Uint8Array(n),o="";for(let s=0;s<r.length;s++)o+=Go[r[s]];return o}var Go=new Array(256);for(let t=0;t<256;t++)Go[t]=t.toString(16).padStart(2,"0");function rr(t){if(t===null||typeof t!="object")return t;if(Array.isArray(t))return t.map(rr);let e=t,n=Object.keys(e).sort(),r={};for(let o of n)r[o]=rr(e[o]);return r}function Fo(t){return JSON.stringify(rr(t),void 0,0)}var Fi=new TextEncoder,$i=new TextDecoder("utf-8",{fatal:!0}),ji={name:"json",version:1,encode(t){return Fi.encode(Fo(t))},decode(t){return JSON.parse($i.decode(t))}};function Bi(){let t=new Map;return{name:"memory",read(e){let n=t.get(e);return n===void 0?void 0:new Uint8Array(n)},write(e,n){t.set(e,new Uint8Array(n))},delete(e){t.delete(e)},list(e){let n=[...t.keys()];return e?n.filter(r=>r.startsWith(e)).sort():n.sort()}}}function Vi(t,e={}){let n=e.codec??ji,r=e.name??t.name??"kv",o=e.compactEvery,s=new Map,a=0,i={name:r,debounceMs:e.debounceMs,compactEvery:o,filter:e.filter,save(c,u){if(!(e.filter&&!e.filter(c,u))&&(s.set(c,u),a+=1,o!==void 0&&a%o===0||!e.debounceMs))return d()},load(c){let u=t.read(c);if(u!==void 0)return u instanceof Uint8Array?u.length===0?void 0:n.decode(u):Promise.resolve(u).then(l=>l===void 0||l.length===0?void 0:n.decode(l))},delete(c){if(s.delete(c),!!t.delete)return t.delete(c)},list(c){return t.list?t.list(c):[]},async flush(){await d()},async rollback(){s=new Map}};function d(){if(s.size===0)return;let c=s;s=new Map;let u=[];for(let[l,p]of c){let f=n.encode(p),m=t.write(l,f);m instanceof Promise&&u.push(m)}if(u.length>0)return Promise.all(u).then(()=>{})}return i}function or(t){return Vi(Bi(),t)}ge();var sr=class extends Error{constructor(n,r){super(`content-addressed lookup miss in read-strict mode: ${n}`);this.key=n;this.context=r;this.name="ContentAddressedMissError"}};function ir(t){let e=new Set,n=r=>{if(r===null||typeof r!="object")return r;let o=r;if(e.has(o))return{__cycle:!0};e.add(o);try{if(Array.isArray(r))return r.map(n);let s={};for(let a of Object.keys(r).sort())s[a]=n(r[a]);return s}finally{e.delete(o)}};return JSON.stringify(n(t))}function $o(t){let{storage:e,keyContext:n,keyPrefix:r,mode:o="read-write"}=t,s=n??(i=>i);async function a(i){let d=ir(s(i)),c=await sn(d);return r?`${r}:${c}`:c}return{keyFor:a,async lookup(i){if(o==="write")return;let d=await a(i),c=await e.load(d);if(c===void 0){if(o==="read-strict")throw new sr(d,i);return}return c},async store(i,d){if(o==="read")return;let c=await a(i);await e.save(c,d)},async forget(i){if(o==="read"||o==="write"||!e.delete)return;let d=await a(i);await e.delete(d)}}}Z();function jo(t,e={}){let n=e.keyFn??(o=>String(o)),r=new Map;return o=>{let s=n(o),a=r.get(s);if(a)return a;let i=t(o),d;i!=null&&typeof i.then=="function"?d=Promise.resolve(i):i!=null&&typeof i=="object"&&"subscribe"in i&&"cache"in i?d=Se(i):i!=null&&typeof i=="object"&&Symbol.asyncIterator in i?d=(async()=>{let l=i[Symbol.asyncIterator]();try{let{value:p,done:f}=await l.next();if(f)throw new Error("singleFromAny: factory returned empty async iterable");return p}finally{await l.return?.()}})():i!=null&&typeof i=="object"&&Symbol.iterator in i?d=(async()=>{let l=i[Symbol.iterator]();try{let{value:p,done:f}=l.next();if(f)throw new Error("singleFromAny: factory returned empty iterable");return p}finally{l.return?.()}})():d=Promise.resolve(i);let c,u=()=>{r.get(s)===c&&r.delete(s)};return c=d.then(l=>(u(),l),l=>{throw u(),l}),r.set(s,c),c}}Z();Be();function Bo(t){let{storage:e,mode:n="read-write",keyFn:r,keyPrefix:o="llm-replay"}=t,a=$o({storage:e,keyPrefix:o,mode:n==="read-strict"?"read":n,keyContext:({messages:d,opts:c})=>{let{signal:u,keyContext:l,...p}=c??{};return{messages:d,opts:p}}});async function i(d,c){if(r){if(r.length<=1){let l={messages:d,opts:c,context:c?.keyContext},p=await r(l);return`${o}:${p}`}let u=await r(d,c);return`${o}:${u}`}return a.keyFor({messages:d,opts:c})}return{keyFor:i,async lookup(d,c){if(n!=="write"){if(r){let u=await i(d,c),l=await e.load(u);return l===void 0?void 0:l}return a.lookup({messages:d,opts:c})}},async store(d,c,u){if(n!=="read"){if(r){let l=await i(d,c);await e.save(l,u);return}await a.store({messages:d,opts:c},u)}},async forget(d,c){if(!(n==="read"||n==="write")&&e.delete){if(r){let u=await i(d,c);await e.delete(u);return}await a.forget({messages:d,opts:c})}}}}ge();se();Q();Z();function Te(t,e,n){return{provider:n?.provider??t.provider,model:n?.model??t.model,capabilities:n?.capabilities??t.capabilities?.bind(t),invoke:e.invoke,stream:e.stream}}function an(t,e){let{onResp:n,onError:r,name:o}=e;if(t!=null&&typeof t.then=="function"){let c=t;return r?c.then(n).catch(u=>{throw r(u),u}):c.then(n)}if(t!=null&&typeof t=="object"&&"content"in t)return n(t);let s=V(t);if(r){let c=!1;s.subscribe(u=>{for(let l of u){if(c)return;l[0]===P&&(c=!0,r(l[1]))}})}let a,i=!1,d=Co(s,c=>{a=n(c),i=!0});return A([d],([c])=>c==null?null:i?a:n(c),{name:o??"adapt/invokeTap"})}function tt(t){let e=t.endNs??z();return{timestamp:e,wallClock:t.startWallClockNs??ie(),provider:t.provider,model:t.model,tier:t.tier,usage:t.usage,latencyMs:Math.max(0,(e-t.startNs)/1e6),method:t.method,...t.error?{error:t.error}:{}}}function Fe(){return{input:{regular:0},output:{regular:0}}}var Vo=Symbol.for("graphrefly.adapter.middlewareLayers");function be(t,e,n){let o=[...n?Ki(n):[],e];return Object.defineProperty(t,Vo,{value:Object.freeze(o),enumerable:!1,writable:!1,configurable:!1}),t}function Ki(t){let e=t[Vo];return Array.isArray(e)?e:[]}var nt=class extends Error{constructor(n,r){super(`withReplayCache: no cached response for ${r} (key=${n}, mode=read-strict)`);this.key=n;this.method=r}name="ReplayCacheMissError"};function Et(t,e){let n=e.mode??"read-write",r=e.cacheStreaming??!1,o=e.captureStreamCadence??!1,s=e.replaySpeed??1,a=e.keyPrefix??"llm-replay",i=n==="read"||n==="read-strict",d=Bo({storage:e.storage,mode:n==="write-only"?"write":n,keyFn:e.keyFn,keyPrefix:a}),c=p=>p<=0?Promise.resolve():new Promise(f=>{new pe().start(p,()=>f())}),u=jo(async({messages:p,invokeOpts:f})=>await Se(V(t.invoke(p,f))),{keyFn:({_precomputedKey:p})=>p}),l=Te(t,{async invoke(p,f){let m=await d.keyFor(p,f),h=await d.lookup(p,f);if(h?.response){let y=h.response;return{...y,metadata:{...y.metadata??{},replayCache:"hit"}}}if(n==="read-strict")throw new nt(m,"invoke");let g=await u({messages:p,invokeOpts:f,_precomputedKey:m});return i||await d.store(p,f,{response:g,storedAtNs:ie()}),g},async*stream(p,f){if(!r){for await(let N of t.stream(p,f))yield N;return}let m=await d.keyFor(p,f),h=await d.lookup(p,f);if(h){let N=h.response;if(h.streamChunks&&h.streamCadenceMs)for(let w=0;w<h.streamChunks.length;w++){let R=h.streamCadenceMs[w]??0,x=s>0?R/s:0;x>0&&await c(x),yield{type:"token",delta:h.streamChunks[w]?.delta??""}}else N.content&&(yield{type:"token",delta:N.content});N.usage&&(yield{type:"usage",usage:N.usage}),yield{type:"finish",reason:N.finishReason??"stop"};return}if(n==="read-strict")throw new nt(m,"stream");let g="",y,T,b=[],v=[],k;for await(let N of t.stream(p,f)){if(N.type==="token"&&(g+=N.delta,o)){let w=z(),R=k===void 0?0:(w-k)/1e6;v.push(R),k=w,b.push({delta:N.delta})}N.type==="usage"&&(y=N.usage),N.type==="finish"&&(T=N.reason),yield N}if((g||y)&&!i){let w={response:{content:g,usage:y??{input:{regular:0},output:{regular:0}},finishReason:T,model:t.model??f?.model??"",provider:t.provider},storedAtNs:ie(),...o?{streamChunks:b,streamCadenceMs:v}:{}};await d.store(p,f,w)}}});return be(l,"withReplayCache",t),l}var ar=ir;var zi=nt;function Ko(t,e){return{content:"[fallback: no cached response available for this request]",usage:{input:{regular:0},output:{regular:0}},finishReason:"stop",model:e,provider:t,metadata:{degraded:!0,reason:"no-fixture"}}}function zo(t,e,n){return typeof t=="string"?{content:t,usage:{input:{regular:0},output:{regular:0}},finishReason:"stop",model:n,provider:e,metadata:{degraded:!0,reason:"respond"}}:t}async function Ui(t,e){if("key"in t)return t.key;let n=ar({messages:t.messages,opts:t.invokeOpts??{}}),r=await sn(n);return`${e}:${r}`}function qi(t){let e={response:t.response,storedAtNs:ie()};if("key"in t&&t.stream){let n=t.stream.chunks.filter(r=>r.type==="token");return{...e,streamChunks:n.map(r=>({delta:r.delta})),streamCadenceMs:t.stream.delaysMs??n.map(()=>0)}}return e}function Wi(t,e){let n=[];if(t.fixtures!=null&&n.push("fixtures"),t.fixturesStorage!=null&&n.push("fixturesStorage"),n.length>1)throw new TypeError(`fallbackAdapter: \`fixtures\` and \`fixturesStorage\` are mutually exclusive; got both ${n.join(" and ")}. Pick one source. For filesystem directories use the node subpath's \`fallbackAdapter\`.`);if(t.fixtures){let r=or(),o=t.fixtures,s=(async()=>{for(let a of o){let i=await Ui(a,e);await r.save(i,qi(a))}})();return s.catch(()=>{}),{tier:r,seedReady:s}}return t.fixturesStorage?{tier:t.fixturesStorage,seedReady:Promise.resolve()}:{tier:void 0,seedReady:Promise.resolve()}}function dr(t={}){let e=t.provider??"fallback",n=t.model??"fallback",r=t.onMiss??"respond",o=t.keyPrefix??"fallback",s=t.record?t.record.adapter:r==="throw"?et({provider:e,model:n,respond:()=>"[unreachable: read-strict mode throws on miss]"}):{provider:e,model:n,async invoke(u,l){let p=t.respond?t.respond(u,l):Ko(e,n);return zo(p,e,n)},async*stream(u,l){let p=t.respond?t.respond(u,l):Ko(e,n),f=zo(p,e,n);yield{type:"token",delta:f.content},f.usage&&(yield{type:"usage",usage:f.usage}),yield{type:"finish",reason:f.finishReason??"stop"}}},a,i=Promise.resolve();if(t.record){if(!t.record.storage)throw new TypeError("fallbackAdapter: `record.storage` is required in record mode. For filesystem `record.dir` convenience, use the node subpath's `fallbackAdapter`.");a=t.record.storage}else{let u=Wi(t,o);a=u.tier??or(),i=u.seedReady}let d=t.record?"read-write":r==="throw"?"read-strict":"read",c=Et(s,{storage:a,mode:d,keyPrefix:o,cacheStreaming:!0,captureStreamCadence:!0,replaySpeed:t.replaySpeed,...t.keyFn?{keyFn:t.keyFn}:{}});return{provider:e,model:n,capabilities:c.capabilities?.bind(c),async invoke(u,l){return await i,c.invoke(u,l)},async*stream(u,l){await i;for await(let p of c.stream(u,l))yield p}}}ge();function cr(t={}){return t.sdk?Qi(t):Yi(t)}function dn(t,e){let n=[],r=[];e?.systemPrompt&&n.push(e.systemPrompt);for(let a of t){if(a.role==="system"){n.push(a.content);continue}if(a.role==="tool"){r.push({role:"user",parts:[{functionResponse:{name:a.name??a.toolCallId??"tool",response:{result:a.content}}}]});continue}if(a.role==="assistant"&&a.toolCalls&&a.toolCalls.length>0){let i=[];a.content&&i.push({text:a.content});for(let d of a.toolCalls)i.push({functionCall:{name:d.name,args:d.arguments}});r.push({role:"model",parts:i});continue}r.push({role:a.role==="assistant"?"model":"user",parts:[{text:a.content}]})}let o={contents:r};n.length>0&&(o.systemInstruction={role:"system",parts:[{text:n.join(`
5
5
 
6
- `)}]});let s={};return e?.maxTokens!=null&&(s.maxOutputTokens=e.maxTokens),e?.temperature!=null&&(s.temperature=e.temperature),e?.maxReasoningTokens!=null&&(s.thinkingConfig={thinkingBudget:e.maxReasoningTokens}),Object.keys(s).length>0&&(o.generationConfig=s),e?.tools&&e.tools.length>0&&(o.tools=[{functionDeclarations:e.tools.map(Hi)}]),e?.providerExtras&&Object.assign(o,e.providerExtras),o}function Hi(t){return{name:t.name,description:t.description,parameters:t.parameters}}function Uo(t,e,n){let r={},o=t.generationConfig;o&&(typeof o.maxOutputTokens=="number"&&(r.maxOutputTokens=o.maxOutputTokens),typeof o.temperature=="number"&&(r.temperature=o.temperature),o.thinkingConfig&&(r.thinkingConfig=o.thinkingConfig)),t.systemInstruction&&(r.systemInstruction=t.systemInstruction),t.tools&&(r.tools=t.tools);for(let[s,a]of Object.entries(t))s==="contents"||s==="generationConfig"||s==="systemInstruction"||s==="tools"||s==="abortSignal"||s==="model"||(r[s]=a);return n&&(r.abortSignal=n),{model:e,contents:t.contents,config:Object.keys(r).length>0?r:void 0}}function ur(t){let e={input:{regular:0},output:{regular:0},raw:t};if(!t)return e;let n=t.promptTokenCount??0,r=t.cachedContentTokenCount??0;if(e.input.regular=Math.max(0,n-r),r>0&&(e.input.cacheRead=r),t.toolUsePromptTokenCount&&(e.input.toolUse=t.toolUsePromptTokenCount),t.promptTokensDetails)for(let o of t.promptTokensDetails){let s=o.modality?.toLowerCase();s==="image"?e.input.image=(e.input.image??0)+o.tokenCount:s==="audio"?e.input.audio=(e.input.audio??0)+o.tokenCount:s==="video"&&(e.input.video=(e.input.video??0)+o.tokenCount)}return e.output.regular=t.candidatesTokenCount??0,t.thoughtsTokenCount&&(e.output.reasoning=t.thoughtsTokenCount),e}function qo(t,e){let n=t.candidates?.[0],r=n?.content?.parts??[],o=[],s=[],a=0;for(let i of r)typeof i.text=="string"&&o.push(i.text),i.functionCall&&s.push({id:`${i.functionCall.name}-${a++}`,name:i.functionCall.name,arguments:i.functionCall.args??{}});return{content:o.join(""),toolCalls:s.length>0?s:void 0,usage:ur(t.usageMetadata),finishReason:n?.finishReason,latencyMs:e,model:t.modelVersion,provider:"google"}}function Ji(t){if(t.apiKey)return t.apiKey;let e=globalThis.process?.env;return e?.GOOGLE_API_KEY??e?.GEMINI_API_KEY}function Yi(t){let e=t.baseURL??"https://generativelanguage.googleapis.com/v1beta",n=t.fetchImpl??fetch,r=s=>{let a=s?.model??t.model;if(!a)throw new Error("googleAdapter: model must be set via options.model or invokeOpts.model");return a},o=()=>{let s=Ji(t);if(!s)throw new Error("googleAdapter: apiKey required for invoke/stream");return`key=${encodeURIComponent(s)}`};return{provider:"google",model:t.model,async invoke(s,a){let i=r(a),d=dn(s,a),c=z(),u=`${e}/models/${encodeURIComponent(i)}:generateContent?${o()}`,l=await n(u,{method:"POST",headers:{"content-type":"application/json",...t.headers??{}},body:JSON.stringify(d),signal:a?.signal});if(!l.ok)throw await Ve(l,"Google");let p=await l.json(),f=Math.max(0,(z()-c)/1e6);return qo(p,f)},async*stream(s,a){let i=r(a),d=dn(s,a),c=`${e}/models/${encodeURIComponent(i)}:streamGenerateContent?alt=sse&${o()}`,u=await n(c,{method:"POST",headers:{"content-type":"application/json",accept:"text/event-stream",...t.headers??{}},body:JSON.stringify(d),signal:a?.signal});if(!u.ok)throw await Ve(u,"Google");if(!u.body)throw new Error("googleAdapter: streaming response has no body");let l,p;for await(let f of gt(u.body,{signal:a?.signal})){if(!f.data)continue;let m;try{m=JSON.parse(f.data)}catch{continue}let h=m.candidates?.[0];for(let g of h?.content?.parts??[])typeof g.text=="string"&&(g.thought?yield{type:"thinking",delta:g.text}:yield{type:"token",delta:g.text}),g.functionCall&&(yield{type:"tool-call-delta",delta:{name:g.functionCall.name,argumentsDelta:JSON.stringify(g.functionCall.args??{})}});h?.finishReason&&(p=h.finishReason),m.usageMetadata&&(l=m.usageMetadata)}l&&(yield{type:"usage",usage:ur(l)}),yield{type:"finish",reason:p??"stop"}}}}function Qi(t){let e=t.sdk;if(!e)throw new Error("sdkBackedGoogle: sdk instance required");return{provider:"google",model:t.model,async invoke(n,r){let o=dn(n,r),s=r?.model??t.model;if(!s)throw new Error("googleAdapter: model required");let a=Uo(o,s,r?.signal),i=z(),d=await e.models.generateContent(a),c=Math.max(0,(z()-i)/1e6);return qo(d,c)},async*stream(n,r){if(!e.models.generateContentStream)throw new Error("sdkBackedGoogle: SDK instance does not expose generateContentStream");let o=dn(n,r),s=r?.model??t.model;if(!s)throw new Error("googleAdapter: model required");let a=Uo(o,s,r?.signal),i,d,c=await e.models.generateContentStream(a);for await(let u of c){let l=u.candidates?.[0];for(let p of l?.content?.parts??[])typeof p.text=="string"&&(p.thought?yield{type:"thinking",delta:p.text}:yield{type:"token",delta:p.text}),p.functionCall&&(yield{type:"tool-call-delta",delta:{name:p.functionCall.name,argumentsDelta:JSON.stringify(p.functionCall.args??{})}});l?.finishReason&&(d=l.finishReason),u.usageMetadata&&(i=u.usageMetadata)}i&&(yield{type:"usage",usage:ur(i)}),yield{type:"finish",reason:d??"stop"}}}}ge();var Xi={openai:{baseURL:"https://api.openai.com/v1",apiKeyEnv:"OPENAI_API_KEY",provider:"openai"},openrouter:{baseURL:"https://openrouter.ai/api/v1",apiKeyEnv:"OPENROUTER_API_KEY",provider:"openrouter"},groq:{baseURL:"https://api.groq.com/openai/v1",apiKeyEnv:"GROQ_API_KEY",provider:"groq"},ollama:{baseURL:"http://localhost:11434/v1",provider:"ollama"},deepseek:{baseURL:"https://api.deepseek.com/v1",apiKeyEnv:"DEEPSEEK_API_KEY",provider:"deepseek"},xai:{baseURL:"https://api.x.ai/v1",apiKeyEnv:"XAI_API_KEY",provider:"xai"}};function lr(t={}){return t.sdk?ra(t):na(t)}function cn(t,e,n,r,o){let s=e?.model??n;if(!s)throw new Error("openAICompatAdapter: model must be set via options.model or invokeOpts.model");let a=t.map(Zi);e?.systemPrompt&&!t.some(d=>d.role==="system")&&a.unshift({role:"system",content:e.systemPrompt});let i={model:s,messages:a};return e?.maxTokens!=null&&(i.max_tokens=e.maxTokens),e?.temperature!=null&&(i.temperature=e.temperature),e?.tools&&e.tools.length>0&&(i.tools=e.tools.map(ea)),e?.maxReasoningTokens!=null&&(i.reasoning={max_tokens:e.maxReasoningTokens}),r&&(i.stream=!0,i.stream_options={include_usage:!0}),o&&Object.assign(i,o),e?.providerExtras&&Object.assign(i,e.providerExtras),i}function Zi(t){return t.role==="tool"?{role:"tool",tool_call_id:t.toolCallId,content:t.content}:t.role==="assistant"&&t.toolCalls&&t.toolCalls.length>0?{role:"assistant",content:t.content||null,tool_calls:t.toolCalls.map(e=>({id:e.id,type:"function",function:{name:e.name,arguments:JSON.stringify(e.arguments)}}))}:{role:t.role,content:t.content}}function ea(t){return{type:"function",function:{name:t.name,description:t.description,parameters:t.parameters}}}function pr(t){let e={input:{regular:0},output:{regular:0},raw:t};if(!t)return e;let n=t.prompt_tokens??0,r=t.prompt_tokens_details?.cached_tokens??0;t.prompt_cache_hit_tokens!=null?(r=t.prompt_cache_hit_tokens,e.input.regular=t.prompt_cache_miss_tokens??Math.max(0,n-r)):e.input.regular=Math.max(0,n-r),r>0&&(e.input.cacheRead=r),t.prompt_tokens_details?.audio_tokens&&(e.input.audio=t.prompt_tokens_details.audio_tokens);let o=t.completion_tokens??0,s=t.completion_tokens_details?.reasoning_tokens??0;return e.output.regular=Math.max(0,o-s),s>0&&(e.output.reasoning=s),t.completion_tokens_details?.audio_tokens&&(e.output.audio=t.completion_tokens_details.audio_tokens),t.completion_tokens_details?.accepted_prediction_tokens&&(e.output.predictionAccepted=t.completion_tokens_details.accepted_prediction_tokens),t.completion_tokens_details?.rejected_prediction_tokens&&(e.output.predictionRejected=t.completion_tokens_details.rejected_prediction_tokens),e}function Wo(t,e,n){let r=t.choices[0],o=r?.message,s=o?.content??"",a=(o?.tool_calls??[]).map(i=>({id:i.id,name:i.function.name,arguments:ta(i.function.arguments)}));return{content:s,toolCalls:a.length>0?a:void 0,usage:pr(t.usage),finishReason:r?.finish_reason,latencyMs:e,model:t.model,provider:n}}function ta(t){try{let e=JSON.parse(t);return typeof e=="object"&&e!=null?e:{_raw:t}}catch{return{_raw:t}}}function Ho(t){let e=t.preset??"openai",n=Xi[e],r=t.baseURL??n.baseURL,o=t.provider??n.provider,s=n.apiKeyEnv,a=t.apiKey??(s?globalThis.process?.env?.[s]:void 0);return{provider:o,baseURL:r,apiKey:a}}function na(t){let{provider:e,baseURL:n,apiKey:r}=Ho(t),o=t.fetchImpl??fetch,s=e!=="ollama",a=()=>{let i={"content-type":"application/json",...t.headers??{}};if(s){if(!r)throw new Error(`openAICompatAdapter[${e}]: apiKey required for invoke/stream`);i.authorization=`Bearer ${r}`}return i};return{provider:e,model:t.model,async invoke(i,d){let c=cn(i,d,t.model,!1,t.bodyExtras),u=z(),l=await o(`${n}/chat/completions`,{method:"POST",headers:a(),body:JSON.stringify(c),signal:d?.signal});if(!l.ok)throw await Ve(l,e);let p=await l.json(),f=Math.max(0,(z()-u)/1e6);return Wo(p,f,e)},async*stream(i,d){let c=cn(i,d,t.model,!0,t.bodyExtras),u=await o(`${n}/chat/completions`,{method:"POST",headers:{...a(),accept:"text/event-stream"},body:JSON.stringify(c),signal:d?.signal});if(!u.ok)throw await Ve(u,e);if(!u.body)throw new Error(`openAICompatAdapter[${e}]: streaming response has no body`);let l,p;for await(let f of gt(u.body,{signal:d?.signal})){if(!f.data||f.data==="[DONE]")continue;let m;try{m=JSON.parse(f.data)}catch{continue}let h=m.choices;if(h){let g=h[0];if(g?.delta?.content&&(yield{type:"token",delta:g.delta.content}),g?.delta?.reasoning_content&&(yield{type:"thinking",delta:g.delta.reasoning_content}),g?.delta?.tool_calls)for(let y of g.delta.tool_calls)yield{type:"tool-call-delta",delta:{id:y.id,name:y.function?.name,argumentsDelta:y.function?.arguments}};g?.finish_reason&&(p=g.finish_reason)}m.usage&&(l=m.usage,yield{type:"usage",usage:pr(l)})}yield{type:"finish",reason:p??"stop"}}}}function ra(t){let e=t.sdk;if(!e)throw new Error("sdkBackedOpenAI: sdk instance required");let{provider:n}=Ho(t);return{provider:n,model:t.model,async invoke(r,o){let s=cn(r,o,t.model,!1,t.bodyExtras),a=z(),i=await e.chat.completions.create(s,{signal:o?.signal}),d=Math.max(0,(z()-a)/1e6);return Wo(i,d,n)},async*stream(r,o){let s=cn(r,o,t.model,!0,t.bodyExtras),a=await e.chat.completions.create(s,{signal:o?.signal}),i,d;for await(let c of a){let u=c.choices;if(u){let p=u[0];if(p?.delta?.content&&(yield{type:"token",delta:p.delta.content}),p?.delta?.reasoning_content&&(yield{type:"thinking",delta:p.delta.reasoning_content}),p?.delta?.tool_calls)for(let f of p.delta.tool_calls)yield{type:"tool-call-delta",delta:{id:f.id,name:f.function?.name,argumentsDelta:f.function?.arguments}};p?.finish_reason&&(d=p.finish_reason)}let l=c.usage;l&&(i=l,yield{type:"usage",usage:pr(l)})}yield{type:"finish",reason:d??"stop"}}}}function oa(t){switch(t.provider){case"anthropic":{let e={apiKey:t.apiKey,model:t.model,baseURL:t.baseURL,headers:t.headers,sdk:t.sdk,fetchImpl:t.fetchImpl,...t.extras};return tr(e)}case"google":{let e={apiKey:t.apiKey,model:t.model,baseURL:t.baseURL,headers:t.headers,sdk:t.sdk,fetchImpl:t.fetchImpl,...t.extras};return cr(e)}case"dry-run":{let e={model:t.model,...t.extras};return et(e)}case"fallback":{let e={provider:t.provider,model:t.model,...t.extras};return dr(e)}case"openai":case"openrouter":case"groq":case"ollama":case"deepseek":case"xai":{let e={preset:t.provider,apiKey:t.apiKey,model:t.model,baseURL:t.baseURL,headers:t.headers,bodyExtras:t.bodyExtras,sdk:t.sdk,fetchImpl:t.fetchImpl,...t.extras};return lr(e)}default:{let e=t.provider;throw new Error(`createAdapter: unknown provider: ${String(e)}`)}}}ge();Q();_e();se();ve();Q();var fr=class{_version=0;_maxSize;_buf;_head=0;_size=0;constructor(e,n){if(n!==void 0&&n<1)throw new RangeError("maxSize must be >= 1");if(this._maxSize=n,n!==void 0){if(this._buf=new Array(n),e&&e.length>0){let r=Math.min(e.length,n),o=e.length-r;for(let s=0;s<r;s++)this._buf[s]=e[o+s];this._size=r}}else this._buf=e?[...e]:[],this._size=this._buf.length}get version(){return this._version}get size(){return this._size}at(e){if(!Number.isInteger(e))return;let n=e>=0?e:this._size+e;if(!(n<0||n>=this._size))return this._maxSize!==void 0?this._buf[(this._head+n)%this._maxSize]:this._buf[n]}append(e){this._rawAppend(e),this._version+=1}appendMany(e){if(e.length===0)return;let n=this._maxSize!==void 0&&e.length>this._maxSize?e.length-this._maxSize:0;for(let r=n;r<e.length;r++)this._rawAppend(e[r]);this._version+=1}clear(){if(this._size===0)return 0;let e=this._size;if(this._maxSize===void 0)this._buf.length=0;else for(let n=0;n<e;n++)this._buf[(this._head+n)%this._maxSize]=void 0;return this._head=0,this._size=0,this._version+=1,e}trimHead(e){if(!Number.isInteger(e)||e<0)throw new RangeError(`trimHead: n must be a non-negative integer (got ${e})`);if(e===0||this._size===0)return 0;let n=Math.min(e,this._size);if(this._maxSize===void 0)this._buf.splice(0,n);else{for(let r=0;r<n;r++)this._buf[(this._head+r)%this._maxSize]=void 0;this._head=(this._head+n)%this._maxSize}return this._size-=n,this._version+=1,n}slice(e,n){if(!Number.isInteger(e)||e<0)throw new RangeError(`slice: start must be a non-negative integer (got ${e})`);if(n!==void 0&&(!Number.isInteger(n)||n<0))throw new RangeError(`slice: stop must be a non-negative integer or undefined (got ${n})`);let r=n===void 0?this._size:Math.min(Math.max(n,0),this._size),o=Math.min(e,this._size);if(o>=r)return[];let s=r-o;if(this._maxSize===void 0)return this._buf.slice(o,r);let a=new Array(s);for(let i=0;i<s;i++)a[i]=this._buf[(this._head+o+i)%this._maxSize];return a}tail(e){if(!Number.isInteger(e)||e<0)throw new RangeError(`tail: n must be a non-negative integer (got ${e})`);if(e===0||this._size===0)return[];let n=Math.min(e,this._size);return this.slice(this._size-n,this._size)}toArray(){if(this._maxSize===void 0)return[...this._buf];let e=new Array(this._size);for(let n=0;n<this._size;n++)e[n]=this._buf[(this._head+n)%this._maxSize];return e}snapshot(){return this.toArray()}restore(e){if(this._maxSize===void 0){this._buf.length=0;for(let n=0;n<e.length;n++)this._buf.push(e[n]);this._size=this._buf.length}else{let n=this._maxSize;for(let s=0;s<n;s++)this._buf[s]=void 0;this._head=0;let r=Math.min(e.length,n),o=e.length-r;for(let s=0;s<r;s++)this._buf[s]=e[o+s];this._size=r}this._version+=1}_rawAppend(e){if(this._maxSize===void 0){this._buf.push(e),this._size=this._buf.length;return}this._size<this._maxSize?(this._buf[(this._head+this._size)%this._maxSize]=e,this._size+=1):(this._buf[this._head]=e,this._head=(this._head+1)%this._maxSize)}};function Ot(t){return t.subscribe(()=>{})}var sa=64;function $e(t,e={}){let{name:n,maxSize:r,versioning:o,guard:s,backend:a}=e,i=a??new fr(t,r),d=F(i.toArray(),{name:n,describeKind:"state",equals:(w,R)=>w===R,...o!=null?{versioning:o}:{},...s!=null?{guard:s}:{}});function c(){let w=i.toArray();ne(()=>{d.down([[X]],{internal:!0}),d.down([[D,w]],{internal:!0})})}let u=new Map,l=new Map,p=new Map;function f(w,R){return`${w}:${R===void 0?"END":R}`}function m(w){if(w.size<sa)return;let R=w.keys().next();if(R.done)return;let x=w.get(R.value);x!==void 0&&x.dispose(),w.delete(R.value)}function h(w){let R=i.version;try{return w()}finally{i.version!==R&&c()}}function g(w){if(!Number.isInteger(w)||w<0)throw new RangeError(`tail: n must be a non-negative integer (got ${w})`);let R=u.get(w);if(R!==void 0)return u.delete(w),u.set(w,R),R.node;m(u);let x=A([d],([M])=>{let L=M;return w===0||L.length===0?[]:L.slice(Math.max(0,L.length-w))},{initial:i.tail(w),describeKind:"derived"}),N=Ot(x);return u.set(w,{node:x,dispose:N}),x}function y(w,R){if(!Number.isInteger(w)||w<0)throw new RangeError(`slice: start must be a non-negative integer (got ${w})`);if(R!==void 0&&(!Number.isInteger(R)||R<0))throw new RangeError(`slice: stop must be a non-negative integer or undefined (got ${R})`);let x=f(w,R),N=l.get(x);if(N!==void 0)return l.delete(x),l.set(x,N),N.node;m(l);let M=A([d],([S])=>{let E=S;return R===void 0?E.slice(w):E.slice(w,R)},{initial:i.slice(w,R),describeKind:"derived"}),L=Ot(M);return l.set(x,{node:M,dispose:L}),M}function T(w){let R=p.get(w);if(R!==void 0)return R.node;let x=A([d,w],([M,L])=>{let S=M,E=Math.max(0,Math.trunc(L??0));return S.slice(E)},{initial:[],describeKind:"derived"}),N=Ot(x);return p.set(w,{node:x,dispose:N}),x}let b,v;function k(){b===void 0&&(b=te([d],(w,R,x)=>{let N=w[0],L=N!=null&&N.length>0?N.at(-1):x.prevData[0];if(L==null||L.length===0){R.down([[U]]);return}R.emit(L[L.length-1])},{name:n!=null?`${n}::lastValue`:"lastValue",describeKind:"derived",initial:i.size===0?void 0:i.at(i.size-1)}),v=A([d],([w])=>w.length>0,{name:n!=null?`${n}::hasLatest`:"hasLatest",describeKind:"derived",initial:i.size>0}),Ot(b),Ot(v))}let _={entries:d,get size(){return i.size},at(w){return i.at(w)},append(w){h(()=>i.append(w))},appendMany(w){w.length!==0&&h(()=>i.appendMany(w))},clear(){h(()=>i.clear())},trimHead(w){h(()=>i.trimHead(w))},withLatest(){return k(),d},get lastValue(){return k(),b},get hasLatest(){return k(),v},view(w){switch(w.kind){case"tail":return g(w.n);case"slice":return y(w.start,w.stop);case"fromCursor":return T(w.cursor)}},attach(w){let R=w.subscribe(x=>{for(let N of x)N[0]===D&&_.append(N[1])});return()=>R()},attachStorage(w){if(w.length===0)return()=>{};let R=new Map;for(let N of w)R.set(N,i.size);(async()=>{for(let N of w)if(typeof N.loadEntries=="function")try{let M=await Promise.resolve(N.loadEntries());M.entries.length>0&&i.size===0&&(i.restore(M.entries),R.set(N,M.entries.length),c());break}catch{}})();let x=d.subscribe(N=>{for(let M of N){if(M[0]!==D)continue;let L=M[1];for(let S of w){let E=R.get(S)??0;if(L.length<E){try{let K=S.appendEntries(L);K instanceof Promise&&K.catch(()=>{})}catch{}R.set(S,L.length);continue}if(L.length===E)continue;let I=L.slice(E);R.set(S,L.length);try{let K=S.appendEntries(I);K instanceof Promise&&K.catch(()=>{})}catch{}}}});return()=>x()},disposeAllViews(){for(let w of u.values())w.dispose();u.clear();for(let w of l.values())w.dispose();l.clear();for(let w of p.values())w.dispose();p.clear()},dispose(){for(let w of u.values())w.dispose();u.clear();for(let w of l.values())w.dispose();l.clear();for(let w of p.values())w.dispose();p.clear()}};return _}Z();function Ge(t){let e=t.input,n=e.regular+(e.cacheRead??0)+(e.cacheWrite5m??0)+(e.cacheWrite1h??0)+(e.cacheWriteOther??0)+(e.audio??0)+(e.image??0)+(e.video??0)+(e.toolUse??0);if(!e.extensions)return n;let r=0;for(let o of Object.values(e.extensions))r+=o;return n+r}function Ke(t){let e=t.output,n=e.regular+(e.reasoning??0)+(e.audio??0)+(e.predictionAccepted??0)+(e.predictionRejected??0);if(!e.extensions)return n;let r=0;for(let o of Object.values(e.extensions))r+=o;return n+r}function Jo(){return{input:{regular:0},output:{regular:0}}}function ia(t,e){let n=e?.logMax??1e3,r=$e(void 0,{name:e?.name?`${e.name}/stats`:"adapterStats",maxSize:n}),o=F(null,{name:"adapterStats/lastCall"}),s=A([r.entries],([h])=>h.length,{name:"adapterStats/totalCalls",initial:0}),a=A([r.entries],([h])=>h.reduce((g,y)=>g+Ge(y.usage),0),{name:"adapterStats/totalInputTokens",initial:0}),i=A([r.entries],([h])=>h.reduce((g,y)=>g+Ke(y.usage),0),{name:"adapterStats/totalOutputTokens",initial:0}),d=[Y(s),Y(a),Y(i)],c=h=>{r.append(h),o.emit(h)},u=()=>{r.clear(),o.emit(null)},l=Te(t,{invoke(h,g){let y=z(),T=ie(),b=t.model??g?.model??"",v=_=>(c(tt({provider:t.provider,model:t.model??g?.model??_.model??"",tier:g?.tier??_.tier,usage:_.usage??Fe(),startNs:y,startWallClockNs:T,method:"invoke"})),_),k=_=>{let w=_;c(tt({provider:t.provider,model:b,tier:g?.tier,usage:Fe(),startNs:y,startWallClockNs:T,method:"invoke",error:{type:w?.name??"Error",message:w?.message??String(_)}}))};return an(t.invoke(h,g),{onResp:v,onError:k,name:"adapterStats/invokeTap"})},async*stream(h,g){let y=z(),T=ie(),b=t.model??g?.model??"",v;try{for await(let k of t.stream(h,g))k.type==="usage"&&(v=k.usage),yield k;c(tt({provider:t.provider,model:b,tier:g?.tier,usage:v??Fe(),startNs:y,startWallClockNs:T,method:"stream"}))}catch(k){let _=k;throw c(tt({provider:t.provider,model:b,tier:g?.tier,usage:v??Fe(),startNs:y,startWallClockNs:T,method:"stream",error:{type:_?.name??"Error",message:_?.message??String(k)}})),k}}});be(l,"observableAdapter",t);let p=!1;return{adapter:l,stats:{lastCall:o,allCalls:r,totalCalls:s,totalInputTokens:a,totalOutputTokens:i,reset:u,dispose:()=>{if(!p){p=!0;for(let h of d)h();d.length=0}}}}}function aa(t,e){return t==null?0:typeof t=="number"?t:t.thresholdTokens!=null&&t.pricePerMillionAbove!=null&&e>t.thresholdTokens?t.pricePerMillionAbove:t.pricePerMillion}function ln(t="USD"){return{total:0,currency:t}}function mr(t,e,n){let r=Ge(t),o=e.currency??"USD",s=n?.withBreakdown===!0,a=s?{}:null,i=0,d=(g,y,T)=>{if(!y||T==null)return;let b=aa(T,r),v=y*b/1e6;i+=v,s&&(a[g]=(a[g]??0)+v)},c=t.input,u=e.input;if(u&&(d("input.regular",c.regular,u.regular),d("input.cacheRead",c.cacheRead??0,u.cacheRead),d("input.cacheWrite5m",c.cacheWrite5m??0,u.cacheWrite5m),d("input.cacheWrite1h",c.cacheWrite1h??0,u.cacheWrite1h),d("input.cacheWriteOther",c.cacheWriteOther??0,u.cacheWriteOther),d("input.audio",c.audio??0,u.audio),d("input.image",c.image??0,u.image),d("input.video",c.video??0,u.video),d("input.toolUse",c.toolUse??0,u.toolUse),c.extensions&&u.extensions))for(let[g,y]of Object.entries(c.extensions))d(`input.ext.${g}`,y,u.extensions[g]);let l=t.output,p=e.output;if(p&&(d("output.regular",l.regular,p.regular),d("output.reasoning",l.reasoning??0,p.reasoning),d("output.audio",l.audio??0,p.audio),d("output.predictionAccepted",l.predictionAccepted??0,p.predictionAccepted),d("output.predictionRejected",l.predictionRejected??0,p.predictionRejected),l.extensions&&p.extensions))for(let[g,y]of Object.entries(l.extensions))d(`output.ext.${g}`,y,p.extensions[g]);let f=n?.tier;if(f&&e.tierMultipliers){let g=e.tierMultipliers[f];if(g!=null&&(i*=g,s))for(let y of Object.keys(a))a[y]*=g}let m=t.auxiliary,h=e.auxiliary;if(m&&h)for(let[g,y]of Object.entries(m)){let T=h[g];if(T==null||!y)continue;let b=y*T;i+=b,s&&(a[`auxiliary.${g}`]=b)}return s?{total:i,currency:o,breakdown:a}:{total:i,currency:o}}function un(t,e){return`${t}::${e}`}function da(t){let e=new Map,n=new Map,r=(o,s,a)=>{e.set(un(o,s),{provider:o,model:s,pricing:a});let i=n.get(o);i||(i=new Set,n.set(o,i)),i.add(s)};if(t)for(let[o,s,a]of t)r(o,s,a);return{register:r,lookup(o,s){let a=e.get(un(o,s));if(a)return a.pricing;let i=n.get(o);if(!i)return;let d;for(let c of i)if(s.startsWith(c)&&(!d||c.length>d.key.length)){let u=e.get(un(o,c));u&&(d={key:c,pricing:u.pricing})}return d?.pricing},remove(o,s){let a=e.delete(un(o,s));if(a){let i=n.get(o);i?.delete(s),i&&i.size===0&&n.delete(o)}return a},entries(){let o=e.values();return(function*(){for(let{provider:s,model:a,pricing:i}of o)yield[s,a,i]})()}}}function ca(t,e="USD"){return(n,r)=>{let o=t.lookup(r.provider,r.model);return o?mr(n,o,{tier:r.tier,withBreakdown:r.withBreakdown}):ln(e)}}function ua(...t){return(e,n)=>{for(let r of t){let o=r(e,n);if(o.total!==0)return o}return t.length>0?t[0](e,n):ln()}}function la(t,e,n){return t?.pricing?mr(e,t.pricing,n):ln()}mt();Z();function gr(t,e={}){let n=e.breaker??_t(e),r=Te(t,{async invoke(o,s){if(!n.canExecute())throw new ze;try{let a=await Se(V(t.invoke(o,s)));return n.recordSuccess(),a}catch(a){throw n.recordFailure(a),a}},async*stream(o,s){if(!n.canExecute())throw new ze;try{for await(let a of t.stream(o,s))yield a;n.recordSuccess()}catch(a){throw n.recordFailure(a),a}}});return be(r,"withBreaker",t),{adapter:r,breaker:n}}ge();se();Q();Z();var pn=class extends Error{constructor(n,r,o){super(`Budget exhausted: ${n} (limit=${r}, observed=${o})`);this.which=n;this.limit=r;this.observed=o}name="BudgetExhaustedError"},hr=Object.freeze({calls:0,inputTokens:0,outputTokens:0,usd:0}),Yo=()=>({calls:0,inputTokens:0,outputTokens:0,usd:0});function yr(t,e){let n=$e(void 0,{name:e.name?`${e.name}/log`:"budgetGate/log",maxSize:e.logMax??1e3}),r=F(Yo(),{name:e.name?`${e.name}/totals`:"budgetGate/totals"}),o=A([r],([c])=>{let u=c;return!(e.caps.calls!=null&&u.calls>=e.caps.calls||e.caps.inputTokens!=null&&u.inputTokens>=e.caps.inputTokens||e.caps.outputTokens!=null&&u.outputTokens>=e.caps.outputTokens||e.caps.usd!=null&&u.usd>=e.caps.usd)},{name:e.name?`${e.name}/isOpen`:"budgetGate/isOpen",initial:!0});if(Y(o),e.onExhausted!=null){let c=e.onExhausted,u=!1,l=!0;o.subscribe(p=>{for(let f of p)if(f[0]===D){let m=f[1];if(u&&l&&m===!1){let h=Qo(r.cache??hr,e.caps);h&&c(h)}l=m,u=!0}})}let s=()=>{if(o.cache===!1){let c=r.cache??hr,u=Qo(c,e.caps);return new pn(u??"budget",e.caps[u??"calls"]??0,pa(c,u??"calls"))}},a=(c,u)=>{let l=t.provider,p=tt({provider:l,model:u.model,tier:u.tier,usage:c,startNs:u.startNs,method:u.method,...u.error?{error:u.error}:{}});n.append(p);let f=r.cache??hr,m=e.pricingFn?f.usd+e.pricingFn(c,{model:u.model,provider:l,tier:u.tier}).total:f.usd;r.emit({calls:f.calls+1,inputTokens:f.inputTokens+Ge(c),outputTokens:f.outputTokens+Ke(c),usd:m})},i=()=>{n.clear(),r.emit(Yo())},d=Te(t,{invoke(c,u){let l=s();if(l)return Promise.reject(l);let p=z(),f=t.model??u?.model??"",m=g=>(a(g.usage??Fe(),{model:t.model??u?.model??g.model??"",tier:u?.tier??g.tier,startNs:p,method:"invoke"}),g),h=g=>{let y=g;a(Fe(),{model:f,tier:u?.tier,startNs:p,method:"invoke",error:{type:y?.name??"Error",message:y?.message??String(g)}})};return an(t.invoke(c,u),{onResp:m,onError:h,name:"budgetGate/invokeTap"})},async*stream(c,u){let l=s();if(l)throw l;let p=z(),f;try{for await(let m of t.stream(c,u))m.type==="usage"&&(f=m.usage),yield m;a(f??Fe(),{model:t.model??u?.model??"",tier:u?.tier,startNs:p,method:"stream"})}catch(m){let h=m;throw a(f??Fe(),{model:t.model??u?.model??"",tier:u?.tier,startNs:p,method:"stream",error:{type:h?.name??"Error",message:h?.message??String(m)}}),m}}});return be(d,"withBudgetGate",t),{adapter:d,budget:{totals:r,isOpen:o,log:n,reset:i}}}function Qo(t,e){if(e.calls!=null&&t.calls>=e.calls)return"calls";if(e.inputTokens!=null&&t.inputTokens>=e.inputTokens)return"inputTokens";if(e.outputTokens!=null&&t.outputTokens>=e.outputTokens)return"outputTokens";if(e.usd!=null&&t.usd>=e.usd)return"usd"}function pa(t,e){switch(e){case"calls":return t.calls;case"inputTokens":return t.inputTokens;case"outputTokens":return t.outputTokens;case"usd":return t.usd}}Z();function fa(t,e){let n=e.mock??et({provider:t.provider,model:t.model}),r=typeof e.enabled=="boolean"?e.enabled:void 0,o=r===void 0?V(e.enabled):void 0,s;o&&(s=Y(o));let a=()=>r!==void 0?r:!!o?.cache,i=Te(t,{invoke(c,u){return a()?n.invoke(c,u):t.invoke(c,u)},stream(c,u){return a()?n.stream(c,u):t.stream(c,u)}});return be(i,"withDryRun",t),{adapter:i,dispose:()=>{s&&(s(),s=void 0)}}}function br(t){if(t==null||typeof t!="object")return;let e=t,n=e.status,r=ma(e.headers);if(n!==429&&n!==503&&!va(e.message))return;let o={},s=r("retry-after"),a=ha(s);a!=null&&(o.retryAfterMs=a);let i=r("anthropic-ratelimit-requests-reset");if(i){let f=Xo(i);f!=null&&(o.retryAfterMs=Math.max(o.retryAfterMs??0,f))}let d=r("anthropic-ratelimit-tokens-reset");if(d){let f=Xo(d);f!=null&&(o.retryAfterMs=Math.max(o.retryAfterMs??0,f))}let c=fn(r,"x-ratelimit-limit-requests");c!=null&&(o.rpmCap=c);let u=fn(r,"x-ratelimit-limit-tokens");u!=null&&(o.tpmCap=u);let l=fn(r,"x-ratelimit-remaining-requests"),p=fn(r,"x-ratelimit-remaining-tokens");if(l!=null&&c!=null&&c>0&&(o.usageHint??={},o.usageHint.rpm=1-l/c),p!=null&&u!=null&&u>0&&(o.usageHint??={},o.usageHint.tpm=1-p/u),o.retryAfterMs==null&&e.message){let f=ba(e.message);f!=null&&(o.retryAfterMs=f)}return e.headers&&(o.metadata={headers:ga(e.headers)}),o.retryAfterMs==null&&o.rpmCap==null&&o.tpmCap==null&&o.usageHint==null?o.metadata?o:void 0:o}function ma(t){if(!t)return()=>{};if(typeof t.get=="function"){let r=t;return o=>r.get(o)??r.get(o.toLowerCase())??void 0}let e=t,n={};for(let[r,o]of Object.entries(e)){let s=Array.isArray(o)?o.join(", "):o;s!=null&&(n[r.toLowerCase()]=s)}return r=>n[r.toLowerCase()]}function ga(t){let e={};if(typeof t.forEach=="function")return t.forEach((n,r)=>{e[r]=n}),e;for(let[n,r]of Object.entries(t))r!=null&&(e[n]=Array.isArray(r)?r.join(", "):r);return e}function fn(t,e){let n=t(e);if(n==null)return;let r=Number(n);return Number.isFinite(r)?r:void 0}function ha(t){if(!t)return;let e=t.trim(),n=Number(e);if(Number.isFinite(n)&&n>=0)return n*1e3;let r=Date.parse(e);if(Number.isFinite(r)){let o=r-Date.now();if(o>0)return o}}function Xo(t){if(!t)return;let e=Date.parse(t);if(Number.isFinite(e))return Math.max(0,e-Date.now())}var ya=/retry\s+(?:in|after)\s+(\d+(?:\.\d+)?)\s*(ms|s|sec|seconds?|m|min|minutes?)/i;function ba(t){let e=ya.exec(t);if(!e)return;let n=Number(e[1]);if(!Number.isFinite(n))return;let r=(e[2]??"s").toLowerCase();if(r==="ms")return n;if(r.startsWith("s"))return n*1e3;if(r.startsWith("m"))return n*6e4}var Ta=/rate\s*limit|too\s*many\s*requests|quota|429/i;function va(t){return!!t&&Ta.test(t)}ge();se();Q();mt();Z();Be();function Tr(t){let e=new Error(t);return e.name="AbortError",e}function es(t={}){let e=Math.max(1,t.burstMultiplier??1),n=t.clampCooldownMs??6e4,r=t.rpm!=null?V(t.rpm):F(Number.POSITIVE_INFINITY),o=t.tpm!=null?V(t.tpm):F(Number.POSITIVE_INFINITY),s=F(Number.POSITIVE_INFINITY,{name:"adaptiveRateLimiter/signalRpmCap"}),a=F(Number.POSITIVE_INFINITY,{name:"adaptiveRateLimiter/signalTpmCap"}),i=F({},{name:"adaptiveRateLimiter/lastSignal"}),d=A([r,s],([S,E])=>Math.min(Number(S??1/0),Number(E??1/0)),{name:"adaptiveRateLimiter/effectiveRpm"}),c=A([o,a],([S,E])=>Math.min(Number(S??1/0),Number(E??1/0)),{name:"adaptiveRateLimiter/effectiveTpm"}),u=ht(Number(r.cache??Number.POSITIVE_INFINITY),e),l=ht(Number(o.cache??Number.POSITIVE_INFINITY),e),p=!1,f=!1,m=d.subscribe(S=>{for(let E of S)if(E[0]===D){let I=Number(E[1]);Number.isFinite(I)&&I>0?(u=ht(I,e),p=!1):I===1/0?(u=ht(1/0,e),p=!1):I<=0&&(p=!0)}}),h=c.subscribe(S=>{for(let E of S)if(E[0]===D){let I=Number(E[1]);Number.isFinite(I)&&I>0?(l=ht(I,e),f=!1):I===1/0?(l=ht(1/0,e),f=!1):I<=0&&(f=!0)}}),g=0,y=new pe,T=new pe,b;t.adaptation!=null&&(b=V(t.adaptation).subscribe(E=>{for(let I of E)I[0]===D&&v(I[1])}));function v(S){if(i.emit(S),S.rpmCap!=null&&Number.isFinite(S.rpmCap)&&S.rpmCap>=0&&(s.emit(S.rpmCap),Number.isFinite(n)&&n>0&&y.start(n,()=>s.emit(Number.POSITIVE_INFINITY))),S.tpmCap!=null&&Number.isFinite(S.tpmCap)&&S.tpmCap>=0&&(a.emit(S.tpmCap),Number.isFinite(n)&&n>0&&T.start(n,()=>a.emit(Number.POSITIVE_INFINITY))),S.retryAfterMs!=null&&S.retryAfterMs>0){let E=z()+S.retryAfterMs*1e6;E>g&&(g=E)}}let k=F(0,{name:"adaptiveRateLimiter/pending"}),_=F(Number.POSITIVE_INFINITY,{name:"adaptiveRateLimiter/rpmAvailable"}),w=F(Number.POSITIVE_INFINITY,{name:"adaptiveRateLimiter/tpmAvailable"}),R=S=>{k.emit((k.cache??0)+S)},x=()=>{_.emit(u.available()),w.emit(l.available())};async function N(S={}){let E=S.requestCost??1,I=S.tokenCost??0,K=S.signal;R(1);try{for(;;){if(K?.aborted)throw Tr("AdaptiveRateLimiter.acquire aborted");let q=z();if(g>q){let C=Math.ceil((g-q)/1e6);await mn(C,K);continue}if(E>0&&p||I>0&&f){await mn(250,K);continue}let H=u,G=l;if(!H.tryConsume(E)){await mn(Zo(H,E),K);continue}if(!(I>0?G.tryConsume(I):!0)){H.putBack(E),await mn(Zo(G,I),K);continue}x();return}}finally{R(-1)}}function M(S){S>0?l.tryConsume(S):S<0&&l.putBack(-S),x()}function L(){m(),h(),b?.(),y.cancel(),T.cancel()}return{effectiveRpm:d,effectiveTpm:c,lastSignal:i,pending:k,rpmAvailable:_,tpmAvailable:w,acquire:N,recordUsage:M,recordSignal:v,dispose:L}}function ht(t,e){if(!Number.isFinite(t)||t===1/0)return Nt(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER);let n=Math.max(1,t*e),r=t/60;return Nt(n,r)}function Zo(t,e){let n=t.available(),r=Math.max(0,e-n);return r<=0?25:Math.min(5e3,Math.max(50,r*100))}function mn(t,e){return t<=0?Promise.resolve():e?.aborted?Promise.reject(Tr("AdaptiveRateLimiter.acquire aborted")):new Promise((n,r)=>{let o=new pe,s,a=()=>{o.cancel(),e&&s&&e.removeEventListener("abort",s)};o.start(t,()=>{a(),n()}),e&&(s=()=>{a(),r(Tr("AdaptiveRateLimiter.acquire aborted"))},e.addEventListener("abort",s,{once:!0}))})}Z();function vr(t,e={}){let n=e.limiter??es({name:e.name??"rateLimiter",rpm:e.rpm,tpm:e.tpm,adaptation:e.adaptation,burstMultiplier:e.burstMultiplier}),r=(a,i)=>e.costFn?e.costFn(a,i):0,o=a=>{let i=br(a);i&&n.recordSignal(i)},s=Te(t,{async invoke(a,i){let d=r(a,i);await n.acquire({requestCost:1,tokenCost:d,signal:i?.signal});try{let c=await Se(V(t.invoke(a,i))),u=c.usage??Jo(),p=Ge(u)+Ke(u)-d;return p>0&&n.recordUsage(p),c}catch(c){throw o(c),c}},async*stream(a,i){let d=r(a,i);await n.acquire({requestCost:1,tokenCost:d,signal:i?.signal});try{let c=0;for await(let l of t.stream(a,i))l.type==="usage"&&(c=Ge(l.usage)+Ke(l.usage)),yield l;let u=c-d;u>0&&n.recordUsage(u)}catch(c){throw o(c),c}}});return be(s,"withRateLimiter",t),{adapter:s,limiter:n}}mt();Z();var At=class extends Error{name="AllTiersExhaustedError";skipped;failed;constructor(e){let n=[];e.failed.size>0&&n.push(`failed=[${[...e.failed.keys()].join(",")}]`),e.skipped.length>0&&n.push(`skipped=[${e.skipped.map(r=>`${r.name}(${r.reason})`).join(",")}]`),super(`All LLM adapter tiers exhausted: ${n.join(" ")}`),this.skipped=e.skipped,this.failed=e.failed}};function wr(t,e={}){if(t.length===0)throw new RangeError("cascadingLlmAdapter: tiers must be non-empty");let n=t.map(s=>({name:s.name,adapter:s.adapter,filter:s.filter,breaker:s.breaker?"canExecute"in s.breaker?s.breaker:_t(s.breaker):void 0})),r=e.streamRetryBeforeFirstChunk??!0,o={provider:"cascading",model:void 0,async invoke(s,a){let i=[],d=new Map;for(let u=0;u<n.length;u++){let l=n[u];if(l.filter&&!l.filter(s,a)){i.push({name:l.name,reason:"filter"});continue}if(l.breaker&&!l.breaker.canExecute()){i.push({name:l.name,reason:"breaker"});continue}try{let p=await Se(V(l.adapter.invoke(s,a)));return l.breaker?.recordSuccess(),{...p,metadata:{...p.metadata??{},tier:l.name}}}catch(p){d.set(l.name,p),l.breaker?.recordFailure(p);let f=n[u+1];f&&e.onFallback?.(l.name,f.name,p)}}let c={skipped:i,failed:d};throw e.onExhausted?.(c),new At(c)},async*stream(s,a){let i=[],d=new Map;for(let u=0;u<n.length;u++){let l=n[u];if(l.filter&&!l.filter(s,a)){i.push({name:l.name,reason:"filter"});continue}if(l.breaker&&!l.breaker.canExecute()){i.push({name:l.name,reason:"breaker"});continue}let p=!1;try{for await(let f of l.adapter.stream(s,a))p=!0,yield f;l.breaker?.recordSuccess();return}catch(f){if(d.set(l.name,f),l.breaker?.recordFailure(f),p||!r)throw f;let m=n[u+1];m&&e.onFallback?.(l.name,m.name,f)}}let c={skipped:i,failed:d};throw e.onExhausted?.(c),new At(c)}};return be(o,`cascade[${n.map(s=>s.name).join(",")}]`),o}function wa(t,e,n){let r={name:t,adapter:e};return n?.breaker&&(r.breaker=n.breaker),n?.filter&&(r.filter=n.filter),r}Z();Be();function gn(t="aborted"){let e=new Error(t);return e.name="AbortError",e}function ts(t,e){return t<=0?Promise.resolve():e?.aborted?Promise.reject(gn()):new Promise((n,r)=>{let o=new pe,s,a=()=>{o.cancel(),e&&s&&e.removeEventListener("abort",s)};o.start(t,()=>{a(),n()}),e&&(s=()=>{a(),r(gn())},e.addEventListener("abort",s,{once:!0}))})}function kr(t,e={}){let n=e.attempts??3,r=e.baseDelayMs??500,o=e.maxDelayMs??1e4,s=e.strategy??"decorrelated",a=e.jitter??!0,i=e.shouldRetry??ka,d=e.retryStreaming??!0,c=(l,p)=>{if(s==="decorrelated"){let g=Math.min(o,Math.max(r,p*3));return r+Math.random()*(g-r)}let f=s==="exp"?r*2**(l-1):r*l,m=Math.min(o,f);if(!a)return m;let h=m*(.5+Math.random());return Math.min(o,h)},u=Te(t,{async invoke(l,p){if(p?.signal?.aborted)throw gn();let f,m=r;for(let h=1;h<=n;h++)try{return await Se(V(t.invoke(l,p)))}catch(g){if(f=g,h>=n||!i(g,h))throw g;let y=c(h,m);m=y,await ts(y,p?.signal)}throw f},async*stream(l,p){if(p?.signal?.aborted)throw gn();if(!d){for await(let h of t.stream(l,p))yield h;return}let f,m=r;for(let h=1;h<=n;h++){let g=!1;try{for await(let y of t.stream(l,p))g=!0,yield y;return}catch(y){if(f=y,g||h>=n||!i(y,h))throw y;let T=c(h,m);m=T,await ts(T,p?.signal)}}throw f}});return be(u,"withRetry",t),u}function ka(t,e){if(t==null)return!1;let n=t;return n.name==="LLMTimeoutError"?!0:n.name==="AbortError"||n.message==="aborted"||n.name==="DOMException"&&n.code!=null&&Number(n.code)===20||n.name==="BudgetExhaustedError"||n.name==="CircuitOpenError"?!1:n.status!=null?n.status===429||n.status>=500&&n.status<600:n.code&&typeof n.code=="string"&&/^E[A-Z]+$/.test(n.code)?!0:n.message?/network|timeout|socket|fetch|econn|eai_/i.test(n.message):!1}Z();Be();var yt=class extends Error{constructor(n){super(`LLM call timed out after ${n}ms`);this.ms=n}name="LLMTimeoutError"};function xr(t,e){if(e<=0)throw new RangeError("withTimeout: ms must be > 0");let n=s=>{let a=new AbortController,i=!1,d,c=new pe;return s&&(s.aborted?a.abort(s.reason):(d=()=>{c.cancel(),a.abort(s.reason)},s.addEventListener("abort",d,{once:!0}))),c.start(e,()=>{i=!0,a.abort(new yt(e))}),{signal:a.signal,cancel:()=>{c.cancel(),s&&d&&s.removeEventListener("abort",d)},timedOut:()=>i}},r=(s,a)=>{if(!a||s instanceof yt)throw s;let i=s;if(i?.name==="AbortError"||i?.name==="DOMException"&&Number(i.code)===20||s?.message==="aborted"){let c=new yt(e);throw c.cause=s,c}throw s},o=Te(t,{async invoke(s,a){let{signal:i,cancel:d,timedOut:c}=n(a?.signal);try{return await Se(V(t.invoke(s,{...a,signal:i})))}catch(u){return r(u,c())}finally{d()}},async*stream(s,a){let{signal:i,cancel:d,timedOut:c}=n(a?.signal);try{for await(let u of t.stream(s,{...a,signal:i}))yield u}catch(u){r(u,c())}finally{d()}}});return be(o,"withTimeout",t),o}function xa(t,e={}){let n={adapter:t},r=t;if(e.rateLimit){let o=vr(r,e.rateLimit);r=o.adapter,n.rateLimiter=o.limiter}if(e.budget){let o=yr(r,e.budget);r=o.adapter,n.budget=o.budget}if(e.breaker){let o=gr(r,e.breaker);r=o.adapter,n.breaker=o.breaker}if(e.timeoutMs!=null&&(r=xr(r,e.timeoutMs)),e.retry&&(r=kr(r,e.retry)),e.fallback){if(e.name==="fallback")throw new RangeError('resilientAdapter: `name` cannot be "fallback" \u2014 collides with the secondary tier label.');let o={};e.onFallback&&(o.onFallback=e.onFallback),e.onExhausted&&(o.onExhausted=e.onExhausted),r=wr([{name:e.name??"primary",adapter:r},{name:"fallback",adapter:e.fallback}],o)}return e.cache&&(r=Et(r,e.cache)),n.adapter=r,n}Le();ve();Z();se();Qe();Z();Be();function W(t,e){return De("ai",t,e)}function Ra(t){return t!=null&&typeof t.then=="function"}function Rr(t){return typeof t=="object"&&t!==null&&"subscribe"in t&&typeof t.subscribe=="function"&&"cache"in t}function Sa(t){return t!=null&&typeof t=="object"&&Symbol.asyncIterator in t&&typeof t[Symbol.asyncIterator]=="function"}var _a=3e4;function ns(t,e){if(t.status==="settled"){let r=t.cache;if(r!==void 0)return Promise.resolve(r)}let n=e?.timeoutMs??_a;return new Promise((r,o)=>{let s=new pe,a=t.subscribe(i=>{for(let d of i){if(d[0]===D){s.cancel(),a(),r(d[1]);return}if(d[0]===P){s.cancel(),a(),o(d[1]);return}if(d[0]===$){s.cancel(),a(),o(new Error("firstDataFromNode: completed without producing a value"));return}}});s.start(n,()=>{a(),o(new Error(`firstDataFromNode: timed out after ${n}ms`))})})}async function Ct(t){return Ra(t)?Ct(await t):Rr(t)?ns(t):Sa(t)?ns(V(t)):t}function bt(t){let e=t.match(/^```(?:json)?\s*([\s\S]*?)\s*```[\s\S]*$/);return e?e[1]:t}function Na(t,e){let n=V(t),r=e?.refreshTrigger!=null?V(e.refreshTrigger):null,o=e?.name!==void 0?{name:e.name}:void 0,s=ae("frozenContext",o);return r==null?te([n],(a,i,d)=>{if(d.store.emitted===!0)return;let u=a[0],l=u!=null&&u.length>0?u.at(-1):d.prevData[0];if(l!==void 0)return d.store.emitted=!0,i.emit(l),{invalidate:()=>{d.store.emitted=!1}}},{name:e?.name??"frozenContext",describeKind:"derived",initial:null,meta:W("frozen_context",{...s})}):te([n,r],(a,i,d)=>{let c=a[1];if(!(c!=null&&c.length>0))return;let l=a[0],p=l!=null&&l.length>0?l.at(-1):d.prevData[0];i.emit(p)},{name:e?.name??"frozenContext",describeKind:"derived",initial:null,meta:W("frozen_context",{...s})})}Q();se();Q();Z();function rs(t){return t!=null&&typeof t=="object"&&"content"in t?String(t.content):typeof t=="string"?t:String(t)}function Ma(t,e=200){return t.length<=e?t:`${t.slice(0,e)}\u2026`}function Sr(t,e,n,r){let o=r?.format??"text",s=r?.name??"prompt_node";r?.tools!==void 0&&o!=="raw"&&console.warn("promptNode: `tools` is set but `format !== 'raw'`. Tool calls in the response will be silently dropped \u2014 set `format: 'raw'` to receive the full LLMResponse with `toolCalls`.");let a=A(e,d=>{if(d.some(u=>u==null))return[];let c=typeof n=="string"?n:n(...d);return c?[{role:"user",content:c}]:[]},{name:`${s}::messages`,meta:W("prompt_node")});return he(a,d=>!d||d.length===0?F(null):oe(c=>{let u=!1,l=!1,p,f={model:r?.model,temperature:r?.temperature,maxTokens:r?.maxTokens,systemPrompt:r?.systemPrompt,...r?.tools!==void 0?{tools:r.tools}:{}};if(r?.abort){let y=Eo(r.abort);f.signal=y.signal,p=y.dispose}let m;try{m=t.invoke(d,f)}catch(y){return u=!0,c.down([[P,y]]),()=>{p?.()}}let g=V(m).subscribe(y=>{if(!(l||u))for(let T of y){if(u)return;if(T[0]===D){let b=T[1];if(o==="raw")c.emit(b);else try{let v=rs(b),k=o==="json"?JSON.parse(bt(v)):v;c.emit(k)}catch(v){let k=rs(b),_=new Error(`promptNode: failed to parse LLM response as JSON: ${v.message}
7
- Raw content (first 200 chars): ${Ma(k)}`);u=!0,c.down([[P,_]]);return}}else if(T[0]===P){u=!0,c.down([[P,T[1]]]);return}else if(T[0]===$){u=!0,c.down([[$]]);return}else c.down([T])}});return()=>{l=!0,g(),p?.()}},{name:`${s}::call`,meta:W("prompt_node::call")}),{name:`${s}::output`,meta:r?.meta?{...W("prompt_node::output"),...r.meta}:W("prompt_node::output")})}function _r(t,e,n,r){let o=n.name??r;return s=>{let a=F(s);return Sr(n.adapter,[a],i=>e(i),{name:o,format:"json",systemPrompt:t,model:n.model,temperature:n.temperature??0,maxTokens:n.maxTokens})}}function Nr(t,e){let n=e.maxExistingKeys??100,r=_r(t,o=>JSON.stringify({input:o.raw,existingKeys:o.existingKeys}),e,"llmExtractor");return(o,s)=>{let a=n===Number.POSITIVE_INFINITY?[...s.keys()]:[...s.keys()].slice(0,n);return r({raw:o,existingKeys:a})}}function Mr(t,e){let n=_r(t,r=>JSON.stringify({memories:r}),e,"llmConsolidator");return r=>{let o=[...r.entries()].map(([s,a])=>({key:s,value:a}));return n(o)}}_e();ge();Le();Q();Z();jt();ct();se();Q();Qe();Z();var ye={object:56,array:64,string:40,number:8,boolean:4,null:0,undefined:0,symbol:40,bigint:16,function:120,map:72,set:72,mapEntry:40,setEntry:24,date:24,regexp:48,error:64,url:80,promise:48,weakmap:40,weakset:40},Ea=Symbol.for("sizeof");function os(t){let e=new WeakSet,n=new WeakSet,r=[t],o=0;for(;r.length>0;){let s=r.pop();o+=Oa(s,e,n,r)}return o}function Oa(t,e,n,r){if(t==null)return 0;switch(typeof t){case"number":return ye.number;case"boolean":return ye.boolean;case"string":return ye.string+t.length*2;case"bigint":return ye.bigint+Aa(t);case"symbol":return ye.symbol;case"function":return e.has(t)?0:(e.add(t),ye.function);case"undefined":return 0}let s=t;if(e.has(s))return 0;e.add(s);let a=s[Ea];if(typeof a=="function")try{let c=a.call(s);if(typeof c=="number"&&Number.isFinite(c))return c}catch{}if(s instanceof Date)return ye.date;if(s instanceof RegExp)return ye.regexp+s.source.length*2;if(s instanceof Error){let c=s.message?s.message.length*2:0,u=s.stack?s.stack.length*2:0;return ye.error+c+u}if(typeof URL<"u"&&s instanceof URL)return ye.url+s.href.length*2;if(typeof Promise<"u"&&s instanceof Promise)return ye.promise;if(s instanceof WeakMap)return ye.weakmap;if(s instanceof WeakSet)return ye.weakset;if(s instanceof Map){let c=ye.map;for(let[u,l]of s)c+=ye.mapEntry,r.push(u),r.push(l);return c}if(s instanceof Set){let c=ye.set;for(let u of s)c+=ye.setEntry,r.push(u);return c}if(Array.isArray(s)){let c=ye.array+s.length*8;for(let u of s)r.push(u);return c}if(s instanceof ArrayBuffer)return n.has(s)?0:(n.add(s),s.byteLength);if(ArrayBuffer.isView(s)){let c=s;return n.has(c.buffer)?48:(n.add(c.buffer),c.buffer.byteLength+48)}let i=ye.object,d=Object.keys(s);for(let c of d){i+=ye.string+c.length*2;try{r.push(s[c])}catch{}}return i}function Aa(t){let e=t<0n?-t:t;if(e===0n)return 0;let n=e.toString(2).length;return Math.ceil(n/32)*8}function ss(t,e,n,r={}){let o=e in t.nodes,s=n in t.nodes;if(!o)return hn(e,n,"no-such-from");if(!s)return hn(e,n,"no-such-to");let a=r.maxDepth;if(a!=null&&(!Number.isInteger(a)||a<0))throw new Error("explainPath: maxDepth must be an integer >= 0");if(e===n){if(r.findCycle===!0){let c=Ca(t,e,r);if(c!=null)return c}let d=yn(e,t.nodes[e],0,r);return bn(e,n,[d])}if(a===0)return hn(e,n,"no-path");let i=is(t,e,n,a);return i.found?bn(e,n,as(t,i.pathOrder,r)):hn(e,n,i.truncated?"max-depth-exceeded":"no-path")}function is(t,e,n,r){let o=new Map,s=[{path:n,depth:0}],a=new Set([n]),i=0,d=!1;for(;i<s.length;){let l=s[i++];if(l.path===e)break;if(r!=null&&l.depth>=r){let h=t.nodes[l.path];h?.deps&&h.deps.length>0&&(d=!0);continue}let p=t.nodes[l.path];if(p==null)continue;let f=p.deps??[],m=new Map;for(let h=0;h<f.length;h++){let g=f[h];if(!g)continue;let y=m.get(g);y==null&&(y=[],m.set(g,y)),y.push(h)}for(let[h,g]of m)a.has(h)||(a.add(h),o.set(h,{from:l.path,depIndices:g}),s.push({path:h,depth:l.depth+1}))}if(!o.has(e))return{found:!1,pathOrder:[],truncated:d};let c=[{path:e}],u=e;for(;u!==n;){let l=o.get(u);if(l==null)return{found:!1,pathOrder:[],truncated:!1};c[c.length-1].depIndices=l.depIndices,c.push({path:l.from}),u=l.from}return{found:!0,pathOrder:c,truncated:!1}}function Ca(t,e,n){let r=t.nodes[e];if(r==null)return null;let o=r.deps??[],s=[];for(let i=0;i<o.length;i++)o[i]===e&&s.push(i);if(s.length>0){let i=yn(e,r,0,n);i.dep_index=s[0];let d=yn(e,r,1,n);return bn(e,e,[i,d])}let a=null;for(let i=0;i<o.length;i++){let d=o[i];if(!d||d===e)continue;let c=is(t,d,e,n.maxDepth);c.found&&(a==null||c.pathOrder.length<a.pathOrder.length)&&(a=c,a={found:!0,pathOrder:[{path:e,depIndices:[i]},...c.pathOrder],truncated:!1})}return a==null?null:bn(e,e,as(t,a.pathOrder,n))}function as(t,e,n){return e.map((r,o)=>{let s=t.nodes[r.path],a=yn(r.path,s,o,n);return r.depIndices!=null&&r.depIndices.length>0&&(a.dep_index=r.depIndices[0],r.depIndices.length>1&&(a.dep_indices=[...r.depIndices])),a})}function yn(t,e,n,r){let o={path:t,type:e.type,hop:n};e.status!==void 0&&(o.status=e.status),"value"in e&&(o.value=e.value),e.v!=null&&(o.v=e.v);let s=r.annotations?.get(t)??e.annotation;s!=null&&(o.annotation=s);let a=r.lastMutations?.get(t)??e.lastMutation;return a!=null&&(o.lastMutation=a),o}function bn(t,e,n){return ds(t,e,!0,"ok",n)}function hn(t,e,n){return ds(t,e,!1,n,[])}function ds(t,e,n,r,o){let s=La(t,e,n,r,o);return{from:t,to:e,found:n,reason:r,steps:o,text:s,toJSON(){return{from:t,to:e,found:n,reason:r,steps:o}}}}function La(t,e,n,r,o){if(!n)switch(r){case"no-such-from":return`explainPath: no node named "${t}"`;case"no-such-to":return`explainPath: no node named "${e}"`;case"max-depth-exceeded":return`explainPath: no path from "${t}" to "${e}" within maxDepth`;default:return`explainPath: no path from "${t}" to "${e}"`}let s=[`Causal path: ${t} \u2192 ${e} (${o.length} step(s))`];for(let a of o){let d=` ${a.hop===0?"\xB7":"\u2193"} ${a.path} (${a.type}${a.status?`/${a.status}`:""})`;if(s.push(d),"value"in a&&s.push(` value: ${Da(a.value)}`),a.annotation!=null&&s.push(` annotation: ${a.annotation}`),a.lastMutation!=null){let c=a.lastMutation.actor;s.push(` actor: ${c.type}${c.id?`:${c.id}`:""}`)}}return s.join(`
8
- `)}function Da(t){if(t===void 0)return"<sentinel>";if(t===null)return"null";if(typeof t=="string")return JSON.stringify(t);if(typeof t=="number"||typeof t=="boolean"||typeof t=="bigint")return String(t);try{let e=JSON.stringify(t);return e.length>80?`${e.slice(0,77)}...`:e}catch{return String(t)}}jt();_e();ge();ct();se();Le();ve();Q();ge();function Er(t,e){if(Object.is(t,e))return!0;if(t==null||e==null||typeof t!="object"||typeof e!="object")return!1;if(Array.isArray(t)){if(!Array.isArray(e)||t.length!==e.length)return!1;for(let s=0;s<t.length;s++)if(!Er(t[s],e[s]))return!1;return!0}if(Array.isArray(e))return!1;let n=Object.keys(t),r=Object.keys(e);if(n.length!==r.length)return!1;let o=new Set(r);for(let s of n)if(!o.has(s)||!Er(t[s],e[s]))return!1;return!0}function cs(t,e){return`${t}\0${e}`}function Or(t,e){let n=[],r=new Set(t.subgraphs),o=new Set(e.subgraphs),s=[];for(let g of o)r.has(g)||s.push(g);s.sort();for(let g of s)n.push({type:"subgraph-mounted",path:g});let a=new Set(Object.keys(t.nodes)),i=new Set(Object.keys(e.nodes)),d=[];for(let g of i)a.has(g)||d.push(g);d.sort();for(let g of d)n.push({type:"node-added",path:g,node:{...e.nodes[g]}});let c=[];for(let g of i){if(!a.has(g))continue;let y=t.nodes[g]?.meta,T=e.nodes[g]?.meta;y==null&&T==null||Er(y??{},T??{})||c.push(g)}c.sort();for(let g of c)n.push({type:"node-meta-changed",path:g,prevMeta:t.nodes[g]?.meta??{},nextMeta:e.nodes[g]?.meta??{}});let u=new Map;for(let g of t.edges)u.set(cs(g.from,g.to),g);let l=new Map;for(let g of e.edges)l.set(cs(g.from,g.to),g);let p=[];for(let[g,y]of l)u.has(g)||p.push(y);p.sort((g,y)=>g.from<y.from?-1:g.from>y.from?1:g.to<y.to?-1:g.to>y.to?1:0);for(let g of p)n.push({type:"edge-added",from:g.from,to:g.to});let f=[];for(let[g,y]of u)l.has(g)||f.push(y);f.sort((g,y)=>g.from<y.from?-1:g.from>y.from?1:g.to<y.to?-1:g.to>y.to?1:0);for(let g of f)n.push({type:"edge-removed",from:g.from,to:g.to});let m=[];for(let g of a)i.has(g)||m.push(g);m.sort();for(let g of m)n.push({type:"node-removed",path:g});let h=[];for(let g of r)o.has(g)||h.push(g);h.sort();for(let g of h)n.push({type:"subgraph-unmounted",path:g});return{events:n,flushedAt_ns:z()}}Z();Be();Yn();Ln();ve();function us(t,e){let n=e?.topN??10,r=t.describe({detail:"standard"}),o=[],s=t._collectObserveTargets;typeof s=="function"&&s.call(t,"",o);let a=new Map;for(let[p,f]of o)a.set(p,f);let i=[];for(let[p,f]of Object.entries(r.nodes)){let m=a.get(p),h=m instanceof le?m:null,g=h?os(h.cache):0,y=h?h._sinkCount:0,T=f.deps?.length??0,b=f.type==="effect"&&y===0,v=y===0?f.type==="effect"?"orphan-effect":f.type==="derived"?"idle-derived":f.type==="producer"?"idle-producer":null:null;i.push({path:p,type:f.type,status:f.status??"unknown",valueSizeBytes:g,subscriberCount:y,depCount:T,isOrphanEffect:b,orphanKind:v})}let d=i.reduce((p,f)=>p+f.valueSizeBytes,0),c=(p,f)=>[...i].sort(f??((m,h)=>h[p]-m[p])).slice(0,n),u=i.filter(p=>p.orphanKind!=null),l=i.filter(p=>p.isOrphanEffect);return{nodeCount:i.length,edgeCount:r.edges.length,subgraphCount:r.subgraphs.length,nodes:i,totalValueSizeBytes:d,hotspots:{byValueSize:c("valueSizeBytes"),bySubscriberCount:c("subscriberCount"),byDepCount:c("depCount")},orphans:u,orphanEffects:l}}var de="::",Ne="__meta__",rt=1;function ls(t,e){let n=Math.max(16,t.size*4),r=0;for(;t.size>0;){if(r++>=n){console.error(`[Graph "${e}".destroy] disposer drain exceeded cap (${n}); ${t.size} disposer(s) discarded`),t.clear();return}let o=t.values().next();if(o.done)return;let s=o.value;t.delete(s);try{s()}catch(a){console.error(`[Graph "${e}".destroy] disposer threw:`,a)}}}function hs(t){return t!=null&&typeof t=="object"&&"cache"in t&&typeof t.subscribe=="function"&&typeof t.down=="function"}function Ia(t){if(t!=null)return hs(t)?t.cache:t}function ot(t){return t!=null&&typeof t=="object"&&"cache"in t&&typeof t.subscribe=="function"&&typeof t.down=="function"}function Ue(t){return ot(t)?t.cache??"":t}function ps(t){return ot(t)?t.cache??0:t}function fs(t){return ot(t)?t.cache??!1:t}function Pa(t){let e=[];for(let n of Object.keys(t).sort()){let r=t[n].v;r!=null&&e.push(`${n} ${r.id} ${r.version}`)}return e.join(`
9
- `)}function ms(t){if(t.version!==rt)throw new Error(`unsupported snapshot version ${String(t.version)} (expected ${rt})`);for(let e of["name","nodes","edges","subgraphs"])if(!(e in t))throw new Error(`snapshot missing required key "${e}"`);if(typeof t.name!="string")throw new TypeError("snapshot 'name' must be a string");if(typeof t.nodes!="object"||t.nodes===null||Array.isArray(t.nodes))throw new TypeError("snapshot 'nodes' must be an object");if(!Array.isArray(t.edges))throw new TypeError("snapshot 'edges' must be an array");if(!Array.isArray(t.subgraphs))throw new TypeError("snapshot 'subgraphs' must be an array")}function Ga(t,e){let n=new WeakMap,r=(o,s)=>{if(Object.is(o,s))return!0;if(o==null||s==null||typeof o!="object"||typeof s!="object")return!1;let a=n.get(o);if(a==null&&(a=new WeakSet,n.set(o,a)),a.has(s))return!0;a.add(s);let i=o.constructor,d=s.constructor;if(i!==d)return!1;if(o instanceof Date)return o.getTime()===s.getTime();if(o instanceof RegExp)return o.source===s.source&&o.flags===s.flags;if(Array.isArray(o)){let p=s;if(o.length!==p.length)return!1;for(let f=0;f<o.length;f++)if(!r(o[f],p[f]))return!1;return!0}if(o instanceof Map){let p=s;if(o.size!==p.size)return!1;for(let[f,m]of o)if(!p.has(f)||!r(m,p.get(f)))return!1;return!0}if(o instanceof Set){let p=s;if(o.size!==p.size)return!1;for(let f of o){let m=!1;for(let h of p)if(r(f,h)){m=!0;break}if(!m)return!1}return!0}if(ArrayBuffer.isView(o)){let p=o,f=s;if(p.length!==f.length)return!1;for(let m=0;m<p.length;m++)if(p[m]!==f[m])return!1;return!0}let c=Object.keys(o),u=Object.keys(s);if(c.length!==u.length)return!1;let l=new Set(u);for(let p of c)if(!l.has(p)||!r(o[p],s[p]))return!1;return!0};return r(t,e)}function Fa(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Tn(t){let e="^";for(let n=0;n<t.length;n+=1){let r=t[n];if(r==="*"){e+=".*";continue}if(r==="?"){e+=".";continue}if(r==="["){let o=t.indexOf("]",n+1);if(o<=n+1){e+="\\[";continue}let s=t.slice(n+1,o);s.startsWith("!")&&(s=`^${s.slice(1)}`),s=s.replace(/\\/g,"\\\\"),e+=`[${s}]`,n=o;continue}e+=Fa(r)}return e+="$",new RegExp(e)}var $a={data:"\x1B[32m",dirty:"\x1B[33m",resolved:"\x1B[36m",invalidate:"\x1B[93m",pause:"\x1B[90m",resume:"\x1B[96m",complete:"\x1B[34m",error:"\x1B[31m",teardown:"\x1B[91m",derived:"\x1B[35m",path:"\x1B[90m",reset:"\x1B[0m"},ja={data:"",dirty:"",resolved:"",invalidate:"",pause:"",resume:"",complete:"",error:"",teardown:"",derived:"",path:"",reset:""};function Ar(t){if(typeof t=="string")return JSON.stringify(t);if(typeof t=="number"||typeof t=="boolean"||t==null)return String(t);try{return JSON.stringify(t)}catch{return"[unserializable]"}}function Ba(t){return t==="none"?ja:t==="ansi"||t==null?$a:{data:t.data??"",dirty:t.dirty??"",resolved:t.resolved??"",invalidate:t.invalidate??"",pause:t.pause??"",resume:t.resume??"",complete:t.complete??"",error:t.error??"",teardown:t.teardown??"",derived:t.derived??"",path:t.path??"",reset:t.reset??""}}function gs(t){if(t==null)return{};let e=t.detail;return e==="full"?{...t,structured:t.structured??!0,timeline:t.timeline??!0,causal:t.causal??!0,derived:t.derived??!0}:e==="minimal"?{...t,structured:t.structured??!0}:t.format==="stage-log"?{...t,structured:t.structured??!0,timeline:t.timeline??!0}:t}function Va(t,e,n){for(let r=0;r<t.length;r++){let o=t.charCodeAt(r);if(o<32||o===127)throw new Error(`Graph "${e}": ${n} "${t}" must not contain control character (U+${o.toString(16).padStart(4,"0").toUpperCase()} at index ${r})`)}}function Cr(t,e,n){if(t==="")throw new Error(`Graph "${e}": ${n} name must be non-empty`);if(t.includes(de))throw new Error(`Graph "${e}": ${n} "${t}" must not contain '${de}' (path separator)`);if(t===Ne)throw new Error(`Graph "${e}": ${n} name "${Ne}" is reserved for meta companion paths`);Va(t,e,n)}function Ka(t,e){if(t==="")throw new Error(`Graph "${e}": resolve path must be non-empty`);let n=t.split(de);for(let r of n)if(r==="")throw new Error(`Graph "${e}": resolve path has empty segment`);return n}function za(t,e){let n=!1;for(let o of t)if(!e.isMetaPassthrough(o[0])){n=!0;break}return n?t.filter(o=>e.isMetaPassthrough(o[0])):t}function ys(t){for(let e of t._mounts.values())ys(e);for(let e of t._nodes.values())try{e.down([[ue]],{internal:!0})}catch{}}var ce=class t{name;opts;config;_nodes=new Map;_nodeToName=new WeakMap;_mounts=new Map;_parent=void 0;_storageDisposers=new Set;_disposers=new Set;_destroyed=!1;_topology;_topologyEmitters=new Set;_factory;_factoryArgs;constructor(e,n){if(e==="")throw new Error("Graph name must be non-empty");if(e.includes(de))throw new Error(`Graph name must not contain '${de}' (got "${e}")`);if(e===Ne)throw new Error(`Graph name "${Ne}" is reserved for meta companion paths`);this.name=e,this.opts=Object.freeze({...n??{}}),this.config=n?.config??ut,this._traceRing=new Xe(n?.traceCapacity??1e3),n?.versioning!=null&&this.setVersioning(n.versioning),typeof n?.factory=="string"&&(this._factory=n.factory,n.factoryArgs!==void 0&&(this._factoryArgs=n.factoryArgs))}tagFactory(e,n){return this._factory=e,this._factoryArgs=n,this}ancestors(e=!0){let n=[],r=e?this:this._parent;for(;r!=null;)n.push(r),r=r._parent;return n}get topology(){return this._topology==null&&(this._topology=oe(e=>{let n=r=>{e.emit(r)};return this._topologyEmitters.add(n),()=>{this._topologyEmitters.delete(n)}},{name:`${this.name}_topology`})),this._topology}_emitTopology(e){if(!(this._topology==null||this._topologyEmitters.size===0))for(let n of this._topologyEmitters)n(e)}nameOf(e){return this._nodeToName.get(e)}add(e,n){let r=e.name,o=n?.name??r;if(o==null||o==="")throw new Error(`Graph "${this.name}": graph.add requires a non-empty name \u2014 pass via opts.name or set it on the node (e.g. state(0, { name: "x" }))`);let s=o,a=n?.annotation;if(Cr(s,this.name,"add"),this._mounts.has(s))throw new Error(`Graph "${this.name}": name "${s}" is already a mount point`);if(this._nodes.has(s))throw new Error(`Graph "${this.name}": node "${s}" already exists`);let i=this._nodeToName.get(e);if(i!==void 0)throw new Error(`Graph "${this.name}": node instance already registered as "${i}"`);return this._nodes.set(s,e),this._nodeToName.set(e,s),this._emitTopology({kind:"added",name:s,nodeKind:"node"}),a!=null&&(this._annotations.set(s,a),this.config.inspectorEnabled&&this._traceRing.push({path:s,annotation:a,timestamp_ns:z()})),e}setVersioning(e){if(e!=null)for(let n of this._nodes.values())n instanceof le&&n._applyVersioning(e)}remove(e){Cr(e,this.name,"remove");let n=this._mounts.get(e);if(n){let s={kind:"mount",nodes:[],mounts:[]},a=[];n._collectObserveTargets("",a);for(let[i,d]of a)i.includes(`${de}${Ne}${de}`)||s.nodes.push(i);return s.nodes.sort(),s.mounts.push(e),s.mounts.push(...n._collectSubgraphs(`${e}${de}`)),this._mounts.delete(e),n._parent=void 0,ys(n),this._emitTopology({kind:"removed",name:e,nodeKind:"mount",audit:s}),s}let r=this._nodes.get(e);if(!r)throw new Error(`Graph "${this.name}": unknown node or mount "${e}"`);this._nodes.delete(e),this._nodeToName.delete(r),r.down([[ue]],{internal:!0});let o={kind:"node",nodes:[e],mounts:[]};return this._emitTopology({kind:"removed",name:e,nodeKind:"node",audit:o}),o}removeAll(e){let n=typeof e=="function"?e:(()=>{let s=Tn(e);return a=>s.test(a)})(),r={kind:"mount",nodes:[],mounts:[]},o=[...this._nodes.keys(),...this._mounts.keys()].filter(s=>n(s));for(let s of o){let a=this.remove(s);r.nodes.push(...a.nodes),r.mounts.push(...a.mounts)}return r.nodes.sort(),r.mounts.sort(),r}[Symbol.iterator](){let e=[...this._nodes.keys()].sort(),n=this._nodes,r=0;return{[Symbol.iterator](){return this},next(){if(r>=e.length)return{value:void 0,done:!0};let o=e[r++];return{value:[o,n.get(o)],done:!1}}}}node(e){if(e==="")throw new Error(`Graph "${this.name}": node name must be non-empty`);if(e.includes(de))return this.resolve(e);let n=this._nodes.get(e);if(!n)throw new Error(`Graph "${this.name}": unknown node "${e}"`);return n}get(e){return this.node(e).cache}set(e,n,r){let o=r?.internal===!0;this.node(e).down([[D,n]],{actor:r?.actor,internal:o,delivery:"write"})}setAll(e,n){let r=Symbol.iterator in e?e:Object.entries(e);ne(()=>{for(let[o,s]of r)this.set(o,s,n)})}invalidate(e,n){let r=n?.internal===!0;this.node(e).down([[Oe]],{actor:n?.actor,internal:r,delivery:"write"})}error(e,n,r){let o=r?.internal===!0;this.node(e).down([[P,n]],{actor:r?.actor,internal:o,delivery:"write"})}complete(e,n){let r=n?.internal===!0;this.node(e).down([[$]],{actor:n?.actor,internal:r,delivery:"write"})}edges(e){let n=e?.recursive===!0,r=new Map;if(!n){for(let[d,c]of this._nodes)r.set(c,d);let i=[];for(let[d,c]of this._nodes)if(c instanceof le)for(let u of c._deps){let l=r.get(u.node);l!=null&&i.push([l,d])}return i.sort((d,c)=>d[0]<c[0]?-1:d[0]>c[0]?1:d[1]<c[1]?-1:d[1]>c[1]?1:0),i}let o=[];this._collectObserveTargets("",o);let s=new Map;for(let[i,d]of o)s.set(d,i);let a=[];for(let[i,d]of o)if(d instanceof le)for(let c of d._deps){let u=s.get(c.node);u!=null&&a.push([u,i])}return a.sort((i,d)=>i[0]<d[0]?-1:i[0]>d[0]?1:i[1]<d[1]?-1:i[1]>d[1]?1:0),a}mount(e,n){if(n===void 0){let o=new t(e);return this.mount(e,o)}if(typeof n=="function"){let o=new t(e);return n(o),this.mount(e,o)}let r=n;if(Cr(e,this.name,"mount"),this._nodes.has(e))throw new Error(`Graph "${this.name}": cannot mount at "${e}" \u2014 node with that name exists`);if(this._mounts.has(e))throw new Error(`Graph "${this.name}": mount "${e}" already exists`);if(r===this)throw new Error(`Graph "${this.name}": cannot mount a graph into itself`);if(r._parent!=null)throw new Error(`Graph "${this.name}": this child graph is already mounted on "${r._parent.name}"`);for(let o=this;o!=null;o=o._parent)if(o===r)throw new Error(`Graph "${this.name}": mount("${e}", \u2026) would create a mount cycle`);return this._mounts.set(e,r),r._parent=this,this._emitTopology({kind:"added",name:e,nodeKind:"mount"}),r}resolve(e){let n=Ka(e,this.name);return this._resolveFromSegments(n)}tryResolve(e){try{return this.resolve(e)}catch{return}}_resolveFromSegments(e){let n=e;if(n[0]===this.name&&(n=n.slice(1),n.length===0))throw new Error(`Graph "${this.name}": resolve path ends at graph name only`);let r=n[0],o=n.slice(1);if(o.length===0){let i=this._nodes.get(r);if(i)return i;throw this._mounts.has(r)?new Error(`Graph "${this.name}": path ends at subgraph "${r}" \u2014 not a node (GRAPHREFLY-SPEC \xA73.5)`):new Error(`Graph "${this.name}": unknown name "${r}"`)}let s=this._nodes.get(r);if(s&&o.length>0&&o[0]===Ne)return this._resolveMetaChainFromNode(s,o,n.join(de));let a=this._mounts.get(r);if(!a)throw this._nodes.has(r)?new Error(`Graph "${this.name}": "${r}" is a node; trailing path "${o.join(de)}" is invalid`):new Error(`Graph "${this.name}": unknown mount or node "${r}"`);return a.resolve(o.join(de))}_resolveMetaChainFromNode(e,n,r){let o=e,s=0,a=[...n];for(;s<a.length;){if(a[s]!==Ne)throw new Error(`Graph "${this.name}": expected ${Ne} segment in meta path "${r}"`);if(s+1>=a.length)throw new Error(`Graph "${this.name}": meta path requires a key after ${Ne} in "${r}"`);let i=a[s+1],d=o.meta[i];if(!d)throw new Error(`Graph "${this.name}": unknown meta "${i}" in path "${r}"`);o=d,s+=2}return o}signal(e,n){if(n?.internal!==!0){for(let o of e)if(this.config.messageTier(o[0])===3)throw new Error(`Graph "${this.name}": Graph.signal() rejects tier-3 messages (DATA / RESOLVED). Broadcast is for control-plane tiers (START / DIRTY / INVALIDATE / PAUSE / RESUME / COMPLETE / ERROR / TEARDOWN). For per-node value writes, use Graph.set or graph.node(name).down(...).`)}let r=[];if(this._signalDeliver(e,n??{},new Set,r),r.length>0)throw r[0]}_signalDeliver(e,n,r,o){for(let d of this._mounts.values())d._signalDeliver(e,n,r,o);let a=n.internal===!0?{internal:!0}:{actor:n.actor,delivery:"signal"},i=za(e,this.config);for(let d of[...this._nodes.keys()].sort()){let c=this._nodes.get(d);if(!r.has(c)){r.add(c);try{c.down(e,a)}catch(u){if(u instanceof Ce)throw u;o.push(u)}i.length!==0&&this._signalMetaSubtree(c,i,r,a,o)}}}_signalMetaSubtree(e,n,r,o,s){for(let a of Object.keys(e.meta).sort()){let i=e.meta[a];if(!r.has(i)){r.add(i);try{i.down(n,o)}catch(d){if(d instanceof Ce)throw d;s.push(d)}this._signalMetaSubtree(i,n,r,o,s)}}}describe(e){if(e?.reactive==="diff")return this._describeReactiveDiff(e);if(e?.reactive===!0)return this._describeReactive(e);let n=Ia(e?.actor),r=e?.filter;if(e?.detail!=null&&e?.fields!=null)throw new TypeError("Graph.describe(): pass either `detail` or `fields`, not both. `detail: 'spec'` is the canonical spec projection; use `fields` only when you need a custom subset.");let o=Wn(e?.detail,e?.fields),s=e?.detail==="spec",a=o,i=[];this._collectObserveTargets("",i);let d=new Map;for(let[v,k]of i)d.set(k,v);let c=[];{let v=i.map(([,w])=>w),k=new Set(d.values()),_=0;for(;v.length>0;){let w=v.shift();if(w instanceof le)for(let R of w._deps){let x=R.node;if(d.has(x))continue;let N=x.name??"",M=N;if(!M||k.has(M))if(N){let L=2;for(;k.has(`${N}#${L}`);)L++;M=`${N}#${L}`}else for(M=`__internal__/${_++}`;k.has(M);)M=`__internal__/${_++}`;d.set(x,M),k.add(M),c.push([M,x]),v.push(x)}}}let u=[...i,...c],l={};for(let[v,k]of u){if(n!=null&&!k.allowsObserve(n))continue;let _=Hn(k,a,s),w=k instanceof le?k._deps.map(M=>d.get(M.node)??M.node.name??""):[],{name:R,...x}=_,N={...x,deps:w};if(!s){let M=this._annotations.get(v);M!=null&&(N.annotation=M)}if(r!=null)if(typeof r=="function"){let M=r;if(!(M.length>=2?M(v,N):M(N)))continue}else{let M=!0;for(let[L,S]of Object.entries(r)){let E=L==="deps_includes"?"depsIncludes":L==="meta_has"?"metaHas":L;if(E==="depsIncludes"){if(!N.deps.includes(String(S))){M=!1;break}continue}if(E==="metaHas"){if(!Object.hasOwn(N.meta??{},String(S))){M=!1;break}continue}if(N[E]!==S){M=!1;break}}if(!M)continue}l[v]=N}let p=new Set(Object.keys(l)),f=[];for(let[v,k]of u)if(k instanceof le)for(let _ of k._deps){let w=d.get(_.node);w!=null&&f.push([w,v])}f.sort((v,k)=>v[0]<k[0]?-1:v[0]>k[0]?1:v[1]<k[1]?-1:v[1]>k[1]?1:0);let m=f.map(([v,k])=>({from:v,to:k}));(n!=null||r!=null)&&(m=m.filter(v=>p.has(v.from)&&p.has(v.to)));let h=this._collectSubgraphs(""),g=n!=null||r!=null?h.filter(v=>{let k=`${v}${de}`;return[...p].some(_=>_===v||_.startsWith(k))}):h,y=this,T=e;return{name:this.name,nodes:l,edges:m,subgraphs:g,...this._factory!==void 0?{factory:this._factory}:{},...this._factoryArgs!==void 0?{factoryArgs:this._factoryArgs}:{},expand(v){let k={...T};return Array.isArray(v)?(k.fields=v,k.detail=void 0):(k.detail=v,k.fields=void 0),y.describe(k)}}}_collectSubgraphs(e){let n=[];for(let r of[...this._mounts.keys()].sort()){let o=e===""?r:`${e}${r}`;n.push(o),n.push(...this._mounts.get(r)._collectSubgraphs(`${o}${de}`))}return n}resourceProfile(e){return us(this,e)}reachable(e,n,r={}){return r.withDetail===!0?Lr(this.describe(),e,n,{...r,withDetail:!0}):Lr(this.describe(),e,n,r)}explain(e,n,r){return r?.reactive===!0?this._explainReactive(e,n,r):this._explainStatic(Ue(e),Ue(n),{...r?.maxDepth!==void 0?{maxDepth:ps(r.maxDepth)}:{},...r?.findCycle!==void 0?{findCycle:fs(r.findCycle)}:{}})}_explainStatic(e,n,r){let o=this.describe({detail:"full"}),s=new Map(this._annotations),a=new Map;for(let[i,d]of Object.entries(o.nodes))d.lastMutation!=null&&a.set(i,d.lastMutation);return ss(o,e,n,{...r?.maxDepth!=null?{maxDepth:r.maxDepth}:{},...r?.findCycle===!0?{findCycle:!0}:{},annotations:s,lastMutations:a})}_describeReactive(e){let n={...e,reactive:!1},r=e.reactiveName??"describe",o=0,s=F(o,{name:`${r}_version`}),a=this.observe({timeline:!0,structured:!0}),i=!1,d=!1,c=()=>{i||d||(i=!0,dt(()=>{i=!1,!d&&(o+=1,s.emit(o))}))},u=a.onEvent(T=>{let b=T.type;b!=="data"&&b!=="error"&&b!=="complete"&&b!=="teardown"||c()}),l=[],p=new WeakSet,f=T=>{if(p.has(T)||d)return;p.add(T);let b=T.topology.subscribe(v=>{for(let k of v){if(k[0]!==D)continue;let _=k[1];if(c(),_.kind==="added"&&_.nodeKind==="mount"){let w=T._mounts.get(_.name);w!=null&&f(w)}}});l.push(b);for(let v of T._mounts.keys()){let k=T._mounts.get(v);k!=null&&f(k)}};f(this);let m,h=e.actor;hs(h)&&(m=h.subscribe(T=>{let b=!1,v=!1;for(let k of T){let _=k[0];_===D?b=!0:(_===$||_===P||_===ue)&&(v=!0)}b&&c(),v&&(m?.(),m=void 0,c())}));let g;try{g=A([s],()=>this.describe(n),{name:r,describeKind:"derived",meta:{domain:"audit",kind:"describe"},equals:(T,b)=>T===b})}catch(T){u(),m?.();for(let b of l)b();throw a.dispose(),T}let y=Y(g);return{node:g,dispose(){d=!0,u(),m?.();for(let T of l)T();l.length=0,a.dispose(),y()}}}_describeReactiveDiff(e){let n={...e,reactive:!1},r=e.reactiveName??"describe-diff",o={name:this.name,nodes:{},edges:[],subgraphs:[]},s=this.describe(n),a=Or(o,s),i=F(a,{name:r,meta:{domain:"audit",kind:"describe-diff"},equals:(p,f)=>p===f}),d=this._describeReactive({...e,reactiveName:void 0}),c=!1,u=d.node.subscribe(p=>{if(!c)for(let f of p){if(f[0]!==D)continue;let m=f[1],h=Or(s,m);s=m,h.events.length!==0&&i.emit(h)}}),l=Y(i);return{node:i,dispose(){c=!0,u(),d.dispose(),i.down([[ue,"describe-diff disposed"]]),l()}}}_explainReactive(e,n,r){let o=0,s=F(o,{name:"explain_version"}),a=this.observe({timeline:!0,structured:!0}),i=!1,d=!1,c=()=>{i||d||(i=!0,dt(()=>{i=!1,!d&&(o+=1,s.emit(o))}))},u=a.onEvent(T=>{let b=T.type;b!=="data"&&b!=="error"&&b!=="complete"&&b!=="teardown"||c()}),l=[];e!=null&&ot(e)&&l.push(e),n!=null&&ot(n)&&l.push(n),r?.maxDepth!=null&&ot(r.maxDepth)&&l.push(r.maxDepth),r?.findCycle!=null&&ot(r.findCycle)&&l.push(r.findCycle);let p=()=>{for(let T of l)if(T.cache===void 0)return!1;return!0},f=()=>{let T=Ue(e),b=Ue(n);return{from:T,to:b,found:!1,reason:"pending",steps:[],text:"(awaiting reactive args)",toJSON:()=>({from:T,to:b,found:!1,reason:"pending",steps:[]})}},m;try{m=A([s],()=>{if(!p())return f();let T=Ue(e),b=Ue(n),v={...r?.maxDepth!==void 0?{maxDepth:ps(r.maxDepth)}:{},...r?.findCycle!==void 0?{findCycle:fs(r.findCycle)}:{}};return this._explainStatic(T,b,v)},{name:r?.name??"explain",describeKind:"derived",meta:{domain:"audit",kind:"explain_path",from:Ue(e),to:Ue(n)},equals:(T,b)=>T.found===b.found&&T.reason===b.reason&&T.steps.length===b.steps.length&&Ua(T.steps,b.steps)})}catch(T){throw u(),a.dispose(),T}let h=Y(m),g=[],y=T=>{let b;return b=T.subscribe(v=>{let k=!1,_=!1;for(let w of v){let R=w[0];R===D?k=!0:(R===$||R===P||R===ue)&&(_=!0)}(k||_)&&c(),_&&b&&(b(),b=void 0)}),()=>{b&&(b(),b=void 0)}};for(let T of l)g.push(y(T));return{node:m,dispose(){d=!0,u();for(let T of g)T?.();g.length=0,a.dispose(),h()}}}_pathsMatching(e){let n=Tn(e),r=[];return this._collectObserveTargets("",r),r.map(([o])=>o).filter(o=>n.test(o))}_collectObserveTargets(e,n){for(let r of[...this._mounts.keys()].sort()){let o=e===""?r:`${e}${de}${r}`;this._mounts.get(r)._collectObserveTargets(o,n)}for(let r of[...this._nodes.keys()].sort()){let o=this._nodes.get(r),s=e===""?r:`${e}${de}${r}`;n.push([s,o]),this._appendMetaObserveTargets(s,o,n)}}_appendMetaObserveTargets(e,n,r){for(let o of Object.keys(n.meta).sort()){let s=n.meta[o],a=`${e}${de}${Ne}${de}${o}`;r.push([a,s]),this._appendMetaObserveTargets(a,s,r)}}observe(e,n){let r=typeof e=="string",s=gs(r?n:e);if(s.reactive===!0)return this._observeReactive(r?e:void 0,s);let a=s.structured===!0||s.timeline===!0||s.causal===!0||s.derived===!0||s.detail==="minimal"||s.detail==="full"||s.format!=null,i=s.actor;if(r){let u=e,l=this.resolve(u);if(i!=null&&!l.allowsObserve(i))throw new Ce({actor:i,action:"observe",nodeName:u});return a?this._buildStructuredObserver([[u,l]],s,"one"):{subscribe(p){return l.subscribe(p)},up(p){try{l.up?.(p)}catch(f){if(f instanceof Ce)return;throw f}}}}let d=[];this._collectObserveTargets("",d),d.sort((u,l)=>u[0]<l[0]?-1:u[0]>l[0]?1:0);let c=i==null?d:d.filter(([,u])=>u.allowsObserve(i));return a?this._buildStructuredObserver(c,s,"all"):{subscribe:u=>{let l=c.map(([p,f])=>f.subscribe(m=>{u(p,m)}));return()=>{for(let p of l)p()}},up:(u,l)=>{try{this.resolve(u).up?.(l)}catch(p){if(p instanceof Ce)return;throw p}}}}_observeReactive(e,n){let r=n.tiers,o=r!=null?new Set(r):null,s=n.reactiveName??"observe";return oe(a=>{let i=[],d=!1,c=!1,u=()=>{if(i.length===0||c)return;let h={events:i.slice(),flushedAt_ns:z()};i.length=0,a.emit(h)},l={...n,reactive:!1,structured:!0,timeline:!0},p=e!=null?this.observe(e,l):this.observe(l),f=h=>{c||(i.push(h),!d&&(d=!0,dt(()=>{d=!1,u()})))};for(let h of p.events)f(h);let m=p.onEvent(f);return()=>{c=!0,m(),p.dispose()}},{name:s,meta:{domain:"audit",kind:"observe-reactive"}})}_buildStructuredObserver(e,n,r){let o=r==="one"?e[0]?.[0]:void 0,s=a=>{if(r==="one"&&o!=null){let u=this.resolve(o);return this._buildStructuredObserver([[o,u]],a,"one")}let i=[];this._collectObserveTargets("",i),i.sort((u,l)=>u[0]<l[0]?-1:u[0]>l[0]?1:0);let d=a.actor,c=d==null?i:i.filter(([,u])=>u.allowsObserve(d));return this._buildStructuredObserver(c,a,"all")};return this._createObserveResult(e,n,s)}_createObserveResult(e,n,r){let o=n.timeline===!0,s=n.causal===!0,a=n.derived===!0,i=n.detail==="minimal",d=this.config.inspectorEnabled,c=(s||a)&&d,u=n.maxEvents,l=u!=null&&u>0?new Xe(u):null,p=[],f=new Set,m=n.tiers!=null?new Set(n.tiers):null,h={},g=new Set,y=0,T=0,b=0,v=0,k=0,_=0,w=!1,R=!1,x=0,N=new Map,M=new Map,L=new Map,S=B=>{if(!(m!=null&&!m.has(B.type))){l?l.push(B):p.push(B);for(let ee of f)ee(B)}},E=B=>m==null||m.has(B),I=()=>o?{timestamp_ns:z(),in_batch:Bt(),batch_id:x}:{},K=(B,ee)=>{if(!(!c||!(B instanceof le)))return B._setInspectorHook(we=>{if(we.kind==="dep_message")N.set(B,we.depIndex);else if(we.kind==="run"){let qe=we.batchData.map((re,ke)=>re!=null&&re.length>0?re.at(-1):we.prevData[ke]);M.set(B,qe);let Ee=we.batchData.map(re=>re!=null?[...re]:void 0);L.set(B,Ee),a&&S({type:"derived",path:ee,dep_values:qe,dep_batches:Ee,...I()})}})},q=B=>{let ee=N.get(B),we=M.get(B);if(!s||we==null)return{};let Ee=(ee!=null&&ee>=0&&B instanceof le?B._deps[ee]:void 0)?.node,re=Ee?.v,ke=L.get(B);return{trigger_dep_index:ee,trigger_dep_name:Ee?.name,...re!=null?{trigger_version:{id:re.id,version:re.version}}:{},dep_values:[...we],...ke!=null?{dep_batches:ke}:{}}},H=[],G=[];for(let[B,ee]of e){let we=K(ee,B);we&&H.push(we),G.push(ee.subscribe(qe=>{x++;for(let Ee of qe){let re=Ee[0],ke=I();if(re===D){h[B]=Ee[1];let En=ee instanceof le?ee.lastMutation?.actor??st:st;S({type:"data",path:B,data:Ee[1],actor:En,...ke,...q(ee)})}else if(i)re===X?E("dirty")&&y++:re===U?E("resolved")&&T++:re===Oe?E("invalidate")&&b++:re===xe?E("pause")&&v++:re===Ae?E("resume")&&k++:re===ue?E("teardown")&&_++:re===$&&!g.has(B)?E("complete")&&(w=!0):re===P&&E("error")&&(R=!0,g.add(B));else if(re===X)E("dirty")&&y++,S({type:"dirty",path:B,...ke});else if(re===U)E("resolved")&&T++,S({type:"resolved",path:B,...ke,...q(ee)});else if(re===Oe)E("invalidate")&&b++,S({type:"invalidate",path:B,...ke});else if(re===xe)E("pause")&&v++,S({type:"pause",path:B,lockId:Ee[1],...ke});else if(re===Ae)E("resume")&&k++,S({type:"resume",path:B,lockId:Ee[1],...ke});else if(re===$)E("complete")&&!g.has(B)&&(w=!0),S({type:"complete",path:B,...ke});else if(re===P){E("error")&&(R=!0,g.add(B));let En=ee instanceof le?ee.lastMutation?.actor??st:st;S({type:"error",path:B,data:Ee[1],actor:En,...ke})}else re===ue&&(E("teardown")&&_++,S({type:"teardown",path:B,...ke}))}}))}let j=!1,O=()=>{if(!j){j=!0;for(let B of G)B();for(let B of H)B();for(let B of J)B({value:void 0,done:!0});J.length=0}},C=[],J=[];f.add(B=>{let ee=J.shift();ee?ee({value:B,done:!1}):C.push(B)});let fe={get values(){return h},get dirtyCount(){return y},get resolvedCount(){return T},get invalidateCount(){return b},get pauseCount(){return v},get resumeCount(){return k},get teardownCount(){return _},get events(){return l?l.toArray():[...p]},get anyCompletedCleanly(){return w},get anyErrored(){return R},get completedWithoutErrors(){return w&&!R},onEvent(B){return f.add(B),()=>f.delete(B)},dispose:O,expand(B){O();let ee={...n};return typeof B=="string"?ee.detail=B:Object.assign(ee,B),r(gs(ee))},[Symbol.asyncIterator](){return{next(){return C.length>0?Promise.resolve({value:C.shift(),done:!1}):j?Promise.resolve({value:void 0,done:!0}):new Promise(B=>J.push(B))},return(){return O(),Promise.resolve({value:void 0,done:!0})}}}};return n.format!=null&&this._attachFormatLogger(fe,n),fe}_attachFormatLogger(e,n){let r=n.format;if(r==null)return;let o=n.logger??(m=>console.log(m)),s=n.includeTypes?new Set(n.includeTypes):null,a=n.excludeTypes?new Set(n.excludeTypes):null,i=s==null&&a==null?()=>!0:m=>(s==null||s.has(m))&&(a==null||!a.has(m)),d=Ba(n.theme),c=r==="stage-log"?z():0,u=m=>m==null?"":n.stageLabels?.[m]??m,l=(m,h)=>m.length>h?`${m.slice(0,h-1)}\u2026`:m,p=m=>m.type==="data"||m.type==="error"?l(Ar(m.data),120):"",f=m=>{if(r==="stage-log"){let w=(z()-c)/1e9,R=u(m.path).padEnd(9);if(m.type==="data"){let x=p(m);return`[${w.toFixed(3)}s] ${R} \u2190${x?` ${x}`:""}`}if(m.type==="error"){let x=p(m);return`[${w.toFixed(3)}s] ${R} \u2717${x?` ${x}`:""}`}return m.type==="complete"?`[${w.toFixed(3)}s] ${R} \u25A0 complete`:`[${w.toFixed(3)}s] ${R} ${m.type}`}if(r==="json")try{return JSON.stringify(m)}catch{return JSON.stringify({type:m.type,path:m.path,data:"[unserializable]"})}let h=d[m.type]??"",g=m.path?`${d.path}${m.path}${d.reset} `:"",y=m.type==="data"||m.type==="error",T=m.type==="pause"||m.type==="resume",b=y?` ${Ar(m.data)}`:T?` ${Ar(m.lockId)}`:"",v=m.type==="data"||m.type==="resolved"||m.type==="derived"?m:void 0,k=v?.trigger_dep_name!=null?` <- ${v.trigger_dep_name}`:v?.trigger_dep_index!=null?` <- #${v.trigger_dep_index}`:"",_=m.in_batch?" [batch]":"";return`${g}${h}${m.type.toUpperCase()}${d.reset}${b}${k}${_}`};e.onEvent(m=>{i(m.type)&&o(f(m),m)})}addDisposer(e){return this._disposers.add(e),()=>{this._disposers.delete(e)}}destroy(){ls(this._disposers,this.name),this.signal([[ue]],{internal:!0}),ls(this._storageDisposers,this.name);for(let e of[...this._mounts.values()])e._parent=void 0,e._destroyClearOnly();this._mounts.clear(),this._nodes.clear(),this._parent=void 0,this._destroyed=!0}get destroyed(){return this._destroyed}_destroyClearOnly(){for(let e of[...this._mounts.values()])e._parent=void 0,e._destroyClearOnly();this._mounts.clear(),this._nodes.clear(),this._parent=void 0,this._destroyed=!0}snapshot(e){let{expand:n,...r}=this.describe({detail:"full"}),o={};for(let i of Object.keys(r.nodes).sort()){let{lastMutation:d,guard:c,...u}=r.nodes[i];o[i]=u}let s=[...r.subgraphs].sort(),a={...r,version:1,nodes:o,subgraphs:s};if(e?.format==null)return a;if(e.format==="json-string")return JSON.stringify(a);if(e.format==="bytes"){if(e.codec==null)throw new Error("snapshot({format: 'bytes'}) requires a `codec` name");let i=this.config.lookupCodec(e.codec);if(i==null)throw new Error(`snapshot: codec "${e.codec}" is not registered on this graph's config. Call config.registerCodec(...) before creating nodes.`);return Wr(i,i.encode(a))}throw new Error(`snapshot: unknown format "${String(e.format)}"`)}static decode(e,n){let r=n?.config??ut,{codec:o,codecVersion:s,payload:a}=Hr(e,r);return o.decode(a,s)}restore(e,n){if(ms(e),e.name!==this.name)throw new Error(`Graph "${this.name}": restore snapshot name "${e.name}" does not match this graph`);let r=n?.only==null?null:(Array.isArray(n.only)?n.only:[n.only]).map(s=>Tn(s)),o=n?.includeProducers===!0;for(let s of Object.keys(e.nodes).sort()){if(r!==null&&!r.some(i=>i.test(s)))continue;let a=e.nodes[s];if(a!==void 0){if(!("value"in a)||a.value===void 0){"value"in a&&a.value===void 0&&n?.onError?.(s,new Error(`restore: slice.value is undefined for "${s}" (undefined is the global SENTINEL; not valid DATA)`));continue}if(!(a.type==="derived"||a.type==="effect")&&!(a.type==="producer"&&!o)){if(a.v!=null){let d=this.tryResolve(s)?.v;if(d!=null&&d.id===a.v.id&&d.version===a.v.version)continue}try{this.set(s,a.value)}catch(i){n?.onError?.(s,i)}}}}}static fromSnapshot(e,n){ms(e);let r=typeof n=="function"?n:n?.build,o=typeof n=="function"?void 0:n?.factories,s=new t(e.name);if(r)return r(s),s.restore(e),s;for(let f of[...e.subgraphs].sort((m,h)=>{let g=m.split(de).length,y=h.split(de).length;return g!==y?g-y:m<h?-1:m>h?1:0})){let m=f.split(de),h=s;for(let g of m)h._mounts.has(g)||h.mount(g,new t(g)),h=h._mounts.get(g)}let a=o?Object.entries(o).map(([f,m])=>({re:Tn(f),factory:m})):[],i=f=>{for(let m of a)if(m.re.test(f))return m.factory},d=f=>{let m=f.split(de),h=m.pop();if(h==null||h.length===0)throw new Error(`invalid snapshot path "${f}"`);let g=s;for(let y of m){let T=g._mounts.get(y);if(!T)throw new Error(`unknown mount "${y}" in path "${f}"`);g=T}return[g,h]},c=Object.entries(e.nodes).filter(([f])=>!f.includes(`${de}${Ne}${de}`)).sort((f,m)=>f[0]<m[0]?-1:f[0]>m[0]?1:0),u=new Map(c),l=new Map,p=!0;for(;u.size>0&&p;){p=!1;for(let[f,m]of[...u.entries()]){let h=m?.deps??[];if(!h.every(k=>l.has(k)))continue;let[g,y]=d(f),T={...m?.meta??{}},b=i(f),v;if(m?.type==="state")v=F(m.value,{meta:T});else{if(b==null)continue;v=b(y,{path:f,type:m.type,value:m.value,meta:T,deps:h,resolvedDeps:h.map(k=>l.get(k))})}g.add(v,{name:y}),l.set(f,v),u.delete(f),p=!0}}if(u.size>0){let f=[...u.keys()].sort().join(", ");throw new Error(`Graph.fromSnapshot could not reconstruct nodes without build callback: ${f}. Pass matching factories via fromSnapshot(data, { factories: { pattern: factoryFn } }).`)}return s.restore(e),s}toJSON(){return this.snapshot()}attachSnapshotStorage(e,n={}){let r=e.map(c=>({tier:c,debounceMs:Math.max(0,c.debounceMs??0),compactEvery:Math.max(1,c.compactEvery??10),timer:void 0,seq:0,lastSnapshot:void 0,lastFingerprint:"",disposed:!1,savePending:void 0}));n.autoRestore===!0&&this._cascadeRestore(e,n.onError);let o=(c,u)=>{if(c.disposed)return;let l=Pa(u.nodes);if(c.lastSnapshot!=null&&l!==""&&l===c.lastFingerprint)return;let p=c.seq+1,f=ie(),g=c.lastSnapshot==null||p%c.compactEvery===0?{name:this.name,mode:"full",snapshot:u,seq:p,timestamp_ns:f,format_version:rt}:{name:this.name,mode:"diff",diff:bs(c.lastSnapshot,u),seq:p,timestamp_ns:f,format_version:rt};if(c.tier.filter&&!c.tier.filter(g))return;let y;try{y=c.tier.save(g)}catch(T){n.onError?.(T,c.tier);return}if(y&&typeof y.then=="function"){let v=(c.savePending??Promise.resolve()).then(()=>y,()=>y).then(()=>{c.disposed||(c.seq=p,c.lastSnapshot=u,c.lastFingerprint=l)},k=>{n.onError?.(k,c.tier)});c.savePending=v.finally(()=>{c.savePending===v&&(c.savePending=void 0)})}else c.seq=p,c.lastSnapshot=u,c.lastFingerprint=l},s=(c,u)=>{try{o(c,u)}catch(l){n.onError?.(l,c.tier)}},a=(c,u)=>{if(!u.some(m=>{let h=this.config.messageTier(m[0]);return h>=3&&h<5}))return;if(n.filter){let m=this.tryResolve(c);if(m==null)return;let h=Hn(m,Wn("standard"));if(!n.filter(c,h))return}let p,f=()=>(p==null&&(p=this.snapshot()),p);for(let m of r)m.disposed||(m.debounceMs===0?s(m,f()):(m.timer==null&&(m.timer=new pe),m.timer.start(m.debounceMs,()=>{m.disposed||s(m,this.snapshot())})))},i;if(n.paths!=null){let u=(typeof n.paths=="string"?this._pathsMatching(n.paths):n.paths).map(l=>{let p=this.tryResolve(l);return p==null?()=>{}:p.subscribe(f=>a(l,f))});i=()=>{for(let l of u)l()}}else i=this.observe().subscribe((c,u)=>a(c,u));let d=()=>{i();for(let c of r)c.disposed=!0,c.timer?.cancel();this._storageDisposers.delete(d)};return this._storageDisposers.add(d),{dispose:d}}async _cascadeRestore(e,n){for(let r of e){let o;try{o=await r.load?.()}catch(a){n?.(a,r);continue}if(o==null||typeof o!="object"||Array.isArray(o))continue;let s=o;try{if(s.mode==="full"&&s.snapshot!=null)return this.restore(s.snapshot),!0;if(s.version===rt&&s.nodes!=null)return this.restore(s),!0}catch(a){n?.(a,r)}}return!1}static async fromStorage(e,n,r){for(let o of n){let s;try{s=await o.load?.()}catch(d){r?.onError?.(d,o);continue}if(s==null||typeof s!="object"||Array.isArray(s))continue;let a=s,i=a.mode==="full"&&a.snapshot!=null?a.snapshot:a.version===rt&&a.nodes!=null?a:void 0;if(i!=null)try{return t.fromSnapshot(i,r)}catch(d){r?.onError?.(d,o)}}throw new Error(`Graph.fromStorage: no tier held a restorable record for "${e}" across ${n.length} tier(s)`)}_annotations=new Map;_traceRing;trace(e,n,r){if(e!=null&&n!=null){if(this.tryResolve(e)==null)return;if(this._annotations.set(e,n),this.config.inspectorEnabled){let o={path:e,annotation:n,timestamp_ns:z(),...r?.actor!=null?{actor:r.actor}:{}};this._traceRing.push(o)}return}return e!=null?this.config.inspectorEnabled?this._annotations.get(e):void 0:this.config.inspectorEnabled?this._traceRing.toArray():[]}annotation(e){return this._annotations.get(e)}clearTrace(){this._annotations.clear(),this._traceRing.clear()}pruneTrace(e){let n=this._traceRing.toArray().filter(o=>!e(o)),r=this._traceRing.size-n.length;this._traceRing.clear();for(let o of n)this._traceRing.push(o);return r}static diff(e,n){let r=new Set(Object.keys(e.nodes)),o=new Set(Object.keys(n.nodes)),s=[...o].filter(T=>!r.has(T)).sort(),a=[...r].filter(T=>!o.has(T)).sort(),i=[],d=[];for(let T of r){if(!o.has(T))continue;let b=e.nodes[T],v=n.nodes[T],k=b.v,_=v.v;k!=null&&_!=null&&k.id===_.id&&k.version!==_.version&&d.push({path:T,id:k.id,from:k.version,to:_.version});let w=k!=null&&_!=null&&k.id===_.id&&k.version===_.version;for(let R of["type","status","sentinel"]){let x=b[R],N=v[R];x!==N&&i.push({path:T,field:R,from:x,to:N})}if(!w)for(let R of["value","meta"]){let x=b[R],N=v[R];Ga(x,N)||i.push({path:T,field:R,from:x,to:N})}}let c=T=>`${T.from} ${T.to}`,u=new Set(e.edges.map(c)),l=new Set(n.edges.map(c)),p=n.edges.filter(T=>!u.has(c(T))),f=e.edges.filter(T=>!l.has(c(T))),m=new Set(e.subgraphs),h=new Set(n.subgraphs),g=[...h].filter(T=>!m.has(T)).sort(),y=[...m].filter(T=>!h.has(T)).sort();return{nodesAdded:s,nodesRemoved:a,nodesChanged:i,versionChanges:d,edgesAdded:p,edgesRemoved:f,subgraphsAdded:g,subgraphsRemoved:y}}};function bs(t,e){let n=ce.diff(t,e),r={};for(let o of n.nodesAdded){let s=e.nodes[o];s!=null&&(r[o]=s)}return{...n,nodesAddedFull:r}}function Lr(t,e,n,r={}){let o={paths:[],depths:new Map,truncated:!1};if(!e)return r.withDetail?o:[];if(!r.both&&n!=="upstream"&&n!=="downstream")throw new Error('reachable: direction must be "upstream" or "downstream"');let s=r.maxDepth;if(s!=null&&(!Number.isInteger(s)||s<0))throw new Error("reachable: maxDepth must be an integer >= 0");if(s===0)return r.withDetail?o:[];let a=new Map,i=new Map,d=new Map,c=new Map,u=new Set;for(let[b,v]of Object.entries(t.nodes)){if(!b)continue;u.add(b);let k=v.deps??[];a.set(b,k);for(let _ of k)_&&(u.add(_),i.has(_)||i.set(_,new Set),i.get(_).add(b))}for(let b of t.edges){if(b==null||typeof b!="object")continue;let v=typeof b.from=="string"?b.from:"",k=typeof b.to=="string"?b.to:"";!v||!k||(u.add(v),u.add(k),c.has(v)||c.set(v,new Set),c.get(v).add(k),d.has(k)||d.set(k,new Set),d.get(k).add(v))}if(!u.has(e))return r.withDetail?o:[];let l=r.both===!0,p=b=>{if(l){let w=a.get(b)??[],R=d.get(b),x=i.get(b),N=c.get(b),M=[...w];return R&&M.push(...R),x&&M.push(...x),N&&M.push(...N),M}if(n==="upstream"){let w=a.get(b)??[],R=d.get(b);return R?[...w,...R]:w}let v=i.get(b),k=c.get(b),_=v?[...v]:[];return k&&_.push(...k),_},f=new Set([e]),m=new Map,h=[{path:e,depth:0}],g=0,y=!1;for(;g<h.length;){let b=h[g++];if(s!=null&&b.depth>=s){p(b.path).length>0&&(y=!0);continue}for(let v of p(b.path))!v||f.has(v)||(f.add(v),m.set(v,b.depth+1),h.push({path:v,depth:b.depth+1}))}let T=[...m.keys()].sort((b,v)=>b<v?-1:b>v?1:0);return r.withDetail?{paths:T,depths:m,truncated:y}:T}function Ua(t,e){if(t.length!==e.length)return!1;for(let n=0;n<t.length;n++){let r=t[n],o=e[n];if(r.path!==o.path||r.type!==o.type||r.status!==o.status||r.hop!==o.hop||r.dep_index!==o.dep_index||r.annotation!==o.annotation||r.value!==o.value||r.lastMutation!==o.lastMutation)return!1;let s=r.v,a=o.v;if(s!==a&&(s==null||a==null||s.id!==a.id||s.version!==a.version))return!1}return!0}function Ts(t,e){return De("messaging",t,e)}var qa=1024,Dr=class extends ce{_log;events;latest;hasLatest;constructor(e,n={}){super(e,n.graph),this._log=$e([],{name:"events",maxSize:n.retainedLimit??qa}),this._log.withLatest(),this.events=this._log.entries,this.add(this.events,{name:"events"}),this.latest=A([this.events],([r])=>{let o=r;return o.length===0?null:o[o.length-1]},{name:"latest",describeKind:"derived",meta:Ts("topic_latest")}),this.add(this.latest,{name:"latest"}),this.addDisposer(Y(this.latest)),this.hasLatest=A([this.events],([r])=>r.length>0,{name:"hasLatest",describeKind:"derived",meta:Ts("topic_has_latest")}),this.add(this.hasLatest,{name:"hasLatest"}),this.addDisposer(Y(this.hasLatest)),this.addDisposer(()=>{this.events.down([[$]])}),this.addDisposer(()=>this._log.disposeAllViews())}publish(e){if(e===void 0)throw new TypeError(`TopicGraph "${this.name}": publish(undefined) is not allowed (spec \xA75.12 SENTINEL).`);this._log.append(e)}attachEventStorage(e){return this._log.attachStorage(e)}retained(){return this.events.cache}get _logBundle(){return this._log}};function Ir(t,e){return new Dr(t,e)}_e();ge();se();Le();ve();Q();Qe();_e();ge();ct();se();Q();function vs(t,e){let n=t.cache??0;return n>=e?!1:(t.down([[X],[D,n+1]]),!0)}var Wa=ro((t,e)=>{t("observe"),t("signal"),e("write")});function Tt(t){let e=$e([],{name:t.name,maxSize:t.retainedLimit??1024,guard:t.guard??Wa,...t.versioning!=null?{versioning:t.versioning}:{}});return e.withLatest(),t.graph&&t.graph.add(e.entries,{name:t.name}),e}function Pr(t){if(t===null||typeof t!="object"||Object.isFrozen(t))return t;for(let e of Object.keys(t))Pr(t[e]);return Object.freeze(t)}function Lt(t){let e=t.cache,r=(typeof e=="number"&&Number.isFinite(e)?e:0)+1;return t.down([[X],[D,r]]),r}function vn(t,e,n,r,o,s){let a=e(n,r,o);if(a===void 0)return;let i=s!=null?{...a,handlerVersion:s}:a;t.append(i)}function Me(t,e){let n=e.freeze??!0;return function(...o){let s=n?o.map(Pr):o,a=ie(),i=e.seq?Lt(e.seq):void 0;try{let d=t(...s);return e.onSuccess&&vn(e.audit,e.onSuccess,s,d,{t_ns:a,seq:i},e.handlerVersion),d}catch(d){if(e.onFailure){let c=d instanceof Error?d.name:typeof d;vn(e.audit,e.onFailure,s,d,{t_ns:a,seq:i,errorType:c},e.handlerVersion)}throw d}}}function vt(t,e){let n=e.freeze??!0;return function(...o){let s=n?o.map(Pr):o,a=ie(),i,d,c=!1,u;try{ne(()=>{e.seq&&(u=Lt(e.seq));try{i=t(...s),e.onSuccess&&vn(e.audit,e.onSuccess,s,i,{t_ns:a,seq:u},e.handlerVersion)}catch(l){throw d=l,c=!0,l}})}catch(l){if(c&&e.onFailure){let p=d instanceof Error?d.name:typeof d;vn(e.audit,e.onFailure,s,d,{t_ns:a,seq:u,errorType:p},e.handlerVersion)}throw c?d:l}return i}}function wn(t,e,n=0){let r=F(n,{name:e,describeKind:"state"});return t.add(r,{name:e}),r}function Dt(t,e){return De("orchestration",t,e)}var kn=class extends ce{constructor(e,n){super(e,n)}task(e,n,r={}){let o=(r.deps??[]).map(a=>this._resolveStep(a)),s=A(o,n,{name:e,describeKind:"derived",meta:Dt("task",r.meta)});return this.add(s,{name:e}),s}classify(e,n,r,o={}){let s=this._resolveStep(n),a=A([s],([i])=>{try{return{tag:r(i),value:i}}catch(d){return{tag:"error",value:i,error:d}}},{name:e,describeKind:"derived",meta:Dt("classify",o.meta)});return this.add(a,{name:e}),a}combine(e,n,r={}){let o=Object.keys(n),s=o.map(i=>this._resolveStep(n[i])),a=A(s,i=>{let d={};for(let c=0;c<o.length;c++)d[o[c]]=i[c];return d},{name:e,describeKind:"derived",meta:Dt("combine",r.meta)});return this.add(a,{name:e}),a}approvalGate(e,n,r={}){let o=r.maxPending??1e3;if(o<1&&o!==Number.POSITIVE_INFINITY)throw new RangeError("approvalGate: maxPending must be >= 1");let s=r.startOpen??!1;typeof n!="string"&&this.nameOf(n)===void 0&&this.add(n,{name:`${e}/source`});let a=this._resolveStep(n),i=new ce(`${e}_state`),d=F([],{name:"pending",equals:()=>!1}),c=F(s,{name:"isOpen"}),u=A([d],([G])=>G.length,{name:"count"}),l=F(0,{name:"droppedCount"}),p=Tt({name:"decisions",retainedLimit:1024,graph:i});i.add(d,{name:"pending"}),i.add(c,{name:"isOpen"}),i.add(u,{name:"count"}),i.add(l,{name:"droppedCount"}),this.mount(`${e}_state`,i);let f=[],m=!1,h=!1,g=s,y=c.subscribe(G=>{for(let j of G)j[0]===D&&(g=j[1])});this.addDisposer(y);function T(){d.emit([...f])}function b(G,j,O){p.append({action:G,t_ns:ie(),...j!==void 0?{items:j,count:j.length}:{},...O!==void 0?{unflushed:O}:{},...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}})}function v(G){if(f.push(G),f.length>o){let j=f.shift();l.emit(l.cache+1),b("drop",[j])}T()}function k(G){let j=f.splice(0,G);return T(),j}let _=te([a],(G,j,O)=>{let C=O.terminalDeps[0];if(C!==void 0){m=!0;let fe=f.length;f=[],T(),b("teardown",void 0,fe),j.down(C===!0?[[$]]:[[P,C]]);return}let J=G[0];if(J==null||J.length===0){j.down([[U]]);return}for(let fe of J)g?j.emit(fe):(v(fe),j.down([[U]]))},{name:e,describeKind:"derived",meta:Dt("approval_gate",r.meta)});if(this.add(_,{name:e}),r.approver!=null){r.approver.cache&&(c.emit(!0),g=!0,r.onceOnly&&(h=!0));let j=r.approver.subscribe(O=>{for(let C of O){if(C[0]!==D)continue;let J=!!C[1];if(J&&!g){if(r.onceOnly){if(h)continue;h=!0}ne(()=>{c.emit(!0);let fe=k(f.length);b("open",fe);for(let B of fe){if(m)break;_.emit(B)}})}else if(!J&&g){if(r.onceOnly&&h)continue;ne(()=>{c.emit(!1),b("close")})}}});this.addDisposer(j)}let w=G=>{if(m)throw new Error(`approvalGate: ${G}() called after the gate was torn down`)},R=(G=1)=>{w("approve");let j=k(G);for(let O of j){if(m)break;_.emit(O)}},x=(G=1)=>{w("reject"),k(G)},N=(G,j=1)=>{w("modify");let O=[...f],C=k(j);for(let J=0;J<C.length&&!m;J++)_.emit(G(C[J],J,O))},M=()=>{w("open"),c.emit(!0);let G=k(f.length);for(let j of G){if(m)break;_.emit(j)}},L=()=>{w("close"),!(r.onceOnly&&h)&&c.emit(!1)},S=vt(R,{audit:p,freeze:!1,onSuccess:(G,j,O)=>({action:"approve",count:G[0]??1,t_ns:O.t_ns,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}}),onFailure:(G,j,O)=>({action:"drop",t_ns:O.t_ns,errorType:O.errorType,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}})}),E=vt(x,{audit:p,freeze:!1,onSuccess:(G,j,O)=>({action:"reject",count:G[0]??1,t_ns:O.t_ns,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}}),onFailure:(G,j,O)=>({action:"drop",t_ns:O.t_ns,errorType:O.errorType,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}})}),I=vt(N,{audit:p,freeze:!1,onSuccess:(G,j,O)=>({action:"modify",count:G[1]??1,t_ns:O.t_ns,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}}),onFailure:(G,j,O)=>({action:"drop",t_ns:O.t_ns,errorType:O.errorType,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}})}),K=vt(M,{audit:p,freeze:!1,onSuccess:(G,j,O)=>({action:"open",t_ns:O.t_ns,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}}),onFailure:(G,j,O)=>({action:"drop",t_ns:O.t_ns,errorType:O.errorType,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}})}),q=vt(L,{audit:p,freeze:!1,onSuccess:(G,j,O)=>({action:"close",t_ns:O.t_ns,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}}),onFailure:(G,j,O)=>({action:"drop",t_ns:O.t_ns,errorType:O.errorType,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}})});return this.addDisposer(u.subscribe(()=>{})),{node:_,pending:d,count:u,isOpen:c,droppedCount:l,decisions:p,audit:p,approve:S,reject:E,modify:I,open:K,close:q}}approval(e,n,r,o={}){return this.approvalGate(e,n,{...o,approver:r,maxPending:1})}catch(e,n,r,o={}){let s=this._resolveStep(n),a=o.on??"errored",i=te([s],(d,c,u)=>{let l=u.terminalDeps[0];if(l!==void 0){let f=l===!0?{kind:"completed"}:{kind:"errored",error:l};if(a==="terminal"||a===f.kind){c.emit(r(f,c));return}c.down(f.kind==="completed"?[[$]]:[[P,f.error]]);return}let p=d[0];if(p==null||p.length===0){c.down([[U]]);return}for(let f of p)c.emit(f)},{name:e,describeKind:"derived",completeWhenDepsComplete:o.completeWhenDepsComplete??!(a==="completed"||a==="terminal"),errorWhenDepsError:!(a==="errored"||a==="terminal"),meta:Dt("catch",o.meta)});return this.add(i,{name:e}),i}_resolveStep(e){if(typeof e=="string")return this.resolve(e);if(this.nameOf(e)===void 0)throw new Error(`PipelineGraph "${this.name}": Node dep is not registered. Pass a string path or call graph.add(node) first.`);return e}};function Gr(t,e){let n=new kn(t,e),{factory:r,factoryArgs:o,...s}=e??{};return n.tagFactory("pipelineGraph",ft(s)),n}async function ws(t,e,n,r){let o="",s=0;for await(let a of t.stream(e,n))r.publish({...a,seq:s++,ts:ie()}),a.type==="token"&&(o+=a.delta);return o}function ks(t,e){if(e==="json")try{return JSON.parse(bt(t))}catch(n){let r=t.slice(0,160);throw new Error(`streamingPromptNode: format:"json" \u2014 failed to parse accumulated text as JSON: ${n.message}; content preview: ${r}`)}return t}function xs(t,e){return A([t.latest],([n],r)=>{let o=r.store;if(n==null)return o.acc??"";let s=n;return s.seq===0&&(o.acc=""),s.type==="token"&&(o.acc=(o.acc??"")+s.delta),o.acc??""},{name:e,meta:W("accumulated_text"),initial:""})}function Ha(t,e,n,r){let o=r?.name??"llm",s=r?.format??"text",a=Ir(`${o}/stream`,{...r?.retainedLimit!=null?{retainedLimit:r.retainedLimit}:{}}),i=A(e,l=>{if(l.some(f=>f==null))return[];let p=typeof n=="string"?n:n(...l);return p?[{role:"user",content:p}]:[]},{name:`${o}::messages`,meta:W("prompt_node::messages"),initial:[]}),d=he(i,l=>{let p=l;if(!p||p.length===0)return F(null);let f=new AbortController;async function*m(){try{let h=await ws(t,p,{model:r?.model,temperature:r?.temperature,maxTokens:r?.maxTokens,systemPrompt:r?.systemPrompt,signal:f.signal},a);yield ks(h,s)}finally{f.abort()}}return V(m())},{meta:ae("streamingPromptNode")}),c=xs(a,`${o}::accumulatedText`),u=Y(d);return{output:d,deltaTopic:a,accumulatedText:c,dispose:()=>{u(),a.destroy()}}}function Ja(t,e,n,r,o,s){let a=F(0,{name:`${e}/cancel`}),i=0,d=[...r,a],c=s?.name??e,u=s?.format??"text",l=Ir(`${c}/stream`,{...s?.retainedLimit!=null?{retainedLimit:s.retainedLimit}:{}}),p=A(d,w=>{let R=w.slice(0,-1);if(R.some(N=>N==null))return[];let x=typeof o=="string"?o:o(...R);return x?[{role:"user",content:x}]:[]},{name:`${c}::messages`,meta:W("prompt_node::messages"),initial:[]}),f=he(p,w=>{let R=w;if(!R||R.length===0)return F(null);let x=new AbortController;async function*N(){try{let M=await ws(n,R,{model:s?.model,temperature:s?.temperature,maxTokens:s?.maxTokens,systemPrompt:s?.systemPrompt,signal:x.signal},l);yield ks(M,u)}finally{x.abort()}}return V(N())},{meta:ae("gatedStream")}),m=xs(l,`${c}::accumulatedText`),h=Ao(f,w=>w!=null);t.add(h,{name:`${e}/raw`});let g=Gr(`${e}/gate-graph`);t.mount(`${e}/gate-graph`,g),g.add(h,{name:`${e}/raw`});let y=g.approvalGate(`${e}/gate`,`${e}/raw`,s?.gate),T=Y(f),b=Y(y.node),v=Y(m);t.addDisposer(T),t.addDisposer(b),t.addDisposer(v);let k=y.reject.bind(y),_={...y,reject(w=1){ne(()=>{k(w),a.emit(++i)})}};return{output:y.node,deltaTopic:l,accumulatedText:m,gate:_,dispose:()=>{T(),b(),v(),l.destroy()}}}Q();Z();function Ya(t,e){let n=e?.separator??`
6
+ `)}]});let s={};return e?.maxTokens!=null&&(s.maxOutputTokens=e.maxTokens),e?.temperature!=null&&(s.temperature=e.temperature),e?.maxReasoningTokens!=null&&(s.thinkingConfig={thinkingBudget:e.maxReasoningTokens}),Object.keys(s).length>0&&(o.generationConfig=s),e?.tools&&e.tools.length>0&&(o.tools=[{functionDeclarations:e.tools.map(Hi)}]),e?.providerExtras&&Object.assign(o,e.providerExtras),o}function Hi(t){return{name:t.name,description:t.description,parameters:t.parameters}}function Uo(t,e,n){let r={},o=t.generationConfig;o&&(typeof o.maxOutputTokens=="number"&&(r.maxOutputTokens=o.maxOutputTokens),typeof o.temperature=="number"&&(r.temperature=o.temperature),o.thinkingConfig&&(r.thinkingConfig=o.thinkingConfig)),t.systemInstruction&&(r.systemInstruction=t.systemInstruction),t.tools&&(r.tools=t.tools);for(let[s,a]of Object.entries(t))s==="contents"||s==="generationConfig"||s==="systemInstruction"||s==="tools"||s==="abortSignal"||s==="model"||(r[s]=a);return n&&(r.abortSignal=n),{model:e,contents:t.contents,config:Object.keys(r).length>0?r:void 0}}function ur(t){let e={input:{regular:0},output:{regular:0},raw:t};if(!t)return e;let n=t.promptTokenCount??0,r=t.cachedContentTokenCount??0;if(e.input.regular=Math.max(0,n-r),r>0&&(e.input.cacheRead=r),t.toolUsePromptTokenCount&&(e.input.toolUse=t.toolUsePromptTokenCount),t.promptTokensDetails)for(let o of t.promptTokensDetails){let s=o.modality?.toLowerCase();s==="image"?e.input.image=(e.input.image??0)+o.tokenCount:s==="audio"?e.input.audio=(e.input.audio??0)+o.tokenCount:s==="video"&&(e.input.video=(e.input.video??0)+o.tokenCount)}return e.output.regular=t.candidatesTokenCount??0,t.thoughtsTokenCount&&(e.output.reasoning=t.thoughtsTokenCount),e}function qo(t,e){let n=t.candidates?.[0],r=n?.content?.parts??[],o=[],s=[],a=0;for(let i of r)typeof i.text=="string"&&o.push(i.text),i.functionCall&&s.push({id:`${i.functionCall.name}-${a++}`,name:i.functionCall.name,arguments:i.functionCall.args??{}});return{content:o.join(""),toolCalls:s.length>0?s:void 0,usage:ur(t.usageMetadata),finishReason:n?.finishReason,latencyMs:e,model:t.modelVersion,provider:"google"}}function Ji(t){if(t.apiKey)return t.apiKey;let e=globalThis.process?.env;return e?.GOOGLE_API_KEY??e?.GEMINI_API_KEY}function Yi(t){let e=t.baseURL??"https://generativelanguage.googleapis.com/v1beta",n=t.fetchImpl??fetch,r=s=>{let a=s?.model??t.model;if(!a)throw new Error("googleAdapter: model must be set via options.model or invokeOpts.model");return a},o=()=>{let s=Ji(t);if(!s)throw new Error("googleAdapter: apiKey required for invoke/stream");return`key=${encodeURIComponent(s)}`};return{provider:"google",model:t.model,async invoke(s,a){let i=r(a),d=dn(s,a),c=z(),u=`${e}/models/${encodeURIComponent(i)}:generateContent?${o()}`,l=await n(u,{method:"POST",headers:{"content-type":"application/json",...t.headers??{}},body:JSON.stringify(d),signal:a?.signal});if(!l.ok)throw await Ve(l,"Google");let p=await l.json(),f=Math.max(0,(z()-c)/1e6);return qo(p,f)},async*stream(s,a){let i=r(a),d=dn(s,a),c=`${e}/models/${encodeURIComponent(i)}:streamGenerateContent?alt=sse&${o()}`,u=await n(c,{method:"POST",headers:{"content-type":"application/json",accept:"text/event-stream",...t.headers??{}},body:JSON.stringify(d),signal:a?.signal});if(!u.ok)throw await Ve(u,"Google");if(!u.body)throw new Error("googleAdapter: streaming response has no body");let l,p;for await(let f of gt(u.body,{signal:a?.signal})){if(!f.data)continue;let m;try{m=JSON.parse(f.data)}catch{continue}let h=m.candidates?.[0];for(let g of h?.content?.parts??[])typeof g.text=="string"&&(g.thought?yield{type:"thinking",delta:g.text}:yield{type:"token",delta:g.text}),g.functionCall&&(yield{type:"tool-call-delta",delta:{name:g.functionCall.name,argumentsDelta:JSON.stringify(g.functionCall.args??{})}});h?.finishReason&&(p=h.finishReason),m.usageMetadata&&(l=m.usageMetadata)}l&&(yield{type:"usage",usage:ur(l)}),yield{type:"finish",reason:p??"stop"}}}}function Qi(t){let e=t.sdk;if(!e)throw new Error("sdkBackedGoogle: sdk instance required");return{provider:"google",model:t.model,async invoke(n,r){let o=dn(n,r),s=r?.model??t.model;if(!s)throw new Error("googleAdapter: model required");let a=Uo(o,s,r?.signal),i=z(),d=await e.models.generateContent(a),c=Math.max(0,(z()-i)/1e6);return qo(d,c)},async*stream(n,r){if(!e.models.generateContentStream)throw new Error("sdkBackedGoogle: SDK instance does not expose generateContentStream");let o=dn(n,r),s=r?.model??t.model;if(!s)throw new Error("googleAdapter: model required");let a=Uo(o,s,r?.signal),i,d,c=await e.models.generateContentStream(a);for await(let u of c){let l=u.candidates?.[0];for(let p of l?.content?.parts??[])typeof p.text=="string"&&(p.thought?yield{type:"thinking",delta:p.text}:yield{type:"token",delta:p.text}),p.functionCall&&(yield{type:"tool-call-delta",delta:{name:p.functionCall.name,argumentsDelta:JSON.stringify(p.functionCall.args??{})}});l?.finishReason&&(d=l.finishReason),u.usageMetadata&&(i=u.usageMetadata)}i&&(yield{type:"usage",usage:ur(i)}),yield{type:"finish",reason:d??"stop"}}}}ge();var Xi={openai:{baseURL:"https://api.openai.com/v1",apiKeyEnv:"OPENAI_API_KEY",provider:"openai"},openrouter:{baseURL:"https://openrouter.ai/api/v1",apiKeyEnv:"OPENROUTER_API_KEY",provider:"openrouter"},groq:{baseURL:"https://api.groq.com/openai/v1",apiKeyEnv:"GROQ_API_KEY",provider:"groq"},ollama:{baseURL:"http://localhost:11434/v1",provider:"ollama"},deepseek:{baseURL:"https://api.deepseek.com/v1",apiKeyEnv:"DEEPSEEK_API_KEY",provider:"deepseek"},xai:{baseURL:"https://api.x.ai/v1",apiKeyEnv:"XAI_API_KEY",provider:"xai"}};function lr(t={}){return t.sdk?ra(t):na(t)}function cn(t,e,n,r,o){let s=e?.model??n;if(!s)throw new Error("openAICompatAdapter: model must be set via options.model or invokeOpts.model");let a=t.map(Zi);e?.systemPrompt&&!t.some(d=>d.role==="system")&&a.unshift({role:"system",content:e.systemPrompt});let i={model:s,messages:a};return e?.maxTokens!=null&&(i.max_tokens=e.maxTokens),e?.temperature!=null&&(i.temperature=e.temperature),e?.tools&&e.tools.length>0&&(i.tools=e.tools.map(ea)),e?.maxReasoningTokens!=null&&(i.reasoning={max_tokens:e.maxReasoningTokens}),r&&(i.stream=!0,i.stream_options={include_usage:!0}),o&&Object.assign(i,o),e?.providerExtras&&Object.assign(i,e.providerExtras),i}function Zi(t){return t.role==="tool"?{role:"tool",tool_call_id:t.toolCallId,content:t.content}:t.role==="assistant"&&t.toolCalls&&t.toolCalls.length>0?{role:"assistant",content:t.content||null,tool_calls:t.toolCalls.map(e=>({id:e.id,type:"function",function:{name:e.name,arguments:JSON.stringify(e.arguments)}}))}:{role:t.role,content:t.content}}function ea(t){return{type:"function",function:{name:t.name,description:t.description,parameters:t.parameters}}}function pr(t){let e={input:{regular:0},output:{regular:0},raw:t};if(!t)return e;let n=t.prompt_tokens??0,r=t.prompt_tokens_details?.cached_tokens??0;t.prompt_cache_hit_tokens!=null?(r=t.prompt_cache_hit_tokens,e.input.regular=t.prompt_cache_miss_tokens??Math.max(0,n-r)):e.input.regular=Math.max(0,n-r),r>0&&(e.input.cacheRead=r),t.prompt_tokens_details?.audio_tokens&&(e.input.audio=t.prompt_tokens_details.audio_tokens);let o=t.completion_tokens??0,s=t.completion_tokens_details?.reasoning_tokens??0;return e.output.regular=Math.max(0,o-s),s>0&&(e.output.reasoning=s),t.completion_tokens_details?.audio_tokens&&(e.output.audio=t.completion_tokens_details.audio_tokens),t.completion_tokens_details?.accepted_prediction_tokens&&(e.output.predictionAccepted=t.completion_tokens_details.accepted_prediction_tokens),t.completion_tokens_details?.rejected_prediction_tokens&&(e.output.predictionRejected=t.completion_tokens_details.rejected_prediction_tokens),e}function Wo(t,e,n){let r=t.choices[0],o=r?.message,s=o?.content??"",a=(o?.tool_calls??[]).map(i=>({id:i.id,name:i.function.name,arguments:ta(i.function.arguments)}));return{content:s,toolCalls:a.length>0?a:void 0,usage:pr(t.usage),finishReason:r?.finish_reason,latencyMs:e,model:t.model,provider:n}}function ta(t){try{let e=JSON.parse(t);return typeof e=="object"&&e!=null?e:{_raw:t}}catch{return{_raw:t}}}function Ho(t){let e=t.preset??"openai",n=Xi[e],r=t.baseURL??n.baseURL,o=t.provider??n.provider,s=n.apiKeyEnv,a=t.apiKey??(s?globalThis.process?.env?.[s]:void 0);return{provider:o,baseURL:r,apiKey:a}}function na(t){let{provider:e,baseURL:n,apiKey:r}=Ho(t),o=t.fetchImpl??fetch,s=e!=="ollama",a=()=>{let i={"content-type":"application/json",...t.headers??{}};if(s){if(!r)throw new Error(`openAICompatAdapter[${e}]: apiKey required for invoke/stream`);i.authorization=`Bearer ${r}`}return i};return{provider:e,model:t.model,async invoke(i,d){let c=cn(i,d,t.model,!1,t.bodyExtras),u=z(),l=await o(`${n}/chat/completions`,{method:"POST",headers:a(),body:JSON.stringify(c),signal:d?.signal});if(!l.ok)throw await Ve(l,e);let p=await l.json(),f=Math.max(0,(z()-u)/1e6);return Wo(p,f,e)},async*stream(i,d){let c=cn(i,d,t.model,!0,t.bodyExtras),u=await o(`${n}/chat/completions`,{method:"POST",headers:{...a(),accept:"text/event-stream"},body:JSON.stringify(c),signal:d?.signal});if(!u.ok)throw await Ve(u,e);if(!u.body)throw new Error(`openAICompatAdapter[${e}]: streaming response has no body`);let l,p;for await(let f of gt(u.body,{signal:d?.signal})){if(!f.data||f.data==="[DONE]")continue;let m;try{m=JSON.parse(f.data)}catch{continue}let h=m.choices;if(h){let g=h[0];if(g?.delta?.content&&(yield{type:"token",delta:g.delta.content}),g?.delta?.reasoning_content&&(yield{type:"thinking",delta:g.delta.reasoning_content}),g?.delta?.tool_calls)for(let y of g.delta.tool_calls)yield{type:"tool-call-delta",delta:{id:y.id,name:y.function?.name,argumentsDelta:y.function?.arguments}};g?.finish_reason&&(p=g.finish_reason)}m.usage&&(l=m.usage,yield{type:"usage",usage:pr(l)})}yield{type:"finish",reason:p??"stop"}}}}function ra(t){let e=t.sdk;if(!e)throw new Error("sdkBackedOpenAI: sdk instance required");let{provider:n}=Ho(t);return{provider:n,model:t.model,async invoke(r,o){let s=cn(r,o,t.model,!1,t.bodyExtras),a=z(),i=await e.chat.completions.create(s,{signal:o?.signal}),d=Math.max(0,(z()-a)/1e6);return Wo(i,d,n)},async*stream(r,o){let s=cn(r,o,t.model,!0,t.bodyExtras),a=await e.chat.completions.create(s,{signal:o?.signal}),i,d;for await(let c of a){let u=c.choices;if(u){let p=u[0];if(p?.delta?.content&&(yield{type:"token",delta:p.delta.content}),p?.delta?.reasoning_content&&(yield{type:"thinking",delta:p.delta.reasoning_content}),p?.delta?.tool_calls)for(let f of p.delta.tool_calls)yield{type:"tool-call-delta",delta:{id:f.id,name:f.function?.name,argumentsDelta:f.function?.arguments}};p?.finish_reason&&(d=p.finish_reason)}let l=c.usage;l&&(i=l,yield{type:"usage",usage:pr(l)})}yield{type:"finish",reason:d??"stop"}}}}function oa(t){switch(t.provider){case"anthropic":{let e={apiKey:t.apiKey,model:t.model,baseURL:t.baseURL,headers:t.headers,sdk:t.sdk,fetchImpl:t.fetchImpl,...t.extras};return tr(e)}case"google":{let e={apiKey:t.apiKey,model:t.model,baseURL:t.baseURL,headers:t.headers,sdk:t.sdk,fetchImpl:t.fetchImpl,...t.extras};return cr(e)}case"dry-run":{let e={model:t.model,...t.extras};return et(e)}case"fallback":{let e={provider:t.provider,model:t.model,...t.extras};return dr(e)}case"openai":case"openrouter":case"groq":case"ollama":case"deepseek":case"xai":{let e={preset:t.provider,apiKey:t.apiKey,model:t.model,baseURL:t.baseURL,headers:t.headers,bodyExtras:t.bodyExtras,sdk:t.sdk,fetchImpl:t.fetchImpl,...t.extras};return lr(e)}default:{let e=t.provider;throw new Error(`createAdapter: unknown provider: ${String(e)}`)}}}ge();Q();Ne();se();ve();Q();var fr=class{_version=0;_maxSize;_buf;_head=0;_size=0;constructor(e,n){if(n!==void 0&&n<1)throw new RangeError("maxSize must be >= 1");if(this._maxSize=n,n!==void 0){if(this._buf=new Array(n),e&&e.length>0){let r=Math.min(e.length,n),o=e.length-r;for(let s=0;s<r;s++)this._buf[s]=e[o+s];this._size=r}}else this._buf=e?[...e]:[],this._size=this._buf.length}get version(){return this._version}get size(){return this._size}at(e){if(!Number.isInteger(e))return;let n=e>=0?e:this._size+e;if(!(n<0||n>=this._size))return this._maxSize!==void 0?this._buf[(this._head+n)%this._maxSize]:this._buf[n]}append(e){this._rawAppend(e),this._version+=1}appendMany(e){if(e.length===0)return;let n=this._maxSize!==void 0&&e.length>this._maxSize?e.length-this._maxSize:0;for(let r=n;r<e.length;r++)this._rawAppend(e[r]);this._version+=1}clear(){if(this._size===0)return 0;let e=this._size;if(this._maxSize===void 0)this._buf.length=0;else for(let n=0;n<e;n++)this._buf[(this._head+n)%this._maxSize]=void 0;return this._head=0,this._size=0,this._version+=1,e}trimHead(e){if(!Number.isInteger(e)||e<0)throw new RangeError(`trimHead: n must be a non-negative integer (got ${e})`);if(e===0||this._size===0)return 0;let n=Math.min(e,this._size);if(this._maxSize===void 0)this._buf.splice(0,n);else{for(let r=0;r<n;r++)this._buf[(this._head+r)%this._maxSize]=void 0;this._head=(this._head+n)%this._maxSize}return this._size-=n,this._version+=1,n}slice(e,n){if(!Number.isInteger(e)||e<0)throw new RangeError(`slice: start must be a non-negative integer (got ${e})`);if(n!==void 0&&(!Number.isInteger(n)||n<0))throw new RangeError(`slice: stop must be a non-negative integer or undefined (got ${n})`);let r=n===void 0?this._size:Math.min(Math.max(n,0),this._size),o=Math.min(e,this._size);if(o>=r)return[];let s=r-o;if(this._maxSize===void 0)return this._buf.slice(o,r);let a=new Array(s);for(let i=0;i<s;i++)a[i]=this._buf[(this._head+o+i)%this._maxSize];return a}tail(e){if(!Number.isInteger(e)||e<0)throw new RangeError(`tail: n must be a non-negative integer (got ${e})`);if(e===0||this._size===0)return[];let n=Math.min(e,this._size);return this.slice(this._size-n,this._size)}toArray(){if(this._maxSize===void 0)return[...this._buf];let e=new Array(this._size);for(let n=0;n<this._size;n++)e[n]=this._buf[(this._head+n)%this._maxSize];return e}snapshot(){return this.toArray()}restore(e){if(this._maxSize===void 0){this._buf.length=0;for(let n=0;n<e.length;n++)this._buf.push(e[n]);this._size=this._buf.length}else{let n=this._maxSize;for(let s=0;s<n;s++)this._buf[s]=void 0;this._head=0;let r=Math.min(e.length,n),o=e.length-r;for(let s=0;s<r;s++)this._buf[s]=e[o+s];this._size=r}this._version+=1}_rawAppend(e){if(this._maxSize===void 0){this._buf.push(e),this._size=this._buf.length;return}this._size<this._maxSize?(this._buf[(this._head+this._size)%this._maxSize]=e,this._size+=1):(this._buf[this._head]=e,this._head=(this._head+1)%this._maxSize)}};function Ot(t){return t.subscribe(()=>{})}var sa=64;function $e(t,e={}){let{name:n,maxSize:r,versioning:o,guard:s,backend:a}=e,i=a??new fr(t,r),d=F(i.toArray(),{name:n,describeKind:"state",equals:(w,R)=>w===R,...o!=null?{versioning:o}:{},...s!=null?{guard:s}:{}});function c(){let w=i.toArray();ne(()=>{d.down([[X]],{internal:!0}),d.down([[D,w]],{internal:!0})})}let u=new Map,l=new Map,p=new Map;function f(w,R){return`${w}:${R===void 0?"END":R}`}function m(w){if(w.size<sa)return;let R=w.keys().next();if(R.done)return;let x=w.get(R.value);x!==void 0&&x.dispose(),w.delete(R.value)}function h(w){let R=i.version;try{return w()}finally{i.version!==R&&c()}}function g(w){if(!Number.isInteger(w)||w<0)throw new RangeError(`tail: n must be a non-negative integer (got ${w})`);let R=u.get(w);if(R!==void 0)return u.delete(w),u.set(w,R),R.node;m(u);let x=A([d],([M])=>{let L=M;return w===0||L.length===0?[]:L.slice(Math.max(0,L.length-w))},{initial:i.tail(w),describeKind:"derived"}),_=Ot(x);return u.set(w,{node:x,dispose:_}),x}function y(w,R){if(!Number.isInteger(w)||w<0)throw new RangeError(`slice: start must be a non-negative integer (got ${w})`);if(R!==void 0&&(!Number.isInteger(R)||R<0))throw new RangeError(`slice: stop must be a non-negative integer or undefined (got ${R})`);let x=f(w,R),_=l.get(x);if(_!==void 0)return l.delete(x),l.set(x,_),_.node;m(l);let M=A([d],([S])=>{let E=S;return R===void 0?E.slice(w):E.slice(w,R)},{initial:i.slice(w,R),describeKind:"derived"}),L=Ot(M);return l.set(x,{node:M,dispose:L}),M}function T(w){let R=p.get(w);if(R!==void 0)return R.node;let x=A([d,w],([M,L])=>{let S=M,E=Math.max(0,Math.trunc(L??0));return S.slice(E)},{initial:[],describeKind:"derived"}),_=Ot(x);return p.set(w,{node:x,dispose:_}),x}let b,v;function k(){b===void 0&&(b=te([d],(w,R,x)=>{let _=w[0],L=_!=null&&_.length>0?_.at(-1):x.prevData[0];if(L==null||L.length===0){R.down([[U]]);return}R.emit(L[L.length-1])},{name:n!=null?`${n}::lastValue`:"lastValue",describeKind:"derived",initial:i.size===0?void 0:i.at(i.size-1)}),v=A([d],([w])=>w.length>0,{name:n!=null?`${n}::hasLatest`:"hasLatest",describeKind:"derived",initial:i.size>0}),Ot(b),Ot(v))}let N={entries:d,get size(){return i.size},at(w){return i.at(w)},append(w){h(()=>i.append(w))},appendMany(w){w.length!==0&&h(()=>i.appendMany(w))},clear(){h(()=>i.clear())},trimHead(w){h(()=>i.trimHead(w))},withLatest(){return k(),d},get lastValue(){return k(),b},get hasLatest(){return k(),v},view(w){switch(w.kind){case"tail":return g(w.n);case"slice":return y(w.start,w.stop);case"fromCursor":return T(w.cursor)}},attach(w){let R=w.subscribe(x=>{for(let _ of x)_[0]===D&&N.append(_[1])});return()=>R()},attachStorage(w){if(w.length===0)return()=>{};let R=new Map;for(let _ of w)R.set(_,i.size);(async()=>{for(let _ of w)if(typeof _.loadEntries=="function")try{let M=await Promise.resolve(_.loadEntries());M.entries.length>0&&i.size===0&&(i.restore(M.entries),R.set(_,M.entries.length),c());break}catch{}})();let x=d.subscribe(_=>{for(let M of _){if(M[0]!==D)continue;let L=M[1];for(let S of w){let E=R.get(S)??0;if(L.length<E){try{let K=S.appendEntries(L);K instanceof Promise&&K.catch(()=>{})}catch{}R.set(S,L.length);continue}if(L.length===E)continue;let I=L.slice(E);R.set(S,L.length);try{let K=S.appendEntries(I);K instanceof Promise&&K.catch(()=>{})}catch{}}}});return()=>x()},disposeAllViews(){for(let w of u.values())w.dispose();u.clear();for(let w of l.values())w.dispose();l.clear();for(let w of p.values())w.dispose();p.clear()},dispose(){for(let w of u.values())w.dispose();u.clear();for(let w of l.values())w.dispose();l.clear();for(let w of p.values())w.dispose();p.clear()}};return N}Z();function Ge(t){let e=t.input,n=e.regular+(e.cacheRead??0)+(e.cacheWrite5m??0)+(e.cacheWrite1h??0)+(e.cacheWriteOther??0)+(e.audio??0)+(e.image??0)+(e.video??0)+(e.toolUse??0);if(!e.extensions)return n;let r=0;for(let o of Object.values(e.extensions))r+=o;return n+r}function Ke(t){let e=t.output,n=e.regular+(e.reasoning??0)+(e.audio??0)+(e.predictionAccepted??0)+(e.predictionRejected??0);if(!e.extensions)return n;let r=0;for(let o of Object.values(e.extensions))r+=o;return n+r}function Jo(){return{input:{regular:0},output:{regular:0}}}function ia(t,e){let n=e?.logMax??1e3,r=$e(void 0,{name:e?.name?`${e.name}/stats`:"adapterStats",maxSize:n}),o=F(null,{name:"adapterStats/lastCall"}),s=A([r.entries],([h])=>h.length,{name:"adapterStats/totalCalls",initial:0}),a=A([r.entries],([h])=>h.reduce((g,y)=>g+Ge(y.usage),0),{name:"adapterStats/totalInputTokens",initial:0}),i=A([r.entries],([h])=>h.reduce((g,y)=>g+Ke(y.usage),0),{name:"adapterStats/totalOutputTokens",initial:0}),d=[Y(s),Y(a),Y(i)],c=h=>{r.append(h),o.emit(h)},u=()=>{r.clear(),o.emit(null)},l=Te(t,{invoke(h,g){let y=z(),T=ie(),b=t.model??g?.model??"",v=N=>(c(tt({provider:t.provider,model:t.model??g?.model??N.model??"",tier:g?.tier??N.tier,usage:N.usage??Fe(),startNs:y,startWallClockNs:T,method:"invoke"})),N),k=N=>{let w=N;c(tt({provider:t.provider,model:b,tier:g?.tier,usage:Fe(),startNs:y,startWallClockNs:T,method:"invoke",error:{type:w?.name??"Error",message:w?.message??String(N)}}))};return an(t.invoke(h,g),{onResp:v,onError:k,name:"adapterStats/invokeTap"})},async*stream(h,g){let y=z(),T=ie(),b=t.model??g?.model??"",v;try{for await(let k of t.stream(h,g))k.type==="usage"&&(v=k.usage),yield k;c(tt({provider:t.provider,model:b,tier:g?.tier,usage:v??Fe(),startNs:y,startWallClockNs:T,method:"stream"}))}catch(k){let N=k;throw c(tt({provider:t.provider,model:b,tier:g?.tier,usage:v??Fe(),startNs:y,startWallClockNs:T,method:"stream",error:{type:N?.name??"Error",message:N?.message??String(k)}})),k}}});be(l,"observableAdapter",t);let p=!1;return{adapter:l,stats:{lastCall:o,allCalls:r,totalCalls:s,totalInputTokens:a,totalOutputTokens:i,reset:u,dispose:()=>{if(!p){p=!0;for(let h of d)h();d.length=0}}}}}function aa(t,e){return t==null?0:typeof t=="number"?t:t.thresholdTokens!=null&&t.pricePerMillionAbove!=null&&e>t.thresholdTokens?t.pricePerMillionAbove:t.pricePerMillion}function ln(t="USD"){return{total:0,currency:t}}function mr(t,e,n){let r=Ge(t),o=e.currency??"USD",s=n?.withBreakdown===!0,a=s?{}:null,i=0,d=(g,y,T)=>{if(!y||T==null)return;let b=aa(T,r),v=y*b/1e6;i+=v,s&&(a[g]=(a[g]??0)+v)},c=t.input,u=e.input;if(u&&(d("input.regular",c.regular,u.regular),d("input.cacheRead",c.cacheRead??0,u.cacheRead),d("input.cacheWrite5m",c.cacheWrite5m??0,u.cacheWrite5m),d("input.cacheWrite1h",c.cacheWrite1h??0,u.cacheWrite1h),d("input.cacheWriteOther",c.cacheWriteOther??0,u.cacheWriteOther),d("input.audio",c.audio??0,u.audio),d("input.image",c.image??0,u.image),d("input.video",c.video??0,u.video),d("input.toolUse",c.toolUse??0,u.toolUse),c.extensions&&u.extensions))for(let[g,y]of Object.entries(c.extensions))d(`input.ext.${g}`,y,u.extensions[g]);let l=t.output,p=e.output;if(p&&(d("output.regular",l.regular,p.regular),d("output.reasoning",l.reasoning??0,p.reasoning),d("output.audio",l.audio??0,p.audio),d("output.predictionAccepted",l.predictionAccepted??0,p.predictionAccepted),d("output.predictionRejected",l.predictionRejected??0,p.predictionRejected),l.extensions&&p.extensions))for(let[g,y]of Object.entries(l.extensions))d(`output.ext.${g}`,y,p.extensions[g]);let f=n?.tier;if(f&&e.tierMultipliers){let g=e.tierMultipliers[f];if(g!=null&&(i*=g,s))for(let y of Object.keys(a))a[y]*=g}let m=t.auxiliary,h=e.auxiliary;if(m&&h)for(let[g,y]of Object.entries(m)){let T=h[g];if(T==null||!y)continue;let b=y*T;i+=b,s&&(a[`auxiliary.${g}`]=b)}return s?{total:i,currency:o,breakdown:a}:{total:i,currency:o}}function un(t,e){return`${t}::${e}`}function da(t){let e=new Map,n=new Map,r=(o,s,a)=>{e.set(un(o,s),{provider:o,model:s,pricing:a});let i=n.get(o);i||(i=new Set,n.set(o,i)),i.add(s)};if(t)for(let[o,s,a]of t)r(o,s,a);return{register:r,lookup(o,s){let a=e.get(un(o,s));if(a)return a.pricing;let i=n.get(o);if(!i)return;let d;for(let c of i)if(s.startsWith(c)&&(!d||c.length>d.key.length)){let u=e.get(un(o,c));u&&(d={key:c,pricing:u.pricing})}return d?.pricing},remove(o,s){let a=e.delete(un(o,s));if(a){let i=n.get(o);i?.delete(s),i&&i.size===0&&n.delete(o)}return a},entries(){let o=e.values();return(function*(){for(let{provider:s,model:a,pricing:i}of o)yield[s,a,i]})()}}}function ca(t,e="USD"){return(n,r)=>{let o=t.lookup(r.provider,r.model);return o?mr(n,o,{tier:r.tier,withBreakdown:r.withBreakdown}):ln(e)}}function ua(...t){return(e,n)=>{for(let r of t){let o=r(e,n);if(o.total!==0)return o}return t.length>0?t[0](e,n):ln()}}function la(t,e,n){return t?.pricing?mr(e,t.pricing,n):ln()}mt();Z();function gr(t,e={}){let n=e.breaker??Nt(e),r=Te(t,{async invoke(o,s){if(!n.canExecute())throw new ze;try{let a=await Se(V(t.invoke(o,s)));return n.recordSuccess(),a}catch(a){throw n.recordFailure(a),a}},async*stream(o,s){if(!n.canExecute())throw new ze;try{for await(let a of t.stream(o,s))yield a;n.recordSuccess()}catch(a){throw n.recordFailure(a),a}}});return be(r,"withBreaker",t),{adapter:r,breaker:n}}ge();se();Q();Z();var pn=class extends Error{constructor(n,r,o){super(`Budget exhausted: ${n} (limit=${r}, observed=${o})`);this.which=n;this.limit=r;this.observed=o}name="BudgetExhaustedError"},hr=Object.freeze({calls:0,inputTokens:0,outputTokens:0,usd:0}),Yo=()=>({calls:0,inputTokens:0,outputTokens:0,usd:0});function yr(t,e){let n=$e(void 0,{name:e.name?`${e.name}/log`:"budgetGate/log",maxSize:e.logMax??1e3}),r=F(Yo(),{name:e.name?`${e.name}/totals`:"budgetGate/totals"}),o=A([r],([c])=>{let u=c;return!(e.caps.calls!=null&&u.calls>=e.caps.calls||e.caps.inputTokens!=null&&u.inputTokens>=e.caps.inputTokens||e.caps.outputTokens!=null&&u.outputTokens>=e.caps.outputTokens||e.caps.usd!=null&&u.usd>=e.caps.usd)},{name:e.name?`${e.name}/isOpen`:"budgetGate/isOpen",initial:!0});if(Y(o),e.onExhausted!=null){let c=e.onExhausted,u=!1,l=!0;o.subscribe(p=>{for(let f of p)if(f[0]===D){let m=f[1];if(u&&l&&m===!1){let h=Qo(r.cache??hr,e.caps);h&&c(h)}l=m,u=!0}})}let s=()=>{if(o.cache===!1){let c=r.cache??hr,u=Qo(c,e.caps);return new pn(u??"budget",e.caps[u??"calls"]??0,pa(c,u??"calls"))}},a=(c,u)=>{let l=t.provider,p=tt({provider:l,model:u.model,tier:u.tier,usage:c,startNs:u.startNs,method:u.method,...u.error?{error:u.error}:{}});n.append(p);let f=r.cache??hr,m=e.pricingFn?f.usd+e.pricingFn(c,{model:u.model,provider:l,tier:u.tier}).total:f.usd;r.emit({calls:f.calls+1,inputTokens:f.inputTokens+Ge(c),outputTokens:f.outputTokens+Ke(c),usd:m})},i=()=>{n.clear(),r.emit(Yo())},d=Te(t,{invoke(c,u){let l=s();if(l)return Promise.reject(l);let p=z(),f=t.model??u?.model??"",m=g=>(a(g.usage??Fe(),{model:t.model??u?.model??g.model??"",tier:u?.tier??g.tier,startNs:p,method:"invoke"}),g),h=g=>{let y=g;a(Fe(),{model:f,tier:u?.tier,startNs:p,method:"invoke",error:{type:y?.name??"Error",message:y?.message??String(g)}})};return an(t.invoke(c,u),{onResp:m,onError:h,name:"budgetGate/invokeTap"})},async*stream(c,u){let l=s();if(l)throw l;let p=z(),f;try{for await(let m of t.stream(c,u))m.type==="usage"&&(f=m.usage),yield m;a(f??Fe(),{model:t.model??u?.model??"",tier:u?.tier,startNs:p,method:"stream"})}catch(m){let h=m;throw a(f??Fe(),{model:t.model??u?.model??"",tier:u?.tier,startNs:p,method:"stream",error:{type:h?.name??"Error",message:h?.message??String(m)}}),m}}});return be(d,"withBudgetGate",t),{adapter:d,budget:{totals:r,isOpen:o,log:n,reset:i}}}function Qo(t,e){if(e.calls!=null&&t.calls>=e.calls)return"calls";if(e.inputTokens!=null&&t.inputTokens>=e.inputTokens)return"inputTokens";if(e.outputTokens!=null&&t.outputTokens>=e.outputTokens)return"outputTokens";if(e.usd!=null&&t.usd>=e.usd)return"usd"}function pa(t,e){switch(e){case"calls":return t.calls;case"inputTokens":return t.inputTokens;case"outputTokens":return t.outputTokens;case"usd":return t.usd}}Z();function fa(t,e){let n=e.mock??et({provider:t.provider,model:t.model}),r=typeof e.enabled=="boolean"?e.enabled:void 0,o=r===void 0?V(e.enabled):void 0,s;o&&(s=Y(o));let a=()=>r!==void 0?r:!!o?.cache,i=Te(t,{invoke(c,u){return a()?n.invoke(c,u):t.invoke(c,u)},stream(c,u){return a()?n.stream(c,u):t.stream(c,u)}});return be(i,"withDryRun",t),{adapter:i,dispose:()=>{s&&(s(),s=void 0)}}}function br(t){if(t==null||typeof t!="object")return;let e=t,n=e.status,r=ma(e.headers);if(n!==429&&n!==503&&!va(e.message))return;let o={},s=r("retry-after"),a=ha(s);a!=null&&(o.retryAfterMs=a);let i=r("anthropic-ratelimit-requests-reset");if(i){let f=Xo(i);f!=null&&(o.retryAfterMs=Math.max(o.retryAfterMs??0,f))}let d=r("anthropic-ratelimit-tokens-reset");if(d){let f=Xo(d);f!=null&&(o.retryAfterMs=Math.max(o.retryAfterMs??0,f))}let c=fn(r,"x-ratelimit-limit-requests");c!=null&&(o.rpmCap=c);let u=fn(r,"x-ratelimit-limit-tokens");u!=null&&(o.tpmCap=u);let l=fn(r,"x-ratelimit-remaining-requests"),p=fn(r,"x-ratelimit-remaining-tokens");if(l!=null&&c!=null&&c>0&&(o.usageHint??={},o.usageHint.rpm=1-l/c),p!=null&&u!=null&&u>0&&(o.usageHint??={},o.usageHint.tpm=1-p/u),o.retryAfterMs==null&&e.message){let f=ba(e.message);f!=null&&(o.retryAfterMs=f)}return e.headers&&(o.metadata={headers:ga(e.headers)}),o.retryAfterMs==null&&o.rpmCap==null&&o.tpmCap==null&&o.usageHint==null?o.metadata?o:void 0:o}function ma(t){if(!t)return()=>{};if(typeof t.get=="function"){let r=t;return o=>r.get(o)??r.get(o.toLowerCase())??void 0}let e=t,n={};for(let[r,o]of Object.entries(e)){let s=Array.isArray(o)?o.join(", "):o;s!=null&&(n[r.toLowerCase()]=s)}return r=>n[r.toLowerCase()]}function ga(t){let e={};if(typeof t.forEach=="function")return t.forEach((n,r)=>{e[r]=n}),e;for(let[n,r]of Object.entries(t))r!=null&&(e[n]=Array.isArray(r)?r.join(", "):r);return e}function fn(t,e){let n=t(e);if(n==null)return;let r=Number(n);return Number.isFinite(r)?r:void 0}function ha(t){if(!t)return;let e=t.trim(),n=Number(e);if(Number.isFinite(n)&&n>=0)return n*1e3;let r=Date.parse(e);if(Number.isFinite(r)){let o=r-Date.now();if(o>0)return o}}function Xo(t){if(!t)return;let e=Date.parse(t);if(Number.isFinite(e))return Math.max(0,e-Date.now())}var ya=/retry\s+(?:in|after)\s+(\d+(?:\.\d+)?)\s*(ms|s|sec|seconds?|m|min|minutes?)/i;function ba(t){let e=ya.exec(t);if(!e)return;let n=Number(e[1]);if(!Number.isFinite(n))return;let r=(e[2]??"s").toLowerCase();if(r==="ms")return n;if(r.startsWith("s"))return n*1e3;if(r.startsWith("m"))return n*6e4}var Ta=/rate\s*limit|too\s*many\s*requests|quota|429/i;function va(t){return!!t&&Ta.test(t)}ge();se();Q();mt();Z();Be();function Tr(t){let e=new Error(t);return e.name="AbortError",e}function es(t={}){let e=Math.max(1,t.burstMultiplier??1),n=t.clampCooldownMs??6e4,r=t.rpm!=null?V(t.rpm):F(Number.POSITIVE_INFINITY),o=t.tpm!=null?V(t.tpm):F(Number.POSITIVE_INFINITY),s=F(Number.POSITIVE_INFINITY,{name:"adaptiveRateLimiter/signalRpmCap"}),a=F(Number.POSITIVE_INFINITY,{name:"adaptiveRateLimiter/signalTpmCap"}),i=F({},{name:"adaptiveRateLimiter/lastSignal"}),d=A([r,s],([S,E])=>Math.min(Number(S??1/0),Number(E??1/0)),{name:"adaptiveRateLimiter/effectiveRpm"}),c=A([o,a],([S,E])=>Math.min(Number(S??1/0),Number(E??1/0)),{name:"adaptiveRateLimiter/effectiveTpm"}),u=ht(Number(r.cache??Number.POSITIVE_INFINITY),e),l=ht(Number(o.cache??Number.POSITIVE_INFINITY),e),p=!1,f=!1,m=d.subscribe(S=>{for(let E of S)if(E[0]===D){let I=Number(E[1]);Number.isFinite(I)&&I>0?(u=ht(I,e),p=!1):I===1/0?(u=ht(1/0,e),p=!1):I<=0&&(p=!0)}}),h=c.subscribe(S=>{for(let E of S)if(E[0]===D){let I=Number(E[1]);Number.isFinite(I)&&I>0?(l=ht(I,e),f=!1):I===1/0?(l=ht(1/0,e),f=!1):I<=0&&(f=!0)}}),g=0,y=new pe,T=new pe,b;t.adaptation!=null&&(b=V(t.adaptation).subscribe(E=>{for(let I of E)I[0]===D&&v(I[1])}));function v(S){if(i.emit(S),S.rpmCap!=null&&Number.isFinite(S.rpmCap)&&S.rpmCap>=0&&(s.emit(S.rpmCap),Number.isFinite(n)&&n>0&&y.start(n,()=>s.emit(Number.POSITIVE_INFINITY))),S.tpmCap!=null&&Number.isFinite(S.tpmCap)&&S.tpmCap>=0&&(a.emit(S.tpmCap),Number.isFinite(n)&&n>0&&T.start(n,()=>a.emit(Number.POSITIVE_INFINITY))),S.retryAfterMs!=null&&S.retryAfterMs>0){let E=z()+S.retryAfterMs*1e6;E>g&&(g=E)}}let k=F(0,{name:"adaptiveRateLimiter/pending"}),N=F(Number.POSITIVE_INFINITY,{name:"adaptiveRateLimiter/rpmAvailable"}),w=F(Number.POSITIVE_INFINITY,{name:"adaptiveRateLimiter/tpmAvailable"}),R=S=>{k.emit((k.cache??0)+S)},x=()=>{N.emit(u.available()),w.emit(l.available())};async function _(S={}){let E=S.requestCost??1,I=S.tokenCost??0,K=S.signal;R(1);try{for(;;){if(K?.aborted)throw Tr("AdaptiveRateLimiter.acquire aborted");let q=z();if(g>q){let C=Math.ceil((g-q)/1e6);await mn(C,K);continue}if(E>0&&p||I>0&&f){await mn(250,K);continue}let H=u,G=l;if(!H.tryConsume(E)){await mn(Zo(H,E),K);continue}if(!(I>0?G.tryConsume(I):!0)){H.putBack(E),await mn(Zo(G,I),K);continue}x();return}}finally{R(-1)}}function M(S){S>0?l.tryConsume(S):S<0&&l.putBack(-S),x()}function L(){m(),h(),b?.(),y.cancel(),T.cancel()}return{effectiveRpm:d,effectiveTpm:c,lastSignal:i,pending:k,rpmAvailable:N,tpmAvailable:w,acquire:_,recordUsage:M,recordSignal:v,dispose:L}}function ht(t,e){if(!Number.isFinite(t)||t===1/0)return _t(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER);let n=Math.max(1,t*e),r=t/60;return _t(n,r)}function Zo(t,e){let n=t.available(),r=Math.max(0,e-n);return r<=0?25:Math.min(5e3,Math.max(50,r*100))}function mn(t,e){return t<=0?Promise.resolve():e?.aborted?Promise.reject(Tr("AdaptiveRateLimiter.acquire aborted")):new Promise((n,r)=>{let o=new pe,s,a=()=>{o.cancel(),e&&s&&e.removeEventListener("abort",s)};o.start(t,()=>{a(),n()}),e&&(s=()=>{a(),r(Tr("AdaptiveRateLimiter.acquire aborted"))},e.addEventListener("abort",s,{once:!0}))})}Z();function vr(t,e={}){let n=e.limiter??es({name:e.name??"rateLimiter",rpm:e.rpm,tpm:e.tpm,adaptation:e.adaptation,burstMultiplier:e.burstMultiplier}),r=(a,i)=>e.costFn?e.costFn(a,i):0,o=a=>{let i=br(a);i&&n.recordSignal(i)},s=Te(t,{async invoke(a,i){let d=r(a,i);await n.acquire({requestCost:1,tokenCost:d,signal:i?.signal});try{let c=await Se(V(t.invoke(a,i))),u=c.usage??Jo(),p=Ge(u)+Ke(u)-d;return p>0&&n.recordUsage(p),c}catch(c){throw o(c),c}},async*stream(a,i){let d=r(a,i);await n.acquire({requestCost:1,tokenCost:d,signal:i?.signal});try{let c=0;for await(let l of t.stream(a,i))l.type==="usage"&&(c=Ge(l.usage)+Ke(l.usage)),yield l;let u=c-d;u>0&&n.recordUsage(u)}catch(c){throw o(c),c}}});return be(s,"withRateLimiter",t),{adapter:s,limiter:n}}mt();Z();var At=class extends Error{name="AllTiersExhaustedError";skipped;failed;constructor(e){let n=[];e.failed.size>0&&n.push(`failed=[${[...e.failed.keys()].join(",")}]`),e.skipped.length>0&&n.push(`skipped=[${e.skipped.map(r=>`${r.name}(${r.reason})`).join(",")}]`),super(`All LLM adapter tiers exhausted: ${n.join(" ")}`),this.skipped=e.skipped,this.failed=e.failed}};function wr(t,e={}){if(t.length===0)throw new RangeError("cascadingLlmAdapter: tiers must be non-empty");let n=t.map(s=>({name:s.name,adapter:s.adapter,filter:s.filter,breaker:s.breaker?"canExecute"in s.breaker?s.breaker:Nt(s.breaker):void 0})),r=e.streamRetryBeforeFirstChunk??!0,o={provider:"cascading",model:void 0,async invoke(s,a){let i=[],d=new Map;for(let u=0;u<n.length;u++){let l=n[u];if(l.filter&&!l.filter(s,a)){i.push({name:l.name,reason:"filter"});continue}if(l.breaker&&!l.breaker.canExecute()){i.push({name:l.name,reason:"breaker"});continue}try{let p=await Se(V(l.adapter.invoke(s,a)));return l.breaker?.recordSuccess(),{...p,metadata:{...p.metadata??{},tier:l.name}}}catch(p){d.set(l.name,p),l.breaker?.recordFailure(p);let f=n[u+1];f&&e.onFallback?.(l.name,f.name,p)}}let c={skipped:i,failed:d};throw e.onExhausted?.(c),new At(c)},async*stream(s,a){let i=[],d=new Map;for(let u=0;u<n.length;u++){let l=n[u];if(l.filter&&!l.filter(s,a)){i.push({name:l.name,reason:"filter"});continue}if(l.breaker&&!l.breaker.canExecute()){i.push({name:l.name,reason:"breaker"});continue}let p=!1;try{for await(let f of l.adapter.stream(s,a))p=!0,yield f;l.breaker?.recordSuccess();return}catch(f){if(d.set(l.name,f),l.breaker?.recordFailure(f),p||!r)throw f;let m=n[u+1];m&&e.onFallback?.(l.name,m.name,f)}}let c={skipped:i,failed:d};throw e.onExhausted?.(c),new At(c)}};return be(o,`cascade[${n.map(s=>s.name).join(",")}]`),o}function wa(t,e,n){let r={name:t,adapter:e};return n?.breaker&&(r.breaker=n.breaker),n?.filter&&(r.filter=n.filter),r}Z();Be();function gn(t="aborted"){let e=new Error(t);return e.name="AbortError",e}function ts(t,e){return t<=0?Promise.resolve():e?.aborted?Promise.reject(gn()):new Promise((n,r)=>{let o=new pe,s,a=()=>{o.cancel(),e&&s&&e.removeEventListener("abort",s)};o.start(t,()=>{a(),n()}),e&&(s=()=>{a(),r(gn())},e.addEventListener("abort",s,{once:!0}))})}function kr(t,e={}){let n=e.attempts??3,r=e.baseDelayMs??500,o=e.maxDelayMs??1e4,s=e.strategy??"decorrelated",a=e.jitter??!0,i=e.shouldRetry??ka,d=e.retryStreaming??!0,c=(l,p)=>{if(s==="decorrelated"){let g=Math.min(o,Math.max(r,p*3));return r+Math.random()*(g-r)}let f=s==="exp"?r*2**(l-1):r*l,m=Math.min(o,f);if(!a)return m;let h=m*(.5+Math.random());return Math.min(o,h)},u=Te(t,{async invoke(l,p){if(p?.signal?.aborted)throw gn();let f,m=r;for(let h=1;h<=n;h++)try{return await Se(V(t.invoke(l,p)))}catch(g){if(f=g,h>=n||!i(g,h))throw g;let y=c(h,m);m=y,await ts(y,p?.signal)}throw f},async*stream(l,p){if(p?.signal?.aborted)throw gn();if(!d){for await(let h of t.stream(l,p))yield h;return}let f,m=r;for(let h=1;h<=n;h++){let g=!1;try{for await(let y of t.stream(l,p))g=!0,yield y;return}catch(y){if(f=y,g||h>=n||!i(y,h))throw y;let T=c(h,m);m=T,await ts(T,p?.signal)}}throw f}});return be(u,"withRetry",t),u}function ka(t,e){if(t==null)return!1;let n=t;return n.name==="LLMTimeoutError"?!0:n.name==="AbortError"||n.message==="aborted"||n.name==="DOMException"&&n.code!=null&&Number(n.code)===20||n.name==="BudgetExhaustedError"||n.name==="CircuitOpenError"?!1:n.status!=null?n.status===429||n.status>=500&&n.status<600:n.code&&typeof n.code=="string"&&/^E[A-Z]+$/.test(n.code)?!0:n.message?/network|timeout|socket|fetch|econn|eai_/i.test(n.message):!1}Z();Be();var yt=class extends Error{constructor(n){super(`LLM call timed out after ${n}ms`);this.ms=n}name="LLMTimeoutError"};function xr(t,e){if(e<=0)throw new RangeError("withTimeout: ms must be > 0");let n=s=>{let a=new AbortController,i=!1,d,c=new pe;return s&&(s.aborted?a.abort(s.reason):(d=()=>{c.cancel(),a.abort(s.reason)},s.addEventListener("abort",d,{once:!0}))),c.start(e,()=>{i=!0,a.abort(new yt(e))}),{signal:a.signal,cancel:()=>{c.cancel(),s&&d&&s.removeEventListener("abort",d)},timedOut:()=>i}},r=(s,a)=>{if(!a||s instanceof yt)throw s;let i=s;if(i?.name==="AbortError"||i?.name==="DOMException"&&Number(i.code)===20||s?.message==="aborted"){let c=new yt(e);throw c.cause=s,c}throw s},o=Te(t,{async invoke(s,a){let{signal:i,cancel:d,timedOut:c}=n(a?.signal);try{return await Se(V(t.invoke(s,{...a,signal:i})))}catch(u){return r(u,c())}finally{d()}},async*stream(s,a){let{signal:i,cancel:d,timedOut:c}=n(a?.signal);try{for await(let u of t.stream(s,{...a,signal:i}))yield u}catch(u){r(u,c())}finally{d()}}});return be(o,"withTimeout",t),o}function xa(t,e={}){let n={adapter:t},r=t;if(e.rateLimit){let o=vr(r,e.rateLimit);r=o.adapter,n.rateLimiter=o.limiter}if(e.budget){let o=yr(r,e.budget);r=o.adapter,n.budget=o.budget}if(e.breaker){let o=gr(r,e.breaker);r=o.adapter,n.breaker=o.breaker}if(e.timeoutMs!=null&&(r=xr(r,e.timeoutMs)),e.retry&&(r=kr(r,e.retry)),e.fallback){if(e.name==="fallback")throw new RangeError('resilientAdapter: `name` cannot be "fallback" \u2014 collides with the secondary tier label.');let o={};e.onFallback&&(o.onFallback=e.onFallback),e.onExhausted&&(o.onExhausted=e.onExhausted),r=wr([{name:e.name??"primary",adapter:r},{name:"fallback",adapter:e.fallback}],o)}return e.cache&&(r=Et(r,e.cache)),n.adapter=r,n}Le();ve();Z();se();Qe();Z();Be();function W(t,e){return De("ai",t,e)}function Ra(t){return t!=null&&typeof t.then=="function"}function Rr(t){return typeof t=="object"&&t!==null&&"subscribe"in t&&typeof t.subscribe=="function"&&"cache"in t}function Sa(t){return t!=null&&typeof t=="object"&&Symbol.asyncIterator in t&&typeof t[Symbol.asyncIterator]=="function"}var Na=3e4;function ns(t,e){if(t.status==="settled"){let r=t.cache;if(r!==void 0)return Promise.resolve(r)}let n=e?.timeoutMs??Na;return new Promise((r,o)=>{let s=new pe,a=t.subscribe(i=>{for(let d of i){if(d[0]===D){s.cancel(),a(),r(d[1]);return}if(d[0]===P){s.cancel(),a(),o(d[1]);return}if(d[0]===$){s.cancel(),a(),o(new Error("firstDataFromNode: completed without producing a value"));return}}});s.start(n,()=>{a(),o(new Error(`firstDataFromNode: timed out after ${n}ms`))})})}async function Ct(t){return Ra(t)?Ct(await t):Rr(t)?ns(t):Sa(t)?ns(V(t)):t}function bt(t){let e=t.match(/^```(?:json)?\s*([\s\S]*?)\s*```[\s\S]*$/);return e?e[1]:t}function _a(t,e){let n=V(t),r=e?.refreshTrigger!=null?V(e.refreshTrigger):null,o=e?.name!==void 0?{name:e.name}:void 0,s=ae("frozenContext",o);return r==null?te([n],(a,i,d)=>{if(d.store.emitted===!0)return;let u=a[0],l=u!=null&&u.length>0?u.at(-1):d.prevData[0];if(l!==void 0)return d.store.emitted=!0,i.emit(l),{invalidate:()=>{d.store.emitted=!1}}},{name:e?.name??"frozenContext",describeKind:"derived",initial:null,meta:W("frozen_context",{...s})}):te([n,r],(a,i,d)=>{let c=a[1];if(!(c!=null&&c.length>0))return;let l=a[0],p=l!=null&&l.length>0?l.at(-1):d.prevData[0];i.emit(p)},{name:e?.name??"frozenContext",describeKind:"derived",initial:null,meta:W("frozen_context",{...s})})}Q();se();Q();Z();function rs(t){return t!=null&&typeof t=="object"&&"content"in t?String(t.content):typeof t=="string"?t:String(t)}function Ma(t,e=200){return t.length<=e?t:`${t.slice(0,e)}\u2026`}function Sr(t,e,n,r){let o=r?.format??"text",s=r?.name??"prompt_node";r?.tools!==void 0&&o!=="raw"&&console.warn("promptNode: `tools` is set but `format !== 'raw'`. Tool calls in the response will be silently dropped \u2014 set `format: 'raw'` to receive the full LLMResponse with `toolCalls`.");let a=A(e,d=>{if(d.some(u=>u==null))return[];let c=typeof n=="string"?n:n(...d);return c?[{role:"user",content:c}]:[]},{name:`${s}::messages`,meta:W("prompt_node")});return he(a,d=>!d||d.length===0?F(null):oe(c=>{let u=!1,l=!1,p,f={model:r?.model,temperature:r?.temperature,maxTokens:r?.maxTokens,systemPrompt:r?.systemPrompt,...r?.tools!==void 0?{tools:r.tools}:{}};if(r?.abort){let y=Eo(r.abort);f.signal=y.signal,p=y.dispose}let m;try{m=t.invoke(d,f)}catch(y){return u=!0,c.down([[P,y]]),()=>{p?.()}}let g=V(m).subscribe(y=>{if(!(l||u))for(let T of y){if(u)return;if(T[0]===D){let b=T[1];if(o==="raw")c.emit(b);else try{let v=rs(b),k=o==="json"?JSON.parse(bt(v)):v;c.emit(k)}catch(v){let k=rs(b),N=new Error(`promptNode: failed to parse LLM response as JSON: ${v.message}
7
+ Raw content (first 200 chars): ${Ma(k)}`);u=!0,c.down([[P,N]]);return}}else if(T[0]===P){u=!0,c.down([[P,T[1]]]);return}else if(T[0]===$){u=!0,c.down([[$]]);return}else c.down([T])}});return()=>{l=!0,g(),p?.()}},{name:`${s}::call`,meta:W("prompt_node::call")}),{name:`${s}::output`,meta:r?.meta?{...W("prompt_node::output"),...r.meta}:W("prompt_node::output")})}function Nr(t,e,n,r){let o=n.name??r;return s=>{let a=F(s);return Sr(n.adapter,[a],i=>e(i),{name:o,format:"json",systemPrompt:t,model:n.model,temperature:n.temperature??0,maxTokens:n.maxTokens})}}function _r(t,e){let n=e.maxExistingKeys??100,r=Nr(t,o=>JSON.stringify({input:o.raw,existingKeys:o.existingKeys}),e,"llmExtractor");return(o,s)=>{let a=n===Number.POSITIVE_INFINITY?[...s.keys()]:[...s.keys()].slice(0,n);return r({raw:o,existingKeys:a})}}function Mr(t,e){let n=Nr(t,r=>JSON.stringify({memories:r}),e,"llmConsolidator");return r=>{let o=[...r.entries()].map(([s,a])=>({key:s,value:a}));return n(o)}}Ne();ge();Le();Q();Z();jt();ct();se();Q();Qe();Z();var ye={object:56,array:64,string:40,number:8,boolean:4,null:0,undefined:0,symbol:40,bigint:16,function:120,map:72,set:72,mapEntry:40,setEntry:24,date:24,regexp:48,error:64,url:80,promise:48,weakmap:40,weakset:40},Ea=Symbol.for("sizeof");function os(t){let e=new WeakSet,n=new WeakSet,r=[t],o=0;for(;r.length>0;){let s=r.pop();o+=Oa(s,e,n,r)}return o}function Oa(t,e,n,r){if(t==null)return 0;switch(typeof t){case"number":return ye.number;case"boolean":return ye.boolean;case"string":return ye.string+t.length*2;case"bigint":return ye.bigint+Aa(t);case"symbol":return ye.symbol;case"function":return e.has(t)?0:(e.add(t),ye.function);case"undefined":return 0}let s=t;if(e.has(s))return 0;e.add(s);let a=s[Ea];if(typeof a=="function")try{let c=a.call(s);if(typeof c=="number"&&Number.isFinite(c))return c}catch{}if(s instanceof Date)return ye.date;if(s instanceof RegExp)return ye.regexp+s.source.length*2;if(s instanceof Error){let c=s.message?s.message.length*2:0,u=s.stack?s.stack.length*2:0;return ye.error+c+u}if(typeof URL<"u"&&s instanceof URL)return ye.url+s.href.length*2;if(typeof Promise<"u"&&s instanceof Promise)return ye.promise;if(s instanceof WeakMap)return ye.weakmap;if(s instanceof WeakSet)return ye.weakset;if(s instanceof Map){let c=ye.map;for(let[u,l]of s)c+=ye.mapEntry,r.push(u),r.push(l);return c}if(s instanceof Set){let c=ye.set;for(let u of s)c+=ye.setEntry,r.push(u);return c}if(Array.isArray(s)){let c=ye.array+s.length*8;for(let u of s)r.push(u);return c}if(s instanceof ArrayBuffer)return n.has(s)?0:(n.add(s),s.byteLength);if(ArrayBuffer.isView(s)){let c=s;return n.has(c.buffer)?48:(n.add(c.buffer),c.buffer.byteLength+48)}let i=ye.object,d=Object.keys(s);for(let c of d){i+=ye.string+c.length*2;try{r.push(s[c])}catch{}}return i}function Aa(t){let e=t<0n?-t:t;if(e===0n)return 0;let n=e.toString(2).length;return Math.ceil(n/32)*8}function ss(t,e,n,r={}){let o=e in t.nodes,s=n in t.nodes;if(!o)return hn(e,n,"no-such-from");if(!s)return hn(e,n,"no-such-to");let a=r.maxDepth;if(a!=null&&(!Number.isInteger(a)||a<0))throw new Error("explainPath: maxDepth must be an integer >= 0");if(e===n){if(r.findCycle===!0){let c=Ca(t,e,r);if(c!=null)return c}let d=yn(e,t.nodes[e],0,r);return bn(e,n,[d])}if(a===0)return hn(e,n,"no-path");let i=is(t,e,n,a);return i.found?bn(e,n,as(t,i.pathOrder,r)):hn(e,n,i.truncated?"max-depth-exceeded":"no-path")}function is(t,e,n,r){let o=new Map,s=[{path:n,depth:0}],a=new Set([n]),i=0,d=!1;for(;i<s.length;){let l=s[i++];if(l.path===e)break;if(r!=null&&l.depth>=r){let h=t.nodes[l.path];h?.deps&&h.deps.length>0&&(d=!0);continue}let p=t.nodes[l.path];if(p==null)continue;let f=p.deps??[],m=new Map;for(let h=0;h<f.length;h++){let g=f[h];if(!g)continue;let y=m.get(g);y==null&&(y=[],m.set(g,y)),y.push(h)}for(let[h,g]of m)a.has(h)||(a.add(h),o.set(h,{from:l.path,depIndices:g}),s.push({path:h,depth:l.depth+1}))}if(!o.has(e))return{found:!1,pathOrder:[],truncated:d};let c=[{path:e}],u=e;for(;u!==n;){let l=o.get(u);if(l==null)return{found:!1,pathOrder:[],truncated:!1};c[c.length-1].depIndices=l.depIndices,c.push({path:l.from}),u=l.from}return{found:!0,pathOrder:c,truncated:!1}}function Ca(t,e,n){let r=t.nodes[e];if(r==null)return null;let o=r.deps??[],s=[];for(let i=0;i<o.length;i++)o[i]===e&&s.push(i);if(s.length>0){let i=yn(e,r,0,n);i.dep_index=s[0];let d=yn(e,r,1,n);return bn(e,e,[i,d])}let a=null;for(let i=0;i<o.length;i++){let d=o[i];if(!d||d===e)continue;let c=is(t,d,e,n.maxDepth);c.found&&(a==null||c.pathOrder.length<a.pathOrder.length)&&(a=c,a={found:!0,pathOrder:[{path:e,depIndices:[i]},...c.pathOrder],truncated:!1})}return a==null?null:bn(e,e,as(t,a.pathOrder,n))}function as(t,e,n){return e.map((r,o)=>{let s=t.nodes[r.path],a=yn(r.path,s,o,n);return r.depIndices!=null&&r.depIndices.length>0&&(a.dep_index=r.depIndices[0],r.depIndices.length>1&&(a.dep_indices=[...r.depIndices])),a})}function yn(t,e,n,r){let o={path:t,type:e.type,hop:n};e.status!==void 0&&(o.status=e.status),"value"in e&&(o.value=e.value),e.v!=null&&(o.v=e.v);let s=r.annotations?.get(t)??e.annotation;s!=null&&(o.annotation=s);let a=r.lastMutations?.get(t)??e.lastMutation;return a!=null&&(o.lastMutation=a),o}function bn(t,e,n){return ds(t,e,!0,"ok",n)}function hn(t,e,n){return ds(t,e,!1,n,[])}function ds(t,e,n,r,o){let s=La(t,e,n,r,o);return{from:t,to:e,found:n,reason:r,steps:o,text:s,toJSON(){return{from:t,to:e,found:n,reason:r,steps:o}}}}function La(t,e,n,r,o){if(!n)switch(r){case"no-such-from":return`explainPath: no node named "${t}"`;case"no-such-to":return`explainPath: no node named "${e}"`;case"max-depth-exceeded":return`explainPath: no path from "${t}" to "${e}" within maxDepth`;default:return`explainPath: no path from "${t}" to "${e}"`}let s=[`Causal path: ${t} \u2192 ${e} (${o.length} step(s))`];for(let a of o){let d=` ${a.hop===0?"\xB7":"\u2193"} ${a.path} (${a.type}${a.status?`/${a.status}`:""})`;if(s.push(d),"value"in a&&s.push(` value: ${Da(a.value)}`),a.annotation!=null&&s.push(` annotation: ${a.annotation}`),a.lastMutation!=null){let c=a.lastMutation.actor;s.push(` actor: ${c.type}${c.id?`:${c.id}`:""}`)}}return s.join(`
8
+ `)}function Da(t){if(t===void 0)return"<sentinel>";if(t===null)return"null";if(typeof t=="string")return JSON.stringify(t);if(typeof t=="number"||typeof t=="boolean"||typeof t=="bigint")return String(t);try{let e=JSON.stringify(t);return e.length>80?`${e.slice(0,77)}...`:e}catch{return String(t)}}jt();Ne();ge();ct();se();Le();ve();Q();ge();function Er(t,e){if(Object.is(t,e))return!0;if(t==null||e==null||typeof t!="object"||typeof e!="object")return!1;if(Array.isArray(t)){if(!Array.isArray(e)||t.length!==e.length)return!1;for(let s=0;s<t.length;s++)if(!Er(t[s],e[s]))return!1;return!0}if(Array.isArray(e))return!1;let n=Object.keys(t),r=Object.keys(e);if(n.length!==r.length)return!1;let o=new Set(r);for(let s of n)if(!o.has(s)||!Er(t[s],e[s]))return!1;return!0}function cs(t,e){return`${t}\0${e}`}function Or(t,e){let n=[],r=new Set(t.subgraphs),o=new Set(e.subgraphs),s=[];for(let g of o)r.has(g)||s.push(g);s.sort();for(let g of s)n.push({type:"subgraph-mounted",path:g});let a=new Set(Object.keys(t.nodes)),i=new Set(Object.keys(e.nodes)),d=[];for(let g of i)a.has(g)||d.push(g);d.sort();for(let g of d)n.push({type:"node-added",path:g,node:{...e.nodes[g]}});let c=[];for(let g of i){if(!a.has(g))continue;let y=t.nodes[g]?.meta,T=e.nodes[g]?.meta;y==null&&T==null||Er(y??{},T??{})||c.push(g)}c.sort();for(let g of c)n.push({type:"node-meta-changed",path:g,prevMeta:t.nodes[g]?.meta??{},nextMeta:e.nodes[g]?.meta??{}});let u=new Map;for(let g of t.edges)u.set(cs(g.from,g.to),g);let l=new Map;for(let g of e.edges)l.set(cs(g.from,g.to),g);let p=[];for(let[g,y]of l)u.has(g)||p.push(y);p.sort((g,y)=>g.from<y.from?-1:g.from>y.from?1:g.to<y.to?-1:g.to>y.to?1:0);for(let g of p)n.push({type:"edge-added",from:g.from,to:g.to});let f=[];for(let[g,y]of u)l.has(g)||f.push(y);f.sort((g,y)=>g.from<y.from?-1:g.from>y.from?1:g.to<y.to?-1:g.to>y.to?1:0);for(let g of f)n.push({type:"edge-removed",from:g.from,to:g.to});let m=[];for(let g of a)i.has(g)||m.push(g);m.sort();for(let g of m)n.push({type:"node-removed",path:g});let h=[];for(let g of r)o.has(g)||h.push(g);h.sort();for(let g of h)n.push({type:"subgraph-unmounted",path:g});return{events:n,flushedAt_ns:z()}}Z();Be();Yn();Ln();ve();function us(t,e){let n=e?.topN??10,r=t.describe({detail:"standard"}),o=[],s=t._collectObserveTargets;typeof s=="function"&&s.call(t,"",o);let a=new Map;for(let[p,f]of o)a.set(p,f);let i=[];for(let[p,f]of Object.entries(r.nodes)){let m=a.get(p),h=m instanceof le?m:null,g=h?os(h.cache):0,y=h?h._sinkCount:0,T=f.deps?.length??0,b=f.type==="effect"&&y===0,v=y===0?f.type==="effect"?"orphan-effect":f.type==="derived"?"idle-derived":f.type==="producer"?"idle-producer":null:null;i.push({path:p,type:f.type,status:f.status??"unknown",valueSizeBytes:g,subscriberCount:y,depCount:T,isOrphanEffect:b,orphanKind:v})}let d=i.reduce((p,f)=>p+f.valueSizeBytes,0),c=(p,f)=>[...i].sort(f??((m,h)=>h[p]-m[p])).slice(0,n),u=i.filter(p=>p.orphanKind!=null),l=i.filter(p=>p.isOrphanEffect);return{nodeCount:i.length,edgeCount:r.edges.length,subgraphCount:r.subgraphs.length,nodes:i,totalValueSizeBytes:d,hotspots:{byValueSize:c("valueSizeBytes"),bySubscriberCount:c("subscriberCount"),byDepCount:c("depCount")},orphans:u,orphanEffects:l}}var de="::",_e="__meta__",rt=1;function ls(t,e){let n=Math.max(16,t.size*4),r=0;for(;t.size>0;){if(r++>=n){console.error(`[Graph "${e}".destroy] disposer drain exceeded cap (${n}); ${t.size} disposer(s) discarded`),t.clear();return}let o=t.values().next();if(o.done)return;let s=o.value;t.delete(s);try{s()}catch(a){console.error(`[Graph "${e}".destroy] disposer threw:`,a)}}}function hs(t){return t!=null&&typeof t=="object"&&"cache"in t&&typeof t.subscribe=="function"&&typeof t.down=="function"}function Ia(t){if(t!=null)return hs(t)?t.cache:t}function ot(t){return t!=null&&typeof t=="object"&&"cache"in t&&typeof t.subscribe=="function"&&typeof t.down=="function"}function Ue(t){return ot(t)?t.cache??"":t}function ps(t){return ot(t)?t.cache??0:t}function fs(t){return ot(t)?t.cache??!1:t}function Pa(t){let e=[];for(let n of Object.keys(t).sort()){let r=t[n].v;r!=null&&e.push(`${n} ${r.id} ${r.version}`)}return e.join(`
9
+ `)}function ms(t){if(t.version!==rt)throw new Error(`unsupported snapshot version ${String(t.version)} (expected ${rt})`);for(let e of["name","nodes","edges","subgraphs"])if(!(e in t))throw new Error(`snapshot missing required key "${e}"`);if(typeof t.name!="string")throw new TypeError("snapshot 'name' must be a string");if(typeof t.nodes!="object"||t.nodes===null||Array.isArray(t.nodes))throw new TypeError("snapshot 'nodes' must be an object");if(!Array.isArray(t.edges))throw new TypeError("snapshot 'edges' must be an array");if(!Array.isArray(t.subgraphs))throw new TypeError("snapshot 'subgraphs' must be an array")}function Ga(t,e){let n=new WeakMap,r=(o,s)=>{if(Object.is(o,s))return!0;if(o==null||s==null||typeof o!="object"||typeof s!="object")return!1;let a=n.get(o);if(a==null&&(a=new WeakSet,n.set(o,a)),a.has(s))return!0;a.add(s);let i=o.constructor,d=s.constructor;if(i!==d)return!1;if(o instanceof Date)return o.getTime()===s.getTime();if(o instanceof RegExp)return o.source===s.source&&o.flags===s.flags;if(Array.isArray(o)){let p=s;if(o.length!==p.length)return!1;for(let f=0;f<o.length;f++)if(!r(o[f],p[f]))return!1;return!0}if(o instanceof Map){let p=s;if(o.size!==p.size)return!1;for(let[f,m]of o)if(!p.has(f)||!r(m,p.get(f)))return!1;return!0}if(o instanceof Set){let p=s;if(o.size!==p.size)return!1;for(let f of o){let m=!1;for(let h of p)if(r(f,h)){m=!0;break}if(!m)return!1}return!0}if(ArrayBuffer.isView(o)){let p=o,f=s;if(p.length!==f.length)return!1;for(let m=0;m<p.length;m++)if(p[m]!==f[m])return!1;return!0}let c=Object.keys(o),u=Object.keys(s);if(c.length!==u.length)return!1;let l=new Set(u);for(let p of c)if(!l.has(p)||!r(o[p],s[p]))return!1;return!0};return r(t,e)}function Fa(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Tn(t){let e="^";for(let n=0;n<t.length;n+=1){let r=t[n];if(r==="*"){e+=".*";continue}if(r==="?"){e+=".";continue}if(r==="["){let o=t.indexOf("]",n+1);if(o<=n+1){e+="\\[";continue}let s=t.slice(n+1,o);s.startsWith("!")&&(s=`^${s.slice(1)}`),s=s.replace(/\\/g,"\\\\"),e+=`[${s}]`,n=o;continue}e+=Fa(r)}return e+="$",new RegExp(e)}var $a={data:"\x1B[32m",dirty:"\x1B[33m",resolved:"\x1B[36m",invalidate:"\x1B[93m",pause:"\x1B[90m",resume:"\x1B[96m",complete:"\x1B[34m",error:"\x1B[31m",teardown:"\x1B[91m",derived:"\x1B[35m",path:"\x1B[90m",reset:"\x1B[0m"},ja={data:"",dirty:"",resolved:"",invalidate:"",pause:"",resume:"",complete:"",error:"",teardown:"",derived:"",path:"",reset:""};function Ar(t){if(typeof t=="string")return JSON.stringify(t);if(typeof t=="number"||typeof t=="boolean"||t==null)return String(t);try{return JSON.stringify(t)}catch{return"[unserializable]"}}function Ba(t){return t==="none"?ja:t==="ansi"||t==null?$a:{data:t.data??"",dirty:t.dirty??"",resolved:t.resolved??"",invalidate:t.invalidate??"",pause:t.pause??"",resume:t.resume??"",complete:t.complete??"",error:t.error??"",teardown:t.teardown??"",derived:t.derived??"",path:t.path??"",reset:t.reset??""}}function gs(t){if(t==null)return{};let e=t.detail;return e==="full"?{...t,structured:t.structured??!0,timeline:t.timeline??!0,causal:t.causal??!0,derived:t.derived??!0}:e==="minimal"?{...t,structured:t.structured??!0}:t.format==="stage-log"?{...t,structured:t.structured??!0,timeline:t.timeline??!0}:t}function Va(t,e,n){for(let r=0;r<t.length;r++){let o=t.charCodeAt(r);if(o<32||o===127)throw new Error(`Graph "${e}": ${n} "${t}" must not contain control character (U+${o.toString(16).padStart(4,"0").toUpperCase()} at index ${r})`)}}function Cr(t,e,n){if(t==="")throw new Error(`Graph "${e}": ${n} name must be non-empty`);if(t.includes(de))throw new Error(`Graph "${e}": ${n} "${t}" must not contain '${de}' (path separator)`);if(t===_e)throw new Error(`Graph "${e}": ${n} name "${_e}" is reserved for meta companion paths`);Va(t,e,n)}function Ka(t,e){if(t==="")throw new Error(`Graph "${e}": resolve path must be non-empty`);let n=t.split(de);for(let r of n)if(r==="")throw new Error(`Graph "${e}": resolve path has empty segment`);return n}function za(t,e){let n=!1;for(let o of t)if(!e.isMetaPassthrough(o[0])){n=!0;break}return n?t.filter(o=>e.isMetaPassthrough(o[0])):t}function ys(t){for(let e of t._mounts.values())ys(e);for(let e of t._nodes.values())try{e.down([[ue]],{internal:!0})}catch{}}var ce=class t{name;opts;config;_nodes=new Map;_nodeToName=new WeakMap;_mounts=new Map;_parent=void 0;_storageDisposers=new Set;_disposers=new Set;_destroyed=!1;_topology;_topologyEmitters=new Set;_factory;_factoryArgs;constructor(e,n){if(e==="")throw new Error("Graph name must be non-empty");if(e.includes(de))throw new Error(`Graph name must not contain '${de}' (got "${e}")`);if(e===_e)throw new Error(`Graph name "${_e}" is reserved for meta companion paths`);this.name=e,this.opts=Object.freeze({...n??{}}),this.config=n?.config??ut,this._traceRing=new Xe(n?.traceCapacity??1e3),n?.versioning!=null&&this.setVersioning(n.versioning),typeof n?.factory=="string"&&(this._factory=n.factory,n.factoryArgs!==void 0&&(this._factoryArgs=n.factoryArgs))}tagFactory(e,n){return this._factory=e,this._factoryArgs=n,this}ancestors(e=!0){let n=[],r=e?this:this._parent;for(;r!=null;)n.push(r),r=r._parent;return n}get topology(){return this._topology==null&&(this._topology=oe(e=>{let n=r=>{e.emit(r)};return this._topologyEmitters.add(n),()=>{this._topologyEmitters.delete(n)}},{name:`${this.name}_topology`})),this._topology}_emitTopology(e){if(!(this._topology==null||this._topologyEmitters.size===0))for(let n of this._topologyEmitters)n(e)}nameOf(e){return this._nodeToName.get(e)}add(e,n){let r=e.name,o=n?.name??r;if(o==null||o==="")throw new Error(`Graph "${this.name}": graph.add requires a non-empty name \u2014 pass via opts.name or set it on the node (e.g. state(0, { name: "x" }))`);let s=o,a=n?.annotation;if(Cr(s,this.name,"add"),this._mounts.has(s))throw new Error(`Graph "${this.name}": name "${s}" is already a mount point`);if(this._nodes.has(s))throw new Error(`Graph "${this.name}": node "${s}" already exists`);let i=this._nodeToName.get(e);if(i!==void 0)throw new Error(`Graph "${this.name}": node instance already registered as "${i}"`);return this._nodes.set(s,e),this._nodeToName.set(e,s),this._emitTopology({kind:"added",name:s,nodeKind:"node"}),a!=null&&(this._annotations.set(s,a),this.config.inspectorEnabled&&this._traceRing.push({path:s,annotation:a,timestamp_ns:z()})),e}setVersioning(e){if(e!=null)for(let n of this._nodes.values())n instanceof le&&n._applyVersioning(e)}remove(e){Cr(e,this.name,"remove");let n=this._mounts.get(e);if(n){let s={kind:"mount",nodes:[],mounts:[]},a=[];n._collectObserveTargets("",a);for(let[i,d]of a)i.includes(`${de}${_e}${de}`)||s.nodes.push(i);return s.nodes.sort(),s.mounts.push(e),s.mounts.push(...n._collectSubgraphs(`${e}${de}`)),this._mounts.delete(e),n._parent=void 0,ys(n),this._emitTopology({kind:"removed",name:e,nodeKind:"mount",audit:s}),s}let r=this._nodes.get(e);if(!r)throw new Error(`Graph "${this.name}": unknown node or mount "${e}"`);this._nodes.delete(e),this._nodeToName.delete(r),r.down([[ue]],{internal:!0});let o={kind:"node",nodes:[e],mounts:[]};return this._emitTopology({kind:"removed",name:e,nodeKind:"node",audit:o}),o}removeAll(e){let n=typeof e=="function"?e:(()=>{let s=Tn(e);return a=>s.test(a)})(),r={kind:"mount",nodes:[],mounts:[]},o=[...this._nodes.keys(),...this._mounts.keys()].filter(s=>n(s));for(let s of o){let a=this.remove(s);r.nodes.push(...a.nodes),r.mounts.push(...a.mounts)}return r.nodes.sort(),r.mounts.sort(),r}[Symbol.iterator](){let e=[...this._nodes.keys()].sort(),n=this._nodes,r=0;return{[Symbol.iterator](){return this},next(){if(r>=e.length)return{value:void 0,done:!0};let o=e[r++];return{value:[o,n.get(o)],done:!1}}}}node(e){if(e==="")throw new Error(`Graph "${this.name}": node name must be non-empty`);if(e.includes(de))return this.resolve(e);let n=this._nodes.get(e);if(!n)throw new Error(`Graph "${this.name}": unknown node "${e}"`);return n}get(e){return this.node(e).cache}set(e,n,r){let o=r?.internal===!0;this.node(e).down([[D,n]],{actor:r?.actor,internal:o,delivery:"write"})}setAll(e,n){let r=Symbol.iterator in e?e:Object.entries(e);ne(()=>{for(let[o,s]of r)this.set(o,s,n)})}invalidate(e,n){let r=n?.internal===!0;this.node(e).down([[Oe]],{actor:n?.actor,internal:r,delivery:"write"})}error(e,n,r){let o=r?.internal===!0;this.node(e).down([[P,n]],{actor:r?.actor,internal:o,delivery:"write"})}complete(e,n){let r=n?.internal===!0;this.node(e).down([[$]],{actor:n?.actor,internal:r,delivery:"write"})}edges(e){let n=e?.recursive===!0,r=new Map;if(!n){for(let[d,c]of this._nodes)r.set(c,d);let i=[];for(let[d,c]of this._nodes)if(c instanceof le)for(let u of c._deps){let l=r.get(u.node);l!=null&&i.push([l,d])}return i.sort((d,c)=>d[0]<c[0]?-1:d[0]>c[0]?1:d[1]<c[1]?-1:d[1]>c[1]?1:0),i}let o=[];this._collectObserveTargets("",o);let s=new Map;for(let[i,d]of o)s.set(d,i);let a=[];for(let[i,d]of o)if(d instanceof le)for(let c of d._deps){let u=s.get(c.node);u!=null&&a.push([u,i])}return a.sort((i,d)=>i[0]<d[0]?-1:i[0]>d[0]?1:i[1]<d[1]?-1:i[1]>d[1]?1:0),a}mount(e,n){if(n===void 0){let o=new t(e);return this.mount(e,o)}if(typeof n=="function"){let o=new t(e);return n(o),this.mount(e,o)}let r=n;if(Cr(e,this.name,"mount"),this._nodes.has(e))throw new Error(`Graph "${this.name}": cannot mount at "${e}" \u2014 node with that name exists`);if(this._mounts.has(e))throw new Error(`Graph "${this.name}": mount "${e}" already exists`);if(r===this)throw new Error(`Graph "${this.name}": cannot mount a graph into itself`);if(r._parent!=null)throw new Error(`Graph "${this.name}": this child graph is already mounted on "${r._parent.name}"`);for(let o=this;o!=null;o=o._parent)if(o===r)throw new Error(`Graph "${this.name}": mount("${e}", \u2026) would create a mount cycle`);return this._mounts.set(e,r),r._parent=this,this._emitTopology({kind:"added",name:e,nodeKind:"mount"}),r}resolve(e){let n=Ka(e,this.name);return this._resolveFromSegments(n)}tryResolve(e){try{return this.resolve(e)}catch{return}}_resolveFromSegments(e){let n=e;if(n[0]===this.name&&(n=n.slice(1),n.length===0))throw new Error(`Graph "${this.name}": resolve path ends at graph name only`);let r=n[0],o=n.slice(1);if(o.length===0){let i=this._nodes.get(r);if(i)return i;throw this._mounts.has(r)?new Error(`Graph "${this.name}": path ends at subgraph "${r}" \u2014 not a node (GRAPHREFLY-SPEC \xA73.5)`):new Error(`Graph "${this.name}": unknown name "${r}"`)}let s=this._nodes.get(r);if(s&&o.length>0&&o[0]===_e)return this._resolveMetaChainFromNode(s,o,n.join(de));let a=this._mounts.get(r);if(!a)throw this._nodes.has(r)?new Error(`Graph "${this.name}": "${r}" is a node; trailing path "${o.join(de)}" is invalid`):new Error(`Graph "${this.name}": unknown mount or node "${r}"`);return a.resolve(o.join(de))}_resolveMetaChainFromNode(e,n,r){let o=e,s=0,a=[...n];for(;s<a.length;){if(a[s]!==_e)throw new Error(`Graph "${this.name}": expected ${_e} segment in meta path "${r}"`);if(s+1>=a.length)throw new Error(`Graph "${this.name}": meta path requires a key after ${_e} in "${r}"`);let i=a[s+1],d=o.meta[i];if(!d)throw new Error(`Graph "${this.name}": unknown meta "${i}" in path "${r}"`);o=d,s+=2}return o}signal(e,n){if(n?.internal!==!0){for(let o of e)if(this.config.messageTier(o[0])===3)throw new Error(`Graph "${this.name}": Graph.signal() rejects tier-3 messages (DATA / RESOLVED). Broadcast is for control-plane tiers (START / DIRTY / INVALIDATE / PAUSE / RESUME / COMPLETE / ERROR / TEARDOWN). For per-node value writes, use Graph.set or graph.node(name).down(...).`)}let r=[];if(this._signalDeliver(e,n??{},new Set,r),r.length>0)throw r[0]}_signalDeliver(e,n,r,o){for(let d of this._mounts.values())d._signalDeliver(e,n,r,o);let a=n.internal===!0?{internal:!0}:{actor:n.actor,delivery:"signal"},i=za(e,this.config);for(let d of[...this._nodes.keys()].sort()){let c=this._nodes.get(d);if(!r.has(c)){r.add(c);try{c.down(e,a)}catch(u){if(u instanceof Ce)throw u;o.push(u)}i.length!==0&&this._signalMetaSubtree(c,i,r,a,o)}}}_signalMetaSubtree(e,n,r,o,s){for(let a of Object.keys(e.meta).sort()){let i=e.meta[a];if(!r.has(i)){r.add(i);try{i.down(n,o)}catch(d){if(d instanceof Ce)throw d;s.push(d)}this._signalMetaSubtree(i,n,r,o,s)}}}describe(e){if(e?.reactive==="diff")return this._describeReactiveDiff(e);if(e?.reactive===!0)return this._describeReactive(e);let n=Ia(e?.actor),r=e?.filter;if(e?.detail!=null&&e?.fields!=null)throw new TypeError("Graph.describe(): pass either `detail` or `fields`, not both. `detail: 'spec'` is the canonical spec projection; use `fields` only when you need a custom subset.");let o=Wn(e?.detail,e?.fields),s=e?.detail==="spec",a=o,i=[];this._collectObserveTargets("",i);let d=new Map;for(let[v,k]of i)d.set(k,v);let c=[];{let v=i.map(([,w])=>w),k=new Set(d.values()),N=0;for(;v.length>0;){let w=v.shift();if(w instanceof le)for(let R of w._deps){let x=R.node;if(d.has(x))continue;let _=x.name??"",M=_;if(!M||k.has(M))if(_){let L=2;for(;k.has(`${_}#${L}`);)L++;M=`${_}#${L}`}else for(M=`__internal__/${N++}`;k.has(M);)M=`__internal__/${N++}`;d.set(x,M),k.add(M),c.push([M,x]),v.push(x)}}}let u=[...i,...c],l={};for(let[v,k]of u){if(n!=null&&!k.allowsObserve(n))continue;let N=Hn(k,a,s),w=k instanceof le?k._deps.map(M=>d.get(M.node)??M.node.name??""):[],{name:R,...x}=N,_={...x,deps:w};if(!s){let M=this._annotations.get(v);M!=null&&(_.annotation=M)}if(r!=null)if(typeof r=="function"){let M=r;if(!(M.length>=2?M(v,_):M(_)))continue}else{let M=!0;for(let[L,S]of Object.entries(r)){let E=L==="deps_includes"?"depsIncludes":L==="meta_has"?"metaHas":L;if(E==="depsIncludes"){if(!_.deps.includes(String(S))){M=!1;break}continue}if(E==="metaHas"){if(!Object.hasOwn(_.meta??{},String(S))){M=!1;break}continue}if(_[E]!==S){M=!1;break}}if(!M)continue}l[v]=_}let p=new Set(Object.keys(l)),f=[];for(let[v,k]of u)if(k instanceof le)for(let N of k._deps){let w=d.get(N.node);w!=null&&f.push([w,v])}f.sort((v,k)=>v[0]<k[0]?-1:v[0]>k[0]?1:v[1]<k[1]?-1:v[1]>k[1]?1:0);let m=f.map(([v,k])=>({from:v,to:k}));(n!=null||r!=null)&&(m=m.filter(v=>p.has(v.from)&&p.has(v.to)));let h=this._collectSubgraphs(""),g=n!=null||r!=null?h.filter(v=>{let k=`${v}${de}`;return[...p].some(N=>N===v||N.startsWith(k))}):h,y=this,T=e;return{name:this.name,nodes:l,edges:m,subgraphs:g,...this._factory!==void 0?{factory:this._factory}:{},...this._factoryArgs!==void 0?{factoryArgs:this._factoryArgs}:{},expand(v){let k={...T};return Array.isArray(v)?(k.fields=v,k.detail=void 0):(k.detail=v,k.fields=void 0),y.describe(k)}}}_collectSubgraphs(e){let n=[];for(let r of[...this._mounts.keys()].sort()){let o=e===""?r:`${e}${r}`;n.push(o),n.push(...this._mounts.get(r)._collectSubgraphs(`${o}${de}`))}return n}resourceProfile(e){return us(this,e)}reachable(e,n,r={}){return r.withDetail===!0?Lr(this.describe(),e,n,{...r,withDetail:!0}):Lr(this.describe(),e,n,r)}explain(e,n,r){return r?.reactive===!0?this._explainReactive(e,n,r):this._explainStatic(Ue(e),Ue(n),{...r?.maxDepth!==void 0?{maxDepth:ps(r.maxDepth)}:{},...r?.findCycle!==void 0?{findCycle:fs(r.findCycle)}:{}})}_explainStatic(e,n,r){let o=this.describe({detail:"full"}),s=new Map(this._annotations),a=new Map;for(let[i,d]of Object.entries(o.nodes))d.lastMutation!=null&&a.set(i,d.lastMutation);return ss(o,e,n,{...r?.maxDepth!=null?{maxDepth:r.maxDepth}:{},...r?.findCycle===!0?{findCycle:!0}:{},annotations:s,lastMutations:a})}_describeReactive(e){let n={...e,reactive:!1},r=e.reactiveName??"describe",o=0,s=F(o,{name:`${r}_version`}),a=this.observe({timeline:!0,structured:!0}),i=!1,d=!1,c=()=>{i||d||(i=!0,dt(()=>{i=!1,!d&&(o+=1,s.emit(o))}))},u=a.onEvent(T=>{let b=T.type;b!=="data"&&b!=="error"&&b!=="complete"&&b!=="teardown"||c()}),l=[],p=new WeakSet,f=T=>{if(p.has(T)||d)return;p.add(T);let b=T.topology.subscribe(v=>{for(let k of v){if(k[0]!==D)continue;let N=k[1];if(c(),N.kind==="added"&&N.nodeKind==="mount"){let w=T._mounts.get(N.name);w!=null&&f(w)}}});l.push(b);for(let v of T._mounts.keys()){let k=T._mounts.get(v);k!=null&&f(k)}};f(this);let m,h=e.actor;hs(h)&&(m=h.subscribe(T=>{let b=!1,v=!1;for(let k of T){let N=k[0];N===D?b=!0:(N===$||N===P||N===ue)&&(v=!0)}b&&c(),v&&(m?.(),m=void 0,c())}));let g;try{g=A([s],()=>this.describe(n),{name:r,describeKind:"derived",meta:{domain:"audit",kind:"describe"},equals:(T,b)=>T===b})}catch(T){u(),m?.();for(let b of l)b();throw a.dispose(),T}let y=Y(g);return{node:g,dispose(){d=!0,u(),m?.();for(let T of l)T();l.length=0,a.dispose(),y()}}}_describeReactiveDiff(e){let n={...e,reactive:!1},r=e.reactiveName??"describe-diff",o={name:this.name,nodes:{},edges:[],subgraphs:[]},s=this.describe(n),a=Or(o,s),i=F(a,{name:r,meta:{domain:"audit",kind:"describe-diff"},equals:(p,f)=>p===f}),d=this._describeReactive({...e,reactiveName:void 0}),c=!1,u=d.node.subscribe(p=>{if(!c)for(let f of p){if(f[0]!==D)continue;let m=f[1],h=Or(s,m);s=m,h.events.length!==0&&i.emit(h)}}),l=Y(i);return{node:i,dispose(){c=!0,u(),d.dispose(),i.down([[ue,"describe-diff disposed"]]),l()}}}_explainReactive(e,n,r){let o=0,s=F(o,{name:"explain_version"}),a=this.observe({timeline:!0,structured:!0}),i=!1,d=!1,c=()=>{i||d||(i=!0,dt(()=>{i=!1,!d&&(o+=1,s.emit(o))}))},u=a.onEvent(T=>{let b=T.type;b!=="data"&&b!=="error"&&b!=="complete"&&b!=="teardown"||c()}),l=[];e!=null&&ot(e)&&l.push(e),n!=null&&ot(n)&&l.push(n),r?.maxDepth!=null&&ot(r.maxDepth)&&l.push(r.maxDepth),r?.findCycle!=null&&ot(r.findCycle)&&l.push(r.findCycle);let p=()=>{for(let T of l)if(T.cache===void 0)return!1;return!0},f=()=>{let T=Ue(e),b=Ue(n);return{from:T,to:b,found:!1,reason:"pending",steps:[],text:"(awaiting reactive args)",toJSON:()=>({from:T,to:b,found:!1,reason:"pending",steps:[]})}},m;try{m=A([s],()=>{if(!p())return f();let T=Ue(e),b=Ue(n),v={...r?.maxDepth!==void 0?{maxDepth:ps(r.maxDepth)}:{},...r?.findCycle!==void 0?{findCycle:fs(r.findCycle)}:{}};return this._explainStatic(T,b,v)},{name:r?.name??"explain",describeKind:"derived",meta:{domain:"audit",kind:"explain_path",from:Ue(e),to:Ue(n)},equals:(T,b)=>T.found===b.found&&T.reason===b.reason&&T.steps.length===b.steps.length&&Ua(T.steps,b.steps)})}catch(T){throw u(),a.dispose(),T}let h=Y(m),g=[],y=T=>{let b;return b=T.subscribe(v=>{let k=!1,N=!1;for(let w of v){let R=w[0];R===D?k=!0:(R===$||R===P||R===ue)&&(N=!0)}(k||N)&&c(),N&&b&&(b(),b=void 0)}),()=>{b&&(b(),b=void 0)}};for(let T of l)g.push(y(T));return{node:m,dispose(){d=!0,u();for(let T of g)T?.();g.length=0,a.dispose(),h()}}}_pathsMatching(e){let n=Tn(e),r=[];return this._collectObserveTargets("",r),r.map(([o])=>o).filter(o=>n.test(o))}_collectObserveTargets(e,n){for(let r of[...this._mounts.keys()].sort()){let o=e===""?r:`${e}${de}${r}`;this._mounts.get(r)._collectObserveTargets(o,n)}for(let r of[...this._nodes.keys()].sort()){let o=this._nodes.get(r),s=e===""?r:`${e}${de}${r}`;n.push([s,o]),this._appendMetaObserveTargets(s,o,n)}}_appendMetaObserveTargets(e,n,r){for(let o of Object.keys(n.meta).sort()){let s=n.meta[o],a=`${e}${de}${_e}${de}${o}`;r.push([a,s]),this._appendMetaObserveTargets(a,s,r)}}observe(e,n){let r=typeof e=="string",s=gs(r?n:e);if(s.reactive===!0)return this._observeReactive(r?e:void 0,s);let a=s.structured===!0||s.timeline===!0||s.causal===!0||s.derived===!0||s.detail==="minimal"||s.detail==="full"||s.format!=null,i=s.actor;if(r){let u=e,l=this.resolve(u);if(i!=null&&!l.allowsObserve(i))throw new Ce({actor:i,action:"observe",nodeName:u});return a?this._buildStructuredObserver([[u,l]],s,"one"):{subscribe(p){return l.subscribe(p)},up(p){try{l.up?.(p)}catch(f){if(f instanceof Ce)return;throw f}}}}let d=[];this._collectObserveTargets("",d),d.sort((u,l)=>u[0]<l[0]?-1:u[0]>l[0]?1:0);let c=i==null?d:d.filter(([,u])=>u.allowsObserve(i));return a?this._buildStructuredObserver(c,s,"all"):{subscribe:u=>{let l=c.map(([p,f])=>f.subscribe(m=>{u(p,m)}));return()=>{for(let p of l)p()}},up:(u,l)=>{try{this.resolve(u).up?.(l)}catch(p){if(p instanceof Ce)return;throw p}}}}_observeReactive(e,n){let r=n.tiers,o=r!=null?new Set(r):null,s=n.reactiveName??"observe";return oe(a=>{let i=[],d=!1,c=!1,u=()=>{if(i.length===0||c)return;let h={events:i.slice(),flushedAt_ns:z()};i.length=0,a.emit(h)},l={...n,reactive:!1,structured:!0,timeline:!0},p=e!=null?this.observe(e,l):this.observe(l),f=h=>{c||(i.push(h),!d&&(d=!0,dt(()=>{d=!1,u()})))};for(let h of p.events)f(h);let m=p.onEvent(f);return()=>{c=!0,m(),p.dispose()}},{name:s,meta:{domain:"audit",kind:"observe-reactive"}})}_buildStructuredObserver(e,n,r){let o=r==="one"?e[0]?.[0]:void 0,s=a=>{if(r==="one"&&o!=null){let u=this.resolve(o);return this._buildStructuredObserver([[o,u]],a,"one")}let i=[];this._collectObserveTargets("",i),i.sort((u,l)=>u[0]<l[0]?-1:u[0]>l[0]?1:0);let d=a.actor,c=d==null?i:i.filter(([,u])=>u.allowsObserve(d));return this._buildStructuredObserver(c,a,"all")};return this._createObserveResult(e,n,s)}_createObserveResult(e,n,r){let o=n.timeline===!0,s=n.causal===!0,a=n.derived===!0,i=n.detail==="minimal",d=this.config.inspectorEnabled,c=(s||a)&&d,u=n.maxEvents,l=u!=null&&u>0?new Xe(u):null,p=[],f=new Set,m=n.tiers!=null?new Set(n.tiers):null,h={},g=new Set,y=0,T=0,b=0,v=0,k=0,N=0,w=!1,R=!1,x=0,_=new Map,M=new Map,L=new Map,S=B=>{if(!(m!=null&&!m.has(B.type))){l?l.push(B):p.push(B);for(let ee of f)ee(B)}},E=B=>m==null||m.has(B),I=()=>o?{timestamp_ns:z(),in_batch:Bt(),batch_id:x}:{},K=(B,ee)=>{if(!(!c||!(B instanceof le)))return B._setInspectorHook(we=>{if(we.kind==="dep_message")_.set(B,we.depIndex);else if(we.kind==="run"){let qe=we.batchData.map((re,ke)=>re!=null&&re.length>0?re.at(-1):we.prevData[ke]);M.set(B,qe);let Ee=we.batchData.map(re=>re!=null?[...re]:void 0);L.set(B,Ee),a&&S({type:"derived",path:ee,dep_values:qe,dep_batches:Ee,...I()})}})},q=B=>{let ee=_.get(B),we=M.get(B);if(!s||we==null)return{};let Ee=(ee!=null&&ee>=0&&B instanceof le?B._deps[ee]:void 0)?.node,re=Ee?.v,ke=L.get(B);return{trigger_dep_index:ee,trigger_dep_name:Ee?.name,...re!=null?{trigger_version:{id:re.id,version:re.version}}:{},dep_values:[...we],...ke!=null?{dep_batches:ke}:{}}},H=[],G=[];for(let[B,ee]of e){let we=K(ee,B);we&&H.push(we),G.push(ee.subscribe(qe=>{x++;for(let Ee of qe){let re=Ee[0],ke=I();if(re===D){h[B]=Ee[1];let En=ee instanceof le?ee.lastMutation?.actor??st:st;S({type:"data",path:B,data:Ee[1],actor:En,...ke,...q(ee)})}else if(i)re===X?E("dirty")&&y++:re===U?E("resolved")&&T++:re===Oe?E("invalidate")&&b++:re===xe?E("pause")&&v++:re===Ae?E("resume")&&k++:re===ue?E("teardown")&&N++:re===$&&!g.has(B)?E("complete")&&(w=!0):re===P&&E("error")&&(R=!0,g.add(B));else if(re===X)E("dirty")&&y++,S({type:"dirty",path:B,...ke});else if(re===U)E("resolved")&&T++,S({type:"resolved",path:B,...ke,...q(ee)});else if(re===Oe)E("invalidate")&&b++,S({type:"invalidate",path:B,...ke});else if(re===xe)E("pause")&&v++,S({type:"pause",path:B,lockId:Ee[1],...ke});else if(re===Ae)E("resume")&&k++,S({type:"resume",path:B,lockId:Ee[1],...ke});else if(re===$)E("complete")&&!g.has(B)&&(w=!0),S({type:"complete",path:B,...ke});else if(re===P){E("error")&&(R=!0,g.add(B));let En=ee instanceof le?ee.lastMutation?.actor??st:st;S({type:"error",path:B,data:Ee[1],actor:En,...ke})}else re===ue&&(E("teardown")&&N++,S({type:"teardown",path:B,...ke}))}}))}let j=!1,O=()=>{if(!j){j=!0;for(let B of G)B();for(let B of H)B();for(let B of J)B({value:void 0,done:!0});J.length=0}},C=[],J=[];f.add(B=>{let ee=J.shift();ee?ee({value:B,done:!1}):C.push(B)});let fe={get values(){return h},get dirtyCount(){return y},get resolvedCount(){return T},get invalidateCount(){return b},get pauseCount(){return v},get resumeCount(){return k},get teardownCount(){return N},get events(){return l?l.toArray():[...p]},get anyCompletedCleanly(){return w},get anyErrored(){return R},get completedWithoutErrors(){return w&&!R},onEvent(B){return f.add(B),()=>f.delete(B)},dispose:O,expand(B){O();let ee={...n};return typeof B=="string"?ee.detail=B:Object.assign(ee,B),r(gs(ee))},[Symbol.asyncIterator](){return{next(){return C.length>0?Promise.resolve({value:C.shift(),done:!1}):j?Promise.resolve({value:void 0,done:!0}):new Promise(B=>J.push(B))},return(){return O(),Promise.resolve({value:void 0,done:!0})}}}};return n.format!=null&&this._attachFormatLogger(fe,n),fe}_attachFormatLogger(e,n){let r=n.format;if(r==null)return;let o=n.logger??(m=>console.log(m)),s=n.includeTypes?new Set(n.includeTypes):null,a=n.excludeTypes?new Set(n.excludeTypes):null,i=s==null&&a==null?()=>!0:m=>(s==null||s.has(m))&&(a==null||!a.has(m)),d=Ba(n.theme),c=r==="stage-log"?z():0,u=m=>m==null?"":n.stageLabels?.[m]??m,l=(m,h)=>m.length>h?`${m.slice(0,h-1)}\u2026`:m,p=m=>m.type==="data"||m.type==="error"?l(Ar(m.data),120):"",f=m=>{if(r==="stage-log"){let w=(z()-c)/1e9,R=u(m.path).padEnd(9);if(m.type==="data"){let x=p(m);return`[${w.toFixed(3)}s] ${R} \u2190${x?` ${x}`:""}`}if(m.type==="error"){let x=p(m);return`[${w.toFixed(3)}s] ${R} \u2717${x?` ${x}`:""}`}return m.type==="complete"?`[${w.toFixed(3)}s] ${R} \u25A0 complete`:`[${w.toFixed(3)}s] ${R} ${m.type}`}if(r==="json")try{return JSON.stringify(m)}catch{return JSON.stringify({type:m.type,path:m.path,data:"[unserializable]"})}let h=d[m.type]??"",g=m.path?`${d.path}${m.path}${d.reset} `:"",y=m.type==="data"||m.type==="error",T=m.type==="pause"||m.type==="resume",b=y?` ${Ar(m.data)}`:T?` ${Ar(m.lockId)}`:"",v=m.type==="data"||m.type==="resolved"||m.type==="derived"?m:void 0,k=v?.trigger_dep_name!=null?` <- ${v.trigger_dep_name}`:v?.trigger_dep_index!=null?` <- #${v.trigger_dep_index}`:"",N=m.in_batch?" [batch]":"";return`${g}${h}${m.type.toUpperCase()}${d.reset}${b}${k}${N}`};e.onEvent(m=>{i(m.type)&&o(f(m),m)})}addDisposer(e){return this._disposers.add(e),()=>{this._disposers.delete(e)}}destroy(){ls(this._disposers,this.name),this.signal([[ue]],{internal:!0}),ls(this._storageDisposers,this.name);for(let e of[...this._mounts.values()])e._parent=void 0,e._destroyClearOnly();this._mounts.clear(),this._nodes.clear(),this._parent=void 0,this._destroyed=!0}get destroyed(){return this._destroyed}_destroyClearOnly(){for(let e of[...this._mounts.values()])e._parent=void 0,e._destroyClearOnly();this._mounts.clear(),this._nodes.clear(),this._parent=void 0,this._destroyed=!0}snapshot(e){let{expand:n,...r}=this.describe({detail:"full"}),o={};for(let i of Object.keys(r.nodes).sort()){let{lastMutation:d,guard:c,...u}=r.nodes[i];o[i]=u}let s=[...r.subgraphs].sort(),a={...r,version:1,nodes:o,subgraphs:s};if(e?.format==null)return a;if(e.format==="json-string")return JSON.stringify(a);if(e.format==="bytes"){if(e.codec==null)throw new Error("snapshot({format: 'bytes'}) requires a `codec` name");let i=this.config.lookupCodec(e.codec);if(i==null)throw new Error(`snapshot: codec "${e.codec}" is not registered on this graph's config. Call config.registerCodec(...) before creating nodes.`);return Wr(i,i.encode(a))}throw new Error(`snapshot: unknown format "${String(e.format)}"`)}static decode(e,n){let r=n?.config??ut,{codec:o,codecVersion:s,payload:a}=Hr(e,r);return o.decode(a,s)}restore(e,n){if(ms(e),e.name!==this.name)throw new Error(`Graph "${this.name}": restore snapshot name "${e.name}" does not match this graph`);let r=n?.only==null?null:(Array.isArray(n.only)?n.only:[n.only]).map(s=>Tn(s)),o=n?.includeProducers===!0;for(let s of Object.keys(e.nodes).sort()){if(r!==null&&!r.some(i=>i.test(s)))continue;let a=e.nodes[s];if(a!==void 0){if(!("value"in a)||a.value===void 0){"value"in a&&a.value===void 0&&n?.onError?.(s,new Error(`restore: slice.value is undefined for "${s}" (undefined is the global SENTINEL; not valid DATA)`));continue}if(!(a.type==="derived"||a.type==="effect")&&!(a.type==="producer"&&!o)){if(a.v!=null){let d=this.tryResolve(s)?.v;if(d!=null&&d.id===a.v.id&&d.version===a.v.version)continue}try{this.set(s,a.value)}catch(i){n?.onError?.(s,i)}}}}}static fromSnapshot(e,n){ms(e);let r=typeof n=="function"?n:n?.build,o=typeof n=="function"?void 0:n?.factories,s=new t(e.name);if(r)return r(s),s.restore(e),s;for(let f of[...e.subgraphs].sort((m,h)=>{let g=m.split(de).length,y=h.split(de).length;return g!==y?g-y:m<h?-1:m>h?1:0})){let m=f.split(de),h=s;for(let g of m)h._mounts.has(g)||h.mount(g,new t(g)),h=h._mounts.get(g)}let a=o?Object.entries(o).map(([f,m])=>({re:Tn(f),factory:m})):[],i=f=>{for(let m of a)if(m.re.test(f))return m.factory},d=f=>{let m=f.split(de),h=m.pop();if(h==null||h.length===0)throw new Error(`invalid snapshot path "${f}"`);let g=s;for(let y of m){let T=g._mounts.get(y);if(!T)throw new Error(`unknown mount "${y}" in path "${f}"`);g=T}return[g,h]},c=Object.entries(e.nodes).filter(([f])=>!f.includes(`${de}${_e}${de}`)).sort((f,m)=>f[0]<m[0]?-1:f[0]>m[0]?1:0),u=new Map(c),l=new Map,p=!0;for(;u.size>0&&p;){p=!1;for(let[f,m]of[...u.entries()]){let h=m?.deps??[];if(!h.every(k=>l.has(k)))continue;let[g,y]=d(f),T={...m?.meta??{}},b=i(f),v;if(m?.type==="state")v=F(m.value,{meta:T});else{if(b==null)continue;v=b(y,{path:f,type:m.type,value:m.value,meta:T,deps:h,resolvedDeps:h.map(k=>l.get(k))})}g.add(v,{name:y}),l.set(f,v),u.delete(f),p=!0}}if(u.size>0){let f=[...u.keys()].sort().join(", ");throw new Error(`Graph.fromSnapshot could not reconstruct nodes without build callback: ${f}. Pass matching factories via fromSnapshot(data, { factories: { pattern: factoryFn } }).`)}return s.restore(e),s}toJSON(){return this.snapshot()}attachSnapshotStorage(e,n={}){let r=e.map(c=>({tier:c,debounceMs:Math.max(0,c.debounceMs??0),compactEvery:Math.max(1,c.compactEvery??10),timer:void 0,seq:0,lastSnapshot:void 0,lastFingerprint:"",disposed:!1,savePending:void 0}));n.autoRestore===!0&&this._cascadeRestore(e,n.onError);let o=(c,u)=>{if(c.disposed)return;let l=Pa(u.nodes);if(c.lastSnapshot!=null&&l!==""&&l===c.lastFingerprint)return;let p=c.seq+1,f=ie(),g=c.lastSnapshot==null||p%c.compactEvery===0?{name:this.name,mode:"full",snapshot:u,seq:p,timestamp_ns:f,format_version:rt}:{name:this.name,mode:"diff",diff:bs(c.lastSnapshot,u),seq:p,timestamp_ns:f,format_version:rt};if(c.tier.filter&&!c.tier.filter(g))return;let y;try{y=c.tier.save(g)}catch(T){n.onError?.(T,c.tier);return}if(y&&typeof y.then=="function"){let v=(c.savePending??Promise.resolve()).then(()=>y,()=>y).then(()=>{c.disposed||(c.seq=p,c.lastSnapshot=u,c.lastFingerprint=l)},k=>{n.onError?.(k,c.tier)});c.savePending=v.finally(()=>{c.savePending===v&&(c.savePending=void 0)})}else c.seq=p,c.lastSnapshot=u,c.lastFingerprint=l},s=(c,u)=>{try{o(c,u)}catch(l){n.onError?.(l,c.tier)}},a=(c,u)=>{if(!u.some(m=>{let h=this.config.messageTier(m[0]);return h>=3&&h<5}))return;if(n.filter){let m=this.tryResolve(c);if(m==null)return;let h=Hn(m,Wn("standard"));if(!n.filter(c,h))return}let p,f=()=>(p==null&&(p=this.snapshot()),p);for(let m of r)m.disposed||(m.debounceMs===0?s(m,f()):(m.timer==null&&(m.timer=new pe),m.timer.start(m.debounceMs,()=>{m.disposed||s(m,this.snapshot())})))},i;if(n.paths!=null){let u=(typeof n.paths=="string"?this._pathsMatching(n.paths):n.paths).map(l=>{let p=this.tryResolve(l);return p==null?()=>{}:p.subscribe(f=>a(l,f))});i=()=>{for(let l of u)l()}}else i=this.observe().subscribe((c,u)=>a(c,u));let d=()=>{i();for(let c of r)c.disposed=!0,c.timer?.cancel();this._storageDisposers.delete(d)};return this._storageDisposers.add(d),{dispose:d}}async _cascadeRestore(e,n){for(let r of e){let o;try{o=await r.load?.()}catch(a){n?.(a,r);continue}if(o==null||typeof o!="object"||Array.isArray(o))continue;let s=o;try{if(s.mode==="full"&&s.snapshot!=null)return this.restore(s.snapshot),!0;if(s.version===rt&&s.nodes!=null)return this.restore(s),!0}catch(a){n?.(a,r)}}return!1}static async fromStorage(e,n,r){for(let o of n){let s;try{s=await o.load?.()}catch(d){r?.onError?.(d,o);continue}if(s==null||typeof s!="object"||Array.isArray(s))continue;let a=s,i=a.mode==="full"&&a.snapshot!=null?a.snapshot:a.version===rt&&a.nodes!=null?a:void 0;if(i!=null)try{return t.fromSnapshot(i,r)}catch(d){r?.onError?.(d,o)}}throw new Error(`Graph.fromStorage: no tier held a restorable record for "${e}" across ${n.length} tier(s)`)}_annotations=new Map;_traceRing;trace(e,n,r){if(e!=null&&n!=null){if(this.tryResolve(e)==null)return;if(this._annotations.set(e,n),this.config.inspectorEnabled){let o={path:e,annotation:n,timestamp_ns:z(),...r?.actor!=null?{actor:r.actor}:{}};this._traceRing.push(o)}return}return e!=null?this.config.inspectorEnabled?this._annotations.get(e):void 0:this.config.inspectorEnabled?this._traceRing.toArray():[]}annotation(e){return this._annotations.get(e)}clearTrace(){this._annotations.clear(),this._traceRing.clear()}pruneTrace(e){let n=this._traceRing.toArray().filter(o=>!e(o)),r=this._traceRing.size-n.length;this._traceRing.clear();for(let o of n)this._traceRing.push(o);return r}static diff(e,n){let r=new Set(Object.keys(e.nodes)),o=new Set(Object.keys(n.nodes)),s=[...o].filter(T=>!r.has(T)).sort(),a=[...r].filter(T=>!o.has(T)).sort(),i=[],d=[];for(let T of r){if(!o.has(T))continue;let b=e.nodes[T],v=n.nodes[T],k=b.v,N=v.v;k!=null&&N!=null&&k.id===N.id&&k.version!==N.version&&d.push({path:T,id:k.id,from:k.version,to:N.version});let w=k!=null&&N!=null&&k.id===N.id&&k.version===N.version;for(let R of["type","status","sentinel"]){let x=b[R],_=v[R];x!==_&&i.push({path:T,field:R,from:x,to:_})}if(!w)for(let R of["value","meta"]){let x=b[R],_=v[R];Ga(x,_)||i.push({path:T,field:R,from:x,to:_})}}let c=T=>`${T.from} ${T.to}`,u=new Set(e.edges.map(c)),l=new Set(n.edges.map(c)),p=n.edges.filter(T=>!u.has(c(T))),f=e.edges.filter(T=>!l.has(c(T))),m=new Set(e.subgraphs),h=new Set(n.subgraphs),g=[...h].filter(T=>!m.has(T)).sort(),y=[...m].filter(T=>!h.has(T)).sort();return{nodesAdded:s,nodesRemoved:a,nodesChanged:i,versionChanges:d,edgesAdded:p,edgesRemoved:f,subgraphsAdded:g,subgraphsRemoved:y}}};function bs(t,e){let n=ce.diff(t,e),r={};for(let o of n.nodesAdded){let s=e.nodes[o];s!=null&&(r[o]=s)}return{...n,nodesAddedFull:r}}function Lr(t,e,n,r={}){let o={paths:[],depths:new Map,truncated:!1};if(!e)return r.withDetail?o:[];if(!r.both&&n!=="upstream"&&n!=="downstream")throw new Error('reachable: direction must be "upstream" or "downstream"');let s=r.maxDepth;if(s!=null&&(!Number.isInteger(s)||s<0))throw new Error("reachable: maxDepth must be an integer >= 0");if(s===0)return r.withDetail?o:[];let a=new Map,i=new Map,d=new Map,c=new Map,u=new Set;for(let[b,v]of Object.entries(t.nodes)){if(!b)continue;u.add(b);let k=v.deps??[];a.set(b,k);for(let N of k)N&&(u.add(N),i.has(N)||i.set(N,new Set),i.get(N).add(b))}for(let b of t.edges){if(b==null||typeof b!="object")continue;let v=typeof b.from=="string"?b.from:"",k=typeof b.to=="string"?b.to:"";!v||!k||(u.add(v),u.add(k),c.has(v)||c.set(v,new Set),c.get(v).add(k),d.has(k)||d.set(k,new Set),d.get(k).add(v))}if(!u.has(e))return r.withDetail?o:[];let l=r.both===!0,p=b=>{if(l){let w=a.get(b)??[],R=d.get(b),x=i.get(b),_=c.get(b),M=[...w];return R&&M.push(...R),x&&M.push(...x),_&&M.push(..._),M}if(n==="upstream"){let w=a.get(b)??[],R=d.get(b);return R?[...w,...R]:w}let v=i.get(b),k=c.get(b),N=v?[...v]:[];return k&&N.push(...k),N},f=new Set([e]),m=new Map,h=[{path:e,depth:0}],g=0,y=!1;for(;g<h.length;){let b=h[g++];if(s!=null&&b.depth>=s){p(b.path).length>0&&(y=!0);continue}for(let v of p(b.path))!v||f.has(v)||(f.add(v),m.set(v,b.depth+1),h.push({path:v,depth:b.depth+1}))}let T=[...m.keys()].sort((b,v)=>b<v?-1:b>v?1:0);return r.withDetail?{paths:T,depths:m,truncated:y}:T}function Ua(t,e){if(t.length!==e.length)return!1;for(let n=0;n<t.length;n++){let r=t[n],o=e[n];if(r.path!==o.path||r.type!==o.type||r.status!==o.status||r.hop!==o.hop||r.dep_index!==o.dep_index||r.annotation!==o.annotation||r.value!==o.value||r.lastMutation!==o.lastMutation)return!1;let s=r.v,a=o.v;if(s!==a&&(s==null||a==null||s.id!==a.id||s.version!==a.version))return!1}return!0}function Ts(t,e){return De("messaging",t,e)}var qa=1024,Dr=class extends ce{_log;events;latest;hasLatest;constructor(e,n={}){super(e,n.graph),this._log=$e([],{name:"events",maxSize:n.retainedLimit??qa}),this._log.withLatest(),this.events=this._log.entries,this.add(this.events,{name:"events"}),this.latest=A([this.events],([r])=>{let o=r;return o.length===0?null:o[o.length-1]},{name:"latest",describeKind:"derived",meta:Ts("topic_latest")}),this.add(this.latest,{name:"latest"}),this.addDisposer(Y(this.latest)),this.hasLatest=A([this.events],([r])=>r.length>0,{name:"hasLatest",describeKind:"derived",meta:Ts("topic_has_latest")}),this.add(this.hasLatest,{name:"hasLatest"}),this.addDisposer(Y(this.hasLatest)),this.addDisposer(()=>{this.events.down([[$]])}),this.addDisposer(()=>this._log.disposeAllViews())}publish(e){if(e===void 0)throw new TypeError(`TopicGraph "${this.name}": publish(undefined) is not allowed (spec \xA75.12 SENTINEL).`);this._log.append(e)}attachEventStorage(e){return this._log.attachStorage(e)}retained(){return this.events.cache}get _logBundle(){return this._log}};function Ir(t,e){return new Dr(t,e)}Ne();ge();se();Le();ve();Q();Qe();Ne();ge();ct();se();Q();function vs(t,e){let n=t.cache??0;return n>=e?!1:(t.down([[X],[D,n+1]]),!0)}var Wa=ro((t,e)=>{t("observe"),t("signal"),e("write")});function Tt(t){let e=$e([],{name:t.name,maxSize:t.retainedLimit??1024,guard:t.guard??Wa,...t.versioning!=null?{versioning:t.versioning}:{}});return e.withLatest(),t.graph&&t.graph.add(e.entries,{name:t.name}),e}function Pr(t){if(t===null||typeof t!="object"||Object.isFrozen(t))return t;for(let e of Object.keys(t))Pr(t[e]);return Object.freeze(t)}function Lt(t){let e=t.cache,r=(typeof e=="number"&&Number.isFinite(e)?e:0)+1;return t.down([[X],[D,r]]),r}function vn(t,e,n,r,o,s){let a=e(n,r,o);if(a===void 0)return;let i=s!=null?{...a,handlerVersion:s}:a;t.append(i)}function Me(t,e){let n=e.freeze??!0;return function(...o){let s=n?o.map(Pr):o,a=ie(),i=e.seq?Lt(e.seq):void 0;try{let d=t(...s);return e.onSuccess&&vn(e.audit,e.onSuccess,s,d,{t_ns:a,seq:i},e.handlerVersion),d}catch(d){if(e.onFailure){let c=d instanceof Error?d.name:typeof d;vn(e.audit,e.onFailure,s,d,{t_ns:a,seq:i,errorType:c},e.handlerVersion)}throw d}}}function vt(t,e){let n=e.freeze??!0;return function(...o){let s=n?o.map(Pr):o,a=ie(),i,d,c=!1,u;try{ne(()=>{e.seq&&(u=Lt(e.seq));try{i=t(...s),e.onSuccess&&vn(e.audit,e.onSuccess,s,i,{t_ns:a,seq:u},e.handlerVersion)}catch(l){throw d=l,c=!0,l}})}catch(l){if(c&&e.onFailure){let p=d instanceof Error?d.name:typeof d;vn(e.audit,e.onFailure,s,d,{t_ns:a,seq:u,errorType:p},e.handlerVersion)}throw c?d:l}return i}}function wn(t,e,n=0){let r=F(n,{name:e,describeKind:"state"});return t.add(r,{name:e}),r}function Dt(t,e){return De("orchestration",t,e)}var kn=class extends ce{constructor(e,n){super(e,n)}task(e,n,r={}){let o=(r.deps??[]).map(a=>this._resolveStep(a)),s=A(o,n,{name:e,describeKind:"derived",meta:Dt("task",r.meta)});return this.add(s,{name:e}),s}classify(e,n,r,o={}){let s=this._resolveStep(n),a=A([s],([i])=>{try{return{tag:r(i),value:i}}catch(d){return{tag:"error",value:i,error:d}}},{name:e,describeKind:"derived",meta:Dt("classify",o.meta)});return this.add(a,{name:e}),a}combine(e,n,r={}){let o=Object.keys(n),s=o.map(i=>this._resolveStep(n[i])),a=A(s,i=>{let d={};for(let c=0;c<o.length;c++)d[o[c]]=i[c];return d},{name:e,describeKind:"derived",meta:Dt("combine",r.meta)});return this.add(a,{name:e}),a}approvalGate(e,n,r={}){let o=r.maxPending??1e3;if(o<1&&o!==Number.POSITIVE_INFINITY)throw new RangeError("approvalGate: maxPending must be >= 1");let s=r.startOpen??!1;typeof n!="string"&&this.nameOf(n)===void 0&&this.add(n,{name:`${e}/source`});let a=this._resolveStep(n),i=new ce(`${e}_state`),d=F([],{name:"pending",equals:()=>!1}),c=F(s,{name:"isOpen"}),u=A([d],([G])=>G.length,{name:"count"}),l=F(0,{name:"droppedCount"}),p=Tt({name:"decisions",retainedLimit:1024,graph:i});i.add(d,{name:"pending"}),i.add(c,{name:"isOpen"}),i.add(u,{name:"count"}),i.add(l,{name:"droppedCount"}),this.mount(`${e}_state`,i);let f=[],m=!1,h=!1,g=s,y=c.subscribe(G=>{for(let j of G)j[0]===D&&(g=j[1])});this.addDisposer(y);function T(){d.emit([...f])}function b(G,j,O){p.append({action:G,t_ns:ie(),...j!==void 0?{items:j,count:j.length}:{},...O!==void 0?{unflushed:O}:{},...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}})}function v(G){if(f.push(G),f.length>o){let j=f.shift();l.emit(l.cache+1),b("drop",[j])}T()}function k(G){let j=f.splice(0,G);return T(),j}let N=te([a],(G,j,O)=>{let C=O.terminalDeps[0];if(C!==void 0){m=!0;let fe=f.length;f=[],T(),b("teardown",void 0,fe),j.down(C===!0?[[$]]:[[P,C]]);return}let J=G[0];if(J==null||J.length===0){j.down([[U]]);return}for(let fe of J)g?j.emit(fe):(v(fe),j.down([[U]]))},{name:e,describeKind:"derived",meta:Dt("approval_gate",r.meta)});if(this.add(N,{name:e}),r.approver!=null){r.approver.cache&&(c.emit(!0),g=!0,r.onceOnly&&(h=!0));let j=r.approver.subscribe(O=>{for(let C of O){if(C[0]!==D)continue;let J=!!C[1];if(J&&!g){if(r.onceOnly){if(h)continue;h=!0}ne(()=>{c.emit(!0);let fe=k(f.length);b("open",fe);for(let B of fe){if(m)break;N.emit(B)}})}else if(!J&&g){if(r.onceOnly&&h)continue;ne(()=>{c.emit(!1),b("close")})}}});this.addDisposer(j)}let w=G=>{if(m)throw new Error(`approvalGate: ${G}() called after the gate was torn down`)},R=(G=1)=>{w("approve");let j=k(G);for(let O of j){if(m)break;N.emit(O)}},x=(G=1)=>{w("reject"),k(G)},_=(G,j=1)=>{w("modify");let O=[...f],C=k(j);for(let J=0;J<C.length&&!m;J++)N.emit(G(C[J],J,O))},M=()=>{w("open"),c.emit(!0);let G=k(f.length);for(let j of G){if(m)break;N.emit(j)}},L=()=>{w("close"),!(r.onceOnly&&h)&&c.emit(!1)},S=vt(R,{audit:p,freeze:!1,onSuccess:(G,j,O)=>({action:"approve",count:G[0]??1,t_ns:O.t_ns,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}}),onFailure:(G,j,O)=>({action:"drop",t_ns:O.t_ns,errorType:O.errorType,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}})}),E=vt(x,{audit:p,freeze:!1,onSuccess:(G,j,O)=>({action:"reject",count:G[0]??1,t_ns:O.t_ns,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}}),onFailure:(G,j,O)=>({action:"drop",t_ns:O.t_ns,errorType:O.errorType,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}})}),I=vt(_,{audit:p,freeze:!1,onSuccess:(G,j,O)=>({action:"modify",count:G[1]??1,t_ns:O.t_ns,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}}),onFailure:(G,j,O)=>({action:"drop",t_ns:O.t_ns,errorType:O.errorType,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}})}),K=vt(M,{audit:p,freeze:!1,onSuccess:(G,j,O)=>({action:"open",t_ns:O.t_ns,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}}),onFailure:(G,j,O)=>({action:"drop",t_ns:O.t_ns,errorType:O.errorType,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}})}),q=vt(L,{audit:p,freeze:!1,onSuccess:(G,j,O)=>({action:"close",t_ns:O.t_ns,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}}),onFailure:(G,j,O)=>({action:"drop",t_ns:O.t_ns,errorType:O.errorType,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}})});return this.addDisposer(u.subscribe(()=>{})),{node:N,pending:d,count:u,isOpen:c,droppedCount:l,decisions:p,audit:p,approve:S,reject:E,modify:I,open:K,close:q}}approval(e,n,r,o={}){return this.approvalGate(e,n,{...o,approver:r,maxPending:1})}catch(e,n,r,o={}){let s=this._resolveStep(n),a=o.on??"errored",i=te([s],(d,c,u)=>{let l=u.terminalDeps[0];if(l!==void 0){let f=l===!0?{kind:"completed"}:{kind:"errored",error:l};if(a==="terminal"||a===f.kind){c.emit(r(f,c));return}c.down(f.kind==="completed"?[[$]]:[[P,f.error]]);return}let p=d[0];if(p==null||p.length===0){c.down([[U]]);return}for(let f of p)c.emit(f)},{name:e,describeKind:"derived",completeWhenDepsComplete:o.completeWhenDepsComplete??!(a==="completed"||a==="terminal"),errorWhenDepsError:!(a==="errored"||a==="terminal"),meta:Dt("catch",o.meta)});return this.add(i,{name:e}),i}_resolveStep(e){if(typeof e=="string")return this.resolve(e);if(this.nameOf(e)===void 0)throw new Error(`PipelineGraph "${this.name}": Node dep is not registered. Pass a string path or call graph.add(node) first.`);return e}};function Gr(t,e){let n=new kn(t,e),{factory:r,factoryArgs:o,...s}=e??{};return n.tagFactory("pipelineGraph",ft(s)),n}async function ws(t,e,n,r){let o="",s=0;for await(let a of t.stream(e,n))r.publish({...a,seq:s++,ts:ie()}),a.type==="token"&&(o+=a.delta);return o}function ks(t,e){if(e==="json")try{return JSON.parse(bt(t))}catch(n){let r=t.slice(0,160);throw new Error(`streamingPromptNode: format:"json" \u2014 failed to parse accumulated text as JSON: ${n.message}; content preview: ${r}`)}return t}function xs(t,e){return A([t.latest],([n],r)=>{let o=r.store;if(n==null)return o.acc??"";let s=n;return s.seq===0&&(o.acc=""),s.type==="token"&&(o.acc=(o.acc??"")+s.delta),o.acc??""},{name:e,meta:W("accumulated_text"),initial:""})}function Ha(t,e,n,r){let o=r?.name??"llm",s=r?.format??"text",a=Ir(`${o}/stream`,{...r?.retainedLimit!=null?{retainedLimit:r.retainedLimit}:{}}),i=A(e,l=>{if(l.some(f=>f==null))return[];let p=typeof n=="string"?n:n(...l);return p?[{role:"user",content:p}]:[]},{name:`${o}::messages`,meta:W("prompt_node::messages"),initial:[]}),d=he(i,l=>{let p=l;if(!p||p.length===0)return F(null);let f=new AbortController;async function*m(){try{let h=await ws(t,p,{model:r?.model,temperature:r?.temperature,maxTokens:r?.maxTokens,systemPrompt:r?.systemPrompt,signal:f.signal},a);yield ks(h,s)}finally{f.abort()}}return V(m())},{meta:ae("streamingPromptNode")}),c=xs(a,`${o}::accumulatedText`),u=Y(d);return{output:d,deltaTopic:a,accumulatedText:c,dispose:()=>{u(),a.destroy()}}}function Ja(t,e,n,r,o,s){let a=F(0,{name:`${e}/cancel`}),i=0,d=[...r,a],c=s?.name??e,u=s?.format??"text",l=Ir(`${c}/stream`,{...s?.retainedLimit!=null?{retainedLimit:s.retainedLimit}:{}}),p=A(d,w=>{let R=w.slice(0,-1);if(R.some(_=>_==null))return[];let x=typeof o=="string"?o:o(...R);return x?[{role:"user",content:x}]:[]},{name:`${c}::messages`,meta:W("prompt_node::messages"),initial:[]}),f=he(p,w=>{let R=w;if(!R||R.length===0)return F(null);let x=new AbortController;async function*_(){try{let M=await ws(n,R,{model:s?.model,temperature:s?.temperature,maxTokens:s?.maxTokens,systemPrompt:s?.systemPrompt,signal:x.signal},l);yield ks(M,u)}finally{x.abort()}}return V(_())},{meta:ae("gatedStream")}),m=xs(l,`${c}::accumulatedText`),h=Ao(f,w=>w!=null);t.add(h,{name:`${e}/raw`});let g=Gr(`${e}/gate-graph`);t.mount(`${e}/gate-graph`,g),g.add(h,{name:`${e}/raw`});let y=g.approvalGate(`${e}/gate`,`${e}/raw`,s?.gate),T=Y(f),b=Y(y.node),v=Y(m);t.addDisposer(T),t.addDisposer(b),t.addDisposer(v);let k=y.reject.bind(y),N={...y,reject(w=1){ne(()=>{k(w),a.emit(++i)})}};return{output:y.node,deltaTopic:l,accumulatedText:m,gate:N,dispose:()=>{T(),b(),v(),l.destroy()}}}Q();Z();function Ya(t,e){let n=e?.separator??`
10
10
 
11
- `,r=t.map(a=>typeof a=="string"?F(a):V(a)),o=A(r,a=>a.filter(i=>i!=null&&i!=="").join(n),{name:e?.name??"systemPrompt",describeKind:"derived",meta:W("system_prompt"),initial:""}),s=Y(o);return Object.assign(o,{dispose:s})}Q();var Qa=(t,e)=>t===e?!0:t.chunkCount===e.chunkCount&&t.charCount===e.charCount&&t.estimatedTokens===e.estimatedTokens&&t.estimated===e.estimated;function Xa(t,e){let n=e?.charsPerToken??4,r={chunkCount:0,charCount:0,estimatedTokens:0,estimated:!0};return A([t.latest],([o],s)=>{if(o==null)return r;let a=o;"chunkCount"in s.store||(s.store.chunkCount=0,s.store.charCount=0,s.store.usageTokens=0,s.store.sawUsage=!1);let i=s.store;a.type==="token"?(i.chunkCount+=1,i.charCount+=a.delta.length):a.type==="usage"&&(i.sawUsage=!0,i.usageTokens=Ge(a.usage)+Ke(a.usage));let d=i.sawUsage?i.usageTokens:Math.ceil(i.charCount/n);return{chunkCount:i.chunkCount,charCount:i.charCount,estimatedTokens:d,estimated:!i.sawUsage}},{name:e?.name??"cost-meter",describeKind:"derived",initial:r,meta:W("cost_meter_extractor"),equals:Qa})}Q();var Za=(t,e)=>{if(t===e)return!0;if(t==null||e==null)return t===e;if(t.length!==e.length)return!1;for(let n=0;n<t.length;n++){let r=t[n],o=e[n];if(r.label!==o.label||r.pattern!==o.pattern||r.match!==o.match||r.position!==o.position)return!1}return!0};function ed(t,e){let n=e.maxPatternLength??128;for(let o of e.patterns)if(o.pattern.source.length>n)throw new Error(`keywordFlagExtractor: pattern "${o.label}" literal exceeds maxPatternLength (${o.pattern.source.length} > ${n}); raise the option or shorten the pattern.`);let r=e.patterns.map(o=>({label:o.label,pattern:o.pattern,compiled:new RegExp(o.pattern.source,`${o.pattern.flags.replace("g","")}g`)}));return A([t],([o],s)=>{if(o==null)return[];let a=o;"flags"in s.store||(s.store.flags=[],s.store.scannedTo=0);let i=s.store.flags,d=s.store.scannedTo,c=Math.max(0,d-n),u=a.slice(c),l=!1;for(let{pattern:p,label:f,compiled:m}of r){m.lastIndex=0;for(let h of u.matchAll(m)){let g=c+(h.index??0);g+h[0].length<=d||(i.push({label:f,pattern:p,match:h[0],position:g}),l=!0)}}return s.store.scannedTo=a.length,l?[...i]:i.slice()},{name:e.name??"keyword-flag-extractor",describeKind:"derived",initial:[],meta:W("keyword_flag_extractor"),equals:Za})}Q();function td(t,e,n){return A([t],([r])=>r==null?null:e(r),{name:n?.name??"extractor",describeKind:"derived",initial:null,meta:W("stream_extractor"),...n?.equals?{equals:n.equals}:{}})}Q();var nd=(t,e)=>{if(t===e)return!0;if(t==null||e==null)return t===e;if(t.length!==e.length)return!1;for(let n=0;n<t.length;n++){let r=t[n],o=e[n];if(r.startIndex!==o.startIndex||r.name!==o.name||r.raw!==o.raw)return!1}return!0};function rd(t,e){return A([t],([n],r)=>{if(n==null)return[];let o=n;"calls"in r.store||(r.store.calls=[],r.store.scanFrom=0);let s=r.store.calls,a=r.store.scanFrom,i=!1;for(;a<o.length;){let d=o.indexOf("{",a);if(d===-1){r.store.scanFrom=o.length;break}let c=0,u=-1,l=!1;for(let f=d;f<o.length;f++){let m=o[f];if(l)m==="\\"&&f+1<o.length?f++:m==='"'&&(l=!1);else if(m==='"')l=!0;else if(m==="{")c++;else if(m==="}"&&(c--,c===0)){u=f;break}}if(u===-1){r.store.scanFrom=d;break}let p=o.slice(d,u+1);try{let f=JSON.parse(p);typeof f.name=="string"&&f.arguments!=null&&typeof f.arguments=="object"&&(s.push({name:f.name,arguments:f.arguments,raw:p,startIndex:d}),i=!0)}catch{}a=u+1,r.store.scanFrom=a}return i?[...s]:s.slice()},{name:e?.name??"tool-call-extractor",describeKind:"derived",initial:[],meta:W("tool_call_extractor"),equals:nd})}Q();function od(t,e,n,r){let o=n*(r?.hardMultiplier??1.5),s=typeof e!="function",a=[t];return s&&a.push(e),A(a,i=>{let d=i[0]??"";if(d.length===0)return"allow";let c=s?i[1]??0:e(d);return c>=o?"block":c>=n?"review":"allow"},{name:r?.name??"content-gate",initial:"allow"})}Q();function sd(t,e,n,r){let o=n??(()=>"[REDACTED]");function s(a){let i=a;for(let d of e){let c=d.global?d:new RegExp(d.source,`${d.flags}g`);i=i.replace(c,u=>o(u,d))}return i}return A([t],([a])=>s(a??""),{name:r?.name??"redactor",initial:""})}_e();se();Le();ve();Q();Z();Q();Z();var xn=class extends ce{_log;messages;latest;messageCount;constructor(e,n={}){super(e,n.graph),this._log=$e([],{name:"messages",maxSize:n.maxMessages}),this.messages=this._log.entries,this.add(this.messages,{name:"messages"}),this.latest=A([this.messages],([r])=>{let o=r;return o.length===0?null:o[o.length-1]},{name:"latest",describeKind:"derived",meta:W("chat_latest")}),this.add(this.latest,{name:"latest"}),this.addDisposer(Y(this.latest)),this.messageCount=A([this.messages],([r])=>r.length,{name:"messageCount",describeKind:"derived",meta:W("chat_message_count"),initial:0}),this.add(this.messageCount,{name:"messageCount"}),this.addDisposer(Y(this.messageCount))}append(e,n,r){this._log.append({role:e,content:n,...r})}appendToolResult(e,n){this._log.append({role:"tool",content:n,toolCallId:e})}clear(){this._log.clear()}allMessages(){return this.messages.cache}};function Fr(t,e){return new xn(t,e)}Q();mt();function $r(t){let{toolCalls:e,tools:n}=t,r=t.retryCount??1,o=t.onError??"rescue",s=(a,i)=>{if(a===i)return!0;if(a.length!==i.length)return!1;for(let d=0;d<a.length;d++){let c=a[d],u=i[d];if(c?.id!==u?.id||c?.content!==u?.content)return!1}return!0};return he(e,a=>{if(a==null||a.length===0)throw new Error("toolExecution: received an empty tool-call batch as DATA \u2014 callers must upstream-filter empty batches (emit RESOLVED) so switchMap is only dispatched for non-empty batches.");let i=a.map(d=>id(d,n,r,o));return A(i,d=>d,{name:"toolExecution::batch",equals:s})})}function id(t,e,n,r){let o=Xn(()=>e.executeReactive(t.name,t.arguments),{count:n}),s=A([o],([a])=>({id:t.id,content:typeof a=="string"?a:JSON.stringify(a)}));return r==="propagate"?s:Do(s,a=>({id:t.id,content:JSON.stringify({error:String(a)})}))}se();Q();Z();var Rn=class extends ce{definitions;schemas;_bundle;constructor(e,n={}){super(e,n.graph),this._bundle=Pe({name:"definitions"}),this.definitions=this._bundle.entries,this.add(this.definitions,{name:"definitions"}),this.schemas=A([this.definitions],([r])=>[...(r??new Map).values()],{name:"schemas",describeKind:"derived",meta:W("tool_schemas"),initial:[]}),this.add(this.schemas,{name:"schemas"}),this.addDisposer(Y(this.schemas))}register(e){this._bundle.set(e.name,e)}unregister(e){this._bundle.delete(e)}executeReactive(e,n){let r=this._bundle.get(e);if(!r)throw new Error(`toolRegistry: unknown tool "${e}"`);return oe(o=>{let s=new AbortController,a;try{let d=r.handler(n,{signal:s.signal});a=ad(d,s.signal)}catch(d){return o.down([[P,d]]),()=>{s.abort()}}let i=a.subscribe(d=>{o.down(d)});return()=>{s.abort(),i()}},{name:`executeReactive::${e}`,meta:W("tool_execute_reactive")})}getDefinition(e){return this._bundle.entries.cache?.get(e)}};function jr(t,e){return new Rn(t,e)}function ad(t,e){return Rr(t)?t:t!=null&&typeof t.then=="function"?en(t,{signal:e}):t!=null&&typeof t=="object"&&Symbol.asyncIterator in t?er(t,{signal:e}):en(Promise.resolve(t),{signal:e})}var Sn=class extends ce{chat;tools;status;turn;aborted;lastResponse;toolCalls;toolResults;_terminalResult;_disposeRunWiring;_running=!1;_currentAbortController=null;constructor(e,n){if(super(e,n.graph),this.chat=Fr(`${e}-chat`,{maxMessages:n.maxMessages}),this.mount("chat",this.chat),this.tools=jr(`${e}-tools`),this.mount("tools",this.tools),n.tools)for(let O of n.tools)this.tools.register(O);this.status=F("idle",{name:"status",describeKind:"state",meta:W("agent_status")}),this.add(this.status,{name:"status"}),this.turn=F(0,{name:"turn",describeKind:"state",meta:W("agent_turn_count")}),this.add(this.turn,{name:"turn"}),this.aborted=F(!1,{name:"aborted",describeKind:"state",meta:W("agent_aborted")}),this.add(this.aborted,{name:"aborted"});let r=0,o=this.turn.subscribe(O=>{for(let C of O)C[0]===D&&(r=C[1])}),s=!1,a=this.aborted.subscribe(O=>{for(let C of O)C[0]===D&&(s=C[1])}),i=this.chat.messages.cache??[],d=this.chat.messages.subscribe(O=>{for(let C of O)C[0]===D&&(i=C[1])}),c=this.tools.schemas.cache??[],u=this.tools.schemas.subscribe(O=>{for(let C of O)C[0]===D&&(c=C[1])}),l=n.adapter,p=n.systemPrompt,f=n.model,m=n.temperature,h=n.maxTokens,g=n.maxTurns??10,y=n.stopWhen,T=this.chat,b=this.tools,v=this.status,k=this.turn,_=this.aborted,w=te([v],(O,C,J)=>{if(It(O,J.prevData,0,"idle")!=="thinking"||s||r>=g){C.down([[U]]);return}if(i.length===0){C.down([[U]]);return}C.emit({messages:i,tools:c})},{name:"promptInput",describeKind:"derived",meta:W("agent_prompt_input",{closureReads:["aborted","turn","chat.messages","tools.schemas"]})}),R=he(w,O=>{let C=new AbortController;return this._currentAbortController=C,s&&C.abort(new Error("agentLoop: aborted")),V(l.invoke(O.messages,{tools:O.tools.length>0?O.tools:void 0,systemPrompt:p,model:f,temperature:m,maxTokens:h,signal:C.signal}),{signal:C.signal})},{equals:()=>!1}),x=F(null,{name:"lastResponse",describeKind:"state",meta:W("agent_last_response")});this.lastResponse=x;let N=te([x,v],(O,C,J)=>{let fe=It(O,J.prevData,0,null);if(It(O,J.prevData,1,"idle")!=="acting"){C.down([[U]]);return}let ee=fe?.toolCalls;if(ee==null||ee.length===0){C.down([[U]]);return}C.emit(ee)},{name:"toolCallsRaw",describeKind:"derived",meta:W("agent_tool_calls_raw")}),M=n.interceptToolCalls?n.interceptToolCalls(N):N;this.toolCalls=M;let L=$r({toolCalls:M,tools:b,retryCount:1});this.toolResults=L;let S=Re([R],([O])=>{if(s)return;let C=O,J=r+1,fe=C.toolCalls!=null&&C.toolCalls.length>0,B=C.finishReason==="end_turn"&&(!C.toolCalls||C.toolCalls.length===0),ee=y?.(C)===!0,we=J>=g,qe=ee||B||!fe||we?"done":"acting";ne(()=>{x.emit(C),v.emit(qe),k.emit(J),T.append("assistant",C.content,{toolCalls:C.toolCalls})})}),E=Re([L],([O])=>{if(s)return;let C=O;if(C.length===0)return;let J=r>=g?"done":"thinking";ne(()=>{v.emit(J);for(let fe of C)T.appendToolResult(fe.id,fe.content)})}),I=v.cache??"idle",K=v.subscribe(O=>{for(let C of O)C[0]===D&&(I=C[1])}),q=Re([_],([O])=>{O===!0&&(this._currentAbortController?.abort(new Error("agentLoop: aborted")),I!=="done"&&v.emit("done"))}),H=Y(S),G=Y(E),j=Y(q);this._terminalResult=te([v,x],(O,C,J)=>{let fe=It(O,J.prevData,0,"idle"),B=It(O,J.prevData,1,null);if(fe==="done"){if(B!=null){C.emit(B);return}let ee=new Error("agentLoop: aborted");ee.name="AbortError",C.down([[P,ee]]);return}if(fe==="error"){C.down([[P,new Error("agentLoop: errored")]]);return}C.down([[U]])},{name:"terminalResult",describeKind:"derived",meta:W("agent_terminal_result")}),this.add(w,{name:"promptInput"}),this.add(R,{name:"llmResponse"}),this.add(this.lastResponse,{name:"lastResponse"}),this.toolCalls===N?this.add(this.toolCalls,{name:"toolCalls"}):(this.add(N,{name:"toolCallsRaw"}),this.add(this.toolCalls,{name:"toolCalls"})),this.add(L,{name:"toolResults"}),this.add(this._terminalResult,{name:"terminalResult"}),this.addDisposer(o),this.addDisposer(a),this.addDisposer(K),this.addDisposer(d),this.addDisposer(u),this.addDisposer(H),this.addDisposer(G),this.addDisposer(j),this._disposeRunWiring=()=>{}}async run(e,n){if(this._running)throw new RangeError(`agentLoop "${this.name}": run() called while a previous run() is still pending \u2014 await the previous run before starting another, or call abort() first`);this._running=!0;let r;try{ne(()=>{this.turn.emit(0),this.aborted.emit(!1),this.status.emit("idle"),this.lastResponse.emit(null)}),e!=null&&this.chat.append("user",e);let o=Mo(this._terminalResult,{skipCurrent:!0});if(n!=null)if(n.aborted)this.aborted.emit(!0);else{let s=()=>this.aborted.emit(!0);n.addEventListener("abort",s,{once:!0}),r=()=>n.removeEventListener("abort",s)}return n?.aborted!==!0&&this.status.emit("thinking"),await o}finally{r?.(),this._running=!1,this._currentAbortController=null}}abort(){this.aborted.emit(!0)}destroy(){try{this._disposeRunWiring()}catch{}super.destroy()}};function It(t,e,n,r){let o=t[n];if(o!=null&&o.length>0)return o[o.length-1];let s=e[n];return s!==void 0?s:r}function dd(t,e){let n=new Sn(t,e);return n.tagFactory("agentLoop",ft(e)),n}Le();Q();Z();function cd(t,e,n){let r=V(t),o=n?.condition!=null?V(n.condition):null,s=F(null,{name:n?.name?`${n.name}::null`:"handoff::null"});if(o==null)return he(r,i=>{if(i==null)return s;let d=F(i);return e(d)},{meta:ae("handoff")});let a=A([r,o],([i,d])=>({v:i,open:d===!0}),{name:n?.name?`${n.name}::router`:"handoff::router",describeKind:"derived"});return he(a,({v:i,open:d})=>{if(i==null)return s;if(!d)return F(i);let c=F(i);return e(c)},{meta:ae("handoff")})}Le();Q();Z();function ud(t,e,n){let r=V(t),o=e.map(a=>V(a)),s=[r,...o];return A(s,a=>{let i=a[0]??[],d=a.slice(1);return i.filter(c=>{for(let u of d)if(u!=null&&!u(c))return!1;return!0})},{name:n?.name??"tool-selector",describeKind:"derived",meta:{...W("tool_selector"),...ae("toolSelector")},equals:(a,i)=>{let d=a,c=i;if(d.length!==c.length)return!1;for(let u=0;u<d.length;u++)if(d[u]!==c[u])return!1;return!0}})}function Rs(t){let e=t.thresholds??{};return n=>{let r=t.scoreFn(n);for(let o of Object.keys(e)){let s=e[o];if(s===void 0)continue;let a=r[o];if((Number.isFinite(a)?a:Number.NEGATIVE_INFINITY)<s)return!1}return!0}}function ld(t){let e={persistence:t.persistenceThreshold??.3,personalValue:t.personalValueThreshold??.3},n=Rs({scoreFn:t.scoreFn,thresholds:e});return t.requireStructured?r=>{if(!n(r))return!1;let o=t.scoreFn(r).structure;return Number.isFinite(o)&&o>0}:n}se();Le();Q();_e();se();Le();Q();Z();function pd(t){return typeof t=="object"&&t!==null&&"cache"in t&&typeof t.subscribe=="function"}function Ss(t){t.subscribe(()=>{})}function Pt(t){return t instanceof Map?t:new Map}function _s(t,e){if(!Array.isArray(e.upsert))throw new TypeError("distill extraction requires upsert: Array<{ key, value }>");ne(()=>{for(let{key:n,value:r}of e.upsert)t.set(n,r);for(let n of e.remove??[])t.delete(n)})}function Ns(t,e,n){let r=V(t),o=Pe(n.mapOptions??{}),s=n.budget??2e3,i=n.context!==void 0&&n.context!==null?V(n.context):F(null),d=Pt(o.entries.cache);o.entries.subscribe(f=>{for(let m of f)m[0]===D&&(d=Pt(m[1]))});let c=V(e(r,o.entries));if(Mt(c,f=>{_s(o,f)}),n.evict){let f=new Map,m=A([o.entries],([h])=>{let g=[],y=Pt(h);for(let T of f.keys())y.has(T)||(f.get(T)(),f.delete(T));for(let[T,b]of y){let v=n.evict(T,b);if(pd(v)){if(!f.has(T)){let k=Mt(v,_=>{_===!0&&o.has(T)&&o.delete(T)});f.set(T,k)}continue}if(typeof v=="boolean"){v&&g.push(T);continue}throw new TypeError("distill evict() must return boolean or Node<boolean>")}return g});Mt(m,h=>{for(let g of h)o.delete(g)})}let u=n.consolidateTrigger!==void 0&&n.consolidateTrigger!==null;if(n.consolidate&&u){let f=V(n.consolidateTrigger),m=he(f,()=>n.consolidate(d));Mt(m,h=>{_s(o,h)})}let l=A([o.entries,i],([f,m])=>{let h=[...Pt(f).entries()].map(([T,b])=>({key:T,value:b,score:n.score(b,m),cost:n.cost(b)}));h.sort((T,b)=>b.score-T.score);let g=[],y=s;for(let T of h)T.cost<=y&&(g.push({key:T.key,value:T.value,score:T.score}),y-=T.cost);return g},{meta:{...ae("distill",{budget:s})}}),p=A([o.entries],([f])=>Pt(f).size);return Ss(l),Ss(p),{store:o,compact:l,size:p}}Z();_e();ge();Q();Z();var _n=Math.LN2/604800;function Gt(t,e,n,r=0){if(!Number.isFinite(t))return r;if(!Number.isFinite(e)||e<=0||!Number.isFinite(n)||n<=0)return Math.max(r,t);let o=t*Math.exp(-n*e);return Math.max(r,o)}ge();ve();Q();Qe();Z();var fd=1e9;function Ie(t,e){return De("memory",t,e)}function Ft(t,e){return t instanceof le?t:F(t,e?{name:e}:void 0)}function Ms(t,e){return(t-e)/fd}function Br(t,e){let n=Math.max(t.length,e.length),r=0,o=0,s=0;for(let i=0;i<n;i+=1){let d=t[i]??0,c=e[i]??0;r+=d*c,o+=d*d,s+=c*c}if(o===0||s===0)return 0;let a=r/Math.sqrt(o*s);return Number.isFinite(a)?a:0}function md(t,e){if(t===e)return!0;if(t==null||e==null||t.length!==e.length)return!1;for(let n=0;n<t.length;n+=1){let r=t[n],o=e[n];if(r.id!==o.id||r.score!==o.score||r.meta!==o.meta)return!1}return!0}function gd(t,e){if(t===e)return!0;if(t==null||e==null||t.length!==e.length)return!1;for(let n=0;n<t.length;n+=1){let r=t[n],o=e[n];if(r.id!==o.id||r.score!==o.score||r.lastAccessNs!==o.lastAccessNs||r.value!==o.value)return!1}return!0}function Cs(t,e={}){let n=e.maxSize,r=e.ranked??!0,o=r?e.decayRate??0:0,s=e.minScore??0;if(n!==void 0&&n<1)throw new RangeError("collection: maxSize must be >= 1");let a=()=>r?1:0,i=e.score??a,d=r&&i instanceof le?i:void 0,c=()=>d?d.cache??a:i,u=new ce(t),p=Pe({name:"items",...n!==void 0?{retention:{score:(S,E)=>r?Gt(E.baseScore,Ms(z(),E.lastAccessNs),o,s):E.lastAccessNs,maxSize:n}}:{}});u.add(p.entries,{name:"items"});let f;if(r&&o>0){let S=e.refreshIntervalMs??Math.max(1,1e3*Math.LN2/(10*o)),E=Zt(S,{period:S});f=A([E],()=>z(),{name:"refresh_tick_ns",describeKind:"derived",initial:z(),meta:Ie("clock")}),u.add(f,{name:"refresh_tick_ns"})}let m;if(r){let S=[p.entries];f&&S.push(f),d&&S.push(d),m=A(S,E=>{let I=E[0],K;if(f){let H=E[1];K=typeof H=="number"?H:z()}else K=z();if(!I||I.size===0)return[];let q=[];for(let H of I.values())q.push({...H,score:Gt(H.baseScore,Ms(K,H.lastAccessNs),o,s)});return q.sort((H,G)=>G.score-H.score||G.lastAccessNs-H.lastAccessNs),q},{name:"ranked",describeKind:"derived",equals:gd,meta:Ie("ranked")}),u.add(m,{name:"ranked"})}else m=F([],{name:"ranked",describeKind:"state",meta:Ie("ranked_disabled")}),u.add(m,{name:"ranked"});let h=A([p.entries],([S])=>(S??new Map).size,{name:"size",describeKind:"derived",initial:0,meta:Ie("size")});u.add(h,{name:"size"}),u.addDisposer(Y(h));let g=Tt({name:"events",retainedLimit:1024,graph:u}),y=wn(u,"seq",0),T=(S,E,I)=>{let K=z(),q=p.get(S),H=I?.score??c()(E);p.set(S,{id:S,value:E,baseScore:H,createdAtNs:q?.createdAtNs??K,lastAccessNs:K})},b=S=>{p.has(S)&&p.delete(S)},v=()=>{p.size!==0&&p.clear()},k=()=>{if(!r)return;let S=c(),E=p.entries.cache;if(!E||E.size===0)return;let I=[];for(let K of E.values())I.push([K.id,{...K,baseScore:S(K.value)}]);p.setMany(I)},_=Me(T,{audit:g,seq:y,onSuccess:([S],E,I)=>({action:"upsert",id:S,t_ns:I.t_ns,seq:I.seq})}),w=Me(b,{audit:g,seq:y,onSuccess:([S],E,I)=>({action:"remove",id:S,t_ns:I.t_ns,seq:I.seq})}),R=Me(v,{audit:g,seq:y,onSuccess:(S,E,I)=>({action:"clear",t_ns:I.t_ns,seq:I.seq})}),x=Me(k,{audit:g,seq:y,onSuccess:(S,E,I)=>({action:"rescore",t_ns:I.t_ns,seq:I.seq})});function N(S){let E=Ft(S,"id");return A([p.entries,E],([I,K])=>I?.get(K),{describeKind:"derived",meta:Ie("collection_item")})}function M(S){let E=Ft(S,"id");return A([p.entries,E],([I,K])=>I?.has(K)??!1,{describeKind:"derived",meta:Ie("collection_has")})}return Object.assign(u,{events:g,items:p.entries,ranked:m,size:h,upsert:_,remove:w,clear:R,rescore:x,itemNode:N,hasNode:M})}function Ls(t={}){let e=t.backend??"flat",n=t.dimension,r=t.strictDimension??!0,o=t.maxSize,s=t.retentionScore,a;if(e==="hnsw"&&(a=t.hnswFactory?.(),!a))throw new Error('vectorIndex backend "hnsw" requires an optional dependency adapter; install your HNSW package and provide `hnswFactory`.');let i=new ce(t.name??"vector_index"),d;function c(x){if(n!==void 0){if(x.length!==n)throw new RangeError(`vector dimension mismatch: expected ${n}, got ${x.length}`);return}if(r){if(d===void 0){d=x.length;return}if(x.length!==d)throw new RangeError(`vector dimension mismatch: inferred ${d} from first upsert, got ${x.length}. Pass \`strictDimension: false\` to opt into zero-pad behavior, or set an explicit \`dimension\`.`)}}let u=s??(x=>x.upsertedAtNs),l=!1,p=Tt({name:"events",retainedLimit:1024,graph:i}),f=wn(i,"seq",0),m=Pe({name:"entries",...o!==void 0?{retention:{score:(x,N)=>u(N),maxSize:o,onArchive:x=>{l||(e==="hnsw"&&a.remove(x),p.append({action:"evict",id:x,t_ns:ie(),seq:Lt(f)}))}}}:{}});if(i.add(m.entries,{name:"entries"}),i.addDisposer(Y(m.entries)),a?.dispose){let x=a.dispose.bind(a);i.addDisposer(()=>x())}let h=(x,N,M)=>{c(N),e==="hnsw"&&a.upsert(x,N,M);let L=(()=>{if(M!==void 0)return M===null||typeof M!="object"?M:Array.isArray(M)?[...M]:{...M}})(),S={id:x,vector:[...N],...L!==void 0?{meta:L}:{},upsertedAtNs:z()};m.set(x,S)},g=x=>{m.has(x)&&(e==="hnsw"&&a.remove(x),m.delete(x))},y=()=>{if(m.size!==0){l=!0;try{m.clear(),e==="hnsw"&&a.clear()}finally{l=!1}d=void 0}},T=()=>{if(e!=="hnsw")return;let x=m.entries.cache;if(x){a.clear();for(let N of x.values())a.upsert(N.id,N.vector,N.meta)}},b=Me(h,{audit:p,freeze:!1,seq:f,onSuccess:([x],N,M)=>({action:"upsert",id:x,t_ns:M.t_ns,seq:M.seq})}),v=Me(g,{audit:p,seq:f,onSuccess:([x],N,M)=>({action:"remove",id:x,t_ns:M.t_ns,seq:M.seq})}),k=Me(y,{audit:p,seq:f,onSuccess:(x,N,M)=>({action:"clear",t_ns:M.t_ns,seq:M.seq})}),_=Me(T,{audit:p,seq:f,onSuccess:(x,N,M)=>({action:"reindex",t_ns:M.t_ns,seq:M.seq})});function w(x,N=5){let M=Ft(N,"k");return A([m.entries,x,M],L=>{let S=L[0],E=L[1],I=L[2],K=Number.isFinite(I)?Math.max(0,Math.floor(I)):0;if(!S||S.size===0||K<=0)return[];if(E==null||E.length===0)return[];let q=n??(r?d:void 0);return q!==void 0&&E.length!==q?[]:e==="hnsw"?[...a.search(E,K)]:[...S.values()].map(G=>({id:G.id,score:Br(E,G.vector),...G.meta!==void 0?{meta:G.meta}:{}})).sort((G,j)=>j.score-G.score).slice(0,K)},{describeKind:"derived",equals:(L,S)=>md(L,S),meta:Ie("vector_search")})}return Object.assign(i,{backend:e,events:p,entries:m.entries,upsert:b,remove:v,clear:k,reindex:_,searchNode:w})}var Es="\0";function Nn(t,e,n){return`${t}${Es}${e}${Es}${n}`}function Os(t,e){if(!t||t.size===0)return new Map;let n=new Map;for(let o of t.values()){let s=e==="from"?o.from:o.to,a=n.get(s);a||(a=[],n.set(s,a)),a.push(o)}let r=new Map;for(let[o,s]of n)r.set(o,Object.freeze(s));return r}function As(t,e){if(t===e)return!0;if(t==null||e==null||t.size!==e.size)return!1;for(let[n,r]of t){let o=e.get(n);if(!o||r.length!==o.length)return!1;for(let s=0;s<r.length;s+=1){let a=r[s],i=o[s];if(a.from!==i.from||a.to!==i.to||a.relation!==i.relation||a.weight!==i.weight)return!1}}return!0}function Ds(t,e={}){let n=e.orphanGC??"keep";if(e.entitiesMaxSize!==void 0&&e.entitiesMaxSize<1)throw new RangeError("knowledgeGraph: entitiesMaxSize must be >= 1");if(e.edgesMaxSize!==void 0&&e.edgesMaxSize<1)throw new RangeError("knowledgeGraph: edgesMaxSize must be >= 1");let r=new ce(t),o=Pe({name:"entities",...e.entitiesMaxSize!==void 0?{maxSize:e.entitiesMaxSize}:{}}),s=Pe({name:"edges",...e.edgesMaxSize!==void 0?{maxSize:e.edgesMaxSize}:{}});r.add(o.entries,{name:"entities"}),r.add(s.entries,{name:"edges"});let a=A([s.entries],([R])=>Os(R,"from"),{name:"adjacencyOut",describeKind:"derived",initial:new Map,equals:As,meta:Ie("adjacency_out")}),i=A([s.entries],([R])=>Os(R,"to"),{name:"adjacencyIn",describeKind:"derived",initial:new Map,equals:As,meta:Ie("adjacency_in")});r.add(a,{name:"adjacencyOut"}),r.add(i,{name:"adjacencyIn"}),r.addDisposer(Y(a)),r.addDisposer(Y(i));let d=A([o.entries],([R])=>(R??new Map).size,{name:"entityCount",describeKind:"derived",initial:0,meta:Ie("entity_count")}),c=A([s.entries],([R])=>(R??new Map).size,{name:"edgeCount",describeKind:"derived",initial:0,meta:Ie("edge_count")});r.add(d,{name:"entityCount"}),r.add(c,{name:"edgeCount"}),r.addDisposer(Y(d)),r.addDisposer(Y(c));let u=Tt({name:"events",retainedLimit:1024,graph:r}),l=wn(r,"seq",0);function p(R){let x=a.cache,N=i.cache;return(x?.get(R)?.length??0)>0||(N?.get(R)?.length??0)>0}function f(R){if(n==="remove")for(let x of R)o.has(x)&&(p(x)||(o.delete(x),u.append({action:"orphanRemove",id:x,t_ns:ie(),seq:Lt(l)})))}let m=(R,x)=>{o.set(R,x)},h=R=>{let x=s.entries.cache,N=new Set;if(x){let M=[];for(let[L,S]of x)(S.from===R||S.to===R)&&(M.push(L),S.from!==R&&N.add(S.from),S.to!==R&&N.add(S.to));M.length>0&&s.deleteMany(M)}o.has(R)&&o.delete(R),f([...N])},g=(R,x,N,M=1)=>{s.set(Nn(R,x,N),{from:R,to:x,relation:N,weight:M})},y=(R,x,N)=>{if(N!==void 0)s.delete(Nn(R,x,N));else{let M=s.entries.cache;if(!M)return;let L=[];for(let[S,E]of M)E.from===R&&E.to===x&&L.push(S);L.length>0&&s.deleteMany(L)}f([R,x])},T=Me(m,{audit:u,seq:l,onSuccess:([R],x,N)=>({action:"upsertEntity",id:R,t_ns:N.t_ns,seq:N.seq})}),b=Me(h,{audit:u,seq:l,onSuccess:([R],x,N)=>({action:"removeEntity",id:R,t_ns:N.t_ns,seq:N.seq})}),v=Me(g,{audit:u,seq:l,onSuccess:([R,x,N,M],L,S)=>({action:"link",from:R,to:x,relation:N,weight:M??1,t_ns:S.t_ns,seq:S.seq})}),k=Me(y,{audit:u,seq:l,onSuccess:([R,x,N],M,L)=>({action:"unlink",from:R,to:x,...N!==void 0?{relation:N}:{},t_ns:L.t_ns,seq:L.seq})});function _(R,x){let N=Ft(R,"id"),M=x!==void 0?Ft(x,"relation"):void 0;return A(M?[a,i,N,M]:[a,i,N],S=>{let E=S[0],I=S[1],K=S[2],q=M?S[3]:void 0,H=E.get(K)??[],G=I.get(K)??[],j=new Set,O=[];for(let C of H){let J=Nn(C.from,C.to,C.relation);j.has(J)||q!==void 0&&C.relation!==q||(j.add(J),O.push(C))}for(let C of G){let J=Nn(C.from,C.to,C.relation);j.has(J)||q!==void 0&&C.relation!==q||(j.add(J),O.push(C))}return O},{describeKind:"derived",equals:(S,E)=>{let I=S,K=E;if(I===K)return!0;if(I==null||K==null||I.length!==K.length)return!1;for(let q=0;q<I.length;q+=1){let H=I[q],G=K[q];if(H.from!==G.from||H.to!==G.to||H.relation!==G.relation||H.weight!==G.weight)return!1}return!0},meta:Ie("related")})}return Object.assign(r,{events:u,entities:o.entries,edges:s.entries,adjacencyOut:a,adjacencyIn:i,entityCount:d,edgeCount:c,upsertEntity:T,removeEntity:b,link:v,unlink:k,relatedNode:_})}function Vr(t,e,n){let r=Ls({dimension:n.dimension});t.add(r.entries,{name:"vectorIndex"});let s=Re([e.store.entries],([a])=>{let i=a??new Map;for(let[d,c]of i){let u=n.embedFn(c);u&&r.upsert(d,u,c)}}).subscribe(()=>{});return t.addDisposer(s),{vectors:r,dispose:()=>s()}}function Kr(t,e,n,r){let o=r.mountPath??n,s=Ds(`${n}-kg`);if(t.mount(o,s),!r.entityFn)return{kg:s,dispose:()=>{}};let a=r.entityFn,d=Re([e.store.entries],([c])=>{let u=c??new Map;for(let[l,p]of u){let f=a(l,p);if(f){for(let m of f.entities??[])s.upsertEntity(m.id,m.value);for(let m of f.relations??[])s.link(m.from,m.to,m.relation,m.weight)}}}).subscribe(()=>{});return t.addDisposer(d),{kg:s,dispose:()=>d()}}function zr(t,e,n){let r=n.decayRate??_n,o=n.maxActive??1e3,s=n.archiveThreshold??.1,a=n.permanentFilter??(()=>!1),i=Cs("permanent",{ranked:!1});t.mount("permanent",i);let d=new Set,c=T=>d.has(T)?"permanent":(e.store.entries.cache??new Map).has(T)?"active":"archived",u=(T,b)=>{d.add(T),i.upsert(T,b)},l=new Map,p=e.store.entries,f=n.context?V(n.context):F(null),h=Re([p,f],([T,b])=>{let v=T??new Map,k=z(),_=[],w=[];for(let[x,N]of v){if(l.has(x)||l.set(x,k),a(x,N)){w.push({key:x,value:N});continue}let M=n.score(N,b),L=l.get(x)??k,S=Number(k-L)/1e9;Gt(M,S,r)<s&&_.push(x)}for(let x of l.keys())v.has(x)||l.delete(x);for(let{key:x,value:N}of w)d.has(x)||u(x,N);let R=v.size-d.size;if(R>o){let x=[...v.entries()].filter(([M])=>!d.has(M)).map(([M,L])=>({key:M,score:n.score(L,b)})).sort((M,L)=>M.score-L.score),N=R-o;for(let M=0;M<N&&M<x.length;M++){let L=x[M].key;_.includes(L)||_.push(L)}}_.length>0&&ne(()=>{for(let x of _)e.store.delete(x)})}).subscribe(()=>{}),g=null;n.archiveTier&&(g=t.attachSnapshotStorage([n.archiveTier],n.archiveStorageOptions??{}));let y=()=>{h(),g?.dispose()};return t.addDisposer(y),{tiers:{permanent:i,activeEntries:p,archiveHandle:g,tierOf:c,markPermanent:u},dispose:y}}function hd(t,e){if(!t||!e)return 0;let n=Math.min(t.length,e.length),r=0;for(;r<n&&t[r]===e[r];)r++;return r}function Ur(t,e,n,r,o){let s=o.topK??20,a=o.graphDepth??1,i=o.budget??2e3,d=o.contextWeight??0,c=o.context?V(o.context):F(null),u=(g,y,T)=>{let b=new Map,v=[];if(n&&T.vector){let N=T.vector,M=n.entries.cache;if(M&&M.size>0&&s>0){v=[...M.values()].map(S=>({id:S.id,score:Br(N,S.vector),...S.meta!==void 0?{meta:S.meta}:{}})).sort((S,E)=>E.score-S.score).slice(0,s);for(let S of v){let E=g.get(S.id);E&&b.set(S.id,{value:E,sources:new Set(["vector"])})}}}let k=[];if(r){let N=r.adjacencyOut.cache,M=r.adjacencyIn.cache,L=[...T.entityIds??[],...b.keys()],S=new Set,E=L;for(let I=0;I<a;I++){let K=[];for(let q of E){if(S.has(q))continue;S.add(q);let H=N?.get(q)??[],G=M?.get(q)??[];for(let j of H){let O=j.to;if(!S.has(O)){K.push(O);let C=g.get(O);if(C){let J=b.get(O);J?J.sources.add("graph"):b.set(O,{value:C,sources:new Set(["graph"])}),k.push(O)}}}for(let j of G){let O=j.from;if(!S.has(O)){K.push(O);let C=g.get(O);if(C){let J=b.get(O);J?J.sources.add("graph"):b.set(O,{value:C,sources:new Set(["graph"])}),k.push(O)}}}}E=K}}for(let[N,M]of g)b.has(N)||b.set(N,{value:M,sources:new Set(["store"])});let _=T.context?.length??0,w=[];for(let[N,{value:M,sources:L}]of b){let S=o.contextOf?o.contextOf(M):void 0,E=o.score(M,y);if(d>0&&_>0){let K=hd(T.context,S);K>0&&(E=E*(1+d*K/_))}let I=S?{key:N,value:M,score:E,sources:[...L],context:S}:{key:N,value:M,score:E,sources:[...L]};w.push(I)}w.sort((N,M)=>M.score-N.score);let R=[],x=0;for(let N of w){let M=o.cost(N.value);if(x+M>i&&R.length>0)break;R.push(N),x+=M}return{packed:R,trace:{vectorCandidates:v,graphExpanded:k,ranked:w,packed:R}}},l=(g,y)=>{if(g===y)return!0;if(g.length!==y.length)return!1;for(let T=0;T<g.length;T++)if(g[T]!==y[T])return!1;return!0},p=F([],{name:"retrieval",describeKind:"state",meta:W("retrieval_pipeline"),equals:l});t.add(p,{name:"retrieval"});let f=F(null,{name:"retrievalTrace",describeKind:"state",meta:W("retrieval_trace")});return t.add(f,{name:"retrievalTrace"}),{retrieval:p,retrievalTrace:f,retrieve:g=>{let y=e.store.entries.cache??new Map,{packed:T,trace:b}=u(y,c.cache,g);return ne(()=>{p.emit(T),f.emit(b)}),T},retrieveReactive:g=>{let y=V(g),T=A([e.store.entries,c,y],([k,_,w])=>{if(w==null)return{packed:[],trace:null};let R=k??new Map,{packed:x,trace:N}=u(R,_,w);return{packed:x,trace:N}},{name:"retrievalReactive::result",describeKind:"derived",meta:W("retrieval_reactive_result"),initial:{packed:[],trace:null}}),v=Re([T],([k])=>{let _=k;ne(()=>{p.emit(_.packed),_.trace&&f.emit(_.trace)})}).subscribe(()=>{});return t.addDisposer(v),A([T],([k])=>k.packed,{name:"retrievalReactive",describeKind:"derived",meta:W("retrieval_reactive"),initial:[],equals:l})}}}function yd(t,e,n){let r=new ce(t,n.graph);r.tagFactory("agentMemory",ft(n));let o;if(n.extractFn)o=n.extractFn;else if(n.adapter&&n.extractPrompt)o=Nr(n.extractPrompt,{adapter:n.adapter});else throw new Error("agentMemory: provide either extractFn or adapter + extractPrompt");let s=(T,b)=>{let v=b.cache??new Map,k=b.subscribe(_=>{for(let w of _)w[0]===D&&(v=w[1])});return r.addDisposer(k),he(T,_=>_==null?{upsert:[]}:o(_,v))},a=e;if(n.admissionFilter){let T=V(e),b=n.admissionFilter;a=A([T],([v])=>{if(b(v))return v},{name:"admissionFilter",describeKind:"derived"})}let i;n.consolidateFn?i=n.consolidateFn:n.adapter&&n.consolidatePrompt&&(i=Mr(n.consolidatePrompt,{adapter:n.adapter}));let d=n.consolidateTrigger;if(!d&&i&&n.reflection?.enabled!==!1){let T=n.reflection?.interval??3e5;d=Zt(T,{period:T})}let c={score:n.score,cost:n.cost,budget:n.budget??2e3,context:n.context,consolidate:i,consolidateTrigger:d},u=Ns(a,s,c);r.add(u.store.entries,{name:"store"}),r.add(u.compact,{name:"compact"}),r.add(u.size,{name:"size"});let l=null;n.vectorDimensions&&n.vectorDimensions>0&&n.embedFn&&(l=Vr(r,u,{dimension:n.vectorDimensions,embedFn:n.embedFn}).vectors);let p=null;n.enableKnowledgeGraph&&(p=Kr(r,u,t,{mountPath:"kg",entityFn:n.entityFn}).kg);let f=null;n.tiers&&(f=zr(r,u,{...n.tiers,score:n.score,context:n.context}).tiers);let m=null,h=null,g=null,y=null;if(l||p){let T=Ur(r,u,l,p,{score:n.score,cost:n.cost,budget:n.budget,topK:n.retrieval?.topK,graphDepth:n.retrieval?.graphDepth,contextOf:n.contextOf,contextWeight:n.contextWeight,context:n.context});m=T.retrieval,h=T.retrievalTrace,g=T.retrieve,y=T.retrieveReactive}return Object.assign(r,{distillBundle:u,compact:u.compact,size:u.size,vectors:l,kg:p,memoryTiers:f,retrieval:m,retrievalTrace:h,retrieve:g,retrieveReactive:y})}function bd(t,e,n){let r=t.describe({actor:e,detail:"full"}),o=n?.groupByTags??!0,s=n?.separator??`
12
- `,a=[],i=n?.sinceVersion;for(let[d,c]of Object.entries(r.nodes)){let u=c.meta??{},l=u.description,p=u.format;if(!l&&!p)continue;if(i!=null&&c.v!=null){let y=i.get(d);if(y!=null&&y.id===c.v.id&&c.v.version<=y.version)continue}let f=l??d,m=c.value,h=u.unit,g;p==="currency"&&typeof m=="number"?g=`$${m.toFixed(2)}`:p==="percentage"&&typeof m=="number"?g=`${(m*100).toFixed(1)}%`:m==null?g="(no value)":g=String(m),h&&p!=="currency"&&p!=="percentage"&&(g=`${g} ${h}`),a.push({path:d,description:f,formatted:g})}if(a.length===0)return"";if(o){let d=new Map,c=[];for(let l of a){let f=r.nodes[l.path].meta?.tags;if(f&&f.length>0){let m=f[0],h=d.get(m);h||(h=[],d.set(m,h)),h.push(l)}else c.push(l)}if(d.size===0)return a.map(l=>`- ${l.description}: ${l.formatted}`).join(s);let u=[];for(let[l,p]of[...d.entries()].sort((f,m)=>f[0].localeCompare(m[0])))u.push(`[${l}]${s}${p.map(f=>`- ${f.description}: ${f.formatted}`).join(s)}`);return c.length>0&&u.push(c.map(l=>`- ${l.description}: ${l.formatted}`).join(s)),u.join(s+s)}return a.map(d=>`- ${d.description}: ${d.formatted}`).join(s)}se();Q();Z();Q();_e();se();ve();Q();Qe();Z();function Is(t,e){return De("reduction",t,e)}function Ps(t,e,n,r){let o=r?.maxIterations??10,s=`__feedback_${e}`,a=F(0,{meta:Is("feedback_counter",{maxIterations:o,feedbackFrom:e,feedbackTo:n})});t.add(a,{name:s});let i=t.resolve(e),d=t.resolve(n),c=`__feedback_effect_${e}`,u=te([],(l,p)=>{let f=i.subscribe(m=>{for(let h of m){let g=h[0];if(g===D){let y=h[1];if(y==null)return;ne(()=>{vs(a,o)&&d.emit(y)})}else if(g===$||g===P){let y=g===P&&h.length>1?[P,h[1]]:[g];a.down([y])}}});return()=>f()},{name:c,describeKind:"effect",meta:{...Is("feedback_effect",{feedbackFrom:e,feedbackTo:n}),_internal:!0}});return t.add(u,{name:c}),t.addDisposer(Y(u)),t}function wt(t){let e=t.meta?.factory;return typeof e=="string"?e:void 0}function kt(t){let e=t.meta?.factoryArgs;return e!=null&&typeof e=="object"?e:{}}function Gs(t){let e=kt(t);return"initial"in e?e.initial:t.value}function $s(t){return typeof t=="object"&&t!==null&&"factory"in t}function js(t){return typeof t=="object"&&t!==null&&"factory"in t}function Td(t){return $s(t)?t.factory:t}function vd(t){return js(t)?t.factory:t}function wd(t,e){let n=[],r=new Set(Object.keys(e.fns??{})),o=new Set(Object.keys(e.sources??{}));for(let[s,a]of Object.entries(t.nodes)){if(a.type==="template")continue;let i=a,d=wt(i);if(d==null)continue;let c=i.type==="producer";if(i.type==="state"&&d==="state")continue;if(c){let l=o.has(d),p=r.has(d);if(!l&&!p&&(o.size>0||r.size>0)){let f=Mn(d,o)??Mn(d,r);n.push(`Node "${s}": source "${d}" not found in catalog`+(f?`. Did you mean "${f}"?`:""))}}else if(r.size>0&&!r.has(d))if(o.has(d))n.push(`Node "${s}": fn "${d}" is a source, not a function. Use it as a producer source instead, or use a function from: ${[...r].join(", ")}`);else{let l=Mn(d,r);n.push(`Node "${s}": fn "${d}" not found in catalog`+(l?`. Did you mean "${l}"?`:""))}let u=kt(i);if(!c&&e.fns?.[d]){let l=e.fns[d];if($s(l)&&l.configSchema){for(let[p,f]of Object.entries(l.configSchema))if(f.required!==!1&&!(p in u)&&n.push(`Node "${s}": config missing required field "${p}"`),p in u&&f.enum){let m=u[p];f.enum.includes(m)||n.push(`Node "${s}": config.${p} = ${JSON.stringify(m)}, expected one of: ${f.enum.join(", ")}`)}}}if(c&&e.sources?.[d]){let l=e.sources[d];if(js(l)&&l.configSchema){for(let[p,f]of Object.entries(l.configSchema))if(f.required!==!1&&!(p in u)&&n.push(`Node "${s}": config missing required field "${p}"`),p in u&&f.enum){let m=u[p];f.enum.includes(m)||n.push(`Node "${s}": config.${p} = ${JSON.stringify(m)}, expected one of: ${f.enum.join(", ")}`)}}}}if(t.templates)for(let[s,a]of Object.entries(t.templates))for(let[i,d]of Object.entries(a.nodes)){let c=wt(d);if(c!=null&&!(d.type==="state"&&c==="state")&&d.type!=="producer"&&r.size>0&&!r.has(c)){let u=Mn(c,r);n.push(`Template "${s}" node "${i}": fn "${c}" not found in catalog`+(u?`. Did you mean "${u}"?`:""))}}return{valid:n.length===0,errors:n,warnings:[]}}function Mn(t,e){let n=null,r=1/0,o=t.toLowerCase();for(let s of e){let a=kd(o,s.toLowerCase());a<r&&a<=Math.max(3,Math.floor(t.length/2))&&(r=a,n=s)}return n}function kd(t,e){let n=t.length,r=e.length,o=Array.from({length:n+1},(s,a)=>Array.from({length:r+1},(i,d)=>a===0?d:d===0?a:0));for(let s=1;s<=n;s++)for(let a=1;a<=r;a++)o[s][a]=t[s-1]===e[a-1]?o[s-1][a-1]:1+Math.min(o[s-1][a],o[s][a-1],o[s-1][a-1]);return o[n][r]}var Fs=new Set(["state","producer","derived","effect","operator","template"]),xd=new Set(["state","producer","derived","effect","operator"]);function Rd(t){let e=[],n=[];if(t==null||typeof t!="object")return{valid:!1,errors:["GraphSpec must be a non-null object"],warnings:n};let r=t;if((typeof r.name!="string"||r.name.length===0)&&e.push("Missing or empty 'name' field"),r.nodes==null||typeof r.nodes!="object"||Array.isArray(r.nodes))return e.push("Missing or invalid 'nodes' field (must be an object)"),{valid:!1,errors:e,warnings:n};let o=new Set(Object.keys(r.nodes)),s=new Map,a=new Map;if(r.templates!=null&&typeof r.templates=="object"&&!Array.isArray(r.templates)){for(let[i,d]of Object.entries(r.templates))if(d!=null&&typeof d=="object"){let c=d;a.set(i,{params:Array.isArray(c.params)?c.params:[]})}}if(r.templates!=null)if(typeof r.templates!="object"||Array.isArray(r.templates))e.push("'templates' must be an object");else for(let[i,d]of Object.entries(r.templates)){if(d==null||typeof d!="object"){e.push(`Template "${i}": must be an object`);continue}let c=d;if(Array.isArray(c.params)||e.push(`Template "${i}": missing 'params' array`),c.nodes==null||typeof c.nodes!="object"||Array.isArray(c.nodes))e.push(`Template "${i}": missing or invalid 'nodes' object`);else{let u=new Set(Array.isArray(c.params)?c.params:[]),l=new Set(Object.keys(c.nodes));for(let[p,f]of Object.entries(c.nodes)){if(f==null||typeof f!="object"){e.push(`Template "${i}" node "${p}": must be an object`);continue}let m=f;if((typeof m.type!="string"||!xd.has(m.type))&&e.push(`Template "${i}" node "${p}": invalid type`),Array.isArray(m.deps))for(let h of m.deps)!l.has(h)&&!u.has(h)&&e.push(`Template "${i}" node "${p}": dep "${h}" is not an inner node or param`)}typeof c.output!="string"?e.push(`Template "${i}": missing 'output' string`):c.nodes[c.output]||e.push(`Template "${i}": output "${c.output}" is not a declared node`)}}for(let[i,d]of Object.entries(r.nodes)){if(d==null||typeof d!="object"){e.push(`Node "${i}": must be an object`);continue}let c=d;if(typeof c.type!="string"||!Fs.has(c.type)){e.push(`Node "${i}": invalid type "${String(c.type)}" (expected: ${[...Fs].join(", ")})`);continue}if(s.set(i,c.type),c.type==="template")if(typeof c.template!="string"||!a.has(c.template))e.push(`Node "${i}": template "${String(c.template)}" not found in templates`);else if(c.bind==null||typeof c.bind!="object"||Array.isArray(c.bind))e.push(`Node "${i}": template ref requires 'bind' object`);else{let u=a.get(c.template),l=c.bind;for(let p of u.params)p in l||e.push(`Node "${i}": template param "${p}" is not bound (template "${c.template}")`);for(let[,p]of Object.entries(l))typeof p=="string"&&!o.has(p)&&e.push(`Node "${i}": bind target "${p}" does not reference an existing node`)}else{if(Array.isArray(c.deps))for(let u of c.deps)u===i?e.push(`Node "${i}": self-referencing dep`):o.has(u)||e.push(`Node "${i}": dep "${u}" does not reference an existing node`);(c.type==="derived"||c.type==="effect"||c.type==="operator")&&!Array.isArray(c.deps)&&e.push(`Node "${i}": ${c.type} node should have a 'deps' array`)}}if(r.feedback!=null)if(!Array.isArray(r.feedback))e.push("'feedback' must be an array");else for(let i=0;i<r.feedback.length;i++){let d=r.feedback[i];if(d==null||typeof d!="object"){e.push(`Feedback [${i}]: must be an object`);continue}let c=d;typeof c.from!="string"||!o.has(c.from)?e.push(`Feedback [${i}]: 'from' "${String(c.from)}" does not reference an existing node`):s.get(c.from)==="effect"&&n.push(`Feedback [${i}]: 'from' "${c.from}" is an effect node \u2014 effects emit no DATA, so the feedback edge will never fire. Did you mean a derived/state node upstream?`),typeof c.from=="string"&&c.from===c.to&&e.push(`Feedback [${i}]: 'from' and 'to' must be different nodes`),typeof c.to!="string"||!o.has(c.to)?e.push(`Feedback [${i}]: 'to' "${String(c.to)}" does not reference an existing node`):typeof c.to=="string"&&s.get(c.to)!=="state"&&e.push(`Feedback [${i}]: 'to' node "${c.to}" must be a state node (got "${s.get(c.to)??"unknown"}")`)}return{valid:e.length===0,errors:e,warnings:n}}function Bs(t,e){let n=Rd(t);if(!n.valid)throw new Error(`compileSpec: invalid GraphSpec:
11
+ `,r=t.map(a=>typeof a=="string"?F(a):V(a)),o=A(r,a=>a.filter(i=>i!=null&&i!=="").join(n),{name:e?.name??"systemPrompt",describeKind:"derived",meta:W("system_prompt"),initial:""}),s=Y(o);return Object.assign(o,{dispose:s})}Q();var Qa=(t,e)=>t===e?!0:t.chunkCount===e.chunkCount&&t.charCount===e.charCount&&t.estimatedTokens===e.estimatedTokens&&t.estimated===e.estimated;function Xa(t,e){let n=e?.charsPerToken??4,r={chunkCount:0,charCount:0,estimatedTokens:0,estimated:!0};return A([t.latest],([o],s)=>{if(o==null)return r;let a=o;"chunkCount"in s.store||(s.store.chunkCount=0,s.store.charCount=0,s.store.usageTokens=0,s.store.sawUsage=!1);let i=s.store;a.type==="token"?(i.chunkCount+=1,i.charCount+=a.delta.length):a.type==="usage"&&(i.sawUsage=!0,i.usageTokens=Ge(a.usage)+Ke(a.usage));let d=i.sawUsage?i.usageTokens:Math.ceil(i.charCount/n);return{chunkCount:i.chunkCount,charCount:i.charCount,estimatedTokens:d,estimated:!i.sawUsage}},{name:e?.name??"cost-meter",describeKind:"derived",initial:r,meta:W("cost_meter_extractor"),equals:Qa})}Q();var Za=(t,e)=>{if(t===e)return!0;if(t==null||e==null)return t===e;if(t.length!==e.length)return!1;for(let n=0;n<t.length;n++){let r=t[n],o=e[n];if(r.label!==o.label||r.pattern!==o.pattern||r.match!==o.match||r.position!==o.position)return!1}return!0};function ed(t,e){let n=e.maxPatternLength??128;for(let o of e.patterns)if(o.pattern.source.length>n)throw new Error(`keywordFlagExtractor: pattern "${o.label}" literal exceeds maxPatternLength (${o.pattern.source.length} > ${n}); raise the option or shorten the pattern.`);let r=e.patterns.map(o=>({label:o.label,pattern:o.pattern,compiled:new RegExp(o.pattern.source,`${o.pattern.flags.replace("g","")}g`)}));return A([t],([o],s)=>{if(o==null)return[];let a=o;"flags"in s.store||(s.store.flags=[],s.store.scannedTo=0);let i=s.store.flags,d=s.store.scannedTo,c=Math.max(0,d-n),u=a.slice(c),l=!1;for(let{pattern:p,label:f,compiled:m}of r){m.lastIndex=0;for(let h of u.matchAll(m)){let g=c+(h.index??0);g+h[0].length<=d||(i.push({label:f,pattern:p,match:h[0],position:g}),l=!0)}}return s.store.scannedTo=a.length,l?[...i]:i.slice()},{name:e.name??"keyword-flag-extractor",describeKind:"derived",initial:[],meta:W("keyword_flag_extractor"),equals:Za})}Q();function td(t,e,n){return A([t],([r])=>r==null?null:e(r),{name:n?.name??"extractor",describeKind:"derived",initial:null,meta:W("stream_extractor"),...n?.equals?{equals:n.equals}:{}})}Q();var nd=(t,e)=>{if(t===e)return!0;if(t==null||e==null)return t===e;if(t.length!==e.length)return!1;for(let n=0;n<t.length;n++){let r=t[n],o=e[n];if(r.startIndex!==o.startIndex||r.name!==o.name||r.raw!==o.raw)return!1}return!0};function rd(t,e){return A([t],([n],r)=>{if(n==null)return[];let o=n;"calls"in r.store||(r.store.calls=[],r.store.scanFrom=0);let s=r.store.calls,a=r.store.scanFrom,i=!1;for(;a<o.length;){let d=o.indexOf("{",a);if(d===-1){r.store.scanFrom=o.length;break}let c=0,u=-1,l=!1;for(let f=d;f<o.length;f++){let m=o[f];if(l)m==="\\"&&f+1<o.length?f++:m==='"'&&(l=!1);else if(m==='"')l=!0;else if(m==="{")c++;else if(m==="}"&&(c--,c===0)){u=f;break}}if(u===-1){r.store.scanFrom=d;break}let p=o.slice(d,u+1);try{let f=JSON.parse(p);typeof f.name=="string"&&f.arguments!=null&&typeof f.arguments=="object"&&(s.push({name:f.name,arguments:f.arguments,raw:p,startIndex:d}),i=!0)}catch{}a=u+1,r.store.scanFrom=a}return i?[...s]:s.slice()},{name:e?.name??"tool-call-extractor",describeKind:"derived",initial:[],meta:W("tool_call_extractor"),equals:nd})}Q();function od(t,e,n,r){let o=n*(r?.hardMultiplier??1.5),s=typeof e!="function",a=[t];return s&&a.push(e),A(a,i=>{let d=i[0]??"";if(d.length===0)return"allow";let c=s?i[1]??0:e(d);return c>=o?"block":c>=n?"review":"allow"},{name:r?.name??"content-gate",initial:"allow"})}Q();function sd(t,e,n,r){let o=n??(()=>"[REDACTED]");function s(a){let i=a;for(let d of e){let c=d.global?d:new RegExp(d.source,`${d.flags}g`);i=i.replace(c,u=>o(u,d))}return i}return A([t],([a])=>s(a??""),{name:r?.name??"redactor",initial:""})}Ne();se();Le();ve();Q();Z();Q();Z();var xn=class extends ce{_log;messages;latest;messageCount;constructor(e,n={}){super(e,n.graph),this._log=$e([],{name:"messages",maxSize:n.maxMessages}),this.messages=this._log.entries,this.add(this.messages,{name:"messages"}),this.latest=A([this.messages],([r])=>{let o=r;return o.length===0?null:o[o.length-1]},{name:"latest",describeKind:"derived",meta:W("chat_latest")}),this.add(this.latest,{name:"latest"}),this.addDisposer(Y(this.latest)),this.messageCount=A([this.messages],([r])=>r.length,{name:"messageCount",describeKind:"derived",meta:W("chat_message_count"),initial:0}),this.add(this.messageCount,{name:"messageCount"}),this.addDisposer(Y(this.messageCount))}append(e,n,r){this._log.append({role:e,content:n,...r})}appendToolResult(e,n){this._log.append({role:"tool",content:n,toolCallId:e})}clear(){this._log.clear()}allMessages(){return this.messages.cache}};function Fr(t,e){return new xn(t,e)}Q();mt();function $r(t){let{toolCalls:e,tools:n}=t,r=t.retryCount??1,o=t.onError??"rescue",s=(a,i)=>{if(a===i)return!0;if(a.length!==i.length)return!1;for(let d=0;d<a.length;d++){let c=a[d],u=i[d];if(c?.id!==u?.id||c?.content!==u?.content)return!1}return!0};return he(e,a=>{if(a==null||a.length===0)throw new Error("toolExecution: received an empty tool-call batch as DATA \u2014 callers must upstream-filter empty batches (emit RESOLVED) so switchMap is only dispatched for non-empty batches.");let i=a.map(d=>id(d,n,r,o));return A(i,d=>d,{name:"toolExecution::batch",equals:s})})}function id(t,e,n,r){let o=Xn(()=>e.executeReactive(t.name,t.arguments),{count:n}),s=A([o],([a])=>({id:t.id,content:typeof a=="string"?a:JSON.stringify(a)}));return r==="propagate"?s:Do(s,a=>({id:t.id,content:JSON.stringify({error:String(a)})}))}se();Q();Z();var Rn=class extends ce{definitions;schemas;_bundle;constructor(e,n={}){super(e,n.graph),this._bundle=Pe({name:"definitions"}),this.definitions=this._bundle.entries,this.add(this.definitions,{name:"definitions"}),this.schemas=A([this.definitions],([r])=>[...(r??new Map).values()],{name:"schemas",describeKind:"derived",meta:W("tool_schemas"),initial:[]}),this.add(this.schemas,{name:"schemas"}),this.addDisposer(Y(this.schemas))}register(e){this._bundle.set(e.name,e)}unregister(e){this._bundle.delete(e)}executeReactive(e,n){let r=this._bundle.get(e);if(!r)throw new Error(`toolRegistry: unknown tool "${e}"`);return oe(o=>{let s=new AbortController,a;try{let d=r.handler(n,{signal:s.signal});a=ad(d,s.signal)}catch(d){return o.down([[P,d]]),()=>{s.abort()}}let i=a.subscribe(d=>{o.down(d)});return()=>{s.abort(),i()}},{name:`executeReactive::${e}`,meta:W("tool_execute_reactive")})}getDefinition(e){return this._bundle.entries.cache?.get(e)}};function jr(t,e){return new Rn(t,e)}function ad(t,e){return Rr(t)?t:t!=null&&typeof t.then=="function"?en(t,{signal:e}):t!=null&&typeof t=="object"&&Symbol.asyncIterator in t?er(t,{signal:e}):en(Promise.resolve(t),{signal:e})}var Sn=class extends ce{chat;tools;status;turn;aborted;lastResponse;toolCalls;toolResults;_terminalResult;_disposeRunWiring;_running=!1;_currentAbortController=null;constructor(e,n){if(super(e,n.graph),this.chat=Fr(`${e}-chat`,{maxMessages:n.maxMessages}),this.mount("chat",this.chat),this.tools=jr(`${e}-tools`),this.mount("tools",this.tools),n.tools)for(let O of n.tools)this.tools.register(O);this.status=F("idle",{name:"status",describeKind:"state",meta:W("agent_status")}),this.add(this.status,{name:"status"}),this.turn=F(0,{name:"turn",describeKind:"state",meta:W("agent_turn_count")}),this.add(this.turn,{name:"turn"}),this.aborted=F(!1,{name:"aborted",describeKind:"state",meta:W("agent_aborted")}),this.add(this.aborted,{name:"aborted"});let r=0,o=this.turn.subscribe(O=>{for(let C of O)C[0]===D&&(r=C[1])}),s=!1,a=this.aborted.subscribe(O=>{for(let C of O)C[0]===D&&(s=C[1])}),i=this.chat.messages.cache??[],d=this.chat.messages.subscribe(O=>{for(let C of O)C[0]===D&&(i=C[1])}),c=this.tools.schemas.cache??[],u=this.tools.schemas.subscribe(O=>{for(let C of O)C[0]===D&&(c=C[1])}),l=n.adapter,p=n.systemPrompt,f=n.model,m=n.temperature,h=n.maxTokens,g=n.maxTurns??10,y=n.stopWhen,T=this.chat,b=this.tools,v=this.status,k=this.turn,N=this.aborted,w=te([v],(O,C,J)=>{if(It(O,J.prevData,0,"idle")!=="thinking"||s||r>=g){C.down([[U]]);return}if(i.length===0){C.down([[U]]);return}C.emit({messages:i,tools:c})},{name:"promptInput",describeKind:"derived",meta:W("agent_prompt_input",{closureReads:["aborted","turn","chat.messages","tools.schemas"]})}),R=he(w,O=>{let C=new AbortController;return this._currentAbortController=C,s&&C.abort(new Error("agentLoop: aborted")),V(l.invoke(O.messages,{tools:O.tools.length>0?O.tools:void 0,systemPrompt:p,model:f,temperature:m,maxTokens:h,signal:C.signal}),{signal:C.signal})},{equals:()=>!1}),x=F(null,{name:"lastResponse",describeKind:"state",meta:W("agent_last_response")});this.lastResponse=x;let _=te([x,v],(O,C,J)=>{let fe=It(O,J.prevData,0,null);if(It(O,J.prevData,1,"idle")!=="acting"){C.down([[U]]);return}let ee=fe?.toolCalls;if(ee==null||ee.length===0){C.down([[U]]);return}C.emit(ee)},{name:"toolCallsRaw",describeKind:"derived",meta:W("agent_tool_calls_raw")}),M=n.interceptToolCalls?n.interceptToolCalls(_):_;this.toolCalls=M;let L=$r({toolCalls:M,tools:b,retryCount:1});this.toolResults=L;let S=Re([R],([O])=>{if(s)return;let C=O,J=r+1,fe=C.toolCalls!=null&&C.toolCalls.length>0,B=C.finishReason==="end_turn"&&(!C.toolCalls||C.toolCalls.length===0),ee=y?.(C)===!0,we=J>=g,qe=ee||B||!fe||we?"done":"acting";ne(()=>{x.emit(C),v.emit(qe),k.emit(J),T.append("assistant",C.content,{toolCalls:C.toolCalls})})}),E=Re([L],([O])=>{if(s)return;let C=O;if(C.length===0)return;let J=r>=g?"done":"thinking";ne(()=>{v.emit(J);for(let fe of C)T.appendToolResult(fe.id,fe.content)})}),I=v.cache??"idle",K=v.subscribe(O=>{for(let C of O)C[0]===D&&(I=C[1])}),q=Re([N],([O])=>{O===!0&&(this._currentAbortController?.abort(new Error("agentLoop: aborted")),I!=="done"&&v.emit("done"))}),H=Y(S),G=Y(E),j=Y(q);this._terminalResult=te([v,x],(O,C,J)=>{let fe=It(O,J.prevData,0,"idle"),B=It(O,J.prevData,1,null);if(fe==="done"){if(B!=null){C.emit(B);return}let ee=new Error("agentLoop: aborted");ee.name="AbortError",C.down([[P,ee]]);return}if(fe==="error"){C.down([[P,new Error("agentLoop: errored")]]);return}C.down([[U]])},{name:"terminalResult",describeKind:"derived",meta:W("agent_terminal_result")}),this.add(w,{name:"promptInput"}),this.add(R,{name:"llmResponse"}),this.add(this.lastResponse,{name:"lastResponse"}),this.toolCalls===_?this.add(this.toolCalls,{name:"toolCalls"}):(this.add(_,{name:"toolCallsRaw"}),this.add(this.toolCalls,{name:"toolCalls"})),this.add(L,{name:"toolResults"}),this.add(this._terminalResult,{name:"terminalResult"}),this.addDisposer(o),this.addDisposer(a),this.addDisposer(K),this.addDisposer(d),this.addDisposer(u),this.addDisposer(H),this.addDisposer(G),this.addDisposer(j),this._disposeRunWiring=()=>{}}async run(e,n){if(this._running)throw new RangeError(`agentLoop "${this.name}": run() called while a previous run() is still pending \u2014 await the previous run before starting another, or call abort() first`);this._running=!0;let r;try{ne(()=>{this.turn.emit(0),this.aborted.emit(!1),this.status.emit("idle"),this.lastResponse.emit(null)}),e!=null&&this.chat.append("user",e);let o=Mo(this._terminalResult,{skipCurrent:!0});if(n!=null)if(n.aborted)this.aborted.emit(!0);else{let s=()=>this.aborted.emit(!0);n.addEventListener("abort",s,{once:!0}),r=()=>n.removeEventListener("abort",s)}return n?.aborted!==!0&&this.status.emit("thinking"),await o}finally{r?.(),this._running=!1,this._currentAbortController=null}}abort(){this.aborted.emit(!0)}destroy(){try{this._disposeRunWiring()}catch{}super.destroy()}};function It(t,e,n,r){let o=t[n];if(o!=null&&o.length>0)return o[o.length-1];let s=e[n];return s!==void 0?s:r}function dd(t,e){let n=new Sn(t,e);return n.tagFactory("agentLoop",ft(e)),n}Le();Q();Z();function cd(t,e,n){let r=V(t),o=n?.condition!=null?V(n.condition):null,s=F(null,{name:n?.name?`${n.name}::null`:"handoff::null"});if(o==null)return he(r,i=>{if(i==null)return s;let d=F(i);return e(d)},{meta:ae("handoff")});let a=A([r,o],([i,d])=>({v:i,open:d===!0}),{name:n?.name?`${n.name}::router`:"handoff::router",describeKind:"derived"});return he(a,({v:i,open:d})=>{if(i==null)return s;if(!d)return F(i);let c=F(i);return e(c)},{meta:ae("handoff")})}Le();Q();Z();function ud(t,e,n){let r=V(t),o=e.map(a=>V(a)),s=[r,...o];return A(s,a=>{let i=a[0]??[],d=a.slice(1);return i.filter(c=>{for(let u of d)if(u!=null&&!u(c))return!1;return!0})},{name:n?.name??"tool-selector",describeKind:"derived",meta:{...W("tool_selector"),...ae("toolSelector")},equals:(a,i)=>{let d=a,c=i;if(d.length!==c.length)return!1;for(let u=0;u<d.length;u++)if(d[u]!==c[u])return!1;return!0}})}function Rs(t){let e=t.thresholds??{};return n=>{let r=t.scoreFn(n);for(let o of Object.keys(e)){let s=e[o];if(s===void 0)continue;let a=r[o];if((Number.isFinite(a)?a:Number.NEGATIVE_INFINITY)<s)return!1}return!0}}function ld(t){let e={persistence:t.persistenceThreshold??.3,personalValue:t.personalValueThreshold??.3},n=Rs({scoreFn:t.scoreFn,thresholds:e});return t.requireStructured?r=>{if(!n(r))return!1;let o=t.scoreFn(r).structure;return Number.isFinite(o)&&o>0}:n}se();Le();Q();Ne();se();Le();Q();Z();function pd(t){return typeof t=="object"&&t!==null&&"cache"in t&&typeof t.subscribe=="function"}function Ss(t){t.subscribe(()=>{})}function Pt(t){return t instanceof Map?t:new Map}function Ns(t,e){if(!Array.isArray(e.upsert))throw new TypeError("distill extraction requires upsert: Array<{ key, value }>");ne(()=>{for(let{key:n,value:r}of e.upsert)t.set(n,r);for(let n of e.remove??[])t.delete(n)})}function _s(t,e,n){let r=V(t),o=Pe(n.mapOptions??{}),s=n.budget??2e3,i=n.context!==void 0&&n.context!==null?V(n.context):F(null),d=Pt(o.entries.cache);o.entries.subscribe(f=>{for(let m of f)m[0]===D&&(d=Pt(m[1]))});let c=V(e(r,o.entries));if(Mt(c,f=>{Ns(o,f)}),n.evict){let f=new Map,m=A([o.entries],([h])=>{let g=[],y=Pt(h);for(let T of f.keys())y.has(T)||(f.get(T)(),f.delete(T));for(let[T,b]of y){let v=n.evict(T,b);if(pd(v)){if(!f.has(T)){let k=Mt(v,N=>{N===!0&&o.has(T)&&o.delete(T)});f.set(T,k)}continue}if(typeof v=="boolean"){v&&g.push(T);continue}throw new TypeError("distill evict() must return boolean or Node<boolean>")}return g});Mt(m,h=>{for(let g of h)o.delete(g)})}let u=n.consolidateTrigger!==void 0&&n.consolidateTrigger!==null;if(n.consolidate&&u){let f=V(n.consolidateTrigger),m=he(f,()=>n.consolidate(d));Mt(m,h=>{Ns(o,h)})}let l=A([o.entries,i],([f,m])=>{let h=[...Pt(f).entries()].map(([T,b])=>({key:T,value:b,score:n.score(b,m),cost:n.cost(b)}));h.sort((T,b)=>b.score-T.score);let g=[],y=s;for(let T of h)T.cost<=y&&(g.push({key:T.key,value:T.value,score:T.score}),y-=T.cost);return g},{meta:{...ae("distill",{budget:s})}}),p=A([o.entries],([f])=>Pt(f).size);return Ss(l),Ss(p),{store:o,compact:l,size:p}}Z();Ne();ge();Q();Z();var Nn=Math.LN2/604800;function Gt(t,e,n,r=0){if(!Number.isFinite(t))return r;if(!Number.isFinite(e)||e<=0||!Number.isFinite(n)||n<=0)return Math.max(r,t);let o=t*Math.exp(-n*e);return Math.max(r,o)}ge();ve();Q();Qe();Z();var fd=1e9;function Ie(t,e){return De("memory",t,e)}function Ft(t,e){return t instanceof le?t:F(t,e?{name:e}:void 0)}function Ms(t,e){return(t-e)/fd}function Br(t,e){let n=Math.max(t.length,e.length),r=0,o=0,s=0;for(let i=0;i<n;i+=1){let d=t[i]??0,c=e[i]??0;r+=d*c,o+=d*d,s+=c*c}if(o===0||s===0)return 0;let a=r/Math.sqrt(o*s);return Number.isFinite(a)?a:0}function md(t,e){if(t===e)return!0;if(t==null||e==null||t.length!==e.length)return!1;for(let n=0;n<t.length;n+=1){let r=t[n],o=e[n];if(r.id!==o.id||r.score!==o.score||r.meta!==o.meta)return!1}return!0}function gd(t,e){if(t===e)return!0;if(t==null||e==null||t.length!==e.length)return!1;for(let n=0;n<t.length;n+=1){let r=t[n],o=e[n];if(r.id!==o.id||r.score!==o.score||r.lastAccessNs!==o.lastAccessNs||r.value!==o.value)return!1}return!0}function Cs(t,e={}){let n=e.maxSize,r=e.ranked??!0,o=r?e.decayRate??0:0,s=e.minScore??0;if(n!==void 0&&n<1)throw new RangeError("collection: maxSize must be >= 1");let a=()=>r?1:0,i=e.score??a,d=r&&i instanceof le?i:void 0,c=()=>d?d.cache??a:i,u=new ce(t),p=Pe({name:"items",...n!==void 0?{retention:{score:(S,E)=>r?Gt(E.baseScore,Ms(z(),E.lastAccessNs),o,s):E.lastAccessNs,maxSize:n}}:{}});u.add(p.entries,{name:"items"});let f;if(r&&o>0){let S=e.refreshIntervalMs??Math.max(1,1e3*Math.LN2/(10*o)),E=Zt(S,{period:S});f=A([E],()=>z(),{name:"refresh_tick_ns",describeKind:"derived",initial:z(),meta:Ie("clock")}),u.add(f,{name:"refresh_tick_ns"})}let m;if(r){let S=[p.entries];f&&S.push(f),d&&S.push(d),m=A(S,E=>{let I=E[0],K;if(f){let H=E[1];K=typeof H=="number"?H:z()}else K=z();if(!I||I.size===0)return[];let q=[];for(let H of I.values())q.push({...H,score:Gt(H.baseScore,Ms(K,H.lastAccessNs),o,s)});return q.sort((H,G)=>G.score-H.score||G.lastAccessNs-H.lastAccessNs),q},{name:"ranked",describeKind:"derived",equals:gd,meta:Ie("ranked")}),u.add(m,{name:"ranked"})}else m=F([],{name:"ranked",describeKind:"state",meta:Ie("ranked_disabled")}),u.add(m,{name:"ranked"});let h=A([p.entries],([S])=>(S??new Map).size,{name:"size",describeKind:"derived",initial:0,meta:Ie("size")});u.add(h,{name:"size"}),u.addDisposer(Y(h));let g=Tt({name:"events",retainedLimit:1024,graph:u}),y=wn(u,"seq",0),T=(S,E,I)=>{let K=z(),q=p.get(S),H=I?.score??c()(E);p.set(S,{id:S,value:E,baseScore:H,createdAtNs:q?.createdAtNs??K,lastAccessNs:K})},b=S=>{p.has(S)&&p.delete(S)},v=()=>{p.size!==0&&p.clear()},k=()=>{if(!r)return;let S=c(),E=p.entries.cache;if(!E||E.size===0)return;let I=[];for(let K of E.values())I.push([K.id,{...K,baseScore:S(K.value)}]);p.setMany(I)},N=Me(T,{audit:g,seq:y,onSuccess:([S],E,I)=>({action:"upsert",id:S,t_ns:I.t_ns,seq:I.seq})}),w=Me(b,{audit:g,seq:y,onSuccess:([S],E,I)=>({action:"remove",id:S,t_ns:I.t_ns,seq:I.seq})}),R=Me(v,{audit:g,seq:y,onSuccess:(S,E,I)=>({action:"clear",t_ns:I.t_ns,seq:I.seq})}),x=Me(k,{audit:g,seq:y,onSuccess:(S,E,I)=>({action:"rescore",t_ns:I.t_ns,seq:I.seq})});function _(S){let E=Ft(S,"id");return A([p.entries,E],([I,K])=>I?.get(K),{describeKind:"derived",meta:Ie("collection_item")})}function M(S){let E=Ft(S,"id");return A([p.entries,E],([I,K])=>I?.has(K)??!1,{describeKind:"derived",meta:Ie("collection_has")})}return Object.assign(u,{events:g,items:p.entries,ranked:m,size:h,upsert:N,remove:w,clear:R,rescore:x,itemNode:_,hasNode:M})}function Ls(t={}){let e=t.backend??"flat",n=t.dimension,r=t.strictDimension??!0,o=t.maxSize,s=t.retentionScore,a;if(e==="hnsw"&&(a=t.hnswFactory?.(),!a))throw new Error('vectorIndex backend "hnsw" requires an optional dependency adapter; install your HNSW package and provide `hnswFactory`.');let i=new ce(t.name??"vector_index"),d;function c(x){if(n!==void 0){if(x.length!==n)throw new RangeError(`vector dimension mismatch: expected ${n}, got ${x.length}`);return}if(r){if(d===void 0){d=x.length;return}if(x.length!==d)throw new RangeError(`vector dimension mismatch: inferred ${d} from first upsert, got ${x.length}. Pass \`strictDimension: false\` to opt into zero-pad behavior, or set an explicit \`dimension\`.`)}}let u=s??(x=>x.upsertedAtNs),l=!1,p=Tt({name:"events",retainedLimit:1024,graph:i}),f=wn(i,"seq",0),m=Pe({name:"entries",...o!==void 0?{retention:{score:(x,_)=>u(_),maxSize:o,onArchive:x=>{l||(e==="hnsw"&&a.remove(x),p.append({action:"evict",id:x,t_ns:ie(),seq:Lt(f)}))}}}:{}});if(i.add(m.entries,{name:"entries"}),i.addDisposer(Y(m.entries)),a?.dispose){let x=a.dispose.bind(a);i.addDisposer(()=>x())}let h=(x,_,M)=>{c(_),e==="hnsw"&&a.upsert(x,_,M);let L=(()=>{if(M!==void 0)return M===null||typeof M!="object"?M:Array.isArray(M)?[...M]:{...M}})(),S={id:x,vector:[..._],...L!==void 0?{meta:L}:{},upsertedAtNs:z()};m.set(x,S)},g=x=>{m.has(x)&&(e==="hnsw"&&a.remove(x),m.delete(x))},y=()=>{if(m.size!==0){l=!0;try{m.clear(),e==="hnsw"&&a.clear()}finally{l=!1}d=void 0}},T=()=>{if(e!=="hnsw")return;let x=m.entries.cache;if(x){a.clear();for(let _ of x.values())a.upsert(_.id,_.vector,_.meta)}},b=Me(h,{audit:p,freeze:!1,seq:f,onSuccess:([x],_,M)=>({action:"upsert",id:x,t_ns:M.t_ns,seq:M.seq})}),v=Me(g,{audit:p,seq:f,onSuccess:([x],_,M)=>({action:"remove",id:x,t_ns:M.t_ns,seq:M.seq})}),k=Me(y,{audit:p,seq:f,onSuccess:(x,_,M)=>({action:"clear",t_ns:M.t_ns,seq:M.seq})}),N=Me(T,{audit:p,seq:f,onSuccess:(x,_,M)=>({action:"reindex",t_ns:M.t_ns,seq:M.seq})});function w(x,_=5){let M=Ft(_,"k");return A([m.entries,x,M],L=>{let S=L[0],E=L[1],I=L[2],K=Number.isFinite(I)?Math.max(0,Math.floor(I)):0;if(!S||S.size===0||K<=0)return[];if(E==null||E.length===0)return[];let q=n??(r?d:void 0);return q!==void 0&&E.length!==q?[]:e==="hnsw"?[...a.search(E,K)]:[...S.values()].map(G=>({id:G.id,score:Br(E,G.vector),...G.meta!==void 0?{meta:G.meta}:{}})).sort((G,j)=>j.score-G.score).slice(0,K)},{describeKind:"derived",equals:(L,S)=>md(L,S),meta:Ie("vector_search")})}return Object.assign(i,{backend:e,events:p,entries:m.entries,upsert:b,remove:v,clear:k,reindex:N,searchNode:w})}var Es="\0";function _n(t,e,n){return`${t}${Es}${e}${Es}${n}`}function Os(t,e){if(!t||t.size===0)return new Map;let n=new Map;for(let o of t.values()){let s=e==="from"?o.from:o.to,a=n.get(s);a||(a=[],n.set(s,a)),a.push(o)}let r=new Map;for(let[o,s]of n)r.set(o,Object.freeze(s));return r}function As(t,e){if(t===e)return!0;if(t==null||e==null||t.size!==e.size)return!1;for(let[n,r]of t){let o=e.get(n);if(!o||r.length!==o.length)return!1;for(let s=0;s<r.length;s+=1){let a=r[s],i=o[s];if(a.from!==i.from||a.to!==i.to||a.relation!==i.relation||a.weight!==i.weight)return!1}}return!0}function Ds(t,e={}){let n=e.orphanGC??"keep";if(e.entitiesMaxSize!==void 0&&e.entitiesMaxSize<1)throw new RangeError("knowledgeGraph: entitiesMaxSize must be >= 1");if(e.edgesMaxSize!==void 0&&e.edgesMaxSize<1)throw new RangeError("knowledgeGraph: edgesMaxSize must be >= 1");let r=new ce(t),o=Pe({name:"entities",...e.entitiesMaxSize!==void 0?{maxSize:e.entitiesMaxSize}:{}}),s=Pe({name:"edges",...e.edgesMaxSize!==void 0?{maxSize:e.edgesMaxSize}:{}});r.add(o.entries,{name:"entities"}),r.add(s.entries,{name:"edges"});let a=A([s.entries],([R])=>Os(R,"from"),{name:"adjacencyOut",describeKind:"derived",initial:new Map,equals:As,meta:Ie("adjacency_out")}),i=A([s.entries],([R])=>Os(R,"to"),{name:"adjacencyIn",describeKind:"derived",initial:new Map,equals:As,meta:Ie("adjacency_in")});r.add(a,{name:"adjacencyOut"}),r.add(i,{name:"adjacencyIn"}),r.addDisposer(Y(a)),r.addDisposer(Y(i));let d=A([o.entries],([R])=>(R??new Map).size,{name:"entityCount",describeKind:"derived",initial:0,meta:Ie("entity_count")}),c=A([s.entries],([R])=>(R??new Map).size,{name:"edgeCount",describeKind:"derived",initial:0,meta:Ie("edge_count")});r.add(d,{name:"entityCount"}),r.add(c,{name:"edgeCount"}),r.addDisposer(Y(d)),r.addDisposer(Y(c));let u=Tt({name:"events",retainedLimit:1024,graph:r}),l=wn(r,"seq",0);function p(R){let x=a.cache,_=i.cache;return(x?.get(R)?.length??0)>0||(_?.get(R)?.length??0)>0}function f(R){if(n==="remove")for(let x of R)o.has(x)&&(p(x)||(o.delete(x),u.append({action:"orphanRemove",id:x,t_ns:ie(),seq:Lt(l)})))}let m=(R,x)=>{o.set(R,x)},h=R=>{let x=s.entries.cache,_=new Set;if(x){let M=[];for(let[L,S]of x)(S.from===R||S.to===R)&&(M.push(L),S.from!==R&&_.add(S.from),S.to!==R&&_.add(S.to));M.length>0&&s.deleteMany(M)}o.has(R)&&o.delete(R),f([..._])},g=(R,x,_,M=1)=>{s.set(_n(R,x,_),{from:R,to:x,relation:_,weight:M})},y=(R,x,_)=>{if(_!==void 0)s.delete(_n(R,x,_));else{let M=s.entries.cache;if(!M)return;let L=[];for(let[S,E]of M)E.from===R&&E.to===x&&L.push(S);L.length>0&&s.deleteMany(L)}f([R,x])},T=Me(m,{audit:u,seq:l,onSuccess:([R],x,_)=>({action:"upsertEntity",id:R,t_ns:_.t_ns,seq:_.seq})}),b=Me(h,{audit:u,seq:l,onSuccess:([R],x,_)=>({action:"removeEntity",id:R,t_ns:_.t_ns,seq:_.seq})}),v=Me(g,{audit:u,seq:l,onSuccess:([R,x,_,M],L,S)=>({action:"link",from:R,to:x,relation:_,weight:M??1,t_ns:S.t_ns,seq:S.seq})}),k=Me(y,{audit:u,seq:l,onSuccess:([R,x,_],M,L)=>({action:"unlink",from:R,to:x,..._!==void 0?{relation:_}:{},t_ns:L.t_ns,seq:L.seq})});function N(R,x){let _=Ft(R,"id"),M=x!==void 0?Ft(x,"relation"):void 0;return A(M?[a,i,_,M]:[a,i,_],S=>{let E=S[0],I=S[1],K=S[2],q=M?S[3]:void 0,H=E.get(K)??[],G=I.get(K)??[],j=new Set,O=[];for(let C of H){let J=_n(C.from,C.to,C.relation);j.has(J)||q!==void 0&&C.relation!==q||(j.add(J),O.push(C))}for(let C of G){let J=_n(C.from,C.to,C.relation);j.has(J)||q!==void 0&&C.relation!==q||(j.add(J),O.push(C))}return O},{describeKind:"derived",equals:(S,E)=>{let I=S,K=E;if(I===K)return!0;if(I==null||K==null||I.length!==K.length)return!1;for(let q=0;q<I.length;q+=1){let H=I[q],G=K[q];if(H.from!==G.from||H.to!==G.to||H.relation!==G.relation||H.weight!==G.weight)return!1}return!0},meta:Ie("related")})}return Object.assign(r,{events:u,entities:o.entries,edges:s.entries,adjacencyOut:a,adjacencyIn:i,entityCount:d,edgeCount:c,upsertEntity:T,removeEntity:b,link:v,unlink:k,relatedNode:N})}function Vr(t,e,n){let r=Ls({dimension:n.dimension});t.add(r.entries,{name:"vectorIndex"});let s=Re([e.store.entries],([a])=>{let i=a??new Map;for(let[d,c]of i){let u=n.embedFn(c);u&&r.upsert(d,u,c)}}).subscribe(()=>{});return t.addDisposer(s),{vectors:r,dispose:()=>s()}}function Kr(t,e,n,r){let o=r.mountPath??n,s=Ds(`${n}-kg`);if(t.mount(o,s),!r.entityFn)return{kg:s,dispose:()=>{}};let a=r.entityFn,d=Re([e.store.entries],([c])=>{let u=c??new Map;for(let[l,p]of u){let f=a(l,p);if(f){for(let m of f.entities??[])s.upsertEntity(m.id,m.value);for(let m of f.relations??[])s.link(m.from,m.to,m.relation,m.weight)}}}).subscribe(()=>{});return t.addDisposer(d),{kg:s,dispose:()=>d()}}function zr(t,e,n){let r=n.decayRate??Nn,o=n.maxActive??1e3,s=n.archiveThreshold??.1,a=n.permanentFilter??(()=>!1),i=Cs("permanent",{ranked:!1});t.mount("permanent",i);let d=new Set,c=T=>d.has(T)?"permanent":(e.store.entries.cache??new Map).has(T)?"active":"archived",u=(T,b)=>{d.add(T),i.upsert(T,b)},l=new Map,p=e.store.entries,f=n.context?V(n.context):F(null),h=Re([p,f],([T,b])=>{let v=T??new Map,k=z(),N=[],w=[];for(let[x,_]of v){if(l.has(x)||l.set(x,k),a(x,_)){w.push({key:x,value:_});continue}let M=n.score(_,b),L=l.get(x)??k,S=Number(k-L)/1e9;Gt(M,S,r)<s&&N.push(x)}for(let x of l.keys())v.has(x)||l.delete(x);for(let{key:x,value:_}of w)d.has(x)||u(x,_);let R=v.size-d.size;if(R>o){let x=[...v.entries()].filter(([M])=>!d.has(M)).map(([M,L])=>({key:M,score:n.score(L,b)})).sort((M,L)=>M.score-L.score),_=R-o;for(let M=0;M<_&&M<x.length;M++){let L=x[M].key;N.includes(L)||N.push(L)}}N.length>0&&ne(()=>{for(let x of N)e.store.delete(x)})}).subscribe(()=>{}),g=null;n.archiveTier&&(g=t.attachSnapshotStorage([n.archiveTier],n.archiveStorageOptions??{}));let y=()=>{h(),g?.dispose()};return t.addDisposer(y),{tiers:{permanent:i,activeEntries:p,archiveHandle:g,tierOf:c,markPermanent:u},dispose:y}}function hd(t,e){if(!t||!e)return 0;let n=Math.min(t.length,e.length),r=0;for(;r<n&&t[r]===e[r];)r++;return r}function Ur(t,e,n,r,o){let s=o.topK??20,a=o.graphDepth??1,i=o.budget??2e3,d=o.contextWeight??0,c=o.context?V(o.context):F(null),u=(g,y,T)=>{let b=new Map,v=[];if(n&&T.vector){let _=T.vector,M=n.entries.cache;if(M&&M.size>0&&s>0){v=[...M.values()].map(S=>({id:S.id,score:Br(_,S.vector),...S.meta!==void 0?{meta:S.meta}:{}})).sort((S,E)=>E.score-S.score).slice(0,s);for(let S of v){let E=g.get(S.id);E&&b.set(S.id,{value:E,sources:new Set(["vector"])})}}}let k=[];if(r){let _=r.adjacencyOut.cache,M=r.adjacencyIn.cache,L=[...T.entityIds??[],...b.keys()],S=new Set,E=L;for(let I=0;I<a;I++){let K=[];for(let q of E){if(S.has(q))continue;S.add(q);let H=_?.get(q)??[],G=M?.get(q)??[];for(let j of H){let O=j.to;if(!S.has(O)){K.push(O);let C=g.get(O);if(C){let J=b.get(O);J?J.sources.add("graph"):b.set(O,{value:C,sources:new Set(["graph"])}),k.push(O)}}}for(let j of G){let O=j.from;if(!S.has(O)){K.push(O);let C=g.get(O);if(C){let J=b.get(O);J?J.sources.add("graph"):b.set(O,{value:C,sources:new Set(["graph"])}),k.push(O)}}}}E=K}}for(let[_,M]of g)b.has(_)||b.set(_,{value:M,sources:new Set(["store"])});let N=T.context?.length??0,w=[];for(let[_,{value:M,sources:L}]of b){let S=o.contextOf?o.contextOf(M):void 0,E=o.score(M,y);if(d>0&&N>0){let K=hd(T.context,S);K>0&&(E=E*(1+d*K/N))}let I=S?{key:_,value:M,score:E,sources:[...L],context:S}:{key:_,value:M,score:E,sources:[...L]};w.push(I)}w.sort((_,M)=>M.score-_.score);let R=[],x=0;for(let _ of w){let M=o.cost(_.value);if(x+M>i&&R.length>0)break;R.push(_),x+=M}return{packed:R,trace:{vectorCandidates:v,graphExpanded:k,ranked:w,packed:R}}},l=(g,y)=>{if(g===y)return!0;if(g.length!==y.length)return!1;for(let T=0;T<g.length;T++)if(g[T]!==y[T])return!1;return!0},p=F([],{name:"retrieval",describeKind:"state",meta:W("retrieval_pipeline"),equals:l});t.add(p,{name:"retrieval"});let f=F(null,{name:"retrievalTrace",describeKind:"state",meta:W("retrieval_trace")});return t.add(f,{name:"retrievalTrace"}),{retrieval:p,retrievalTrace:f,retrieve:g=>{let y=e.store.entries.cache??new Map,{packed:T,trace:b}=u(y,c.cache,g);return ne(()=>{p.emit(T),f.emit(b)}),T},retrieveReactive:g=>{let y=V(g),T=A([e.store.entries,c,y],([k,N,w])=>{if(w==null)return{packed:[],trace:null};let R=k??new Map,{packed:x,trace:_}=u(R,N,w);return{packed:x,trace:_}},{name:"retrievalReactive::result",describeKind:"derived",meta:W("retrieval_reactive_result"),initial:{packed:[],trace:null}}),v=Re([T],([k])=>{let N=k;ne(()=>{p.emit(N.packed),N.trace&&f.emit(N.trace)})}).subscribe(()=>{});return t.addDisposer(v),A([T],([k])=>k.packed,{name:"retrievalReactive",describeKind:"derived",meta:W("retrieval_reactive"),initial:[],equals:l})}}}function yd(t,e,n){let r=new ce(t,n.graph);r.tagFactory("agentMemory",ft(n));let o;if(n.extractFn)o=n.extractFn;else if(n.adapter&&n.extractPrompt)o=_r(n.extractPrompt,{adapter:n.adapter});else throw new Error("agentMemory: provide either extractFn or adapter + extractPrompt");let s=(T,b)=>{let v=b.cache??new Map,k=b.subscribe(N=>{for(let w of N)w[0]===D&&(v=w[1])});return r.addDisposer(k),he(T,N=>N==null?{upsert:[]}:o(N,v))},a=e;if(n.admissionFilter){let T=V(e),b=n.admissionFilter;a=A([T],([v])=>{if(b(v))return v},{name:"admissionFilter",describeKind:"derived"})}let i;n.consolidateFn?i=n.consolidateFn:n.adapter&&n.consolidatePrompt&&(i=Mr(n.consolidatePrompt,{adapter:n.adapter}));let d=n.consolidateTrigger;if(!d&&i&&n.reflection?.enabled!==!1){let T=n.reflection?.interval??3e5;d=Zt(T,{period:T})}let c={score:n.score,cost:n.cost,budget:n.budget??2e3,context:n.context,consolidate:i,consolidateTrigger:d},u=_s(a,s,c);r.add(u.store.entries,{name:"store"}),r.add(u.compact,{name:"compact"}),r.add(u.size,{name:"size"});let l=null;n.vectorDimensions&&n.vectorDimensions>0&&n.embedFn&&(l=Vr(r,u,{dimension:n.vectorDimensions,embedFn:n.embedFn}).vectors);let p=null;n.enableKnowledgeGraph&&(p=Kr(r,u,t,{mountPath:"kg",entityFn:n.entityFn}).kg);let f=null;n.tiers&&(f=zr(r,u,{...n.tiers,score:n.score,context:n.context}).tiers);let m=null,h=null,g=null,y=null;if(l||p){let T=Ur(r,u,l,p,{score:n.score,cost:n.cost,budget:n.budget,topK:n.retrieval?.topK,graphDepth:n.retrieval?.graphDepth,contextOf:n.contextOf,contextWeight:n.contextWeight,context:n.context});m=T.retrieval,h=T.retrievalTrace,g=T.retrieve,y=T.retrieveReactive}return Object.assign(r,{distillBundle:u,compact:u.compact,size:u.size,vectors:l,kg:p,memoryTiers:f,retrieval:m,retrievalTrace:h,retrieve:g,retrieveReactive:y})}function bd(t,e,n){let r=t.describe({actor:e,detail:"full"}),o=n?.groupByTags??!0,s=n?.separator??`
12
+ `,a=[],i=n?.sinceVersion;for(let[d,c]of Object.entries(r.nodes)){let u=c.meta??{},l=u.description,p=u.format;if(!l&&!p)continue;if(i!=null&&c.v!=null){let y=i.get(d);if(y!=null&&y.id===c.v.id&&c.v.version<=y.version)continue}let f=l??d,m=c.value,h=u.unit,g;p==="currency"&&typeof m=="number"?g=`$${m.toFixed(2)}`:p==="percentage"&&typeof m=="number"?g=`${(m*100).toFixed(1)}%`:m==null?g="(no value)":g=String(m),h&&p!=="currency"&&p!=="percentage"&&(g=`${g} ${h}`),a.push({path:d,description:f,formatted:g})}if(a.length===0)return"";if(o){let d=new Map,c=[];for(let l of a){let f=r.nodes[l.path].meta?.tags;if(f&&f.length>0){let m=f[0],h=d.get(m);h||(h=[],d.set(m,h)),h.push(l)}else c.push(l)}if(d.size===0)return a.map(l=>`- ${l.description}: ${l.formatted}`).join(s);let u=[];for(let[l,p]of[...d.entries()].sort((f,m)=>f[0].localeCompare(m[0])))u.push(`[${l}]${s}${p.map(f=>`- ${f.description}: ${f.formatted}`).join(s)}`);return c.length>0&&u.push(c.map(l=>`- ${l.description}: ${l.formatted}`).join(s)),u.join(s+s)}return a.map(d=>`- ${d.description}: ${d.formatted}`).join(s)}se();Q();Z();Q();Ne();se();ve();Q();Qe();Z();function Is(t,e){return De("reduction",t,e)}function Ps(t,e,n,r){let o=r?.maxIterations??10,s=`__feedback_${e}`,a=F(0,{meta:Is("feedback_counter",{maxIterations:o,feedbackFrom:e,feedbackTo:n})});t.add(a,{name:s});let i=t.resolve(e),d=t.resolve(n),c=`__feedback_effect_${e}`,u=te([],(l,p)=>{let f=i.subscribe(m=>{for(let h of m){let g=h[0];if(g===D){let y=h[1];if(y==null)return;ne(()=>{vs(a,o)&&d.emit(y)})}else if(g===$||g===P){let y=g===P&&h.length>1?[P,h[1]]:[g];a.down([y])}}});return()=>f()},{name:c,describeKind:"effect",meta:{...Is("feedback_effect",{feedbackFrom:e,feedbackTo:n}),_internal:!0}});return t.add(u,{name:c}),t.addDisposer(Y(u)),t}function wt(t){let e=t.meta?.factory;return typeof e=="string"?e:void 0}function kt(t){let e=t.meta?.factoryArgs;return e!=null&&typeof e=="object"?e:{}}function Gs(t){let e=kt(t);return"initial"in e?e.initial:t.value}function $s(t){return typeof t=="object"&&t!==null&&"factory"in t}function js(t){return typeof t=="object"&&t!==null&&"factory"in t}function Td(t){return $s(t)?t.factory:t}function vd(t){return js(t)?t.factory:t}function wd(t,e){let n=[],r=new Set(Object.keys(e.fns??{})),o=new Set(Object.keys(e.sources??{}));for(let[s,a]of Object.entries(t.nodes)){if(a.type==="template")continue;let i=a,d=wt(i);if(d==null)continue;let c=i.type==="producer";if(i.type==="state"&&d==="state")continue;if(c){let l=o.has(d),p=r.has(d);if(!l&&!p&&(o.size>0||r.size>0)){let f=Mn(d,o)??Mn(d,r);n.push(`Node "${s}": source "${d}" not found in catalog`+(f?`. Did you mean "${f}"?`:""))}}else if(r.size>0&&!r.has(d))if(o.has(d))n.push(`Node "${s}": fn "${d}" is a source, not a function. Use it as a producer source instead, or use a function from: ${[...r].join(", ")}`);else{let l=Mn(d,r);n.push(`Node "${s}": fn "${d}" not found in catalog`+(l?`. Did you mean "${l}"?`:""))}let u=kt(i);if(!c&&e.fns?.[d]){let l=e.fns[d];if($s(l)&&l.configSchema){for(let[p,f]of Object.entries(l.configSchema))if(f.required!==!1&&!(p in u)&&n.push(`Node "${s}": config missing required field "${p}"`),p in u&&f.enum){let m=u[p];f.enum.includes(m)||n.push(`Node "${s}": config.${p} = ${JSON.stringify(m)}, expected one of: ${f.enum.join(", ")}`)}}}if(c&&e.sources?.[d]){let l=e.sources[d];if(js(l)&&l.configSchema){for(let[p,f]of Object.entries(l.configSchema))if(f.required!==!1&&!(p in u)&&n.push(`Node "${s}": config missing required field "${p}"`),p in u&&f.enum){let m=u[p];f.enum.includes(m)||n.push(`Node "${s}": config.${p} = ${JSON.stringify(m)}, expected one of: ${f.enum.join(", ")}`)}}}}if(t.templates)for(let[s,a]of Object.entries(t.templates))for(let[i,d]of Object.entries(a.nodes)){let c=wt(d);if(c!=null&&!(d.type==="state"&&c==="state")&&d.type!=="producer"&&r.size>0&&!r.has(c)){let u=Mn(c,r);n.push(`Template "${s}" node "${i}": fn "${c}" not found in catalog`+(u?`. Did you mean "${u}"?`:""))}}return{valid:n.length===0,errors:n,warnings:[]}}function Mn(t,e){let n=null,r=1/0,o=t.toLowerCase();for(let s of e){let a=kd(o,s.toLowerCase());a<r&&a<=Math.max(3,Math.floor(t.length/2))&&(r=a,n=s)}return n}function kd(t,e){let n=t.length,r=e.length,o=Array.from({length:n+1},(s,a)=>Array.from({length:r+1},(i,d)=>a===0?d:d===0?a:0));for(let s=1;s<=n;s++)for(let a=1;a<=r;a++)o[s][a]=t[s-1]===e[a-1]?o[s-1][a-1]:1+Math.min(o[s-1][a],o[s][a-1],o[s-1][a-1]);return o[n][r]}var Fs=new Set(["state","producer","derived","effect","operator","template"]),xd=new Set(["state","producer","derived","effect","operator"]);function Rd(t){let e=[],n=[];if(t==null||typeof t!="object")return{valid:!1,errors:["GraphSpec must be a non-null object"],warnings:n};let r=t;if((typeof r.name!="string"||r.name.length===0)&&e.push("Missing or empty 'name' field"),r.nodes==null||typeof r.nodes!="object"||Array.isArray(r.nodes))return e.push("Missing or invalid 'nodes' field (must be an object)"),{valid:!1,errors:e,warnings:n};let o=new Set(Object.keys(r.nodes)),s=new Map,a=new Map;if(r.templates!=null&&typeof r.templates=="object"&&!Array.isArray(r.templates)){for(let[i,d]of Object.entries(r.templates))if(d!=null&&typeof d=="object"){let c=d;a.set(i,{params:Array.isArray(c.params)?c.params:[]})}}if(r.templates!=null)if(typeof r.templates!="object"||Array.isArray(r.templates))e.push("'templates' must be an object");else for(let[i,d]of Object.entries(r.templates)){if(d==null||typeof d!="object"){e.push(`Template "${i}": must be an object`);continue}let c=d;if(Array.isArray(c.params)||e.push(`Template "${i}": missing 'params' array`),c.nodes==null||typeof c.nodes!="object"||Array.isArray(c.nodes))e.push(`Template "${i}": missing or invalid 'nodes' object`);else{let u=new Set(Array.isArray(c.params)?c.params:[]),l=new Set(Object.keys(c.nodes));for(let[p,f]of Object.entries(c.nodes)){if(f==null||typeof f!="object"){e.push(`Template "${i}" node "${p}": must be an object`);continue}let m=f;if((typeof m.type!="string"||!xd.has(m.type))&&e.push(`Template "${i}" node "${p}": invalid type`),Array.isArray(m.deps))for(let h of m.deps)!l.has(h)&&!u.has(h)&&e.push(`Template "${i}" node "${p}": dep "${h}" is not an inner node or param`)}typeof c.output!="string"?e.push(`Template "${i}": missing 'output' string`):c.nodes[c.output]||e.push(`Template "${i}": output "${c.output}" is not a declared node`)}}for(let[i,d]of Object.entries(r.nodes)){if(d==null||typeof d!="object"){e.push(`Node "${i}": must be an object`);continue}let c=d;if(typeof c.type!="string"||!Fs.has(c.type)){e.push(`Node "${i}": invalid type "${String(c.type)}" (expected: ${[...Fs].join(", ")})`);continue}if(s.set(i,c.type),c.type==="template")if(typeof c.template!="string"||!a.has(c.template))e.push(`Node "${i}": template "${String(c.template)}" not found in templates`);else if(c.bind==null||typeof c.bind!="object"||Array.isArray(c.bind))e.push(`Node "${i}": template ref requires 'bind' object`);else{let u=a.get(c.template),l=c.bind;for(let p of u.params)p in l||e.push(`Node "${i}": template param "${p}" is not bound (template "${c.template}")`);for(let[,p]of Object.entries(l))typeof p=="string"&&!o.has(p)&&e.push(`Node "${i}": bind target "${p}" does not reference an existing node`)}else{if(Array.isArray(c.deps))for(let u of c.deps)u===i?e.push(`Node "${i}": self-referencing dep`):o.has(u)||e.push(`Node "${i}": dep "${u}" does not reference an existing node`);(c.type==="derived"||c.type==="effect"||c.type==="operator")&&!Array.isArray(c.deps)&&e.push(`Node "${i}": ${c.type} node should have a 'deps' array`)}}if(r.feedback!=null)if(!Array.isArray(r.feedback))e.push("'feedback' must be an array");else for(let i=0;i<r.feedback.length;i++){let d=r.feedback[i];if(d==null||typeof d!="object"){e.push(`Feedback [${i}]: must be an object`);continue}let c=d;typeof c.from!="string"||!o.has(c.from)?e.push(`Feedback [${i}]: 'from' "${String(c.from)}" does not reference an existing node`):s.get(c.from)==="effect"&&n.push(`Feedback [${i}]: 'from' "${c.from}" is an effect node \u2014 effects emit no DATA, so the feedback edge will never fire. Did you mean a derived/state node upstream?`),typeof c.from=="string"&&c.from===c.to&&e.push(`Feedback [${i}]: 'from' and 'to' must be different nodes`),typeof c.to!="string"||!o.has(c.to)?e.push(`Feedback [${i}]: 'to' "${String(c.to)}" does not reference an existing node`):typeof c.to=="string"&&s.get(c.to)!=="state"&&e.push(`Feedback [${i}]: 'to' node "${c.to}" must be a state node (got "${s.get(c.to)??"unknown"}")`)}return{valid:e.length===0,errors:e,warnings:n}}function Bs(t,e){let n=Rd(t);if(!n.valid)throw new Error(`compileSpec: invalid GraphSpec:
13
13
  ${n.errors.join(`
14
14
  `)}`);let r=t.factory,o=t.factoryArgs;if(typeof r=="string"){let b=e?.catalog?.graphFactories?.[r];if(b)return b(o)}let s=e?.catalog??{},a=e?.onMissing??"placeholder",i=new ce(t.name),d=t.templates??{},c=wd(t,s);if(!c.valid)throw new Error(`compileSpec: catalog validation errors:
15
15
  ${c.errors.join(`
16
- `)}`);let u=[],l=(b,v,k)=>{u.push({path:b,kind:v,name:k})},p=b=>{let v=s.fns?.[b];return v?Td(v):void 0},f=b=>{let v=s.sources?.[b];return v?vd(v):void 0},m=b=>{if(!b)return;let v={};for(let[k,_]of Object.entries(b))k==="factory"||k==="factoryArgs"||(v[k]=_);return Object.keys(v).length>0?v:void 0},h=new Map,g=[];for(let[b,v]of Object.entries(t.nodes)){if(v.type==="template")continue;let k=v,_=wt(k),w=kt(k);if(k.type==="state"){let R=Gs(k),x=F(R,{name:b,meta:m(k.meta)});i.add(x,{name:b}),h.set(b,x)}else if(k.type==="producer"){let R=_?f(_):void 0,x=_?p(_):void 0;if(R){let N=R(w);i.add(N,{name:b}),h.set(b,N)}else if(x){let N=x([],w);i.add(N,{name:b}),h.set(b,N)}else{_&&l(b,"source",_);let N=oe(()=>{},{name:b,meta:{...m(k.meta),_specSource:_}});i.add(N,{name:b}),h.set(b,N)}}else g.push([b,k])}let y=!0,T=new Map(g);for(;T.size>0&&y;){y=!1;for(let[b,v]of[...T.entries()]){let k=v.deps??[];if(!k.every(M=>h.has(M)))continue;let _=k.map(M=>h.get(M)),w=wt(v),R=kt(v),x=w?p(w):void 0,N;x?N=x(_,R):v.type==="effect"?(w&&l(b,"fn",w),N=Re(_,()=>{})):(w&&l(b,"fn",w),N=A(_,M=>M[0])),i.add(N,{name:b}),h.set(b,N),T.delete(b),y=!0}}if(T.size>0){let b=[...T.keys()].sort().join(", ");throw new Error(`compileSpec: unresolvable deps for nodes: ${b}`)}for(let[b,v]of Object.entries(t.nodes)){if(v.type!=="template")continue;let k=v,_=d[k.template],w=new ce(b),R=new Map,x=[];for(let[S,E]of Object.entries(_.nodes)){let I=(E.deps??[]).map(G=>G.startsWith("$")&&k.bind[G]?k.bind[G]:G),K={...E,deps:I},q=wt(E),H=kt(E);if(E.type==="state"){let G=Gs(E),j=F(G,{name:S,meta:m(E.meta)});w.add(j,{name:S}),R.set(S,j)}else if(E.type==="producer"){let G=q?f(q):void 0,j=q?p(q):void 0;if(G){let O=G(H);w.add(O,{name:S}),R.set(S,O)}else if(j){let O=j([],H);w.add(O,{name:S}),R.set(S,O)}else{q&&l(`${b}.${S}`,"source",q);let O=oe(()=>{},{name:S,meta:{...m(E.meta),_specSource:q}});w.add(O,{name:S}),R.set(S,O)}}else x.push([S,K])}let N=!0,M=new Map(x);for(;M.size>0&&N;){N=!1;for(let[S,E]of[...M.entries()]){let I=E.deps??[];if(!I.every(C=>R.has(C)||h.has(C)))continue;let q=I.map(C=>R.get(C)??h.get(C)),H=wt(E),G=kt(E),j=H?p(H):void 0,O;j?O=j(q,G):E.type==="effect"?(H&&l(`${b}.${S}`,"fn",H),O=Re(q,()=>{})):(H&&l(`${b}.${S}`,"fn",H),O=A(q,C=>C[0])),w.add(O,{name:S}),R.set(S,O),M.delete(S),N=!0}}if(M.size>0){let S=[...M.keys()].sort().join(", ");throw new Error(`compileSpec: template "${k.template}" has unresolvable deps: ${S}`)}i.mount(b,w);let L=`${b}::${_.output}`;h.set(b,i.resolve(L));try{let S=i.resolve(L);S.meta._templateName?.emit(k.template),S.meta._templateBind?.emit(k.bind)}catch{}}for(let b of t.feedback??[])Ps(i,b.from,b.to,{maxIterations:b.maxIterations});if(u.length>0){if(a==="error"){let b=u.map(v=>` - ${v.path}: missing ${v.kind} "${v.name}"`);throw new Error(`compileSpec: ${u.length} catalog entr${u.length===1?"y":"ies"} missing \u2014 pass them via opts.catalog or set opts.onMissing to "warn"/"placeholder":
16
+ `)}`);let u=[],l=(b,v,k)=>{u.push({path:b,kind:v,name:k})},p=b=>{let v=s.fns?.[b];return v?Td(v):void 0},f=b=>{let v=s.sources?.[b];return v?vd(v):void 0},m=b=>{if(!b)return;let v={};for(let[k,N]of Object.entries(b))k==="factory"||k==="factoryArgs"||(v[k]=N);return Object.keys(v).length>0?v:void 0},h=new Map,g=[];for(let[b,v]of Object.entries(t.nodes)){if(v.type==="template")continue;let k=v,N=wt(k),w=kt(k);if(k.type==="state"){let R=Gs(k),x=F(R,{name:b,meta:m(k.meta)});i.add(x,{name:b}),h.set(b,x)}else if(k.type==="producer"){let R=N?f(N):void 0,x=N?p(N):void 0;if(R){let _=R(w);i.add(_,{name:b}),h.set(b,_)}else if(x){let _=x([],w);i.add(_,{name:b}),h.set(b,_)}else{N&&l(b,"source",N);let _=oe(()=>{},{name:b,meta:{...m(k.meta),_specSource:N}});i.add(_,{name:b}),h.set(b,_)}}else g.push([b,k])}let y=!0,T=new Map(g);for(;T.size>0&&y;){y=!1;for(let[b,v]of[...T.entries()]){let k=v.deps??[];if(!k.every(M=>h.has(M)))continue;let N=k.map(M=>h.get(M)),w=wt(v),R=kt(v),x=w?p(w):void 0,_;x?_=x(N,R):v.type==="effect"?(w&&l(b,"fn",w),_=Re(N,()=>{})):(w&&l(b,"fn",w),_=A(N,M=>M[0])),i.add(_,{name:b}),h.set(b,_),T.delete(b),y=!0}}if(T.size>0){let b=[...T.keys()].sort().join(", ");throw new Error(`compileSpec: unresolvable deps for nodes: ${b}`)}for(let[b,v]of Object.entries(t.nodes)){if(v.type!=="template")continue;let k=v,N=d[k.template],w=new ce(b),R=new Map,x=[];for(let[S,E]of Object.entries(N.nodes)){let I=(E.deps??[]).map(G=>G.startsWith("$")&&k.bind[G]?k.bind[G]:G),K={...E,deps:I},q=wt(E),H=kt(E);if(E.type==="state"){let G=Gs(E),j=F(G,{name:S,meta:m(E.meta)});w.add(j,{name:S}),R.set(S,j)}else if(E.type==="producer"){let G=q?f(q):void 0,j=q?p(q):void 0;if(G){let O=G(H);w.add(O,{name:S}),R.set(S,O)}else if(j){let O=j([],H);w.add(O,{name:S}),R.set(S,O)}else{q&&l(`${b}.${S}`,"source",q);let O=oe(()=>{},{name:S,meta:{...m(E.meta),_specSource:q}});w.add(O,{name:S}),R.set(S,O)}}else x.push([S,K])}let _=!0,M=new Map(x);for(;M.size>0&&_;){_=!1;for(let[S,E]of[...M.entries()]){let I=E.deps??[];if(!I.every(C=>R.has(C)||h.has(C)))continue;let q=I.map(C=>R.get(C)??h.get(C)),H=wt(E),G=kt(E),j=H?p(H):void 0,O;j?O=j(q,G):E.type==="effect"?(H&&l(`${b}.${S}`,"fn",H),O=Re(q,()=>{})):(H&&l(`${b}.${S}`,"fn",H),O=A(q,C=>C[0])),w.add(O,{name:S}),R.set(S,O),M.delete(S),_=!0}}if(M.size>0){let S=[...M.keys()].sort().join(", ");throw new Error(`compileSpec: template "${k.template}" has unresolvable deps: ${S}`)}i.mount(b,w);let L=`${b}::${N.output}`;h.set(b,i.resolve(L));try{let S=i.resolve(L);S.meta._templateName?.emit(k.template),S.meta._templateBind?.emit(k.bind)}catch{}}for(let b of t.feedback??[])Ps(i,b.from,b.to,{maxIterations:b.maxIterations});if(u.length>0){if(a==="error"){let b=u.map(v=>` - ${v.path}: missing ${v.kind} "${v.name}"`);throw new Error(`compileSpec: ${u.length} catalog entr${u.length===1?"y":"ies"} missing \u2014 pass them via opts.catalog or set opts.onMissing to "warn"/"placeholder":
17
17
  ${b.join(`
18
18
  `)}`)}if(a==="warn"){let b=e?.onWarn??(v=>console.warn(v));for(let v of u)b(`compileSpec: ${v.path} references missing ${v.kind} "${v.name}" \u2014 substituted placeholder`)}}return i}var Vs=`You are a graph architect for GraphReFly, a reactive graph protocol.
19
19
 
@@ -50,7 +50,7 @@ Rules:
50
50
  - meta.description is required for every node.
51
51
  - Return ONLY valid JSON, no markdown fences or commentary.`;async function Ks(t,e,n){let o=[{role:"system",content:n?.systemPromptExtra?`${Vs}
52
52
 
53
- ${n.systemPromptExtra}`:Vs},{role:"user",content:t}],s=e.invoke(o,{model:n?.model,temperature:n?.temperature??0,maxTokens:n?.maxTokens,signal:n?.signal}),i=(await Ct(s)).content.trim();i.startsWith("```")&&(i=bt(i));let d;try{d=JSON.parse(i)}catch{throw new Error(`graphFromSpec: LLM response is not valid JSON: ${i.slice(0,200)}`)}return Bs(d,{catalog:n?.catalog})}function Sd(t,e,n){let r=V(t);return he(r,o=>!o||typeof o!="string"||o.trim().length===0?F(null):oe(s=>{let a=new AbortController,i=!1;return Ks(o,e,{...n,signal:a.signal}).then(d=>{if(i){d.destroy();return}s.emit(d),s.down([[$]])}).catch(d=>{i||s.down([[P,d]])}),()=>{i=!0,a.abort()}},{name:"graphFromSpec::call"}))}function _d(t){let e={},n=t.type;return n==="enum"&&Array.isArray(t.values)?(e.type="string",e.enum=t.values):n==="integer"?e.type="integer":n==="number"?e.type="number":n==="boolean"?e.type="boolean":n==="string"?e.type="string":e.type=["string","number","boolean"],Array.isArray(t.range)&&t.range.length===2&&(e.minimum=t.range[0],e.maximum=t.range[1]),typeof t.format=="string"&&(e.description=`Format: ${t.format}`),typeof t.unit=="string"&&(e.description?e.description+=` (${t.unit})`:e.description=`Unit: ${t.unit}`),e}function Nd(t,e){let n=t.describe({actor:e,detail:"full"}),r=[],o=[],s=[];for(let[a,i]of Object.entries(n.nodes)){if(i.type!=="state"||a.includes("::__meta__::")||i.status==="completed"||i.status==="errored")continue;let d=i.meta??{},c=d.access;if(c==="human"||c==="system")continue;let u=d.description??`Set the value of ${a}`,l=_d(d),p={type:"object",required:["value"],properties:{value:l},additionalProperties:!1},f=a.replace(/::/g,"__");r.push({type:"function",function:{name:f,description:u,parameters:p}}),o.push({name:a,description:u,inputSchema:p});let m=t,h=e,g=i.v;s.push({name:a,description:u,parameters:p,handler(y){return m.set(a,y.value,h?{actor:h}:void 0),y.value},...g!=null?{version:{id:g.id,version:g.version}}:{}})}return{openai:r,mcp:o,definitions:s}}se();Q();Z();var Md=`You are a reactive graph optimizer for GraphReFly.
53
+ ${n.systemPromptExtra}`:Vs},{role:"user",content:t}],s=e.invoke(o,{model:n?.model,temperature:n?.temperature??0,maxTokens:n?.maxTokens,signal:n?.signal}),i=(await Ct(s)).content.trim();i.startsWith("```")&&(i=bt(i));let d;try{d=JSON.parse(i)}catch{throw new Error(`graphFromSpec: LLM response is not valid JSON: ${i.slice(0,200)}`)}return Bs(d,{catalog:n?.catalog})}function Sd(t,e,n){let r=V(t);return he(r,o=>!o||typeof o!="string"||o.trim().length===0?F(null):oe(s=>{let a=new AbortController,i=!1;return Ks(o,e,{...n,signal:a.signal}).then(d=>{if(i){d.destroy();return}s.emit(d),s.down([[$]])}).catch(d=>{i||s.down([[P,d]])}),()=>{i=!0,a.abort()}},{name:"graphFromSpec::call"}))}function Nd(t){let e={},n=t.type;return n==="enum"&&Array.isArray(t.values)?(e.type="string",e.enum=t.values):n==="integer"?e.type="integer":n==="number"?e.type="number":n==="boolean"?e.type="boolean":n==="string"?e.type="string":e.type=["string","number","boolean"],Array.isArray(t.range)&&t.range.length===2&&(e.minimum=t.range[0],e.maximum=t.range[1]),typeof t.format=="string"&&(e.description=`Format: ${t.format}`),typeof t.unit=="string"&&(e.description?e.description+=` (${t.unit})`:e.description=`Unit: ${t.unit}`),e}function _d(t,e){let n=t.describe({actor:e,detail:"full"}),r=[],o=[],s=[];for(let[a,i]of Object.entries(n.nodes)){if(i.type!=="state"||a.includes("::__meta__::")||i.status==="completed"||i.status==="errored")continue;let d=i.meta??{},c=d.access;if(c==="human"||c==="system")continue;let u=d.description??`Set the value of ${a}`,l=Nd(d),p={type:"object",required:["value"],properties:{value:l},additionalProperties:!1},f=a.replace(/::/g,"__");r.push({type:"function",function:{name:f,description:u,parameters:p}}),o.push({name:a,description:u,inputSchema:p});let m=t,h=e,g=i.v;s.push({name:a,description:u,parameters:p,handler(y){return m.set(a,y.value,h?{actor:h}:void 0),y.value},...g!=null?{version:{id:g.id,version:g.version}}:{}})}return{openai:r,mcp:o,definitions:s}}se();Q();Z();var Md=`You are a reactive graph optimizer for GraphReFly.
54
54
 
55
55
  Given a graph's current structure (from describe()) and a problem statement, suggest topology and parameter changes to solve the problem.
56
56