@graphrefly/graphrefly 0.28.0 → 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{cascading-D9WG1-9L.d.ts → cascading-BszPheHD.d.ts} +1 -1
- package/dist/{cascading-B-5zmAUv.d.cts → cascading-dNCtjW8j.d.cts} +1 -1
- package/dist/{chunk-OAWLCNJJ.js → chunk-2GQREQ6C.js} +1 -1
- package/dist/{chunk-DBGGMN3D.js → chunk-33FA6V4B.js} +1 -1
- package/dist/chunk-3NEPQO2E.js +43 -0
- package/dist/{chunk-UWJE5FQA.js → chunk-4C2OR2GH.js} +11 -11
- package/dist/chunk-4JJCCD5S.js +2 -0
- package/dist/{chunk-GHJJR5P4.js → chunk-4OFIQ66T.js} +1 -1
- package/dist/{chunk-PIOGHC63.js → chunk-567NWZ3T.js} +1 -1
- package/dist/chunk-5JDE5JHE.js +1 -0
- package/dist/{chunk-ETWTCCJI.js → chunk-5Z4HDCO6.js} +1 -1
- package/dist/{chunk-Y2EMPB3I.js → chunk-73Z3W2RN.js} +1 -1
- package/dist/{chunk-CRXTH3SH.js → chunk-7JDLFI6N.js} +1 -1
- package/dist/{chunk-DQA3UIQ2.js → chunk-7TDOES3L.js} +1 -1
- package/dist/{chunk-LBTDSCCO.js → chunk-AMBYCIOH.js} +1 -1
- package/dist/{chunk-D7A7DBE4.js → chunk-AUY2YKCO.js} +1 -1
- package/dist/{chunk-FNYWM6JC.js → chunk-AV3PIDFQ.js} +1 -1
- package/dist/{chunk-UMBIDLJ4.js → chunk-BA5URFYW.js} +1 -1
- package/dist/chunk-BKPLTBL5.js +1 -0
- package/dist/{chunk-UPXUCFMX.js → chunk-BZP5T4X6.js} +1 -1
- package/dist/{chunk-WQ2BN6X6.js → chunk-DDPYNMGG.js} +1 -1
- package/dist/{chunk-LQ3Y5NJS.js → chunk-GJR3P6JG.js} +1 -1
- package/dist/{chunk-3R5HFPX7.js → chunk-GLSM33ZM.js} +1 -1
- package/dist/{chunk-2FOAM3OR.js → chunk-GNCBXARM.js} +1 -1
- package/dist/{chunk-K2GNMCQT.js → chunk-ISCENNXS.js} +1 -1
- package/dist/{chunk-UPHHLMHE.js → chunk-IUK4EFCE.js} +1 -1
- package/dist/{chunk-ERLIRFPA.js → chunk-KA6MMXIY.js} +1 -1
- package/dist/{chunk-2PMCKKRK.js → chunk-KASHOCF5.js} +1 -1
- package/dist/chunk-LI3E75VE.js +64 -0
- package/dist/chunk-MGKAO4EK.js +7 -0
- package/dist/{chunk-ZV2DXV5A.js → chunk-NSG4C6BF.js} +1 -1
- package/dist/{chunk-4GKB4OUJ.js → chunk-OL33ZI6R.js} +1 -1
- package/dist/{chunk-76A3HVQE.js → chunk-P7JXGKDO.js} +1 -1
- package/dist/{chunk-U3AICJKU.js → chunk-RD52SNH2.js} +1 -1
- package/dist/{chunk-CWLN3X3N.js → chunk-SHYH5SXV.js} +1 -1
- package/dist/{chunk-VTPVOGHH.js → chunk-SLMYTGTU.js} +1 -1
- package/dist/{chunk-OYHGKYQM.js → chunk-T5SHIKJD.js} +1 -1
- package/dist/{chunk-VPYBOXVT.js → chunk-TWMEGG45.js} +1 -1
- package/dist/chunk-VIEUJSTT.js +1 -0
- package/dist/{chunk-SC3U7ETD.js → chunk-VWPRPPKR.js} +1 -1
- package/dist/chunk-W4TSQ6RJ.js +1 -0
- package/dist/{chunk-OBKQQA5I.js → chunk-WANIEEKV.js} +1 -1
- package/dist/{chunk-XAUNPIMX.js → chunk-XHVB6G6M.js} +1 -1
- package/dist/{chunk-MIQTDPY4.js → chunk-XQAXYVXX.js} +1 -1
- package/dist/{chunk-MTTAAPCK.js → chunk-Y32RJO24.js} +1 -1
- package/dist/{chunk-S35VARIR.js → chunk-Y36UZ5VS.js} +1 -1
- package/dist/compat/index.cjs +13 -12
- package/dist/compat/index.d.cts +14 -14
- package/dist/compat/index.d.ts +14 -14
- package/dist/compat/index.js +1 -1
- package/dist/compat/jotai/index.cjs +1 -1
- package/dist/compat/jotai/index.d.cts +2 -2
- package/dist/compat/jotai/index.d.ts +2 -2
- package/dist/compat/jotai/index.js +1 -1
- package/dist/compat/nanostores/index.cjs +1 -1
- package/dist/compat/nanostores/index.d.cts +2 -2
- package/dist/compat/nanostores/index.d.ts +2 -2
- package/dist/compat/nanostores/index.js +1 -1
- package/dist/compat/nestjs/index.cjs +13 -12
- package/dist/compat/nestjs/index.d.cts +6 -6
- package/dist/compat/nestjs/index.d.ts +6 -6
- package/dist/compat/nestjs/index.js +1 -1
- package/dist/compat/react/index.d.cts +2 -2
- package/dist/compat/react/index.d.ts +2 -2
- package/dist/compat/solid/index.d.cts +2 -2
- package/dist/compat/solid/index.d.ts +2 -2
- package/dist/compat/svelte/index.d.cts +2 -2
- package/dist/compat/svelte/index.d.ts +2 -2
- package/dist/compat/vue/index.d.cts +2 -2
- package/dist/compat/vue/index.d.ts +2 -2
- package/dist/compat/zustand/index.cjs +7 -6
- package/dist/compat/zustand/index.d.cts +4 -4
- package/dist/compat/zustand/index.d.ts +4 -4
- package/dist/compat/zustand/index.js +1 -1
- package/dist/{composite-BhbKHbOS.d.ts → composite-DGspwCqk.d.ts} +2 -2
- package/dist/{composite-B-xqw4Kk.d.cts → composite-nrRumJ7l.d.cts} +2 -2
- package/dist/core/index.cjs +1 -1
- package/dist/core/index.d.cts +4 -4
- package/dist/core/index.d.ts +4 -4
- package/dist/core/index.js +1 -1
- package/dist/extra/browser.cjs +1 -1
- package/dist/extra/browser.d.cts +1 -1
- package/dist/extra/browser.d.ts +1 -1
- package/dist/extra/browser.js +1 -1
- package/dist/extra/index.cjs +20 -19
- package/dist/extra/index.d.cts +9 -9
- package/dist/extra/index.d.ts +9 -9
- package/dist/extra/index.js +1 -1
- package/dist/extra/node.cjs +3 -3
- package/dist/extra/node.d.cts +1 -1
- package/dist/extra/node.d.ts +1 -1
- package/dist/extra/node.js +1 -1
- package/dist/extra/operators.cjs +1 -1
- package/dist/extra/operators.d.cts +1 -1
- package/dist/extra/operators.d.ts +1 -1
- package/dist/extra/operators.js +1 -1
- package/dist/extra/reactive.cjs +1 -1
- package/dist/extra/reactive.d.cts +3 -3
- package/dist/extra/reactive.d.ts +3 -3
- package/dist/extra/reactive.js +1 -1
- package/dist/extra/sources.cjs +1 -1
- package/dist/extra/sources.d.cts +1 -1
- package/dist/extra/sources.d.ts +1 -1
- package/dist/extra/sources.js +1 -1
- package/dist/extra/storage-browser.cjs +1 -1
- package/dist/extra/storage-browser.d.cts +1 -1
- package/dist/extra/storage-browser.d.ts +1 -1
- package/dist/extra/storage-browser.js +1 -1
- package/dist/graph/index.cjs +7 -6
- package/dist/graph/index.d.cts +5 -5
- package/dist/graph/index.d.ts +5 -5
- package/dist/graph/index.js +1 -1
- package/dist/{graph-D48Qw9Cg.d.cts → graph-C4Uxwv0T.d.cts} +22 -6
- package/dist/{graph-BZGRXwOm.d.ts → graph-CWeI0aHd.d.ts} +22 -6
- package/dist/{index-u15meRxL.d.cts → index-9iguV3bF.d.cts} +2 -2
- package/dist/{index-DyxjtScX.d.cts → index-B-z8WaSd.d.cts} +2 -2
- package/dist/{index-BgyGlizc.d.ts → index-B2HBxvMb.d.ts} +4 -4
- package/dist/{index-CzobVSMr.d.ts → index-B5iVOD7w.d.ts} +2 -2
- package/dist/{index-rX8HBM5h.d.cts → index-B8Aj_z8S.d.cts} +2 -2
- package/dist/{index-D-YB-Vl3.d.ts → index-BANwzwBV.d.ts} +3 -3
- package/dist/{index-HDpJe9hX.d.ts → index-BBINVimG.d.ts} +3 -3
- package/dist/{index-8FSVk4Uf.d.ts → index-BEpRsvhg.d.ts} +4 -4
- package/dist/{index-CHEswufn.d.cts → index-BHu_Wba0.d.cts} +4 -4
- package/dist/{index-ZftwfxJM.d.ts → index-BJHQUCZx.d.ts} +7 -7
- package/dist/{index-DUqMOlKZ.d.cts → index-BS220yqj.d.cts} +7 -7
- package/dist/{index-BWJV63ti.d.ts → index-BX22kvjh.d.ts} +1 -1
- package/dist/{index-DfyOkTvs.d.ts → index-BXbQUn4n.d.ts} +2 -2
- package/dist/{index-O6TgGUBV.d.cts → index-BpFWP7Bq.d.cts} +3 -3
- package/dist/{index-BxJ86YZZ.d.cts → index-Bs3-LC83.d.cts} +3 -3
- package/dist/{index-DiOXyAwt.d.ts → index-Bvi5uJxX.d.ts} +1 -1
- package/dist/{index-Bqachn9_.d.ts → index-ByPnK85n.d.ts} +1 -1
- package/dist/{index-CRO83MmV.d.cts → index-BydMDMf7.d.cts} +1 -1
- package/dist/{index-ROpQmGjE.d.ts → index-C5Ghnp5B.d.ts} +3 -3
- package/dist/{index-umtoWT8K.d.ts → index-C6NBfXj-.d.ts} +6 -5
- package/dist/{index-pXrDMpRO.d.cts → index-C98oJsEs.d.cts} +2 -2
- package/dist/{index-B2pwesl9.d.cts → index-CDK5RsV5.d.cts} +1 -1
- package/dist/{index-Czq6ynh8.d.ts → index-CFW32Dy1.d.ts} +3 -3
- package/dist/{index-Cyojz0AE.d.cts → index-CIXaiYDE.d.cts} +1 -1
- package/dist/{index-Oi8d8w4R.d.cts → index-CRAkoq-y.d.cts} +1 -1
- package/dist/{index-CpgYhnrG.d.ts → index-Cc8VQIgL.d.ts} +2 -2
- package/dist/{index-vscRDkjW.d.cts → index-CcpEvuPl.d.cts} +2 -2
- package/dist/{index-BpA5c4G9.d.ts → index-CfFYyLR8.d.ts} +4 -4
- package/dist/{index-9oDeHH2u.d.cts → index-ClB7TCfL.d.cts} +2 -2
- package/dist/{index-BHvIquRZ.d.ts → index-ClgKmOHe.d.ts} +592 -492
- package/dist/{index-DpHe5e0Q.d.ts → index-CotRMjtJ.d.ts} +2 -2
- package/dist/{index-B1AmmSlb.d.ts → index-CrC7urhX.d.ts} +1 -1
- package/dist/{index-B0c4cmIO.d.ts → index-CvS9IuTG.d.ts} +2 -2
- package/dist/{index-rHJSKsU8.d.cts → index-Cy7eFeIX.d.cts} +2 -2
- package/dist/{index-BVHOrDwO.d.ts → index-D0C_USMR.d.ts} +1 -1
- package/dist/{index-DEwTb_fm.d.cts → index-D6ajK8Mh.d.cts} +592 -492
- package/dist/{index-DL-rYJrx.d.cts → index-D7XxY1Ff.d.cts} +1 -1
- package/dist/{index-DAlweici.d.ts → index-D9HrBx2J.d.ts} +2 -2
- package/dist/{index-fM6y00vT.d.cts → index-D9Y_u6BG.d.cts} +3 -3
- package/dist/{index-DcXZBF5a.d.cts → index-DBQUKh59.d.cts} +4 -4
- package/dist/{index-D_NwnRYS.d.cts → index-DDo-eqQ4.d.cts} +1 -1
- package/dist/{index-m-yHof5p.d.ts → index-DGb1awva.d.ts} +4 -4
- package/dist/{index-DxsnAMWD.d.cts → index-DR3gf_DG.d.cts} +9 -9
- package/dist/{index-dtN7YA2x.d.cts → index-DVNLe3pS.d.cts} +3 -3
- package/dist/{index-Btib9rsU.d.ts → index-Dljd76bC.d.ts} +275 -9
- package/dist/{index-DP4ZTkdw.d.ts → index-DnrZghBB.d.ts} +3 -3
- package/dist/{index-DaLJvH8Z.d.ts → index-Docdiu9a.d.ts} +3 -3
- package/dist/{index-BpIFjILY.d.cts → index-DylQCKEL.d.cts} +4 -4
- package/dist/{index-B_agccPe.d.cts → index-FBqTfL_S.d.cts} +1 -1
- package/dist/{index-DraikLjn.d.ts → index-FrYrV-Vf.d.ts} +2 -2
- package/dist/{index-sm373fsH.d.ts → index-IZ3l_vQ9.d.ts} +2 -2
- package/dist/{index-BwM9BEkt.d.ts → index-Ip3q9T9x.d.ts} +1 -1
- package/dist/{index-CloUk1kY.d.ts → index-RQg6lTrN.d.ts} +9 -9
- package/dist/{index-CEXXwWVH.d.cts → index-SSGqF8mI.d.cts} +2 -2
- package/dist/{index-rnwQly8X.d.cts → index-UZO988ox.d.cts} +6 -5
- package/dist/{index-C73n7lo-.d.cts → index-iBp74eGU.d.cts} +3 -3
- package/dist/{index-tbf2gKHd.d.cts → index-lKuLYmHO.d.cts} +3 -3
- package/dist/{index-CMn8S8Hw.d.ts → index-wIx1Jisk.d.ts} +1 -1
- package/dist/{index-cByzxQIC.d.cts → index-yIdWFo2b.d.cts} +4 -4
- package/dist/{index-RukJ4DLS.d.cts → index-ybtSyjWB.d.cts} +275 -9
- package/dist/index.cjs +53 -52
- package/dist/index.d.cts +42 -42
- package/dist/index.d.ts +42 -42
- package/dist/index.js +1 -1
- package/dist/{meta-CwesDrMD.d.ts → meta-BMwx3ExI.d.ts} +1 -1
- package/dist/{meta-Cgj6zeji.d.cts → meta-COtmHLwT.d.cts} +1 -1
- package/dist/{node-Cc1TniY8.d.ts → node-BVV7G1bq.d.cts} +59 -2
- package/dist/{node-Cc1TniY8.d.cts → node-BVV7G1bq.d.ts} +59 -2
- package/dist/{observable-glXQoGj2.d.cts → observable-BrUAPeH_.d.cts} +1 -1
- package/dist/{observable-Ct-gJ9jI.d.ts → observable-ITikPXz3.d.ts} +1 -1
- package/dist/patterns/ai/browser.d.cts +3 -3
- package/dist/patterns/ai/browser.d.ts +3 -3
- package/dist/patterns/ai/browser.js +1 -1
- package/dist/patterns/ai/index.cjs +25 -24
- package/dist/patterns/ai/index.d.cts +15 -15
- package/dist/patterns/ai/index.d.ts +15 -15
- package/dist/patterns/ai/index.js +1 -1
- package/dist/patterns/ai/node.d.cts +1 -1
- package/dist/patterns/ai/node.d.ts +1 -1
- package/dist/patterns/ai/node.js +1 -1
- package/dist/patterns/audit/index.cjs +7 -6
- package/dist/patterns/audit/index.d.cts +5 -5
- package/dist/patterns/audit/index.d.ts +5 -5
- package/dist/patterns/audit/index.js +1 -1
- package/dist/patterns/cqrs/index.cjs +7 -6
- package/dist/patterns/cqrs/index.d.cts +4 -4
- package/dist/patterns/cqrs/index.d.ts +4 -4
- package/dist/patterns/cqrs/index.js +1 -1
- package/dist/patterns/demo-shell/index.cjs +8 -7
- package/dist/patterns/demo-shell/index.d.cts +5 -5
- package/dist/patterns/demo-shell/index.d.ts +5 -5
- package/dist/patterns/demo-shell/index.js +1 -1
- package/dist/patterns/domain-templates/index.cjs +7 -6
- package/dist/patterns/domain-templates/index.d.cts +4 -4
- package/dist/patterns/domain-templates/index.d.ts +4 -4
- package/dist/patterns/domain-templates/index.js +1 -1
- package/dist/patterns/graphspec/index.cjs +26 -25
- package/dist/patterns/graphspec/index.d.cts +4 -4
- package/dist/patterns/graphspec/index.d.ts +4 -4
- package/dist/patterns/graphspec/index.js +1 -1
- package/dist/patterns/guarded-execution/index.cjs +7 -6
- package/dist/patterns/guarded-execution/index.d.cts +6 -6
- package/dist/patterns/guarded-execution/index.d.ts +6 -6
- package/dist/patterns/guarded-execution/index.js +1 -1
- package/dist/patterns/harness/index.cjs +11 -10
- package/dist/patterns/harness/index.d.cts +10 -7
- package/dist/patterns/harness/index.d.ts +10 -7
- package/dist/patterns/harness/index.js +1 -1
- package/dist/patterns/job-queue/index.cjs +7 -6
- package/dist/patterns/job-queue/index.d.cts +4 -4
- package/dist/patterns/job-queue/index.d.ts +4 -4
- package/dist/patterns/job-queue/index.js +1 -1
- package/dist/patterns/lens/index.cjs +7 -6
- package/dist/patterns/lens/index.d.cts +6 -6
- package/dist/patterns/lens/index.d.ts +6 -6
- package/dist/patterns/lens/index.js +1 -1
- package/dist/patterns/memory/index.cjs +7 -6
- package/dist/patterns/memory/index.d.cts +4 -4
- package/dist/patterns/memory/index.d.ts +4 -4
- package/dist/patterns/memory/index.js +1 -1
- package/dist/patterns/messaging/index.cjs +7 -6
- package/dist/patterns/messaging/index.d.cts +4 -4
- package/dist/patterns/messaging/index.d.ts +4 -4
- package/dist/patterns/messaging/index.js +1 -1
- package/dist/patterns/orchestration/index.cjs +7 -6
- package/dist/patterns/orchestration/index.d.cts +5 -5
- package/dist/patterns/orchestration/index.d.ts +5 -5
- package/dist/patterns/orchestration/index.js +1 -1
- package/dist/patterns/reactive-layout/index.cjs +8 -7
- package/dist/patterns/reactive-layout/index.d.cts +5 -5
- package/dist/patterns/reactive-layout/index.d.ts +5 -5
- package/dist/patterns/reactive-layout/index.js +1 -1
- package/dist/patterns/reduction/index.cjs +7 -6
- package/dist/patterns/reduction/index.d.cts +4 -4
- package/dist/patterns/reduction/index.d.ts +4 -4
- package/dist/patterns/reduction/index.js +1 -1
- package/dist/patterns/refine-loop/index.cjs +9 -8
- package/dist/patterns/refine-loop/index.d.cts +5 -5
- package/dist/patterns/refine-loop/index.d.ts +5 -5
- package/dist/patterns/refine-loop/index.js +1 -1
- package/dist/patterns/resilient-pipeline/index.cjs +1 -1
- package/dist/patterns/resilient-pipeline/index.d.cts +6 -6
- package/dist/patterns/resilient-pipeline/index.d.ts +6 -6
- package/dist/patterns/resilient-pipeline/index.js +1 -1
- package/dist/patterns/surface/index.cjs +14 -13
- package/dist/patterns/surface/index.d.cts +5 -5
- package/dist/patterns/surface/index.d.ts +5 -5
- package/dist/patterns/surface/index.js +1 -1
- package/dist/{reactive-layout-CpYb5qLP.d.cts → reactive-layout-5oEn8lHM.d.cts} +2 -2
- package/dist/{reactive-layout-D8u4wuUR.d.ts → reactive-layout-BAr6-_o5.d.ts} +2 -2
- package/dist/{reactive-log-DPzuUDj5.d.cts → reactive-log-5jFeNRmd.d.cts} +1 -1
- package/dist/{reactive-log-YuH9VYN8.d.ts → reactive-log-BOJDCI5x.d.ts} +1 -1
- package/dist/{reactive-map-CdbNoSgP.d.ts → reactive-map-BvDrRuwt.d.ts} +1 -1
- package/dist/{reactive-map-DUeRmb9d.d.cts → reactive-map-CmlPPKHN.d.cts} +1 -1
- package/dist/{resilience-CGRzhnD3.d.ts → resilience-CludlzcP.d.ts} +1 -1
- package/dist/{resilience-Ba5-b4WD.d.cts → resilience-Q6Bt_7y0.d.cts} +1 -1
- package/dist/{resilience-QAHKANT5.js → resilience-XRUF267O.js} +1 -1
- package/dist/{sugar-BV0htudb.d.cts → sugar-BHbAACDG.d.ts} +10 -12
- package/dist/{sugar-Dtyrq2_q.d.ts → sugar-CqR6DJ7v.d.cts} +10 -12
- package/dist/{topology-tree-DROUdq5B.d.cts → topology-tree-CVREibAc.d.cts} +1 -1
- package/dist/{topology-tree-CYHOwQZ_.d.ts → topology-tree-CkjojcB6.d.ts} +1 -1
- package/package.json +1 -1
- package/dist/chunk-6V3SEX2I.js +0 -1
- package/dist/chunk-7H6LGFUG.js +0 -64
- package/dist/chunk-CKCSDI7T.js +0 -6
- package/dist/chunk-QWAPKG3O.js +0 -2
- package/dist/chunk-RHESUC3V.js +0 -43
- package/dist/chunk-V6YQICXZ.js +0 -1
- package/dist/chunk-Z4HDAS2Q.js +0 -1
- package/dist/chunk-ZB5EHBIO.js +0 -1
|
@@ -1,34 +1,35 @@
|
|
|
1
|
-
"use strict";var rn=Object.defineProperty;var Po=Object.getOwnPropertyDescriptor;var Go=Object.getOwnPropertyNames;var Fo=Object.prototype.hasOwnProperty;var me=(t,e)=>()=>(t&&(e=t(t=0)),e);var on=(t,e)=>{for(var n in e)rn(t,n,{get:e[n],enumerable:!0})},$o=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Go(e))!Fo.call(t,o)&&o!==n&&rn(t,o,{get:()=>e[o],enumerable:!(r=Po(e,o))||r.enumerable});return t};var Bo=t=>$o(rn({},"__esModule",{value:!0}),t);function gt(){return We>0||rt}function Yn(){return We>0}function st(t){We>0?ot.push(t):t()}function re(t){We+=1;let e=!1;try{t()}catch(n){throw e=!0,n}finally{if(We-=1,We===0)if(e){if(!rt){let n=ot.splice(0);for(let r of n)try{r()}catch{}Ie.length=0,Pe.length=0,qe.length=0}}else jo()}}function jo(){let t=!rt;t&&(rt=!0);let e=[],n=0;try{for(;Ie.length>0||Pe.length>0||qe.length>0||t&&ot.length>0;){if(t&&ot.length>0){let i=ot.splice(0);for(let s of i)try{s()}catch(a){e.push(a)}continue}if(n+=1,n>1e3)throw Ie.length=0,Pe.length=0,qe.length=0,new Error("batch drain exceeded 1000 iterations \u2014 likely a reactive cycle");let o=(Ie.length>0?Ie:Pe.length>0?Pe:qe).splice(0);for(let i of o)try{i()}catch(s){e.push(s)}}}finally{t&&(rt=!1)}if(e.length===1)throw e[0];if(e.length>1)throw new AggregateError(e,"batch drain: multiple callbacks threw")}function yt(t,e,n){if(e.length===0)return;if(e.length===1){let d=n(e[0][0]);if(d<3||!gt()){t(e);return}(d>=5?qe:d===4?Pe:Ie).push(()=>t(e));return}let r=e.length,o=r,i=r,s=r,a=0;for(;a<r&&n(e[a][0])<3;)a++;for(o=a;a<r&&n(e[a][0])===3;)a++;for(i=a;a<r&&n(e[a][0])===4;)a++;s=a;let l=gt();if(o>0){let d=e.slice(0,o);t(d)}if(i>o){let d=e.slice(o,i);l?Ie.push(()=>t(d)):t(d)}if(s>i){let d=e.slice(i,s);l?Pe.push(()=>t(d)):t(d)}if(r>s){let d=e.slice(s,r);l?qe.push(()=>t(d)):t(d)}}var We,rt,Ie,Pe,qe,ot,Me=me(()=>{"use strict";We=0,rt=!1,Ie=[],Pe=[],qe=[],ot=[]});function D(){return Math.trunc(performance.now()*1e6)}function ge(){return Date.now()*1e6}var pe=me(()=>{"use strict"});var Ae,A,J,U,ve,ke,Ne,le,P,O,Ge,bt,Qn,vt,Xn,Zn,Tt,sn,an,ln,wt,ue=me(()=>{"use strict";Ae=Symbol.for("graphrefly/START"),A=Symbol.for("graphrefly/DATA"),J=Symbol.for("graphrefly/DIRTY"),U=Symbol.for("graphrefly/RESOLVED"),ve=Symbol.for("graphrefly/INVALIDATE"),ke=Symbol.for("graphrefly/PAUSE"),Ne=Symbol.for("graphrefly/RESUME"),le=Symbol.for("graphrefly/TEARDOWN"),P=Symbol.for("graphrefly/COMPLETE"),O=Symbol.for("graphrefly/ERROR"),Ge=Object.freeze([J]),bt=Object.freeze([U]),Qn=Object.freeze([ve]),vt=Object.freeze([Ae]),Xn=Object.freeze([P]),Zn=Object.freeze([le]),Tt=Object.freeze([Ge]),sn=Object.freeze([bt]),an=Object.freeze([Qn]),ln=Object.freeze([Xn]),wt=Object.freeze([Zn])});function tr(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 i=new Uint8Array(o),s=0;return i[s++]=dn,i[s++]=n.length,i.set(n,s),s+=n.length,i[s++]=r>>>8&255,i[s++]=r&255,i.set(e,s),i}function nr(t,e){if(t.length<er)throw new Error(`decodeEnvelope: bytes too short (${t.length} < ${er})`);let n=0,r=t[n++];if(r!==dn)throw new Error(`decodeEnvelope: unsupported envelope version ${r} (expected ${dn})`);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 i=new TextDecoder().decode(t.subarray(n,n+o));n+=o;let s=(t[n]<<8|t[n+1])>>>0;n+=2;let a=t.subarray(n),l=e.lookupCodec(i);if(l==null)throw new Error(`decodeEnvelope: codec "${i}" not registered (envelope codec_v=${s})`);return{codec:l,codecVersion:s,payload:a}}function rr(t){t.registerCodec(Vo)}var Vo,dn,er,un=me(()=>{"use strict";Vo={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)}},dn=1,er=4});function kt(t){if(t==null)return Je;let{type:e,id:n,...r}=t;return{type:e??"system",id:n??"",...r}}var Je,_t=me(()=>{"use strict";Je={type:"system",id:""}});function or(t){t.registerMessageType(Ae,{tier:0,wireCrossing:!1}),t.registerMessageType(J,{tier:1,wireCrossing:!1}),t.registerMessageType(ve,{tier:1,wireCrossing:!1,metaPassthrough:!1}),t.registerMessageType(ke,{tier:2,wireCrossing:!1}),t.registerMessageType(Ne,{tier:2,wireCrossing:!1}),t.registerMessageType(A,{tier:3,wireCrossing:!0}),t.registerMessageType(U,{tier:3,wireCrossing:!0}),t.registerMessageType(P,{tier:4,wireCrossing:!0,metaPassthrough:!1}),t.registerMessageType(O,{tier:4,wireCrossing:!0,metaPassthrough:!1}),t.registerMessageType(le,{tier:5,wireCrossing:!0,metaPassthrough:!1})}var xt,sr=me(()=>{"use strict";ue();xt=class{_messageTypes=new Map;_codecs=new Map;_onMessage;_onSubscribe;_defaultVersioning;_defaultHashFn;_inspectorEnabled=!(typeof process<"u"&&process.env?.NODE_ENV==="production");_globalInspector;_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}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 cn(t){let e=Ko.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 Te,Ko,it=me(()=>{"use strict";Te=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}},Ko=["human","llm","wallet","system"]});function pn(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(pn);if(typeof t=="object"&&t!==null){let e={};for(let n of Object.keys(t).sort())e[n]=pn(t[n]);return e}return null}function Ho(t){let e=zo.encode(t),n=e.length,r=n*8,o=n+9+63&-64,i=new Uint8Array(o);i.set(e),i[n]=128;let s=new DataView(i.buffer);s.setUint32(o-4,r>>>0,!1),s.setUint32(o-8,Math.floor(r/4294967296)>>>0,!1);let a=1779033703,l=3144134277,d=1013904242,u=2773480762,c=1359893119,m=2600822924,f=528734635,p=1541459225,g=new Uint32Array(64),h=(v,b)=>v>>>b|v<<32-b;for(let v=0;v<o;v+=64){for(let L=0;L<16;L++)g[L]=s.getUint32(v+L*4,!1);for(let L=16;L<64;L++){let I=g[L-15],R=g[L-2],K=h(I,7)^h(I,18)^I>>>3,W=h(R,17)^h(R,19)^R>>>10;g[L]=g[L-16]+K+g[L-7]+W>>>0}let b=a,T=l,w=d,k=u,_=c,N=m,x=f,V=p;for(let L=0;L<64;L++){let I=h(_,6)^h(_,11)^h(_,25),R=_&N^~_&x,K=V+I+R+Uo[L]+g[L]>>>0,W=h(b,2)^h(b,13)^h(b,22),E=b&T^b&w^T&w,M=W+E>>>0;V=x,x=N,N=_,_=k+K>>>0,k=w,w=T,T=b,b=K+M>>>0}a=a+b>>>0,l=l+T>>>0,d=d+w>>>0,u=u+k>>>0,c=c+_>>>0,m=m+N>>>0,f=f+x>>>0,p=p+V>>>0}let y=v=>v.toString(16).padStart(8,"0");return y(a)+y(l)+y(d)+y(u)+y(c)+y(m)+y(f)+y(p)}function fn(t){let e=pn(t??null),n=JSON.stringify(e);return Ho(n).slice(0,16)}function Wo(){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 mn(t,e,n){let r=n?.id??Wo();if(t===0)return{id:r,version:0};let i=(n?.hash??fn)(e);return{id:r,version:0,cid:i,prev:null}}function ir(t,e,n){t.version+=1,"cid"in t&&(t.prev=t.cid,t.cid=n(e))}var Uo,zo,ar=me(()=>{"use strict";Uo=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]),zo=new TextEncoder});function ur(t){return{node:t,unsub:null,prevData:void 0,dirty:!1,involvedThisWave:!1,dataBatch:[],terminal:void 0}}function hn(t){t.prevData=void 0,t.dirty=!1,t.involvedThisWave=!1,t.dataBatch.length=0,t.terminal=void 0}function Rt(t){return t.length===0?t:typeof t[0]=="symbol"?[t]:t}function se(t,e,n){let r=cr(t)?t:[],o=typeof t=="function"?t:typeof e=="function"?e:void 0,i={};return cr(t)?i=(gn(e)?e:n)??{}:gn(t)?i=t:i=(gn(e)?e:n)??{},new oe(r,o,i)}var lr,dr,qo,Jo,Ye,oe,cr,gn,Re=me(()=>{"use strict";un();_t();Me();pe();sr();it();ue();ar();lr=()=>{},dr=100;qo=(t,e,n,r)=>{n.direction==="down-in"&&t._onDepMessage(n.depIndex,e)},Jo=(t,e,n,r)=>{let o=t;if(o._status==="completed"||o._status==="errored")return;let i=o._cached,s=i===void 0?[vt]:[vt,[A,i]];o._status==="dirty"&&s.push(Ge),yt(e,s,o._config.tierOf)},Ye=new xt({onMessage:qo,onSubscribe:Jo});or(Ye);rr(Ye);oe=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;_guard;_extraGuards;_hashFn;_versioning;_versioningLevel;_lastMutation;_inspectorHooks;_actions;constructor(e,n,r){this._config=r.config??Ye,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._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??fn;let o=r.versioning??this._config.defaultVersioning;this._versioningLevel=o,this._versioning=o!=null?mn(o,this._cached===void 0?void 0:this._cached,{id:r.versioningId,hash:this._hashFn}):void 0,this._deps=e.map(ur);let i={};for(let[a,l]of Object.entries(r.meta??{})){let d={initial:l,name:`${r.name??"node"}:meta:${a}`,describeKind:"state",config:this._config};r.guard!=null&&(d.guard=r.guard),i[a]=new t([],void 0,d)}Object.freeze(i),this.meta=i,this._hasMeta=Object.keys(i).length>0;let s=this;this._actions={emit(a){s._emit([[A,a]])},down(a){s._emit(Rt(a))},up(a){s._emitUp(Rt(a))}},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 i=this._cached===void 0?void 0:this._cached,s=this._versioning,a=s?.id??n?.id,l=s?.version??0,d=mn(e,i,{id:a,hash:o});d.version=l,this._versioning=d,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=kt(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=kt(e?.actor),i=e?.delivery==="signal"?"signal":"write";if(this._guard!=null&&!this._guard(o,i))throw new Te({actor:o,action:i,nodeName:this.name});if(this._extraGuards!=null){for(let s of this._extraGuards)if(!s(o,i))throw new Te({actor:o,action:i,nodeName:this.name})}this._lastMutation={actor:o,timestamp_ns:ge()}}down(e,n){let r=Rt(e);r.length!==0&&(this._checkGuard(n),this._emit(r))}emit(e,n){this._checkGuard(n),this._emit([[A,e]])}up(e,n){if(this._deps.length===0)return;let r=Rt(e);if(r.length===0)return;this._checkGuard(n);let o=n??{internal:!0};this._validateUpTiers(r);for(let i of this._deps)i.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 l=kt(n);if(!this._guard(l,"observe"))throw new Te({actor:l,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 l of this._deps)hn(l)}this._sinkCount+=1;let i;try{i=this._config.onSubscribe(this,e,{sinkCount:this._sinkCount,afterTerminalReset:o},this._actions)}catch(l){throw this._sinkCount-=1,l}this._sinks==null?this._sinks=e:typeof this._sinks=="function"?this._sinks=new Set([this._sinks,e]):this._sinks.add(e);let s=this._isTerminal;if(this._sinkCount===1&&!s)try{this._activate()}catch(l){if(this._sinkCount-=1,this._removeSink(e),this._sinkCount===0&&(this._status="sentinel"),typeof i=="function")try{i()}catch{}throw l}this._status==="sentinel"&&this._cached===void 0&&(this._status="pending");let a=!1;return()=>{a||(a=!0,this._sinkCount-=1,this._removeSink(e),typeof i=="function"&&i(),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,i=this._deps[r];i.unsub=lr,i.unsub=i.node.subscribe(s=>{if(i.unsub===null)return;let a=this._config.tierOf,l=!1;for(let d of s)a(d[0])>=3&&(l=!0),this._config.onMessage(this,d,{direction:"down-in",depIndex:o},this._actions);l&&this._maybeRunFnOnSettlement()}),n++}}catch(r){this._deps[n].unsub=null;for(let o=0;o<n;o++){let i=this._deps[o];if(i.unsub!=null){let s=i.unsub;i.unsub=null;try{s()}catch{}hn(i)}}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=ur(e);if(this._deps.push(r),this._sinks==null)return n;r.dirty=!0,this._dirtyDepCount++,this._status!=="dirty"&&this._emit(Tt),r.unsub=lr;try{r.unsub=e.subscribe(o=>{if(r.unsub===null)return;let i=this._config.tierOf,s=!1;for(let a of o)i(a[0])>=3&&(s=!0),this._config.onMessage(this,a,{direction:"down-in",depIndex:n},this._actions);s&&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([[O,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([[O,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{}}hn(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 i={kind:"dep_message",depIndex:e,message:n};for(let s of this._inspectorHooks)s(i)}if(o!==Ae){if(o===J){this._depDirtied(r);return}if(o===ve){this._depInvalidated(r),this._emit(an);return}if(o===ke||o===Ne){this._emit([n]);return}if(o===le){this._emit(wt);return}if(o===A)this._depSettledAsData(r,n[1]);else if(o===U)this._depSettledAsResolved(r);else if(o===P)this._depSettledAsTerminal(r,!0);else if(o===O)this._depSettledAsTerminal(r,n[1]);else{this._emit([n]);return}if(!this._fn){(o===A||o===U)&&this._emit([n]),(o===P||o===O)&&this._maybeAutoTerminalAfterWave();return}}}_depDirtied(e){e.dirty||(e.dirty=!0,e.involvedThisWave=!0,this._dirtyDepCount++,this._status!=="dirty"&&this._emit(Tt))}_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._paused){this._pendingWave=!0;return}if(!this._waveHasNewData&&!this._hasNewTerminal&&this._hasCalledFnOnce){this._clearWaveFlags(),this._emit(sn),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([[O,e.terminal]]);return}this._autoComplete&&this._deps.every(n=>n.terminal!==void 0)&&this._emit(ln)}_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(s){this._emit([[O,this._wrapFnError("cleanup threw",s)]]);return}}else if(e!=null&&typeof e=="object"){let s=e.beforeRun;if(typeof s=="function"){e.beforeRun=void 0;try{s()}catch(a){this._emit([[O,this._wrapFnError("cleanup.beforeRun threw",a)]]);return}}}let n=this._deps.map(s=>s.involvedThisWave?s.dataBatch.length>0?[...s.dataBatch]:[]:void 0),r=this._deps.map(s=>s.prevData);for(let s=0;s<this._deps.length;s++){let a=n[s];a!=null&&a.length>0&&(this._deps[s].prevData=a[a.length-1])}let o=this._deps.map(s=>s.terminal),i={prevData:r,terminalDeps:o,store:this._store};if(this._hasCalledFnOnce=!0,this._clearWaveFlags(),this._inspectorHooks!=null){let s={kind:"run",batchData:n,prevData:r};for(let a of this._inspectorHooks)a(s)}this._isExecutingFn=!0;try{let s=this._fn(n,this._actions,i);if(typeof s=="function")this._cleanup=s;else if(s!=null&&typeof s=="object"){let a=s;(typeof a.beforeRun=="function"||typeof a.deactivate=="function"||typeof a.invalidate=="function")&&(this._cleanup=s)}}catch(s){this._emit([[O,this._wrapFnError("fn threw",s)]])}finally{this._isExecutingFn=!1,this._pendingRerun?(this._pendingRerun=!1,this._rerunDepth+=1,this._rerunDepth>dr?(this._rerunDepth=0,this._emit([[O,new Error(`Node "${this.name}": _pendingRerun depth exceeded ${dr} \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"?[Ge,e[0]]:e;let r=!0,o=!1,i=!1,s=-1;for(let l of e){let d=n(l[0]);d<s&&(r=!1),d===3&&(o=!0),l[0]===J&&(i=!0),s=d}let a=e;if(!r){let l=e.map((d,u)=>({m:d,i:u,tier:n(d[0])}));l.sort((d,u)=>d.tier-u.tier||d.i-u.i),a=l.map(d=>d.m)}if(o&&!i&&this._status!=="dirty"){let l=0;for(;l<a.length&&n(a[l][0])===0;)l++;return l===0?[Ge,...a]:[...a.slice(0,l),Ge,...a.slice(l)]}return a}_emit(e){if(e.length===0)return;let n=e;if(this._isTerminal&&!this._resubscribable){let a=e.filter(l=>l[0]===le||l[0]===ve);if(a.length===0)return;n=a}n=this._frameBatch(n);let o=null;for(let a=0;a<n.length;a++){let l=n[a],d=l[0];if(d!==ke&&d!==Ne){o?.push(l);continue}if(l.length<2)throw new Error(`Node "${this.name}": [[${d===ke?"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 c=l[1];if(d===ke)this._pauseLocks==null&&(this._pauseLocks=new Set),this._pauseLocks.add(c),this._paused=!0,this._pausable==="resumeAll"&&this._pauseBuffer==null&&(this._pauseBuffer=[]);else if(this._pauseLocks==null||!this._pauseLocks.has(c))u=!1;else if(this._pauseLocks.delete(c),this._pauseLocks.size===0){if(this._paused=!1,this._pauseBuffer!=null&&this._pauseBuffer.length>0){let m=this._pauseBuffer;this._pauseBuffer=[],this._emit(m)}this._pendingWave&&(this._pendingWave=!1,this._maybeRunFnOnSettlement())}}u?o?.push(l):o==null&&(o=n.slice(0,a))}if(o!=null){if(o.length===0)return;n=o}if(this._hasMeta&&n.some(a=>a[0]===le))for(let a of Object.keys(this.meta))try{this.meta[a]._emit(wt)}catch{}let{finalMessages:i,equalsError:s}=this._updateState(n);if(i.length>0&&this._config.inspectorEnabled){let a=this._config.globalInspector;if(a!=null)try{a({kind:"emit",node:this,messages:i})}catch{}}if(i.length>0)if(this._paused&&this._pausable==="resumeAll"&&this._pauseBuffer!=null){let a=this._config.tierOf,l=[];for(let d of i){let u=a(d[0]);u<3||u===5?l.push(d):this._pauseBuffer.push(d)}l.length>0&&this._dispatchOrAccumulate(l)}else this._dispatchOrAccumulate(i);s!=null&&this._emit([[O,s]])}_updateState(e){let n=this._config.tierOf,r,o,i=-1,s=0;for(let u of e)n(u[0])===3&&s++;let a=s<=1,l=-1;if(this._versioning!=null&&s>1){for(let u=e.length-1;u>=0;u--)if(e[u][0]===A){l=u;break}}for(let u=0;u<e.length;u++){let c=e[u],m=c[0];if(m===A){if(c.length>=2){let f=!1;if(a&&this._cached!==void 0)try{f=this._equals(this._cached,c[1])}catch(p){o=this._wrapFnError("equals threw",p),i=u;break}if(f){r==null&&(r=e.slice(0,u)),r.push(bt),this._status="resolved";continue}this._cached=c[1],this._versioning!=null&&(l<0||u===l)&&ir(this._versioning,c[1],this._hashFn)}this._status="settled",r?.push(c)}else if(r?.push(c),m===J)this._status="dirty";else if(m===U)this._status="resolved";else if(m===P)this._status="completed";else if(m===O)this._status="errored";else if(m===ve){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 p=f.invalidate;if(typeof p=="function")try{p()}catch{}}}else m===le&&(this._resetOnTeardown&&(this._cached=void 0),this._deactivate(!0),this._status="sentinel")}let d=i>=0?r??e.slice(0,i):r??e;return o!=null?{finalMessages:d,equalsError:o}:{finalMessages:d}}_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(Yn()){this._batchPendingMessages===null&&(this._batchPendingMessages=[],st(()=>this._flushBatchPending()));for(let n of e)this._batchPendingMessages.push(n);return}yt(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);yt(this._deliverToSinks,n,this._config.tierOf)}},cr=t=>Array.isArray(t),gn=t=>typeof t=="object"&&t!=null&&!Array.isArray(t)});function pr(t,e,n){return n?!1:t.some((r,o)=>!(r!=null&&r.length>0)&&e.prevData[o]===void 0)}function C(t,e){return se([],{...e,initial:t})}function de(t,e){return se((r,o,i)=>t(o,i)??void 0,{describeKind:"producer",...e})}function $(t,e,n){let r=n?.partial??!1;return se(t,(i,s,a)=>{if(pr(i,a,r)){s.down([[U]]);return}let l=i.map((d,u)=>d!=null&&d.length>0?d.at(-1):a.prevData[u]);s.emit(e(l,a))},{describeKind:"derived",...n})}function Fe(t,e,n){let r=n?.partial??!1;return se(t,(i,s,a)=>{if(pr(i,a,r)){s.down([[U]]);return}let l=i.map((d,u)=>d!=null&&d.length>0?d.at(-1):a.prevData[u]);return e(l,s,a)??void 0},{describeKind:"effect",...n})}var fe=me(()=>{"use strict";ue();Re()});var br={};on(br,{NS_PER_MS:()=>Be,NS_PER_SEC:()=>Qe,constant:()=>fr,decorrelatedJitter:()=>yr,exponential:()=>hr,fibonacci:()=>gr,linear:()=>mr,resolveBackoffPreset:()=>Mt,withMaxAttempts:()=>Xo});function $e(t){return t<0?0:t}function Yo(t,e){return e==="none"?t:e==="full"?Math.random()*t:t/2+Math.random()*(t/2)}function Qo(t,e){return t+Math.random()*(e-t)}function fr(t){let e=$e(t);return()=>e}function mr(t,e){let n=$e(t),r=e===void 0?n:$e(e);return o=>n+r*Math.max(0,o)}function hr(t){let e=$e(t?.baseNs??1e8),n=t?.factor!==void 0&&t.factor<1?1:t?.factor??2,r=$e(t?.maxDelayNs??30*1e9),o=t?.jitter??"none";return i=>{let s;if(e===0)s=0;else if(n===1)s=e;else{let a=r/e,l=1;for(let d=0;d<Math.max(0,i);d++){if(l>=a){l=a;break}l*=n}s=e*l,s>r&&(s=r)}return Yo(s,o)}}function gr(t=100*1e6,e=30*1e9){let n=$e(t),r=$e(e);function o(i){if(i<=0)return 1;let s=1,a=2;for(let l=1;l<i;l++){let d=s+a;s=a,a=d}return a}return i=>{let s=o(i)*n;return s<=r?s:r}}function yr(t=100*1e6,e=30*1e9){return(n,r,o)=>{let s=Math.min(e,(o??t)*3);return Qo(t,s)}}function Xo(t,e){return(n,r,o)=>n>=e?null:t(n,r,o)}function Mt(t){if(t==="constant")return fr(1*1e9);if(t==="linear")return mr(1*1e9);if(t==="exponential")return hr();if(t==="fibonacci")return gr();if(t==="decorrelatedJitter")return yr();throw new Error(`Unknown backoff preset: "${String(t)}". Use one of: constant, linear, exponential, fibonacci, decorrelatedJitter`)}var Be,Qe,yn=me(()=>{"use strict";Be=1e6,Qe=1e9});var Z,Ee=me(()=>{"use strict";Z=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 Tr={};on(Tr,{CircuitOpenError:()=>Ce,RateLimiterOverflowError:()=>Nt,TimeoutError:()=>Et,circuitBreaker:()=>at,fallback:()=>as,rateLimiter:()=>ns,retry:()=>es,retrySource:()=>bn,timeout:()=>ls,tokenBucket:()=>lt,withBreaker:()=>ts,withStatus:()=>rs});function je(t){return{describeKind:"derived",...t}}function Zo(t){return t<0?0:t}function Ot(t){return t[1]}function vr(t){if(typeof t!="number"||!Number.isFinite(t))throw new TypeError("backoff strategy must return a finite number");return t<0?0:t}function es(t,e){let n=e?.count,r=e?.backoff,o=n!==void 0?n:r===void 0?0:2147483647;if(o<0)throw new RangeError("retry count must be >= 0");let i=r===void 0?null:typeof r=="string"?Mt(r):r;return de(s=>{let a=0,l=!1,d=null,u,c=new Z;function m(){u?.(),u=void 0}function f(g){if(l)return;if(a>=o){m(),s.down([[O,g]]);return}let h=i===null?0:i(a,g,d);if(h==null){m(),s.down([[O,g]]);return}let y;try{y=vr(h)}catch{m(),s.down([[O,g]]);return}d=y,a+=1,m();let v=y>0?y/1e6:1;c.start(v,()=>{l||p()})}function p(){c.cancel(),m(),u=t.subscribe(g=>{if(!l)for(let h of g){let y=h[0];if(y===J)s.down([[J]]);else if(y===A)a=0,d=null,s.emit(h[1]);else if(y===U)s.down([[U]]);else if(y===P)m(),s.down([[P]]);else if(y===O){f(Ot(h));return}else s.down([h])}})}return p(),()=>{l=!0,c.cancel(),m()}},{...je(),initial:t.cache})}function bn(t,e){let n=e?.count,r=e?.backoff,o=n!==void 0?n:r===void 0?0:2147483647;if(o<0)throw new RangeError("retry count must be >= 0");let i=r===void 0?null:typeof r=="string"?Mt(r):r;return de(s=>{let a=0,l=!1,d=null,u,c=new Z;function m(){u?.(),u=void 0}function f(g){if(l)return;if(a>=o){m(),s.down([[O,g]]);return}let h=i===null?0:i(a,g,d);if(h==null){m(),s.down([[O,g]]);return}let y;try{y=vr(h)}catch{m(),s.down([[O,g]]);return}d=y,a+=1,m();let v=y>0?y/1e6:1;c.start(v,()=>{l||p()})}function p(){c.cancel(),m();let g;try{g=t()}catch(h){f(h);return}u=g.subscribe(h=>{if(!l)for(let y of h){let v=y[0];if(v===J)s.down([[J]]);else if(v===A)a=0,d=null,s.emit(y[1]);else if(v===U)s.down([[U]]);else if(v===P)m(),s.down([[P]]);else if(v===O){f(Ot(y));return}else s.down([y])}})}return p(),()=>{l=!0,c.cancel(),m()}},{...je(),initial:e?.initial})}function at(t){let e=Math.max(1,t?.failureThreshold??5),n=Zo(t?.cooldownNs??30*1e9),r=t?.cooldown??null,o=Math.max(1,t?.halfOpenMax??1),i=t?.now??D,s="closed",a=0,l=0,d=0,u=n,c=0;function m(){if(!r)return n;let g=r(l);return g!==null?g:n}function f(){s="open",u=m(),d=i(),c=0}return{canExecute(){return s==="closed"?!0:s==="open"?i()-d>=u?(s="half-open",c=1,!0):!1:c<o?(c++,!0):!1},recordSuccess(){s==="half-open"?(s="closed",a=0,l=0):s==="closed"&&(a=0)},recordFailure(g){if(s==="half-open"){l++,f();return}s==="closed"&&(a++,a>=e&&f())},get state(){return s},get failureCount(){return a},reset(){s="closed",a=0,l=0,c=0}}}function ts(t,e){let n=e?.onOpen??"skip";return r=>{let o=se([],(i,s)=>{function a(){o.meta.breakerState.down([[A,t.state]])}let l=r.subscribe(d=>{for(let u of d){let c=u[0];c===J?s.down([[J]]):c===A?t.canExecute()?(a(),s.emit(u[1])):(a(),n==="error"?s.down([[O,new Ce]]):s.down([[U]])):c===U?s.down([[U]]):c===P?(t.recordSuccess(),a(),s.down([[P]])):c===O?(t.recordFailure(Ot(u)),a(),s.down([u])):s.down([u])}});return a(),l},{...je(),meta:{breakerState:t.state},completeWhenDepsComplete:!1,initial:r.cache});return{node:o,breakerState:o.meta.breakerState}}}function lt(t,e){if(t<=0)throw new RangeError("capacity must be > 0");if(e<0)throw new RangeError("refillPerSecond must be >= 0");let n=t,r=D();function o(i){if(e>0){let s=i-r;n=Math.min(t,n+s/1e9*e)}r=i}return{available(){return o(D()),n},tryConsume(i=1){if(i<=0)return!0;let s=D();return o(s),n>=i?(n-=i,!0):!1},putBack(i=1){i<=0||(o(D()),n=Math.min(t,n+i))}}}function ns(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&&o<1)throw new RangeError("maxBuffer must be >= 1");let i=e.onOverflow??"drop-newest",s=n*1e9/r;return de(a=>{let l=lt(n,s),d=[],u=new Z,c=!1,m=1e9/s;function f(){for(;d.length>0;)if(l.tryConsume(1))a.emit(d.shift());else{u.start(Math.max(1,m/1e6),f);return}}let p=t.subscribe(g=>{for(let h of g){if(c)return;let y=h[0];if(y===J)a.down([[J]]);else if(y===A){if(o!==void 0&&d.length>=o){if(i!=="drop-newest")if(i==="drop-oldest")d.shift(),d.push(h[1]);else{c=!0,u.cancel(),d.length=0,a.down([[O,new Nt(o)]]);return}}else d.push(h[1]);f()}else if(y===U)a.down([[U]]);else if(y===P)c=!0,u.cancel(),d.length=0,a.down([[P]]);else if(y===O)c=!0,u.cancel(),d.length=0,a.down([h]);else if(y===le){c=!0,u.cancel(),d.length=0,a.down([h]);return}else a.down([h])}});return()=>{c=!0,u.cancel(),p()}},{...je(),initial:t.cache})}function rs(t,e){let n=e?.initialStatus??"pending",r=se([],(o,i)=>{let s=n;return r.meta.status.down([[A,n]]),r.meta.error.down([[A,null]]),t.subscribe(l=>{for(let d of l){let u=d[0];if(u===J)i.down([[J]]);else if(u===A)s==="errored"?re(()=>{r.meta.error.down([[A,null]]),r.meta.status.down([[A,"active"]])}):r.meta.status.down([[A,"active"]]),s="active",i.emit(d[1]);else if(u===U)i.down([[U]]);else if(u===P)r.meta.status.down([[A,"completed"]]),s="completed",i.down([[P]]);else if(u===O){let c=Ot(d);re(()=>{r.meta.error.down([[A,c]]),r.meta.status.down([[A,"errored"]])}),s="errored",i.down([d])}else i.down([d])}})},{...je(),meta:{status:n,error:null},completeWhenDepsComplete:!1,resubscribable:!0,initial:t.cache});return{node:r,status:r.meta.status,error:r.meta.error}}function os(t){return t!=null&&typeof t=="object"&&"cache"in t&&typeof t.subscribe=="function"}function ss(t){return t!=null&&typeof t.then=="function"}function is(t){return t!=null&&typeof t=="object"&&typeof t[Symbol.asyncIterator]=="function"}function as(t,e){return de(n=>{let r,o;function i(){o?.(),o=void 0,os(e)||ss(e)||is(e)?r=z(e).subscribe(a=>{n.down(a)}):(n.emit(e),n.down([[P]]))}return o=t.subscribe(s=>{for(let a of s){let l=a[0];if(l===J)n.down([[J]]);else if(l===A)n.emit(a[1]);else if(l===U)n.down([[U]]);else if(l===P)n.down([[P]]);else if(l===O){i();return}else if(l===le){r?.(),n.down([a]);return}else n.down([a])}}),()=>{o?.(),r?.()}},{...je(),initial:t.cache})}function ls(t,e){if(e<=0)throw new RangeError("timeoutNs must be > 0");return de(n=>{let r=!1,o=new Z;function i(){let a=e/1e6;o.start(a,()=>{r||(r=!0,s(),n.down([[O,new Et(e)]]))})}let s=t.subscribe(a=>{for(let l of a){if(r)return;let d=l[0];if(d===J)n.down([[J]]);else if(d===A)i(),n.emit(l[1]);else if(d===U)n.down([[U]]);else if(d===P){o.cancel(),r=!0,n.down([[P]]);return}else if(d===O){o.cancel(),r=!0,n.down([l]);return}else if(d===le){o.cancel(),r=!0,n.down([l]);return}else n.down([l])}});return i(),()=>{r=!0,o.cancel(),s()}},{...je(),initial:t.cache})}var Ce,Nt,Et,Xe=me(()=>{"use strict";Me();pe();ue();Re();fe();yn();ye();Ee();Ce=class extends Error{name="CircuitOpenError";constructor(){super("Circuit breaker is open")}};Nt=class extends Error{name="RateLimiterOverflowError";constructor(e){super(`rateLimiter buffer overflow (maxBuffer=${e})`)}};Et=class extends Error{name="TimeoutError";constructor(e){super(`Timed out after ${e/1e6}ms`)}}});function St(t){return{describeKind:"producer",...t}}function _r(t,e){let{signal:n,period:r,...o}=e??{};return de(i=>{let s=!1,a=0,l,d,u=()=>{s=!0,l!==void 0&&clearTimeout(l),d!==void 0&&clearInterval(d),n?.removeEventListener("abort",m)},c=()=>{s||(r!=null?(i.emit(a++),d=setInterval(()=>{s||i.emit(a++)},r)):(s=!0,n?.removeEventListener("abort",m),i.emit(a++),i.down([[P]])))},m=()=>{s||(u(),i.down([[O,n.reason]]))};if(n?.aborted){m();return}return l=setTimeout(c,t),n?.addEventListener("abort",m,{once:!0}),u},St(o))}function xr(t,e){return de(n=>{let r=!1;try{for(let o of t){if(r)return;n.emit(o)}r||n.down([[P]])}catch(o){r||n.down([[O,o]])}return()=>{r=!0}},St(e))}function ds(t){return t!=null&&typeof t.then=="function"}function us(t,e){let{signal:n,...r}=e??{};return de(o=>{let i=!1,s=()=>{i||(i=!0,o.down([[O,n.reason]]))};if(n?.aborted){s();return}return n?.addEventListener("abort",s,{once:!0}),Promise.resolve(t).then(a=>{i||(i=!0,n?.removeEventListener("abort",s),o.emit(a),o.down([[P]]))},a=>{i||(i=!0,n?.removeEventListener("abort",s),o.down([[O,a]]))}),()=>{i=!0,n?.removeEventListener("abort",s)}},St(r))}function cs(t,e){let{signal:n,...r}=e??{};return de(o=>{let i=new AbortController,s=()=>i.abort(n?.reason);n?.aborted?i.abort(n.reason):n?.addEventListener("abort",s,{once:!0});let a=n??i.signal,l=!1,d=t[Symbol.asyncIterator](),u=()=>{l||a.aborted||Promise.resolve(d.next()).then(c=>{if(!(l||a.aborted)){if(c.done){o.down([[P]]);return}o.emit(c.value),u()}},c=>{!l&&!a.aborted&&o.down([[O,c]])})};return u(),()=>{l=!0,n?.removeEventListener("abort",s),i.abort(),Promise.resolve(d.return?.()).catch(()=>{})}},St(r))}function ps(t){return t!=null&&typeof t=="object"&&"cache"in t&&typeof t.subscribe=="function"}function z(t,e){if(ps(t))return t;if(ds(t))return us(t,e);if(t!=null){let n=t;if(typeof n[Symbol.asyncIterator]=="function")return cs(t,e);if(typeof n[Symbol.iterator]=="function")return xr(t,e)}return fs(t)}function fs(...t){return xr(t,void 0)}function dt(t,e,n){return se([t],(o,i)=>{let s=o[0];if(s!=null&&s.length>0)for(let a of s)e(a)},{describeKind:"effect",...n}).subscribe(()=>{})}function At(t){return new Promise((e,n)=>{let r=!1,o=!1,i;i=t.subscribe(s=>{for(let a of s){if(r)return;if(a[0]===A){r=!0,e(a[1]),i?(i(),i=void 0):o=!0;return}if(a[0]===O){r=!0,n(a[1]),i?(i(),i=void 0):o=!0;return}if(a[0]===P){r=!0,n(new Error("completed without DATA")),i?(i(),i=void 0):o=!0;return}}}),o&&(i?.(),i=void 0)})}function wr(t,e){return new Promise((n,r)=>{let o=!1,i=!1,s;s=t.subscribe(a=>{for(let l of a){if(o)return;if(l[0]===A){let d=l[1];if(e(d)){o=!0,n(d),s?(s(),s=void 0):i=!0;return}}if(l[0]===O){o=!0,r(l[1]),s?(s(),s=void 0):i=!0;return}if(l[0]===P){o=!0,r(new Error("completed without matching value")),s?(s(),s=void 0):i=!0;return}}}),i&&(s?.(),s=void 0)})}async function Rr(t,e){let n=e?.predicate??(o=>o!=null);if(e?.timeoutMs==null||e.timeoutMs<=0)return await wr(t,n);if(vn===void 0){let[o,i]=await Promise.all([Promise.resolve().then(()=>(Xe(),Tr)),Promise.resolve().then(()=>(yn(),br))]);vn=o.timeout,kr=i.NS_PER_MS}let r=vn(t,e.timeoutMs*kr);return await wr(r,n)}function ne(t){return t.subscribe(()=>{})}var vn,kr,ye=me(()=>{"use strict";ue();Re();fe()});var ya={};on(ya,{AgentLoopGraph:()=>en,AllTiersExhaustedError:()=>pt,BudgetExhaustedError:()=>qt,ChatStreamGraph:()=>Xt,CircuitOpenError:()=>Ce,FallbackMissError:()=>ni,LLMTimeoutError:()=>tt,ReplayCacheMissError:()=>Ue,ToolRegistryGraph:()=>Zt,admissionFilter3D:()=>ia,agentLoop:()=>ua,agentMemory:()=>la,anthropicAdapter:()=>En,canonicalJson:()=>Ut,cascadingLlmAdapter:()=>zn,chatStream:()=>So,composePricing:()=>_i,computePrice:()=>To,contentGate:()=>Xi,costMeterExtractor:()=>Yi,createAdapter:()=>bi,createCapabilitiesRegistry:()=>qs,createPricingRegistry:()=>wi,dryRunAdapter:()=>Oe,dryRunPreset:()=>Pi,fallbackAdapter:()=>Cn,fromLLM:()=>Vi,frozenContext:()=>ji,gatedStream:()=>Zi,gaugesAsContext:()=>fa,googleAdapter:()=>Ln,graphFromSpec:()=>ma,handoff:()=>na,keywordFlagExtractor:()=>Hi,knobsAsTools:()=>pa,llmConsolidator:()=>Lo,llmExtractor:()=>Co,observableAdapter:()=>vi,openAICompatAdapter:()=>In,parseRateLimitFromError:()=>Vn,promptNode:()=>ta,redactor:()=>Qi,registryPricing:()=>ki,resilientAdapter:()=>Ii,streamExtractor:()=>Ui,streamingPromptNode:()=>Ki,suggestStrategy:()=>ga,systemPromptBuilder:()=>oa,toolCallExtractor:()=>qi,toolRegistry:()=>Ao,toolSelector:()=>ra,validateGraphDef:()=>Do,withBreaker:()=>$n,withBudgetGate:()=>jn,withDryRun:()=>Ri,withRateLimiter:()=>Un,withReplayCache:()=>An,withRetry:()=>Hn,withTimeout:()=>Wn,zeroPrice:()=>Fn});module.exports=Bo(ya);Me();pe();ue();Re();fe();Me();ue();fe();ue();Re();fe();ye();function Mr(t){return{describeKind:"derived",...t}}function ms(t,e,n){let r,o=!1,i=()=>{o||(o=!0,n())};return r=t.subscribe(s=>{let a=!1,l=!1;for(let d of s)d[0]!==Ae&&(d[0]===A?e.emit(d[1]):d[0]===P?a=!0:d[0]===O?(l=!0,e.down([d])):(d[0]===J||d[0]===U)&&e.down([d]));l?(r?.(),r=void 0,i()):a&&i()}),()=>{r?.(),r=void 0}}function we(t,e,n){let r,o=!1;function i(){r?.(),r=void 0}return se([t],(s,a,l)=>{if(l.terminalDeps[0]!=null&&l.terminalDeps[0]!==!0){i();return}if(l.terminalDeps[0]===!0){o=!0,r||a.down([[P]]);return}let d=s[0];if(!(d==null||d.length===0))return i(),r=ms(z(e(d[d.length-1])),a,()=>{i(),o&&a.down([[P]])}),{deactivate:()=>{i(),o=!1}}},{...Mr(n),completeWhenDepsComplete:!1})}function Nr(t,e,n){return de(r=>{let o=t.subscribe(i=>{for(let s of i)if(s[0]===A)r.emit(s[1]);else if(s[0]===O)try{r.emit(e(s[1]))}catch(a){r.down([[O,a]])}else s[0]===P&&r.down([[P]])});return()=>{o()}},Mr(n))}Me();pe();ue();fe();var Tn=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[i,s]of e)this._store.has(i)&&this._store.delete(i),this._store.set(i,{value:s,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=D(),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=D(),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 D()+n*1e9}}_isExpired(e,n){return e.expiresAt===void 0?!1:(n??D())>=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 Er(t={}){let{name:e,maxSize:n,defaultTtl:r,versioning:o,backend:i}=t,s=i??new Tn({maxSize:n,defaultTtl:r}),a=C(s.toMap(),{name:e,describeKind:"state",equals:(u,c)=>u===c,...o!=null?{versioning:o}:{}});function l(){let u=s.toMap();re(()=>{a.down([[J]]),a.down([[A,u]])})}function d(u){let c=s.version;try{return u()}finally{s.version!==c&&l()}}return{entries:a,has(u){return d(()=>s.has(u))},get(u){return d(()=>s.get(u))},set(u,c,m){d(()=>s.set(u,c,m?.ttl))},setMany(u,c){d(()=>s.setMany(u,c?.ttl))},delete(u){d(()=>s.delete(u))},deleteMany(u){d(()=>s.deleteMany(u))},clear(){d(()=>s.clear())},pruneExpired(){d(()=>s.pruneExpired())},get size(){return s.size},dispose(){}}}ye();function hs(t){return typeof t=="object"&&t!==null&&"cache"in t&&typeof t.subscribe=="function"}function Or(t){t.subscribe(()=>{})}function ut(t){return t instanceof Map?t:new Map}function Sr(t,e){if(!Array.isArray(e.upsert))throw new TypeError("distill extraction requires upsert: Array<{ key, value }>");re(()=>{for(let{key:n,value:r}of e.upsert)t.set(n,r);for(let n of e.remove??[])t.delete(n)})}function Ar(t,e,n){let r=z(t),o=Er(n.mapOptions??{}),i=n.budget??2e3,a=n.context!==void 0&&n.context!==null?z(n.context):C(null),l=ut(o.entries.cache);o.entries.subscribe(f=>{for(let p of f)p[0]===A&&(l=ut(p[1]))});let d=we(r,f=>e(f,l));if(dt(d,f=>{Sr(o,f)}),n.evict){let f=new Map,p=$([o.entries],([g])=>{let h=[],y=ut(g);for(let v of f.keys())y.has(v)||(f.get(v)(),f.delete(v));for(let[v,b]of y){let T=n.evict(v,b);if(hs(T)){if(!f.has(v)){let w=dt(T,k=>{k===!0&&o.has(v)&&o.delete(v)});f.set(v,w)}continue}if(typeof T=="boolean"){T&&h.push(v);continue}throw new TypeError("distill evict() must return boolean or Node<boolean>")}return h});dt(p,g=>{for(let h of g)o.delete(h)})}let u=n.consolidateTrigger!==void 0&&n.consolidateTrigger!==null;if(n.consolidate&&u){let f=z(n.consolidateTrigger),p=we(f,()=>n.consolidate(l));dt(p,g=>{Sr(o,g)})}let c=$([o.entries,a],([f,p])=>{let g=[...ut(f).entries()].map(([v,b])=>({key:v,value:b,score:n.score(b,p),cost:n.cost(b)}));g.sort((v,b)=>b.score-v.score);let h=[],y=i;for(let v of g)v.cost<=y&&(h.push({key:v.key,value:v.value,score:v.score}),y-=v.cost);return h}),m=$([o.entries],([f])=>ut(f).size);return Or(c),Or(m),{store:o,compact:c,size:m}}Me();ue();fe();var wn=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 i=0;i<r;i++)this._buf[i]=e[o+i];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 i=r-o;if(this._maxSize===void 0)return this._buf.slice(o,r);let s=new Array(i);for(let a=0;a<i;a++)s[a]=this._buf[(this._head+o+a)%this._maxSize];return s}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}_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 Cr(t){return t.subscribe(()=>{})}var gs=64;function Le(t,e={}){let{name:n,maxSize:r,versioning:o,backend:i}=e,s=i??new wn(t,r),a=C(s.toArray(),{name:n,describeKind:"state",equals:(p,g)=>p===g,...o!=null?{versioning:o}:{}});function l(){let p=s.toArray();re(()=>{a.down([[J]]),a.down([[A,p]])})}let d=new Map,u=new Map;function c(p,g){return`${p}:${g===void 0?"END":g}`}function m(p){if(p.size<gs)return;let g=p.keys().next();if(g.done)return;let h=p.get(g.value);h!==void 0&&h.dispose(),p.delete(g.value)}function f(p){let g=s.version;try{return p()}finally{s.version!==g&&l()}}return{entries:a,get size(){return s.size},at(p){return s.at(p)},append(p){f(()=>s.append(p))},appendMany(p){p.length!==0&&f(()=>s.appendMany(p))},clear(){f(()=>s.clear())},trimHead(p){f(()=>s.trimHead(p))},tail(p){if(!Number.isInteger(p)||p<0)throw new RangeError(`tail: n must be a non-negative integer (got ${p})`);let g=d.get(p);if(g!==void 0)return d.delete(p),d.set(p,g),g.node;m(d);let h=$([a],([v])=>{let b=v;return p===0||b.length===0?[]:b.slice(Math.max(0,b.length-p))},{initial:s.tail(p),describeKind:"derived"}),y=Cr(h);return d.set(p,{node:h,dispose:y}),h},slice(p,g){if(!Number.isInteger(p)||p<0)throw new RangeError(`slice: start must be a non-negative integer (got ${p})`);if(g!==void 0&&(!Number.isInteger(g)||g<0))throw new RangeError(`slice: stop must be a non-negative integer or undefined (got ${g})`);let h=c(p,g),y=u.get(h);if(y!==void 0)return u.delete(h),u.set(h,y),y.node;m(u);let v=$([a],([T])=>{let w=T;return g===void 0?w.slice(p):w.slice(p,g)},{initial:s.slice(p,g),describeKind:"derived"}),b=Cr(v);return u.set(h,{node:v,dispose:b}),v},disposeTail(p){let g=d.get(p);return g===void 0?!1:(g.dispose(),d.delete(p),!0)},disposeSlice(p,g){let h=c(p,g),y=u.get(h);return y===void 0?!1:(y.dispose(),u.delete(h),!0)},disposeAllViews(){for(let p of d.values())p.dispose();d.clear();for(let p of u.values())p.dispose();u.clear()},dispose(){for(let p of d.values())p.dispose();d.clear();for(let p of u.values())p.dispose();u.clear()}}}Xe();ye();Ee();_t();Me();pe();it();ue();it();Re();function Ct(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;default:return new Set(["type","deps"])}}function ys(t){return t._describeKind!=null?t._describeKind:t._deps.length>0?"derived":t._fn!=null?"producer":"state"}function bs(t){let e={};for(let[n,r]of Object.entries(t.meta))try{e[n]=r.cache}catch{}return e}function kn(t,e){let n=e==null,r=!n&&e!=null?[...e].filter(d=>d.startsWith("meta.")).map(d=>d.slice(5)):null,o=n||e.has("meta")||r!=null&&r.length>0,i="state",s=[];t instanceof oe&&(i=ys(t),s=t._deps.map(d=>d.node.name??""));let a={type:i,deps:s};(n||e.has("status"))&&(a.status=t.status);let l=t instanceof oe?t._guard:void 0;if(o){let d={...bs(t)};if(l!=null&&d.access===void 0&&(d.access=cn(l)),r!=null&&r.length>0&&!e.has("meta")){let u={};for(let c of r)c in d&&(u[c]=d[c]);a.meta=u}else a.meta=d}if(t.name!=null&&(a.name=t.name),n||e.has("value")){t.status==="sentinel"&&(a.sentinel=!0);try{a.value=t.cache}catch{}}if((n||e.has("v"))&&t.v!=null){let d={id:t.v.id,version:t.v.version};"cid"in t.v&&(d.cid=t.v.cid,d.prev=t.v.prev),a.v=d}return(n||e.has("guard"))&&l!=null&&(a.guard=cn(l)),(n||e.has("lastMutation"))&&t.lastMutation!=null&&(a.lastMutation=t.lastMutation),a}Re();fe();ye();Ee();var ct=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}};un();function Lr(t,e,n,r={}){let o=e in t.nodes,i=n in t.nodes;if(!o)return Lt(e,n,"no-such-from");if(!i)return Lt(e,n,"no-such-to");let s=r.maxDepth;if(s!=null&&(!Number.isInteger(s)||s<0))throw new Error("explainPath: maxDepth must be an integer >= 0");if(e===n){if(r.findCycle===!0){let d=vs(t,e,r);if(d!=null)return d}let l=Dt(e,t.nodes[e],0,r);return It(e,n,[l])}if(s===0)return Lt(e,n,"no-path");let a=Dr(t,e,n,s);return a.found?It(e,n,Ir(t,a.pathOrder,r)):Lt(e,n,a.truncated?"max-depth-exceeded":"no-path")}function Dr(t,e,n,r){let o=new Map,i=[{path:n,depth:0}],s=new Set([n]),a=0,l=!1;for(;a<i.length;){let c=i[a++];if(c.path===e)break;if(r!=null&&c.depth>=r){let g=t.nodes[c.path];g?.deps&&g.deps.length>0&&(l=!0);continue}let m=t.nodes[c.path];if(m==null)continue;let f=m.deps??[],p=new Map;for(let g=0;g<f.length;g++){let h=f[g];if(!h)continue;let y=p.get(h);y==null&&(y=[],p.set(h,y)),y.push(g)}for(let[g,h]of p)s.has(g)||(s.add(g),o.set(g,{from:c.path,depIndices:h}),i.push({path:g,depth:c.depth+1}))}if(!o.has(e))return{found:!1,pathOrder:[],truncated:l};let d=[{path:e}],u=e;for(;u!==n;){let c=o.get(u);if(c==null)return{found:!1,pathOrder:[],truncated:!1};d[d.length-1].depIndices=c.depIndices,d.push({path:c.from}),u=c.from}return{found:!0,pathOrder:d,truncated:!1}}function vs(t,e,n){let r=t.nodes[e];if(r==null)return null;let o=r.deps??[],i=[];for(let a=0;a<o.length;a++)o[a]===e&&i.push(a);if(i.length>0){let a=Dt(e,r,0,n);a.dep_index=i[0];let l=Dt(e,r,1,n);return It(e,e,[a,l])}let s=null;for(let a=0;a<o.length;a++){let l=o[a];if(!l||l===e)continue;let d=Dr(t,l,e,n.maxDepth);d.found&&(s==null||d.pathOrder.length<s.pathOrder.length)&&(s=d,s={found:!0,pathOrder:[{path:e,depIndices:[a]},...d.pathOrder],truncated:!1})}return s==null?null:It(e,e,Ir(t,s.pathOrder,n))}function Ir(t,e,n){return e.map((r,o)=>{let i=t.nodes[r.path],s=Dt(r.path,i,o,n);return r.depIndices!=null&&r.depIndices.length>0&&(s.dep_index=r.depIndices[0],r.depIndices.length>1&&(s.dep_indices=[...r.depIndices])),s})}function Dt(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 i=r.annotations?.get(t)??e.annotation;i!=null&&(o.annotation=i);let s=r.lastMutations?.get(t)??e.lastMutation;return s!=null&&(o.lastMutation=s),o}function It(t,e,n){return Pr(t,e,!0,"ok",n)}function Lt(t,e,n){return Pr(t,e,!1,n,[])}function Pr(t,e,n,r,o){let i=Ts(t,e,n,r,o);return{from:t,to:e,found:n,reason:r,steps:o,text:i,toJSON(){return{from:t,to:e,found:n,reason:r,steps:o}}}}function Ts(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 i=[`Causal path: ${t} \u2192 ${e} (${o.length} step(s))`];for(let s of o){let l=` ${s.hop===0?"\xB7":"\u2193"} ${s.path} (${s.type}${s.status?`/${s.status}`:""})`;if(i.push(l),"value"in s&&i.push(` value: ${ws(s.value)}`),s.annotation!=null&&i.push(` annotation: ${s.annotation}`),s.lastMutation!=null){let d=s.lastMutation.actor;i.push(` actor: ${d.type}${d.id?`:${d.id}`:""}`)}}return i.join(`
|
|
2
|
-
`)}function ws(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)}}Re();var ie={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},ks=Symbol.for("sizeof");function Gr(t){let e=new WeakSet,n=new WeakSet,r=[t],o=0;for(;r.length>0;){let i=r.pop();o+=_s(i,e,n,r)}return o}function _s(t,e,n,r){if(t==null)return 0;switch(typeof t){case"number":return ie.number;case"boolean":return ie.boolean;case"string":return ie.string+t.length*2;case"bigint":return ie.bigint+xs(t);case"symbol":return ie.symbol;case"function":return e.has(t)?0:(e.add(t),ie.function);case"undefined":return 0}let i=t;if(e.has(i))return 0;e.add(i);let s=i[ks];if(typeof s=="function")try{let d=s.call(i);if(typeof d=="number"&&Number.isFinite(d))return d}catch{}if(i instanceof Date)return ie.date;if(i instanceof RegExp)return ie.regexp+i.source.length*2;if(i instanceof Error){let d=i.message?i.message.length*2:0,u=i.stack?i.stack.length*2:0;return ie.error+d+u}if(typeof URL<"u"&&i instanceof URL)return ie.url+i.href.length*2;if(typeof Promise<"u"&&i instanceof Promise)return ie.promise;if(i instanceof WeakMap)return ie.weakmap;if(i instanceof WeakSet)return ie.weakset;if(i instanceof Map){let d=ie.map;for(let[u,c]of i)d+=ie.mapEntry,r.push(u),r.push(c);return d}if(i instanceof Set){let d=ie.set;for(let u of i)d+=ie.setEntry,r.push(u);return d}if(Array.isArray(i)){let d=ie.array+i.length*8;for(let u of i)r.push(u);return d}if(i instanceof ArrayBuffer)return n.has(i)?0:(n.add(i),i.byteLength);if(ArrayBuffer.isView(i)){let d=i;return n.has(d.buffer)?48:(n.add(d.buffer),d.buffer.byteLength+48)}let a=ie.object,l=Object.keys(i);for(let d of l){a+=ie.string+d.length*2;try{r.push(i[d])}catch{}}return a}function xs(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 Fr(t,e){let n=e?.topN??10,r=t.describe({detail:"standard"}),o=[],i=t._collectObserveTargets;typeof i=="function"&&i.call(t,"",o);let s=new Map;for(let[m,f]of o)s.set(m,f);let a=[];for(let[m,f]of Object.entries(r.nodes)){let p=s.get(m),g=p instanceof oe?p:null,h=g?Gr(g.cache):0,y=g?g._sinkCount:0,v=f.deps?.length??0,b=f.type==="effect"&&y===0,T=y===0?f.type==="effect"?"orphan-effect":f.type==="derived"?"idle-derived":f.type==="producer"?"idle-producer":null:null;a.push({path:m,type:f.type,status:f.status??"unknown",valueSizeBytes:h,subscriberCount:y,depCount:v,isOrphanEffect:b,orphanKind:T})}let l=a.reduce((m,f)=>m+f.valueSizeBytes,0),d=(m,f)=>[...a].sort(f??((p,g)=>g[m]-p[m])).slice(0,n),u=a.filter(m=>m.orphanKind!=null),c=a.filter(m=>m.isOrphanEffect);return{nodeCount:a.length,edgeCount:r.edges.length,subgraphCount:r.subgraphs.length,nodes:a,totalValueSizeBytes:l,hotspots:{byValueSize:d("valueSizeBytes"),bySubscriberCount:d("subscriberCount"),byDepCount:d("depCount")},orphans:u,orphanEffects:c}}var Q="::",he="__meta__",Ve=1;function $r(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 i=o.value;t.delete(i);try{i()}catch(s){console.error(`[Graph "${e}".destroy] disposer threw:`,s)}}}function Rs(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(`
|
|
3
|
-
`)}function Br(t){if(t.version!==Ve)throw new Error(`unsupported snapshot version ${String(t.version)} (expected ${Ve})`);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 Ms(t,e){let n=new WeakMap,r=(o,i)=>{if(Object.is(o,i))return!0;if(o==null||i==null||typeof o!="object"||typeof i!="object")return!1;let s=n.get(o);if(s==null&&(s=new WeakSet,n.set(o,s)),s.has(i))return!0;s.add(i);let a=o.constructor,l=i.constructor;if(a!==l)return!1;if(o instanceof Date)return o.getTime()===i.getTime();if(o instanceof RegExp)return o.source===i.source&&o.flags===i.flags;if(Array.isArray(o)){let m=i;if(o.length!==m.length)return!1;for(let f=0;f<o.length;f++)if(!r(o[f],m[f]))return!1;return!0}if(o instanceof Map){let m=i;if(o.size!==m.size)return!1;for(let[f,p]of o)if(!m.has(f)||!r(p,m.get(f)))return!1;return!0}if(o instanceof Set){let m=i;if(o.size!==m.size)return!1;for(let f of o){let p=!1;for(let g of m)if(r(f,g)){p=!0;break}if(!p)return!1}return!0}if(ArrayBuffer.isView(o)){let m=o,f=i;if(m.length!==f.length)return!1;for(let p=0;p<m.length;p++)if(m[p]!==f[p])return!1;return!0}let d=Object.keys(o),u=Object.keys(i);if(d.length!==u.length)return!1;let c=new Set(u);for(let m of d)if(!c.has(m)||!r(o[m],i[m]))return!1;return!0};return r(t,e)}function xn(t){if(t===null||typeof t!="object")return t;if(Array.isArray(t))return t.map(xn);let e=t,n=Object.keys(e).sort(),r={};for(let o of n)r[o]=xn(e[o]);return r}function Ns(t){return t.replaceAll("\\","\\\\").replaceAll('"','\\"')}function Es(t){return t.replaceAll("\\","\\\\").replaceAll('"','\\"')}function Os(t){return t==="TD"?"down":t==="BT"?"up":t==="RL"?"left":"right"}function Vr(t){let e=new Set,n=[];function r(o,i){let s=`${o}\0${i}`;e.has(s)||(e.add(s),n.push([o,i]))}for(let[o,i]of Object.entries(t.nodes)){let s=i.deps;if(s)for(let a of s)r(a,o)}for(let o of t.edges)r(o.from,o.to);return n}function Kr(t){if(t===void 0)return"LR";if(t==="TD"||t==="LR"||t==="BT"||t==="RL")return t;throw new Error(`invalid diagram direction ${String(t)}; expected one of: TD, LR, BT, RL`)}function Ss(t,e){let n=e.includeEdges??!0,r=e.includeSubgraphs??!0,{expand:o,...i}=t,s={...i,edges:n?t.edges:[],subgraphs:r?t.subgraphs:[]},a=JSON.stringify(xn(s),null,e.indent??2);return e.logger?.(a),a}function As(t,e){let n=e.includeEdges??!0,r=e.includeSubgraphs??!0,o=[];o.push(`Graph ${t.name}`),o.push("Nodes:");for(let s of Object.keys(t.nodes).sort()){let a=t.nodes[s];o.push(`- ${s} (${a.type}/${a.status}): ${Gt(a.value)}`)}if(n){o.push("Edges:");for(let s of t.edges)o.push(`- ${s.from} -> ${s.to}`)}if(r){o.push("Subgraphs:");for(let s of t.subgraphs)o.push(`- ${s}`)}let i=o.join(`
|
|
4
|
-
`);return e.logger?.(i),i}function Ur(t,e){let n=Kr(e.direction),r=Object.keys(t.nodes).sort(),o=new Map;for(let s=0;s<r.length;s+=1)o.set(r[s],`n${s}`);let i=[`flowchart ${n}`];for(let s of r){let a=o.get(s);i.push(` ${a}["${Ns(s)}"]`)}for(let[s,a]of Vr(t)){let l=o.get(s),d=o.get(a);!l||!d||i.push(` ${l} --> ${d}`)}return i.join(`
|
|
5
|
-
`)}function Cs(t,e){let n=Ur(t,e);return zr(n)}function zr(t,e){let n=e?.theme??"default",r=e?.autoSync??!0,i=JSON.stringify({code:t,mermaid:{theme:n},autoSync:r}),s=new TextEncoder().encode(i),a="";for(let d=0;d<s.length;d++)a+=String.fromCharCode(s[d]);return`https://mermaid.live/edit#base64:${globalThis.btoa(a).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}`}function Ls(t,e){let n=Kr(e.direction),r=Object.keys(t.nodes).sort(),o=new Map;for(let s=0;s<r.length;s+=1)o.set(r[s],`n${s}`);let i=[`direction: ${Os(n)}`];for(let s of r){let a=o.get(s);i.push(`${a}: "${Es(s)}"`)}for(let[s,a]of Vr(t)){let l=o.get(s),d=o.get(a);!l||!d||i.push(`${l} -> ${d}`)}return i.join(`
|
|
6
|
-
`)}function Ds(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Pt(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 i=t.slice(n+1,o);i.startsWith("!")&&(i=`^${i.slice(1)}`),i=i.replace(/\\/g,"\\\\"),e+=`[${i}]`,n=o;continue}e+=Ds(r)}return e+="$",new RegExp(e)}var Is={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"},Ps={data:"",dirty:"",resolved:"",invalidate:"",pause:"",resume:"",complete:"",error:"",teardown:"",derived:"",path:"",reset:""};function Gt(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 Gs(t){return t==="none"?Ps:t==="ansi"||t==null?Is:{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 jr(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 Fs(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 _n(t,e,n){if(t==="")throw new Error(`Graph "${e}": ${n} name must be non-empty`);if(t.includes(Q))throw new Error(`Graph "${e}": ${n} "${t}" must not contain '${Q}' (path separator)`);if(t===he)throw new Error(`Graph "${e}": ${n} name "${he}" is reserved for meta companion paths`);Fs(t,e,n)}function $s(t,e){if(t==="")throw new Error(`Graph "${e}": resolve path must be non-empty`);let n=t.split(Q);for(let r of n)if(r==="")throw new Error(`Graph "${e}": resolve path has empty segment`);return n}function Bs(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 Hr(t){for(let e of t._mounts.values())Hr(e);for(let e of t._nodes.values())try{e.down([[le]],{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;_topology;_topologyEmitters=new Set;constructor(e,n){if(e==="")throw new Error("Graph name must be non-empty");if(e.includes(Q))throw new Error(`Graph name must not contain '${Q}' (got "${e}")`);if(e===he)throw new Error(`Graph name "${he}" is reserved for meta companion paths`);this.name=e,this.opts=Object.freeze({...n??{}}),this.config=n?.config??Ye,this._traceRing=new ct(n?.traceCapacity??1e3),n?.versioning!=null&&this.setVersioning(n.versioning)}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=de(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)}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 i=o,s=n?.annotation;if(_n(i,this.name,"add"),this._mounts.has(i))throw new Error(`Graph "${this.name}": name "${i}" is already a mount point`);if(this._nodes.has(i))throw new Error(`Graph "${this.name}": node "${i}" already exists`);let a=this._nodeToName.get(e);if(a!==void 0)throw new Error(`Graph "${this.name}": node instance already registered as "${a}"`);return this._nodes.set(i,e),this._nodeToName.set(e,i),this._emitTopology({kind:"added",name:i,nodeKind:"node"}),s!=null&&(this._annotations.set(i,s),this.config.inspectorEnabled&&this._traceRing.push({path:i,annotation:s,timestamp_ns:D()})),e}setVersioning(e){if(e!=null)for(let n of this._nodes.values())n instanceof oe&&n._applyVersioning(e)}remove(e){_n(e,this.name,"remove");let n=this._mounts.get(e);if(n){let i={kind:"mount",nodes:[],mounts:[]},s=[];n._collectObserveTargets("",s);for(let[a,l]of s)a.includes(`${Q}${he}${Q}`)||i.nodes.push(a);return i.nodes.sort(),i.mounts.push(e),i.mounts.push(...n._collectSubgraphs(`${e}${Q}`)),this._mounts.delete(e),n._parent=void 0,Hr(n),this._emitTopology({kind:"removed",name:e,nodeKind:"mount",audit:i}),i}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([[le]],{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 i=Pt(e);return s=>i.test(s)})(),r={kind:"mount",nodes:[],mounts:[]},o=[...this._nodes.keys(),...this._mounts.keys()].filter(i=>n(i));for(let i of o){let s=this.remove(i);r.nodes.push(...s.nodes),r.mounts.push(...s.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(Q))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([[A,n]],{actor:r?.actor,internal:o,delivery:"write"})}setAll(e,n){let r=Symbol.iterator in e?e:Object.entries(e);re(()=>{for(let[o,i]of r)this.set(o,i,n)})}invalidate(e,n){let r=n?.internal===!0;this.node(e).down([[ve]],{actor:n?.actor,internal:r,delivery:"write"})}error(e,n,r){let o=r?.internal===!0;this.node(e).down([[O,n]],{actor:r?.actor,internal:o,delivery:"write"})}complete(e,n){let r=n?.internal===!0;this.node(e).down([[P]],{actor:n?.actor,internal:r,delivery:"write"})}edges(e){let n=e?.recursive===!0,r=new Map;if(!n){for(let[l,d]of this._nodes)r.set(d,l);let a=[];for(let[l,d]of this._nodes)if(d instanceof oe)for(let u of d._deps){let c=r.get(u.node);c!=null&&a.push([c,l])}return a.sort((l,d)=>l[0]<d[0]?-1:l[0]>d[0]?1:l[1]<d[1]?-1:l[1]>d[1]?1:0),a}let o=[];this._collectObserveTargets("",o);let i=new Map;for(let[a,l]of o)i.set(l,a);let s=[];for(let[a,l]of o)if(l instanceof oe)for(let d of l._deps){let u=i.get(d.node);u!=null&&s.push([u,a])}return s.sort((a,l)=>a[0]<l[0]?-1:a[0]>l[0]?1:a[1]<l[1]?-1:a[1]>l[1]?1:0),s}mount(e,n){if(_n(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(n===this)throw new Error(`Graph "${this.name}": cannot mount a graph into itself`);if(n._parent!=null)throw new Error(`Graph "${this.name}": this child graph is already mounted on "${n._parent.name}"`);for(let r=this;r!=null;r=r._parent)if(r===n)throw new Error(`Graph "${this.name}": mount("${e}", \u2026) would create a mount cycle`);return this._mounts.set(e,n),n._parent=this,this._emitTopology({kind:"added",name:e,nodeKind:"mount"}),n}resolve(e){let n=$s(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 a=this._nodes.get(r);if(a)return a;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 i=this._nodes.get(r);if(i&&o.length>0&&o[0]===he)return this._resolveMetaChainFromNode(i,o,n.join(Q));let s=this._mounts.get(r);if(!s)throw this._nodes.has(r)?new Error(`Graph "${this.name}": "${r}" is a node; trailing path "${o.join(Q)}" is invalid`):new Error(`Graph "${this.name}": unknown mount or node "${r}"`);return s.resolve(o.join(Q))}_resolveMetaChainFromNode(e,n,r){let o=e,i=0,s=[...n];for(;i<s.length;){if(s[i]!==he)throw new Error(`Graph "${this.name}": expected ${he} segment in meta path "${r}"`);if(i+1>=s.length)throw new Error(`Graph "${this.name}": meta path requires a key after ${he} in "${r}"`);let a=s[i+1],l=o.meta[a];if(!l)throw new Error(`Graph "${this.name}": unknown meta "${a}" in path "${r}"`);o=l,i+=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 l of this._mounts.values())l._signalDeliver(e,n,r,o);let s=n.internal===!0?{internal:!0}:{actor:n.actor,delivery:"signal"},a=Bs(e,this.config);for(let l of[...this._nodes.keys()].sort()){let d=this._nodes.get(l);if(!r.has(d)){r.add(d);try{d.down(e,s)}catch(u){if(u instanceof Te)throw u;o.push(u)}a.length!==0&&this._signalMetaSubtree(d,a,r,s,o)}}}_signalMetaSubtree(e,n,r,o,i){for(let s of Object.keys(e.meta).sort()){let a=e.meta[s];if(!r.has(a)){r.add(a);try{a.down(n,o)}catch(l){if(l instanceof Te)throw l;i.push(l)}this._signalMetaSubtree(a,n,r,o,i)}}}describe(e){if(e?.reactive===!0)return this._describeReactive(e);let n=e?.actor,r=e?.filter,o=Ct(e?.detail,e?.fields),i=e?.format==="spec",s=i?Ct("minimal"):o,a=[];this._collectObserveTargets("",a);let l=new Map;for(let[k,_]of a)l.set(_,k);let d=[];{let k=a.map(([,x])=>x),_=new Set(l.values()),N=0;for(;k.length>0;){let x=k.shift();if(x instanceof oe)for(let V of x._deps){let L=V.node;if(l.has(L))continue;let I=L.name??"",R=I;if(!R||_.has(R))if(I){let K=2;for(;_.has(`${I}#${K}`);)K++;R=`${I}#${K}`}else for(R=`__internal__/${N++}`;_.has(R);)R=`__internal__/${N++}`;l.set(L,R),_.add(R),d.push([R,L]),k.push(L)}}}let u=[...a,...d],c={};for(let[k,_]of u){if(n!=null&&!_.allowsObserve(n))continue;let N=kn(_,s),x=_ instanceof oe?_._deps.map(R=>l.get(R.node)??R.node.name??""):[],{name:V,...L}=N,I={...L,deps:x};if(!i){let R=this._annotations.get(k);R!=null&&(I.annotation=R)}if(r!=null)if(typeof r=="function"){let R=r;if(!(R.length>=2?R(k,I):R(I)))continue}else{let R=!0;for(let[K,W]of Object.entries(r)){let E=K==="deps_includes"?"depsIncludes":K==="meta_has"?"metaHas":K;if(E==="depsIncludes"){if(!I.deps.includes(String(W))){R=!1;break}continue}if(E==="metaHas"){if(!Object.hasOwn(I.meta??{},String(W))){R=!1;break}continue}if(I[E]!==W){R=!1;break}}if(!R)continue}c[k]=I}let m=new Set(Object.keys(c)),f=[];for(let[k,_]of u)if(_ instanceof oe)for(let N of _._deps){let x=l.get(N.node);x!=null&&f.push([x,k])}f.sort((k,_)=>k[0]<_[0]?-1:k[0]>_[0]?1:k[1]<_[1]?-1:k[1]>_[1]?1:0);let p=f.map(([k,_])=>({from:k,to:_}));(n!=null||r!=null)&&(p=p.filter(k=>m.has(k.from)&&m.has(k.to)));let g=this._collectSubgraphs(""),h=n!=null||r!=null?g.filter(k=>{let _=`${k}${Q}`;return[...m].some(N=>N===k||N.startsWith(_))}):g,y=this,v=e,b={name:this.name,nodes:c,edges:p,subgraphs:h,expand(k){let _={...v,format:void 0};return Array.isArray(k)?(_.fields=k,_.detail=void 0):(_.detail=k,_.fields=void 0),y.describe(_)}},T=e??{},w=T.format;return w==="json"?Ss(b,T):w==="pretty"?As(b,T):w==="mermaid"?Ur(b,T):w==="mermaid-url"?Cs(b,T):w==="d2"?Ls(b,T):b}_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}${Q}`))}return n}resourceProfile(e){return Fr(this,e)}reachable(e,n,r={}){return r.withDetail===!0?Rn(this.describe(),e,n,{...r,withDetail:!0}):Rn(this.describe(),e,n,r)}explain(e,n,r){return r?.reactive===!0?this._explainReactive(e,n,r):this._explainStatic(e,n,r)}_explainStatic(e,n,r){let o=this.describe({detail:"full"}),i=new Map(this._annotations),s=new Map;for(let[a,l]of Object.entries(o.nodes))l.lastMutation!=null&&s.set(a,l.lastMutation);return Lr(o,e,n,{...r?.maxDepth!=null?{maxDepth:r.maxDepth}:{},...r?.findCycle===!0?{findCycle:!0}:{},annotations:i,lastMutations:s})}_describeReactive(e){let n={...e,reactive:!1},r=e.reactiveName??"describe",o=0,i=C(o,{name:`${r}_version`}),s=this.observe({timeline:!0,structured:!0}),a=!1,l=!1,d=()=>{a||l||(a=!0,st(()=>{a=!1,!l&&(o+=1,i.emit(o))}))},u=s.onEvent(h=>{let y=h.type;y!=="data"&&y!=="error"&&y!=="complete"&&y!=="teardown"||d()}),c=[],m=new WeakSet,f=h=>{if(m.has(h)||l)return;m.add(h);let y=h.topology.subscribe(v=>{for(let b of v){if(b[0]!==A)continue;let T=b[1];if(d(),T.kind==="added"&&T.nodeKind==="mount"){let w=h._mounts.get(T.name);w!=null&&f(w)}}});c.push(y);for(let v of h._mounts.keys()){let b=h._mounts.get(v);b!=null&&f(b)}};f(this);let p;try{p=$([i],()=>this.describe(n),{name:r,describeKind:"derived",meta:{domain:"audit",kind:"describe"},equals:(h,y)=>h===y})}catch(h){u();for(let y of c)y();throw s.dispose(),h}let g=ne(p);return{node:p,dispose(){l=!0,u();for(let h of c)h();c.length=0,s.dispose(),g()}}}_explainReactive(e,n,r){let o=0,i=C(o,{name:"explain_version"}),s=this.observe({timeline:!0,structured:!0}),a=!1,l=!1,d=s.onEvent(f=>{let p=f.type;p!=="data"&&p!=="error"&&p!=="complete"&&p!=="teardown"||a||l||(a=!0,st(()=>{a=!1,!l&&(o+=1,i.emit(o))}))}),u={...r?.maxDepth!=null?{maxDepth:r.maxDepth}:{},...r?.findCycle===!0?{findCycle:!0}:{}},c;try{c=$([i],()=>this._explainStatic(e,n,u),{name:r?.name??"explain",describeKind:"derived",meta:{domain:"audit",kind:"explain_path",from:e,to:n},equals:(f,p)=>f.found===p.found&&f.reason===p.reason&&f.steps.length===p.steps.length&&js(f.steps,p.steps)})}catch(f){throw d(),s.dispose(),f}let m=ne(c);return{node:c,dispose(){l=!0,d(),s.dispose(),m()}}}_pathsMatching(e){let n=Pt(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}${Q}${r}`;this._mounts.get(r)._collectObserveTargets(o,n)}for(let r of[...this._nodes.keys()].sort()){let o=this._nodes.get(r),i=e===""?r:`${e}${Q}${r}`;n.push([i,o]),this._appendMetaObserveTargets(i,o,n)}}_appendMetaObserveTargets(e,n,r){for(let o of Object.keys(n.meta).sort()){let i=n.meta[o],s=`${e}${Q}${he}${Q}${o}`;r.push([s,i]),this._appendMetaObserveTargets(s,i,r)}}observe(e,n){let r=typeof e=="string",i=jr(r?n:e),s=i.structured===!0||i.timeline===!0||i.causal===!0||i.derived===!0||i.detail==="minimal"||i.detail==="full"||i.format!=null,a=i.actor;if(r){let u=e,c=this.resolve(u);if(a!=null&&!c.allowsObserve(a))throw new Te({actor:a,action:"observe",nodeName:u});return s?this._buildStructuredObserver([[u,c]],i,"one"):{subscribe(m){return c.subscribe(m)},up(m){try{c.up?.(m)}catch(f){if(f instanceof Te)return;throw f}}}}let l=[];this._collectObserveTargets("",l),l.sort((u,c)=>u[0]<c[0]?-1:u[0]>c[0]?1:0);let d=a==null?l:l.filter(([,u])=>u.allowsObserve(a));return s?this._buildStructuredObserver(d,i,"all"):{subscribe:u=>{let c=d.map(([m,f])=>f.subscribe(p=>{u(m,p)}));return()=>{for(let m of c)m()}},up:(u,c)=>{try{this.resolve(u).up?.(c)}catch(m){if(m instanceof Te)return;throw m}}}}_buildStructuredObserver(e,n,r){let o=r==="one"?e[0]?.[0]:void 0,i=s=>{if(r==="one"&&o!=null){let u=this.resolve(o);return this._buildStructuredObserver([[o,u]],s,"one")}let a=[];this._collectObserveTargets("",a),a.sort((u,c)=>u[0]<c[0]?-1:u[0]>c[0]?1:0);let l=s.actor,d=l==null?a:a.filter(([,u])=>u.allowsObserve(l));return this._buildStructuredObserver(d,s,"all")};return this._createObserveResult(e,n,i)}_createObserveResult(e,n,r){let o=n.timeline===!0,i=n.causal===!0,s=n.derived===!0,a=n.detail==="minimal",l=this.config.inspectorEnabled,d=(i||s)&&l,u=n.maxEvents,c=u!=null&&u>0?new ct(u):null,m=[],f=new Set,p={},g=new Set,h=0,y=0,v=0,b=0,T=0,w=0,k=!1,_=!1,N=0,x=new Map,V=new Map,L=new Map,I=S=>{c?c.push(S):m.push(S);for(let B of f)B(S)},R=()=>o?{timestamp_ns:D(),in_batch:gt(),batch_id:N}:{},K=(S,B)=>{if(!(!d||!(S instanceof oe)))return S._setInspectorHook(X=>{if(X.kind==="dep_message")x.set(S,X.depIndex);else if(X.kind==="run"){let ae=X.batchData.map((G,te)=>G!=null&&G.length>0?G.at(-1):X.prevData[te]);V.set(S,ae);let H=X.batchData.map(G=>G!=null?[...G]:void 0);L.set(S,H),s&&I({type:"derived",path:B,dep_values:ae,dep_batches:H,...R()})}})},W=S=>{let B=x.get(S),X=V.get(S);if(!i||X==null)return{};let H=(B!=null&&B>=0&&S instanceof oe?S._deps[B]:void 0)?.node,G=H?.v,te=L.get(S);return{trigger_dep_index:B,trigger_dep_name:H?.name,...G!=null?{trigger_version:{id:G.id,version:G.version}}:{},dep_values:[...X],...te!=null?{dep_batches:te}:{}}},E=[],M=[];for(let[S,B]of e){let X=K(B,S);X&&E.push(X),M.push(B.subscribe(ae=>{N++;for(let H of ae){let G=H[0],te=R();if(G===A){p[S]=H[1];let xe=B instanceof oe?B.lastMutation?.actor??Je:Je;I({type:"data",path:S,data:H[1],actor:xe,...te,...W(B)})}else if(a)G===J?h++:G===U?y++:G===ve?v++:G===ke?b++:G===Ne?T++:G===le?w++:G===P&&!g.has(S)?k=!0:G===O&&(_=!0,g.add(S));else if(G===J)h++,I({type:"dirty",path:S,...te});else if(G===U)y++,I({type:"resolved",path:S,...te,...W(B)});else if(G===ve)v++,I({type:"invalidate",path:S,...te});else if(G===ke)b++,I({type:"pause",path:S,lockId:H[1],...te});else if(G===Ne)T++,I({type:"resume",path:S,lockId:H[1],...te});else if(G===P)g.has(S)||(k=!0),I({type:"complete",path:S,...te});else if(G===O){_=!0,g.add(S);let xe=B instanceof oe?B.lastMutation?.actor??Je:Je;I({type:"error",path:S,data:H[1],actor:xe,...te})}else G===le&&(w++,I({type:"teardown",path:S,...te}))}}))}let F=!1,j=()=>{if(!F){F=!0;for(let S of M)S();for(let S of E)S();for(let S of q)S({value:void 0,done:!0});q.length=0}},Y=[],q=[];f.add(S=>{let B=q.shift();B?B({value:S,done:!1}):Y.push(S)});let be={get values(){return p},get dirtyCount(){return h},get resolvedCount(){return y},get invalidateCount(){return v},get pauseCount(){return b},get resumeCount(){return T},get teardownCount(){return w},get events(){return c?c.toArray():[...m]},get anyCompletedCleanly(){return k},get anyErrored(){return _},get completedWithoutErrors(){return k&&!_},onEvent(S){return f.add(S),()=>f.delete(S)},dispose:j,expand(S){j();let B={...n};return typeof S=="string"?B.detail=S:Object.assign(B,S),r(jr(B))},[Symbol.asyncIterator](){return{next(){return Y.length>0?Promise.resolve({value:Y.shift(),done:!1}):F?Promise.resolve({value:void 0,done:!0}):new Promise(S=>q.push(S))},return(){return j(),Promise.resolve({value:void 0,done:!0})}}}};return n.format!=null&&this._attachFormatLogger(be,n),be}_attachFormatLogger(e,n){let r=n.format;if(r==null)return;let o=n.logger??(p=>console.log(p)),i=n.includeTypes?new Set(n.includeTypes):null,s=n.excludeTypes?new Set(n.excludeTypes):null,a=i==null&&s==null?()=>!0:p=>(i==null||i.has(p))&&(s==null||!s.has(p)),l=Gs(n.theme),d=r==="stage-log"?D():0,u=p=>p==null?"":n.stageLabels?.[p]??p,c=(p,g)=>p.length>g?`${p.slice(0,g-1)}\u2026`:p,m=p=>p.type==="data"||p.type==="error"?c(Gt(p.data),120):"",f=p=>{if(r==="stage-log"){let _=(D()-d)/1e9,N=u(p.path).padEnd(9);if(p.type==="data"){let x=m(p);return`[${_.toFixed(3)}s] ${N} \u2190${x?` ${x}`:""}`}if(p.type==="error"){let x=m(p);return`[${_.toFixed(3)}s] ${N} \u2717${x?` ${x}`:""}`}return p.type==="complete"?`[${_.toFixed(3)}s] ${N} \u25A0 complete`:`[${_.toFixed(3)}s] ${N} ${p.type}`}if(r==="json")try{return JSON.stringify(p)}catch{return JSON.stringify({type:p.type,path:p.path,data:"[unserializable]"})}let g=l[p.type]??"",h=p.path?`${l.path}${p.path}${l.reset} `:"",y=p.type==="data"||p.type==="error",v=p.type==="pause"||p.type==="resume",b=y?` ${Gt(p.data)}`:v?` ${Gt(p.lockId)}`:"",T=p.type==="data"||p.type==="resolved"||p.type==="derived"?p:void 0,w=T?.trigger_dep_name!=null?` <- ${T.trigger_dep_name}`:T?.trigger_dep_index!=null?` <- #${T.trigger_dep_index}`:"",k=p.in_batch?" [batch]":"";return`${h}${g}${p.type.toUpperCase()}${l.reset}${b}${w}${k}`};e.onEvent(p=>{a(p.type)&&o(f(p),p)})}addDisposer(e){return this._disposers.add(e),()=>{this._disposers.delete(e)}}destroy(){$r(this._disposers,this.name),this.signal([[le]],{internal:!0}),$r(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}_destroyClearOnly(){for(let e of[...this._mounts.values()])e._parent=void 0,e._destroyClearOnly();this._mounts.clear(),this._nodes.clear(),this._parent=void 0}snapshot(e){let{expand:n,...r}=this.describe({detail:"full"}),o={};for(let a of Object.keys(r.nodes).sort()){let{lastMutation:l,guard:d,...u}=r.nodes[a];o[a]=u}let i=[...r.subgraphs].sort(),s={...r,version:1,nodes:o,subgraphs:i};if(e?.format==null)return s;if(e.format==="json-string")return JSON.stringify(s);if(e.format==="bytes"){if(e.codec==null)throw new Error("snapshot({format: 'bytes'}) requires a `codec` name");let a=this.config.lookupCodec(e.codec);if(a==null)throw new Error(`snapshot: codec "${e.codec}" is not registered on this graph's config. Call config.registerCodec(...) before creating nodes.`);return tr(a,a.encode(s))}throw new Error(`snapshot: unknown format "${String(e.format)}"`)}static decode(e,n){let r=n?.config??Ye,{codec:o,codecVersion:i,payload:s}=nr(e,r);return o.decode(s,i)}restore(e,n){if(Br(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(i=>Pt(i)),o=n?.includeProducers===!0;for(let i of Object.keys(e.nodes).sort()){if(r!==null&&!r.some(a=>a.test(i)))continue;let s=e.nodes[i];if(s!==void 0){if(!("value"in s)||s.value===void 0){"value"in s&&s.value===void 0&&n?.onError?.(i,new Error(`restore: slice.value is undefined for "${i}" (undefined is the global SENTINEL; not valid DATA)`));continue}if(!(s.type==="derived"||s.type==="effect")&&!(s.type==="producer"&&!o)){if(s.v!=null){let l=this.tryResolve(i)?.v;if(l!=null&&l.id===s.v.id&&l.version===s.v.version)continue}try{this.set(i,s.value)}catch(a){n?.onError?.(i,a)}}}}}static fromSnapshot(e,n){Br(e);let r=typeof n=="function"?n:n?.build,o=typeof n=="function"?void 0:n?.factories,i=new t(e.name);if(r)return r(i),i.restore(e),i;for(let f of[...e.subgraphs].sort((p,g)=>{let h=p.split(Q).length,y=g.split(Q).length;return h!==y?h-y:p<g?-1:p>g?1:0})){let p=f.split(Q),g=i;for(let h of p)g._mounts.has(h)||g.mount(h,new t(h)),g=g._mounts.get(h)}let s=o?Object.entries(o).map(([f,p])=>({re:Pt(f),factory:p})):[],a=f=>{for(let p of s)if(p.re.test(f))return p.factory},l=f=>{let p=f.split(Q),g=p.pop();if(g==null||g.length===0)throw new Error(`invalid snapshot path "${f}"`);let h=i;for(let y of p){let v=h._mounts.get(y);if(!v)throw new Error(`unknown mount "${y}" in path "${f}"`);h=v}return[h,g]},d=Object.entries(e.nodes).filter(([f])=>!f.includes(`${Q}${he}${Q}`)).sort((f,p)=>f[0]<p[0]?-1:f[0]>p[0]?1:0),u=new Map(d),c=new Map,m=!0;for(;u.size>0&&m;){m=!1;for(let[f,p]of[...u.entries()]){let g=p?.deps??[];if(!g.every(w=>c.has(w)))continue;let[h,y]=l(f),v={...p?.meta??{}},b=a(f),T;if(p?.type==="state")T=C(p.value,{meta:v});else{if(b==null)continue;T=b(y,{path:f,type:p.type,value:p.value,meta:v,deps:g,resolvedDeps:g.map(w=>c.get(w))})}h.add(T,{name:y}),c.set(f,T),u.delete(f),m=!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 i.restore(e),i}toJSON(){return this.snapshot()}attachStorage(e,n={}){let r=e.map(d=>({tier:d,debounceMs:Math.max(0,d.debounceMs??0),compactEvery:Math.max(1,d.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=(d,u)=>{if(d.disposed)return;let c=Rs(u.nodes);if(d.lastSnapshot!=null&&c!==""&&c===d.lastFingerprint)return;let m=d.seq+1,f=ge(),h=d.lastSnapshot==null||m%d.compactEvery===0?{mode:"full",snapshot:u,seq:m,timestamp_ns:f,format_version:Ve}:{mode:"diff",diff:Wr(d.lastSnapshot,u),seq:m,timestamp_ns:f,format_version:Ve};if(d.tier.filter&&!d.tier.filter(this.name,h))return;let y;try{y=d.tier.save(this.name,h)}catch(v){n.onError?.(v,d.tier);return}if(y&&typeof y.then=="function"){let T=(d.savePending??Promise.resolve()).then(()=>y,()=>y).then(()=>{d.disposed||(d.seq=m,d.lastSnapshot=u,d.lastFingerprint=c)},w=>{n.onError?.(w,d.tier)});d.savePending=T.finally(()=>{d.savePending===T&&(d.savePending=void 0)})}else d.seq=m,d.lastSnapshot=u,d.lastFingerprint=c},i=(d,u)=>{try{o(d,u)}catch(c){n.onError?.(c,d.tier)}},s=(d,u)=>{if(!u.some(p=>{let g=this.config.messageTier(p[0]);return g>=3&&g<5}))return;if(n.filter){let p=this.tryResolve(d);if(p==null)return;let g=kn(p,Ct("standard"));if(!n.filter(d,g))return}let m,f=()=>(m==null&&(m=this.snapshot()),m);for(let p of r)p.disposed||(p.debounceMs===0?i(p,f()):(p.timer==null&&(p.timer=new Z),p.timer.start(p.debounceMs,()=>{p.disposed||i(p,this.snapshot())})))},a;if(n.paths!=null){let u=(typeof n.paths=="string"?this._pathsMatching(n.paths):n.paths).map(c=>{let m=this.tryResolve(c);return m==null?()=>{}:m.subscribe(f=>s(c,f))});a=()=>{for(let c of u)c()}}else a=this.observe().subscribe((d,u)=>s(d,u));let l=()=>{a();for(let d of r)d.disposed=!0,d.timer?.cancel();this._storageDisposers.delete(l)};return this._storageDisposers.add(l),{dispose:l}}async _cascadeRestore(e,n){for(let r of e){let o;try{o=await r.load(this.name)}catch(s){n?.(s,r);continue}if(o==null||typeof o!="object"||Array.isArray(o))continue;let i=o;try{if(i.mode==="full"&&i.snapshot!=null)return this.restore(i.snapshot),!0;if(i.version===Ve&&i.nodes!=null)return this.restore(i),!0}catch(s){n?.(s,r)}}return!1}static async fromStorage(e,n,r){for(let o of n){let i;try{i=await o.load(e)}catch(l){r?.onError?.(l,o);continue}if(i==null||typeof i!="object"||Array.isArray(i))continue;let s=i,a=s.mode==="full"&&s.snapshot!=null?s.snapshot:s.version===Ve&&s.nodes!=null?s:void 0;if(a!=null)try{return t.fromSnapshot(a,r)}catch(l){r?.onError?.(l,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:D(),...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)),i=[...o].filter(v=>!r.has(v)).sort(),s=[...r].filter(v=>!o.has(v)).sort(),a=[],l=[];for(let v of r){if(!o.has(v))continue;let b=e.nodes[v],T=n.nodes[v],w=b.v,k=T.v;w!=null&&k!=null&&w.id===k.id&&w.version!==k.version&&l.push({path:v,id:w.id,from:w.version,to:k.version});let _=w!=null&&k!=null&&w.id===k.id&&w.version===k.version;for(let N of["type","status","sentinel"]){let x=b[N],V=T[N];x!==V&&a.push({path:v,field:N,from:x,to:V})}if(!_)for(let N of["value","meta"]){let x=b[N],V=T[N];Ms(x,V)||a.push({path:v,field:N,from:x,to:V})}}let d=v=>`${v.from} ${v.to}`,u=new Set(e.edges.map(d)),c=new Set(n.edges.map(d)),m=n.edges.filter(v=>!u.has(d(v))),f=e.edges.filter(v=>!c.has(d(v))),p=new Set(e.subgraphs),g=new Set(n.subgraphs),h=[...g].filter(v=>!p.has(v)).sort(),y=[...p].filter(v=>!g.has(v)).sort();return{nodesAdded:i,nodesRemoved:s,nodesChanged:a,versionChanges:l,edgesAdded:m,edgesRemoved:f,subgraphsAdded:h,subgraphsRemoved:y}}};function Wr(t,e){let n=ce.diff(t,e),r={};for(let o of n.nodesAdded){let i=e.nodes[o];i!=null&&(r[o]=i)}return{...n,nodesAddedFull:r}}function Rn(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 i=r.maxDepth;if(i!=null&&(!Number.isInteger(i)||i<0))throw new Error("reachable: maxDepth must be an integer >= 0");if(i===0)return r.withDetail?o:[];let s=new Map,a=new Map,l=new Map,d=new Map,u=new Set;for(let[b,T]of Object.entries(t.nodes)){if(!b)continue;u.add(b);let w=T.deps??[];s.set(b,w);for(let k of w)k&&(u.add(k),a.has(k)||a.set(k,new Set),a.get(k).add(b))}for(let b of t.edges){if(b==null||typeof b!="object")continue;let T=typeof b.from=="string"?b.from:"",w=typeof b.to=="string"?b.to:"";!T||!w||(u.add(T),u.add(w),d.has(T)||d.set(T,new Set),d.get(T).add(w),l.has(w)||l.set(w,new Set),l.get(w).add(T))}if(!u.has(e))return r.withDetail?o:[];let c=r.both===!0,m=b=>{if(c){let _=s.get(b)??[],N=l.get(b),x=a.get(b),V=d.get(b),L=[..._];return N&&L.push(...N),x&&L.push(...x),V&&L.push(...V),L}if(n==="upstream"){let _=s.get(b)??[],N=l.get(b);return N?[..._,...N]:_}let T=a.get(b),w=d.get(b),k=T?[...T]:[];return w&&k.push(...w),k},f=new Set([e]),p=new Map,g=[{path:e,depth:0}],h=0,y=!1;for(;h<g.length;){let b=g[h++];if(i!=null&&b.depth>=i){m(b.path).length>0&&(y=!0);continue}for(let T of m(b.path))!T||f.has(T)||(f.add(T),p.set(T,b.depth+1),g.push({path:T,depth:b.depth+1}))}let v=[...p.keys()].sort((b,T)=>b<T?-1:b>T?1:0);return r.withDetail?{paths:v,depths:p,truncated:y}:v}function js(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 i=r.v,s=o.v;if(i!==s&&(i==null||s==null||i.id!==s.id||i.version!==s.version))return!1}return!0}pe();fe();function qr(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)}function Vs(t){if(t!==void 0&&t<1)throw new RangeError("maxSize must be >= 1")}function Ke(t){return new Map(t)}function _e(t){return t.cache??new Map}function Ft(t){return t.cache??[]}function Ks(t,e){let n=Math.max(t.length,e.length),r=0,o=0,i=0;for(let s=0;s<n;s+=1){let a=t[s]??0,l=e[s]??0;r+=a*l,o+=a*a,i+=l*l}return o===0||i===0?0:r/Math.sqrt(o*i)}function Jr(t={}){let e=t.maxSize,n=t.policy??"fifo";Vs(e);let r=C(new Map,{name:t.name,describeKind:"state"});function o(s){if(e!==void 0)for(;s.size>e;){let a;for(let l of s.values()){if(!a){a=l;continue}let d=n==="lru"?l.lastAccessNs:l.createdAtNs,u=n==="lru"?a.lastAccessNs:a.createdAtNs;d<u&&(a=l)}if(!a)break;s.delete(a.id)}}function i(s){r.emit(s)}return{entries:r,upsert(s,a){let l=D(),d=_e(r),u=d.get(s),c=Ke(d);c.set(s,{id:s,value:a,createdAtNs:u?.createdAtNs??l,lastAccessNs:l}),o(c),i(c)},remove(s){let a=Ke(_e(r));a.delete(s)&&i(a)},clear(){_e(r).size!==0&&i(new Map)},get(s){let a=_e(r),l=a.get(s);if(l){if(n==="lru"){let d=D(),u=Ke(a);u.set(s,{...l,lastAccessNs:d}),i(u)}return l.value}},has(s){return _e(r).has(s)}}}function Yr(t={}){let e=t.backend??"flat",n=t.dimension,r;if(e==="hnsw"&&(r=t.hnswFactory?.(),!r))throw new Error('vectorIndex backend "hnsw" requires an optional dependency adapter; install your HNSW package and provide `hnswFactory`.');let o=C(new Map,{describeKind:"state",name:"vector-index"});function i(a){if(n!==void 0&&a.length!==n)throw new RangeError(`vector dimension mismatch: expected ${n}, got ${a.length}`)}function s(a){o.emit(a)}return{backend:e,entries:o,upsert(a,l,d){i(l);let u=Ke(_e(o));u.set(a,{id:a,vector:[...l],meta:d}),e==="hnsw"&&r.upsert(a,l,d),s(u)},remove(a){let l=Ke(_e(o));l.delete(a)&&(e==="hnsw"&&r.remove(a),s(l))},clear(){_e(o).size!==0&&(e==="hnsw"&&r.clear(),s(new Map))},search(a,l=5){return i(a),l<=0?[]:e==="hnsw"?r.search(a,l):[..._e(o).values()].map(u=>({id:u.id,score:Ks(a,u.vector),meta:u.meta})).sort((u,c)=>c.score-u.score).slice(0,l)}}}function Qr(t){let e=new ce(t),n=C(new Map,{name:"entities",describeKind:"state"}),r=C([],{name:"edges",describeKind:"state"}),o=$([r],([l])=>{let d=l??[],u=new Map;for(let c of d){let m=u.get(c.from)??[];u.set(c.from,Object.freeze([...m,c]))}return u},{name:"adjacency",describeKind:"derived",initial:new Map});o.subscribe(()=>{}),e.add(n,{name:"entities"}),e.add(r,{name:"edges"}),e.add(o,{name:"adjacency"});function i(l){n.emit(l)}function s(l){r.emit(l)}return Object.assign(e,{upsertEntity(l,d){let u=Ke(_e(n));u.set(l,d),i(u)},removeEntity(l){let d=Ke(_e(n)),u=d.delete(l),c=Ft(r),m=c.filter(f=>f.from!==l&&f.to!==l);!u&&m.length===c.length||(i(d),s(m))},link(l,d,u,c=1){let m=`${l}\0${d}\0${u}`,f=Ft(r),p=new Set(f.map(h=>`${h.from}\0${h.to}\0${h.relation}`)),g=[...f];if(p.has(m))for(let h=0;h<g.length;h+=1){let y=g[h];if(y.from===l&&y.to===d&&y.relation===u){g[h]={...y,weight:c};break}}else g.push({from:l,to:d,relation:u,weight:c});s(g)},unlink(l,d,u){let c=Ft(r),m=c.filter(f=>u===void 0?!(f.from===l&&f.to===d):!(f.from===l&&f.to===d&&f.relation===u));m.length!==c.length&&s(m)},related(l,d){return Ft(r).filter(u=>(u.from===l||u.to===l)&&(d===void 0||u.relation===d))}})}_t();it();ue();fe();ye();function Ze(t,e,n){return{[t]:!0,[`${t}_type`]:e,...n??{}}}function Xr(t,e){return Ze("messaging",t,e)}var Mn=class extends ce{_log;events;latest;hasLatest;constructor(e,n={}){super(e,n.graph),this._log=Le([],{name:"events",maxSize:n.retainedLimit}),this.events=this._log.entries,this.add(this.events,{name:"events"}),this.latest=$([this.events],([r])=>{let o=r;return o.length===0?null:o[o.length-1]},{name:"latest",describeKind:"derived",meta:Xr("topic_latest")}),this.add(this.latest,{name:"latest"}),this.addDisposer(ne(this.latest)),this.hasLatest=$([this.events],([r])=>r.length>0,{name:"hasLatest",describeKind:"derived",meta:Xr("topic_has_latest")}),this.add(this.hasLatest,{name:"hasLatest"}),this.addDisposer(ne(this.hasLatest)),this.addDisposer(()=>{this.events.down([[P]])}),this.addDisposer(()=>this._log.disposeAllViews())}publish(e){this._log.append(e)}retained(){return this.events.cache}};function Nn(t,e){return new Mn(t,e)}Me();ue();Re();fe();function Us(t,e){if(typeof e=="string")return{node:t.resolve(e),path:e};let n=zs(t,e);if(!n)throw new Error("orchestration dep node must already be registered in the graph so explicit edges can be recorded; pass a string path or register the node first");return{node:e,path:n}}function zs(t,e){let n=t.describe(),r=`::${he}::`;for(let o of Object.keys(n.nodes).sort())if(!o.includes(r))try{if(t.resolve(o)===e)return o}catch{}}function Hs(t,e,n,r){t.add(n,{name:e})}function Ws(t,e){return Ze("orchestration",t,e)}function Zr(t,e,n,r){let o=r?.maxPending??1/0;if(o<1&&o!==1/0)throw new RangeError("gate: maxPending must be >= 1");let i=r?.startOpen??!1,s=Us(t,n),a=C([],{name:"pending",equals:()=>!1}),l=C(i,{name:"isOpen"}),d=$([a],([w])=>w.length,{name:"count"}),u=[],c=!1,m=i,f=l.subscribe(w=>{for(let k of w)k[0]===A&&(m=k[1])});function p(){a.emit([...u])}function g(w){u.push(w),u.length>o&&u.shift(),p()}function h(w){let k=u.splice(0,w);return p(),k}function y(w){if(c)throw new Error(`gate: ${w}() called after gate was torn down`)}let v=se([s.node],(w,k,_)=>{let N=_.terminalDeps[0];if(N!==void 0){c=!0,u=[],p(),k.down(N===!0?[[P]]:[[O,N]]);return}let x=w[0];if(x==null||x.length===0){k.down([[U]]);return}for(let V of x)m?k.emit(V):(g(V),k.down([[U]]))},{name:e,describeKind:"derived",meta:Ws("gate",r?.meta)}),b={node:v,pending:a,count:d,isOpen:l,approve(w=1){y("approve");let k=h(w);for(let _ of k){if(c)break;v.emit(_)}},reject(w=1){y("reject"),h(w)},modify(w,k=1){y("modify");let _=[...u],N=h(k);for(let x=0;x<N.length&&!c;x++)v.emit(w(N[x],x,_))},open(){y("open"),re(()=>{l.emit(!0);let w=h(u.length);for(let k of w){if(c)break;v.emit(k)}})},close(){y("close"),l.emit(!1)}};t.addDisposer(d.subscribe(()=>{})),t.addDisposer(f),Hs(t,e,v,s.path?[s.path]:[]);let T=new ce(`${e}_state`);return T.add(a,{name:"pending"}),T.add(l,{name:"isOpen"}),T.add(d,{name:"count"}),t.mount(`${e}_state`,T),b}function $t(t,e){return`${t}::${e}`}function qs(t){let e=new Map,n=new Map,r=o=>{e.set($t(o.provider,o.id),o);let i=n.get(o.provider);i||(i=new Set,n.set(o.provider,i)),i.add(o.id)};if(t)for(let o of t)r(o);return{register:r,lookup(o,i){let s=e.get($t(o,i));if(s)return s;let a=n.get(o);if(!a)return;let l;for(let d of a)if(i.startsWith(d)&&(!l||d.length>l.key.length)){let u=e.get($t(o,d));u&&(l={key:d,cap:u})}return l?.cap},remove(o,i){let s=e.delete($t(o,i));if(s){let a=n.get(o);a?.delete(i),a&&a.size===0&&n.delete(o)}return s},entries(){return e.values()}}}pe();function En(t={}){return t.sdk?Zs(t):Xs(t)}function Bt(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:i,chat:s}=Js(t,e?.systemPrompt),a={model:o,messages:s.map(Ys),max_tokens:e?.maxTokens??4096};return i&&(a.system=i),e?.temperature!=null&&(a.temperature=e.temperature),e?.tools&&e.tools.length>0&&(a.tools=e.tools.map(Qs)),e?.maxReasoningTokens!=null&&(a.thinking={type:"enabled",budget_tokens:e.maxReasoningTokens}),e?.cacheHint,r&&(a.stream=!0),e?.providerExtras&&Object.assign(a,e.providerExtras),a}function Js(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 ln=Object.defineProperty;var Qo=Object.getOwnPropertyDescriptor;var Zo=Object.getOwnPropertyNames;var es=Object.prototype.hasOwnProperty;var ge=(t,e)=>()=>(t&&(e=t(t=0)),e);var un=(t,e)=>{for(var n in e)ln(t,n,{get:e[n],enumerable:!0})},ts=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Zo(e))!es.call(t,o)&&o!==n&&ln(t,o,{get:()=>e[o],enumerable:!(r=Qo(e,o))||r.enumerable});return t};var ns=t=>ts(ln({},"__esModule",{value:!0}),t);function G(){return Math.trunc(performance.now()*1e6)}function be(){return Date.now()*1e6}var he=ge(()=>{"use strict"});var ne,Ne=ge(()=>{"use strict";ne=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 Oe,L,Y,H,Te,xe,Ae,ce,F,O,Ge,_t,fr,Rt,mr,hr,Mt,fn,mn,hn,Nt,fe=ge(()=>{"use strict";Oe=Symbol.for("graphrefly/START"),L=Symbol.for("graphrefly/DATA"),Y=Symbol.for("graphrefly/DIRTY"),H=Symbol.for("graphrefly/RESOLVED"),Te=Symbol.for("graphrefly/INVALIDATE"),xe=Symbol.for("graphrefly/PAUSE"),Ae=Symbol.for("graphrefly/RESUME"),ce=Symbol.for("graphrefly/TEARDOWN"),F=Symbol.for("graphrefly/COMPLETE"),O=Symbol.for("graphrefly/ERROR"),Ge=Object.freeze([Y]),_t=Object.freeze([H]),fr=Object.freeze([Te]),Rt=Object.freeze([Oe]),mr=Object.freeze([F]),hr=Object.freeze([ce]),Mt=Object.freeze([Ge]),fn=Object.freeze([_t]),mn=Object.freeze([fr]),hn=Object.freeze([mr]),Nt=Object.freeze([hr])});function yr(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),i=0;return s[i++]=gn,s[i++]=n.length,s.set(n,i),i+=n.length,s[i++]=r>>>8&255,s[i++]=r&255,s.set(e,i),s}function br(t,e){if(t.length<gr)throw new Error(`decodeEnvelope: bytes too short (${t.length} < ${gr})`);let n=0,r=t[n++];if(r!==gn)throw new Error(`decodeEnvelope: unsupported envelope version ${r} (expected ${gn})`);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 i=(t[n]<<8|t[n+1])>>>0;n+=2;let a=t.subarray(n),l=e.lookupCodec(s);if(l==null)throw new Error(`decodeEnvelope: codec "${s}" not registered (envelope codec_v=${i})`);return{codec:l,codecVersion:i,payload:a}}function vr(t){t.registerCodec(ds)}var ds,gn,gr,yn=ge(()=>{"use strict";ds={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)}},gn=1,gr=4});function Et(t){if(t==null)return Ye;let{type:e,id:n,...r}=t;return{type:e??"system",id:n??"",...r}}var Ye,At=ge(()=>{"use strict";Ye={type:"system",id:""}});function St(){return Xe>0||it}function Tr(){return Xe>0}function lt(t){Xe>0?at.push(t):t()}function se(t){Xe+=1;let e=!1;try{t()}catch(n){throw e=!0,n}finally{if(Xe-=1,Xe===0)if(e){if(!it){let n=at.splice(0);for(let r of n)try{r()}catch{}Fe.length=0,$e.length=0,Qe.length=0}}else cs()}}function cs(){let t=!it;t&&(it=!0);let e=[],n=0;try{for(;Fe.length>0||$e.length>0||Qe.length>0||t&&at.length>0;){if(t&&at.length>0){let s=at.splice(0);for(let i of s)try{i()}catch(a){e.push(a)}continue}if(n+=1,n>1e3)throw Fe.length=0,$e.length=0,Qe.length=0,new Error("batch drain exceeded 1000 iterations \u2014 likely a reactive cycle");let o=(Fe.length>0?Fe:$e.length>0?$e:Qe).splice(0);for(let s of o)try{s()}catch(i){e.push(i)}}}finally{t&&(it=!1)}if(e.length===1)throw e[0];if(e.length>1)throw new AggregateError(e,"batch drain: multiple callbacks threw")}function Ot(t,e,n){if(e.length===0)return;if(e.length===1){let u=n(e[0][0]);if(u<3||!St()){t(e);return}(u>=5?Qe:u===4?$e:Fe).push(()=>t(e));return}let r=e.length,o=r,s=r,i=r,a=0;for(;a<r&&n(e[a][0])<3;)a++;for(o=a;a<r&&n(e[a][0])===3;)a++;for(s=a;a<r&&n(e[a][0])===4;)a++;i=a;let l=St();if(o>0){let u=e.slice(0,o);t(u)}if(s>o){let u=e.slice(o,s);l?Fe.push(()=>t(u)):t(u)}if(i>s){let u=e.slice(s,i);l?$e.push(()=>t(u)):t(u)}if(r>i){let u=e.slice(i,r);l?Qe.push(()=>t(u)):t(u)}}var Xe,it,Fe,$e,Qe,at,Me=ge(()=>{"use strict";Xe=0,it=!1,Fe=[],$e=[],Qe=[],at=[]});function wr(t){t.registerMessageType(Oe,{tier:0,wireCrossing:!1}),t.registerMessageType(Y,{tier:1,wireCrossing:!1}),t.registerMessageType(Te,{tier:1,wireCrossing:!1,metaPassthrough:!1}),t.registerMessageType(xe,{tier:2,wireCrossing:!1}),t.registerMessageType(Ae,{tier:2,wireCrossing:!1}),t.registerMessageType(L,{tier:3,wireCrossing:!0}),t.registerMessageType(H,{tier:3,wireCrossing:!0}),t.registerMessageType(F,{tier:4,wireCrossing:!0,metaPassthrough:!1}),t.registerMessageType(O,{tier:4,wireCrossing:!0,metaPassthrough:!1}),t.registerMessageType(ce,{tier:5,wireCrossing:!0,metaPassthrough:!1})}var Ct,xr=ge(()=>{"use strict";fe();Ct=class{_messageTypes=new Map;_codecs=new Map;_onMessage;_onSubscribe;_defaultVersioning;_defaultHashFn;_inspectorEnabled=!(typeof process<"u"&&process.env?.NODE_ENV==="production");_globalInspector;_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}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 bn(t){let e=ps.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 we,ps,ut=ge(()=>{"use strict";we=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}},ps=["human","llm","wallet","system"]});function vn(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(vn);if(typeof t=="object"&&t!==null){let e={};for(let n of Object.keys(t).sort())e[n]=vn(t[n]);return e}return null}function hs(t){let e=ms.encode(t),n=e.length,r=n*8,o=n+9+63&-64,s=new Uint8Array(o);s.set(e),s[n]=128;let i=new DataView(s.buffer);i.setUint32(o-4,r>>>0,!1),i.setUint32(o-8,Math.floor(r/4294967296)>>>0,!1);let a=1779033703,l=3144134277,u=1013904242,d=2773480762,c=1359893119,m=2600822924,f=528734635,p=1541459225,g=new Uint32Array(64),h=(v,b)=>v>>>b|v<<32-b;for(let v=0;v<o;v+=64){for(let A=0;A<16;A++)g[A]=i.getUint32(v+A*4,!1);for(let A=16;A<64;A++){let D=g[A-15],M=g[A-2],j=h(D,7)^h(D,18)^D>>>3,z=h(M,17)^h(M,19)^M>>>10;g[A]=g[A-16]+j+g[A-7]+z>>>0}let b=a,T=l,w=u,x=d,_=c,R=m,k=f,P=p;for(let A=0;A<64;A++){let D=h(_,6)^h(_,11)^h(_,25),M=_&R^~_&k,j=P+D+M+fs[A]+g[A]>>>0,z=h(b,2)^h(b,13)^h(b,22),E=b&T^b&w^T&w,N=z+E>>>0;P=k,k=R,R=_,_=x+j>>>0,x=w,w=T,T=b,b=j+N>>>0}a=a+b>>>0,l=l+T>>>0,u=u+w>>>0,d=d+x>>>0,c=c+_>>>0,m=m+R>>>0,f=f+k>>>0,p=p+P>>>0}let y=v=>v.toString(16).padStart(8,"0");return y(a)+y(l)+y(u)+y(d)+y(c)+y(m)+y(f)+y(p)}function Tn(t){let e=vn(t??null),n=JSON.stringify(e);return hs(n).slice(0,16)}function gs(){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 wn(t,e,n){let r=n?.id??gs();if(t===0)return{id:r,version:0};let s=(n?.hash??Tn)(e);return{id:r,version:0,cid:s,prev:null}}function kr(t,e,n){t.version+=1,"cid"in t&&(t.prev=t.cid,t.cid=n(e))}var fs,ms,_r=ge(()=>{"use strict";fs=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]),ms=new TextEncoder});function Nr(t){return{node:t,unsub:null,prevData:void 0,dirty:!1,involvedThisWave:!1,dataBatch:[],terminal:void 0}}function xn(t){t.prevData=void 0,t.dirty=!1,t.involvedThisWave=!1,t.dataBatch.length=0,t.terminal=void 0}function Lt(t){return t.length===0?t:typeof t[0]=="symbol"?[t]:t}function ie(t,e,n){let r=Er(t)?t:[],o=typeof t=="function"?t:typeof e=="function"?e:void 0,s={};return Er(t)?s=(kn(e)?e:n)??{}:kn(t)?s=t:s=(kn(e)?e:n)??{},new ae(r,o,s)}var Rr,Mr,ys,bs,Ze,ae,Er,kn,ke=ge(()=>{"use strict";yn();At();Me();he();xr();ut();fe();_r();Rr=()=>{},Mr=100;ys=(t,e,n,r)=>{n.direction==="down-in"&&t._onDepMessage(n.depIndex,e)},bs=(t,e,n,r)=>{let o=t;if(o._status==="completed"||o._status==="errored")return;let s=o._cached,i=s===void 0?[Rt]:[Rt,[L,s]];o._status==="dirty"&&i.push(Ge),Ot(e,i,o._config.tierOf)},Ze=new Ct({onMessage:ys,onSubscribe:bs});wr(Ze);vr(Ze);ae=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??Ze,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??Tn;let o=r.versioning??this._config.defaultVersioning;this._versioningLevel=o,this._versioning=o!=null?wn(o,this._cached===void 0?void 0:this._cached,{id:r.versioningId,hash:this._hashFn}):void 0,this._deps=e.map(Nr);let s={};for(let[a,l]of Object.entries(r.meta??{})){let u={initial:l,name:`${r.name??"node"}:meta:${a}`,describeKind:"state",config:this._config};r.guard!=null&&(u.guard=r.guard),s[a]=new t([],void 0,u)}Object.freeze(s),this.meta=s,this._hasMeta=Object.keys(s).length>0;let i=this;this._actions={emit(a){i._emit([[L,a]])},down(a){i._emit(Lt(a))},up(a){i._emitUp(Lt(a))}},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,i=this._versioning,a=i?.id??n?.id,l=i?.version??0,u=wn(e,s,{id:a,hash:o});u.version=l,this._versioning=u,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=Et(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=Et(e?.actor),s=e?.delivery==="signal"?"signal":"write";if(this._guard!=null&&!this._guard(o,s))throw new we({actor:o,action:s,nodeName:this.name});if(this._extraGuards!=null){for(let i of this._extraGuards)if(!i(o,s))throw new we({actor:o,action:s,nodeName:this.name})}this._lastMutation={actor:o,timestamp_ns:be()}}down(e,n){let r=Lt(e);r.length!==0&&(this._checkGuard(n),this._emit(r))}emit(e,n){this._checkGuard(n),this._emit([[L,e]])}up(e,n){if(this._deps.length===0)return;let r=Lt(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 l=Et(n);if(!this._guard(l,"observe"))throw new we({actor:l,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 l of this._deps)xn(l);if(this._partial===!1){for(let l of this._deps)if(l.prevData!==void 0||l.dataBatch.length!==0||l.terminal!==void 0||l.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(l){throw this._sinkCount-=1,l}this._sinks==null?this._sinks=e:typeof this._sinks=="function"?this._sinks=new Set([this._sinks,e]):this._sinks.add(e);let i=this._isTerminal;if(this._sinkCount===1&&!i)try{this._activate()}catch(l){if(this._sinkCount-=1,this._removeSink(e),this._sinkCount===0&&(this._status="sentinel"),typeof s=="function")try{s()}catch{}throw l}this._status==="sentinel"&&this._cached===void 0&&(this._status="pending");let a=!1;return()=>{a||(a=!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=Rr,s.unsub=s.node.subscribe(i=>{if(s.unsub===null)return;let a=this._config.tierOf,l=!1;for(let u of i)a(u[0])>=3&&(l=!0),this._config.onMessage(this,u,{direction:"down-in",depIndex:o},this._actions);l&&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 i=s.unsub;s.unsub=null;try{i()}catch{}xn(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=Nr(e);if(this._deps.push(r),this._sinks==null)return n;r.dirty=!0,this._dirtyDepCount++,this._status!=="dirty"&&this._emit(Mt),r.unsub=Rr;try{r.unsub=e.subscribe(o=>{if(r.unsub===null)return;let s=this._config.tierOf,i=!1;for(let a of o)s(a[0])>=3&&(i=!0),this._config.onMessage(this,a,{direction:"down-in",depIndex:n},this._actions);i&&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([[O,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([[O,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{}}xn(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 i of this._inspectorHooks)i(s)}if(o!==Oe){if(o===Y){this._depDirtied(r);return}if(o===Te){this._depInvalidated(r),this._emit(mn);return}if(o===xe||o===Ae){this._emit([n]);return}if(o===ce){this._emit(Nt);return}if(o===L)this._depSettledAsData(r,n[1]);else if(o===H)this._depSettledAsResolved(r);else if(o===F)this._depSettledAsTerminal(r,!0);else if(o===O)this._depSettledAsTerminal(r,n[1]);else{this._emit([n]);return}if(!this._fn){(o===L||o===H)&&this._emit([n]),(o===F||o===O)&&this._maybeAutoTerminalAfterWave();return}}}_depDirtied(e){e.dirty||(e.dirty=!0,e.involvedThisWave=!0,this._dirtyDepCount++,this._status!=="dirty"&&this._emit(Mt))}_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(fn),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([[O,e.terminal]]);return}this._autoComplete&&this._deps.every(n=>n.terminal!==void 0)&&this._emit(hn)}_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(i){this._emit([[O,this._wrapFnError("cleanup threw",i)]]);return}}else if(e!=null&&typeof e=="object"){let i=e.beforeRun;if(typeof i=="function"){e.beforeRun=void 0;try{i()}catch(a){this._emit([[O,this._wrapFnError("cleanup.beforeRun threw",a)]]);return}}}let n=this._deps.map(i=>i.involvedThisWave?i.dataBatch.length>0?[...i.dataBatch]:[]:void 0),r=this._deps.map(i=>i.prevData);for(let i=0;i<this._deps.length;i++){let a=n[i];a!=null&&a.length>0&&(this._deps[i].prevData=a[a.length-1])}let o=this._deps.map(i=>i.terminal),s={prevData:r,terminalDeps:o,store:this._store};if(this._hasCalledFnOnce=!0,this._clearWaveFlags(),this._inspectorHooks!=null){let i={kind:"run",batchData:n,prevData:r};for(let a of this._inspectorHooks)a(i)}this._isExecutingFn=!0;try{let i=this._fn(n,this._actions,s);if(typeof i=="function")this._cleanup=i;else if(i!=null&&typeof i=="object"){let a=i;(typeof a.beforeRun=="function"||typeof a.deactivate=="function"||typeof a.invalidate=="function")&&(this._cleanup=i)}}catch(i){this._emit([[O,this._wrapFnError("fn threw",i)]])}finally{this._isExecutingFn=!1,this._pendingRerun?(this._pendingRerun=!1,this._rerunDepth+=1,this._rerunDepth>Mr?(this._rerunDepth=0,this._emit([[O,new Error(`Node "${this.name}": _pendingRerun depth exceeded ${Mr} \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"?[Ge,e[0]]:e;let r=!0,o=!1,s=!1,i=-1;for(let l of e){let u=n(l[0]);u<i&&(r=!1),u===3&&(o=!0),l[0]===Y&&(s=!0),i=u}let a=e;if(!r){let l=e.map((u,d)=>({m:u,i:d,tier:n(u[0])}));l.sort((u,d)=>u.tier-d.tier||u.i-d.i),a=l.map(u=>u.m)}if(o&&!s&&this._status!=="dirty"){let l=0;for(;l<a.length&&n(a[l][0])===0;)l++;return l===0?[Ge,...a]:[...a.slice(0,l),Ge,...a.slice(l)]}return a}_emit(e){if(e.length===0)return;for(let a=0;a<e.length;a++){let l=e[a];if(l[0]===O&&l[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 a=e.filter(l=>l[0]===ce||l[0]===Te);if(a.length===0)return;n=a}n=this._frameBatch(n);let o=null;for(let a=0;a<n.length;a++){let l=n[a],u=l[0];if(u!==xe&&u!==Ae){o?.push(l);continue}if(l.length<2)throw new Error(`Node "${this.name}": [[${u===xe?"PAUSE":"RESUME"}]] must carry a lockId payload \u2014 bare PAUSE/RESUME is a protocol violation (C0 rule). Use \`[[PAUSE, lockId]]\` / \`[[RESUME, lockId]]\`.`);let d=!0;if(this._pausable!==!1){let c=l[1];if(u===xe)this._pauseLocks==null&&(this._pauseLocks=new Set),this._pauseLocks.add(c),this._paused=!0,this._pausable==="resumeAll"&&this._pauseBuffer==null&&(this._pauseBuffer=[]);else if(this._pauseLocks==null||!this._pauseLocks.has(c))d=!1;else if(this._pauseLocks.delete(c),this._pauseLocks.size===0){if(this._paused=!1,this._pauseBuffer!=null&&this._pauseBuffer.length>0){let m=this._pauseBuffer;this._pauseBuffer=[],this._emit(m)}this._pendingWave&&(this._pendingWave=!1,this._maybeRunFnOnSettlement())}}d?o?.push(l):o==null&&(o=n.slice(0,a))}if(o!=null){if(o.length===0)return;n=o}if(this._hasMeta&&n.some(a=>a[0]===ce))for(let a of Object.keys(this.meta))try{this.meta[a]._emit(Nt)}catch{}let{finalMessages:s,equalsError:i}=this._updateState(n);if(s.length>0&&this._config.inspectorEnabled){let a=this._config.globalInspector;if(a!=null)try{a({kind:"emit",node:this,messages:s})}catch{}}if(s.length>0)if(this._paused&&this._pausable==="resumeAll"&&this._pauseBuffer!=null){let a=this._config.tierOf,l=[];for(let u of s)a(u[0])===3?this._pauseBuffer.push(u):l.push(u);l.length>0&&this._dispatchOrAccumulate(l)}else this._dispatchOrAccumulate(s);i!=null&&this._emit([[O,i]])}_updateState(e){let n=this._config.tierOf,r,o,s=-1,i=0;for(let d of e)n(d[0])===3&&i++;let a=i<=1,l=-1;if(this._versioning!=null&&i>1){for(let d=e.length-1;d>=0;d--)if(e[d][0]===L){l=d;break}}for(let d=0;d<e.length;d++){let c=e[d],m=c[0];if(m===L){if(c.length>=2){let f=!1;if(a&&this._cached!==void 0)try{f=this._equals(this._cached,c[1])}catch(p){o=this._wrapFnError("equals threw",p),s=d;break}if(f){r==null&&(r=e.slice(0,d)),r.push(_t),this._status="resolved";continue}this._cached=c[1],this._versioning!=null&&(l<0||d===l)&&kr(this._versioning,c[1],this._hashFn)}this._status="settled",r?.push(c)}else if(r?.push(c),m===Y)this._status="dirty";else if(m===H)this._status="resolved";else if(m===F)this._status="completed";else if(m===O)this._status="errored";else if(m===Te){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 p=f.invalidate;if(typeof p=="function")try{p()}catch{}}}else m===ce&&(this._resetOnTeardown&&(this._cached=void 0),this._deactivate(!0),this._status="sentinel")}let u=s>=0?r??e.slice(0,s):r??e;return o!=null?{finalMessages:u,equalsError:o}:{finalMessages:u}}_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(Tr()){this._batchPendingMessages===null&&(this._batchPendingMessages=[],lt(()=>this._flushBatchPending()));for(let n of e)this._batchPendingMessages.push(n);return}Ot(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);Ot(this._deliverToSinks,n,this._config.tierOf)}},Er=t=>Array.isArray(t),kn=t=>typeof t=="object"&&t!=null&&!Array.isArray(t)});function S(t,e){return ie([],{...e,initial:t})}function pe(t,e){return ie((r,o,s)=>t(o,s)??void 0,{describeKind:"producer",...e})}function C(t,e,n){return ie(t,(o,s,i)=>{let a=o.map((l,u)=>l!=null&&l.length>0?l.at(-1):i.prevData[u]);s.emit(e(a,i))},{describeKind:"derived",...n})}function Ce(t,e,n){return ie(t,(o,s,i)=>{let a=o.map((l,u)=>l!=null&&l.length>0?l.at(-1):i.prevData[u]);return e(a,s,i)??void 0},{describeKind:"effect",...n})}var X=ge(()=>{"use strict";ke()});var Dr={};un(Dr,{NS_PER_MS:()=>je,NS_PER_SEC:()=>et,constant:()=>Ar,decorrelatedJitter:()=>Lr,exponential:()=>Or,fibonacci:()=>Cr,linear:()=>Sr,resolveBackoffPreset:()=>Dt,withMaxAttempts:()=>ws});function Be(t){return t<0?0:t}function vs(t,e){return e==="none"?t:e==="full"?Math.random()*t:t/2+Math.random()*(t/2)}function Ts(t,e){return t+Math.random()*(e-t)}function Ar(t){let e=Be(t);return()=>e}function Sr(t,e){let n=Be(t),r=e===void 0?n:Be(e);return o=>n+r*Math.max(0,o)}function Or(t){let e=Be(t?.baseNs??1e8),n=t?.factor!==void 0&&t.factor<1?1:t?.factor??2,r=Be(t?.maxDelayNs??30*1e9),o=t?.jitter??"none";return s=>{let i;if(e===0)i=0;else if(n===1)i=e;else{let a=r/e,l=1;for(let u=0;u<Math.max(0,s);u++){if(l>=a){l=a;break}l*=n}i=e*l,i>r&&(i=r)}return vs(i,o)}}function Cr(t=100*1e6,e=30*1e9){let n=Be(t),r=Be(e);function o(s){if(s<=0)return 1;let i=1,a=2;for(let l=1;l<s;l++){let u=i+a;i=a,a=u}return a}return s=>{let i=o(s)*n;return i<=r?i:r}}function Lr(t=100*1e6,e=30*1e9){return(n,r,o)=>{let i=Math.min(e,(o??t)*3);return Ts(t,i)}}function ws(t,e){return(n,r,o)=>n>=e?null:t(n,r,o)}function Dt(t){if(t==="constant")return Ar(1*1e9);if(t==="linear")return Sr(1*1e9);if(t==="exponential")return Or();if(t==="fibonacci")return Cr();if(t==="decorrelatedJitter")return Lr();throw new Error(`Unknown backoff preset: "${String(t)}". Use one of: constant, linear, exponential, fibonacci, decorrelatedJitter`)}var je,et,_n=ge(()=>{"use strict";je=1e6,et=1e9});var Pr={};un(Pr,{CircuitOpenError:()=>Le,RateLimiterOverflowError:()=>It,TimeoutError:()=>Pt,circuitBreaker:()=>dt,fallback:()=>Ss,rateLimiter:()=>Rs,retry:()=>ks,retrySource:()=>Rn,timeout:()=>Os,tokenBucket:()=>ct,withBreaker:()=>_s,withStatus:()=>Ms});function Ve(t){return{describeKind:"derived",...t}}function xs(t){return t<0?0:t}function Gt(t){return t[1]}function Ir(t){if(typeof t!="number"||!Number.isFinite(t))throw new TypeError("backoff strategy must return a finite number");return t<0?0:t}function ks(t,e){let n=e?.count,r=e?.backoff,o=n!==void 0?n:r===void 0?0:2147483647;if(o<0)throw new RangeError("retry count must be >= 0");let s=r===void 0?null:typeof r=="string"?Dt(r):r;return pe(i=>{let a=0,l=!1,u=null,d,c=new ne;function m(){d?.(),d=void 0}function f(g){if(l)return;if(a>=o){m(),i.down([[O,g]]);return}let h=s===null?0:s(a,g,u);if(h==null){m(),i.down([[O,g]]);return}let y;try{y=Ir(h)}catch{m(),i.down([[O,g]]);return}u=y,a+=1,m();let v=y>0?y/1e6:1;c.start(v,()=>{l||p()})}function p(){c.cancel(),m(),d=t.subscribe(g=>{if(!l)for(let h of g){let y=h[0];if(y===Y)i.down([[Y]]);else if(y===L)a=0,u=null,i.emit(h[1]);else if(y===H)i.down([[H]]);else if(y===F)m(),i.down([[F]]);else if(y===O){f(Gt(h));return}else i.down([h])}})}return p(),()=>{l=!0,c.cancel(),m()}},{...Ve(),initial:t.cache})}function Rn(t,e){let n=e?.count,r=e?.backoff,o=n!==void 0?n:r===void 0?0:2147483647;if(o<0)throw new RangeError("retry count must be >= 0");let s=r===void 0?null:typeof r=="string"?Dt(r):r;return pe(i=>{let a=0,l=!1,u=null,d,c=new ne;function m(){d?.(),d=void 0}function f(g){if(l)return;if(a>=o){m(),i.down([[O,g]]);return}let h=s===null?0:s(a,g,u);if(h==null){m(),i.down([[O,g]]);return}let y;try{y=Ir(h)}catch{m(),i.down([[O,g]]);return}u=y,a+=1,m();let v=y>0?y/1e6:1;c.start(v,()=>{l||p()})}function p(){c.cancel(),m();let g;try{g=t()}catch(h){f(h);return}d=g.subscribe(h=>{if(!l)for(let y of h){let v=y[0];if(v===Y)i.down([[Y]]);else if(v===L)a=0,u=null,i.emit(y[1]);else if(v===H)i.down([[H]]);else if(v===F)m(),i.down([[F]]);else if(v===O){f(Gt(y));return}else i.down([y])}})}return p(),()=>{l=!0,c.cancel(),m()}},{...Ve(),initial:e?.initial})}function dt(t){let e=Math.max(1,t?.failureThreshold??5),n=xs(t?.cooldownNs??30*1e9),r=t?.cooldown??null,o=Math.max(1,t?.halfOpenMax??1),s=t?.now??G,i="closed",a=0,l=0,u=0,d=n,c=0;function m(){if(!r)return n;let g=r(l);return g!==null?g:n}function f(){i="open",d=m(),u=s(),c=0}return{canExecute(){return i==="closed"?!0:i==="open"?s()-u>=d?(i="half-open",c=1,!0):!1:c<o?(c++,!0):!1},recordSuccess(){i==="half-open"?(i="closed",a=0,l=0):i==="closed"&&(a=0)},recordFailure(g){if(i==="half-open"){l++,f();return}i==="closed"&&(a++,a>=e&&f())},get state(){return i},get failureCount(){return a},reset(){i="closed",a=0,l=0,c=0}}}function _s(t,e){let n=e?.onOpen??"skip";return r=>{let o=ie([],(s,i)=>{function a(){o.meta.breakerState.down([[L,t.state]])}let l=r.subscribe(u=>{for(let d of u){let c=d[0];c===Y?i.down([[Y]]):c===L?t.canExecute()?(a(),i.emit(d[1])):(a(),n==="error"?i.down([[O,new Le]]):i.down([[H]])):c===H?i.down([[H]]):c===F?(t.recordSuccess(),a(),i.down([[F]])):c===O?(t.recordFailure(Gt(d)),a(),i.down([d])):i.down([d])}});return a(),l},{...Ve(),meta:{breakerState:t.state},completeWhenDepsComplete:!1,initial:r.cache});return{node:o,breakerState:o.meta.breakerState}}}function ct(t,e){if(t<=0)throw new RangeError("capacity must be > 0");if(e<0)throw new RangeError("refillPerSecond must be >= 0");let n=t,r=G();function o(s){if(e>0){let i=s-r;n=Math.min(t,n+i/1e9*e)}r=s}return{available(){return o(G()),n},tryConsume(s=1){if(s<=0)return!0;let i=G();return o(i),n>=s?(n-=s,!0):!1},putBack(s=1){s<=0||(o(G()),n=Math.min(t,n+s))}}}function Rs(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&&o<1)throw new RangeError("maxBuffer must be >= 1");let s=e.onOverflow??"drop-newest",i=n*1e9/r;return pe(a=>{let l=ct(n,i),u=[],d=new ne,c=!1,m=1e9/i;function f(){for(;u.length>0;)if(l.tryConsume(1))a.emit(u.shift());else{d.start(Math.max(1,m/1e6),f);return}}let p=t.subscribe(g=>{for(let h of g){if(c)return;let y=h[0];if(y===Y)a.down([[Y]]);else if(y===L){if(o!==void 0&&u.length>=o){if(s!=="drop-newest")if(s==="drop-oldest")u.shift(),u.push(h[1]);else{c=!0,d.cancel(),u.length=0,a.down([[O,new It(o)]]);return}}else u.push(h[1]);f()}else if(y===H)a.down([[H]]);else if(y===F)c=!0,d.cancel(),u.length=0,a.down([[F]]);else if(y===O)c=!0,d.cancel(),u.length=0,a.down([h]);else if(y===ce){c=!0,d.cancel(),u.length=0,a.down([h]);return}else a.down([h])}});return()=>{c=!0,d.cancel(),p()}},{...Ve(),initial:t.cache})}function Ms(t,e){let n=e?.initialStatus??"pending",r=ie([],(o,s)=>{let i=n;return r.meta.status.down([[L,n]]),r.meta.error.down([[L,null]]),t.subscribe(l=>{for(let u of l){let d=u[0];if(d===Y)s.down([[Y]]);else if(d===L)i==="errored"?se(()=>{r.meta.error.down([[L,null]]),r.meta.status.down([[L,"active"]])}):r.meta.status.down([[L,"active"]]),i="active",s.emit(u[1]);else if(d===H)s.down([[H]]);else if(d===F)r.meta.status.down([[L,"completed"]]),i="completed",s.down([[F]]);else if(d===O){let c=Gt(u);se(()=>{r.meta.error.down([[L,c]]),r.meta.status.down([[L,"errored"]])}),i="errored",s.down([u])}else s.down([u])}})},{...Ve(),meta:{status:n,error:null},completeWhenDepsComplete:!1,resubscribable:!0,initial:t.cache});return{node:r,status:r.meta.status,error:r.meta.error}}function Ns(t){return t!=null&&typeof t=="object"&&"cache"in t&&typeof t.subscribe=="function"}function Es(t){return t!=null&&typeof t.then=="function"}function As(t){return t!=null&&typeof t=="object"&&typeof t[Symbol.asyncIterator]=="function"}function Ss(t,e){return pe(n=>{let r,o;function s(){o?.(),o=void 0,Ns(e)||Es(e)||As(e)?r=$(e).subscribe(a=>{n.down(a)}):(n.emit(e),n.down([[F]]))}return o=t.subscribe(i=>{for(let a of i){let l=a[0];if(l===Y)n.down([[Y]]);else if(l===L)n.emit(a[1]);else if(l===H)n.down([[H]]);else if(l===F)n.down([[F]]);else if(l===O){s();return}else if(l===ce){r?.(),n.down([a]);return}else n.down([a])}}),()=>{o?.(),r?.()}},{...Ve(),initial:t.cache})}function Os(t,e){if(e<=0)throw new RangeError("timeoutNs must be > 0");return pe(n=>{let r=!1,o=new ne;function s(){let a=e/1e6;o.start(a,()=>{r||(r=!0,i(),n.down([[O,new Pt(e)]]))})}let i=t.subscribe(a=>{for(let l of a){if(r)return;let u=l[0];if(u===Y)n.down([[Y]]);else if(u===L)s(),n.emit(l[1]);else if(u===H)n.down([[H]]);else if(u===F){o.cancel(),r=!0,n.down([[F]]);return}else if(u===O){o.cancel(),r=!0,n.down([l]);return}else if(u===ce){o.cancel(),r=!0,n.down([l]);return}else n.down([l])}});return s(),()=>{r=!0,o.cancel(),i()}},{...Ve(),initial:t.cache})}var Le,It,Pt,tt=ge(()=>{"use strict";Me();he();fe();ke();X();_n();re();Ne();Le=class extends Error{name="CircuitOpenError";constructor(){super("Circuit breaker is open")}};It=class extends Error{name="RateLimiterOverflowError";constructor(e){super(`rateLimiter buffer overflow (maxBuffer=${e})`)}};Pt=class extends Error{name="TimeoutError";constructor(e){super(`Timed out after ${e/1e6}ms`)}}});function Ft(t){return{describeKind:"producer",...t}}function $r(t,e){let{signal:n,period:r,...o}=e??{};return pe(s=>{let i=!1,a=0,l,u,d=()=>{i=!0,l!==void 0&&clearTimeout(l),u!==void 0&&clearInterval(u),n?.removeEventListener("abort",m)},c=()=>{i||(r!=null?(s.emit(a++),u=setInterval(()=>{i||s.emit(a++)},r)):(i=!0,n?.removeEventListener("abort",m),s.emit(a++),s.down([[F]])))},m=()=>{i||(d(),s.down([[O,n.reason]]))};if(n?.aborted){m();return}return l=setTimeout(c,t),n?.addEventListener("abort",m,{once:!0}),d},Ft(o))}function Br(t,e){return pe(n=>{let r=!1;try{for(let o of t){if(r)return;n.emit(o)}r||n.down([[F]])}catch(o){r||n.down([[O,o]])}return()=>{r=!0}},Ft(e))}function Cs(t){return t!=null&&typeof t.then=="function"}function Ls(t,e){let{signal:n,...r}=e??{};return pe(o=>{let s=!1,i=()=>{s||(s=!0,o.down([[O,n.reason]]))};if(n?.aborted){i();return}return n?.addEventListener("abort",i,{once:!0}),Promise.resolve(t).then(a=>{s||(s=!0,n?.removeEventListener("abort",i),o.emit(a),o.down([[F]]))},a=>{s||(s=!0,n?.removeEventListener("abort",i),o.down([[O,a]]))}),()=>{s=!0,n?.removeEventListener("abort",i)}},Ft(r))}function Ds(t,e){let{signal:n,...r}=e??{};return pe(o=>{let s=new AbortController,i=()=>s.abort(n?.reason);n?.aborted?s.abort(n.reason):n?.addEventListener("abort",i,{once:!0});let a=n??s.signal,l=!1,u=t[Symbol.asyncIterator](),d=()=>{l||a.aborted||Promise.resolve(u.next()).then(c=>{if(!(l||a.aborted)){if(c.done){o.down([[F]]);return}o.emit(c.value),d()}},c=>{!l&&!a.aborted&&o.down([[O,c]])})};return d(),()=>{l=!0,n?.removeEventListener("abort",i),s.abort(),Promise.resolve(u.return?.()).catch(()=>{})}},Ft(r))}function Is(t){return t!=null&&typeof t=="object"&&"cache"in t&&typeof t.subscribe=="function"}function $(t,e){if(Is(t))return t;if(Cs(t))return Ls(t,e);if(t!=null){let n=t;if(typeof n[Symbol.asyncIterator]=="function")return Ds(t,e);if(typeof n[Symbol.iterator]=="function")return Br(t,e)}return Ps(t)}function Ps(...t){return Br(t,void 0)}function pt(t,e,n){return ie([t],(o,s)=>{let i=o[0];if(i!=null&&i.length>0)for(let a of i)e(a)},{describeKind:"effect",...n}).subscribe(()=>{})}function $t(t){return new Promise((e,n)=>{let r=!1,o=!1,s;s=t.subscribe(i=>{for(let a of i){if(r)return;if(a[0]===L){r=!0,e(a[1]),s?(s(),s=void 0):o=!0;return}if(a[0]===O){r=!0,n(a[1]),s?(s(),s=void 0):o=!0;return}if(a[0]===F){r=!0,n(new Error("completed without DATA")),s?(s(),s=void 0):o=!0;return}}}),o&&(s?.(),s=void 0)})}function Gr(t,e){return new Promise((n,r)=>{let o=!1,s=!1,i;i=t.subscribe(a=>{for(let l of a){if(o)return;if(l[0]===L){let u=l[1];if(e(u)){o=!0,n(u),i?(i(),i=void 0):s=!0;return}}if(l[0]===O){o=!0,r(l[1]),i?(i(),i=void 0):s=!0;return}if(l[0]===F){o=!0,r(new Error("completed without matching value")),i?(i(),i=void 0):s=!0;return}}}),s&&(i?.(),i=void 0)})}async function jr(t,e){let n=e?.predicate??(o=>o!=null);if(e?.timeoutMs==null||e.timeoutMs<=0)return await Gr(t,n);if(Mn===void 0){let[o,s]=await Promise.all([Promise.resolve().then(()=>(tt(),Pr)),Promise.resolve().then(()=>(_n(),Dr))]);Mn=o.timeout,Fr=s.NS_PER_MS}let r=Mn(t,e.timeoutMs*Fr);return await Gr(r,n)}function Z(t){return t.subscribe(()=>{})}var Mn,Fr,re=ge(()=>{"use strict";fe();ke();X()});var tl={};un(tl,{AgentLoopGraph:()=>sn,AllTiersExhaustedError:()=>ft,BudgetExhaustedError:()=>Ut,ChatStreamGraph:()=>rn,CircuitOpenError:()=>Le,DEFAULT_DECAY_RATE:()=>rr,FallbackMissError:()=>Fs,LLMTimeoutError:()=>rt,ReplayCacheMissError:()=>Ke,ToolRegistryGraph:()=>on,admissionFilter3D:()=>Ua,agentLoop:()=>Ba,agentMemory:()=>qa,anthropicAdapter:()=>dn,canonicalJson:()=>Bt,cascadingLlmAdapter:()=>Vn,chatStream:()=>Qn,composePricing:()=>ii,computePrice:()=>no,contentGate:()=>Ga,costMeterExtractor:()=>Oa,createAdapter:()=>ei,createCapabilitiesRegistry:()=>rs,createPricingRegistry:()=>oi,dryRunAdapter:()=>Ee,dryRunPreset:()=>vi,fallbackAdapter:()=>En,fromLLM:()=>wi,frozenContext:()=>Mi,gatedStream:()=>Ea,gaugesAsContext:()=>Ja,googleAdapter:()=>An,graphFromSpec:()=>Ya,handoff:()=>ja,keywordFlagExtractor:()=>La,knobsAsTools:()=>Qa,llmConsolidator:()=>nr,llmExtractor:()=>tr,observableAdapter:()=>ni,openAICompatAdapter:()=>On,parseRateLimitFromError:()=>$n,promptNode:()=>Ei,redactor:()=>Fa,registryPricing:()=>si,resilientAdapter:()=>bi,streamExtractor:()=>Da,streamingPromptNode:()=>Na,suggestStrategy:()=>el,systemPromptBuilder:()=>Aa,toolCallExtractor:()=>Pa,toolRegistry:()=>Zn,toolSelector:()=>Va,validateGraphDef:()=>or,withBreaker:()=>Pn,withBudgetGate:()=>Fn,withDryRun:()=>li,withRateLimiter:()=>jn,withReplayCache:()=>Nn,withRetry:()=>Kn,withTimeout:()=>Un,zeroPrice:()=>In});module.exports=ns(tl);function vt(t,e){return`${t}::${e}`}function rs(t){let e=new Map,n=new Map,r=o=>{e.set(vt(o.provider,o.id),o);let s=n.get(o.provider);s||(s=new Set,n.set(o.provider,s)),s.add(o.id)};if(t)for(let o of t)r(o);return{register:r,lookup(o,s){let i=e.get(vt(o,s));if(i)return i;let a=n.get(o);if(!a)return;let l;for(let u of a)if(s.startsWith(u)&&(!l||u.length>l.key.length)){let d=e.get(vt(o,u));d&&(l={key:u,cap:d})}return l?.cap},remove(o,s){let i=e.delete(vt(o,s));if(i){let a=n.get(o);a?.delete(s),a&&a.size===0&&n.delete(o)}return i},entries(){return e.values()}}}he();function dn(t={}){return t.sdk?ls(t):as(t)}function Tt(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:i}=os(t,e?.systemPrompt),a={model:o,messages:i.map(ss),max_tokens:e?.maxTokens??4096};return s&&(a.system=s),e?.temperature!=null&&(a.temperature=e.temperature),e?.tools&&e.tools.length>0&&(a.tools=e.tools.map(is)),e?.maxReasoningTokens!=null&&(a.thinking={type:"enabled",budget_tokens:e.maxReasoningTokens}),e?.cacheHint,r&&(a.stream=!0),e?.providerExtras&&Object.assign(a,e.providerExtras),a}function os(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(`
|
|
7
2
|
|
|
8
|
-
`):void 0,chat:r}}function
|
|
9
|
-
`)){let o=r.endsWith("\r")?r.slice(0,-1):r;if(!o||o.startsWith(":"))continue;let
|
|
10
|
-
`)),e}function
|
|
3
|
+
`):void 0,chat:r}}function ss(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 is(t){return{name:t.name,description:t.description,input_schema:t.parameters}}function wt(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 cn(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 dr(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:cn(t.usage),finishReason:t.stop_reason,latencyMs:e,model:t.model,provider:"anthropic"}}function as(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(i,a){let l=Tt(i,a,t.model,!1),u=G(),d=await o(`${n}/v1/messages`,{method:"POST",headers:s(),body:JSON.stringify(l),signal:a?.signal});if(!d.ok)throw await ur(d);let c=await d.json(),m=Math.max(0,(G()-u)/1e6);return dr(c,m)},async*stream(i,a){let l=Tt(i,a,t.model,!0),u=await o(`${n}/v1/messages`,{method:"POST",headers:{...s(),accept:"text/event-stream"},body:JSON.stringify(l),signal:a?.signal});if(!u.ok)throw await ur(u);if(!u.body)throw new Error("anthropicAdapter: streaming response has no body");let d,c,m=new Map;for await(let f of us(u.body)){let p=f.data;if(!p)continue;let g;try{g=JSON.parse(p)}catch{continue}switch(g.type){case"message_start":{d=wt(d,g.message.usage);break}case"content_block_start":{let h=g,y=h.content_block;y.type==="tool_use"&&(m.set(h.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 h=g,y=h.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 v=m.get(h.index);v&&(v.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 h=g;h.delta.stop_reason&&(c=h.delta.stop_reason),h.delta.usage&&(d=wt(d,h.delta.usage));break}case"message_stop":break}}d&&(yield{type:"usage",usage:cn(d)}),yield{type:"finish",reason:c??"stop"}}}}function ls(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=Tt(n,r,t.model,!1),s=G(),i=await e.messages.create(o,{signal:r?.signal}),a=Math.max(0,(G()-s)/1e6);return dr(i,a)},async*stream(n,r){if(!e.messages.stream)throw new Error("sdkBackedAnthropic: SDK instance does not expose .messages.stream");let o=Tt(n,r,t.model,!0),s,i;for await(let a of e.messages.stream(o,{signal:r?.signal}))switch(a.type){case"message_start":s=wt(s,a.message.usage);break;case"content_block_delta":{let l=a.delta;l?.type==="text_delta"&&typeof l.text=="string"?yield{type:"token",delta:l.text}:l?.type==="input_json_delta"&&typeof l.partial_json=="string"?yield{type:"tool-call-delta",delta:{argumentsDelta:l.partial_json}}:l?.type==="thinking_delta"&&typeof l.thinking=="string"&&(yield{type:"thinking",delta:l.thinking});break}case"message_delta":{let l=a;l.delta.stop_reason&&(i=l.delta.stop_reason),l.delta.usage&&(s=wt(s,l.delta.usage));break}}s&&(yield{type:"usage",usage:cn(s)}),yield{type:"finish",reason:i??"stop"}}}}async function*us(t){let e=t.getReader(),n=new TextDecoder,r="";try{for(;;){let{done:o,value:s}=await e.read();if(o){r.length>0&&(yield ar(r));return}r+=n.decode(s,{stream:!0});let i=lr(r);for(;i!==null;){let a=r.slice(0,i.index);r=r.slice(i.index+i.length);let l=ar(a);(l.data||l.event)&&(yield l),i=lr(r)}}}finally{e.releaseLock()}}function ar(t){let e={},n=[];for(let r of t.split(`
|
|
4
|
+
`)){let o=r.endsWith("\r")?r.slice(0,-1):r;if(!o||o.startsWith(":"))continue;let s=o.indexOf(":"),i=s===-1?o:o.slice(0,s),a=s===-1?"":o.slice(s+1).replace(/^ /,"");i==="data"?n.push(a):i==="event"?e.event=a:i==="id"&&(e.id=a)}return n.length>0&&(e.data=n.join(`
|
|
5
|
+
`)),e}function lr(t){let e=t.indexOf(`\r
|
|
11
6
|
\r
|
|
12
7
|
`),n=t.indexOf(`
|
|
13
8
|
|
|
14
|
-
`),r=null;return e!==-1&&(r={index:e,length:4}),n!==-1&&(r===null||n<r.index)&&(r={index:n,length:2}),r}async function
|
|
9
|
+
`),r=null;return e!==-1&&(r={index:e,length:4}),n!==-1&&(r===null||n<r.index)&&(r={index:n,length:2}),r}async function ur(t){let e;try{e=await t.text()}catch{e=""}let n=new Error(`Anthropic API ${t.status}: ${t.statusText}${e?` \u2014 ${e}`:""}`);return n.status=t.status,n.headers=t.headers,n}Ne();function xt(){let t=new Error("aborted");return t.name="AbortError",t}function cr(t,e){return t<=0?Promise.resolve():e?.aborted?Promise.reject(xt()):new Promise((n,r)=>{let o=new ne,s,i=()=>{o.cancel(),e&&s&&e.removeEventListener("abort",s)};o.start(t,()=>{i(),n()}),e&&(s=()=>{i(),r(xt())},e.addEventListener("abort",s,{once:!0}))})}function Ee(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??(a=>{let l=[...a].reverse().find(u=>u.role==="user");return l?`echo: ${l.content}`:"dry-run: no user message"}),i=t.usage??((a,l)=>{let u=a.reduce((d,c)=>d+c.content.length,0);return{input:{regular:Math.ceil(u/4)},output:{regular:Math.ceil(l.length/4)}}});return{provider:e,model:n,async invoke(a,l){if(await cr(r,l?.signal),l?.signal?.aborted)throw xt();let u=s(a,l),d=i(a,u);return{content:u,usage:d,finishReason:"stop",model:l?.model??n,provider:e,tier:l?.tier,metadata:{dryRun:!0}}},async*stream(a,l){let u=s(a,l),d=i(a,u),c=Math.ceil(u.length/o)||1,m=r>0?r/c:0;for(let f=0;f<u.length;f+=o){if(l?.signal?.aborted)throw xt();await cr(m,l?.signal),yield{type:"token",delta:u.slice(f,f+o)}}yield{type:"usage",usage:d},yield{type:"finish",reason:"stop"}}}}he();async function kt(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+=pr[r[s]];return o}var pr=new Array(256);for(let t=0;t<256;t++)pr[t]=t.toString(16).padStart(2,"0");function pn(){let t=new Map;return{save(e,n){t.set(e,JSON.parse(JSON.stringify(n)))},load(e){let n=t.get(e);return n===void 0?null:JSON.parse(JSON.stringify(n))},clear(e){t.delete(e)},list(){return[...t.keys()].sort()}}}he();re();function Vr(t,e={}){let n=e.keyFn??(o=>String(o)),r=new Map;return o=>{let s=n(o),i=r.get(s);if(i)return i;let a=t(o),l;a!=null&&typeof a.then=="function"?l=Promise.resolve(a):a!=null&&typeof a=="object"&&"subscribe"in a&&"cache"in a?l=$t(a):a!=null&&typeof a=="object"&&Symbol.asyncIterator in a?l=(async()=>{let c=a[Symbol.asyncIterator]();try{let{value:m,done:f}=await c.next();if(f)throw new Error("singleFromAny: factory returned empty async iterable");return m}finally{await c.return?.()}})():a!=null&&typeof a=="object"&&Symbol.iterator in a?l=(async()=>{let c=a[Symbol.iterator]();try{let{value:m,done:f}=c.next();if(f)throw new Error("singleFromAny: factory returned empty iterable");return m}finally{c.return?.()}})():l=Promise.resolve(a);let u,d=()=>{r.get(s)===u&&r.delete(s)};return u=l.then(c=>(d(),c),c=>{throw d(),c}),r.set(s,u),u}}Ne();var Ke=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 Nn(t,e){let n=e.mode??"read-write",r=e.cacheStreaming??!1,o=e.captureStreamCadence??!1,s=e.replaySpeed??1,i=e.keyPrefix??"llm-replay",a=e.storage,l=n==="read"||n==="read-strict",u=async(g,h)=>{if(e.keyFn){let x=e.keyFn;if(x.length<=1){let R={messages:g,opts:h,context:h?.keyContext},k=await x(R);return`${i}:${k}`}let _=await x(g,h);return`${i}:${_}`}let{signal:y,keyContext:v,...b}=h??{},T=Bt({messages:g,opts:b}),w=await kt(T);return`${i}:${w}`},d=async g=>{if(n==="write-only")return;let h=await a.load(g);if(h!=null)try{return typeof h=="string"?JSON.parse(h):h}catch{return}},c=async g=>(await d(g))?.response,m=async(g,h,y)=>{if(l)return;let v={response:h,storedAtNs:be(),...y?{streamChunks:y.chunks,streamCadenceMs:y.delaysMs}:{}};await a.save(g,v)},f=g=>g<=0?Promise.resolve():new Promise(h=>{new ne().start(g,()=>h())}),p=Vr(async({messages:g,invokeOpts:h})=>{let y=t.invoke(g,h);return await Gs(y)},{keyFn:({_precomputedKey:g})=>g});return{provider:t.provider,model:t.model,capabilities:t.capabilities?.bind(t),async invoke(g,h){let y=await u(g,h),v=await c(y);if(v)return{...v,metadata:{...v.metadata??{},replayCache:"hit"}};if(n==="read-strict")throw new Ke(y,"invoke");let b=await p({messages:g,invokeOpts:h,_precomputedKey:y});return await m(y,b),b},async*stream(g,h){if(!r){for await(let k of t.stream(g,h))yield k;return}let y=await u(g,h),v=await d(y);if(v){let k=v.response;if(v.streamChunks&&v.streamCadenceMs)for(let P=0;P<v.streamChunks.length;P++){let A=v.streamCadenceMs[P]??0,D=s>0?A/s:0;D>0&&await f(D),yield{type:"token",delta:v.streamChunks[P]?.delta??""}}else k.content&&(yield{type:"token",delta:k.content});k.usage&&(yield{type:"usage",usage:k.usage}),yield{type:"finish",reason:k.finishReason??"stop"};return}if(n==="read-strict")throw new Ke(y,"stream");let b="",T,w,x=[],_=[],R;for await(let k of t.stream(g,h)){if(k.type==="token"&&(b+=k.delta,o)){let P=G(),A=R===void 0?0:(P-R)/1e6;_.push(A),R=P,x.push({delta:k.delta})}k.type==="usage"&&(T=k.usage),k.type==="finish"&&(w=k.reason),yield k}if(b||T){let k={content:b,usage:T??{input:{regular:0},output:{regular:0}},finishReason:w,model:t.model??h?.model??"",provider:t.provider};await m(y,k,o?{chunks:x,delaysMs:_}:void 0)}}}}function Bt(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 i of Object.keys(r).sort())s[i]=n(r[i]);return s}finally{e.delete(o)}};return JSON.stringify(n(t))}async function Gs(t){if(t!=null&&typeof t.then=="function")return await t;if(t&&typeof t=="object"&&"content"in t)return t;throw new Error("withReplayCache: adapter.invoke must return Promise or LLMResponse (Node input not supported in cache path)")}var Fs=Ke;function Kr(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 Ur(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 $s(t,e){if("key"in t)return t.key;let n=Bt({messages:t.messages,opts:t.invokeOpts??{}}),r=await kt(n);return`${e}:${r}`}function Bs(t){let e={response:t.response,storedAtNs:be()};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 js(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=pn(),o=t.fixtures,s=(async()=>{for(let i of o){let a=await $s(i,e);await r.save(a,Bs(i))}})();return s.catch(()=>{}),{tier:r,seedReady:s}}return t.fixturesStorage?{tier:t.fixturesStorage,seedReady:Promise.resolve()}:{tier:void 0,seedReady:Promise.resolve()}}function En(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"?Ee({provider:e,model:n,respond:()=>"[unreachable: read-strict mode throws on miss]"}):{provider:e,model:n,async invoke(d,c){let m=t.respond?t.respond(d,c):Kr(e,n);return Ur(m,e,n)},async*stream(d,c){let m=t.respond?t.respond(d,c):Kr(e,n),f=Ur(m,e,n);yield{type:"token",delta:f.content},f.usage&&(yield{type:"usage",usage:f.usage}),yield{type:"finish",reason:f.finishReason??"stop"}}},i,a=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`.");i=t.record.storage}else{let d=js(t,o);i=d.tier??pn(),a=d.seedReady}let l=t.record?"read-write":r==="throw"?"read-strict":"read",u=Nn(s,{storage:i,mode:l,keyPrefix:o,cacheStreaming:!0,captureStreamCadence:!0,replaySpeed:t.replaySpeed,...t.keyFn?{keyFn:t.keyFn}:{}});return{provider:e,model:n,capabilities:u.capabilities?.bind(u),async invoke(d,c){return await a,u.invoke(d,c)},async*stream(d,c){await a;for await(let m of u.stream(d,c))yield m}}}he();function An(t={}){return t.sdk?Hs(t):Us(t)}function jt(t,e){let n=[],r=[];e?.systemPrompt&&n.push(e.systemPrompt);for(let i of t){if(i.role==="system"){n.push(i.content);continue}if(i.role==="tool"){r.push({role:"user",parts:[{functionResponse:{name:i.name??i.toolCallId??"tool",response:{result:i.content}}}]});continue}if(i.role==="assistant"&&i.toolCalls&&i.toolCalls.length>0){let a=[];i.content&&a.push({text:i.content});for(let l of i.toolCalls)a.push({functionCall:{name:l.name,args:l.arguments}});r.push({role:"model",parts:a});continue}r.push({role:i.role==="assistant"?"model":"user",parts:[{text:i.content}]})}let o={contents:r};n.length>0&&(o.systemInstruction={role:"system",parts:[{text:n.join(`
|
|
15
10
|
|
|
16
|
-
`)}]});let
|
|
17
|
-
`)){let o=r.endsWith("\r")?r.slice(0,-1):r;if(!o||o.startsWith(":"))continue;let
|
|
18
|
-
`)),e}function
|
|
11
|
+
`)}]});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(Vs)}]),e?.providerExtras&&Object.assign(o,e.providerExtras),o}function Vs(t){return{name:t.name,description:t.description,parameters:t.parameters}}function Sn(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 qr(t,e){let n=t.candidates?.[0],r=n?.content?.parts??[],o=[],s=[],i=0;for(let a of r)typeof a.text=="string"&&o.push(a.text),a.functionCall&&s.push({id:`${a.functionCall.name}-${i++}`,name:a.functionCall.name,arguments:a.functionCall.args??{}});return{content:o.join(""),toolCalls:s.length>0?s:void 0,usage:Sn(t.usageMetadata),finishReason:n?.finishReason,latencyMs:e,model:t.modelVersion,provider:"google"}}function Ks(t){if(t.apiKey)return t.apiKey;let e=globalThis.process?.env;return e?.GOOGLE_API_KEY??e?.GEMINI_API_KEY}function Us(t){let e=t.baseURL??"https://generativelanguage.googleapis.com/v1beta",n=t.fetchImpl??fetch,r=s=>{let i=s?.model??t.model;if(!i)throw new Error("googleAdapter: model must be set via options.model or invokeOpts.model");return i},o=()=>{let s=Ks(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,i){let a=r(i),l=jt(s,i),u=G(),d=`${e}/models/${encodeURIComponent(a)}:generateContent?${o()}`,c=await n(d,{method:"POST",headers:{"content-type":"application/json",...t.headers??{}},body:JSON.stringify(l),signal:i?.signal});if(!c.ok)throw await Wr(c);let m=await c.json(),f=Math.max(0,(G()-u)/1e6);return qr(m,f)},async*stream(s,i){let a=r(i),l=jt(s,i),u=`${e}/models/${encodeURIComponent(a)}:streamGenerateContent?alt=sse&${o()}`,d=await n(u,{method:"POST",headers:{"content-type":"application/json",accept:"text/event-stream",...t.headers??{}},body:JSON.stringify(l),signal:i?.signal});if(!d.ok)throw await Wr(d);if(!d.body)throw new Error("googleAdapter: streaming response has no body");let c,m;for await(let f of zs(d.body)){if(!f.data)continue;let p;try{p=JSON.parse(f.data)}catch{continue}let g=p.candidates?.[0];for(let h of g?.content?.parts??[])typeof h.text=="string"&&(h.thought?yield{type:"thinking",delta:h.text}:yield{type:"token",delta:h.text}),h.functionCall&&(yield{type:"tool-call-delta",delta:{name:h.functionCall.name,argumentsDelta:JSON.stringify(h.functionCall.args??{})}});g?.finishReason&&(m=g.finishReason),p.usageMetadata&&(c=p.usageMetadata)}c&&(yield{type:"usage",usage:Sn(c)}),yield{type:"finish",reason:m??"stop"}}}}function Hs(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=jt(n,r),s=r?.model??t.model;if(!s)throw new Error("googleAdapter: model required");let i=G(),a=await e.models.generateContent({...o,model:s},{signal:r?.signal}),l=Math.max(0,(G()-i)/1e6);return qr(a,l)},async*stream(n,r){if(!e.models.generateContentStream)throw new Error("sdkBackedGoogle: SDK instance does not expose generateContentStream");let o=jt(n,r),s=r?.model??t.model;if(!s)throw new Error("googleAdapter: model required");let i,a;for await(let l of e.models.generateContentStream({...o,model:s},{signal:r?.signal})){let u=l.candidates?.[0];for(let d of u?.content?.parts??[])typeof d.text=="string"&&(d.thought?yield{type:"thinking",delta:d.text}:yield{type:"token",delta:d.text}),d.functionCall&&(yield{type:"tool-call-delta",delta:{name:d.functionCall.name,argumentsDelta:JSON.stringify(d.functionCall.args??{})}});u?.finishReason&&(a=u.finishReason),l.usageMetadata&&(i=l.usageMetadata)}i&&(yield{type:"usage",usage:Sn(i)}),yield{type:"finish",reason:a??"stop"}}}}async function*zs(t){let e=t.getReader(),n=new TextDecoder,r="";try{for(;;){let{done:o,value:s}=await e.read();if(o){r.length>0&&(yield Hr(r));return}r+=n.decode(s,{stream:!0});let i=zr(r);for(;i!==null;){let a=r.slice(0,i.index);r=r.slice(i.index+i.length);let l=Hr(a);(l.data||l.event)&&(yield l),i=zr(r)}}}finally{e.releaseLock()}}function Hr(t){let e={},n=[];for(let r of t.split(`
|
|
12
|
+
`)){let o=r.endsWith("\r")?r.slice(0,-1):r;if(!o||o.startsWith(":"))continue;let s=o.indexOf(":"),i=s===-1?o:o.slice(0,s),a=s===-1?"":o.slice(s+1).replace(/^ /,"");i==="data"?n.push(a):i==="event"?e.event=a:i==="id"&&(e.id=a)}return n.length>0&&(e.data=n.join(`
|
|
13
|
+
`)),e}function zr(t){let e=t.indexOf(`\r
|
|
19
14
|
\r
|
|
20
15
|
`),n=t.indexOf(`
|
|
21
16
|
|
|
22
|
-
`),r=null;return e!==-1&&(r={index:e,length:4}),n!==-1&&(r===null||n<r.index)&&(r={index:n,length:2}),r}async function
|
|
23
|
-
`)){let o=r.endsWith("\r")?r.slice(0,-1):r;if(!o||o.startsWith(":"))continue;let
|
|
24
|
-
`)),e}function
|
|
17
|
+
`),r=null;return e!==-1&&(r={index:e,length:4}),n!==-1&&(r===null||n<r.index)&&(r={index:n,length:2}),r}async function Wr(t){let e;try{e=await t.text()}catch{e=""}let n=new Error(`Google API ${t.status}: ${t.statusText}${e?` \u2014 ${e}`:""}`);return n.status=t.status,n.headers=t.headers,n}he();var Ws={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 On(t={}){return t.sdk?Qs(t):Xs(t)}function Vt(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 i=t.map(qs);e?.systemPrompt&&!t.some(l=>l.role==="system")&&i.unshift({role:"system",content:e.systemPrompt});let a={model:s,messages:i};return e?.maxTokens!=null&&(a.max_tokens=e.maxTokens),e?.temperature!=null&&(a.temperature=e.temperature),e?.tools&&e.tools.length>0&&(a.tools=e.tools.map(Js)),e?.maxReasoningTokens!=null&&(a.reasoning={max_tokens:e.maxReasoningTokens}),r&&(a.stream=!0,a.stream_options={include_usage:!0}),o&&Object.assign(a,o),e?.providerExtras&&Object.assign(a,e.providerExtras),a}function qs(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 Js(t){return{type:"function",function:{name:t.name,description:t.description,parameters:t.parameters}}}function Cn(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 Qr(t,e,n){let r=t.choices[0],o=r?.message,s=o?.content??"",i=(o?.tool_calls??[]).map(a=>({id:a.id,name:a.function.name,arguments:Ys(a.function.arguments)}));return{content:s,toolCalls:i.length>0?i:void 0,usage:Cn(t.usage),finishReason:r?.finish_reason,latencyMs:e,model:t.model,provider:n}}function Ys(t){try{let e=JSON.parse(t);return typeof e=="object"&&e!=null?e:{_raw:t}}catch{return{_raw:t}}}function Zr(t){let e=t.preset??"openai",n=Ws[e],r=t.baseURL??n.baseURL,o=t.provider??n.provider,s=n.apiKeyEnv,i=t.apiKey??(s?globalThis.process?.env?.[s]:void 0);return{provider:o,baseURL:r,apiKey:i}}function Xs(t){let{provider:e,baseURL:n,apiKey:r}=Zr(t),o=t.fetchImpl??fetch,s=e!=="ollama",i=()=>{let a={"content-type":"application/json",...t.headers??{}};if(s){if(!r)throw new Error(`openAICompatAdapter[${e}]: apiKey required for invoke/stream`);a.authorization=`Bearer ${r}`}return a};return{provider:e,model:t.model,async invoke(a,l){let u=Vt(a,l,t.model,!1,t.bodyExtras),d=G(),c=await o(`${n}/chat/completions`,{method:"POST",headers:i(),body:JSON.stringify(u),signal:l?.signal});if(!c.ok)throw await Xr(c,e);let m=await c.json(),f=Math.max(0,(G()-d)/1e6);return Qr(m,f,e)},async*stream(a,l){let u=Vt(a,l,t.model,!0,t.bodyExtras),d=await o(`${n}/chat/completions`,{method:"POST",headers:{...i(),accept:"text/event-stream"},body:JSON.stringify(u),signal:l?.signal});if(!d.ok)throw await Xr(d,e);if(!d.body)throw new Error(`openAICompatAdapter[${e}]: streaming response has no body`);let c,m;for await(let f of Zs(d.body)){if(!f.data||f.data==="[DONE]")continue;let p;try{p=JSON.parse(f.data)}catch{continue}let g=p.choices;if(g){let h=g[0];if(h?.delta?.content&&(yield{type:"token",delta:h.delta.content}),h?.delta?.reasoning_content&&(yield{type:"thinking",delta:h.delta.reasoning_content}),h?.delta?.tool_calls)for(let y of h.delta.tool_calls)yield{type:"tool-call-delta",delta:{id:y.id,name:y.function?.name,argumentsDelta:y.function?.arguments}};h?.finish_reason&&(m=h.finish_reason)}p.usage&&(c=p.usage,yield{type:"usage",usage:Cn(c)})}yield{type:"finish",reason:m??"stop"}}}}function Qs(t){let e=t.sdk;if(!e)throw new Error("sdkBackedOpenAI: sdk instance required");let{provider:n}=Zr(t);return{provider:n,model:t.model,async invoke(r,o){let s=Vt(r,o,t.model,!1,t.bodyExtras),i=G(),a=await e.chat.completions.create(s,{signal:o?.signal}),l=Math.max(0,(G()-i)/1e6);return Qr(a,l,n)},async*stream(r,o){let s=Vt(r,o,t.model,!0,t.bodyExtras),i=await e.chat.completions.create(s,{signal:o?.signal}),a,l;for await(let u of i){let d=u.choices;if(d){let m=d[0];if(m?.delta?.content&&(yield{type:"token",delta:m.delta.content}),m?.delta?.reasoning_content&&(yield{type:"thinking",delta:m.delta.reasoning_content}),m?.delta?.tool_calls)for(let f of m.delta.tool_calls)yield{type:"tool-call-delta",delta:{id:f.id,name:f.function?.name,argumentsDelta:f.function?.arguments}};m?.finish_reason&&(l=m.finish_reason)}let c=u.usage;c&&(a=c,yield{type:"usage",usage:Cn(c)})}yield{type:"finish",reason:l??"stop"}}}}async function*Zs(t){let e=t.getReader(),n=new TextDecoder,r="";try{for(;;){let{done:o,value:s}=await e.read();if(o){r.length>0&&(yield Jr(r));return}r+=n.decode(s,{stream:!0});let i=Yr(r);for(;i!==null;){let a=r.slice(0,i.index);r=r.slice(i.index+i.length);let l=Jr(a);(l.data||l.event)&&(yield l),i=Yr(r)}}}finally{e.releaseLock()}}function Jr(t){let e={},n=[];for(let r of t.split(`
|
|
18
|
+
`)){let o=r.endsWith("\r")?r.slice(0,-1):r;if(!o||o.startsWith(":"))continue;let s=o.indexOf(":"),i=s===-1?o:o.slice(0,s),a=s===-1?"":o.slice(s+1).replace(/^ /,"");i==="data"?n.push(a):i==="event"?e.event=a:i==="id"&&(e.id=a)}return n.length>0&&(e.data=n.join(`
|
|
19
|
+
`)),e}function Yr(t){let e=t.indexOf(`\r
|
|
25
20
|
\r
|
|
26
21
|
`),n=t.indexOf(`
|
|
27
22
|
|
|
28
|
-
`),r=null;return e!==-1&&(r={index:e,length:4}),n!==-1&&(r===null||n<r.index)&&(r={index:n,length:2}),r}async function go(t,e){let n;try{n=await t.text()}catch{n=""}let r=new Error(`${e} API ${t.status}: ${t.statusText}${n?` \u2014 ${n}`:""}`);return r.status=t.status,r.headers=t.headers,r}function bi(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 En(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 Ln(e)}case"dry-run":{let e={model:t.model,...t.extras};return Oe(e)}case"fallback":{let e={provider:t.provider,model:t.model,...t.extras};return Cn(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 In(e)}default:{let e=t.provider;throw new Error(`createAdapter: unknown provider: ${String(e)}`)}}}pe();fe();ye();function Se(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 ze(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 vo(){return{input:{regular:0},output:{regular:0}}}function vi(t,e){let n=e?.logMax??1e3,r=Le(void 0,{name:e?.name?`${e.name}/stats`:"adapterStats",maxSize:n}),o=C(null,{name:"adapterStats/lastCall"}),i=C(0,{name:"adapterStats/totalCalls"}),s=C(0,{name:"adapterStats/totalInputTokens"}),a=C(0,{name:"adapterStats/totalOutputTokens"}),l=m=>{r.append(m),o.emit(m),i.emit((i.cache??0)+1),s.emit((s.cache??0)+Se(m.usage)),a.emit((a.cache??0)+ze(m.usage))},d=()=>{r.clear(),o.emit(null),i.emit(0),s.emit(0),a.emit(0)};return{adapter:{provider:t.provider,model:t.model,capabilities:t.capabilities?.bind(t),invoke(m,f){let p=D(),g=ge(),h=t.invoke(m,f),y=b=>{let T=D();return l({timestamp:T,wallClock:g,provider:t.provider,model:t.model??f?.model??b.model??"",tier:f?.tier??b.tier,usage:b.usage??Gn(),latencyMs:Math.max(0,(T-p)/1e6),method:"invoke"}),b};if(h!=null&&typeof h.then=="function")return h.then(y);if(h!=null&&typeof h=="object"&&"content"in h)return y(h);let v=!1;return $([z(h)],([b])=>b==null||v?b:(v=!0,y(b)),{name:"adapterStats/invokeTap"})},async*stream(m,f){let p=D(),g=ge(),h;try{for await(let v of t.stream(m,f))v.type==="usage"&&(h=v.usage),yield v;let y=D();l({timestamp:y,wallClock:g,provider:t.provider,model:t.model??f?.model??"",tier:f?.tier,usage:h??Gn(),latencyMs:Math.max(0,(y-p)/1e6),method:"stream"})}catch(y){let v=D(),b=y;throw l({timestamp:v,wallClock:g,provider:t.provider,model:t.model??f?.model??"",tier:f?.tier,usage:h??Gn(),latencyMs:Math.max(0,(v-p)/1e6),method:"stream",error:{type:b?.name??"Error",message:b?.message??String(y)}}),y}}},stats:{lastCall:o,allCalls:r,totalCalls:i,totalInputTokens:s,totalOutputTokens:a,reset:d}}}function Gn(){return{input:{regular:0},output:{regular:0}}}function Ti(t,e){return t==null?0:typeof t=="number"?t:t.thresholdTokens!=null&&t.pricePerMillionAbove!=null&&e>t.thresholdTokens?t.pricePerMillionAbove:t.pricePerMillion}function Fn(t="USD"){return{total:0,currency:t}}function To(t,e,n){let r=Se(t),o=e.currency??"USD",i=n?.withBreakdown===!0,s=i?{}:null,a=0,l=(h,y,v)=>{if(!y||v==null)return;let b=Ti(v,r),T=y*b/1e6;a+=T,i&&(s[h]=(s[h]??0)+T)},d=t.input,u=e.input;if(u&&(l("input.regular",d.regular,u.regular),l("input.cacheRead",d.cacheRead??0,u.cacheRead),l("input.cacheWrite5m",d.cacheWrite5m??0,u.cacheWrite5m),l("input.cacheWrite1h",d.cacheWrite1h??0,u.cacheWrite1h),l("input.cacheWriteOther",d.cacheWriteOther??0,u.cacheWriteOther),l("input.audio",d.audio??0,u.audio),l("input.image",d.image??0,u.image),l("input.video",d.video??0,u.video),l("input.toolUse",d.toolUse??0,u.toolUse),d.extensions&&u.extensions))for(let[h,y]of Object.entries(d.extensions))l(`input.ext.${h}`,y,u.extensions[h]);let c=t.output,m=e.output;if(m&&(l("output.regular",c.regular,m.regular),l("output.reasoning",c.reasoning??0,m.reasoning),l("output.audio",c.audio??0,m.audio),l("output.predictionAccepted",c.predictionAccepted??0,m.predictionAccepted),l("output.predictionRejected",c.predictionRejected??0,m.predictionRejected),c.extensions&&m.extensions))for(let[h,y]of Object.entries(c.extensions))l(`output.ext.${h}`,y,m.extensions[h]);let f=n?.tier;if(f&&e.tierMultipliers){let h=e.tierMultipliers[f];if(h!=null&&(a*=h,i))for(let y of Object.keys(s))s[y]*=h}let p=t.auxiliary,g=e.auxiliary;if(p&&g)for(let[h,y]of Object.entries(p)){let v=g[h];if(v==null||!y)continue;let b=y*v;a+=b,i&&(s[`auxiliary.${h}`]=b)}return i?{total:a,currency:o,breakdown:s}:{total:a,currency:o}}function Wt(t,e){return`${t}::${e}`}function wi(t){let e=new Map,n=new Map,r=(o,i,s)=>{e.set(Wt(o,i),{provider:o,model:i,pricing:s});let a=n.get(o);a||(a=new Set,n.set(o,a)),a.add(i)};if(t)for(let[o,i,s]of t)r(o,i,s);return{register:r,lookup(o,i){let s=e.get(Wt(o,i));if(s)return s.pricing;let a=n.get(o);if(!a)return;let l;for(let d of a)if(i.startsWith(d)&&(!l||d.length>l.key.length)){let u=e.get(Wt(o,d));u&&(l={key:d,pricing:u.pricing})}return l?.pricing},remove(o,i){let s=e.delete(Wt(o,i));if(s){let a=n.get(o);a?.delete(i),a&&a.size===0&&n.delete(o)}return s},entries(){let o=e.values();return(function*(){for(let{provider:i,model:s,pricing:a}of o)yield[i,s,a]})()}}}function ki(t,e="USD"){return(n,r)=>{let o=t.lookup(r.provider,r.model);return o?To(n,o,{tier:r.tier,withBreakdown:r.withBreakdown}):Fn(e)}}function _i(...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):Fn()}}Xe();function $n(t,e={}){let n=e.breaker??at(e);return{adapter:{provider:t.provider,model:t.model,capabilities:t.capabilities?.bind(t),async invoke(o,i){if(!n.canExecute())throw new Ce;try{let s=await Promise.resolve(t.invoke(o,i));return n.recordSuccess(),s}catch(s){throw n.recordFailure(s),s}},async*stream(o,i){if(!n.canExecute())throw new Ce;try{for await(let s of t.stream(o,i))yield s;n.recordSuccess()}catch(s){throw n.recordFailure(s),s}}},breaker:n}}pe();ue();fe();ye();var qt=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"},Bn=Object.freeze({calls:0,inputTokens:0,outputTokens:0,usd:0}),wo=()=>({calls:0,inputTokens:0,outputTokens:0,usd:0});function jn(t,e){let n=Le(void 0,{name:e.name?`${e.name}/log`:"budgetGate/log",maxSize:e.logMax??1e3}),r=C(wo(),{name:e.name?`${e.name}/totals`:"budgetGate/totals"}),o=$([r],([u])=>{let c=u;return!(e.caps.calls!=null&&c.calls>=e.caps.calls||e.caps.inputTokens!=null&&c.inputTokens>=e.caps.inputTokens||e.caps.outputTokens!=null&&c.outputTokens>=e.caps.outputTokens||e.caps.usd!=null&&c.usd>=e.caps.usd)},{name:e.name?`${e.name}/isOpen`:"budgetGate/isOpen",initial:!0});if(ne(o),e.onExhausted!=null){let u=e.onExhausted,c=!1,m=!0;o.subscribe(f=>{for(let p of f)if(p[0]===A){let g=p[1];if(c&&m&&g===!1){let h=ko(r.cache??Bn,e.caps);h&&u(h)}m=g,c=!0}})}let i=()=>{if(o.cache===!1){let u=r.cache??Bn,c=ko(u,e.caps);return new qt(c??"budget",e.caps[c??"calls"]??0,xi(u,c??"calls"))}},s=(u,c)=>{let m=t.provider,f={timestamp:D(),wallClock:ge(),provider:m,model:c.model,tier:c.tier,usage:u,latencyMs:c.latencyMs,method:c.method,...c.error?{error:c.error}:{}};n.append(f);let p=r.cache??Bn,g=e.pricingFn?p.usd+e.pricingFn(u,{model:c.model,provider:m,tier:c.tier}).total:p.usd;r.emit({calls:p.calls+1,inputTokens:p.inputTokens+Se(u),outputTokens:p.outputTokens+ze(u),usd:g})},a=()=>{n.clear(),r.emit(wo())},l=()=>({input:{regular:0},output:{regular:0}});return{adapter:{provider:t.provider,model:t.model,capabilities:t.capabilities?.bind(t),invoke(u,c){let m=i();if(m)return Promise.reject(m);let f=D(),p=t.invoke(u,c),g=y=>{let v=Math.max(0,(D()-f)/1e6);return s(y.usage??l(),{model:t.model??c?.model??y.model??"",tier:c?.tier??y.tier,latencyMs:v,method:"invoke"}),y};if(p!=null&&typeof p.then=="function")return p.then(g);if(p!=null&&typeof p=="object"&&"content"in p)return g(p);let h=!1;return $([z(p)],([y])=>y==null||h?y:(h=!0,g(y)),{name:"budgetGate/invokeTap"})},async*stream(u,c){let m=i();if(m)throw m;let f=D(),p;try{for await(let g of t.stream(u,c))g.type==="usage"&&(p=g.usage),yield g;s(p??l(),{model:t.model??c?.model??"",tier:c?.tier,latencyMs:Math.max(0,(D()-f)/1e6),method:"stream"})}catch(g){let h=g;throw s(p??l(),{model:t.model??c?.model??"",tier:c?.tier,latencyMs:Math.max(0,(D()-f)/1e6),method:"stream",error:{type:h?.name??"Error",message:h?.message??String(g)}}),g}}},budget:{totals:r,isOpen:o,log:n,reset:a}}}function ko(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 xi(t,e){switch(e){case"calls":return t.calls;case"inputTokens":return t.inputTokens;case"outputTokens":return t.outputTokens;case"usd":return t.usd}}ye();function Ri(t,e){let n=e.mock??Oe({provider:t.provider,model:t.model}),r=typeof e.enabled=="boolean"?e.enabled:void 0,o=r===void 0?z(e.enabled):void 0,i;o&&(i=ne(o));let s=()=>r!==void 0?r:!!o?.cache;return{adapter:{provider:t.provider,model:t.model,capabilities:t.capabilities?.bind(t),invoke(d,u){return s()?n.invoke(d,u):t.invoke(d,u)},stream(d,u){return s()?n.stream(d,u):t.stream(d,u)}},dispose:()=>{i&&(i(),i=void 0)}}}function Vn(t){if(t==null||typeof t!="object")return;let e=t,n=e.status,r=Mi(e.headers);if(n!==429&&n!==503&&!Ci(e.message))return;let o={},i=r("retry-after"),s=Ei(i);s!=null&&(o.retryAfterMs=s);let a=r("anthropic-ratelimit-requests-reset");if(a){let f=_o(a);f!=null&&(o.retryAfterMs=Math.max(o.retryAfterMs??0,f))}let l=r("anthropic-ratelimit-tokens-reset");if(l){let f=_o(l);f!=null&&(o.retryAfterMs=Math.max(o.retryAfterMs??0,f))}let d=Jt(r,"x-ratelimit-limit-requests");d!=null&&(o.rpmCap=d);let u=Jt(r,"x-ratelimit-limit-tokens");u!=null&&(o.tpmCap=u);let c=Jt(r,"x-ratelimit-remaining-requests"),m=Jt(r,"x-ratelimit-remaining-tokens");if(c!=null&&d!=null&&d>0&&(o.usageHint??={},o.usageHint.rpm=1-c/d),m!=null&&u!=null&&u>0&&(o.usageHint??={},o.usageHint.tpm=1-m/u),o.retryAfterMs==null&&e.message){let f=Si(e.message);f!=null&&(o.retryAfterMs=f)}return e.headers&&(o.metadata={headers:Ni(e.headers)}),o.retryAfterMs==null&&o.rpmCap==null&&o.tpmCap==null&&o.usageHint==null?o.metadata?o:void 0:o}function Mi(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 i=Array.isArray(o)?o.join(", "):o;i!=null&&(n[r.toLowerCase()]=i)}return r=>n[r.toLowerCase()]}function Ni(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 Jt(t,e){let n=t(e);if(n==null)return;let r=Number(n);return Number.isFinite(r)?r:void 0}function Ei(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 _o(t){if(!t)return;let e=Date.parse(t);if(Number.isFinite(e))return Math.max(0,e-Date.now())}var Oi=/retry\s+(?:in|after)\s+(\d+(?:\.\d+)?)\s*(ms|s|sec|seconds?|m|min|minutes?)/i;function Si(t){let e=Oi.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 Ai=/rate\s*limit|too\s*many\s*requests|quota|429/i;function Ci(t){return!!t&&Ai.test(t)}pe();ue();fe();Xe();ye();Ee();function Kn(t){let e=new Error(t);return e.name="AbortError",e}function Ro(t={}){let e=Math.max(1,t.burstMultiplier??1),n=t.clampCooldownMs??6e4,r=t.rpm!=null?z(t.rpm):C(Number.POSITIVE_INFINITY),o=t.tpm!=null?z(t.tpm):C(Number.POSITIVE_INFINITY),i=C(Number.POSITIVE_INFINITY,{name:"adaptiveRateLimiter/signalRpmCap"}),s=C(Number.POSITIVE_INFINITY,{name:"adaptiveRateLimiter/signalTpmCap"}),a=C({},{name:"adaptiveRateLimiter/lastSignal"}),l=$([r,i],([R,K])=>Math.min(Number(R??1/0),Number(K??1/0)),{name:"adaptiveRateLimiter/effectiveRpm"}),d=$([o,s],([R,K])=>Math.min(Number(R??1/0),Number(K??1/0)),{name:"adaptiveRateLimiter/effectiveTpm"}),u=et(Number(r.cache??Number.POSITIVE_INFINITY),e),c=et(Number(o.cache??Number.POSITIVE_INFINITY),e),m=!1,f=!1,p=l.subscribe(R=>{for(let K of R)if(K[0]===A){let W=Number(K[1]);Number.isFinite(W)&&W>0?(u=et(W,e),m=!1):W===1/0?(u=et(1/0,e),m=!1):W<=0&&(m=!0)}}),g=d.subscribe(R=>{for(let K of R)if(K[0]===A){let W=Number(K[1]);Number.isFinite(W)&&W>0?(c=et(W,e),f=!1):W===1/0?(c=et(1/0,e),f=!1):W<=0&&(f=!0)}}),h=0,y=new Z,v=new Z,b;t.adaptation!=null&&(b=z(t.adaptation).subscribe(K=>{for(let W of K)W[0]===A&&T(W[1])}));function T(R){if(a.emit(R),R.rpmCap!=null&&Number.isFinite(R.rpmCap)&&R.rpmCap>=0&&(i.emit(R.rpmCap),Number.isFinite(n)&&n>0&&y.start(n,()=>i.emit(Number.POSITIVE_INFINITY))),R.tpmCap!=null&&Number.isFinite(R.tpmCap)&&R.tpmCap>=0&&(s.emit(R.tpmCap),Number.isFinite(n)&&n>0&&v.start(n,()=>s.emit(Number.POSITIVE_INFINITY))),R.retryAfterMs!=null&&R.retryAfterMs>0){let K=D()+R.retryAfterMs*1e6;K>h&&(h=K)}}let w=C(0,{name:"adaptiveRateLimiter/pending"}),k=C(Number.POSITIVE_INFINITY,{name:"adaptiveRateLimiter/rpmAvailable"}),_=C(Number.POSITIVE_INFINITY,{name:"adaptiveRateLimiter/tpmAvailable"}),N=R=>{w.emit((w.cache??0)+R)},x=()=>{k.emit(u.available()),_.emit(c.available())};async function V(R={}){let K=R.requestCost??1,W=R.tokenCost??0,E=R.signal;N(1);try{for(;;){if(E?.aborted)throw Kn("AdaptiveRateLimiter.acquire aborted");let M=D();if(h>M){let be=Math.ceil((h-M)/1e6);await Yt(be,E);continue}if(K>0&&m||W>0&&f){await Yt(250,E);continue}let F=u,j=c;if(!F.tryConsume(K)){await Yt(xo(F,K),E);continue}if(!(W>0?j.tryConsume(W):!0)){F.putBack(K),await Yt(xo(j,W),E);continue}x();return}}finally{N(-1)}}function L(R){R>0?c.tryConsume(R):R<0&&c.putBack(-R),x()}function I(){p(),g(),b?.(),y.cancel(),v.cancel()}return{effectiveRpm:l,effectiveTpm:d,lastSignal:a,pending:w,rpmAvailable:k,tpmAvailable:_,acquire:V,recordUsage:L,recordSignal:T,dispose:I}}function et(t,e){if(!Number.isFinite(t)||t===1/0)return lt(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER);let n=Math.max(1,t*e),r=t/60;return lt(n,r)}function xo(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 Yt(t,e){return t<=0?Promise.resolve():e?.aborted?Promise.reject(Kn("AdaptiveRateLimiter.acquire aborted")):new Promise((n,r)=>{let o=new Z,i,s=()=>{o.cancel(),e&&i&&e.removeEventListener("abort",i)};o.start(t,()=>{s(),n()}),e&&(i=()=>{s(),r(Kn("AdaptiveRateLimiter.acquire aborted"))},e.addEventListener("abort",i,{once:!0}))})}ye();function Un(t,e={}){let n=e.limiter??Ro({name:e.name??"rateLimiter",rpm:e.rpm,tpm:e.tpm,adaptation:e.adaptation,burstMultiplier:e.burstMultiplier}),r=(s,a)=>e.costFn?e.costFn(s,a):0,o=s=>{let a=Vn(s);a&&n.recordSignal(a)};return{adapter:{provider:t.provider,model:t.model,capabilities:t.capabilities?.bind(t),async invoke(s,a){let l=r(s,a);await n.acquire({requestCost:1,tokenCost:l,signal:a?.signal});try{let d=t.invoke(s,a),u=await Li(d),c=u.usage??vo(),f=Se(c)+ze(c)-l;return f>0&&n.recordUsage(f),u}catch(d){throw o(d),d}},async*stream(s,a){let l=r(s,a);await n.acquire({requestCost:1,tokenCost:l,signal:a?.signal});try{let d=0;for await(let c of t.stream(s,a))c.type==="usage"&&(d=Se(c.usage)+ze(c.usage)),yield c;let u=d-l;u>0&&n.recordUsage(u)}catch(d){throw o(d),d}}},limiter:n}}async function Li(t){return t!=null&&typeof t.then=="function"?await t:t&&typeof t=="object"&&"content"in t?t:await At(z(t))}Xe();var pt=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 zn(t,e={}){if(t.length===0)throw new RangeError("cascadingLlmAdapter: tiers must be non-empty");let n=t.map(o=>({name:o.name,adapter:o.adapter,filter:o.filter,breaker:o.breaker?"canExecute"in o.breaker?o.breaker:at(o.breaker):void 0})),r=e.streamRetryBeforeFirstChunk??!0;return{provider:"cascading",model:void 0,async invoke(o,i){let s=[],a=new Map;for(let d=0;d<n.length;d++){let u=n[d];if(u.filter&&!u.filter(o,i)){s.push({name:u.name,reason:"filter"});continue}if(u.breaker&&!u.breaker.canExecute()){s.push({name:u.name,reason:"breaker"});continue}try{let c=await Promise.resolve(u.adapter.invoke(o,i));return u.breaker?.recordSuccess(),{...c,metadata:{...c.metadata??{},tier:u.name}}}catch(c){a.set(u.name,c),u.breaker?.recordFailure(c);let m=n[d+1];m&&e.onFallback?.(u.name,m.name,c)}}let l={skipped:s,failed:a};throw e.onExhausted?.(l),new pt(l)},async*stream(o,i){let s=[],a=new Map;for(let d=0;d<n.length;d++){let u=n[d];if(u.filter&&!u.filter(o,i)){s.push({name:u.name,reason:"filter"});continue}if(u.breaker&&!u.breaker.canExecute()){s.push({name:u.name,reason:"breaker"});continue}let c=!1;try{for await(let m of u.adapter.stream(o,i))c=!0,yield m;u.breaker?.recordSuccess();return}catch(m){if(a.set(u.name,m),u.breaker?.recordFailure(m),c||!r)throw m;let f=n[d+1];f&&e.onFallback?.(u.name,f.name,m)}}let l={skipped:s,failed:a};throw e.onExhausted?.(l),new pt(l)}}}Ee();function Qt(t="aborted"){let e=new Error(t);return e.name="AbortError",e}function Mo(t,e){return t<=0?Promise.resolve():e?.aborted?Promise.reject(Qt()):new Promise((n,r)=>{let o=new Z,i,s=()=>{o.cancel(),e&&i&&e.removeEventListener("abort",i)};o.start(t,()=>{s(),n()}),e&&(i=()=>{s(),r(Qt())},e.addEventListener("abort",i,{once:!0}))})}function Hn(t,e={}){let n=e.attempts??3,r=e.baseDelayMs??500,o=e.maxDelayMs??1e4,i=e.strategy??"decorrelated",s=e.jitter??!0,a=e.shouldRetry??Di,l=e.retryStreaming??!0,d=(u,c)=>{if(i==="decorrelated"){let g=Math.min(o,Math.max(r,c*3));return r+Math.random()*(g-r)}let m=i==="exp"?r*2**(u-1):r*u,f=Math.min(o,m);if(!s)return f;let p=f*(.5+Math.random());return Math.min(o,p)};return{provider:t.provider,model:t.model,capabilities:t.capabilities?.bind(t),async invoke(u,c){if(c?.signal?.aborted)throw Qt();let m,f=r;for(let p=1;p<=n;p++)try{return await Promise.resolve(t.invoke(u,c))}catch(g){if(m=g,p>=n||!a(g,p))throw g;let h=d(p,f);f=h,await Mo(h,c?.signal)}throw m},async*stream(u,c){if(c?.signal?.aborted)throw Qt();if(!l){for await(let p of t.stream(u,c))yield p;return}let m,f=r;for(let p=1;p<=n;p++){let g=!1;try{for await(let h of t.stream(u,c))g=!0,yield h;return}catch(h){if(m=h,g||p>=n||!a(h,p))throw h;let y=d(p,f);f=y,await Mo(y,c?.signal)}}throw m}}}function Di(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}Ee();var tt=class extends Error{constructor(n){super(`LLM call timed out after ${n}ms`);this.ms=n}name="LLMTimeoutError"};function Wn(t,e){if(e<=0)throw new RangeError("withTimeout: ms must be > 0");let n=o=>{let i=new AbortController,s=!1,a;o&&(o.aborted?i.abort(o.reason):(a=()=>i.abort(o.reason),o.addEventListener("abort",a,{once:!0})));let l=new Z;return l.start(e,()=>{s=!0,i.abort(new tt(e))}),{signal:i.signal,cancel:()=>{l.cancel(),o&&a&&o.removeEventListener("abort",a)},timedOut:()=>s}},r=(o,i)=>{if(!i||o instanceof tt)throw o;let s=o;if(s?.name==="AbortError"||s?.name==="DOMException"&&Number(s.code)===20||o?.message==="aborted"){let l=new tt(e);throw l.cause=o,l}throw o};return{provider:t.provider,model:t.model,capabilities:t.capabilities?.bind(t),async invoke(o,i){let{signal:s,cancel:a,timedOut:l}=n(i?.signal);try{return await Promise.resolve(t.invoke(o,{...i,signal:s}))}catch(d){return r(d,l())}finally{a()}},async*stream(o,i){let{signal:s,cancel:a,timedOut:l}=n(i?.signal);try{for await(let d of t.stream(o,{...i,signal:s}))yield d}catch(d){r(d,l())}finally{a()}}}}function Ii(t,e={}){let n={adapter:t},r=t;if(e.rateLimit){let o=Un(r,e.rateLimit);r=o.adapter,n.rateLimiter=o.limiter}if(e.budget){let o=jn(r,e.budget);r=o.adapter,n.budget=o.budget}if(e.breaker){let o=$n(r,e.breaker);r=o.adapter,n.breaker=o.breaker}if(e.timeoutMs!=null&&(r=Wn(r,e.timeoutMs)),e.retry&&(r=Hn(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=zn([{name:e.name??"primary",adapter:r},{name:"fallback",adapter:e.fallback}],o)}return n.adapter=r,n}function Pi(){return Oe()}function ee(t,e){return Ze("ai",t,e)}function Gi(t){return t!=null&&typeof t.then=="function"}function Fi(t){return typeof t=="object"&&t!==null&&"subscribe"in t&&typeof t.subscribe=="function"&&"cache"in t}function $i(t){return t!=null&&typeof t=="object"&&Symbol.asyncIterator in t&&typeof t[Symbol.asyncIterator]=="function"}var Bi=3e4;function No(t,e){if(t.status==="settled"){let r=t.cache;if(r!==void 0)return Promise.resolve(r)}let n=e?.timeoutMs??Bi;return new Promise((r,o)=>{let i=new Z,s=t.subscribe(a=>{for(let l of a){if(l[0]===A){i.cancel(),s(),r(l[1]);return}if(l[0]===O){i.cancel(),s(),o(l[1]);return}if(l[0]===P){i.cancel(),s(),o(new Error("firstDataFromNode: completed without producing a value"));return}}});i.start(n,()=>{s(),o(new Error(`firstDataFromNode: timed out after ${n}ms`))})})}async function tn(t){return Gi(t)?tn(await t):Fi(t)?No(t):$i(t)?No(z(t)):t}function ji(t,e){let n=z(t),r=e?.refreshTrigger!=null?z(e.refreshTrigger):null;return r==null?se([n],(o,i,s)=>{if(s.store.emitted===!0)return;let l=o[0],d=l!=null&&l.length>0?l.at(-1):s.prevData[0];if(d!==void 0)return s.store.emitted=!0,i.emit(d),{invalidate:()=>{s.store.emitted=!1}}},{name:e?.name??"frozenContext",describeKind:"derived",initial:null,meta:ee("frozen_context")}):se([n,r],(o,i,s)=>{let a=o[1];if(!(a!=null&&a.length>0))return;let d=o[0],u=d!=null&&d.length>0?d.at(-1):s.prevData[0];i.emit(u)},{name:e?.name??"frozenContext",describeKind:"derived",initial:null,meta:ee("frozen_context")})}function Vi(t,e,n){let r=z(e);return we(r,i=>{if(!i||i.length===0)return C(null);let s=n?.tools;return t.invoke(i,{model:n?.model,temperature:n?.temperature,maxTokens:n?.maxTokens,tools:s,systemPrompt:n?.systemPrompt})})}function Ki(t,e,n,r){let o=r?.name??"llm",i=r?.format??"text",s=Nn(`${o}/stream`),a=$(e,u=>{if(u.some(f=>f==null))return[];let c=typeof n=="string"?n:n(...u);if(!c)return[];let m=[];return r?.systemPrompt&&m.push({role:"system",content:r.systemPrompt}),m.push({role:"user",content:c}),m}),l=we(a,u=>{let c=u;if(!c||c.length===0)return C(null);let m=new AbortController;async function*f(){let p="",g=0;try{for await(let y of t.stream(c,{model:r?.model,temperature:r?.temperature,maxTokens:r?.maxTokens,systemPrompt:r?.systemPrompt,signal:m.signal})){if(y.type!=="token")continue;let v=y.delta;p+=v,s.publish({source:o,token:v,accumulated:p,index:g++})}let h;if(i==="json")try{h=JSON.parse(nn(p))}catch{h=null}else h=p;yield h}finally{m.abort()}}return z(f())}),d=ne(l);return{output:l,stream:s,dispose:()=>{d(),s.destroy()}}}function Ui(t,e,n){return $([t.latest],([r])=>r==null?null:e(r.accumulated),{name:n?.name??"extractor",describeKind:"derived",initial:null,meta:ee("stream_extractor"),...n?.equals?{equals:n.equals}:{}})}var zi=(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 Hi(t,e){let n=e.maxPatternLength??128;return $([t.latest],([r],o)=>{if(r==null)return[];let i=r.accumulated;"flags"in o.store||(o.store.flags=[],o.store.scannedTo=0);let s=o.store.flags,a=o.store.scannedTo,l=Math.max(0,a-n),d=i.slice(l),u=!1;for(let{pattern:c,label:m}of e.patterns){let f=new RegExp(c.source,`${c.flags.replace("g","")}g`);for(let p of d.matchAll(f)){let g=l+p.index;g+p[0].length<=a||(s.push({label:m,pattern:c,match:p[0],position:g}),u=!0)}}return o.store.scannedTo=i.length,u?[...s]:s.slice()},{name:e.name??"keyword-flag-extractor",describeKind:"derived",initial:[],meta:ee("keyword_flag_extractor"),equals:zi})}var Wi=(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 qi(t,e){return $([t.latest],([n],r)=>{if(n==null)return[];let o=n.accumulated;"calls"in r.store||(r.store.calls=[],r.store.scanFrom=0);let i=r.store.calls,s=r.store.scanFrom,a=!1;for(;s<o.length;){let l=o.indexOf("{",s);if(l===-1){r.store.scanFrom=o.length;break}let d=0,u=-1,c=!1;for(let f=l;f<o.length;f++){let p=o[f];if(c)p==="\\"&&f+1<o.length?f++:p==='"'&&(c=!1);else if(p==='"')c=!0;else if(p==="{")d++;else if(p==="}"&&(d--,d===0)){u=f;break}}if(u===-1){r.store.scanFrom=l;break}let m=o.slice(l,u+1);try{let f=JSON.parse(m);typeof f.name=="string"&&f.arguments!=null&&typeof f.arguments=="object"&&(i.push({name:f.name,arguments:f.arguments,raw:m,startIndex:l}),a=!0)}catch{}s=u+1,r.store.scanFrom=s}return a?[...i]:i.slice()},{name:e?.name??"tool-call-extractor",describeKind:"derived",initial:[],meta:ee("tool_call_extractor"),equals:Wi})}var Ji=(t,e)=>t===e?!0:t.chunkCount===e.chunkCount&&t.charCount===e.charCount&&t.estimatedTokens===e.estimatedTokens;function Yi(t,e){let n=e?.charsPerToken??4;return $([t.latest],([r])=>{if(r==null)return{chunkCount:0,charCount:0,estimatedTokens:0};let o=r,i=o.accumulated.length;return{chunkCount:o.index+1,charCount:i,estimatedTokens:Math.ceil(i/n)}},{name:e?.name??"cost-meter",describeKind:"derived",initial:{chunkCount:0,charCount:0,estimatedTokens:0},meta:ee("cost_meter_extractor"),equals:Ji})}function Qi(t,e,n,r){let o=n??(()=>"[REDACTED]");function i(s){let a=s;for(let l of e){let d=l.global?l:new RegExp(l.source,`${l.flags}g`);a=a.replace(d,u=>o(u,l))}return a}return $([t.latest],([s])=>{if(s==null)return{source:"",token:"",accumulated:"",index:-1};let a=s,l=i(a.accumulated),d=i(a.token);return{source:a.source,token:d,accumulated:l,index:a.index}},{name:r?.name??"redactor"})}function Xi(t,e,n,r){let o=n*(r?.hardMultiplier??1.5),i=typeof e!="function",s=[t.latest];return i&&s.push(e),$(s,a=>{let l=a[0];if(l==null)return"allow";let d=i?a[1]??0:e(l.accumulated);return d>=o?"block":d>=n?"review":"allow"},{name:r?.name??"content-gate",initial:"allow"})}function Zi(t,e,n,r,o,i){let s=C(0,{name:`${e}/cancel`}),a=0,l=[...r,s],d=i?.name??e,u=i?.format??"text",c=Nn(`${d}/stream`),m=$(l,b=>{let T=b.slice(0,-1);if(T.some(_=>_==null))return[];let w=typeof o=="string"?o:o(...T);if(!w)return[];let k=[];return i?.systemPrompt&&k.push({role:"system",content:i.systemPrompt}),k.push({role:"user",content:w}),k}),f=we(m,b=>{let T=b;if(!T||T.length===0)return C(null);let w=new AbortController;async function*k(){let _="",N=0;try{for await(let V of n.stream(T,{model:i?.model,temperature:i?.temperature,maxTokens:i?.maxTokens,systemPrompt:i?.systemPrompt,signal:w.signal})){if(V.type!=="token")continue;let L=V.delta;_+=L,c.publish({source:d,token:L,accumulated:_,index:N++})}let x;if(u==="json")try{x=JSON.parse(nn(_))}catch{x=null}else x=_;yield x}finally{w.abort()}}return z(k())}),p=ne(f),g=$([f],([b])=>{if(b!=null)return b},{name:`${e}/filter`});t.add(g,{name:`${e}/raw`});let h=Zr(t,`${e}/gate`,`${e}/raw`,i?.gate),y=h.reject.bind(h),v={...h,reject(b=1){y(b),s.emit(++a)}};return{output:h.node,stream:c,gate:v,dispose:()=>{p(),c.destroy()}}}function ea(t){return t!=null&&typeof t=="object"&&"content"in t?String(t.content):typeof t=="string"?t:String(t)}function ta(t,e,n,r){let o=r?.format??"text",i=r?.retries??0,s=r?.cache??!1,a=s?new Map:null,l=$(e,u=>{if(u.some(f=>f==null))return[];let c=typeof n=="string"?n:n(...u);if(!c)return[];let m=[];return r?.systemPrompt&&m.push({role:"system",content:r.systemPrompt}),m.push({role:"user",content:c}),m},{name:r?.name?`${r.name}::messages`:"prompt_node::messages",meta:ee("prompt_node"),initial:[]});return we(l,u=>{if(!u||u.length===0)return C(null);let c=s?JSON.stringify(u.map(f=>[f.role,f.content])):"";if(a?.has(c))return C(a.get(c));async function m(f){try{let p=await new Promise((y,v)=>{let b=t.invoke(u,{model:r?.model,temperature:r?.temperature,maxTokens:r?.maxTokens,systemPrompt:r?.systemPrompt});b&&typeof b.then=="function"?b.then(y,v):b&&typeof b.subscribe=="function"?y(b.cache):y(b)}),g=ea(p),h;return o==="json"?h=JSON.parse(nn(g)):h=g,a?.set(c,h),h}catch(p){if(f>0)return m(f-1);throw p}}return m(i)})}function na(t,e,n){let r=z(t),o=n?.condition!=null?z(n.condition):null,i=C(null,{name:n?.name?`${n.name}::null`:"handoff::null"});if(o==null)return we(r,a=>{if(a==null)return i;let l=C(a);return e(l)});let s=$([r,o],([a,l])=>({v:a,open:l===!0}),{name:n?.name?`${n.name}::router`:"handoff::router",describeKind:"derived"});return we(s,({v:a,open:l})=>{if(a==null)return i;if(!l)return C(a);let d=C(a);return e(d)})}var Xt=class extends ce{_log;messages;latest;messageCount;constructor(e,n={}){super(e,n.graph),this._log=Le([],{name:"messages",maxSize:n.maxMessages}),this.messages=this._log.entries,this.add(this.messages,{name:"messages"}),this.latest=$([this.messages],([r])=>{let o=r;return o.length===0?null:o[o.length-1]},{name:"latest",describeKind:"derived",meta:ee("chat_latest")}),this.add(this.latest,{name:"latest"}),this.addDisposer(ne(this.latest)),this.messageCount=$([this.messages],([r])=>r.length,{name:"messageCount",describeKind:"derived",meta:ee("chat_message_count"),initial:0}),this.add(this.messageCount,{name:"messageCount"}),this.addDisposer(ne(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 So(t,e){return new Xt(t,e)}var Zt=class extends ce{definitions;schemas;constructor(e,n={}){super(e,n.graph),this.definitions=C(new Map,{name:"definitions",describeKind:"state",meta:ee("tool_definitions")}),this.add(this.definitions,{name:"definitions"}),this.schemas=$([this.definitions],([r])=>[...(r??new Map).values()],{name:"schemas",describeKind:"derived",meta:ee("tool_schemas"),initial:[]}),this.add(this.schemas,{name:"schemas"}),this.addDisposer(ne(this.schemas))}register(e){let n=this.definitions.cache,r=new Map(n);r.set(e.name,e),this.definitions.emit(r)}unregister(e){let n=this.definitions.cache;if(!n.has(e))return;let r=new Map(n);r.delete(e),this.definitions.emit(r)}async execute(e,n){let o=this.definitions.cache.get(e);if(!o)throw new Error(`toolRegistry: unknown tool "${e}"`);let i=o.handler(n);return tn(i)}getDefinition(e){return this.definitions.cache?.get(e)}};function Ao(t,e){return new Zt(t,e)}function ra(t,e,n){let r=z(t),o=e.map(s=>z(s)),i=[r,...o];return $(i,s=>{let a=s[0]??[],l=s.slice(1);return a.filter(d=>{for(let u of l)if(u!=null&&!u(d))return!1;return!0})},{name:n?.name??"tool-selector",describeKind:"derived",meta:ee("tool_selector"),equals:(s,a)=>{let l=s,d=a;if(l.length!==d.length)return!1;for(let u=0;u<l.length;u++)if(l[u]!==d[u])return!1;return!0}})}function oa(t,e){let n=e?.separator??`
|
|
23
|
+
`),r=null;return e!==-1&&(r={index:e,length:4}),n!==-1&&(r===null||n<r.index)&&(r={index:n,length:2}),r}async function Xr(t,e){let n;try{n=await t.text()}catch{n=""}let r=new Error(`${e} API ${t.status}: ${t.statusText}${n?` \u2014 ${n}`:""}`);return r.status=t.status,r.headers=t.headers,r}function ei(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 dn(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 An(e)}case"dry-run":{let e={model:t.model,...t.extras};return Ee(e)}case"fallback":{let e={provider:t.provider,model:t.model,...t.extras};return En(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 On(e)}default:{let e=t.provider;throw new Error(`createAdapter: unknown provider: ${String(e)}`)}}}he();X();Me();fe();X();var Ln=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 i=new Array(s);for(let a=0;a<s;a++)i[a]=this._buf[(this._head+o+a)%this._maxSize];return i}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}_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 eo(t){return t.subscribe(()=>{})}var ti=64;function De(t,e={}){let{name:n,maxSize:r,versioning:o,backend:s}=e,i=s??new Ln(t,r),a=S(i.toArray(),{name:n,describeKind:"state",equals:(p,g)=>p===g,...o!=null?{versioning:o}:{}});function l(){let p=i.toArray();se(()=>{a.down([[Y]]),a.down([[L,p]])})}let u=new Map,d=new Map;function c(p,g){return`${p}:${g===void 0?"END":g}`}function m(p){if(p.size<ti)return;let g=p.keys().next();if(g.done)return;let h=p.get(g.value);h!==void 0&&h.dispose(),p.delete(g.value)}function f(p){let g=i.version;try{return p()}finally{i.version!==g&&l()}}return{entries:a,get size(){return i.size},at(p){return i.at(p)},append(p){f(()=>i.append(p))},appendMany(p){p.length!==0&&f(()=>i.appendMany(p))},clear(){f(()=>i.clear())},trimHead(p){f(()=>i.trimHead(p))},tail(p){if(!Number.isInteger(p)||p<0)throw new RangeError(`tail: n must be a non-negative integer (got ${p})`);let g=u.get(p);if(g!==void 0)return u.delete(p),u.set(p,g),g.node;m(u);let h=C([a],([v])=>{let b=v;return p===0||b.length===0?[]:b.slice(Math.max(0,b.length-p))},{initial:i.tail(p),describeKind:"derived"}),y=eo(h);return u.set(p,{node:h,dispose:y}),h},slice(p,g){if(!Number.isInteger(p)||p<0)throw new RangeError(`slice: start must be a non-negative integer (got ${p})`);if(g!==void 0&&(!Number.isInteger(g)||g<0))throw new RangeError(`slice: stop must be a non-negative integer or undefined (got ${g})`);let h=c(p,g),y=d.get(h);if(y!==void 0)return d.delete(h),d.set(h,y),y.node;m(d);let v=C([a],([T])=>{let w=T;return g===void 0?w.slice(p):w.slice(p,g)},{initial:i.slice(p,g),describeKind:"derived"}),b=eo(v);return d.set(h,{node:v,dispose:b}),v},disposeTail(p){let g=u.get(p);return g===void 0?!1:(g.dispose(),u.delete(p),!0)},disposeSlice(p,g){let h=c(p,g),y=d.get(h);return y===void 0?!1:(y.dispose(),d.delete(h),!0)},disposeAllViews(){for(let p of u.values())p.dispose();u.clear();for(let p of d.values())p.dispose();d.clear()},dispose(){for(let p of u.values())p.dispose();u.clear();for(let p of d.values())p.dispose();d.clear()}}}re();function Se(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 Ue(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 to(){return{input:{regular:0},output:{regular:0}}}function ni(t,e){let n=e?.logMax??1e3,r=De(void 0,{name:e?.name?`${e.name}/stats`:"adapterStats",maxSize:n}),o=S(null,{name:"adapterStats/lastCall"}),s=S(0,{name:"adapterStats/totalCalls"}),i=S(0,{name:"adapterStats/totalInputTokens"}),a=S(0,{name:"adapterStats/totalOutputTokens"}),l=m=>{r.append(m),o.emit(m),s.emit((s.cache??0)+1),i.emit((i.cache??0)+Se(m.usage)),a.emit((a.cache??0)+Ue(m.usage))},u=()=>{r.clear(),o.emit(null),s.emit(0),i.emit(0),a.emit(0)};return{adapter:{provider:t.provider,model:t.model,capabilities:t.capabilities?.bind(t),invoke(m,f){let p=G(),g=be(),h=t.invoke(m,f),y=b=>{let T=G();return l({timestamp:T,wallClock:g,provider:t.provider,model:t.model??f?.model??b.model??"",tier:f?.tier??b.tier,usage:b.usage??Dn(),latencyMs:Math.max(0,(T-p)/1e6),method:"invoke"}),b};if(h!=null&&typeof h.then=="function")return h.then(y);if(h!=null&&typeof h=="object"&&"content"in h)return y(h);let v=!1;return C([$(h)],([b])=>b==null||v?b:(v=!0,y(b)),{name:"adapterStats/invokeTap"})},async*stream(m,f){let p=G(),g=be(),h;try{for await(let v of t.stream(m,f))v.type==="usage"&&(h=v.usage),yield v;let y=G();l({timestamp:y,wallClock:g,provider:t.provider,model:t.model??f?.model??"",tier:f?.tier,usage:h??Dn(),latencyMs:Math.max(0,(y-p)/1e6),method:"stream"})}catch(y){let v=G(),b=y;throw l({timestamp:v,wallClock:g,provider:t.provider,model:t.model??f?.model??"",tier:f?.tier,usage:h??Dn(),latencyMs:Math.max(0,(v-p)/1e6),method:"stream",error:{type:b?.name??"Error",message:b?.message??String(y)}}),y}}},stats:{lastCall:o,allCalls:r,totalCalls:s,totalInputTokens:i,totalOutputTokens:a,reset:u}}}function Dn(){return{input:{regular:0},output:{regular:0}}}function ri(t,e){return t==null?0:typeof t=="number"?t:t.thresholdTokens!=null&&t.pricePerMillionAbove!=null&&e>t.thresholdTokens?t.pricePerMillionAbove:t.pricePerMillion}function In(t="USD"){return{total:0,currency:t}}function no(t,e,n){let r=Se(t),o=e.currency??"USD",s=n?.withBreakdown===!0,i=s?{}:null,a=0,l=(h,y,v)=>{if(!y||v==null)return;let b=ri(v,r),T=y*b/1e6;a+=T,s&&(i[h]=(i[h]??0)+T)},u=t.input,d=e.input;if(d&&(l("input.regular",u.regular,d.regular),l("input.cacheRead",u.cacheRead??0,d.cacheRead),l("input.cacheWrite5m",u.cacheWrite5m??0,d.cacheWrite5m),l("input.cacheWrite1h",u.cacheWrite1h??0,d.cacheWrite1h),l("input.cacheWriteOther",u.cacheWriteOther??0,d.cacheWriteOther),l("input.audio",u.audio??0,d.audio),l("input.image",u.image??0,d.image),l("input.video",u.video??0,d.video),l("input.toolUse",u.toolUse??0,d.toolUse),u.extensions&&d.extensions))for(let[h,y]of Object.entries(u.extensions))l(`input.ext.${h}`,y,d.extensions[h]);let c=t.output,m=e.output;if(m&&(l("output.regular",c.regular,m.regular),l("output.reasoning",c.reasoning??0,m.reasoning),l("output.audio",c.audio??0,m.audio),l("output.predictionAccepted",c.predictionAccepted??0,m.predictionAccepted),l("output.predictionRejected",c.predictionRejected??0,m.predictionRejected),c.extensions&&m.extensions))for(let[h,y]of Object.entries(c.extensions))l(`output.ext.${h}`,y,m.extensions[h]);let f=n?.tier;if(f&&e.tierMultipliers){let h=e.tierMultipliers[f];if(h!=null&&(a*=h,s))for(let y of Object.keys(i))i[y]*=h}let p=t.auxiliary,g=e.auxiliary;if(p&&g)for(let[h,y]of Object.entries(p)){let v=g[h];if(v==null||!y)continue;let b=y*v;a+=b,s&&(i[`auxiliary.${h}`]=b)}return s?{total:a,currency:o,breakdown:i}:{total:a,currency:o}}function Kt(t,e){return`${t}::${e}`}function oi(t){let e=new Map,n=new Map,r=(o,s,i)=>{e.set(Kt(o,s),{provider:o,model:s,pricing:i});let a=n.get(o);a||(a=new Set,n.set(o,a)),a.add(s)};if(t)for(let[o,s,i]of t)r(o,s,i);return{register:r,lookup(o,s){let i=e.get(Kt(o,s));if(i)return i.pricing;let a=n.get(o);if(!a)return;let l;for(let u of a)if(s.startsWith(u)&&(!l||u.length>l.key.length)){let d=e.get(Kt(o,u));d&&(l={key:u,pricing:d.pricing})}return l?.pricing},remove(o,s){let i=e.delete(Kt(o,s));if(i){let a=n.get(o);a?.delete(s),a&&a.size===0&&n.delete(o)}return i},entries(){let o=e.values();return(function*(){for(let{provider:s,model:i,pricing:a}of o)yield[s,i,a]})()}}}function si(t,e="USD"){return(n,r)=>{let o=t.lookup(r.provider,r.model);return o?no(n,o,{tier:r.tier,withBreakdown:r.withBreakdown}):In(e)}}function ii(...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):In()}}tt();function Pn(t,e={}){let n=e.breaker??dt(e);return{adapter:{provider:t.provider,model:t.model,capabilities:t.capabilities?.bind(t),async invoke(o,s){if(!n.canExecute())throw new Le;try{let i=await Promise.resolve(t.invoke(o,s));return n.recordSuccess(),i}catch(i){throw n.recordFailure(i),i}},async*stream(o,s){if(!n.canExecute())throw new Le;try{for await(let i of t.stream(o,s))yield i;n.recordSuccess()}catch(i){throw n.recordFailure(i),i}}},breaker:n}}he();fe();X();re();var Ut=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"},Gn=Object.freeze({calls:0,inputTokens:0,outputTokens:0,usd:0}),ro=()=>({calls:0,inputTokens:0,outputTokens:0,usd:0});function Fn(t,e){let n=De(void 0,{name:e.name?`${e.name}/log`:"budgetGate/log",maxSize:e.logMax??1e3}),r=S(ro(),{name:e.name?`${e.name}/totals`:"budgetGate/totals"}),o=C([r],([d])=>{let c=d;return!(e.caps.calls!=null&&c.calls>=e.caps.calls||e.caps.inputTokens!=null&&c.inputTokens>=e.caps.inputTokens||e.caps.outputTokens!=null&&c.outputTokens>=e.caps.outputTokens||e.caps.usd!=null&&c.usd>=e.caps.usd)},{name:e.name?`${e.name}/isOpen`:"budgetGate/isOpen",initial:!0});if(Z(o),e.onExhausted!=null){let d=e.onExhausted,c=!1,m=!0;o.subscribe(f=>{for(let p of f)if(p[0]===L){let g=p[1];if(c&&m&&g===!1){let h=oo(r.cache??Gn,e.caps);h&&d(h)}m=g,c=!0}})}let s=()=>{if(o.cache===!1){let d=r.cache??Gn,c=oo(d,e.caps);return new Ut(c??"budget",e.caps[c??"calls"]??0,ai(d,c??"calls"))}},i=(d,c)=>{let m=t.provider,f={timestamp:G(),wallClock:be(),provider:m,model:c.model,tier:c.tier,usage:d,latencyMs:c.latencyMs,method:c.method,...c.error?{error:c.error}:{}};n.append(f);let p=r.cache??Gn,g=e.pricingFn?p.usd+e.pricingFn(d,{model:c.model,provider:m,tier:c.tier}).total:p.usd;r.emit({calls:p.calls+1,inputTokens:p.inputTokens+Se(d),outputTokens:p.outputTokens+Ue(d),usd:g})},a=()=>{n.clear(),r.emit(ro())},l=()=>({input:{regular:0},output:{regular:0}});return{adapter:{provider:t.provider,model:t.model,capabilities:t.capabilities?.bind(t),invoke(d,c){let m=s();if(m)return Promise.reject(m);let f=G(),p=t.invoke(d,c),g=y=>{let v=Math.max(0,(G()-f)/1e6);return i(y.usage??l(),{model:t.model??c?.model??y.model??"",tier:c?.tier??y.tier,latencyMs:v,method:"invoke"}),y};if(p!=null&&typeof p.then=="function")return p.then(g);if(p!=null&&typeof p=="object"&&"content"in p)return g(p);let h=!1;return C([$(p)],([y])=>y==null||h?y:(h=!0,g(y)),{name:"budgetGate/invokeTap"})},async*stream(d,c){let m=s();if(m)throw m;let f=G(),p;try{for await(let g of t.stream(d,c))g.type==="usage"&&(p=g.usage),yield g;i(p??l(),{model:t.model??c?.model??"",tier:c?.tier,latencyMs:Math.max(0,(G()-f)/1e6),method:"stream"})}catch(g){let h=g;throw i(p??l(),{model:t.model??c?.model??"",tier:c?.tier,latencyMs:Math.max(0,(G()-f)/1e6),method:"stream",error:{type:h?.name??"Error",message:h?.message??String(g)}}),g}}},budget:{totals:r,isOpen:o,log:n,reset:a}}}function oo(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 ai(t,e){switch(e){case"calls":return t.calls;case"inputTokens":return t.inputTokens;case"outputTokens":return t.outputTokens;case"usd":return t.usd}}re();function li(t,e){let n=e.mock??Ee({provider:t.provider,model:t.model}),r=typeof e.enabled=="boolean"?e.enabled:void 0,o=r===void 0?$(e.enabled):void 0,s;o&&(s=Z(o));let i=()=>r!==void 0?r:!!o?.cache;return{adapter:{provider:t.provider,model:t.model,capabilities:t.capabilities?.bind(t),invoke(u,d){return i()?n.invoke(u,d):t.invoke(u,d)},stream(u,d){return i()?n.stream(u,d):t.stream(u,d)}},dispose:()=>{s&&(s(),s=void 0)}}}function $n(t){if(t==null||typeof t!="object")return;let e=t,n=e.status,r=ui(e.headers);if(n!==429&&n!==503&&!hi(e.message))return;let o={},s=r("retry-after"),i=ci(s);i!=null&&(o.retryAfterMs=i);let a=r("anthropic-ratelimit-requests-reset");if(a){let f=so(a);f!=null&&(o.retryAfterMs=Math.max(o.retryAfterMs??0,f))}let l=r("anthropic-ratelimit-tokens-reset");if(l){let f=so(l);f!=null&&(o.retryAfterMs=Math.max(o.retryAfterMs??0,f))}let u=Ht(r,"x-ratelimit-limit-requests");u!=null&&(o.rpmCap=u);let d=Ht(r,"x-ratelimit-limit-tokens");d!=null&&(o.tpmCap=d);let c=Ht(r,"x-ratelimit-remaining-requests"),m=Ht(r,"x-ratelimit-remaining-tokens");if(c!=null&&u!=null&&u>0&&(o.usageHint??={},o.usageHint.rpm=1-c/u),m!=null&&d!=null&&d>0&&(o.usageHint??={},o.usageHint.tpm=1-m/d),o.retryAfterMs==null&&e.message){let f=fi(e.message);f!=null&&(o.retryAfterMs=f)}return e.headers&&(o.metadata={headers:di(e.headers)}),o.retryAfterMs==null&&o.rpmCap==null&&o.tpmCap==null&&o.usageHint==null?o.metadata?o:void 0:o}function ui(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 di(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 Ht(t,e){let n=t(e);if(n==null)return;let r=Number(n);return Number.isFinite(r)?r:void 0}function ci(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 so(t){if(!t)return;let e=Date.parse(t);if(Number.isFinite(e))return Math.max(0,e-Date.now())}var pi=/retry\s+(?:in|after)\s+(\d+(?:\.\d+)?)\s*(ms|s|sec|seconds?|m|min|minutes?)/i;function fi(t){let e=pi.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 mi=/rate\s*limit|too\s*many\s*requests|quota|429/i;function hi(t){return!!t&&mi.test(t)}he();fe();X();tt();re();Ne();function Bn(t){let e=new Error(t);return e.name="AbortError",e}function ao(t={}){let e=Math.max(1,t.burstMultiplier??1),n=t.clampCooldownMs??6e4,r=t.rpm!=null?$(t.rpm):S(Number.POSITIVE_INFINITY),o=t.tpm!=null?$(t.tpm):S(Number.POSITIVE_INFINITY),s=S(Number.POSITIVE_INFINITY,{name:"adaptiveRateLimiter/signalRpmCap"}),i=S(Number.POSITIVE_INFINITY,{name:"adaptiveRateLimiter/signalTpmCap"}),a=S({},{name:"adaptiveRateLimiter/lastSignal"}),l=C([r,s],([M,j])=>Math.min(Number(M??1/0),Number(j??1/0)),{name:"adaptiveRateLimiter/effectiveRpm"}),u=C([o,i],([M,j])=>Math.min(Number(M??1/0),Number(j??1/0)),{name:"adaptiveRateLimiter/effectiveTpm"}),d=nt(Number(r.cache??Number.POSITIVE_INFINITY),e),c=nt(Number(o.cache??Number.POSITIVE_INFINITY),e),m=!1,f=!1,p=l.subscribe(M=>{for(let j of M)if(j[0]===L){let z=Number(j[1]);Number.isFinite(z)&&z>0?(d=nt(z,e),m=!1):z===1/0?(d=nt(1/0,e),m=!1):z<=0&&(m=!0)}}),g=u.subscribe(M=>{for(let j of M)if(j[0]===L){let z=Number(j[1]);Number.isFinite(z)&&z>0?(c=nt(z,e),f=!1):z===1/0?(c=nt(1/0,e),f=!1):z<=0&&(f=!0)}}),h=0,y=new ne,v=new ne,b;t.adaptation!=null&&(b=$(t.adaptation).subscribe(j=>{for(let z of j)z[0]===L&&T(z[1])}));function T(M){if(a.emit(M),M.rpmCap!=null&&Number.isFinite(M.rpmCap)&&M.rpmCap>=0&&(s.emit(M.rpmCap),Number.isFinite(n)&&n>0&&y.start(n,()=>s.emit(Number.POSITIVE_INFINITY))),M.tpmCap!=null&&Number.isFinite(M.tpmCap)&&M.tpmCap>=0&&(i.emit(M.tpmCap),Number.isFinite(n)&&n>0&&v.start(n,()=>i.emit(Number.POSITIVE_INFINITY))),M.retryAfterMs!=null&&M.retryAfterMs>0){let j=G()+M.retryAfterMs*1e6;j>h&&(h=j)}}let w=S(0,{name:"adaptiveRateLimiter/pending"}),x=S(Number.POSITIVE_INFINITY,{name:"adaptiveRateLimiter/rpmAvailable"}),_=S(Number.POSITIVE_INFINITY,{name:"adaptiveRateLimiter/tpmAvailable"}),R=M=>{w.emit((w.cache??0)+M)},k=()=>{x.emit(d.available()),_.emit(c.available())};async function P(M={}){let j=M.requestCost??1,z=M.tokenCost??0,E=M.signal;R(1);try{for(;;){if(E?.aborted)throw Bn("AdaptiveRateLimiter.acquire aborted");let N=G();if(h>N){let ve=Math.ceil((h-N)/1e6);await zt(ve,E);continue}if(j>0&&m||z>0&&f){await zt(250,E);continue}let V=d,U=c;if(!V.tryConsume(j)){await zt(io(V,j),E);continue}if(!(z>0?U.tryConsume(z):!0)){V.putBack(j),await zt(io(U,z),E);continue}k();return}}finally{R(-1)}}function A(M){M>0?c.tryConsume(M):M<0&&c.putBack(-M),k()}function D(){p(),g(),b?.(),y.cancel(),v.cancel()}return{effectiveRpm:l,effectiveTpm:u,lastSignal:a,pending:w,rpmAvailable:x,tpmAvailable:_,acquire:P,recordUsage:A,recordSignal:T,dispose:D}}function nt(t,e){if(!Number.isFinite(t)||t===1/0)return ct(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER);let n=Math.max(1,t*e),r=t/60;return ct(n,r)}function io(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 zt(t,e){return t<=0?Promise.resolve():e?.aborted?Promise.reject(Bn("AdaptiveRateLimiter.acquire aborted")):new Promise((n,r)=>{let o=new ne,s,i=()=>{o.cancel(),e&&s&&e.removeEventListener("abort",s)};o.start(t,()=>{i(),n()}),e&&(s=()=>{i(),r(Bn("AdaptiveRateLimiter.acquire aborted"))},e.addEventListener("abort",s,{once:!0}))})}re();function jn(t,e={}){let n=e.limiter??ao({name:e.name??"rateLimiter",rpm:e.rpm,tpm:e.tpm,adaptation:e.adaptation,burstMultiplier:e.burstMultiplier}),r=(i,a)=>e.costFn?e.costFn(i,a):0,o=i=>{let a=$n(i);a&&n.recordSignal(a)};return{adapter:{provider:t.provider,model:t.model,capabilities:t.capabilities?.bind(t),async invoke(i,a){let l=r(i,a);await n.acquire({requestCost:1,tokenCost:l,signal:a?.signal});try{let u=t.invoke(i,a),d=await gi(u),c=d.usage??to(),f=Se(c)+Ue(c)-l;return f>0&&n.recordUsage(f),d}catch(u){throw o(u),u}},async*stream(i,a){let l=r(i,a);await n.acquire({requestCost:1,tokenCost:l,signal:a?.signal});try{let u=0;for await(let c of t.stream(i,a))c.type==="usage"&&(u=Se(c.usage)+Ue(c.usage)),yield c;let d=u-l;d>0&&n.recordUsage(d)}catch(u){throw o(u),u}}},limiter:n}}async function gi(t){return t!=null&&typeof t.then=="function"?await t:t&&typeof t=="object"&&"content"in t?t:await $t($(t))}tt();var ft=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 Vn(t,e={}){if(t.length===0)throw new RangeError("cascadingLlmAdapter: tiers must be non-empty");let n=t.map(o=>({name:o.name,adapter:o.adapter,filter:o.filter,breaker:o.breaker?"canExecute"in o.breaker?o.breaker:dt(o.breaker):void 0})),r=e.streamRetryBeforeFirstChunk??!0;return{provider:"cascading",model:void 0,async invoke(o,s){let i=[],a=new Map;for(let u=0;u<n.length;u++){let d=n[u];if(d.filter&&!d.filter(o,s)){i.push({name:d.name,reason:"filter"});continue}if(d.breaker&&!d.breaker.canExecute()){i.push({name:d.name,reason:"breaker"});continue}try{let c=await Promise.resolve(d.adapter.invoke(o,s));return d.breaker?.recordSuccess(),{...c,metadata:{...c.metadata??{},tier:d.name}}}catch(c){a.set(d.name,c),d.breaker?.recordFailure(c);let m=n[u+1];m&&e.onFallback?.(d.name,m.name,c)}}let l={skipped:i,failed:a};throw e.onExhausted?.(l),new ft(l)},async*stream(o,s){let i=[],a=new Map;for(let u=0;u<n.length;u++){let d=n[u];if(d.filter&&!d.filter(o,s)){i.push({name:d.name,reason:"filter"});continue}if(d.breaker&&!d.breaker.canExecute()){i.push({name:d.name,reason:"breaker"});continue}let c=!1;try{for await(let m of d.adapter.stream(o,s))c=!0,yield m;d.breaker?.recordSuccess();return}catch(m){if(a.set(d.name,m),d.breaker?.recordFailure(m),c||!r)throw m;let f=n[u+1];f&&e.onFallback?.(d.name,f.name,m)}}let l={skipped:i,failed:a};throw e.onExhausted?.(l),new ft(l)}}}Ne();function Wt(t="aborted"){let e=new Error(t);return e.name="AbortError",e}function lo(t,e){return t<=0?Promise.resolve():e?.aborted?Promise.reject(Wt()):new Promise((n,r)=>{let o=new ne,s,i=()=>{o.cancel(),e&&s&&e.removeEventListener("abort",s)};o.start(t,()=>{i(),n()}),e&&(s=()=>{i(),r(Wt())},e.addEventListener("abort",s,{once:!0}))})}function Kn(t,e={}){let n=e.attempts??3,r=e.baseDelayMs??500,o=e.maxDelayMs??1e4,s=e.strategy??"decorrelated",i=e.jitter??!0,a=e.shouldRetry??yi,l=e.retryStreaming??!0,u=(d,c)=>{if(s==="decorrelated"){let g=Math.min(o,Math.max(r,c*3));return r+Math.random()*(g-r)}let m=s==="exp"?r*2**(d-1):r*d,f=Math.min(o,m);if(!i)return f;let p=f*(.5+Math.random());return Math.min(o,p)};return{provider:t.provider,model:t.model,capabilities:t.capabilities?.bind(t),async invoke(d,c){if(c?.signal?.aborted)throw Wt();let m,f=r;for(let p=1;p<=n;p++)try{return await Promise.resolve(t.invoke(d,c))}catch(g){if(m=g,p>=n||!a(g,p))throw g;let h=u(p,f);f=h,await lo(h,c?.signal)}throw m},async*stream(d,c){if(c?.signal?.aborted)throw Wt();if(!l){for await(let p of t.stream(d,c))yield p;return}let m,f=r;for(let p=1;p<=n;p++){let g=!1;try{for await(let h of t.stream(d,c))g=!0,yield h;return}catch(h){if(m=h,g||p>=n||!a(h,p))throw h;let y=u(p,f);f=y,await lo(y,c?.signal)}}throw m}}}function yi(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}Ne();var rt=class extends Error{constructor(n){super(`LLM call timed out after ${n}ms`);this.ms=n}name="LLMTimeoutError"};function Un(t,e){if(e<=0)throw new RangeError("withTimeout: ms must be > 0");let n=o=>{let s=new AbortController,i=!1,a;o&&(o.aborted?s.abort(o.reason):(a=()=>s.abort(o.reason),o.addEventListener("abort",a,{once:!0})));let l=new ne;return l.start(e,()=>{i=!0,s.abort(new rt(e))}),{signal:s.signal,cancel:()=>{l.cancel(),o&&a&&o.removeEventListener("abort",a)},timedOut:()=>i}},r=(o,s)=>{if(!s||o instanceof rt)throw o;let i=o;if(i?.name==="AbortError"||i?.name==="DOMException"&&Number(i.code)===20||o?.message==="aborted"){let l=new rt(e);throw l.cause=o,l}throw o};return{provider:t.provider,model:t.model,capabilities:t.capabilities?.bind(t),async invoke(o,s){let{signal:i,cancel:a,timedOut:l}=n(s?.signal);try{return await Promise.resolve(t.invoke(o,{...s,signal:i}))}catch(u){return r(u,l())}finally{a()}},async*stream(o,s){let{signal:i,cancel:a,timedOut:l}=n(s?.signal);try{for await(let u of t.stream(o,{...s,signal:i}))yield u}catch(u){r(u,l())}finally{a()}}}}function bi(t,e={}){let n={adapter:t},r=t;if(e.rateLimit){let o=jn(r,e.rateLimit);r=o.adapter,n.rateLimiter=o.limiter}if(e.budget){let o=Fn(r,e.budget);r=o.adapter,n.budget=o.budget}if(e.breaker){let o=Pn(r,e.breaker);r=o.adapter,n.breaker=o.breaker}if(e.timeoutMs!=null&&(r=Un(r,e.timeoutMs)),e.retry&&(r=Kn(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=Vn([{name:e.name??"primary",adapter:r},{name:"fallback",adapter:e.fallback}],o)}return n.adapter=r,n}function vi(){return Ee()}X();fe();ke();X();re();function uo(t){return{describeKind:"derived",...t}}function Ti(t,e,n){let r,o=!1,s=()=>{o||(o=!0,n())};return r=t.subscribe(i=>{let a=!1,l=!1;for(let u of i)u[0]!==Oe&&(u[0]===L?e.emit(u[1]):u[0]===F?a=!0:u[0]===O?(l=!0,e.down([u])):(u[0]===Y||u[0]===H)&&e.down([u]));l?(r?.(),r=void 0,s()):a&&s()}),()=>{r?.(),r=void 0}}function me(t,e,n){let r,o=!1;function s(){r?.(),r=void 0}return ie([t],(i,a,l)=>{if(l.terminalDeps[0]!=null&&l.terminalDeps[0]!==!0){s();return}if(l.terminalDeps[0]===!0){o=!0,r||a.down([[F]]);return}let u=i[0];if(!(u==null||u.length===0))return s(),r=Ti($(e(u[u.length-1])),a,()=>{s(),o&&a.down([[F]])}),{deactivate:()=>{s(),o=!1}}},{...uo(n),completeWhenDepsComplete:!1})}function co(t,e,n){return pe(r=>{let o=t.subscribe(s=>{for(let i of s)if(i[0]===L)r.emit(i[1]);else if(i[0]===O)try{r.emit(e(i[1]))}catch(a){r.down([[O,a]])}else i[0]===F&&r.down([[F]])});return()=>{o()}},uo(n))}re();function wi(t,e,n){let r=$(e);return me(r,s=>{if(!s||s.length===0)return S(null);let i=n?.tools;return t.invoke(s,{model:n?.model,temperature:n?.temperature,maxTokens:n?.maxTokens,tools:i,systemPrompt:n?.systemPrompt})})}ke();re();fe();re();Ne();re();function ot(t,e,n){return{[t]:!0,[`${t}_type`]:e,...n??{}}}function q(t,e){return ot("ai",t,e)}function xi(t){return t!=null&&typeof t.then=="function"}function ki(t){return typeof t=="object"&&t!==null&&"subscribe"in t&&typeof t.subscribe=="function"&&"cache"in t}function _i(t){return t!=null&&typeof t=="object"&&Symbol.asyncIterator in t&&typeof t[Symbol.asyncIterator]=="function"}var Ri=3e4;function po(t,e){if(t.status==="settled"){let r=t.cache;if(r!==void 0)return Promise.resolve(r)}let n=e?.timeoutMs??Ri;return new Promise((r,o)=>{let s=new ne,i=t.subscribe(a=>{for(let l of a){if(l[0]===L){s.cancel(),i(),r(l[1]);return}if(l[0]===O){s.cancel(),i(),o(l[1]);return}if(l[0]===F){s.cancel(),i(),o(new Error("firstDataFromNode: completed without producing a value"));return}}});s.start(n,()=>{i(),o(new Error(`firstDataFromNode: timed out after ${n}ms`))})})}async function He(t){return xi(t)?He(await t):ki(t)?po(t):_i(t)?po($(t)):t}function ze(t){let e=t.match(/^```(?:json)?\s*([\s\S]*?)\s*```[\s\S]*$/);return e?e[1]:t}function Mi(t,e){let n=$(t),r=e?.refreshTrigger!=null?$(e.refreshTrigger):null;return r==null?ie([n],(o,s,i)=>{if(i.store.emitted===!0)return;let l=o[0],u=l!=null&&l.length>0?l.at(-1):i.prevData[0];if(u!==void 0)return i.store.emitted=!0,s.emit(u),{invalidate:()=>{i.store.emitted=!1}}},{name:e?.name??"frozenContext",describeKind:"derived",initial:null,meta:q("frozen_context")}):ie([n,r],(o,s,i)=>{let a=o[1];if(!(a!=null&&a.length>0))return;let u=o[0],d=u!=null&&u.length>0?u.at(-1):i.prevData[0];s.emit(d)},{name:e?.name??"frozenContext",describeKind:"derived",initial:null,meta:q("frozen_context")})}X();function Ni(t){return t!=null&&typeof t=="object"&&"content"in t?String(t.content):typeof t=="string"?t:String(t)}function Ei(t,e,n,r){let o=r?.format??"text",s=r?.retries??0,i=r?.cache??!1,a=i?new Map:null,l=C(e,d=>{if(d.some(f=>f==null))return[];let c=typeof n=="string"?n:n(...d);if(!c)return[];let m=[];return r?.systemPrompt&&m.push({role:"system",content:r.systemPrompt}),m.push({role:"user",content:c}),m},{name:r?.name?`${r.name}::messages`:"prompt_node::messages",meta:q("prompt_node"),initial:[]});return me(l,d=>{if(!d||d.length===0)return S(null);let c=i?JSON.stringify(d.map(f=>[f.role,f.content])):"";if(a?.has(c))return S(a.get(c));async function m(f){try{let p=await new Promise((y,v)=>{let b=t.invoke(d,{model:r?.model,temperature:r?.temperature,maxTokens:r?.maxTokens,systemPrompt:r?.systemPrompt});b&&typeof b.then=="function"?b.then(y,v):b&&typeof b.subscribe=="function"?y(b.cache):y(b)}),g=Ni(p),h;return o==="json"?h=JSON.parse(ze(g)):h=g,a?.set(c,h),h}catch(p){if(f>0)return m(f-1);throw p}}return m(s)})}X();re();At();ut();fe();ut();ke();function qt(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;default:return new Set(["type","deps"])}}function Ai(t){return t._describeKind!=null?t._describeKind:t._deps.length>0?"derived":t._fn!=null?"producer":"state"}function Si(t){let e={};for(let[n,r]of Object.entries(t.meta))try{e[n]=r.cache}catch{}return e}function Hn(t,e){let n=e==null,r=!n&&e!=null?[...e].filter(u=>u.startsWith("meta.")).map(u=>u.slice(5)):null,o=n||e.has("meta")||r!=null&&r.length>0,s="state",i=[];t instanceof ae&&(s=Ai(t),i=t._deps.map(u=>u.node.name??""));let a={type:s,deps:i};(n||e.has("status"))&&(a.status=t.status);let l=t instanceof ae?t._guard:void 0;if(o){let u={...Si(t)};if(l!=null&&u.access===void 0&&(u.access=bn(l)),r!=null&&r.length>0&&!e.has("meta")){let d={};for(let c of r)c in u&&(d[c]=u[c]);a.meta=d}else a.meta=u}if(t.name!=null&&(a.name=t.name),n||e.has("value")){t.status==="sentinel"&&(a.sentinel=!0);try{a.value=t.cache}catch{}}if((n||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),a.v=u}return(n||e.has("guard"))&&l!=null&&(a.guard=bn(l)),(n||e.has("lastMutation"))&&t.lastMutation!=null&&(a.lastMutation=t.lastMutation),a}X();var le={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},Oi=Symbol.for("sizeof");function fo(t){let e=new WeakSet,n=new WeakSet,r=[t],o=0;for(;r.length>0;){let s=r.pop();o+=Ci(s,e,n,r)}return o}function Ci(t,e,n,r){if(t==null)return 0;switch(typeof t){case"number":return le.number;case"boolean":return le.boolean;case"string":return le.string+t.length*2;case"bigint":return le.bigint+Li(t);case"symbol":return le.symbol;case"function":return e.has(t)?0:(e.add(t),le.function);case"undefined":return 0}let s=t;if(e.has(s))return 0;e.add(s);let i=s[Oi];if(typeof i=="function")try{let u=i.call(s);if(typeof u=="number"&&Number.isFinite(u))return u}catch{}if(s instanceof Date)return le.date;if(s instanceof RegExp)return le.regexp+s.source.length*2;if(s instanceof Error){let u=s.message?s.message.length*2:0,d=s.stack?s.stack.length*2:0;return le.error+u+d}if(typeof URL<"u"&&s instanceof URL)return le.url+s.href.length*2;if(typeof Promise<"u"&&s instanceof Promise)return le.promise;if(s instanceof WeakMap)return le.weakmap;if(s instanceof WeakSet)return le.weakset;if(s instanceof Map){let u=le.map;for(let[d,c]of s)u+=le.mapEntry,r.push(d),r.push(c);return u}if(s instanceof Set){let u=le.set;for(let d of s)u+=le.setEntry,r.push(d);return u}if(Array.isArray(s)){let u=le.array+s.length*8;for(let d of s)r.push(d);return u}if(s instanceof ArrayBuffer)return n.has(s)?0:(n.add(s),s.byteLength);if(ArrayBuffer.isView(s)){let u=s;return n.has(u.buffer)?48:(n.add(u.buffer),u.buffer.byteLength+48)}let a=le.object,l=Object.keys(s);for(let u of l){a+=le.string+u.length*2;try{r.push(s[u])}catch{}}return a}function Li(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 mo(t,e,n,r={}){let o=e in t.nodes,s=n in t.nodes;if(!o)return Jt(e,n,"no-such-from");if(!s)return Jt(e,n,"no-such-to");let i=r.maxDepth;if(i!=null&&(!Number.isInteger(i)||i<0))throw new Error("explainPath: maxDepth must be an integer >= 0");if(e===n){if(r.findCycle===!0){let u=Di(t,e,r);if(u!=null)return u}let l=Yt(e,t.nodes[e],0,r);return Xt(e,n,[l])}if(i===0)return Jt(e,n,"no-path");let a=ho(t,e,n,i);return a.found?Xt(e,n,go(t,a.pathOrder,r)):Jt(e,n,a.truncated?"max-depth-exceeded":"no-path")}function ho(t,e,n,r){let o=new Map,s=[{path:n,depth:0}],i=new Set([n]),a=0,l=!1;for(;a<s.length;){let c=s[a++];if(c.path===e)break;if(r!=null&&c.depth>=r){let g=t.nodes[c.path];g?.deps&&g.deps.length>0&&(l=!0);continue}let m=t.nodes[c.path];if(m==null)continue;let f=m.deps??[],p=new Map;for(let g=0;g<f.length;g++){let h=f[g];if(!h)continue;let y=p.get(h);y==null&&(y=[],p.set(h,y)),y.push(g)}for(let[g,h]of p)i.has(g)||(i.add(g),o.set(g,{from:c.path,depIndices:h}),s.push({path:g,depth:c.depth+1}))}if(!o.has(e))return{found:!1,pathOrder:[],truncated:l};let u=[{path:e}],d=e;for(;d!==n;){let c=o.get(d);if(c==null)return{found:!1,pathOrder:[],truncated:!1};u[u.length-1].depIndices=c.depIndices,u.push({path:c.from}),d=c.from}return{found:!0,pathOrder:u,truncated:!1}}function Di(t,e,n){let r=t.nodes[e];if(r==null)return null;let o=r.deps??[],s=[];for(let a=0;a<o.length;a++)o[a]===e&&s.push(a);if(s.length>0){let a=Yt(e,r,0,n);a.dep_index=s[0];let l=Yt(e,r,1,n);return Xt(e,e,[a,l])}let i=null;for(let a=0;a<o.length;a++){let l=o[a];if(!l||l===e)continue;let u=ho(t,l,e,n.maxDepth);u.found&&(i==null||u.pathOrder.length<i.pathOrder.length)&&(i=u,i={found:!0,pathOrder:[{path:e,depIndices:[a]},...u.pathOrder],truncated:!1})}return i==null?null:Xt(e,e,go(t,i.pathOrder,n))}function go(t,e,n){return e.map((r,o)=>{let s=t.nodes[r.path],i=Yt(r.path,s,o,n);return r.depIndices!=null&&r.depIndices.length>0&&(i.dep_index=r.depIndices[0],r.depIndices.length>1&&(i.dep_indices=[...r.depIndices])),i})}function Yt(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 i=r.lastMutations?.get(t)??e.lastMutation;return i!=null&&(o.lastMutation=i),o}function Xt(t,e,n){return yo(t,e,!0,"ok",n)}function Jt(t,e,n){return yo(t,e,!1,n,[])}function yo(t,e,n,r,o){let s=Ii(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 Ii(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 i of o){let l=` ${i.hop===0?"\xB7":"\u2193"} ${i.path} (${i.type}${i.status?`/${i.status}`:""})`;if(s.push(l),"value"in i&&s.push(` value: ${Pi(i.value)}`),i.annotation!=null&&s.push(` annotation: ${i.annotation}`),i.lastMutation!=null){let u=i.lastMutation.actor;s.push(` actor: ${u.type}${u.id?`:${u.id}`:""}`)}}return s.join(`
|
|
24
|
+
`)}function Pi(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)}}At();Me();he();ut();fe();ke();X();re();Ne();var mt=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}};yn();function zn(t){return t>=768&&t<=879||t>=1155&&t<=1161||t>=1425&&t<=1469||t>=1552&&t<=1562||t>=1611&&t<=1631||t>=1648&&t===1648||t>=1750&&t<=1756||t>=1759&&t<=1764||t>=1767&&t<=1768||t>=1770&&t<=1773||t>=1840&&t<=1866||t>=1958&&t<=1968||t>=2304&&t<=2307||t>=2362&&t<=2383||t>=2385&&t<=2391||t>=2402&&t<=2403||t>=2433&&t<=2435||t>=2492&&t<=2509||t>=2561&&t<=2563||t>=2620&&t<=2641||t>=2672&&t<=2673||t>=2677&&t===2677||t>=3633&&t===3633||t>=3636&&t<=3642||t>=3655&&t<=3662||t>=3761&&t===3761||t>=3764&&t<=3772||t>=3784&&t<=3790||t>=7616&&t<=7679||t>=8400&&t<=8447||t>=65024&&t<=65039||t>=65056&&t<=65071||t===8205?0:t>=4352&&t<=4447||t>=8986&&t<=8987||t>=9001&&t<=9002||t>=9193&&t<=9203||t>=9208&&t<=9210||t>=9725&&t<=9726||t>=9748&&t<=9749||t>=9800&&t<=9811||t===9855||t===9875||t===9889||t>=9898&&t<=9899||t>=9917&&t<=9918||t>=9924&&t<=9925||t===9934||t===9940||t===9962||t>=9970&&t<=9971||t===9973||t===9978||t===9981||t===9986||t===9989||t>=9992&&t<=9997||t===9999||t>=10067&&t<=10069||t===10071||t>=10133&&t<=10135||t===10160||t===10175||t>=10548&&t<=10549||t>=11013&&t<=11015||t>=11035&&t<=11036||t===11088||t===11093||t>=11904&&t<=12350||t>=12352&&t<=12447||t>=12448&&t<=12543||t>=12549&&t<=12591||t>=12593&&t<=12686||t>=12688&&t<=12771||t>=12784&&t<=12830||t>=12832&&t<=12871||t>=12880&&t<=19903||t>=19968&&t<=40959||t>=43360&&t<=43388||t>=44032&&t<=55203||t>=63744&&t<=64255||t>=65040&&t<=65049||t>=65072&&t<=65131||t>=65281&&t<=65376||t>=65504&&t<=65510||t>=126980&&t===126980||t===127183||t>=127344&&t<=127345||t===127358||t===127359||t===127374||t>=127377&&t<=127386||t>=127456&&t<=127487||t>=127488&&t<=127490||t===127514||t===127535||t>=127538&&t<=127546||t>=127568&&t<=127569||t>=127744&&t<=129535||t>=129536&&t<=129791||t>=129792&&t<=130047||t>=131072&&t<=196605||t>=196608&&t<=262141?2:1}function Qt(t){let e=0;for(let n of t)e+=zn(n.codePointAt(0));return e}function bo(t,e){if(e<=0)return"";let n=0,r="";for(let o of t){let s=zn(o.codePointAt(0));if(n+s>e){if(e<=1)return"\u2026";for(;n+1>e&&r.length>0;){let i=[...r].pop();r=r.slice(0,-i.length),n-=zn(i.codePointAt(0))}return`${r}\u2026`}r+=o,n+=s}return r}var Gi={horizontal:"\u2500",vertical:"\u2502",cornerTL:"\u250C",cornerTR:"\u2510",cornerBL:"\u2514",cornerBR:"\u2518",tDown:"\u252C",tUp:"\u2534",tRight:"\u251C",tLeft:"\u2524",cross:"\u253C",arrowRight:"\u25B6",arrowDown:"\u25BC",arrowLeft:"\u25C0",arrowUp:"\u25B2",boxTL:"\u250C",boxTR:"\u2510",boxBL:"\u2514",boxBR:"\u2518",boxH:"\u2500",boxV:"\u2502"},Fi={horizontal:"-",vertical:"|",cornerTL:"+",cornerTR:"+",cornerBL:"+",cornerBR:"+",tDown:"+",tUp:"+",tRight:"+",tLeft:"+",cross:"+",arrowRight:">",arrowDown:"v",arrowLeft:"<",arrowUp:"^",boxTL:"+",boxTR:"+",boxBL:"+",boxBR:"+",boxH:"-",boxV:"|"};function xo(t,e){let n=e.charset==="ascii"?Fi:Gi,r=t.width,o=t.height,s=Array.from({length:o},()=>Array.from({length:r},()=>" ")),i=Array.from({length:o},()=>Array.from({length:r},()=>"empty"));for(let a of t.edges)Bi(s,i,n,a);for(let a of t.boxes)$i(s,i,n,a,e.labelOf(a.id));return s.map(a=>Ui(a.join(""))).join(`
|
|
25
|
+
`)}function $i(t,e,n,r,o){let{x:s,y:i,w:a,h:l}=r;if(a<2||l<2){l>0&&vo(t,e,s,i,a,o);return}Ie(t,e,s,i,n.boxTL);for(let d=s+1;d<s+a-1;d+=1)Ie(t,e,d,i,n.boxH);Ie(t,e,s+a-1,i,n.boxTR);for(let d=i+1;d<i+l-1;d+=1){Ie(t,e,s,d,n.boxV);for(let c=s+1;c<s+a-1;c+=1)ko(t,e,c,d," ","empty");Ie(t,e,s+a-1,d,n.boxV)}Ie(t,e,s,i+l-1,n.boxBL);for(let d=s+1;d<s+a-1;d+=1)Ie(t,e,d,i+l-1,n.boxH);Ie(t,e,s+a-1,i+l-1,n.boxBR);let u=i+Math.floor(l/2);vo(t,e,s+1,u,a-2,o)}function Ie(t,e,n,r,o){ko(t,e,n,r,o,o===" "?"empty":o==="\u2500"||o==="-"?"boxH":o==="\u2502"||o==="|"?"boxV":"boxCorner")}function ko(t,e,n,r,o,s){if(r<0||r>=t.length)return;let i=t[r];n<0||n>=i.length||(i[n]=o,e[r][n]=s)}function vo(t,e,n,r,o,s){if(r<0||r>=t.length)return;let i=n,a=o;for(let l of s){let u=Qt(l);if(u!==0){if(a<u)break;i>=0&&i<t[r].length&&(t[r][i]=l,e[r][i]="label",u===2&&i+1<t[r].length&&(t[r][i+1]="",e[r][i+1]="label")),i+=u,a-=u}}for(;a>0;)i>=0&&i<t[r].length&&(t[r][i]=" ",e[r][i]="empty"),i+=1,a-=1}function Bi(t,e,n,r){let o=r.points;if(o.length<2)return;for(let l=0;l+1<o.length;l+=1)ji(t,e,n,o[l],o[l+1]);for(let l=1;l+1<o.length;l+=1){let u=o[l-1],d=o[l],c=o[l+1],m=Vi(u,d,c,n);m&&wo(t,e,d.x,d.y,m,"edgeCorner")}let s=o[o.length-1],i=o[o.length-2],a=Ki(i,s,n);a&&wo(t,e,s.x,s.y,a,"arrow")}function ji(t,e,n,r,o){if(!(r.x===o.x&&r.y===o.y)){if(r.y===o.y){let s=r.y,i=Math.min(r.x,o.x),a=Math.max(r.x,o.x);for(let l=i;l<=a;l+=1)To(t,e,l,s,n,"h")}else if(r.x===o.x){let s=r.x,i=Math.min(r.y,o.y),a=Math.max(r.y,o.y);for(let l=i;l<=a;l+=1)To(t,e,s,l,n,"v")}}}function To(t,e,n,r,o,s){if(r<0||r>=t.length)return;let i=t[r];if(n<0||n>=i.length)return;let a=e[r][n];if(!(a==="boxH"||a==="boxV"||a==="boxCorner"||a==="label")){if(a==="empty"){i[n]=s==="h"?o.horizontal:o.vertical,e[r][n]=s==="h"?"edgeH":"edgeV";return}if(a==="edgeH"&&s==="v"){i[n]=o.cross,e[r][n]="edgeCorner";return}if(a==="edgeV"&&s==="h"){i[n]=o.cross,e[r][n]="edgeCorner";return}}}function wo(t,e,n,r,o,s){if(r<0||r>=t.length)return;let i=t[r];if(n<0||n>=i.length)return;let a=e[r][n];a==="boxH"||a==="boxV"||a==="boxCorner"||a==="label"||(i[n]=o,e[r][n]=s)}function Vi(t,e,n,r){let o=t.y===e.y,s=e.y===n.y;if(o===s)return;if(o){let l=t.x<e.x,u=n.y>e.y;return l&&u?r.cornerTR:l&&!u?r.cornerBR:!l&&u?r.cornerTL:r.cornerBL}let i=t.y<e.y,a=n.x>e.x;return i&&a?r.cornerBL:i&&!a?r.cornerBR:!i&&a?r.cornerTL:r.cornerTR}function Ki(t,e,n){if(e.x>t.x)return n.arrowRight;if(e.x<t.x)return n.arrowLeft;if(e.y>t.y)return n.arrowDown;if(e.y<t.y)return n.arrowUp}function Ui(t){let e=t.length;for(;e>0&&t.charCodeAt(e-1)===32;)e-=1;return t.slice(0,e)}function Mo(t){let e=Hi(t);zi(e),Wi(e),qi(e),Ji(e,t);let n=Qi(e,t),{width:r,height:o}=ea(e),s=[];for(let i of e.layers)for(let a of i)a.isVirtual||s.push({id:a.id,layer:a.layer,order:a.order,x:a.x,y:a.y,w:a.w,h:a.h});return{boxes:s,edges:n,width:r,height:o}}function Hi(t){let e=new Map;for(let o of t.nodes)e.set(o,{id:o,isVirtual:!1,layer:-1,order:0,x:0,y:0,w:t.widthCells(o),h:t.heightCells(o),in:[],out:[]});let n=[],r=0;for(let o of t.edges){if(o.from===o.to)continue;let s=e.get(o.from),i=e.get(o.to);if(!s||!i)continue;let a={chainId:r++,chainFrom:o.from,chainTo:o.to,fromId:o.from,toId:o.to,hopIndex:0,chainLen:1};s.out.push(a),i.in.push(a),n.push(a)}return{nodes:e,layers:[],hops:n}}function zi(t){let e=new Map;for(let s of t.nodes.values())e.set(s.id,s.in.length);let n=[];for(let s of t.nodes.values())(e.get(s.id)??0)===0&&(s.layer=0,n.push(s));let r=new Set,o=0;for(;o<n.length;){let s=n[o++];if(!r.has(s.id)){r.add(s.id);for(let i of s.out){let a=t.nodes.get(i.toId);a.layer=Math.max(a.layer,s.layer+1);let l=(e.get(a.id)??0)-1;e.set(a.id,l),l<=0&&n.push(a)}}}for(let s of t.nodes.values())s.layer<0&&(s.layer=0)}function Wi(t){let e=Math.max(0,...Array.from(t.nodes.values(),s=>s.layer)),n=Array.from({length:e+1},()=>[]);for(let s of t.nodes.values())n[s.layer].push(s);let r=[],o=0;for(let s of t.hops){let i=t.nodes.get(s.fromId),a=t.nodes.get(s.toId),l=a.layer-i.layer;if(l<=0){i.out=i.out.filter(c=>c!==s),a.in=a.in.filter(c=>c!==s);continue}if(l===1){s.hopIndex=0,s.chainLen=1,r.push(s);continue}i.out=i.out.filter(c=>c!==s),a.in=a.in.filter(c=>c!==s);let u=i;for(let c=1;c<l;c+=1){let m=`__virt_${o++}__`,f={id:m,isVirtual:!0,layer:i.layer+c,order:0,x:0,y:0,w:0,h:1,in:[],out:[]};t.nodes.set(m,f),n[f.layer].push(f);let p={chainId:s.chainId,chainFrom:s.chainFrom,chainTo:s.chainTo,fromId:u.id,toId:m,hopIndex:c-1,chainLen:l};u.out.push(p),f.in.push(p),r.push(p),u=f}let d={chainId:s.chainId,chainFrom:s.chainFrom,chainTo:s.chainTo,fromId:u.id,toId:a.id,hopIndex:l-1,chainLen:l};u.out.push(d),a.in.push(d),r.push(d)}for(let s of n)for(let i=0;i<s.length;i+=1)s[i].order=i;t.layers=n,t.hops=r}function qi(t){for(let n=0;n<4;n+=1){for(let r=1;r<t.layers.length;r+=1)_o(t,t.layers[r],"in"),Zt(t.layers[r]);for(let r=t.layers.length-2;r>=0;r-=1)_o(t,t.layers[r],"out"),Zt(t.layers[r])}for(let n=0;n<2;n+=1){let r=!1;for(let o=1;o<t.layers.length;o+=1){let s=t.layers[o];for(let i=0;i+1<s.length;i+=1){let a=Ro(t,s[i],s[i+1],"in");[s[i],s[i+1]]=[s[i+1],s[i]],Zt(s),Ro(t,s[i],s[i+1],"in")<a?r=!0:([s[i],s[i+1]]=[s[i+1],s[i]],Zt(s))}}if(!r)break}}function _o(t,e,n){let r=new Map;for(let o of e){let s=n==="in"?o.in:o.out;if(s.length===0){r.set(o.id,o.order);continue}let i=0,a=0;for(let l of s){let u=t.nodes.get(n==="in"?l.fromId:l.toId);u&&(i+=u.order,a+=1)}r.set(o.id,a===0?o.order:i/a)}e.sort((o,s)=>{let i=r.get(o.id),a=r.get(s.id);return i!==a?i-a:o.order-s.order})}function Zt(t){for(let e=0;e<t.length;e+=1)t[e].order=e}function Ro(t,e,n,r){let o=r==="in"?e.in:e.out,s=r==="in"?n.in:n.out,i=0;for(let a of o)for(let l of s){let u=t.nodes.get(r==="in"?a.fromId:a.toId)?.order??0,d=t.nodes.get(r==="in"?l.fromId:l.toId)?.order??0;(e.order<n.order&&u>d||e.order>n.order&&u<d)&&(i+=1)}return i}function Ji(t,e){e.direction==="LR"?Yi(t,e):Xi(t,e)}function Yi(t,e){let n=[],r=0;for(let o=0;o<t.layers.length;o+=1){n.push(r);let s=0;for(let i of t.layers[o])s=Math.max(s,i.w);r+=s+e.layerGap}for(let o=0;o<t.layers.length;o+=1)for(let s of t.layers[o])s.x=n[o];for(let o of t.layers){let s=0;for(let i of o)i.y=s,s+=i.h+e.nodeGap}No(t,e,"y")}function Xi(t,e){let n=[],r=0;for(let o=0;o<t.layers.length;o+=1){n.push(r);let s=0;for(let i of t.layers[o])s=Math.max(s,i.h);r+=s+e.layerGap}for(let o=0;o<t.layers.length;o+=1)for(let s of t.layers[o])s.y=n[o];for(let o of t.layers){let s=0;for(let i of o)i.x=s,s+=i.w+e.nodeGap}No(t,e,"x")}function No(t,e,n){let r=s=>n==="y"?s.h:s.w,o=e.nodeGap;for(let s=0;s<2;s+=1){let i=s===0?t.layers.slice(1):t.layers.slice(0,-1).reverse();for(let a of i){let l=new Map;for(let d of a){let c=s===0?d.in:d.out;if(c.length===0)continue;let m=[];for(let p of c){let g=t.nodes.get(s===0?p.fromId:p.toId);if(!g)continue;let h=n==="y"?g.y:g.x;m.push(h+Math.floor(r(g)/2))}if(m.length===0)continue;m.sort((p,g)=>p-g);let f=m[Math.floor(m.length/2)];l.set(d.id,f-Math.floor(r(d)/2))}let u=0;for(let d of a){let c=l.get(d.id),m=n==="y"?d.y:d.x,p=Math.max(c??m,u);n==="y"?d.y=p:d.x=p,u=p+r(d)+o}}}}function Qi(t,e){let n=new Map;for(let u of t.hops){let d=n.get(u.chainId);d?d.push(u):n.set(u.chainId,[u])}for(let u of n.values())u.sort((d,c)=>d.hopIndex-c.hopIndex);let r=e.direction==="LR",o=u=>r?u.x:u.y,s=u=>r?u.w:u.h,i=u=>r?u.y+Math.floor(u.h/2):u.x+Math.floor(u.w/2),a=new Map;for(let u=0;u+1<t.layers.length;u+=1){let d=t.layers[u],c=t.layers[u+1],m=0;for(let R of d)m=Math.max(m,o(R)+s(R));let f=Number.POSITIVE_INFINITY;for(let R of c)f=Math.min(f,o(R));let p=Number.isFinite(f)?f-1:m,g=Math.max(1,p-m+1),h=[];for(let R of d)for(let k of R.out)h.push(k);h.sort((R,k)=>{let P=i(t.nodes.get(R.fromId)),A=i(t.nodes.get(k.fromId));if(P!==A)return P-A;let D=i(t.nodes.get(R.toId)),M=i(t.nodes.get(k.toId));return D-M});let y=[],v=new Map;for(let R of h){let k=i(t.nodes.get(R.fromId)),P=i(t.nodes.get(R.toId)),A=Math.min(k,P),D=Math.max(k,P),M=-1;for(let j=0;j<y.length;j+=1){let z=y[j],E=!0;for(let N of z)if(N.lo<=D&&A<=N.hi){E=!1;break}if(E){z.push({lo:A,hi:D}),M=j;break}}M<0&&(y.push([{lo:A,hi:D}]),M=y.length-1),v.set(R,M)}let b=y.length,T=g>=Math.max(3,b+2),w=T?m+1:m,x=T?p-1:p,_=Math.max(1,x-w+1);for(let R of h){let k=v.get(R),P;if(b<=1)P=w+Math.floor(_/2);else{let A=(_-1)/(b-1);P=w+Math.floor(k*A)}a.set(R,Math.max(m,Math.min(p,P)))}}let l=[];for(let[,u]of n){let d=[];for(let m=0;m<u.length;m+=1){let f=u[m],p=t.nodes.get(f.fromId),g=t.nodes.get(f.toId),h=a.get(f),y=p.isVirtual?o(p):o(p)+s(p),v=g.isVirtual?o(g):o(g)-1,b=i(p),T=i(g);m===0&&en(d,r,y,b),b!==T&&(en(d,r,h,b),en(d,r,h,T)),en(d,r,v,T)}let c=u[0];l.push({from:c.chainFrom,to:c.chainTo,points:Zi(d)})}return l}function en(t,e,n,r){t.push(e?{x:n,y:r}:{x:r,y:n})}function Zi(t){let e=[];for(let n of t){let r=e[e.length-1];(!r||r.x!==n.x||r.y!==n.y)&&e.push(n)}return e}function ea(t){let e=0,n=0;for(let r of t.layers)for(let o of r)e=Math.max(e,o.x+o.w),n=Math.max(n,o.y+o.h);return{width:e,height:n}}var ta=24,na=4,ra=1,oa=3;function Eo(t,e){let n=sa(e.direction),r=Math.max(3,e.maxLabelWidth??ta),o=e.asciiCharset??"unicode",s=Object.keys(t.nodes).sort(),i=new Set(s),a=t.edges.filter(f=>i.has(f.from)&&i.has(f.to)),l=new Map,u=new Map;for(let f of s){let p=bo(f,r);l.set(f,p),u.set(f,Qt(p)+4)}let d=Mo({nodes:s,edges:a,widthCells:f=>u.get(f)??3,heightCells:()=>oa,layerGap:na,nodeGap:ra,direction:n}),c=xo(d,{charset:o,labelOf:f=>l.get(f)??f}),m=e.logger;return m&&m(c),c}function sa(t){if(t===void 0||t==="LR")return"LR";if(t==="TD")return"TD";throw new Error(`ascii describe supports direction "LR" or "TD" only; got ${String(t)}`)}ke();function Ao(t,e){let n=e?.topN??10,r=t.describe({detail:"standard"}),o=[],s=t._collectObserveTargets;typeof s=="function"&&s.call(t,"",o);let i=new Map;for(let[m,f]of o)i.set(m,f);let a=[];for(let[m,f]of Object.entries(r.nodes)){let p=i.get(m),g=p instanceof ae?p:null,h=g?fo(g.cache):0,y=g?g._sinkCount:0,v=f.deps?.length??0,b=f.type==="effect"&&y===0,T=y===0?f.type==="effect"?"orphan-effect":f.type==="derived"?"idle-derived":f.type==="producer"?"idle-producer":null:null;a.push({path:m,type:f.type,status:f.status??"unknown",valueSizeBytes:h,subscriberCount:y,depCount:v,isOrphanEffect:b,orphanKind:T})}let l=a.reduce((m,f)=>m+f.valueSizeBytes,0),u=(m,f)=>[...a].sort(f??((p,g)=>g[m]-p[m])).slice(0,n),d=a.filter(m=>m.orphanKind!=null),c=a.filter(m=>m.isOrphanEffect);return{nodeCount:a.length,edgeCount:r.edges.length,subgraphCount:r.subgraphs.length,nodes:a,totalValueSizeBytes:l,hotspots:{byValueSize:u("valueSizeBytes"),bySubscriberCount:u("subscriberCount"),byDepCount:u("depCount")},orphans:d,orphanEffects:c}}var ee="::",ye="__meta__",We=1;function So(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(i){console.error(`[Graph "${e}".destroy] disposer threw:`,i)}}}function ia(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(`
|
|
26
|
+
`)}function Oo(t){if(t.version!==We)throw new Error(`unsupported snapshot version ${String(t.version)} (expected ${We})`);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 aa(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 i=n.get(o);if(i==null&&(i=new WeakSet,n.set(o,i)),i.has(s))return!0;i.add(s);let a=o.constructor,l=s.constructor;if(a!==l)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 m=s;if(o.length!==m.length)return!1;for(let f=0;f<o.length;f++)if(!r(o[f],m[f]))return!1;return!0}if(o instanceof Map){let m=s;if(o.size!==m.size)return!1;for(let[f,p]of o)if(!m.has(f)||!r(p,m.get(f)))return!1;return!0}if(o instanceof Set){let m=s;if(o.size!==m.size)return!1;for(let f of o){let p=!1;for(let g of m)if(r(f,g)){p=!0;break}if(!p)return!1}return!0}if(ArrayBuffer.isView(o)){let m=o,f=s;if(m.length!==f.length)return!1;for(let p=0;p<m.length;p++)if(m[p]!==f[p])return!1;return!0}let u=Object.keys(o),d=Object.keys(s);if(u.length!==d.length)return!1;let c=new Set(d);for(let m of u)if(!c.has(m)||!r(o[m],s[m]))return!1;return!0};return r(t,e)}function qn(t){if(t===null||typeof t!="object")return t;if(Array.isArray(t))return t.map(qn);let e=t,n=Object.keys(e).sort(),r={};for(let o of n)r[o]=qn(e[o]);return r}function la(t){return t.replaceAll("\\","\\\\").replaceAll('"','\\"')}function ua(t){return t.replaceAll("\\","\\\\").replaceAll('"','\\"')}function da(t){return t==="TD"?"down":t==="BT"?"up":t==="RL"?"left":"right"}function Lo(t){let e=new Set,n=[];function r(o,s){let i=`${o}\0${s}`;e.has(i)||(e.add(i),n.push([o,s]))}for(let[o,s]of Object.entries(t.nodes)){let i=s.deps;if(i)for(let a of i)r(a,o)}for(let o of t.edges)r(o.from,o.to);return n}function Do(t){if(t===void 0)return"LR";if(t==="TD"||t==="LR"||t==="BT"||t==="RL")return t;throw new Error(`invalid diagram direction ${String(t)}; expected one of: TD, LR, BT, RL`)}function ca(t,e){let n=e.includeEdges??!0,r=e.includeSubgraphs??!0,{expand:o,...s}=t,i={...s,edges:n?t.edges:[],subgraphs:r?t.subgraphs:[]},a=JSON.stringify(qn(i),null,e.indent??2);return e.logger?.(a),a}function pa(t,e){let n=e.includeEdges??!0,r=e.includeSubgraphs??!0,o=[];o.push(`Graph ${t.name}`),o.push("Nodes:");for(let i of Object.keys(t.nodes).sort()){let a=t.nodes[i];o.push(`- ${i} (${a.type}/${a.status}): ${nn(a.value)}`)}if(n){o.push("Edges:");for(let i of t.edges)o.push(`- ${i.from} -> ${i.to}`)}if(r){o.push("Subgraphs:");for(let i of t.subgraphs)o.push(`- ${i}`)}let s=o.join(`
|
|
27
|
+
`);return e.logger?.(s),s}function Io(t,e){let n=Do(e.direction),r=Object.keys(t.nodes).sort(),o=new Map;for(let i=0;i<r.length;i+=1)o.set(r[i],`n${i}`);let s=[`flowchart ${n}`];for(let i of r){let a=o.get(i);s.push(` ${a}["${la(i)}"]`)}for(let[i,a]of Lo(t)){let l=o.get(i),u=o.get(a);!l||!u||s.push(` ${l} --> ${u}`)}return s.join(`
|
|
28
|
+
`)}function fa(t,e){let n=Io(t,e);return Po(n)}function Po(t,e){let n=e?.theme??"default",r=e?.autoSync??!0,s=JSON.stringify({code:t,mermaid:{theme:n},autoSync:r}),i=new TextEncoder().encode(s),a="";for(let u=0;u<i.length;u++)a+=String.fromCharCode(i[u]);return`https://mermaid.live/edit#base64:${globalThis.btoa(a).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}`}function ma(t,e){let n=Do(e.direction),r=Object.keys(t.nodes).sort(),o=new Map;for(let i=0;i<r.length;i+=1)o.set(r[i],`n${i}`);let s=[`direction: ${da(n)}`];for(let i of r){let a=o.get(i);s.push(`${a}: "${ua(i)}"`)}for(let[i,a]of Lo(t)){let l=o.get(i),u=o.get(a);!l||!u||s.push(`${l} -> ${u}`)}return s.join(`
|
|
29
|
+
`)}function ha(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+=ha(r)}return e+="$",new RegExp(e)}var ga={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"},ya={data:"",dirty:"",resolved:"",invalidate:"",pause:"",resume:"",complete:"",error:"",teardown:"",derived:"",path:"",reset:""};function nn(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"?ya:t==="ansi"||t==null?ga:{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 Co(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 Wn(t,e,n){if(t==="")throw new Error(`Graph "${e}": ${n} name must be non-empty`);if(t.includes(ee))throw new Error(`Graph "${e}": ${n} "${t}" must not contain '${ee}' (path separator)`);if(t===ye)throw new Error(`Graph "${e}": ${n} name "${ye}" is reserved for meta companion paths`);va(t,e,n)}function Ta(t,e){if(t==="")throw new Error(`Graph "${e}": resolve path must be non-empty`);let n=t.split(ee);for(let r of n)if(r==="")throw new Error(`Graph "${e}": resolve path has empty segment`);return n}function wa(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 Go(t){for(let e of t._mounts.values())Go(e);for(let e of t._nodes.values())try{e.down([[ce]],{internal:!0})}catch{}}var ue=class t{name;opts;config;_nodes=new Map;_nodeToName=new WeakMap;_mounts=new Map;_parent=void 0;_storageDisposers=new Set;_disposers=new Set;_topology;_topologyEmitters=new Set;constructor(e,n){if(e==="")throw new Error("Graph name must be non-empty");if(e.includes(ee))throw new Error(`Graph name must not contain '${ee}' (got "${e}")`);if(e===ye)throw new Error(`Graph name "${ye}" is reserved for meta companion paths`);this.name=e,this.opts=Object.freeze({...n??{}}),this.config=n?.config??Ze,this._traceRing=new mt(n?.traceCapacity??1e3),n?.versioning!=null&&this.setVersioning(n.versioning)}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=pe(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)}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,i=n?.annotation;if(Wn(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 a=this._nodeToName.get(e);if(a!==void 0)throw new Error(`Graph "${this.name}": node instance already registered as "${a}"`);return this._nodes.set(s,e),this._nodeToName.set(e,s),this._emitTopology({kind:"added",name:s,nodeKind:"node"}),i!=null&&(this._annotations.set(s,i),this.config.inspectorEnabled&&this._traceRing.push({path:s,annotation:i,timestamp_ns:G()})),e}setVersioning(e){if(e!=null)for(let n of this._nodes.values())n instanceof ae&&n._applyVersioning(e)}remove(e){Wn(e,this.name,"remove");let n=this._mounts.get(e);if(n){let s={kind:"mount",nodes:[],mounts:[]},i=[];n._collectObserveTargets("",i);for(let[a,l]of i)a.includes(`${ee}${ye}${ee}`)||s.nodes.push(a);return s.nodes.sort(),s.mounts.push(e),s.mounts.push(...n._collectSubgraphs(`${e}${ee}`)),this._mounts.delete(e),n._parent=void 0,Go(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([[ce]],{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 i=>s.test(i)})(),r={kind:"mount",nodes:[],mounts:[]},o=[...this._nodes.keys(),...this._mounts.keys()].filter(s=>n(s));for(let s of o){let i=this.remove(s);r.nodes.push(...i.nodes),r.mounts.push(...i.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(ee))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([[L,n]],{actor:r?.actor,internal:o,delivery:"write"})}setAll(e,n){let r=Symbol.iterator in e?e:Object.entries(e);se(()=>{for(let[o,s]of r)this.set(o,s,n)})}invalidate(e,n){let r=n?.internal===!0;this.node(e).down([[Te]],{actor:n?.actor,internal:r,delivery:"write"})}error(e,n,r){let o=r?.internal===!0;this.node(e).down([[O,n]],{actor:r?.actor,internal:o,delivery:"write"})}complete(e,n){let r=n?.internal===!0;this.node(e).down([[F]],{actor:n?.actor,internal:r,delivery:"write"})}edges(e){let n=e?.recursive===!0,r=new Map;if(!n){for(let[l,u]of this._nodes)r.set(u,l);let a=[];for(let[l,u]of this._nodes)if(u instanceof ae)for(let d of u._deps){let c=r.get(d.node);c!=null&&a.push([c,l])}return a.sort((l,u)=>l[0]<u[0]?-1:l[0]>u[0]?1:l[1]<u[1]?-1:l[1]>u[1]?1:0),a}let o=[];this._collectObserveTargets("",o);let s=new Map;for(let[a,l]of o)s.set(l,a);let i=[];for(let[a,l]of o)if(l instanceof ae)for(let u of l._deps){let d=s.get(u.node);d!=null&&i.push([d,a])}return i.sort((a,l)=>a[0]<l[0]?-1:a[0]>l[0]?1:a[1]<l[1]?-1:a[1]>l[1]?1:0),i}mount(e,n){if(Wn(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(n===this)throw new Error(`Graph "${this.name}": cannot mount a graph into itself`);if(n._parent!=null)throw new Error(`Graph "${this.name}": this child graph is already mounted on "${n._parent.name}"`);for(let r=this;r!=null;r=r._parent)if(r===n)throw new Error(`Graph "${this.name}": mount("${e}", \u2026) would create a mount cycle`);return this._mounts.set(e,n),n._parent=this,this._emitTopology({kind:"added",name:e,nodeKind:"mount"}),n}resolve(e){let n=Ta(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 a=this._nodes.get(r);if(a)return a;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]===ye)return this._resolveMetaChainFromNode(s,o,n.join(ee));let i=this._mounts.get(r);if(!i)throw this._nodes.has(r)?new Error(`Graph "${this.name}": "${r}" is a node; trailing path "${o.join(ee)}" is invalid`):new Error(`Graph "${this.name}": unknown mount or node "${r}"`);return i.resolve(o.join(ee))}_resolveMetaChainFromNode(e,n,r){let o=e,s=0,i=[...n];for(;s<i.length;){if(i[s]!==ye)throw new Error(`Graph "${this.name}": expected ${ye} segment in meta path "${r}"`);if(s+1>=i.length)throw new Error(`Graph "${this.name}": meta path requires a key after ${ye} in "${r}"`);let a=i[s+1],l=o.meta[a];if(!l)throw new Error(`Graph "${this.name}": unknown meta "${a}" in path "${r}"`);o=l,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 l of this._mounts.values())l._signalDeliver(e,n,r,o);let i=n.internal===!0?{internal:!0}:{actor:n.actor,delivery:"signal"},a=wa(e,this.config);for(let l of[...this._nodes.keys()].sort()){let u=this._nodes.get(l);if(!r.has(u)){r.add(u);try{u.down(e,i)}catch(d){if(d instanceof we)throw d;o.push(d)}a.length!==0&&this._signalMetaSubtree(u,a,r,i,o)}}}_signalMetaSubtree(e,n,r,o,s){for(let i of Object.keys(e.meta).sort()){let a=e.meta[i];if(!r.has(a)){r.add(a);try{a.down(n,o)}catch(l){if(l instanceof we)throw l;s.push(l)}this._signalMetaSubtree(a,n,r,o,s)}}}describe(e){if(e?.reactive===!0)return this._describeReactive(e);let n=e?.actor,r=e?.filter,o=qt(e?.detail,e?.fields),s=e?.format==="spec",i=s?qt("minimal"):o,a=[];this._collectObserveTargets("",a);let l=new Map;for(let[x,_]of a)l.set(_,x);let u=[];{let x=a.map(([,k])=>k),_=new Set(l.values()),R=0;for(;x.length>0;){let k=x.shift();if(k instanceof ae)for(let P of k._deps){let A=P.node;if(l.has(A))continue;let D=A.name??"",M=D;if(!M||_.has(M))if(D){let j=2;for(;_.has(`${D}#${j}`);)j++;M=`${D}#${j}`}else for(M=`__internal__/${R++}`;_.has(M);)M=`__internal__/${R++}`;l.set(A,M),_.add(M),u.push([M,A]),x.push(A)}}}let d=[...a,...u],c={};for(let[x,_]of d){if(n!=null&&!_.allowsObserve(n))continue;let R=Hn(_,i),k=_ instanceof ae?_._deps.map(M=>l.get(M.node)??M.node.name??""):[],{name:P,...A}=R,D={...A,deps:k};if(!s){let M=this._annotations.get(x);M!=null&&(D.annotation=M)}if(r!=null)if(typeof r=="function"){let M=r;if(!(M.length>=2?M(x,D):M(D)))continue}else{let M=!0;for(let[j,z]of Object.entries(r)){let E=j==="deps_includes"?"depsIncludes":j==="meta_has"?"metaHas":j;if(E==="depsIncludes"){if(!D.deps.includes(String(z))){M=!1;break}continue}if(E==="metaHas"){if(!Object.hasOwn(D.meta??{},String(z))){M=!1;break}continue}if(D[E]!==z){M=!1;break}}if(!M)continue}c[x]=D}let m=new Set(Object.keys(c)),f=[];for(let[x,_]of d)if(_ instanceof ae)for(let R of _._deps){let k=l.get(R.node);k!=null&&f.push([k,x])}f.sort((x,_)=>x[0]<_[0]?-1:x[0]>_[0]?1:x[1]<_[1]?-1:x[1]>_[1]?1:0);let p=f.map(([x,_])=>({from:x,to:_}));(n!=null||r!=null)&&(p=p.filter(x=>m.has(x.from)&&m.has(x.to)));let g=this._collectSubgraphs(""),h=n!=null||r!=null?g.filter(x=>{let _=`${x}${ee}`;return[...m].some(R=>R===x||R.startsWith(_))}):g,y=this,v=e,b={name:this.name,nodes:c,edges:p,subgraphs:h,expand(x){let _={...v,format:void 0};return Array.isArray(x)?(_.fields=x,_.detail=void 0):(_.detail=x,_.fields=void 0),y.describe(_)}},T=e??{},w=T.format;return w==="json"?ca(b,T):w==="pretty"?pa(b,T):w==="mermaid"?Io(b,T):w==="mermaid-url"?fa(b,T):w==="d2"?ma(b,T):w==="ascii"?Eo(b,T):b}_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}${ee}`))}return n}resourceProfile(e){return Ao(this,e)}reachable(e,n,r={}){return r.withDetail===!0?Jn(this.describe(),e,n,{...r,withDetail:!0}):Jn(this.describe(),e,n,r)}explain(e,n,r){return r?.reactive===!0?this._explainReactive(e,n,r):this._explainStatic(e,n,r)}_explainStatic(e,n,r){let o=this.describe({detail:"full"}),s=new Map(this._annotations),i=new Map;for(let[a,l]of Object.entries(o.nodes))l.lastMutation!=null&&i.set(a,l.lastMutation);return mo(o,e,n,{...r?.maxDepth!=null?{maxDepth:r.maxDepth}:{},...r?.findCycle===!0?{findCycle:!0}:{},annotations:s,lastMutations:i})}_describeReactive(e){let n={...e,reactive:!1},r=e.reactiveName??"describe",o=0,s=S(o,{name:`${r}_version`}),i=this.observe({timeline:!0,structured:!0}),a=!1,l=!1,u=()=>{a||l||(a=!0,lt(()=>{a=!1,!l&&(o+=1,s.emit(o))}))},d=i.onEvent(h=>{let y=h.type;y!=="data"&&y!=="error"&&y!=="complete"&&y!=="teardown"||u()}),c=[],m=new WeakSet,f=h=>{if(m.has(h)||l)return;m.add(h);let y=h.topology.subscribe(v=>{for(let b of v){if(b[0]!==L)continue;let T=b[1];if(u(),T.kind==="added"&&T.nodeKind==="mount"){let w=h._mounts.get(T.name);w!=null&&f(w)}}});c.push(y);for(let v of h._mounts.keys()){let b=h._mounts.get(v);b!=null&&f(b)}};f(this);let p;try{p=C([s],()=>this.describe(n),{name:r,describeKind:"derived",meta:{domain:"audit",kind:"describe"},equals:(h,y)=>h===y})}catch(h){d();for(let y of c)y();throw i.dispose(),h}let g=Z(p);return{node:p,dispose(){l=!0,d();for(let h of c)h();c.length=0,i.dispose(),g()}}}_explainReactive(e,n,r){let o=0,s=S(o,{name:"explain_version"}),i=this.observe({timeline:!0,structured:!0}),a=!1,l=!1,u=i.onEvent(f=>{let p=f.type;p!=="data"&&p!=="error"&&p!=="complete"&&p!=="teardown"||a||l||(a=!0,lt(()=>{a=!1,!l&&(o+=1,s.emit(o))}))}),d={...r?.maxDepth!=null?{maxDepth:r.maxDepth}:{},...r?.findCycle===!0?{findCycle:!0}:{}},c;try{c=C([s],()=>this._explainStatic(e,n,d),{name:r?.name??"explain",describeKind:"derived",meta:{domain:"audit",kind:"explain_path",from:e,to:n},equals:(f,p)=>f.found===p.found&&f.reason===p.reason&&f.steps.length===p.steps.length&&xa(f.steps,p.steps)})}catch(f){throw u(),i.dispose(),f}let m=Z(c);return{node:c,dispose(){l=!0,u(),i.dispose(),m()}}}_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}${ee}${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}${ee}${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],i=`${e}${ee}${ye}${ee}${o}`;r.push([i,s]),this._appendMetaObserveTargets(i,s,r)}}observe(e,n){let r=typeof e=="string",s=Co(r?n:e),i=s.structured===!0||s.timeline===!0||s.causal===!0||s.derived===!0||s.detail==="minimal"||s.detail==="full"||s.format!=null,a=s.actor;if(r){let d=e,c=this.resolve(d);if(a!=null&&!c.allowsObserve(a))throw new we({actor:a,action:"observe",nodeName:d});return i?this._buildStructuredObserver([[d,c]],s,"one"):{subscribe(m){return c.subscribe(m)},up(m){try{c.up?.(m)}catch(f){if(f instanceof we)return;throw f}}}}let l=[];this._collectObserveTargets("",l),l.sort((d,c)=>d[0]<c[0]?-1:d[0]>c[0]?1:0);let u=a==null?l:l.filter(([,d])=>d.allowsObserve(a));return i?this._buildStructuredObserver(u,s,"all"):{subscribe:d=>{let c=u.map(([m,f])=>f.subscribe(p=>{d(m,p)}));return()=>{for(let m of c)m()}},up:(d,c)=>{try{this.resolve(d).up?.(c)}catch(m){if(m instanceof we)return;throw m}}}}_buildStructuredObserver(e,n,r){let o=r==="one"?e[0]?.[0]:void 0,s=i=>{if(r==="one"&&o!=null){let d=this.resolve(o);return this._buildStructuredObserver([[o,d]],i,"one")}let a=[];this._collectObserveTargets("",a),a.sort((d,c)=>d[0]<c[0]?-1:d[0]>c[0]?1:0);let l=i.actor,u=l==null?a:a.filter(([,d])=>d.allowsObserve(l));return this._buildStructuredObserver(u,i,"all")};return this._createObserveResult(e,n,s)}_createObserveResult(e,n,r){let o=n.timeline===!0,s=n.causal===!0,i=n.derived===!0,a=n.detail==="minimal",l=this.config.inspectorEnabled,u=(s||i)&&l,d=n.maxEvents,c=d!=null&&d>0?new mt(d):null,m=[],f=new Set,p={},g=new Set,h=0,y=0,v=0,b=0,T=0,w=0,x=!1,_=!1,R=0,k=new Map,P=new Map,A=new Map,D=I=>{c?c.push(I):m.push(I);for(let K of f)K(I)},M=()=>o?{timestamp_ns:G(),in_batch:St(),batch_id:R}:{},j=(I,K)=>{if(!(!u||!(I instanceof ae)))return I._setInspectorHook(te=>{if(te.kind==="dep_message")k.set(I,te.depIndex);else if(te.kind==="run"){let de=te.batchData.map((B,oe)=>B!=null&&B.length>0?B.at(-1):te.prevData[oe]);P.set(I,de);let W=te.batchData.map(B=>B!=null?[...B]:void 0);A.set(I,W),i&&D({type:"derived",path:K,dep_values:de,dep_batches:W,...M()})}})},z=I=>{let K=k.get(I),te=P.get(I);if(!s||te==null)return{};let W=(K!=null&&K>=0&&I instanceof ae?I._deps[K]:void 0)?.node,B=W?.v,oe=A.get(I);return{trigger_dep_index:K,trigger_dep_name:W?.name,...B!=null?{trigger_version:{id:B.id,version:B.version}}:{},dep_values:[...te],...oe!=null?{dep_batches:oe}:{}}},E=[],N=[];for(let[I,K]of e){let te=j(K,I);te&&E.push(te),N.push(K.subscribe(de=>{R++;for(let W of de){let B=W[0],oe=M();if(B===L){p[I]=W[1];let Re=K instanceof ae?K.lastMutation?.actor??Ye:Ye;D({type:"data",path:I,data:W[1],actor:Re,...oe,...z(K)})}else if(a)B===Y?h++:B===H?y++:B===Te?v++:B===xe?b++:B===Ae?T++:B===ce?w++:B===F&&!g.has(I)?x=!0:B===O&&(_=!0,g.add(I));else if(B===Y)h++,D({type:"dirty",path:I,...oe});else if(B===H)y++,D({type:"resolved",path:I,...oe,...z(K)});else if(B===Te)v++,D({type:"invalidate",path:I,...oe});else if(B===xe)b++,D({type:"pause",path:I,lockId:W[1],...oe});else if(B===Ae)T++,D({type:"resume",path:I,lockId:W[1],...oe});else if(B===F)g.has(I)||(x=!0),D({type:"complete",path:I,...oe});else if(B===O){_=!0,g.add(I);let Re=K instanceof ae?K.lastMutation?.actor??Ye:Ye;D({type:"error",path:I,data:W[1],actor:Re,...oe})}else B===ce&&(w++,D({type:"teardown",path:I,...oe}))}}))}let V=!1,U=()=>{if(!V){V=!0;for(let I of N)I();for(let I of E)I();for(let I of J)I({value:void 0,done:!0});J.length=0}},Q=[],J=[];f.add(I=>{let K=J.shift();K?K({value:I,done:!1}):Q.push(I)});let ve={get values(){return p},get dirtyCount(){return h},get resolvedCount(){return y},get invalidateCount(){return v},get pauseCount(){return b},get resumeCount(){return T},get teardownCount(){return w},get events(){return c?c.toArray():[...m]},get anyCompletedCleanly(){return x},get anyErrored(){return _},get completedWithoutErrors(){return x&&!_},onEvent(I){return f.add(I),()=>f.delete(I)},dispose:U,expand(I){U();let K={...n};return typeof I=="string"?K.detail=I:Object.assign(K,I),r(Co(K))},[Symbol.asyncIterator](){return{next(){return Q.length>0?Promise.resolve({value:Q.shift(),done:!1}):V?Promise.resolve({value:void 0,done:!0}):new Promise(I=>J.push(I))},return(){return U(),Promise.resolve({value:void 0,done:!0})}}}};return n.format!=null&&this._attachFormatLogger(ve,n),ve}_attachFormatLogger(e,n){let r=n.format;if(r==null)return;let o=n.logger??(p=>console.log(p)),s=n.includeTypes?new Set(n.includeTypes):null,i=n.excludeTypes?new Set(n.excludeTypes):null,a=s==null&&i==null?()=>!0:p=>(s==null||s.has(p))&&(i==null||!i.has(p)),l=ba(n.theme),u=r==="stage-log"?G():0,d=p=>p==null?"":n.stageLabels?.[p]??p,c=(p,g)=>p.length>g?`${p.slice(0,g-1)}\u2026`:p,m=p=>p.type==="data"||p.type==="error"?c(nn(p.data),120):"",f=p=>{if(r==="stage-log"){let _=(G()-u)/1e9,R=d(p.path).padEnd(9);if(p.type==="data"){let k=m(p);return`[${_.toFixed(3)}s] ${R} \u2190${k?` ${k}`:""}`}if(p.type==="error"){let k=m(p);return`[${_.toFixed(3)}s] ${R} \u2717${k?` ${k}`:""}`}return p.type==="complete"?`[${_.toFixed(3)}s] ${R} \u25A0 complete`:`[${_.toFixed(3)}s] ${R} ${p.type}`}if(r==="json")try{return JSON.stringify(p)}catch{return JSON.stringify({type:p.type,path:p.path,data:"[unserializable]"})}let g=l[p.type]??"",h=p.path?`${l.path}${p.path}${l.reset} `:"",y=p.type==="data"||p.type==="error",v=p.type==="pause"||p.type==="resume",b=y?` ${nn(p.data)}`:v?` ${nn(p.lockId)}`:"",T=p.type==="data"||p.type==="resolved"||p.type==="derived"?p:void 0,w=T?.trigger_dep_name!=null?` <- ${T.trigger_dep_name}`:T?.trigger_dep_index!=null?` <- #${T.trigger_dep_index}`:"",x=p.in_batch?" [batch]":"";return`${h}${g}${p.type.toUpperCase()}${l.reset}${b}${w}${x}`};e.onEvent(p=>{a(p.type)&&o(f(p),p)})}addDisposer(e){return this._disposers.add(e),()=>{this._disposers.delete(e)}}destroy(){So(this._disposers,this.name),this.signal([[ce]],{internal:!0}),So(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}_destroyClearOnly(){for(let e of[...this._mounts.values()])e._parent=void 0,e._destroyClearOnly();this._mounts.clear(),this._nodes.clear(),this._parent=void 0}snapshot(e){let{expand:n,...r}=this.describe({detail:"full"}),o={};for(let a of Object.keys(r.nodes).sort()){let{lastMutation:l,guard:u,...d}=r.nodes[a];o[a]=d}let s=[...r.subgraphs].sort(),i={...r,version:1,nodes:o,subgraphs:s};if(e?.format==null)return i;if(e.format==="json-string")return JSON.stringify(i);if(e.format==="bytes"){if(e.codec==null)throw new Error("snapshot({format: 'bytes'}) requires a `codec` name");let a=this.config.lookupCodec(e.codec);if(a==null)throw new Error(`snapshot: codec "${e.codec}" is not registered on this graph's config. Call config.registerCodec(...) before creating nodes.`);return yr(a,a.encode(i))}throw new Error(`snapshot: unknown format "${String(e.format)}"`)}static decode(e,n){let r=n?.config??Ze,{codec:o,codecVersion:s,payload:i}=br(e,r);return o.decode(i,s)}restore(e,n){if(Oo(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(a=>a.test(s)))continue;let i=e.nodes[s];if(i!==void 0){if(!("value"in i)||i.value===void 0){"value"in i&&i.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(!(i.type==="derived"||i.type==="effect")&&!(i.type==="producer"&&!o)){if(i.v!=null){let l=this.tryResolve(s)?.v;if(l!=null&&l.id===i.v.id&&l.version===i.v.version)continue}try{this.set(s,i.value)}catch(a){n?.onError?.(s,a)}}}}}static fromSnapshot(e,n){Oo(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((p,g)=>{let h=p.split(ee).length,y=g.split(ee).length;return h!==y?h-y:p<g?-1:p>g?1:0})){let p=f.split(ee),g=s;for(let h of p)g._mounts.has(h)||g.mount(h,new t(h)),g=g._mounts.get(h)}let i=o?Object.entries(o).map(([f,p])=>({re:tn(f),factory:p})):[],a=f=>{for(let p of i)if(p.re.test(f))return p.factory},l=f=>{let p=f.split(ee),g=p.pop();if(g==null||g.length===0)throw new Error(`invalid snapshot path "${f}"`);let h=s;for(let y of p){let v=h._mounts.get(y);if(!v)throw new Error(`unknown mount "${y}" in path "${f}"`);h=v}return[h,g]},u=Object.entries(e.nodes).filter(([f])=>!f.includes(`${ee}${ye}${ee}`)).sort((f,p)=>f[0]<p[0]?-1:f[0]>p[0]?1:0),d=new Map(u),c=new Map,m=!0;for(;d.size>0&&m;){m=!1;for(let[f,p]of[...d.entries()]){let g=p?.deps??[];if(!g.every(w=>c.has(w)))continue;let[h,y]=l(f),v={...p?.meta??{}},b=a(f),T;if(p?.type==="state")T=S(p.value,{meta:v});else{if(b==null)continue;T=b(y,{path:f,type:p.type,value:p.value,meta:v,deps:g,resolvedDeps:g.map(w=>c.get(w))})}h.add(T,{name:y}),c.set(f,T),d.delete(f),m=!0}}if(d.size>0){let f=[...d.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()}attachStorage(e,n={}){let r=e.map(u=>({tier:u,debounceMs:Math.max(0,u.debounceMs??0),compactEvery:Math.max(1,u.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=(u,d)=>{if(u.disposed)return;let c=ia(d.nodes);if(u.lastSnapshot!=null&&c!==""&&c===u.lastFingerprint)return;let m=u.seq+1,f=be(),h=u.lastSnapshot==null||m%u.compactEvery===0?{mode:"full",snapshot:d,seq:m,timestamp_ns:f,format_version:We}:{mode:"diff",diff:Fo(u.lastSnapshot,d),seq:m,timestamp_ns:f,format_version:We};if(u.tier.filter&&!u.tier.filter(this.name,h))return;let y;try{y=u.tier.save(this.name,h)}catch(v){n.onError?.(v,u.tier);return}if(y&&typeof y.then=="function"){let T=(u.savePending??Promise.resolve()).then(()=>y,()=>y).then(()=>{u.disposed||(u.seq=m,u.lastSnapshot=d,u.lastFingerprint=c)},w=>{n.onError?.(w,u.tier)});u.savePending=T.finally(()=>{u.savePending===T&&(u.savePending=void 0)})}else u.seq=m,u.lastSnapshot=d,u.lastFingerprint=c},s=(u,d)=>{try{o(u,d)}catch(c){n.onError?.(c,u.tier)}},i=(u,d)=>{if(!d.some(p=>{let g=this.config.messageTier(p[0]);return g>=3&&g<5}))return;if(n.filter){let p=this.tryResolve(u);if(p==null)return;let g=Hn(p,qt("standard"));if(!n.filter(u,g))return}let m,f=()=>(m==null&&(m=this.snapshot()),m);for(let p of r)p.disposed||(p.debounceMs===0?s(p,f()):(p.timer==null&&(p.timer=new ne),p.timer.start(p.debounceMs,()=>{p.disposed||s(p,this.snapshot())})))},a;if(n.paths!=null){let d=(typeof n.paths=="string"?this._pathsMatching(n.paths):n.paths).map(c=>{let m=this.tryResolve(c);return m==null?()=>{}:m.subscribe(f=>i(c,f))});a=()=>{for(let c of d)c()}}else a=this.observe().subscribe((u,d)=>i(u,d));let l=()=>{a();for(let u of r)u.disposed=!0,u.timer?.cancel();this._storageDisposers.delete(l)};return this._storageDisposers.add(l),{dispose:l}}async _cascadeRestore(e,n){for(let r of e){let o;try{o=await r.load(this.name)}catch(i){n?.(i,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===We&&s.nodes!=null)return this.restore(s),!0}catch(i){n?.(i,r)}}return!1}static async fromStorage(e,n,r){for(let o of n){let s;try{s=await o.load(e)}catch(l){r?.onError?.(l,o);continue}if(s==null||typeof s!="object"||Array.isArray(s))continue;let i=s,a=i.mode==="full"&&i.snapshot!=null?i.snapshot:i.version===We&&i.nodes!=null?i:void 0;if(a!=null)try{return t.fromSnapshot(a,r)}catch(l){r?.onError?.(l,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:G(),...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(v=>!r.has(v)).sort(),i=[...r].filter(v=>!o.has(v)).sort(),a=[],l=[];for(let v of r){if(!o.has(v))continue;let b=e.nodes[v],T=n.nodes[v],w=b.v,x=T.v;w!=null&&x!=null&&w.id===x.id&&w.version!==x.version&&l.push({path:v,id:w.id,from:w.version,to:x.version});let _=w!=null&&x!=null&&w.id===x.id&&w.version===x.version;for(let R of["type","status","sentinel"]){let k=b[R],P=T[R];k!==P&&a.push({path:v,field:R,from:k,to:P})}if(!_)for(let R of["value","meta"]){let k=b[R],P=T[R];aa(k,P)||a.push({path:v,field:R,from:k,to:P})}}let u=v=>`${v.from} ${v.to}`,d=new Set(e.edges.map(u)),c=new Set(n.edges.map(u)),m=n.edges.filter(v=>!d.has(u(v))),f=e.edges.filter(v=>!c.has(u(v))),p=new Set(e.subgraphs),g=new Set(n.subgraphs),h=[...g].filter(v=>!p.has(v)).sort(),y=[...p].filter(v=>!g.has(v)).sort();return{nodesAdded:s,nodesRemoved:i,nodesChanged:a,versionChanges:l,edgesAdded:m,edgesRemoved:f,subgraphsAdded:h,subgraphsRemoved:y}}};function Fo(t,e){let n=ue.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 Jn(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 i=new Map,a=new Map,l=new Map,u=new Map,d=new Set;for(let[b,T]of Object.entries(t.nodes)){if(!b)continue;d.add(b);let w=T.deps??[];i.set(b,w);for(let x of w)x&&(d.add(x),a.has(x)||a.set(x,new Set),a.get(x).add(b))}for(let b of t.edges){if(b==null||typeof b!="object")continue;let T=typeof b.from=="string"?b.from:"",w=typeof b.to=="string"?b.to:"";!T||!w||(d.add(T),d.add(w),u.has(T)||u.set(T,new Set),u.get(T).add(w),l.has(w)||l.set(w,new Set),l.get(w).add(T))}if(!d.has(e))return r.withDetail?o:[];let c=r.both===!0,m=b=>{if(c){let _=i.get(b)??[],R=l.get(b),k=a.get(b),P=u.get(b),A=[..._];return R&&A.push(...R),k&&A.push(...k),P&&A.push(...P),A}if(n==="upstream"){let _=i.get(b)??[],R=l.get(b);return R?[..._,...R]:_}let T=a.get(b),w=u.get(b),x=T?[...T]:[];return w&&x.push(...w),x},f=new Set([e]),p=new Map,g=[{path:e,depth:0}],h=0,y=!1;for(;h<g.length;){let b=g[h++];if(s!=null&&b.depth>=s){m(b.path).length>0&&(y=!0);continue}for(let T of m(b.path))!T||f.has(T)||(f.add(T),p.set(T,b.depth+1),g.push({path:T,depth:b.depth+1}))}let v=[...p.keys()].sort((b,T)=>b<T?-1:b>T?1:0);return r.withDetail?{paths:v,depths:p,truncated:y}:v}function xa(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,i=o.v;if(s!==i&&(s==null||i==null||s.id!==i.id||s.version!==i.version))return!1}return!0}function $o(t,e){return ot("messaging",t,e)}var Yn=class extends ue{_log;events;latest;hasLatest;constructor(e,n={}){super(e,n.graph),this._log=De([],{name:"events",maxSize:n.retainedLimit}),this.events=this._log.entries,this.add(this.events,{name:"events"}),this.latest=C([this.events],([r])=>{let o=r;return o.length===0?null:o[o.length-1]},{name:"latest",describeKind:"derived",meta:$o("topic_latest")}),this.add(this.latest,{name:"latest"}),this.addDisposer(Z(this.latest)),this.hasLatest=C([this.events],([r])=>r.length>0,{name:"hasLatest",describeKind:"derived",meta:$o("topic_has_latest")}),this.add(this.hasLatest,{name:"hasLatest"}),this.addDisposer(Z(this.hasLatest)),this.addDisposer(()=>{this.events.down([[F]])}),this.addDisposer(()=>this._log.disposeAllViews())}publish(e){this._log.append(e)}retained(){return this.events.cache}};function Xn(t,e){return new Yn(t,e)}Me();fe();ke();X();function ka(t,e){if(typeof e=="string")return{node:t.resolve(e),path:e};let n=_a(t,e);if(!n)throw new Error("orchestration dep node must already be registered in the graph so explicit edges can be recorded; pass a string path or register the node first");return{node:e,path:n}}function _a(t,e){let n=t.describe(),r=`::${ye}::`;for(let o of Object.keys(n.nodes).sort())if(!o.includes(r))try{if(t.resolve(o)===e)return o}catch{}}function Ra(t,e,n,r){t.add(n,{name:e})}function Ma(t,e){return ot("orchestration",t,e)}function Bo(t,e,n,r){let o=r?.maxPending??1/0;if(o<1&&o!==1/0)throw new RangeError("gate: maxPending must be >= 1");let s=r?.startOpen??!1,i=ka(t,n),a=S([],{name:"pending",equals:()=>!1}),l=S(s,{name:"isOpen"}),u=C([a],([w])=>w.length,{name:"count"}),d=[],c=!1,m=s,f=l.subscribe(w=>{for(let x of w)x[0]===L&&(m=x[1])});function p(){a.emit([...d])}function g(w){d.push(w),d.length>o&&d.shift(),p()}function h(w){let x=d.splice(0,w);return p(),x}function y(w){if(c)throw new Error(`gate: ${w}() called after gate was torn down`)}let v=ie([i.node],(w,x,_)=>{let R=_.terminalDeps[0];if(R!==void 0){c=!0,d=[],p(),x.down(R===!0?[[F]]:[[O,R]]);return}let k=w[0];if(k==null||k.length===0){x.down([[H]]);return}for(let P of k)m?x.emit(P):(g(P),x.down([[H]]))},{name:e,describeKind:"derived",meta:Ma("gate",r?.meta)}),b={node:v,pending:a,count:u,isOpen:l,approve(w=1){y("approve");let x=h(w);for(let _ of x){if(c)break;v.emit(_)}},reject(w=1){y("reject"),h(w)},modify(w,x=1){y("modify");let _=[...d],R=h(x);for(let k=0;k<R.length&&!c;k++)v.emit(w(R[k],k,_))},open(){y("open"),se(()=>{l.emit(!0);let w=h(d.length);for(let x of w){if(c)break;v.emit(x)}})},close(){y("close"),l.emit(!1)}};t.addDisposer(u.subscribe(()=>{})),t.addDisposer(f),Ra(t,e,v,i.path?[i.path]:[]);let T=new ue(`${e}_state`);return T.add(a,{name:"pending"}),T.add(l,{name:"isOpen"}),T.add(u,{name:"count"}),t.mount(`${e}_state`,T),b}function Na(t,e,n,r){let o=r?.name??"llm",s=r?.format??"text",i=Xn(`${o}/stream`),a=C(e,d=>{if(d.some(f=>f==null))return[];let c=typeof n=="string"?n:n(...d);if(!c)return[];let m=[];return r?.systemPrompt&&m.push({role:"system",content:r.systemPrompt}),m.push({role:"user",content:c}),m}),l=me(a,d=>{let c=d;if(!c||c.length===0)return S(null);let m=new AbortController;async function*f(){let p="",g=0;try{for await(let y of t.stream(c,{model:r?.model,temperature:r?.temperature,maxTokens:r?.maxTokens,systemPrompt:r?.systemPrompt,signal:m.signal})){if(y.type!=="token")continue;let v=y.delta;p+=v,i.publish({source:o,token:v,accumulated:p,index:g++})}let h;if(s==="json")try{h=JSON.parse(ze(p))}catch{h=null}else h=p;yield h}finally{m.abort()}}return $(f())}),u=Z(l);return{output:l,stream:i,dispose:()=>{u(),i.destroy()}}}function Ea(t,e,n,r,o,s){let i=S(0,{name:`${e}/cancel`}),a=0,l=[...r,i],u=s?.name??e,d=s?.format??"text",c=Xn(`${u}/stream`),m=C(l,b=>{let T=b.slice(0,-1);if(T.some(_=>_==null))return[];let w=typeof o=="string"?o:o(...T);if(!w)return[];let x=[];return s?.systemPrompt&&x.push({role:"system",content:s.systemPrompt}),x.push({role:"user",content:w}),x}),f=me(m,b=>{let T=b;if(!T||T.length===0)return S(null);let w=new AbortController;async function*x(){let _="",R=0;try{for await(let P of n.stream(T,{model:s?.model,temperature:s?.temperature,maxTokens:s?.maxTokens,systemPrompt:s?.systemPrompt,signal:w.signal})){if(P.type!=="token")continue;let A=P.delta;_+=A,c.publish({source:u,token:A,accumulated:_,index:R++})}let k;if(d==="json")try{k=JSON.parse(ze(_))}catch{k=null}else k=_;yield k}finally{w.abort()}}return $(x())}),p=Z(f),g=C([f],([b])=>{if(b!=null)return b},{name:`${e}/filter`});t.add(g,{name:`${e}/raw`});let h=Bo(t,`${e}/gate`,`${e}/raw`,s?.gate),y=h.reject.bind(h),v={...h,reject(b=1){y(b),i.emit(++a)}};return{output:h.node,stream:c,gate:v,dispose:()=>{p(),c.destroy()}}}X();re();function Aa(t,e){let n=e?.separator??`
|
|
29
30
|
|
|
30
|
-
`,r=t.map(s=>typeof s=="string"?C(s):z(s)),o=$(r,s=>s.filter(a=>a!=null&&a!=="").join(n),{name:e?.name??"systemPrompt",describeKind:"derived",meta:ee("system_prompt"),initial:""}),i=ne(o);return Object.assign(o,{dispose:i})}function Co(t,e){return(n,r)=>{let o=[...r.keys()].slice(0,100),i=[{role:"system",content:t},{role:"user",content:JSON.stringify({input:n,existingKeys:o})}];return de(s=>{let a=!0,l=e.adapter.invoke(i,{model:e.model,temperature:e.temperature??0,maxTokens:e.maxTokens}),u=z(l).subscribe(c=>{if(!a)return;let m=!1;for(let f of c){if(m)break;if(f[0]===A){let p=f[1];try{let g=JSON.parse(p.content);s.emit(g),s.down([[P]])}catch{s.down([[O,new Error("llmExtractor: failed to parse LLM response as JSON")]])}m=!0}else f[0]===O?(s.down([[O,f[1]]]),m=!0):f[0]===P?(s.down([[P]]),m=!0):s.down([[f[0],f[1]]])}});return()=>{u(),a=!1}})}}function Lo(t,e){return n=>{let r=[...n.entries()].map(([i,s])=>({key:i,value:s})),o=[{role:"system",content:t},{role:"user",content:JSON.stringify({memories:r})}];return de(i=>{let s=!0,a=e.adapter.invoke(o,{model:e.model,temperature:e.temperature??0,maxTokens:e.maxTokens}),d=z(a).subscribe(u=>{if(!s)return;let c=!1;for(let m of u){if(c)break;if(m[0]===A){let f=m[1];try{let p=JSON.parse(f.content);i.emit(p),i.down([[P]])}catch{i.down([[O,new Error("llmConsolidator: failed to parse LLM response as JSON")]])}c=!0}else m[0]===O?(i.down([[O,m[1]]]),c=!0):m[0]===P?(i.down([[P]]),c=!0):i.down([[m[0],m[1]]])}});return()=>{d(),s=!1}})}}function sa(t){return{persistence:.5,structure:.5,personalValue:.5}}function ia(t={}){let e=t.scoreFn??sa,n=t.persistenceThreshold??.3,r=t.personalValueThreshold??.3,o=t.requireStructured??!1;return i=>{let s=e(i);return!(s.persistence<n||s.personalValue<r||o&&s.structure<=0)}}var aa=Math.LN2/(7*86400);function ft(t){return t instanceof Map?t:new Map}function la(t,e,n){let r=new ce(t,n.graph),o=[],i;if(n.extractFn)i=n.extractFn;else if(n.adapter&&n.extractPrompt)i=Co(n.extractPrompt,{adapter:n.adapter});else throw new Error("agentMemory: provide either extractFn or adapter + extractPrompt");let s=(b,T)=>b==null?{upsert:[]}:i(b,T),a=e;if(n.admissionFilter){let b=z(e),T=n.admissionFilter;a=$([b],([w])=>{if(T(w))return w},{name:"admissionFilter",describeKind:"derived"})}let l;n.consolidateFn?l=n.consolidateFn:n.adapter&&n.consolidatePrompt&&(l=Lo(n.consolidatePrompt,{adapter:n.adapter}));let d=n.consolidateTrigger;if(!d&&l&&n.reflection?.enabled!==!1){let b=n.reflection?.interval??3e5;d=_r(b,{period:b})}let u={score:n.score,cost:n.cost,budget:n.budget??2e3,context:n.context,consolidate:l,consolidateTrigger:d},c=Ar(a,s,u);r.add(c.store.entries,{name:"store"}),r.add(c.compact,{name:"compact"}),r.add(c.size,{name:"size"});let m=null;n.vectorDimensions&&n.vectorDimensions>0&&n.embedFn&&(m=Yr({dimension:n.vectorDimensions}),r.add(m.entries,{name:"vectorIndex"}));let f=null;n.enableKnowledgeGraph&&(f=Qr(`${t}-kg`),r.mount("kg",f));let p=null;if(n.tiers){let b=n.tiers,T=b.decayRate??aa,w=b.maxActive??1e3,k=b.archiveThreshold??.1,_=b.permanentFilter??(()=>!1),N=Jr({name:"permanent"});r.add(N.entries,{name:"permanent"});let x=new Set,V=M=>x.has(M)?"permanent":ft(c.store.entries.cache).has(M)?"active":"archived",L=(M,F)=>{x.add(M),N.upsert(M,F)},I=new Map,R=c.store.entries,K=n.context?z(n.context):C(null),W=Fe([R,K],([M,F])=>{let j=ft(M),Y=D(),q=[],be=[];for(let[B,X]of j){if(I.has(B)||I.set(B,Y),_(B,X)){be.push({key:B,value:X});continue}let ae=n.score(X,F),H=I.get(B)??Y,G=Number(Y-H)/1e9;qr(ae,G,T)<k&&q.push(B)}for(let B of I.keys())j.has(B)||I.delete(B);for(let{key:B,value:X}of be)x.has(B)||L(B,X);let S=j.size-x.size;if(S>w){let B=[...j.entries()].filter(([ae])=>!x.has(ae)).map(([ae,H])=>({key:ae,score:n.score(H,F)})).sort((ae,H)=>ae.score-H.score),X=S-w;for(let ae=0;ae<X&&ae<B.length;ae++){let H=B[ae].key;q.includes(H)||q.push(H)}}q.length>0&&re(()=>{for(let B of q)c.store.delete(B)})});o.push(W.subscribe(()=>{}));let E=null;b.archiveTier&&(E=r.attachStorage([b.archiveTier],b.archiveStorageOptions??{})),p={permanent:N,activeEntries:R,archiveHandle:E,tierOf:V,markPermanent:L}}if(m||f){let b=n.embedFn,T=n.entityFn,w=c.store.entries,k=Fe([w],([_])=>{let N=ft(_);for(let[x,V]of N){if(m&&b){let L=b(V);L&&m.upsert(x,L,V)}if(f&&T){let L=T(x,V);if(L){for(let I of L.entities??[])f.upsertEntity(I.id,I.value);for(let I of L.relations??[])f.link(I.from,I.to,I.relation,I.weight)}}}});o.push(k.subscribe(()=>{}))}let g=null,h=null,y=null,v=null;if(m||f){let b=n.retrieval?.topK??20,T=n.retrieval?.graphDepth??1,w=n.budget??2e3,k=n.cost,_=n.score,N=n.contextOf,x=n.contextWeight??0,V=n.context?z(n.context):C(null),L=(E,M)=>{if(!E||!M)return 0;let F=Math.min(E.length,M.length),j=0;for(;j<F&&E[j]===M[j];)j++;return j},I=(E,M,F)=>{let j=new Map,Y=[];if(m&&F.vector){Y=m.search(F.vector,b);for(let H of Y){let G=E.get(H.id);G&&j.set(H.id,{value:G,sources:new Set(["vector"])})}}let q=[];if(f){let H=[...F.entityIds??[],...j.keys()],G=new Set,te=H;for(let xe=0;xe<T;xe++){let De=[];for(let nt of te){if(G.has(nt))continue;G.add(nt);let ht=f.related(nt);for(let Io of ht){let He=Io.to;if(!G.has(He)){De.push(He);let qn=E.get(He);if(qn){let Jn=j.get(He);Jn?Jn.sources.add("graph"):j.set(He,{value:qn,sources:new Set(["graph"])}),q.push(He)}}}}te=De}}for(let[H,G]of E)j.has(H)||j.set(H,{value:G,sources:new Set(["store"])});let be=F.context?.length??0,S=[];for(let[H,{value:G,sources:te}]of j){let xe=N?N(G):void 0,De=_(G,M);if(x>0&&be>0){let ht=L(F.context,xe);ht>0&&(De=De*(1+x*ht/be))}let nt=xe?{key:H,value:G,score:De,sources:[...te],context:xe}:{key:H,value:G,score:De,sources:[...te]};S.push(nt)}S.sort((H,G)=>G.score-H.score);let B=[],X=0;for(let H of S){let G=k(H.value);if(X+G>w&&B.length>0)break;B.push(H),X+=G}return{packed:B,trace:{vectorCandidates:Y,graphExpanded:q,ranked:S,packed:B}}},R=C([],{name:"retrieval",describeKind:"state",meta:ee("retrieval_pipeline")});r.add(R,{name:"retrieval"}),g=R;let K=C(null,{name:"retrievalTrace",describeKind:"state",meta:ee("retrieval_trace")});r.add(K,{name:"retrievalTrace"}),h=K,y=E=>{let M=ft(c.store.entries.cache),{packed:F,trace:j}=I(M,V.cache,E);return re(()=>{R.emit(F),K.emit(j)}),F},v=E=>{let M=z(E);return $([c.store.entries,V,M],([F,j,Y])=>{if(Y==null)return[];let q=ft(F);return I(q,j,Y).packed},{name:"retrievalReactive",describeKind:"derived",meta:ee("retrieval_reactive"),initial:[]})}}return r.addDisposer(()=>{for(let b of o)b();o.length=0}),Object.assign(r,{distillBundle:c,compact:c.compact,size:c.size,vectors:m,kg:f,memoryTiers:p,retrieval:g,retrievalTrace:h,retrieve:y,retrieveReactive:v})}var en=class extends ce{chat;tools;status;turn;aborted;lastResponse;toolCalls;toolResults;turnCount;_terminalResult;_disposeRunWiring;_runVersion=0;_running=!1;_currentAbortController=null;constructor(e,n){if(super(e,n.graph),this.chat=So(`${e}-chat`,{maxMessages:n.maxMessages}),this.mount("chat",this.chat),this.tools=Ao(`${e}-tools`),this.mount("tools",this.tools),n.tools)for(let E of n.tools)this.tools.register(E);this.status=C("idle",{name:"status",describeKind:"state",meta:ee("agent_status")}),this.add(this.status,{name:"status"}),this.turn=C(0,{name:"turn",describeKind:"state",meta:ee("agent_turn_count")}),this.add(this.turn,{name:"turn"}),this.turnCount=this.turn,this.aborted=C(!1,{name:"aborted",describeKind:"state",meta:ee("agent_aborted")}),this.add(this.aborted,{name:"aborted"});let r=0,o=this.turn.subscribe(E=>{for(let M of E)M[0]===A&&(r=M[1])}),i=!1,s=this.aborted.subscribe(E=>{for(let M of E)M[0]===A&&(i=M[1])}),a=n.adapter,l=n.systemPrompt,d=n.model,u=n.temperature,c=n.maxTokens,m=n.maxTurns??10,f=n.stopWhen,p=this.chat,g=this.tools,h=this.status,y=this.turn,v=this.aborted,b=se([h],(E,M,F)=>{if(mt(E,F.prevData,0,"idle")!=="thinking"||i||r>=m){M.down([[U]]);return}let Y=p.allMessages();if(Y.length===0){M.down([[U]]);return}let q=g.schemas.cache??[];M.emit({messages:Y,tools:q})},{name:"promptInput",describeKind:"derived",meta:ee("agent_prompt_input")}),T=we(b,E=>{let M=new AbortController;return this._currentAbortController=M,i&&M.abort(new Error("agentLoop: aborted")),z(Promise.resolve(a.invoke(E.messages,{tools:E.tools.length>0?E.tools:void 0,systemPrompt:l,model:d,temperature:u,maxTokens:c,signal:M.signal})),{signal:M.signal})},{equals:()=>!1}),w=C(null,{name:"lastResponse",describeKind:"state",meta:ee("agent_last_response")});this.lastResponse=w;let k=se([w,h],(E,M,F)=>{let j=mt(E,F.prevData,0,null);if(mt(E,F.prevData,1,"idle")!=="acting"){M.down([[U]]);return}let q=j?.toolCalls;if(q==null||q.length===0){M.down([[U]]);return}M.emit(q)},{name:"toolCalls",describeKind:"derived",meta:ee("agent_tool_calls")}),_=n.interceptToolCalls?n.interceptToolCalls(k):k;this.toolCalls=_;let N=(E,M)=>{if(E===M)return!0;if(E.length!==M.length)return!1;for(let F=0;F<E.length;F++){let j=E[F],Y=M[F];if(j?.id!==Y?.id||j?.content!==Y?.content)return!1}return!0},x=we(_,E=>{if(E==null||E.length===0)throw new Error("agentLoop: toolResultsNode received an empty tool-call batch as DATA \u2014 toolCallsNode gating invariant broken (should emit RESOLVED for empty). Audit toolCallsNode.");let M=E.map(F=>da(F,g));return $(M,F=>F.map((j,Y)=>{let q=j;return q!=null&&typeof q=="object"&&"id"in q&&"content"in q?q:{id:E[Y].id,content:JSON.stringify(j??null)}}),{name:"toolResults_batch",equals:N})});this.toolResults=x;let V=Fe([T],([E])=>{if(i)return;let M=E,F=r+1,j=M.toolCalls!=null&&M.toolCalls.length>0,Y=M.finishReason==="end_turn"&&(!M.toolCalls||M.toolCalls.length===0),q=f?.(M)===!0,be=F>=m,S=q||Y||!j||be?"done":"acting";re(()=>{w.emit(M),h.emit(S),y.emit(F),p.append("assistant",M.content,{toolCalls:M.toolCalls})})}),L=Fe([x],([E])=>{if(i)return;let M=E;if(M.length===0)return;let F=r>=m?"done":"thinking";re(()=>{h.emit(F);for(let j of M)p.appendToolResult(j.id,j.content)})}),I=Fe([v],([E])=>{E===!0&&(this._currentAbortController?.abort(new Error("agentLoop: aborted")),h.emit("done"))}),R=ne(V),K=ne(L),W=ne(I);this._terminalResult=se([h,w],(E,M,F)=>{let j=mt(E,F.prevData,0,"idle"),Y=mt(E,F.prevData,1,null);if(j==="done"){if(Y!=null){M.emit({response:Y,runVersion:this._runVersion});return}let q=new Error("agentLoop: aborted");q.name="AbortError",M.down([[O,q]]);return}if(j==="error"){M.down([[O,new Error("agentLoop: errored")]]);return}M.down([[U]])},{name:"terminalResult",describeKind:"derived",meta:ee("agent_terminal_result")}),this.addDisposer(o),this.addDisposer(s),this.addDisposer(R),this.addDisposer(K),this.addDisposer(W),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=++this._runVersion;re(()=>{this.turn.emit(0),this.aborted.emit(!1),this.status.emit("idle")}),e!=null&&this.chat.append("user",e),this.status.emit("thinking");let o;if(n!=null)if(n.aborted)this.aborted.emit(!0);else{let i=()=>this.aborted.emit(!0);n.addEventListener("abort",i,{once:!0}),o=()=>n.removeEventListener("abort",i)}try{return(await Rr(this._terminalResult,{predicate:s=>s!=null&&typeof s=="object"&&s.runVersion===r})).response}finally{o?.(),this._running=!1,this._currentAbortController=null}}abort(){this.aborted.emit(!0)}destroy(){try{this._disposeRunWiring()}catch{}super.destroy()}};function da(t,e){let n=bn(()=>z(Promise.resolve().then(()=>e.execute(t.name,t.arguments))),{count:1}),r=$([n],([o])=>({id:t.id,content:typeof o=="string"?o:JSON.stringify(o)}));return Nr(r,o=>({id:t.id,content:JSON.stringify({error:String(o)})}))}function mt(t,e,n,r){let o=t[n];if(o!=null&&o.length>0)return o[o.length-1];let i=e[n];return i!==void 0?i:r}function ua(t,e){return new en(t,e)}function ca(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 pa(t,e){let n=t.describe({actor:e,detail:"full"}),r=[],o=[],i=[];for(let[s,a]of Object.entries(n.nodes)){if(a.type!=="state"||s.includes("::__meta__::")||a.status==="completed"||a.status==="errored")continue;let l=a.meta??{},d=l.access;if(d==="human"||d==="system")continue;let u=l.description??`Set the value of ${s}`,c=ca(l),m={type:"object",required:["value"],properties:{value:c},additionalProperties:!1},f=s.replace(/::/g,"__");r.push({type:"function",function:{name:f,description:u,parameters:m}}),o.push({name:s,description:u,inputSchema:m});let p=t,g=e,h=a.v;i.push({name:s,description:u,parameters:m,handler(y){return p.set(s,y.value,g?{actor:g}:void 0),y.value},...h!=null?{version:{id:h.id,version:h.version}}:{}})}return{openai:r,mcp:o,definitions:i}}function fa(t,e,n){let r=t.describe({actor:e,detail:"full"}),o=n?.groupByTags??!0,i=n?.separator??`
|
|
31
|
-
`,
|
|
31
|
+
`,r=t.map(i=>typeof i=="string"?S(i):$(i)),o=C(r,i=>i.filter(a=>a!=null&&a!=="").join(n),{name:e?.name??"systemPrompt",describeKind:"derived",meta:q("system_prompt"),initial:""}),s=Z(o);return Object.assign(o,{dispose:s})}X();var Sa=(t,e)=>t===e?!0:t.chunkCount===e.chunkCount&&t.charCount===e.charCount&&t.estimatedTokens===e.estimatedTokens;function Oa(t,e){let n=e?.charsPerToken??4;return C([t.latest],([r])=>{if(r==null)return{chunkCount:0,charCount:0,estimatedTokens:0};let o=r,s=o.accumulated.length;return{chunkCount:o.index+1,charCount:s,estimatedTokens:Math.ceil(s/n)}},{name:e?.name??"cost-meter",describeKind:"derived",initial:{chunkCount:0,charCount:0,estimatedTokens:0},meta:q("cost_meter_extractor"),equals:Sa})}X();var Ca=(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 La(t,e){let n=e.maxPatternLength??128;return C([t.latest],([r],o)=>{if(r==null)return[];let s=r.accumulated;"flags"in o.store||(o.store.flags=[],o.store.scannedTo=0);let i=o.store.flags,a=o.store.scannedTo,l=Math.max(0,a-n),u=s.slice(l),d=!1;for(let{pattern:c,label:m}of e.patterns){let f=new RegExp(c.source,`${c.flags.replace("g","")}g`);for(let p of u.matchAll(f)){let g=l+p.index;g+p[0].length<=a||(i.push({label:m,pattern:c,match:p[0],position:g}),d=!0)}}return o.store.scannedTo=s.length,d?[...i]:i.slice()},{name:e.name??"keyword-flag-extractor",describeKind:"derived",initial:[],meta:q("keyword_flag_extractor"),equals:Ca})}X();function Da(t,e,n){return C([t.latest],([r])=>r==null?null:e(r.accumulated),{name:n?.name??"extractor",describeKind:"derived",initial:null,meta:q("stream_extractor"),...n?.equals?{equals:n.equals}:{}})}X();var Ia=(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 Pa(t,e){return C([t.latest],([n],r)=>{if(n==null)return[];let o=n.accumulated;"calls"in r.store||(r.store.calls=[],r.store.scanFrom=0);let s=r.store.calls,i=r.store.scanFrom,a=!1;for(;i<o.length;){let l=o.indexOf("{",i);if(l===-1){r.store.scanFrom=o.length;break}let u=0,d=-1,c=!1;for(let f=l;f<o.length;f++){let p=o[f];if(c)p==="\\"&&f+1<o.length?f++:p==='"'&&(c=!1);else if(p==='"')c=!0;else if(p==="{")u++;else if(p==="}"&&(u--,u===0)){d=f;break}}if(d===-1){r.store.scanFrom=l;break}let m=o.slice(l,d+1);try{let f=JSON.parse(m);typeof f.name=="string"&&f.arguments!=null&&typeof f.arguments=="object"&&(s.push({name:f.name,arguments:f.arguments,raw:m,startIndex:l}),a=!0)}catch{}i=d+1,r.store.scanFrom=i}return a?[...s]:s.slice()},{name:e?.name??"tool-call-extractor",describeKind:"derived",initial:[],meta:q("tool_call_extractor"),equals:Ia})}X();function Ga(t,e,n,r){let o=n*(r?.hardMultiplier??1.5),s=typeof e!="function",i=[t.latest];return s&&i.push(e),C(i,a=>{let l=a[0];if(l==null)return"allow";let u=s?a[1]??0:e(l.accumulated);return u>=o?"block":u>=n?"review":"allow"},{name:r?.name??"content-gate",initial:"allow"})}X();function Fa(t,e,n,r){let o=n??(()=>"[REDACTED]");function s(i){let a=i;for(let l of e){let u=l.global?l:new RegExp(l.source,`${l.flags}g`);a=a.replace(u,d=>o(d,l))}return a}return C([t.latest],([i])=>{if(i==null)return{source:"",token:"",accumulated:"",index:-1};let a=i,l=s(a.accumulated),u=s(a.token);return{source:a.source,token:u,accumulated:l,index:a.index}},{name:r?.name??"redactor"})}Me();fe();ke();X();tt();re();X();var rn=class extends ue{_log;messages;latest;messageCount;constructor(e,n={}){super(e,n.graph),this._log=De([],{name:"messages",maxSize:n.maxMessages}),this.messages=this._log.entries,this.add(this.messages,{name:"messages"}),this.latest=C([this.messages],([r])=>{let o=r;return o.length===0?null:o[o.length-1]},{name:"latest",describeKind:"derived",meta:q("chat_latest")}),this.add(this.latest,{name:"latest"}),this.addDisposer(Z(this.latest)),this.messageCount=C([this.messages],([r])=>r.length,{name:"messageCount",describeKind:"derived",meta:q("chat_message_count"),initial:0}),this.add(this.messageCount,{name:"messageCount"}),this.addDisposer(Z(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 Qn(t,e){return new rn(t,e)}X();var on=class extends ue{definitions;schemas;constructor(e,n={}){super(e,n.graph),this.definitions=S(new Map,{name:"definitions",describeKind:"state",meta:q("tool_definitions")}),this.add(this.definitions,{name:"definitions"}),this.schemas=C([this.definitions],([r])=>[...(r??new Map).values()],{name:"schemas",describeKind:"derived",meta:q("tool_schemas"),initial:[]}),this.add(this.schemas,{name:"schemas"}),this.addDisposer(Z(this.schemas))}register(e){let n=this.definitions.cache,r=new Map(n);r.set(e.name,e),this.definitions.emit(r)}unregister(e){let n=this.definitions.cache;if(!n.has(e))return;let r=new Map(n);r.delete(e),this.definitions.emit(r)}async execute(e,n){let o=this.definitions.cache.get(e);if(!o)throw new Error(`toolRegistry: unknown tool "${e}"`);let s=o.handler(n);return He(s)}getDefinition(e){return this.definitions.cache?.get(e)}};function Zn(t,e){return new on(t,e)}var sn=class extends ue{chat;tools;status;turn;aborted;lastResponse;toolCalls;toolResults;turnCount;_terminalResult;_disposeRunWiring;_runVersion=0;_running=!1;_currentAbortController=null;constructor(e,n){if(super(e,n.graph),this.chat=Qn(`${e}-chat`,{maxMessages:n.maxMessages}),this.mount("chat",this.chat),this.tools=Zn(`${e}-tools`),this.mount("tools",this.tools),n.tools)for(let E of n.tools)this.tools.register(E);this.status=S("idle",{name:"status",describeKind:"state",meta:q("agent_status")}),this.add(this.status,{name:"status"}),this.turn=S(0,{name:"turn",describeKind:"state",meta:q("agent_turn_count")}),this.add(this.turn,{name:"turn"}),this.turnCount=this.turn,this.aborted=S(!1,{name:"aborted",describeKind:"state",meta:q("agent_aborted")}),this.add(this.aborted,{name:"aborted"});let r=0,o=this.turn.subscribe(E=>{for(let N of E)N[0]===L&&(r=N[1])}),s=!1,i=this.aborted.subscribe(E=>{for(let N of E)N[0]===L&&(s=N[1])}),a=n.adapter,l=n.systemPrompt,u=n.model,d=n.temperature,c=n.maxTokens,m=n.maxTurns??10,f=n.stopWhen,p=this.chat,g=this.tools,h=this.status,y=this.turn,v=this.aborted,b=ie([h],(E,N,V)=>{if(ht(E,V.prevData,0,"idle")!=="thinking"||s||r>=m){N.down([[H]]);return}let Q=p.allMessages();if(Q.length===0){N.down([[H]]);return}let J=g.schemas.cache??[];N.emit({messages:Q,tools:J})},{name:"promptInput",describeKind:"derived",meta:q("agent_prompt_input")}),T=me(b,E=>{let N=new AbortController;return this._currentAbortController=N,s&&N.abort(new Error("agentLoop: aborted")),$(Promise.resolve(a.invoke(E.messages,{tools:E.tools.length>0?E.tools:void 0,systemPrompt:l,model:u,temperature:d,maxTokens:c,signal:N.signal})),{signal:N.signal})},{equals:()=>!1}),w=S(null,{name:"lastResponse",describeKind:"state",meta:q("agent_last_response")});this.lastResponse=w;let x=ie([w,h],(E,N,V)=>{let U=ht(E,V.prevData,0,null);if(ht(E,V.prevData,1,"idle")!=="acting"){N.down([[H]]);return}let J=U?.toolCalls;if(J==null||J.length===0){N.down([[H]]);return}N.emit(J)},{name:"toolCalls",describeKind:"derived",meta:q("agent_tool_calls")}),_=n.interceptToolCalls?n.interceptToolCalls(x):x;this.toolCalls=_;let R=(E,N)=>{if(E===N)return!0;if(E.length!==N.length)return!1;for(let V=0;V<E.length;V++){let U=E[V],Q=N[V];if(U?.id!==Q?.id||U?.content!==Q?.content)return!1}return!0},k=me(_,E=>{if(E==null||E.length===0)throw new Error("agentLoop: toolResultsNode received an empty tool-call batch as DATA \u2014 toolCallsNode gating invariant broken (should emit RESOLVED for empty). Audit toolCallsNode.");let N=E.map(V=>$a(V,g));return C(N,V=>V.map((U,Q)=>{let J=U;return J!=null&&typeof J=="object"&&"id"in J&&"content"in J?J:{id:E[Q].id,content:JSON.stringify(U??null)}}),{name:"toolResults_batch",equals:R})});this.toolResults=k;let P=Ce([T],([E])=>{if(s)return;let N=E,V=r+1,U=N.toolCalls!=null&&N.toolCalls.length>0,Q=N.finishReason==="end_turn"&&(!N.toolCalls||N.toolCalls.length===0),J=f?.(N)===!0,ve=V>=m,I=J||Q||!U||ve?"done":"acting";se(()=>{w.emit(N),h.emit(I),y.emit(V),p.append("assistant",N.content,{toolCalls:N.toolCalls})})}),A=Ce([k],([E])=>{if(s)return;let N=E;if(N.length===0)return;let V=r>=m?"done":"thinking";se(()=>{h.emit(V);for(let U of N)p.appendToolResult(U.id,U.content)})}),D=Ce([v],([E])=>{E===!0&&(this._currentAbortController?.abort(new Error("agentLoop: aborted")),h.emit("done"))}),M=Z(P),j=Z(A),z=Z(D);this._terminalResult=ie([h,w],(E,N,V)=>{let U=ht(E,V.prevData,0,"idle"),Q=ht(E,V.prevData,1,null);if(U==="done"){if(Q!=null){N.emit({response:Q,runVersion:this._runVersion});return}let J=new Error("agentLoop: aborted");J.name="AbortError",N.down([[O,J]]);return}if(U==="error"){N.down([[O,new Error("agentLoop: errored")]]);return}N.down([[H]])},{name:"terminalResult",describeKind:"derived",meta:q("agent_terminal_result")}),this.addDisposer(o),this.addDisposer(i),this.addDisposer(M),this.addDisposer(j),this.addDisposer(z),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=++this._runVersion;se(()=>{this.turn.emit(0),this.aborted.emit(!1),this.status.emit("idle")}),e!=null&&this.chat.append("user",e),this.status.emit("thinking");let o;if(n!=null)if(n.aborted)this.aborted.emit(!0);else{let s=()=>this.aborted.emit(!0);n.addEventListener("abort",s,{once:!0}),o=()=>n.removeEventListener("abort",s)}try{return(await jr(this._terminalResult,{predicate:i=>i!=null&&typeof i=="object"&&i.runVersion===r})).response}finally{o?.(),this._running=!1,this._currentAbortController=null}}abort(){this.aborted.emit(!0)}destroy(){try{this._disposeRunWiring()}catch{}super.destroy()}};function $a(t,e){let n=Rn(()=>$(Promise.resolve().then(()=>e.execute(t.name,t.arguments))),{count:1}),r=C([n],([o])=>({id:t.id,content:typeof o=="string"?o:JSON.stringify(o)}));return co(r,o=>({id:t.id,content:JSON.stringify({error:String(o)})}))}function ht(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 Ba(t,e){return new sn(t,e)}X();re();function ja(t,e,n){let r=$(t),o=n?.condition!=null?$(n.condition):null,s=S(null,{name:n?.name?`${n.name}::null`:"handoff::null"});if(o==null)return me(r,a=>{if(a==null)return s;let l=S(a);return e(l)});let i=C([r,o],([a,l])=>({v:a,open:l===!0}),{name:n?.name?`${n.name}::router`:"handoff::router",describeKind:"derived"});return me(i,({v:a,open:l})=>{if(a==null)return s;if(!l)return S(a);let u=S(a);return e(u)})}X();re();function Va(t,e,n){let r=$(t),o=e.map(i=>$(i)),s=[r,...o];return C(s,i=>{let a=i[0]??[],l=i.slice(1);return a.filter(u=>{for(let d of l)if(d!=null&&!d(u))return!1;return!0})},{name:n?.name??"tool-selector",describeKind:"derived",meta:q("tool_selector"),equals:(i,a)=>{let l=i,u=a;if(l.length!==u.length)return!1;for(let d=0;d<l.length;d++)if(l[d]!==u[d])return!1;return!0}})}function Ka(t){return{persistence:.5,structure:.5,personalValue:.5}}function Ua(t={}){let e=t.scoreFn??Ka,n=t.persistenceThreshold??.3,r=t.personalValueThreshold??.3,o=t.requireStructured??!1;return s=>{let i=e(s);return!(i.persistence<n||i.personalValue<r||o&&i.structure<=0)}}Me();he();X();Me();fe();X();Me();he();fe();X();var er=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,i]of e)this._store.has(s)&&this._store.delete(s),this._store.set(s,{value:i,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=G(),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=G(),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 G()+n*1e9}}_isExpired(e,n){return e.expiresAt===void 0?!1:(n??G())>=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 jo(t={}){let{name:e,maxSize:n,defaultTtl:r,versioning:o,backend:s}=t,i=s??new er({maxSize:n,defaultTtl:r}),a=S(i.toMap(),{name:e,describeKind:"state",equals:(d,c)=>d===c,...o!=null?{versioning:o}:{}});function l(){let d=i.toMap();se(()=>{a.down([[Y]]),a.down([[L,d]])})}function u(d){let c=i.version;try{return d()}finally{i.version!==c&&l()}}return{entries:a,has(d){return u(()=>i.has(d))},get(d){return u(()=>i.get(d))},set(d,c,m){u(()=>i.set(d,c,m?.ttl))},setMany(d,c){u(()=>i.setMany(d,c?.ttl))},delete(d){u(()=>i.delete(d))},deleteMany(d){u(()=>i.deleteMany(d))},clear(){u(()=>i.clear())},pruneExpired(){u(()=>i.pruneExpired())},get size(){return i.size},dispose(){}}}re();function Ha(t){return typeof t=="object"&&t!==null&&"cache"in t&&typeof t.subscribe=="function"}function Vo(t){t.subscribe(()=>{})}function gt(t){return t instanceof Map?t:new Map}function Ko(t,e){if(!Array.isArray(e.upsert))throw new TypeError("distill extraction requires upsert: Array<{ key, value }>");se(()=>{for(let{key:n,value:r}of e.upsert)t.set(n,r);for(let n of e.remove??[])t.delete(n)})}function Uo(t,e,n){let r=$(t),o=jo(n.mapOptions??{}),s=n.budget??2e3,a=n.context!==void 0&&n.context!==null?$(n.context):S(null),l=gt(o.entries.cache);o.entries.subscribe(f=>{for(let p of f)p[0]===L&&(l=gt(p[1]))});let u=me(r,f=>e(f,l));if(pt(u,f=>{Ko(o,f)}),n.evict){let f=new Map,p=C([o.entries],([g])=>{let h=[],y=gt(g);for(let v of f.keys())y.has(v)||(f.get(v)(),f.delete(v));for(let[v,b]of y){let T=n.evict(v,b);if(Ha(T)){if(!f.has(v)){let w=pt(T,x=>{x===!0&&o.has(v)&&o.delete(v)});f.set(v,w)}continue}if(typeof T=="boolean"){T&&h.push(v);continue}throw new TypeError("distill evict() must return boolean or Node<boolean>")}return h});pt(p,g=>{for(let h of g)o.delete(h)})}let d=n.consolidateTrigger!==void 0&&n.consolidateTrigger!==null;if(n.consolidate&&d){let f=$(n.consolidateTrigger),p=me(f,()=>n.consolidate(l));pt(p,g=>{Ko(o,g)})}let c=C([o.entries,a],([f,p])=>{let g=[...gt(f).entries()].map(([v,b])=>({key:v,value:b,score:n.score(b,p),cost:n.cost(b)}));g.sort((v,b)=>b.score-v.score);let h=[],y=s;for(let v of g)v.cost<=y&&(h.push({key:v.key,value:v.value,score:v.score}),y-=v.cost);return h}),m=C([o.entries],([f])=>gt(f).size);return Vo(c),Vo(m),{store:o,compact:c,size:m}}re();he();X();function Ho(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)}function za(t){if(t!==void 0&&t<1)throw new RangeError("maxSize must be >= 1")}function qe(t){return new Map(t)}function _e(t){return t.cache??new Map}function an(t){return t.cache??[]}function Wa(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 a=t[i]??0,l=e[i]??0;r+=a*l,o+=a*a,s+=l*l}return o===0||s===0?0:r/Math.sqrt(o*s)}function zo(t={}){let e=t.maxSize,n=t.policy??"fifo";za(e);let r=S(new Map,{name:t.name,describeKind:"state"});function o(i){if(e!==void 0)for(;i.size>e;){let a;for(let l of i.values()){if(!a){a=l;continue}let u=n==="lru"?l.lastAccessNs:l.createdAtNs,d=n==="lru"?a.lastAccessNs:a.createdAtNs;u<d&&(a=l)}if(!a)break;i.delete(a.id)}}function s(i){r.emit(i)}return{entries:r,upsert(i,a){let l=G(),u=_e(r),d=u.get(i),c=qe(u);c.set(i,{id:i,value:a,createdAtNs:d?.createdAtNs??l,lastAccessNs:l}),o(c),s(c)},remove(i){let a=qe(_e(r));a.delete(i)&&s(a)},clear(){_e(r).size!==0&&s(new Map)},get(i){let a=_e(r),l=a.get(i);if(l){if(n==="lru"){let u=G(),d=qe(a);d.set(i,{...l,lastAccessNs:u}),s(d)}return l.value}},has(i){return _e(r).has(i)}}}function Wo(t={}){let e=t.backend??"flat",n=t.dimension,r;if(e==="hnsw"&&(r=t.hnswFactory?.(),!r))throw new Error('vectorIndex backend "hnsw" requires an optional dependency adapter; install your HNSW package and provide `hnswFactory`.');let o=S(new Map,{describeKind:"state",name:"vector-index"});function s(a){if(n!==void 0&&a.length!==n)throw new RangeError(`vector dimension mismatch: expected ${n}, got ${a.length}`)}function i(a){o.emit(a)}return{backend:e,entries:o,upsert(a,l,u){s(l);let d=qe(_e(o));d.set(a,{id:a,vector:[...l],meta:u}),e==="hnsw"&&r.upsert(a,l,u),i(d)},remove(a){let l=qe(_e(o));l.delete(a)&&(e==="hnsw"&&r.remove(a),i(l))},clear(){_e(o).size!==0&&(e==="hnsw"&&r.clear(),i(new Map))},search(a,l=5){return s(a),l<=0?[]:e==="hnsw"?r.search(a,l):[..._e(o).values()].map(d=>({id:d.id,score:Wa(a,d.vector),meta:d.meta})).sort((d,c)=>c.score-d.score).slice(0,l)}}}function qo(t){let e=new ue(t),n=S(new Map,{name:"entities",describeKind:"state"}),r=S([],{name:"edges",describeKind:"state"}),o=C([r],([l])=>{let u=l??[],d=new Map;for(let c of u){let m=d.get(c.from)??[];d.set(c.from,Object.freeze([...m,c]))}return d},{name:"adjacency",describeKind:"derived",initial:new Map});o.subscribe(()=>{}),e.add(n,{name:"entities"}),e.add(r,{name:"edges"}),e.add(o,{name:"adjacency"});function s(l){n.emit(l)}function i(l){r.emit(l)}return Object.assign(e,{upsertEntity(l,u){let d=qe(_e(n));d.set(l,u),s(d)},removeEntity(l){let u=qe(_e(n)),d=u.delete(l),c=an(r),m=c.filter(f=>f.from!==l&&f.to!==l);!d&&m.length===c.length||(s(u),i(m))},link(l,u,d,c=1){let m=`${l}\0${u}\0${d}`,f=an(r),p=new Set(f.map(h=>`${h.from}\0${h.to}\0${h.relation}`)),g=[...f];if(p.has(m))for(let h=0;h<g.length;h+=1){let y=g[h];if(y.from===l&&y.to===u&&y.relation===d){g[h]={...y,weight:c};break}}else g.push({from:l,to:u,relation:d,weight:c});i(g)},unlink(l,u,d){let c=an(r),m=c.filter(f=>d===void 0?!(f.from===l&&f.to===u):!(f.from===l&&f.to===u&&f.relation===d));m.length!==c.length&&i(m)},related(l,u){return an(r).filter(d=>(d.from===l||d.to===l)&&(u===void 0||d.relation===u))}})}fe();X();re();function tr(t,e){return(n,r)=>{let o=[...r.keys()].slice(0,100),s=[{role:"system",content:t},{role:"user",content:JSON.stringify({input:n,existingKeys:o})}];return pe(i=>{let a=!0,l=e.adapter.invoke(s,{model:e.model,temperature:e.temperature??0,maxTokens:e.maxTokens}),d=$(l).subscribe(c=>{if(!a)return;let m=!1;for(let f of c){if(m)break;if(f[0]===L){let p=f[1];try{let g=JSON.parse(p.content);i.emit(g),i.down([[F]])}catch{i.down([[O,new Error("llmExtractor: failed to parse LLM response as JSON")]])}m=!0}else f[0]===O?(i.down([[O,f[1]]]),m=!0):f[0]===F?(i.down([[F]]),m=!0):i.down([[f[0],f[1]]])}});return()=>{d(),a=!1}})}}function nr(t,e){return n=>{let r=[...n.entries()].map(([s,i])=>({key:s,value:i})),o=[{role:"system",content:t},{role:"user",content:JSON.stringify({memories:r})}];return pe(s=>{let i=!0,a=e.adapter.invoke(o,{model:e.model,temperature:e.temperature??0,maxTokens:e.maxTokens}),u=$(a).subscribe(d=>{if(!i)return;let c=!1;for(let m of d){if(c)break;if(m[0]===L){let f=m[1];try{let p=JSON.parse(f.content);s.emit(p),s.down([[F]])}catch{s.down([[O,new Error("llmConsolidator: failed to parse LLM response as JSON")]])}c=!0}else m[0]===O?(s.down([[O,m[1]]]),c=!0):m[0]===F?(s.down([[F]]),c=!0):s.down([[m[0],m[1]]])}});return()=>{u(),i=!1}})}}var rr=Math.LN2/604800;function yt(t){return t instanceof Map?t:new Map}function qa(t,e,n){let r=new ue(t,n.graph),o=[],s;if(n.extractFn)s=n.extractFn;else if(n.adapter&&n.extractPrompt)s=tr(n.extractPrompt,{adapter:n.adapter});else throw new Error("agentMemory: provide either extractFn or adapter + extractPrompt");let i=(b,T)=>b==null?{upsert:[]}:s(b,T),a=e;if(n.admissionFilter){let b=$(e),T=n.admissionFilter;a=C([b],([w])=>{if(T(w))return w},{name:"admissionFilter",describeKind:"derived"})}let l;n.consolidateFn?l=n.consolidateFn:n.adapter&&n.consolidatePrompt&&(l=nr(n.consolidatePrompt,{adapter:n.adapter}));let u=n.consolidateTrigger;if(!u&&l&&n.reflection?.enabled!==!1){let b=n.reflection?.interval??3e5;u=$r(b,{period:b})}let d={score:n.score,cost:n.cost,budget:n.budget??2e3,context:n.context,consolidate:l,consolidateTrigger:u},c=Uo(a,i,d);r.add(c.store.entries,{name:"store"}),r.add(c.compact,{name:"compact"}),r.add(c.size,{name:"size"});let m=null;n.vectorDimensions&&n.vectorDimensions>0&&n.embedFn&&(m=Wo({dimension:n.vectorDimensions}),r.add(m.entries,{name:"vectorIndex"}));let f=null;n.enableKnowledgeGraph&&(f=qo(`${t}-kg`),r.mount("kg",f));let p=null;if(n.tiers){let b=n.tiers,T=b.decayRate??rr,w=b.maxActive??1e3,x=b.archiveThreshold??.1,_=b.permanentFilter??(()=>!1),R=zo({name:"permanent"});r.add(R.entries,{name:"permanent"});let k=new Set,P=N=>k.has(N)?"permanent":yt(c.store.entries.cache).has(N)?"active":"archived",A=(N,V)=>{k.add(N),R.upsert(N,V)},D=new Map,M=c.store.entries,j=n.context?$(n.context):S(null),z=Ce([M,j],([N,V])=>{let U=yt(N),Q=G(),J=[],ve=[];for(let[K,te]of U){if(D.has(K)||D.set(K,Q),_(K,te)){ve.push({key:K,value:te});continue}let de=n.score(te,V),W=D.get(K)??Q,B=Number(Q-W)/1e9;Ho(de,B,T)<x&&J.push(K)}for(let K of D.keys())U.has(K)||D.delete(K);for(let{key:K,value:te}of ve)k.has(K)||A(K,te);let I=U.size-k.size;if(I>w){let K=[...U.entries()].filter(([de])=>!k.has(de)).map(([de,W])=>({key:de,score:n.score(W,V)})).sort((de,W)=>de.score-W.score),te=I-w;for(let de=0;de<te&&de<K.length;de++){let W=K[de].key;J.includes(W)||J.push(W)}}J.length>0&&se(()=>{for(let K of J)c.store.delete(K)})});o.push(z.subscribe(()=>{}));let E=null;b.archiveTier&&(E=r.attachStorage([b.archiveTier],b.archiveStorageOptions??{})),p={permanent:R,activeEntries:M,archiveHandle:E,tierOf:P,markPermanent:A}}if(m||f){let b=n.embedFn,T=n.entityFn,w=c.store.entries,x=Ce([w],([_])=>{let R=yt(_);for(let[k,P]of R){if(m&&b){let A=b(P);A&&m.upsert(k,A,P)}if(f&&T){let A=T(k,P);if(A){for(let D of A.entities??[])f.upsertEntity(D.id,D.value);for(let D of A.relations??[])f.link(D.from,D.to,D.relation,D.weight)}}}});o.push(x.subscribe(()=>{}))}let g=null,h=null,y=null,v=null;if(m||f){let b=n.retrieval?.topK??20,T=n.retrieval?.graphDepth??1,w=n.budget??2e3,x=n.cost,_=n.score,R=n.contextOf,k=n.contextWeight??0,P=n.context?$(n.context):S(null),A=(E,N)=>{if(!E||!N)return 0;let V=Math.min(E.length,N.length),U=0;for(;U<V&&E[U]===N[U];)U++;return U},D=(E,N,V)=>{let U=new Map,Q=[];if(m&&V.vector){Q=m.search(V.vector,b);for(let W of Q){let B=E.get(W.id);B&&U.set(W.id,{value:B,sources:new Set(["vector"])})}}let J=[];if(f){let W=[...V.entityIds??[],...U.keys()],B=new Set,oe=W;for(let Re=0;Re<T;Re++){let Pe=[];for(let st of oe){if(B.has(st))continue;B.add(st);let bt=f.related(st);for(let Xo of bt){let Je=Xo.to;if(!B.has(Je)){Pe.push(Je);let sr=E.get(Je);if(sr){let ir=U.get(Je);ir?ir.sources.add("graph"):U.set(Je,{value:sr,sources:new Set(["graph"])}),J.push(Je)}}}}oe=Pe}}for(let[W,B]of E)U.has(W)||U.set(W,{value:B,sources:new Set(["store"])});let ve=V.context?.length??0,I=[];for(let[W,{value:B,sources:oe}]of U){let Re=R?R(B):void 0,Pe=_(B,N);if(k>0&&ve>0){let bt=A(V.context,Re);bt>0&&(Pe=Pe*(1+k*bt/ve))}let st=Re?{key:W,value:B,score:Pe,sources:[...oe],context:Re}:{key:W,value:B,score:Pe,sources:[...oe]};I.push(st)}I.sort((W,B)=>B.score-W.score);let K=[],te=0;for(let W of I){let B=x(W.value);if(te+B>w&&K.length>0)break;K.push(W),te+=B}return{packed:K,trace:{vectorCandidates:Q,graphExpanded:J,ranked:I,packed:K}}},M=S([],{name:"retrieval",describeKind:"state",meta:q("retrieval_pipeline")});r.add(M,{name:"retrieval"}),g=M;let j=S(null,{name:"retrievalTrace",describeKind:"state",meta:q("retrieval_trace")});r.add(j,{name:"retrievalTrace"}),h=j,y=E=>{let N=yt(c.store.entries.cache),{packed:V,trace:U}=D(N,P.cache,E);return se(()=>{M.emit(V),j.emit(U)}),V},v=E=>{let N=$(E);return C([c.store.entries,P,N],([V,U,Q])=>{if(Q==null)return[];let J=yt(V);return D(J,U,Q).packed},{name:"retrievalReactive",describeKind:"derived",meta:q("retrieval_reactive"),initial:[]})}}return r.addDisposer(()=>{for(let b of o)b();o.length=0}),Object.assign(r,{distillBundle:c,compact:c.compact,size:c.size,vectors:m,kg:f,memoryTiers:p,retrieval:g,retrievalTrace:h,retrieve:y,retrieveReactive:v})}function Ja(t,e,n){let r=t.describe({actor:e,detail:"full"}),o=n?.groupByTags??!0,s=n?.separator??`
|
|
32
|
+
`,i=[],a=n?.sinceVersion;for(let[l,u]of Object.entries(r.nodes)){let d=u.meta??{},c=d.description,m=d.format;if(!c&&!m)continue;if(a!=null&&u.v!=null){let y=a.get(l);if(y!=null&&y.id===u.v.id&&u.v.version<=y.version)continue}let f=c??l,p=u.value,g=d.unit,h;m==="currency"&&typeof p=="number"?h=`$${p.toFixed(2)}`:m==="percentage"&&typeof p=="number"?h=`${(p*100).toFixed(1)}%`:p==null?h="(no value)":h=String(p),g&&m!=="currency"&&m!=="percentage"&&(h=`${h} ${g}`),i.push({path:l,description:f,formatted:h})}if(i.length===0)return"";if(o){let l=new Map,u=[];for(let c of i){let f=r.nodes[c.path].meta?.tags;if(f&&f.length>0){let p=f[0],g=l.get(p);g||(g=[],l.set(p,g)),g.push(c)}else u.push(c)}if(l.size===0)return i.map(c=>`- ${c.description}: ${c.formatted}`).join(s);let d=[];for(let[c,m]of[...l.entries()].sort((f,p)=>f[0].localeCompare(p[0])))d.push(`[${c}]${s}${m.map(f=>`- ${f.description}: ${f.formatted}`).join(s)}`);return u.length>0&&d.push(u.map(c=>`- ${c.description}: ${c.formatted}`).join(s)),d.join(s+s)}return i.map(l=>`- ${l.description}: ${l.formatted}`).join(s)}var Jo=new Set(["state","derived","producer","operator","effect"]);function or(t){let e=[];if(t==null||typeof t!="object")return{valid:!1,errors:["Definition must be a non-null object"]};let n=t;if((typeof n.name!="string"||n.name.length===0)&&e.push("Missing or empty 'name' field"),n.nodes==null||typeof n.nodes!="object"||Array.isArray(n.nodes))return e.push("Missing or invalid 'nodes' field (must be an object)"),{valid:!1,errors:e};let r=new Set(Object.keys(n.nodes));for(let[o,s]of Object.entries(n.nodes)){if(s==null||typeof s!="object"){e.push(`Node "${o}": must be an object`);continue}let i=s;if((typeof i.type!="string"||!Jo.has(i.type))&&e.push(`Node "${o}": invalid type "${String(i.type)}" (expected: ${[...Jo].join(", ")})`),Array.isArray(i.deps))for(let a of i.deps)typeof a=="string"&&!r.has(a)&&e.push(`Node "${o}": dep "${a}" does not reference an existing node`)}if(!Array.isArray(n.edges))n.edges!==void 0&&e.push("'edges' must be an array");else{let o=new Set;for(let s=0;s<n.edges.length;s++){let i=n.edges[s];if(i==null||typeof i!="object"){e.push(`Edge [${s}]: must be an object`);continue}let a=i;(typeof a.from!="string"||!r.has(a.from))&&e.push(`Edge [${s}]: 'from' "${String(a.from)}" does not reference an existing node`),(typeof a.to!="string"||!r.has(a.to))&&e.push(`Edge [${s}]: 'to' "${String(a.to)}" does not reference an existing node`);let l=`${a.from}->${a.to}`;o.has(l)&&e.push(`Edge [${s}]: duplicate edge ${l}`),o.add(l)}}return{valid:e.length===0,errors:e}}var Yo=`You are a graph architect for GraphReFly, a reactive graph protocol.
|
|
32
33
|
|
|
33
34
|
Given a natural-language description, produce a JSON graph definition with this structure:
|
|
34
35
|
|
|
@@ -63,11 +64,11 @@ Rules:
|
|
|
63
64
|
- "producer" nodes have no deps but generate values asynchronously.
|
|
64
65
|
- Edges wire output of one node as input to another. They must match deps.
|
|
65
66
|
- meta.description is required for every node.
|
|
66
|
-
- Return ONLY valid JSON, no markdown fences or commentary.`;async function
|
|
67
|
+
- Return ONLY valid JSON, no markdown fences or commentary.`;async function Ya(t,e,n){let o=[{role:"system",content:n?.systemPromptExtra?`${Yo}
|
|
67
68
|
|
|
68
|
-
${n.systemPromptExtra}`:
|
|
69
|
-
${
|
|
70
|
-
`)}`);let
|
|
69
|
+
${n.systemPromptExtra}`:Yo},{role:"user",content:t}],s=e.invoke(o,{model:n?.model,temperature:n?.temperature??0,maxTokens:n?.maxTokens}),a=(await He(s)).content.trim();a.startsWith("```")&&(a=ze(a));let l;try{l=JSON.parse(a)}catch{throw new Error(`graphFromSpec: LLM response is not valid JSON: ${a.slice(0,200)}`)}let u=or(l);if(!u.valid)throw new Error(`graphFromSpec: invalid graph definition:
|
|
70
|
+
${u.errors.join(`
|
|
71
|
+
`)}`);let d=l;return d.version===void 0&&(d.version=1),Array.isArray(d.subgraphs)||(d.subgraphs=[]),ue.fromSnapshot(d,n?.build)}function Xa(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 Qa(t,e){let n=t.describe({actor:e,detail:"full"}),r=[],o=[],s=[];for(let[i,a]of Object.entries(n.nodes)){if(a.type!=="state"||i.includes("::__meta__::")||a.status==="completed"||a.status==="errored")continue;let l=a.meta??{},u=l.access;if(u==="human"||u==="system")continue;let d=l.description??`Set the value of ${i}`,c=Xa(l),m={type:"object",required:["value"],properties:{value:c},additionalProperties:!1},f=i.replace(/::/g,"__");r.push({type:"function",function:{name:f,description:d,parameters:m}}),o.push({name:i,description:d,inputSchema:m});let p=t,g=e,h=a.v;s.push({name:i,description:d,parameters:m,handler(y){return p.set(i,y.value,g?{actor:g}:void 0),y.value},...h!=null?{version:{id:h.id,version:h.version}}:{}})}return{openai:r,mcp:o,definitions:s}}var Za=`You are a reactive graph optimizer for GraphReFly.
|
|
71
72
|
|
|
72
73
|
Given a graph's current structure (from describe()) and a problem statement, suggest topology and parameter changes to solve the problem.
|
|
73
74
|
|
|
@@ -88,4 +89,4 @@ Return ONLY valid JSON with this structure:
|
|
|
88
89
|
Rules:
|
|
89
90
|
- Only suggest operations that reference existing nodes (for remove/disconnect/set_value/update_meta) or new nodes you define (for add_node).
|
|
90
91
|
- Keep changes minimal \u2014 prefer the smallest set of operations that solves the problem.
|
|
91
|
-
- Return ONLY valid JSON, no markdown fences or commentary.`;async function
|
|
92
|
+
- Return ONLY valid JSON, no markdown fences or commentary.`;async function el(t,e,n,r){let{expand:o,...s}=t.describe({actor:r?.actor,detail:"standard"}),i=[{role:"system",content:Za},{role:"user",content:JSON.stringify({graph:s,problem:e})}],a=n.invoke(i,{model:r?.model,temperature:r?.temperature??0,maxTokens:r?.maxTokens}),u=(await He(a)).content.trim();u.startsWith("```")&&(u=u.replace(/^```(?:json)?\s*/,"").replace(/\s*```$/,""));let d;try{d=JSON.parse(u)}catch{throw new Error(`suggestStrategy: LLM response is not valid JSON: ${u.slice(0,200)}`)}let c=d;if(typeof c.summary!="string")throw new Error("suggestStrategy: missing 'summary' in response");if(typeof c.reasoning!="string")throw new Error("suggestStrategy: missing 'reasoning' in response");if(!Array.isArray(c.operations))throw new Error("suggestStrategy: missing 'operations' array in response");return{summary:c.summary,reasoning:c.reasoning,operations:c.operations}}0&&(module.exports={AgentLoopGraph,AllTiersExhaustedError,BudgetExhaustedError,ChatStreamGraph,CircuitOpenError,DEFAULT_DECAY_RATE,FallbackMissError,LLMTimeoutError,ReplayCacheMissError,ToolRegistryGraph,admissionFilter3D,agentLoop,agentMemory,anthropicAdapter,canonicalJson,cascadingLlmAdapter,chatStream,composePricing,computePrice,contentGate,costMeterExtractor,createAdapter,createCapabilitiesRegistry,createPricingRegistry,dryRunAdapter,dryRunPreset,fallbackAdapter,fromLLM,frozenContext,gatedStream,gaugesAsContext,googleAdapter,graphFromSpec,handoff,keywordFlagExtractor,knobsAsTools,llmConsolidator,llmExtractor,observableAdapter,openAICompatAdapter,parseRateLimitFromError,promptNode,redactor,registryPricing,resilientAdapter,streamExtractor,streamingPromptNode,suggestStrategy,systemPromptBuilder,toolCallExtractor,toolRegistry,toolSelector,validateGraphDef,withBreaker,withBudgetGate,withDryRun,withRateLimiter,withReplayCache,withRetry,withTimeout,zeroPrice});
|