@graphrefly/graphrefly 0.37.0 → 0.39.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/budget-gate-CmmVtasH.d.ts +115 -0
- package/dist/budget-gate-DiP_nK0n.d.cts +115 -0
- package/dist/{cascading-BsJ4GbnS.d.ts → cascading-BzuxW0_w.d.cts} +2 -2
- package/dist/{cascading-B25wxpRa.d.cts → cascading-g2_rhhaM.d.ts} +2 -2
- package/dist/chunk-35JTVPOX.js +1 -0
- package/dist/chunk-3G5U5QNE.js +5 -0
- package/dist/chunk-4I45FVQS.js +1 -0
- package/dist/chunk-5LK7XMEV.js +1 -0
- package/dist/chunk-5XRI6RM3.js +1 -0
- package/dist/chunk-73PBQNST.js +1 -0
- package/dist/chunk-7JRF5YEK.js +3 -0
- package/dist/{chunk-YVYSO5CW.js → chunk-7NZMZJMW.js} +1 -1
- package/dist/chunk-7QFRK3N3.js +84 -0
- package/dist/{chunk-K6ZFJ473.js → chunk-7SD73DS6.js} +1 -1
- package/dist/{chunk-LOQRPP4Y.js → chunk-A6ZSKGUG.js} +1 -1
- package/dist/{chunk-KUVDFOJH.js → chunk-AU7YTQX7.js} +1 -1
- package/dist/chunk-C72GO4IZ.js +1 -0
- package/dist/{chunk-Q7EUZ6NN.js → chunk-CGDMTXSY.js} +1 -1
- package/dist/chunk-D27JNOLZ.js +1 -0
- package/dist/chunk-D47YVDR5.js +1 -0
- package/dist/chunk-EWF7KCDJ.js +61 -0
- package/dist/{chunk-PCD2MU7X.js → chunk-GEAO3TL3.js} +1 -1
- package/dist/chunk-GX5LSSRE.js +1 -0
- package/dist/{chunk-2C4NESZE.js → chunk-HAWKGIXM.js} +1 -1
- package/dist/chunk-HX3EGQ5Z.js +1 -0
- package/dist/{chunk-MQZWA3DF.js → chunk-IA7DUNGB.js} +1 -1
- package/dist/{chunk-MYFR67PY.js → chunk-INH6FS2G.js} +2 -2
- package/dist/chunk-INHC33EH.js +1 -0
- package/dist/chunk-IUB4NYI2.js +1 -0
- package/dist/{chunk-TFK4P4CX.js → chunk-JNMC2WJ6.js} +1 -1
- package/dist/{chunk-TLS7M7H4.js → chunk-KD4NHLMU.js} +1 -1
- package/dist/chunk-L6NSJVJZ.js +1 -0
- package/dist/chunk-L7WY6TZS.js +1 -0
- package/dist/chunk-LQNOXGET.js +1 -0
- package/dist/chunk-MC4UYY2X.js +1 -0
- package/dist/{chunk-U3COB5WU.js → chunk-N7UIBZCW.js} +1 -1
- package/dist/chunk-NQI2C36M.js +1 -0
- package/dist/chunk-R75BMDLA.js +1 -0
- package/dist/chunk-RF3QZP6D.js +1 -0
- package/dist/{chunk-MC5LZG3U.js → chunk-S2U57TFC.js} +1 -1
- package/dist/{chunk-QP5TH523.js → chunk-SC7BQDNP.js} +1 -1
- package/dist/{chunk-5CPPC75H.js → chunk-TFPZLQ5H.js} +1 -1
- package/dist/chunk-VJJLIEAL.js +1 -0
- package/dist/chunk-WHIZM6JV.js +1 -0
- package/dist/chunk-XEUANKBO.js +43 -0
- package/dist/chunk-XQ55HO5N.js +1 -0
- package/dist/chunk-ZJ7SM3G2.js +1 -0
- package/dist/{chunk-T4U24DXX.js → chunk-ZOX3LBRV.js} +1 -1
- package/dist/compat/index.cjs +9 -13
- package/dist/compat/index.d.cts +16 -16
- package/dist/compat/index.d.ts +16 -16
- package/dist/compat/index.js +1 -1
- package/dist/compat/jotai/index.d.cts +2 -2
- package/dist/compat/jotai/index.d.ts +2 -2
- package/dist/compat/nanostores/index.d.cts +2 -2
- package/dist/compat/nanostores/index.d.ts +2 -2
- package/dist/compat/nestjs/index.cjs +8 -12
- package/dist/compat/nestjs/index.d.cts +8 -8
- package/dist/compat/nestjs/index.d.ts +8 -8
- 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 +3 -7
- 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-_XckYx2e.d.cts → composite-CKd0e2vz.d.cts} +10 -3
- package/dist/{composite-CT_mApQD.d.ts → composite-DGatA-JK.d.ts} +10 -3
- 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.d.cts +1 -1
- package/dist/extra/browser.d.ts +1 -1
- package/dist/extra/index.cjs +17 -21
- package/dist/extra/index.d.cts +11 -9
- package/dist/extra/index.d.ts +11 -9
- package/dist/extra/index.js +1 -1
- package/dist/extra/node.cjs +2 -2
- package/dist/extra/node.d.cts +108 -2
- package/dist/extra/node.d.ts +108 -2
- package/dist/extra/node.js +2 -2
- 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/render/index.cjs +5 -0
- package/dist/extra/render/index.d.cts +183 -0
- package/dist/extra/render/index.d.ts +183 -0
- package/dist/extra/render/index.js +1 -0
- 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.d.cts +1 -1
- package/dist/extra/storage-browser.d.ts +1 -1
- package/dist/extra/storage-tiers-browser.d.cts +76 -5
- package/dist/extra/storage-tiers-browser.d.ts +76 -5
- package/dist/extra/storage-tiers-node.d.cts +137 -13
- package/dist/extra/storage-tiers-node.d.ts +137 -13
- package/dist/extra/storage-tiers.d.cts +151 -23
- package/dist/extra/storage-tiers.d.ts +151 -23
- package/dist/{fallback-axI2cXwt.d.cts → fallback-8JYU8tlT.d.cts} +1 -1
- package/dist/{fallback-DuEXfA4F.d.ts → fallback-CMZl39L5.d.ts} +1 -1
- package/dist/graph/index.cjs +7 -7
- 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-YQXDndFy.d.ts → graph-30XSgtVX.d.ts} +287 -104
- package/dist/{graph-CaNXUc3c.d.cts → graph-BUwMAxJI.d.cts} +287 -104
- package/dist/{index-CIcu6fIR.d.ts → index-2n8Eai6M.d.ts} +1 -1
- package/dist/{index-BmLkcDlj.d.ts → index-89FczVZ_.d.ts} +47 -71
- package/dist/{index-Ci358GSC.d.cts → index-8R1vzNOx.d.cts} +9 -9
- package/dist/{index-CDvC1m5p.d.ts → index-B2RUoIUz.d.ts} +1 -1
- package/dist/{index-DuhOdNyg.d.ts → index-B41Asm7D.d.ts} +10 -8
- package/dist/{index-CKcnuQ2c.d.ts → index-B9fmw5n2.d.ts} +4 -6
- package/dist/{index-0qOD-421.d.ts → index-BAlaVimV.d.ts} +9 -9
- package/dist/{index-Ae6L8liv.d.ts → index-BC9VybQs.d.ts} +41 -48
- package/dist/{index-CUTHDZ7Q.d.ts → index-BEHmxORq.d.ts} +11 -11
- package/dist/{index-C_qi0WlF.d.cts → index-BJ26eEjs.d.cts} +26 -19
- package/dist/{index-BiomL7AW.d.ts → index-BJSZxSFX.d.ts} +1 -1
- package/dist/{index-DCAuN9u5.d.cts → index-BKMdnYnk.d.ts} +75 -39
- package/dist/{index-DfAo9WKr.d.ts → index-BM9szD8n.d.cts} +14 -6
- package/dist/{index-CajEOoAN.d.ts → index-BUPVld1w.d.ts} +2 -2
- package/dist/{index-C-pFD_FV.d.ts → index-BXd6OMEy.d.ts} +3 -3
- package/dist/index-BhUaMYm_.d.ts +113 -0
- package/dist/{index-DAKm44My.d.cts → index-BndG0cpK.d.cts} +3 -3
- package/dist/{index-Bpzw8hx3.d.ts → index-Br3WnqEn.d.ts} +84 -9
- package/dist/{index-D6tRNEKz.d.cts → index-BskfDoZ_.d.ts} +14 -6
- package/dist/{index-9mbs_PIG.d.ts → index-C19qqa38.d.ts} +4 -4
- package/dist/{index-fHKHdAso.d.ts → index-C7VV_qOs.d.ts} +4 -4
- package/dist/{index-CLPQyYY5.d.cts → index-CIRG8Hxp.d.cts} +11 -11
- package/dist/{index-B3D_z0Z6.d.cts → index-CL7oilfm.d.cts} +1 -1
- package/dist/{index-BOfHwQc1.d.ts → index-CPhBvRJU.d.ts} +1 -1
- package/dist/{index-B9qJmmv3.d.cts → index-CWHtYmSh.d.cts} +1 -1
- package/dist/{index-D_d1erkR.d.ts → index-Cey6VTnX.d.ts} +8 -5
- package/dist/{resilience-BWP2c7Af.d.cts → index-CmqiJZKM.d.ts} +141 -23
- package/dist/{index-JYtN9uqM.d.ts → index-CoM4rzyB.d.ts} +1 -1
- package/dist/{index-DTYIRT_v.d.cts → index-CpLpJb6A.d.cts} +8 -5
- package/dist/{index-BjWZARLy.d.ts → index-Ctb7_2sG.d.ts} +1 -1
- package/dist/index-CusEP3Sv.d.ts +210 -0
- package/dist/{resilience-Bys63Cpd.d.ts → index-CwP_KAMS.d.cts} +141 -23
- package/dist/{index-BFuVcqL8.d.cts → index-D3ayz3hy.d.cts} +1 -1
- package/dist/{index-CrpjECS6.d.cts → index-DCbE8fFM.d.cts} +3 -3
- package/dist/{index-D_DThl_J.d.cts → index-DIHcMLr6.d.cts} +1 -1
- package/dist/index-DINuaZlJ.d.cts +210 -0
- package/dist/{index-9xhIaM-w.d.cts → index-DOBLxOti.d.cts} +1 -1
- package/dist/index-DQUVq1_d.d.ts +374 -0
- package/dist/{index-B1IcU--K.d.cts → index-DTtBpuQy.d.cts} +4 -6
- package/dist/{index-D_QQ_dTD.d.cts → index-DYTBbF8T.d.cts} +1 -1
- package/dist/{index-DqtXA3yX.d.cts → index-DlgHqQxW.d.cts} +84 -9
- package/dist/{index-D1E1tqHT.d.ts → index-DlrWu9Hs.d.cts} +75 -39
- package/dist/{index-DcWbx58m.d.cts → index-DoYc8BWK.d.cts} +41 -48
- package/dist/{index-D0ZxFXYl.d.ts → index-DszPlZzK.d.ts} +3 -3
- package/dist/{index-BECJ8M0T.d.cts → index-DyM4tFAe.d.cts} +10 -8
- package/dist/{index-D11pGlaI.d.cts → index-FVoPvhAu.d.cts} +4 -4
- package/dist/{index-BwtIbzSV.d.cts → index-H_I66pav.d.cts} +2 -2
- package/dist/{index-e1m3ZHgc.d.cts → index-IwFqHxCs.d.cts} +2 -2
- package/dist/index-K-vl_c6A.d.cts +113 -0
- package/dist/{index-C4N-dg5U.d.cts → index-KlZ_ZUip.d.cts} +2 -2
- package/dist/index-L8XI8Zql.d.cts +374 -0
- package/dist/{index-D8IyqHvT.d.cts → index-MxYuWOrf.d.cts} +6 -4
- package/dist/{index-CpZKtdMw.d.cts → index-PgwvGWa1.d.cts} +1 -1
- package/dist/{index-B46GWgk3.d.ts → index-PlJ3MraE.d.ts} +1 -1
- package/dist/{index-DPqR3wdW.d.ts → index-PqbnoScQ.d.ts} +3 -3
- package/dist/{index-CU3z8Cel.d.cts → index-PsVHpPwP.d.cts} +3 -3
- package/dist/{index-C0tga1_x.d.ts → index-WyFKER-c.d.ts} +2 -2
- package/dist/{index-B5UR87KG.d.ts → index-eaQuGJnv.d.ts} +6 -4
- package/dist/{index-CzIWlnPp.d.ts → index-iTX5IqSP.d.ts} +140 -9
- package/dist/{index-CRycrNfn.d.ts → index-jKLph6cu.d.ts} +2 -2
- package/dist/{index-BhLA9feT.d.ts → index-jr6PuSBt.d.ts} +26 -19
- package/dist/{index-4IwO4mH2.d.cts → index-mNwgxC21.d.cts} +140 -9
- package/dist/{index-CkN8CZlT.d.cts → index-pVDQcbar.d.cts} +47 -71
- package/dist/{index-D6pwWiOc.d.cts → index-xZYcDqFH.d.cts} +4 -4
- package/dist/{index-8OxXae3g.d.ts → index-yLt-aPMp.d.ts} +1 -1
- package/dist/{index-CqSJ25A9.d.cts → index-z8WFPVI8.d.cts} +1 -1
- package/dist/index.cjs +64 -60
- package/dist/index.d.cts +48 -47
- package/dist/index.d.ts +48 -47
- package/dist/index.js +1 -1
- package/dist/meta-Ct9nqQS5.d.cts +102 -0
- package/dist/meta-D8OyedKp.d.ts +102 -0
- package/dist/{node-fSc-hCv8.d.cts → node-BYInONRr.d.cts} +3 -3
- package/dist/{node-fSc-hCv8.d.ts → node-BYInONRr.d.ts} +3 -3
- package/dist/{observable-Cqty11jG.d.cts → observable-DMIlYJV1.d.cts} +1 -1
- package/dist/{observable-EAV_rNfM.d.ts → observable-DO8DDEzv.d.ts} +1 -1
- package/dist/patterns/ai/browser.cjs +5 -5
- package/dist/patterns/ai/browser.d.cts +4 -4
- package/dist/patterns/ai/browser.d.ts +4 -4
- package/dist/patterns/ai/browser.js +1 -1
- package/dist/patterns/ai/index.cjs +17 -21
- package/dist/patterns/ai/index.d.cts +17 -17
- package/dist/patterns/ai/index.d.ts +17 -17
- package/dist/patterns/ai/index.js +1 -1
- package/dist/patterns/ai/node.cjs +1 -1
- package/dist/patterns/ai/node.d.cts +4 -4
- package/dist/patterns/ai/node.d.ts +4 -4
- package/dist/patterns/ai/node.js +1 -1
- package/dist/patterns/audit/index.cjs +3 -7
- package/dist/patterns/audit/index.d.cts +6 -6
- package/dist/patterns/audit/index.d.ts +6 -6
- package/dist/patterns/audit/index.js +1 -1
- package/dist/patterns/cqrs/index.cjs +3 -7
- package/dist/patterns/cqrs/index.d.cts +6 -6
- package/dist/patterns/cqrs/index.d.ts +6 -6
- package/dist/patterns/cqrs/index.js +1 -1
- package/dist/patterns/demo-shell/index.cjs +5 -8
- 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 +3 -7
- 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 +38 -38
- package/dist/patterns/graphspec/index.d.cts +5 -5
- package/dist/patterns/graphspec/index.d.ts +5 -5
- package/dist/patterns/graphspec/index.js +1 -1
- package/dist/patterns/guarded-execution/index.cjs +3 -7
- package/dist/patterns/guarded-execution/index.d.cts +7 -7
- package/dist/patterns/guarded-execution/index.d.ts +7 -7
- package/dist/patterns/guarded-execution/index.js +1 -1
- package/dist/patterns/harness/index.cjs +8 -12
- package/dist/patterns/harness/index.d.cts +12 -12
- package/dist/patterns/harness/index.d.ts +12 -12
- package/dist/patterns/harness/index.js +1 -1
- package/dist/patterns/job-queue/index.cjs +3 -7
- package/dist/patterns/job-queue/index.d.cts +6 -6
- package/dist/patterns/job-queue/index.d.ts +6 -6
- package/dist/patterns/job-queue/index.js +1 -1
- package/dist/patterns/lens/index.cjs +3 -7
- 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 +3 -7
- package/dist/patterns/memory/index.d.cts +7 -5
- package/dist/patterns/memory/index.d.ts +7 -5
- package/dist/patterns/memory/index.js +1 -1
- package/dist/patterns/messaging/index.cjs +3 -7
- package/dist/patterns/messaging/index.d.cts +5 -5
- package/dist/patterns/messaging/index.d.ts +5 -5
- package/dist/patterns/messaging/index.js +1 -1
- package/dist/patterns/orchestration/index.cjs +3 -7
- package/dist/patterns/orchestration/index.d.cts +8 -8
- package/dist/patterns/orchestration/index.d.ts +8 -8
- package/dist/patterns/orchestration/index.js +1 -1
- package/dist/patterns/process/index.cjs +1 -1
- package/dist/patterns/process/index.d.cts +7 -7
- package/dist/patterns/process/index.d.ts +7 -7
- package/dist/patterns/process/index.js +1 -1
- package/dist/patterns/reactive-layout/index.cjs +4 -8
- 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 +3 -7
- 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 +5 -9
- package/dist/patterns/refine-loop/index.d.cts +6 -6
- package/dist/patterns/refine-loop/index.d.ts +6 -6
- 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 +4 -8
- package/dist/patterns/resilient-pipeline/index.d.ts +4 -8
- package/dist/patterns/resilient-pipeline/index.js +1 -1
- package/dist/patterns/surface/index.cjs +13 -17
- package/dist/patterns/surface/index.d.cts +6 -6
- package/dist/patterns/surface/index.d.ts +6 -6
- package/dist/patterns/surface/index.js +1 -1
- package/dist/{pipeline-graph-BrrYGjuZ.d.cts → pipeline-graph-BQPr2Lqs.d.cts} +34 -17
- package/dist/{pipeline-graph-DX2Twdj-.d.ts → pipeline-graph-D8vKcO_p.d.ts} +34 -17
- package/dist/{reactive-layout-DrGjuwyC.d.cts → reactive-layout-8CSc0tiA.d.cts} +2 -2
- package/dist/{reactive-layout-BDdngW56.d.ts → reactive-layout-DkTXxtSy.d.ts} +2 -2
- package/dist/{reactive-log-jirQsxMY.d.ts → reactive-log-BlAsPLl2.d.ts} +30 -3
- package/dist/{reactive-log-ScpWyqny.d.cts → reactive-log-_zeEnB9H.d.cts} +30 -3
- package/dist/{reactive-map-DmgeADH8.d.cts → reactive-map-B2qfD3hb.d.cts} +1 -1
- package/dist/{reactive-map-CHyeCf4D.d.ts → reactive-map-jFIsE6Kt.d.ts} +1 -1
- package/dist/resilience-HTF2LBRS.js +1 -0
- package/dist/{sugar-D13E2M_z.d.ts → sugar-BhfjgetH.d.ts} +1 -1
- package/dist/{sugar-DgaGJcI6.d.cts → sugar-DzePN5-g.d.cts} +1 -1
- package/dist/{topology-tree-BkhmMg2a.d.cts → topology-tree-B5Ngw3j0.d.cts} +1 -1
- package/dist/{topology-tree-BI665P0L.d.ts → topology-tree-BtvbgMXJ.d.ts} +1 -1
- package/dist/{types-BMSGPlpO.d.cts → types-1Dhoi7HM.d.cts} +1 -1
- package/dist/{types-CidcBDuk.d.ts → types-39jk0kaV.d.ts} +1 -1
- package/package.json +11 -1
- package/dist/chunk-4EATTNAE.js +0 -1
- package/dist/chunk-533RQFF6.js +0 -1
- package/dist/chunk-6SVKZ7VI.js +0 -1
- package/dist/chunk-A5HZZYRK.js +0 -1
- package/dist/chunk-B4L5X2QO.js +0 -7
- package/dist/chunk-C5CBVOCB.js +0 -1
- package/dist/chunk-CZIQ6JCE.js +0 -1
- package/dist/chunk-FJ6IEMOS.js +0 -1
- package/dist/chunk-FMI4CWFL.js +0 -1
- package/dist/chunk-G6Q3DUMJ.js +0 -1
- package/dist/chunk-GDDPCDLG.js +0 -1
- package/dist/chunk-GFOT6UBB.js +0 -1
- package/dist/chunk-JJTF75VS.js +0 -1
- package/dist/chunk-K2WYIVHM.js +0 -1
- package/dist/chunk-KTWBUJO5.js +0 -61
- package/dist/chunk-M27MVZCP.js +0 -1
- package/dist/chunk-NKKUUKPD.js +0 -43
- package/dist/chunk-O32GJOUJ.js +0 -1
- package/dist/chunk-QKBCTKH7.js +0 -1
- package/dist/chunk-QWVQIL3T.js +0 -1
- package/dist/chunk-UODQF4EY.js +0 -1
- package/dist/chunk-WGST56ZH.js +0 -80
- package/dist/chunk-WSLN4JFO.js +0 -1
- package/dist/chunk-XIJKEXWR.js +0 -1
- package/dist/imperative-audit-ahAE65a9.d.cts +0 -28
- package/dist/imperative-audit-ahAE65a9.d.ts +0 -28
- package/dist/index-BCq12BqB.d.ts +0 -139
- package/dist/index-BokynmA4.d.cts +0 -186
- package/dist/index-DXz9uwcs.d.ts +0 -186
- package/dist/index-DbWwMWiB.d.cts +0 -139
- package/dist/meta-BGO6C7K9.d.cts +0 -41
- package/dist/meta-CC6EPdpK.d.ts +0 -41
- package/dist/resilience-OBU472D2.js +0 -1
|
@@ -1,25 +1,21 @@
|
|
|
1
|
-
"use strict";var Tn=Object.defineProperty;var Cs=Object.getOwnPropertyDescriptor;var Ls=Object.getOwnPropertyNames;var Ds=Object.prototype.hasOwnProperty;var Te=(t,e)=>()=>(t&&(e=t(t=0)),e);var vn=(t,e)=>{for(var n in e)Tn(t,n,{get:e[n],enumerable:!0})},Is=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Ls(e))!Ds.call(t,o)&&o!==n&&Tn(t,o,{get:()=>e[o],enumerable:!(r=Cs(e,o))||r.enumerable});return t};var Ps=t=>Is(Tn({},"__esModule",{value:!0}),t);function Mr(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++]=wn,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 Er(t,e){if(t.length<Nr)throw new Error(`decodeEnvelope: bytes too short (${t.length} < ${Nr})`);let n=0,r=t[n++];if(r!==wn)throw new Error(`decodeEnvelope: unsupported envelope version ${r} (expected ${wn})`);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),u=e.lookupCodec(s);if(u==null)throw new Error(`decodeEnvelope: codec "${s}" not registered (envelope codec_v=${i})`);return{codec:u,codecVersion:i,payload:a}}function Or(t){t.registerCodec(Gs)}var Gs,wn,Nr,kn=Te(()=>{"use strict";Gs={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)}},wn=1,Nr=4});function Nt(t){if(t==null)return Xe;let{type:e,id:n,...r}=t;return{type:e??"system",id:n??"",...r}}var Xe,Mt=Te(()=>{"use strict";Xe={type:"system",id:""}});function Et(){return Ze>0||pt}function Ar(){return Ze>0}function mt(t){Ze>0?ft.push(t):t()}function ee(t){Ze+=1;let e=!1;try{t()}catch(n){throw e=!0,n}finally{if(Ze-=1,Ze===0)if(e){if(!pt){let n=ft.splice(0);for(let r of n)try{r()}catch{}Be.length=0,Ve.length=0,et.length=0}}else Fs()}}function Fs(){let t=!pt;t&&(pt=!0);let e=[],n=0;try{for(;Be.length>0||Ve.length>0||et.length>0||t&&ft.length>0;){if(t&&ft.length>0){let s=ft.splice(0);for(let i of s)try{i()}catch(a){e.push(a)}continue}if(n+=1,n>1e3)throw Be.length=0,Ve.length=0,et.length=0,new Error("batch drain exceeded 1000 iterations \u2014 likely a reactive cycle");let o=(Be.length>0?Be:Ve.length>0?Ve:et).splice(0);for(let s of o)try{s()}catch(i){e.push(i)}}}finally{t&&(pt=!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 d=n(e[0][0]);if(d<3||!Et()){t(e);return}(d>=5?et:d===4?Ve:Be).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 u=Et();if(o>0){let d=e.slice(0,o);t(d)}if(s>o){let d=e.slice(o,s);u?Be.push(()=>t(d)):t(d)}if(i>s){let d=e.slice(s,i);u?Ve.push(()=>t(d)):t(d)}if(r>i){let d=e.slice(i,r);u?et.push(()=>t(d)):t(d)}}var Ze,pt,Be,Ve,et,ft,xe=Te(()=>{"use strict";Ze=0,pt=!1,Be=[],Ve=[],et=[],ft=[]});function B(){return Math.trunc(performance.now()*1e6)}function ue(){return Date.now()*1e6}var fe=Te(()=>{"use strict"});var De,L,J,V,_e,Ne,Ae,ce,$,C,Ke,At,Cr,Ct,Lr,Dr,Lt,xn,Rn,Sn,Dt,re=Te(()=>{"use strict";De=Symbol.for("graphrefly/START"),L=Symbol.for("graphrefly/DATA"),J=Symbol.for("graphrefly/DIRTY"),V=Symbol.for("graphrefly/RESOLVED"),_e=Symbol.for("graphrefly/INVALIDATE"),Ne=Symbol.for("graphrefly/PAUSE"),Ae=Symbol.for("graphrefly/RESUME"),ce=Symbol.for("graphrefly/TEARDOWN"),$=Symbol.for("graphrefly/COMPLETE"),C=Symbol.for("graphrefly/ERROR"),Ke=Object.freeze([J]),At=Object.freeze([V]),Cr=Object.freeze([_e]),Ct=Object.freeze([De]),Lr=Object.freeze([$]),Dr=Object.freeze([ce]),Lt=Object.freeze([Ke]),xn=Object.freeze([At]),Rn=Object.freeze([Cr]),Sn=Object.freeze([Lr]),Dt=Object.freeze([Dr])});function Ir(t){t.registerMessageType(De,{tier:0,wireCrossing:!1}),t.registerMessageType(J,{tier:1,wireCrossing:!1}),t.registerMessageType(_e,{tier:1,wireCrossing:!1,metaPassthrough:!1}),t.registerMessageType(Ne,{tier:2,wireCrossing:!1}),t.registerMessageType(Ae,{tier:2,wireCrossing:!1}),t.registerMessageType(L,{tier:3,wireCrossing:!0}),t.registerMessageType(V,{tier:3,wireCrossing:!0}),t.registerMessageType($,{tier:4,wireCrossing:!0,metaPassthrough:!1}),t.registerMessageType(C,{tier:4,wireCrossing:!0,metaPassthrough:!1}),t.registerMessageType(ce,{tier:5,wireCrossing:!0,metaPassthrough:!1})}var It,Pr=Te(()=>{"use strict";re();It=class{_messageTypes=new Map;_codecs=new Map;_onMessage;_onSubscribe;_defaultVersioning;_defaultHashFn;_inspectorEnabled=!(typeof process<"u"&&process.env?.NODE_ENV==="production");_globalInspector;_rigorRecorder;_frozen=!1;tierOf;constructor(e){this._onMessage=e.onMessage,this._onSubscribe=e.onSubscribe,this._defaultVersioning=e.defaultVersioning,this._defaultHashFn=e.defaultHashFn,this.tierOf=n=>{let r=this._messageTypes.get(n);return r!=null?r.tier:1}}get onMessage(){return this._frozen=!0,this._onMessage}get onSubscribe(){return this._frozen=!0,this._onSubscribe}set onMessage(e){this._assertUnfrozen(),this._onMessage=e}set onSubscribe(e){this._assertUnfrozen(),this._onSubscribe=e}get defaultVersioning(){return this._defaultVersioning}set defaultVersioning(e){this._assertUnfrozen(),this._defaultVersioning=e}get defaultHashFn(){return this._defaultHashFn}set defaultHashFn(e){this._assertUnfrozen(),this._defaultHashFn=e}get inspectorEnabled(){return this._inspectorEnabled}set inspectorEnabled(e){this._inspectorEnabled=e}get globalInspector(){return this._globalInspector}set globalInspector(e){this._globalInspector=e}get rigorRecorder(){return this._rigorRecorder}set rigorRecorder(e){this._rigorRecorder=e}registerMessageType(e,n){return this._assertUnfrozen(),this._messageTypes.set(e,{tier:n.tier,wireCrossing:n.wireCrossing??n.tier>=3,metaPassthrough:n.metaPassthrough??!0}),this}messageTier(e){let n=this._messageTypes.get(e);return n!=null?n.tier:1}isWireCrossing(e){let n=this._messageTypes.get(e);return n!=null?n.wireCrossing:!0}isLocalOnly(e){return!this.isWireCrossing(e)}isMetaPassthrough(e){let n=this._messageTypes.get(e);return n!=null?n.metaPassthrough:!0}isKnownMessageType(e){return this._messageTypes.has(e)}registerCodec(e){return this._assertUnfrozen(),this._codecs.set(e.name,e),this}lookupCodec(e){return this._codecs.get(e)}_isFrozen(){return this._frozen}_assertUnfrozen(){if(this._frozen)throw new Error("GraphReFlyConfig is frozen: a node has already captured this config. Register custom types and set hooks before creating any node.")}}});function Gr(t){return Array.isArray(t)?[...t]:[t]}function $s(t,e){return t.has(e)||t.has("*")}function Fr(t){let e=[];return t((o,s)=>{e.push({kind:"allow",actions:new Set(Gr(o)),where:s?.where??(()=>!0)})},(o,s)=>{e.push({kind:"deny",actions:new Set(Gr(o)),where:s?.where??(()=>!0)})}),(o,s)=>{let i=!1,a=!1;for(let u of e)$s(u.actions,s)&&u.where(o)&&(u.kind==="deny"?i=!0:a=!0);return i?!1:a}}function _n(t){let e=js.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 Me,js,tt=Te(()=>{"use strict";Me=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}};js=["human","llm","wallet","system"]});function Nn(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(Nn);if(typeof t=="object"&&t!==null){let e={};for(let n of Object.keys(t).sort())e[n]=Nn(t[n]);return e}return null}function Ks(t){let e=Vs.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,u=3144134277,d=1013904242,c=2773480762,l=1359893119,p=2600822924,f=528734635,m=1541459225,y=new Uint32Array(64),g=(b,v)=>b>>>v|b<<32-v;for(let b=0;b<o;b+=64){for(let S=0;S<16;S++)y[S]=i.getUint32(b+S*4,!1);for(let S=16;S<64;S++){let E=y[S-15],M=y[S-2],A=g(E,7)^g(E,18)^E>>>3,j=g(M,17)^g(M,19)^M>>>10;y[S]=y[S-16]+A+y[S-7]+j>>>0}let v=a,x=u,k=d,w=c,T=l,R=p,N=f,_=m;for(let S=0;S<64;S++){let E=g(T,6)^g(T,11)^g(T,25),M=T&R^~T&N,A=_+E+M+Bs[S]+y[S]>>>0,j=g(v,2)^g(v,13)^g(v,22),K=v&x^v&k^x&k,Z=j+K>>>0;_=N,N=R,R=T,T=w+A>>>0,w=k,k=x,x=v,v=A+Z>>>0}a=a+v>>>0,u=u+x>>>0,d=d+k>>>0,c=c+w>>>0,l=l+T>>>0,p=p+R>>>0,f=f+N>>>0,m=m+_>>>0}let h=b=>b.toString(16).padStart(8,"0");return h(a)+h(u)+h(d)+h(c)+h(l)+h(p)+h(f)+h(m)}function Mn(t){let e=Nn(t??null),n=JSON.stringify(e);return Ks(n).slice(0,16)}function Us(){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 En(t,e,n){let r=n?.id??Us();if(t===0)return{id:r,version:0};let s=(n?.hash??Mn)(e);return{id:r,version:0,cid:s,prev:null}}function $r(t,e,n){t.version+=1,"cid"in t&&(t.prev=t.cid,t.cid=n(e))}var Bs,Vs,jr=Te(()=>{"use strict";Bs=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]),Vs=new TextEncoder});function Kr(t){return{node:t,unsub:null,prevData:void 0,dirty:!1,involvedThisWave:!1,dataBatch:[],terminal:void 0}}function On(t){t.prevData=void 0,t.dirty=!1,t.involvedThisWave=!1,t.dataBatch.length=0,t.terminal=void 0}function Pt(t){return t.length===0?t:typeof t[0]=="symbol"?[t]:t}function te(t,e,n){let r=Ur(t)?t:[],o=typeof t=="function"?t:typeof e=="function"?e:void 0,s={};return Ur(t)?s=(An(e)?e:n)??{}:An(t)?s=t:s=(An(e)?e:n)??{},new le(r,o,s)}var Br,Vr,zs,Hs,nt,le,Ur,An,Re=Te(()=>{"use strict";kn();Mt();xe();fe();Pr();tt();re();jr();Br=()=>{},Vr=100;zs=(t,e,n,r)=>{n.direction==="down-in"&&t._onDepMessage(n.depIndex,e)},Hs=(t,e,n,r)=>{let o=t;if(o._status==="completed"||o._status==="errored")return;let s=o._cached,i=s===void 0?[Ct]:[Ct,[L,s]];o._status==="dirty"&&i.push(Ke),Ot(e,i,o._config.tierOf)},nt=new It({onMessage:zs,onSubscribe:Hs});Ir(nt);Or(nt);le=class t{_optsName;_describeKind;meta;_hasMeta;_config;_deps;_sinks=null;_sinkCount=0;_cached;_status;_cleanup;_store={};_waveHasNewData=!1;_hasNewTerminal=!1;_hasCalledFnOnce=!1;_paused=!1;_pendingWave=!1;_isExecutingFn=!1;_pendingRerun=!1;_rerunDepth=0;_dirtyDepCount=0;_batchPendingMessages=null;_pauseLocks=null;_pauseBuffer=null;_fn;_equals;_resubscribable;_resetOnTeardown;_autoComplete;_autoError;_pausable;_partial;_guard;_extraGuards;_hashFn;_versioning;_versioningLevel;_lastMutation;_inspectorHooks;_actions;constructor(e,n,r){this._config=r.config??nt,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??Mn;let o=r.versioning??this._config.defaultVersioning;this._versioningLevel=o,this._versioning=o!=null?En(o,this._cached===void 0?void 0:this._cached,{id:r.versioningId,hash:this._hashFn}):void 0,this._deps=e.map(Kr);let s={};for(let[a,u]of Object.entries(r.meta??{})){let d={initial:u,name:`${r.name??"node"}:meta:${a}`,describeKind:"state",config:this._config};r.guard!=null&&(d.guard=r.guard),s[a]=new t([],void 0,d)}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(Pt(a))},up(a){i._emitUp(Pt(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,u=i?.version??0,d=En(e,s,{id:a,hash:o});d.version=u,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=Nt(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=Nt(e?.actor),s=e?.delivery==="signal"?"signal":"write";if(this._guard!=null&&!this._guard(o,s))throw new Me({actor:o,action:s,nodeName:this.name});if(this._extraGuards!=null){for(let i of this._extraGuards)if(!i(o,s))throw new Me({actor:o,action:s,nodeName:this.name})}this._lastMutation={actor:o,timestamp_ns:ue()}}down(e,n){let r=Pt(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=Pt(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 u=Nt(n);if(!this._guard(u,"observe"))throw new Me({actor:u,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 u of this._deps)On(u);if(this._partial===!1){for(let u of this._deps)if(u.prevData!==void 0||u.dataBatch.length!==0||u.terminal!==void 0||u.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(u){throw this._sinkCount-=1,u}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(u){if(this._sinkCount-=1,this._removeSink(e),this._sinkCount===0&&(this._status="sentinel"),typeof s=="function")try{s()}catch{}throw u}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=Br,s.unsub=s.node.subscribe(i=>{if(s.unsub===null)return;let a=this._config.tierOf,u=!1;for(let d of i)a(d[0])>=3&&(u=!0),this._config.onMessage(this,d,{direction:"down-in",depIndex:o},this._actions);u&&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{}On(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=Kr(e);if(this._deps.push(r),this._sinks==null)return n;r.dirty=!0,this._dirtyDepCount++,this._status!=="dirty"&&this._emit(Lt),r.unsub=Br;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([[C,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([[C,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{}}On(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!==De){if(o===J){this._depDirtied(r);return}if(o===_e){if(this._depInvalidated(r),this._cached===void 0)return;this._emit(Rn);return}if(o===Ne||o===Ae){this._emit([n]);return}if(o===ce){this._emit(Dt);return}if(o===L)this._depSettledAsData(r,n[1]);else if(o===V)this._depSettledAsResolved(r);else if(o===$)this._depSettledAsTerminal(r,!0);else if(o===C)this._depSettledAsTerminal(r,n[1]);else{this._emit([n]);return}if(!this._fn){(o===L||o===V)&&this._emit([n]),(o===$||o===C)&&this._maybeAutoTerminalAfterWave();return}}}_depDirtied(e){e.dirty||(e.dirty=!0,e.involvedThisWave=!0,this._dirtyDepCount++,this._status!=="dirty"&&this._emit(Lt))}_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(xn),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([[C,e.terminal]]);return}this._autoComplete&&this._deps.every(n=>n.terminal!==void 0)&&this._emit(Sn)}_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([[C,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([[C,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([[C,this._wrapFnError("fn threw",i)]])}finally{this._isExecutingFn=!1,this._pendingRerun?(this._pendingRerun=!1,this._rerunDepth+=1,this._rerunDepth>Vr?(this._rerunDepth=0,this._emit([[C,new Error(`Node "${this.name}": _pendingRerun depth exceeded ${Vr} \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"?[Ke,e[0]]:e;let r=!0,o=!1,s=!1,i=-1;for(let u of e){let d=n(u[0]);d<i&&(r=!1),d===3&&(o=!0),u[0]===J&&(s=!0),i=d}let a=e;if(!r){let u=e.map((d,c)=>({m:d,i:c,tier:n(d[0])}));u.sort((d,c)=>d.tier-c.tier||d.i-c.i),a=u.map(d=>d.m)}if(o&&!s&&this._status!=="dirty"){let u=0;for(;u<a.length&&n(a[u][0])===0;)u++;return u===0?[Ke,...a]:[...a.slice(0,u),Ke,...a.slice(u)]}return a}_emit(e){if(e.length===0)return;for(let a=0;a<e.length;a++){let u=e[a];if(u[0]===C&&u[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(u=>u[0]===ce||u[0]===_e);if(a.length===0)return;n=a}n=this._frameBatch(n);let o=null;for(let a=0;a<n.length;a++){let u=n[a],d=u[0];if(d!==Ne&&d!==Ae){o?.push(u);continue}if(u.length<2)throw new Error(`Node "${this.name}": [[${d===Ne?"PAUSE":"RESUME"}]] must carry a lockId payload \u2014 bare PAUSE/RESUME is a protocol violation (C0 rule). Use \`[[PAUSE, lockId]]\` / \`[[RESUME, lockId]]\`.`);let c=!0;if(this._pausable!==!1){let l=u[1];if(d===Ne)this._pauseLocks==null&&(this._pauseLocks=new Set),this._pauseLocks.add(l),this._paused=!0,this._pausable==="resumeAll"&&this._pauseBuffer==null&&(this._pauseBuffer=[]);else if(this._pauseLocks==null||!this._pauseLocks.has(l))c=!1;else if(this._pauseLocks.delete(l),this._pauseLocks.size===0){if(this._paused=!1,this._pauseBuffer!=null&&this._pauseBuffer.length>0){let p=this._pauseBuffer;this._pauseBuffer=[],this._emit(p)}this._pendingWave&&(this._pendingWave=!1,this._maybeRunFnOnSettlement())}}c?o?.push(u):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(Dt)}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,u=[];for(let d of s)a(d[0])===3?this._pauseBuffer.push(d):u.push(d);u.length>0&&this._dispatchOrAccumulate(u)}else this._dispatchOrAccumulate(s);i!=null&&this._emit([[C,i]])}_updateState(e){let n=this._config.tierOf,r,o,s=-1,i=0;for(let c of e)n(c[0])===3&&i++;let a=i<=1,u=-1;if(this._versioning!=null&&i>1){for(let c=e.length-1;c>=0;c--)if(e[c][0]===L){u=c;break}}for(let c=0;c<e.length;c++){let l=e[c],p=l[0];if(p===L){if(l.length>=2){let f=!1;if(a&&this._cached!==void 0)try{f=this._equals(this._cached,l[1])}catch(m){o=this._wrapFnError("equals threw",m),s=c;break}if(f){r==null&&(r=e.slice(0,c)),r.push(At),this._status="resolved";continue}this._cached=l[1],this._versioning!=null&&(u<0||c===u)&&$r(this._versioning,l[1],this._hashFn)}this._status="settled",r?.push(l)}else if(r?.push(l),p===J)this._status="dirty";else if(p===V)this._status="resolved";else if(p===$){this._status="completed";{let f=this._config.rigorRecorder;if(f!=null)try{f.onTerminalTransition(this,"completed",this._autoComplete,this._autoError,this._deps.length>0)}catch{}}}else if(p===C){this._status="errored";{let f=this._config.rigorRecorder;if(f!=null)try{f.onTerminalTransition(this,"errored",this._autoComplete,this._autoError,this._deps.length>0)}catch{}}}else if(p===_e){if(this._cached!==void 0){let m=this._config.rigorRecorder;if(m!=null)try{m.onNonVacuousInvalidate(this,this._cached)}catch{}}this._cached=void 0,this._status="dirty";let f=this._cleanup;if(typeof f=="function"){this._cleanup=void 0;try{f()}catch{}}else if(f!=null&&typeof f=="object"){let m=f.invalidate;if(typeof m=="function")try{m()}catch{}}}else p===ce&&(this._resetOnTeardown&&(this._cached=void 0),this._deactivate(!0),this._status="sentinel")}let d=s>=0?r??e.slice(0,s):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(Ar()){this._batchPendingMessages===null&&(this._batchPendingMessages=[],mt(()=>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)}},Ur=t=>Array.isArray(t),An=t=>typeof t=="object"&&t!=null&&!Array.isArray(t)});function I(t,e){return te([],{...e,initial:t})}function ne(t,e){return te((r,o,s)=>t(o,s)??void 0,{describeKind:"producer",...e})}function O(t,e,n){return te(t,(o,s,i)=>{let a=o.map((u,d)=>u!=null&&u.length>0?u.at(-1):i.prevData[d]);s.emit(e(a,i))},{describeKind:"derived",...n})}function ve(t,e,n){return te(t,(o,s,i)=>{let a=o.map((u,d)=>u!=null&&u.length>0?u.at(-1):i.prevData[d]);return e(a,s,i)??void 0},{describeKind:"effect",...n})}var q=Te(()=>{"use strict";Re()});var Yr={};vn(Yr,{NS_PER_MS:()=>ze,NS_PER_SEC:()=>ot,constant:()=>zr,decorrelatedJitter:()=>Jr,exponential:()=>Wr,fibonacci:()=>qr,linear:()=>Hr,resolveBackoffPreset:()=>Gt,withMaxAttempts:()=>Ys});function Ue(t){return t<0?0:t}function qs(t,e){return e==="none"?t:e==="full"?Math.random()*t:t/2+Math.random()*(t/2)}function Js(t,e){return t+Math.random()*(e-t)}function zr(t){let e=Ue(t);return()=>e}function Hr(t,e){let n=Ue(t),r=e===void 0?n:Ue(e);return o=>n+r*Math.max(0,o)}function Wr(t){let e=Ue(t?.baseNs??1e8),n=t?.factor!==void 0&&t.factor<1?1:t?.factor??2,r=Ue(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,u=1;for(let d=0;d<Math.max(0,s);d++){if(u>=a){u=a;break}u*=n}i=e*u,i>r&&(i=r)}return qs(i,o)}}function qr(t=100*1e6,e=30*1e9){let n=Ue(t),r=Ue(e);function o(s){if(s<=0)return 1;let i=1,a=2;for(let u=1;u<s;u++){let d=i+a;i=a,a=d}return a}return s=>{let i=o(s)*n;return i<=r?i:r}}function Jr(t=100*1e6,e=30*1e9){return(n,r,o)=>{let i=Math.min(e,(o??t)*3);return Js(t,i)}}function Ys(t,e){return(n,r,o)=>n>=e?null:t(n,r,o)}function Gt(t){if(t==="constant")return zr(1*1e9);if(t==="linear")return Hr(1*1e9);if(t==="exponential")return Wr();if(t==="fibonacci")return qr();if(t==="decorrelatedJitter")return Jr();throw new Error(`Unknown backoff preset: "${String(t)}". Use one of: constant, linear, exponential, fibonacci, decorrelatedJitter`)}var ze,ot,Ln=Te(()=>{"use strict";ze=1e6,ot=1e9});var se,Ie=Te(()=>{"use strict";se=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 Xr={};vn(Xr,{CircuitOpenError:()=>Fe,RateLimiterOverflowError:()=>Ft,TimeoutError:()=>$t,circuitBreaker:()=>ht,fallback:()=>ii,rateLimiter:()=>ti,retry:()=>Dn,timeout:()=>ai,tokenBucket:()=>yt,withBreaker:()=>ei,withStatus:()=>ni});function He(t){return{describeKind:"derived",...t}}function Qs(t){return t<0?0:t}function jt(t){return t[1]}function Qr(t){if(typeof t!="number"||!Number.isFinite(t))throw new TypeError("backoff strategy must return a finite number");return t<0?0:t}function Dn(t,e){return typeof t=="function"?Zs(t,e):Xs(t,e)}function Xs(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"?Gt(r):r;return ne(i=>{let a=0,u=!1,d=null,c,l=new se;function p(){c?.(),c=void 0}function f(y){if(u)return;if(a>=o){p(),i.down([[C,y]]);return}let g=s===null?0:s(a,y,d);if(g==null){p(),i.down([[C,y]]);return}let h;try{h=Qr(g)}catch{p(),i.down([[C,y]]);return}d=h,a+=1,p();let b=h>0?h/1e6:1;l.start(b,()=>{u||m()})}function m(){l.cancel(),p(),c=t.subscribe(y=>{if(!u)for(let g of y){let h=g[0];if(h===J)i.down([[J]]);else if(h===L)a=0,d=null,i.emit(g[1]);else if(h===V)i.down([[V]]);else if(h===$)p(),i.down([[$]]);else if(h===C){f(jt(g));return}else i.down([g])}})}return m(),()=>{u=!0,l.cancel(),p()}},{...He(),initial:t.cache})}function Zs(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"?Gt(r):r;return ne(i=>{let a=0,u=!1,d=null,c,l=new se;function p(){c?.(),c=void 0}function f(y){if(u)return;if(a>=o){p(),i.down([[C,y]]);return}let g=s===null?0:s(a,y,d);if(g==null){p(),i.down([[C,y]]);return}let h;try{h=Qr(g)}catch{p(),i.down([[C,y]]);return}d=h,a+=1,p();let b=h>0?h/1e6:1;l.start(b,()=>{u||m()})}function m(){l.cancel(),p();let y;try{y=t()}catch(g){f(g);return}c=y.subscribe(g=>{if(!u)for(let h of g){let b=h[0];if(b===J)i.down([[J]]);else if(b===L)a=0,d=null,i.emit(h[1]);else if(b===V)i.down([[V]]);else if(b===$)p(),i.down([[$]]);else if(b===C){f(jt(h));return}else i.down([h])}})}return m(),()=>{u=!0,l.cancel(),p()}},{...He(),initial:e?.initial})}function ht(t){let e=Math.max(1,t?.failureThreshold??5),n=Qs(t?.cooldownNs??30*1e9),r=t?.cooldown??null,o=Math.max(1,t?.halfOpenMax??1),s=t?.now??B,i="closed",a=0,u=0,d=0,c=n,l=0;function p(){if(!r)return n;let y=r(u);return y!==null?y:n}function f(){i="open",c=p(),d=s(),l=0}return{canExecute(){return i==="closed"?!0:i==="open"?s()-d>=c?(i="half-open",l=1,!0):!1:l<o?(l++,!0):!1},recordSuccess(){i==="half-open"?(i="closed",a=0,u=0):i==="closed"&&(a=0)},recordFailure(y){if(i==="half-open"){u++,f();return}i==="closed"&&(a++,a>=e&&f())},get state(){return i},get failureCount(){return a},reset(){i="closed",a=0,u=0,l=0}}}function ei(t,e){let n=e?.onOpen??"skip";return r=>{let o=te([],(s,i)=>{function a(){o.meta.breakerState.down([[L,t.state]])}let u=r.subscribe(d=>{for(let c of d){let l=c[0];l===J?i.down([[J]]):l===L?t.canExecute()?(a(),i.emit(c[1])):(a(),n==="error"?i.down([[C,new Fe]]):i.down([[V]])):l===V?i.down([[V]]):l===$?(t.recordSuccess(),a(),i.down([[$]])):l===C?(t.recordFailure(jt(c)),a(),i.down([c])):i.down([c])}});return a(),u},{...He(),meta:{breakerState:t.state},completeWhenDepsComplete:!1,initial:r.cache});return{node:o,breakerState:o.meta.breakerState}}}function yt(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=B();function o(s){if(e>0){let i=s-r;n=Math.min(t,n+i/1e9*e)}r=s}return{available(){return o(B()),n},tryConsume(s=1){if(s<=0)return!0;let i=B();return o(i),n>=s?(n-=s,!0):!1},putBack(s=1){s<=0||(o(B()),n=Math.min(t,n+s))}}}function ti(t,e){let{maxEvents:n,windowNs:r}=e;if(n<=0)throw new RangeError("maxEvents must be > 0");if(r<=0)throw new RangeError("windowNs must be > 0");let o=e.maxBuffer;if(o!==void 0&&o<1)throw new RangeError("maxBuffer must be >= 1");let s=e.onOverflow??"drop-newest",i=n*1e9/r;return ne(a=>{let u=yt(n,i),d=[],c=new se,l=!1,p=1e9/i;function f(){for(;d.length>0;)if(u.tryConsume(1))a.emit(d.shift());else{c.start(Math.max(1,p/1e6),f);return}}let m=t.subscribe(y=>{for(let g of y){if(l)return;let h=g[0];if(h===J)a.down([[J]]);else if(h===L){if(o!==void 0&&d.length>=o){if(s!=="drop-newest")if(s==="drop-oldest")d.shift(),d.push(g[1]);else{l=!0,c.cancel(),d.length=0,a.down([[C,new Ft(o)]]);return}}else d.push(g[1]);f()}else if(h===V)a.down([[V]]);else if(h===$)l=!0,c.cancel(),d.length=0,a.down([[$]]);else if(h===C)l=!0,c.cancel(),d.length=0,a.down([g]);else if(h===ce){l=!0,c.cancel(),d.length=0,a.down([g]);return}else a.down([g])}});return()=>{l=!0,c.cancel(),m()}},{...He(),initial:t.cache})}function ni(t,e){let n=e?.initialStatus??"pending",r=te([],(o,s)=>{let i=n;return r.meta.status.down([[L,n]]),r.meta.error.down([[L,null]]),t.subscribe(u=>{for(let d of u){let c=d[0];if(c===J)s.down([[J]]);else if(c===L)i==="errored"?ee(()=>{r.meta.error.down([[L,null]]),r.meta.status.down([[L,"active"]])}):r.meta.status.down([[L,"active"]]),i="active",s.emit(d[1]);else if(c===V)s.down([[V]]);else if(c===$)r.meta.status.down([[L,"completed"]]),i="completed",s.down([[$]]);else if(c===C){let l=jt(d);ee(()=>{r.meta.error.down([[L,l]]),r.meta.status.down([[L,"errored"]])}),i="errored",s.down([d])}else s.down([d])}})},{...He(),meta:{status:n,error:null},completeWhenDepsComplete:!1,resubscribable:!0,initial:t.cache});return{node:r,status:r.meta.status,error:r.meta.error}}function ri(t){return t!=null&&typeof t=="object"&&"cache"in t&&typeof t.subscribe=="function"}function oi(t){return t!=null&&typeof t.then=="function"}function si(t){return t!=null&&typeof t=="object"&&typeof t[Symbol.asyncIterator]=="function"}function ii(t,e){return ne(n=>{let r,o;function s(){o?.(),o=void 0,ri(e)||oi(e)||si(e)?r=G(e).subscribe(a=>{n.down(a)}):(n.emit(e),n.down([[$]]))}return o=t.subscribe(i=>{for(let a of i){let u=a[0];if(u===J)n.down([[J]]);else if(u===L)n.emit(a[1]);else if(u===V)n.down([[V]]);else if(u===$)n.down([[$]]);else if(u===C){s();return}else if(u===ce){r?.(),n.down([a]);return}else n.down([a])}}),()=>{o?.(),r?.()}},{...He(),initial:t.cache})}function ai(t,e){if(e<=0)throw new RangeError("timeoutNs must be > 0");return ne(n=>{let r=!1,o=new se;function s(){let a=e/1e6;o.start(a,()=>{r||(r=!0,i(),n.down([[C,new $t(e)]]))})}let i=t.subscribe(a=>{for(let u of a){if(r)return;let d=u[0];if(d===J)n.down([[J]]);else if(d===L)s(),n.emit(u[1]);else if(d===V)n.down([[V]]);else if(d===$){o.cancel(),r=!0,n.down([[$]]);return}else if(d===C){o.cancel(),r=!0,n.down([u]);return}else if(d===ce){o.cancel(),r=!0,n.down([u]);return}else n.down([u])}});return s(),()=>{r=!0,o.cancel(),i()}},{...He(),initial:t.cache})}var Fe,Ft,$t,st=Te(()=>{"use strict";xe();fe();re();Re();q();Ln();Q();Ie();Fe=class extends Error{name="CircuitOpenError";constructor(){super("Circuit breaker is open")}};Ft=class extends Error{name="RateLimiterOverflowError";constructor(e){super(`rateLimiter buffer overflow (maxBuffer=${e})`)}};$t=class extends Error{name="TimeoutError";constructor(e){super(`Timed out after ${e/1e6}ms`)}}});function Bt(t){return{describeKind:"producer",...t}}function to(t,e){let{signal:n,period:r,...o}=e??{};return ne(s=>{let i=!1,a=0,u,d,c=()=>{i=!0,u!==void 0&&clearTimeout(u),d!==void 0&&clearInterval(d),n?.removeEventListener("abort",p)},l=()=>{i||(r!=null?(s.emit(a++),d=setInterval(()=>{i||s.emit(a++)},r)):(i=!0,n?.removeEventListener("abort",p),s.emit(a++),s.down([[$]])))},p=()=>{i||(c(),s.down([[C,n.reason]]))};if(n?.aborted){p();return}return u=setTimeout(l,t),n?.addEventListener("abort",p,{once:!0}),c},Bt(o))}function no(t,e){return ne(n=>{let r=!1;try{for(let o of t){if(r)return;n.emit(o)}r||n.down([[$]])}catch(o){r||n.down([[C,o]])}return()=>{r=!0}},Bt(e))}function di(t){return t!=null&&typeof t.then=="function"}function Vt(t,e){let{signal:n,...r}=e??{};return ne(o=>{let s=!1,i=()=>{s||(s=!0,o.down([[C,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([[$]]))},a=>{s||(s=!0,n?.removeEventListener("abort",i),o.down([[C,a]]))}),()=>{s=!0,n?.removeEventListener("abort",i)}},Bt(r))}function Pn(t,e){let{signal:n,...r}=e??{};return ne(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,u=!1,d=t[Symbol.asyncIterator](),c=()=>{u||a.aborted||Promise.resolve(d.next()).then(l=>{if(!(u||a.aborted)){if(l.done){o.down([[$]]);return}o.emit(l.value),c()}},l=>{!u&&!a.aborted&&o.down([[C,l]])})};return c(),()=>{u=!0,n?.removeEventListener("abort",i),s.abort(),Promise.resolve(d.return?.()).catch(()=>{})}},Bt(r))}function ui(t){return t!=null&&typeof t=="object"&&"cache"in t&&typeof t.subscribe=="function"}function G(t,e){if(ui(t))return t;if(di(t))return Vt(t,e);if(t!=null){let n=t;if(typeof n[Symbol.asyncIterator]=="function")return Pn(t,e);if(typeof n[Symbol.iterator]=="function")return no(t,e)}return ci(t)}function ci(...t){return no(t,void 0)}function bt(t,e,n){return te([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 we(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]===C){r=!0,n(a[1]),s?(s(),s=void 0):o=!0;return}if(a[0]===$){r=!0,n(new Error("completed without DATA")),s?(s(),s=void 0):o=!0;return}}}),o&&(s?.(),s=void 0)})}function Zr(t,e,n){return new Promise((r,o)=>{let s=!1,i=!1,a,u=n?.skipCurrent===!0;a=t.subscribe(d=>{for(let c of d){if(s)return;if(!(u&&c[0]===L)){if(c[0]===L){let l=c[1];if(e(l)){s=!0,r(l),a?(a(),a=void 0):i=!0;return}}if(c[0]===C){s=!0,o(c[1]),a?(a(),a=void 0):i=!0;return}if(c[0]===$){s=!0,o(new Error("completed without matching value")),a?(a(),a=void 0):i=!0;return}}}}),u=!1,i&&(a?.(),a=void 0)})}async function ro(t,e){let n=e?.predicate??(s=>s!=null),r=e?.skipCurrent;if(e?.timeoutMs==null||e.timeoutMs<=0)return await Zr(t,n,{skipCurrent:r});if(In===void 0){let[s,i]=await Promise.all([Promise.resolve().then(()=>(st(),Xr)),Promise.resolve().then(()=>(Ln(),Yr))]);In=s.timeout,eo=i.NS_PER_MS}let o=In(t,e.timeoutMs*eo);return await Zr(o,n,{skipCurrent:r})}function oo(t,e){let n=new AbortController,r=e?.reason??new Error("cancelled via nodeSignal"),o,s=!1,i=()=>{o?(o(),o=void 0):s=!0};return o=t.subscribe(a=>{if(!n.signal.aborted)for(let u of a){if(u[0]===L&&u[1]===!0){n.abort(r),i();return}if(u[0]===C){n.abort(u[1]),i();return}if(u[0]===$){i();return}}}),s&&(o?.(),o=void 0),{signal:n.signal,dispose:()=>{o&&(o(),o=void 0)}}}function Y(t){return t.subscribe(()=>{})}var In,eo,Q=Te(()=>{"use strict";re();Re();q()});var zd={};vn(zd,{AgentLoopGraph:()=>hn,AllTiersExhaustedError:()=>kt,BudgetExhaustedError:()=>Zt,ChatStreamGraph:()=>mn,CircuitOpenError:()=>Fe,DEFAULT_DECAY_RATE:()=>wr,FallbackMissError:()=>Ri,LLMTimeoutError:()=>dt,ReplayCacheMissError:()=>Je,ToolRegistryGraph:()=>gn,admissionFilter3D:()=>Sd,admissionScored:()=>ms,agentLoop:()=>kd,agentMemory:()=>Od,anthropicAdapter:()=>Gn,canonicalJson:()=>Kn,cascadingLlmAdapter:()=>rr,chatStream:()=>hr,composePricing:()=>Ui,computePrice:()=>Yn,contentGate:()=>bd,costMeterExtractor:()=>pd,createAdapter:()=>Fi,createCapabilitiesRegistry:()=>Ws,createPricingRegistry:()=>Vi,dryRunAdapter:()=>We,fallbackAdapter:()=>Un,fromLLM:()=>oa,frozenContext:()=>da,gatedStream:()=>ud,gaugesAsContext:()=>Ad,googleAdapter:()=>zn,graphFromSpec:()=>Es,graphFromSpecReactive:()=>$d,handoff:()=>xd,keywordFlagExtractor:()=>md,knobsAsTools:()=>Bd,llmConsolidator:()=>vr,llmExtractor:()=>Tr,memoryRetrieval:()=>Sr,memoryWithKG:()=>xr,memoryWithTiers:()=>Rr,memoryWithVectors:()=>kr,observableAdapter:()=>ji,openAICompatAdapter:()=>Wn,parseRateLimitFromError:()=>er,pricingFor:()=>zi,promptNode:()=>ar,redactor:()=>Td,registryPricing:()=>Ki,resilientAdapter:()=>ra,streamExtractor:()=>gd,streamingPromptNode:()=>dd,suggestStrategy:()=>Os,suggestStrategyReactive:()=>Kd,systemPromptBuilder:()=>cd,tier:()=>ta,toolCallExtractor:()=>yd,toolExecution:()=>yr,toolRegistry:()=>br,toolSelector:()=>Rd,validateGraphDef:()=>Ud,withBreaker:()=>Qn,withBudgetGate:()=>Zn,withDryRun:()=>Wi,withRateLimiter:()=>nr,withReplayCache:()=>vt,withRetry:()=>or,withTimeout:()=>sr,zeroPrice:()=>Xt});module.exports=Ps(zd);q();xe();fe();re();q();var Cn=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=B(),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=B(),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 B()+n*1e9}}_isExpired(e,n){return e.expiresAt===void 0?!1:(n??B())>=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 rt(t={}){let{name:e,maxSize:n,defaultTtl:r,versioning:o,backend:s,retention:i}=t;if(i&&n!==void 0)throw new RangeError("reactiveMap: `maxSize` (LRU) and `retention` (score-based) are mutually exclusive. Pick one eviction policy.");if(i&&i.archiveThreshold===void 0&&i.maxSize===void 0)throw new RangeError("reactiveMap: `retention` requires at least one of `archiveThreshold` or `maxSize` to trigger archival.");let a=s??new Cn({maxSize:n,defaultTtl:r}),u=I(a.toMap(),{name:e,describeKind:"state",equals:(p,f)=>p===f,...o!=null?{versioning:o}:{}});function d(){let p=a.toMap();ee(()=>{u.down([[J]]),u.down([[L,p]])})}function c(){if(!i)return;let p=a.toMap(),f=i.archiveThreshold,m=i.maxSize,y=[];for(let[h,b]of p)y.push({key:h,value:b,score:i.score(h,b)});y.sort((h,b)=>h.score-b.score);let g=new Set;if(f!==void 0)for(let h of y)if(h.score<f)g.add(h.key);else break;if(m!==void 0&&y.length-g.size>m)for(let h of y){if(y.length-g.size<=m)break;g.has(h.key)||g.add(h.key)}if(g.size!==0)for(let h of y)g.has(h.key)&&(i.onArchive?.(h.key,h.value,h.score),a.delete(h.key))}function l(p,f="mutation"){let m=a.version;try{return p()}finally{a.version!==m&&(f==="mutation"&&c(),d())}}return{entries:u,has(p){return l(()=>a.has(p),"read")},get(p){return l(()=>a.get(p),"read")},set(p,f,m){l(()=>a.set(p,f,m?.ttl))},setMany(p,f){l(()=>a.setMany(p,f?.ttl))},delete(p){l(()=>a.delete(p))},deleteMany(p){l(()=>a.deleteMany(p))},clear(){l(()=>a.clear())},pruneExpired(){l(()=>a.pruneExpired())},get size(){return a.size},dispose(){}}}function gt(t,e){return`${t}::${e}`}function Ws(t){let e=rt({name:"capabilitiesRegistry"}),n=d=>{e.set(gt(d.provider,d.id),d)};if(t)for(let d of t)n(d);let r=(d,c)=>{let l=e.get(gt(d,c));if(l)return l;let p=e.entries.cache;if(!p)return;let f;for(let[,m]of p){if(m.provider!==d)continue;let y=m.id;c.startsWith(y)&&(!f||y.length>f.id.length)&&(f=m)}return f},o=128,s=new Map,i=new Map,a=(d,c,l,p)=>{for(d.has(c)&&d.delete(c),d.set(c,l);d.size>p;){let f=d.keys().next().value;if(f===void 0)break;d.delete(f)}},u=O([e.entries],([d])=>Array.from(d.values()),{name:"capabilitiesRegistry/entries",initial:[]});return{register:n,lookup:r,remove(d,c){let l=e.has(gt(d,c));return l&&e.delete(gt(d,c)),l},entries(){let d=e.entries.cache;return(function*(){if(d)for(let c of d.values())yield c})()},lookupNode(d,c){let l=gt(d,c),p=s.get(l);if(p)return s.delete(l),s.set(l,p),p;let f=O([e.entries],()=>r(d,c),{name:`capabilitiesRegistry/lookup/${d}::${c}`,initial:void 0});return a(s,l,f,o),f},entriesNode:u,byProvider(d){let c=i.get(d);if(c)return i.delete(d),i.set(d,c),c;let l=O([u],([p])=>p.filter(f=>f.provider===d),{name:`capabilitiesRegistry/byProvider/${d}`,initial:[]});return a(i,d,l,o),l}}}fe();re();Re();q();Q();function Kt(t){return{describeKind:"derived",...t}}function li(t){return{describeKind:"derived",partial:!0,...t}}function so(t,e,n){return te([t],(r,o)=>{let s=r[0];if(s==null||s.length===0){o.down([[V]]);return}let i=!1;for(let a of s)e(a)&&(o.emit(a),i=!0);i||o.down([[V]])},Kt(n))}function io(t,e,n){let r=n?.where??(s=>s!=null),o=!1;return te([t],(s,i)=>{let a=s[0];if(a==null||a.length===0){i.down([[V]]);return}for(let u of a)!o&&r(u)&&(o=!0,e(u)),i.emit(u)},Kt(n))}function ao(t,e,n){return te([t,e],(r,o,s)=>{let i=r[0],a=r[1],u=a!=null&&a.length>0?a.at(-1):s.prevData[1];if(i!=null&&i.length>0){if(!(a!=null&&a.length>0)&&s.prevData[1]===void 0){o.down([[V]]);return}for(let d of i)o.emit([d,u])}else o.down([[V]])},li(n))}function pi(t,e,n){let r,o=!1,s=()=>{o||(o=!0,n())};return r=t.subscribe(i=>{let a=!1,u=!1;for(let d of i)d[0]!==De&&(d[0]===L?e.emit(d[1]):d[0]===$?a=!0:d[0]===C?(u=!0,e.down([d])):(d[0]===J||d[0]===V)&&e.down([d]));u?(r?.(),r=void 0,s()):a&&s()}),()=>{r?.(),r=void 0}}function ae(t,e,n){let r,o=!1;function s(){r?.(),r=void 0}return te([t],(i,a,u)=>{if(u.terminalDeps[0]!=null&&u.terminalDeps[0]!==!0){s();return}if(u.terminalDeps[0]===!0){o=!0,r||a.down([[$]]);return}let d=i[0];if(!(d==null||d.length===0))return s(),r=pi(G(e(d[d.length-1])),a,()=>{s(),o&&a.down([[$]])}),{deactivate:()=>{s(),o=!1}}},{...Kt(n),completeWhenDepsComplete:!1})}function uo(t,e,n){return ne(r=>{let o=t.subscribe(s=>{for(let i of s)if(i[0]===L)r.emit(i[1]);else if(i[0]===C)try{r.emit(e(i[1]))}catch(a){r.down([[C,a]])}else i[0]===$&&r.down([[$]])});return()=>{o()}},Kt(n))}var Tt=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}};async function*it(t,e){let n=e?.parse??(k=>k),r=e?.signal,o=new TextDecoder,s="",i="message",a=[],u,d,c=[],l=()=>{if(a.length===0&&i==="message"&&u===void 0){a=[];return}let k=a.join(`
|
|
2
|
-
`);
|
|
1
|
+
"use strict";var En=Object.defineProperty;var qs=Object.getOwnPropertyDescriptor;var Ws=Object.getOwnPropertyNames;var Hs=Object.prototype.hasOwnProperty;var me=(t,e)=>()=>(t&&(e=t(t=0)),e);var On=(t,e)=>{for(var n in e)En(t,n,{get:e[n],enumerable:!0})},Js=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Ws(e))!Hs.call(t,o)&&o!==n&&En(t,o,{get:()=>e[o],enumerable:!(r=qs(e,o))||r.enumerable});return t};var Ys=t=>Js(En({},"__esModule",{value:!0}),t);function qr(t,e){let n=new TextEncoder().encode(t.name);if(n.length===0||n.length>255)throw new Error(`encodeEnvelope: codec name "${t.name}" encodes to ${n.length} bytes (must be 1\u2013255)`);let r=t.version;if(!Number.isInteger(r)||r<0||r>65535)throw new Error(`encodeEnvelope: codec.version ${r} out of u16 range (expected integer 0\u201365535)`);let o=2+n.length+2+e.length;if(o>4294967295)throw new Error(`encodeEnvelope: total envelope size ${o} exceeds 2^32-1 bytes (payload ${e.length} bytes)`);let s=new Uint8Array(o),a=0;return s[a++]=An,s[a++]=n.length,s.set(n,a),a+=n.length,s[a++]=r>>>8&255,s[a++]=r&255,s.set(e,a),s}function Wr(t,e){if(t.length<Ur)throw new Error(`decodeEnvelope: bytes too short (${t.length} < ${Ur})`);let n=0,r=t[n++];if(r!==An)throw new Error(`decodeEnvelope: unsupported envelope version ${r} (expected ${An})`);let o=t[n++];if(o===0)throw new Error("decodeEnvelope: name_len must be >= 1");if(n+o+2>t.length)throw new Error(`decodeEnvelope: envelope truncated (need ${n+o+2} bytes, have ${t.length})`);let s=new TextDecoder().decode(t.subarray(n,n+o));n+=o;let a=(t[n]<<8|t[n+1])>>>0;n+=2;let i=t.subarray(n),d=e.lookupCodec(s);if(d==null)throw new Error(`decodeEnvelope: codec "${s}" not registered (envelope codec_v=${a})`);return{codec:d,codecVersion:a,payload:i}}function Hr(t){t.registerCodec(Qs)}var Qs,An,Ur,Cn=me(()=>{"use strict";Qs={name:"json",version:1,contentType:"application/json",encode(t){let e=JSON.stringify(t);return new TextEncoder().encode(e)},decode(t,e){let n=new TextDecoder().decode(t);return JSON.parse(n)}},An=1,Ur=4});function jt(t){if(t==null)return st;let{type:e,id:n,...r}=t;return{type:e??"system",id:n??"",...r}}var st,Bt=me(()=>{"use strict";st={type:"system",id:""}});function Vt(){return it>0||Rt}function Jr(){return it>0}function dt(t){it>0?_t.push(t):t()}function ne(t){it+=1;let e=!1;try{t()}catch(n){throw e=!0,n}finally{if(it-=1,it===0)if(e){if(!Rt){let n=_t.splice(0);for(let r of n)try{r()}catch{}We.length=0,He.length=0,at.length=0}}else Xs()}}function Xs(){let t=!Rt;t&&(Rt=!0);let e=[],n=0;try{for(;We.length>0||He.length>0||at.length>0||t&&_t.length>0;){if(t&&_t.length>0){let s=_t.splice(0);for(let a of s)try{a()}catch(i){e.push(i)}continue}if(n+=1,n>1e3)throw We.length=0,He.length=0,at.length=0,new Error("batch drain exceeded 1000 iterations \u2014 likely a reactive cycle");let o=(We.length>0?We:He.length>0?He:at).splice(0);for(let s of o)try{s()}catch(a){e.push(a)}}}finally{t&&(Rt=!1)}if(e.length===1)throw e[0];if(e.length>1)throw new AggregateError(e,"batch drain: multiple callbacks threw")}function Kt(t,e,n){if(e.length===0)return;if(e.length===1){let c=n(e[0][0]);if(c<3||!Vt()){t(e);return}(c>=5?at:c===4?He:We).push(()=>t(e));return}let r=e.length,o=r,s=r,a=r,i=0;for(;i<r&&n(e[i][0])<3;)i++;for(o=i;i<r&&n(e[i][0])===3;)i++;for(s=i;i<r&&n(e[i][0])===4;)i++;a=i;let d=Vt();if(o>0){let c=e.slice(0,o);t(c)}if(s>o){let c=e.slice(o,s);d?We.push(()=>t(c)):t(c)}if(a>s){let c=e.slice(s,a);d?He.push(()=>t(c)):t(c)}if(r>a){let c=e.slice(a,r);d?at.push(()=>t(c)):t(c)}}var it,Rt,We,He,at,_t,Ne=me(()=>{"use strict";it=0,Rt=!1,We=[],He=[],at=[],_t=[]});function z(){return Math.trunc(performance.now()*1e6)}function ie(){return Date.now()*1e6}var ge=me(()=>{"use strict"});var je,D,X,U,Oe,xe,Ae,ue,$,P,Je,zt,Yr,Ut,Qr,Xr,qt,Ln,Dn,In,Wt,se=me(()=>{"use strict";je=Symbol.for("graphrefly/START"),D=Symbol.for("graphrefly/DATA"),X=Symbol.for("graphrefly/DIRTY"),U=Symbol.for("graphrefly/RESOLVED"),Oe=Symbol.for("graphrefly/INVALIDATE"),xe=Symbol.for("graphrefly/PAUSE"),Ae=Symbol.for("graphrefly/RESUME"),ue=Symbol.for("graphrefly/TEARDOWN"),$=Symbol.for("graphrefly/COMPLETE"),P=Symbol.for("graphrefly/ERROR"),Je=Object.freeze([X]),zt=Object.freeze([U]),Yr=Object.freeze([Oe]),Ut=Object.freeze([je]),Qr=Object.freeze([$]),Xr=Object.freeze([ue]),qt=Object.freeze([Je]),Ln=Object.freeze([zt]),Dn=Object.freeze([Yr]),In=Object.freeze([Qr]),Wt=Object.freeze([Xr])});function Zr(t){t.registerMessageType(je,{tier:0,wireCrossing:!1}),t.registerMessageType(X,{tier:1,wireCrossing:!1}),t.registerMessageType(Oe,{tier:1,wireCrossing:!1,metaPassthrough:!1}),t.registerMessageType(xe,{tier:2,wireCrossing:!1}),t.registerMessageType(Ae,{tier:2,wireCrossing:!1}),t.registerMessageType(D,{tier:3,wireCrossing:!0}),t.registerMessageType(U,{tier:3,wireCrossing:!0}),t.registerMessageType($,{tier:4,wireCrossing:!0,metaPassthrough:!1}),t.registerMessageType(P,{tier:4,wireCrossing:!0,metaPassthrough:!1}),t.registerMessageType(ue,{tier:5,wireCrossing:!0,metaPassthrough:!1})}var Ht,eo=me(()=>{"use strict";se();Ht=class{_messageTypes=new Map;_codecs=new Map;_onMessage;_onSubscribe;_defaultVersioning;_defaultHashFn;_inspectorEnabled=!(typeof process<"u"&&process.env?.NODE_ENV==="production");_globalInspector;_rigorRecorder;_frozen=!1;tierOf;constructor(e){this._onMessage=e.onMessage,this._onSubscribe=e.onSubscribe,this._defaultVersioning=e.defaultVersioning,this._defaultHashFn=e.defaultHashFn,this.tierOf=n=>{let r=this._messageTypes.get(n);return r!=null?r.tier:1}}get onMessage(){return this._frozen=!0,this._onMessage}get onSubscribe(){return this._frozen=!0,this._onSubscribe}set onMessage(e){this._assertUnfrozen(),this._onMessage=e}set onSubscribe(e){this._assertUnfrozen(),this._onSubscribe=e}get defaultVersioning(){return this._defaultVersioning}set defaultVersioning(e){this._assertUnfrozen(),this._defaultVersioning=e}get defaultHashFn(){return this._defaultHashFn}set defaultHashFn(e){this._assertUnfrozen(),this._defaultHashFn=e}get inspectorEnabled(){return this._inspectorEnabled}set inspectorEnabled(e){this._inspectorEnabled=e}get globalInspector(){return this._globalInspector}set globalInspector(e){this._globalInspector=e}get rigorRecorder(){return this._rigorRecorder}set rigorRecorder(e){this._rigorRecorder=e}registerMessageType(e,n){return this._assertUnfrozen(),this._messageTypes.set(e,{tier:n.tier,wireCrossing:n.wireCrossing??n.tier>=3,metaPassthrough:n.metaPassthrough??!0}),this}messageTier(e){let n=this._messageTypes.get(e);return n!=null?n.tier:1}isWireCrossing(e){let n=this._messageTypes.get(e);return n!=null?n.wireCrossing:!0}isLocalOnly(e){return!this.isWireCrossing(e)}isMetaPassthrough(e){let n=this._messageTypes.get(e);return n!=null?n.metaPassthrough:!0}isKnownMessageType(e){return this._messageTypes.has(e)}registerCodec(e){return this._assertUnfrozen(),this._codecs.set(e.name,e),this}lookupCodec(e){return this._codecs.get(e)}_isFrozen(){return this._frozen}_assertUnfrozen(){if(this._frozen)throw new Error("GraphReFlyConfig is frozen: a node has already captured this config. Register custom types and set hooks before creating any node.")}}});function to(t){return Array.isArray(t)?[...t]:[t]}function Zs(t,e){return t.has(e)||t.has("*")}function no(t){let e=[];return t((o,s)=>{e.push({kind:"allow",actions:new Set(to(o)),where:s?.where??(()=>!0)})},(o,s)=>{e.push({kind:"deny",actions:new Set(to(o)),where:s?.where??(()=>!0)})}),(o,s)=>{let a=!1,i=!1;for(let d of e)Zs(d.actions,s)&&d.where(o)&&(d.kind==="deny"?a=!0:i=!0);return a?!1:i}}function Pn(t){let e=ei.filter(n=>t({type:n,id:""},"write"));return e.length===0?"restricted":e.includes("human")&&e.includes("llm")&&e.every(n=>n==="human"||n==="llm"||n==="system")?"both":e.length===1?e[0]:e.join("+")}var Ce,ei,ct=me(()=>{"use strict";Ce=class extends Error{actor;action;nodeName;constructor(e,n){super(n??`GuardDenied: action "${String(e.action)}" denied for actor type "${String(e.actor.type)}"`),this.name="GuardDenied",this.actor=e.actor,this.action=e.action,this.nodeName=e.nodeName}get node(){return this.nodeName}};ei=["human","llm","wallet","system"]});function Gn(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(Gn);if(typeof t=="object"&&t!==null){let e={};for(let n of Object.keys(t).sort())e[n]=Gn(t[n]);return e}return null}function ri(t){let e=ni.encode(t),n=e.length,r=n*8,o=n+9+63&-64,s=new Uint8Array(o);s.set(e),s[n]=128;let a=new DataView(s.buffer);a.setUint32(o-4,r>>>0,!1),a.setUint32(o-8,Math.floor(r/4294967296)>>>0,!1);let i=1779033703,d=3144134277,c=1013904242,u=2773480762,l=1359893119,p=2600822924,f=528734635,m=1541459225,h=new Uint32Array(64),g=(T,b)=>T>>>b|T<<32-b;for(let T=0;T<o;T+=64){for(let N=0;N<16;N++)h[N]=a.getUint32(T+N*4,!1);for(let N=16;N<64;N++){let L=h[N-15],_=h[N-2],E=g(L,7)^g(L,18)^L>>>3,I=g(_,17)^g(_,19)^_>>>10;h[N]=h[N-16]+E+h[N-7]+I>>>0}let b=i,w=d,k=c,S=u,v=l,x=p,R=f,M=m;for(let N=0;N<64;N++){let L=g(v,6)^g(v,11)^g(v,25),_=v&x^~v&R,E=M+L+_+ti[N]+h[N]>>>0,I=g(b,2)^g(b,13)^g(b,22),K=b&w^b&k^w&k,q=I+K>>>0;M=R,R=x,x=v,v=S+E>>>0,S=k,k=w,w=b,b=E+q>>>0}i=i+b>>>0,d=d+w>>>0,c=c+k>>>0,u=u+S>>>0,l=l+v>>>0,p=p+x>>>0,f=f+R>>>0,m=m+M>>>0}let y=T=>T.toString(16).padStart(8,"0");return y(i)+y(d)+y(c)+y(u)+y(l)+y(p)+y(f)+y(m)}function Fn(t){let e=Gn(t??null),n=JSON.stringify(e);return ri(n).slice(0,16)}function oi(){let t=globalThis.crypto;if(t?.randomUUID)return t.randomUUID();let e=()=>Math.floor(Math.random()*4294967296).toString(16).padStart(8,"0"),n=e()+e()+e()+e();return`${n.slice(0,8)}-${n.slice(8,12)}-4${n.slice(13,16)}-${(parseInt(n.slice(16,17),16)&3|8).toString(16)}${n.slice(17,20)}-${n.slice(20,32)}`}function $n(t,e,n){let r=n?.id??oi();if(t===0)return{id:r,version:0};let s=(n?.hash??Fn)(e);return{id:r,version:0,cid:s,prev:null}}function ro(t,e,n){t.version+=1,"cid"in t&&(t.prev=t.cid,t.cid=n(e))}var ti,ni,oo=me(()=>{"use strict";ti=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),ni=new TextEncoder});function ao(t){return{node:t,unsub:null,prevData:void 0,dirty:!1,involvedThisWave:!1,dataBatch:[],terminal:void 0}}function jn(t){t.prevData=void 0,t.dirty=!1,t.involvedThisWave=!1,t.dataBatch.length=0,t.terminal=void 0}function Jt(t){return t.length===0?t:typeof t[0]=="symbol"?[t]:t}function te(t,e,n){let r=co(t)?t:[],o=typeof t=="function"?t:typeof e=="function"?e:void 0,s={};return co(t)?s=(Bn(e)?e:n)??{}:Bn(t)?s=t:s=(Bn(e)?e:n)??{},new le(r,o,s)}var so,io,si,ii,ut,le,co,Bn,ve=me(()=>{"use strict";Cn();Bt();Ne();ge();eo();ct();se();oo();so=()=>{},io=100;si=(t,e,n,r)=>{n.direction==="down-in"&&t._onDepMessage(n.depIndex,e)},ii=(t,e,n,r)=>{let o=t;if(o._status==="completed"||o._status==="errored")return;let s=o._cached,a=s===void 0?[Ut]:[Ut,[D,s]];o._status==="dirty"&&a.push(Je),Kt(e,a,o._config.tierOf)},ut=new Ht({onMessage:si,onSubscribe:ii});Zr(ut);Hr(ut);le=class t{_optsName;_describeKind;meta;_hasMeta;_config;_deps;_sinks=null;_sinkCount=0;_cached;_status;_cleanup;_store={};_waveHasNewData=!1;_hasNewTerminal=!1;_hasCalledFnOnce=!1;_paused=!1;_pendingWave=!1;_isExecutingFn=!1;_pendingRerun=!1;_rerunDepth=0;_dirtyDepCount=0;_batchPendingMessages=null;_pauseLocks=null;_pauseBuffer=null;_fn;_equals;_resubscribable;_resetOnTeardown;_autoComplete;_autoError;_pausable;_partial;_guard;_extraGuards;_hashFn;_versioning;_versioningLevel;_lastMutation;_inspectorHooks;_actions;constructor(e,n,r){this._config=r.config??ut,this._config.onMessage,this._optsName=r.name,this._describeKind=r.describeKind,this._equals=r.equals??Object.is,this._resubscribable=r.resubscribable??!1,this._resetOnTeardown=r.resetOnTeardown??!1,this._autoComplete=r.completeWhenDepsComplete??!0,this._autoError=r.errorWhenDepsError??!0,this._pausable=r.pausable??!0,this._guard=r.guard,this._fn=n,this._partial=r.partial??!1,this._cached=r.initial!==void 0?r.initial:void 0,this._status=e.length===0&&n==null&&this._cached!==void 0?"settled":"sentinel",this._hashFn=r.versioningHash??this._config.defaultHashFn??Fn;let o=r.versioning??this._config.defaultVersioning;this._versioningLevel=o,this._versioning=o!=null?$n(o,this._cached===void 0?void 0:this._cached,{id:r.versioningId,hash:this._hashFn}):void 0,this._deps=e.map(ao);let s={};for(let[i,d]of Object.entries(r.meta??{})){let c={initial:d,name:`${r.name??"node"}:meta:${i}`,describeKind:"state",config:this._config};r.guard!=null&&(c.guard=r.guard),s[i]=new t([],void 0,c)}Object.freeze(s),this.meta=s,this._hasMeta=Object.keys(s).length>0;let a=this;this._actions={emit(i){a._emit([[D,i]])},down(i){a._emit(Jt(i))},up(i){a._emitUp(Jt(i))}},this.down=this.down.bind(this),this.up=this.up.bind(this)}get _isTerminal(){return this._status==="completed"||this._status==="errored"}get name(){return this._optsName}get status(){return this._status}get cache(){return this._cached===void 0?void 0:this._cached}get lastMutation(){return this._lastMutation}get v(){return this._versioning}hasGuard(){return this._guard!=null}_applyVersioning(e,n){if(this._isExecutingFn)throw new Error(`Node "${this.name}": _applyVersioning cannot run mid-fn \u2014 call it outside of \`_execFn\` (typically at graph setup time before the first subscribe).`);let r=this._versioningLevel;if(r!=null&&e<=r)return;let o=n?.hash??this._hashFn;o!==this._hashFn&&(this._hashFn=o);let s=this._cached===void 0?void 0:this._cached,a=this._versioning,i=a?.id??n?.id,d=a?.version??0,c=$n(e,s,{id:i,hash:o});c.version=d,this._versioning=c,this._versioningLevel=e}_setInspectorHook(e){return e==null?()=>{}:(this._inspectorHooks==null&&(this._inspectorHooks=new Set),this._inspectorHooks.add(e),()=>{this._inspectorHooks?.delete(e),this._inspectorHooks?.size===0&&(this._inspectorHooks=void 0)})}_pushGuard(e){return this._extraGuards==null&&(this._extraGuards=new Set),this._extraGuards.add(e),()=>{this._extraGuards?.delete(e),this._extraGuards?.size===0&&(this._extraGuards=void 0)}}allowsObserve(e){if(this._guard==null&&this._extraGuards==null)return!0;let n=jt(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=jt(e?.actor),s=e?.delivery==="signal"?"signal":"write";if(this._guard!=null&&!this._guard(o,s))throw new Ce({actor:o,action:s,nodeName:this.name});if(this._extraGuards!=null){for(let a of this._extraGuards)if(!a(o,s))throw new Ce({actor:o,action:s,nodeName:this.name})}this._lastMutation={actor:o,timestamp_ns:ie()}}down(e,n){let r=Jt(e);r.length!==0&&(this._checkGuard(n),this._emit(r))}emit(e,n){this._checkGuard(n),this._emit([[D,e]])}up(e,n){if(this._deps.length===0)return;let r=Jt(e);if(r.length===0)return;this._checkGuard(n);let o=n??{internal:!0};this._validateUpTiers(r);for(let s of this._deps)s.node.up?.(r,o)}_emitUp(e){if(this._deps.length!==0&&e.length!==0){this._validateUpTiers(e);for(let n of this._deps)n.node.up?.(e,{internal:!0})}}_validateUpTiers(e){let n=this._config.tierOf;for(let r of e){let o=n(r[0]);if(o===3||o===4)throw new Error(`Node "${this.name}": tier-${o} messages cannot flow up \u2014 DATA/RESOLVED/COMPLETE/ERROR are downstream-only. Use \`down(...)\` for value delivery; \`up(...)\` is for control signals (DIRTY, INVALIDATE, PAUSE, RESUME, TEARDOWN).`)}}subscribe(e,n){if(n!=null&&this._guard!=null){let d=jt(n);if(!this._guard(d,"observe"))throw new Ce({actor:d,action:"observe",nodeName:this.name})}let o=this._isTerminal&&this._resubscribable;if(o){this._cached=void 0,this._status="sentinel",this._store={},this._hasCalledFnOnce=!1,this._waveHasNewData=!1,this._hasNewTerminal=!1,this._paused=!1,this._pendingWave=!1,this._pendingRerun=!1,this._isExecutingFn=!1,this._rerunDepth=0,this._dirtyDepCount=0,this._pauseLocks=null,this._pauseBuffer=null;for(let d of this._deps)jn(d);if(this._partial===!1){for(let d of this._deps)if(d.prevData!==void 0||d.dataBatch.length!==0||d.terminal!==void 0||d.dirty)throw new Error(`resubscribable-reset invariant: DepRecord not fully reset for node ${this._optsName??"(anonymous)"}`)}}this._sinkCount+=1;let s;try{s=this._config.onSubscribe(this,e,{sinkCount:this._sinkCount,afterTerminalReset:o},this._actions)}catch(d){throw this._sinkCount-=1,d}this._sinks==null?this._sinks=e:typeof this._sinks=="function"?this._sinks=new Set([this._sinks,e]):this._sinks.add(e);let a=this._isTerminal;if(this._sinkCount===1&&!a)try{this._activate()}catch(d){if(this._sinkCount-=1,this._removeSink(e),this._sinkCount===0&&(this._status="sentinel"),typeof s=="function")try{s()}catch{}throw d}this._status==="sentinel"&&this._cached===void 0&&(this._status="pending");let i=!1;return()=>{i||(i=!0,this._sinkCount-=1,this._removeSink(e),typeof s=="function"&&s(),this._sinks==null&&this._deactivate())}}_removeSink(e){if(this._sinks===e)this._sinks=null;else if(this._sinks!=null&&typeof this._sinks!="function")if(this._sinks.delete(e),this._sinks.size===1){let[n]=this._sinks;this._sinks=n}else this._sinks.size===0&&(this._sinks=null)}_activate(){if(this._deps.length===0){this._fn&&this._execFn();return}this._dirtyDepCount=0;let e=this._deps.length,n=0;try{for(let r=0;r<e;r++){let o=r,s=this._deps[r];s.unsub=so,s.unsub=s.node.subscribe(a=>{if(s.unsub===null)return;let i=this._config.tierOf,d=!1;for(let c of a)i(c[0])>=3&&(d=!0),this._config.onMessage(this,c,{direction:"down-in",depIndex:o},this._actions);d&&this._maybeRunFnOnSettlement()}),n++}}catch(r){this._deps[n].unsub=null;for(let o=0;o<n;o++){let s=this._deps[o];if(s.unsub!=null){let a=s.unsub;s.unsub=null;try{a()}catch{}jn(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=ao(e);if(this._deps.push(r),this._sinks==null)return n;r.dirty=!0,this._dirtyDepCount++,this._status!=="dirty"&&this._emit(qt),r.unsub=so;try{r.unsub=e.subscribe(o=>{if(r.unsub===null)return;let s=this._config.tierOf,a=!1;for(let i of o)s(i[0])>=3&&(a=!0),this._config.onMessage(this,i,{direction:"down-in",depIndex:n},this._actions);a&&this._maybeRunFnOnSettlement()})}catch(o){throw r.unsub=null,this._deps.pop(),this._dirtyDepCount--,o}return n}_deactivate(e=!1){let n=this._cleanup;if(this._cleanup=void 0,typeof n=="function")try{n()}catch(r){this._emit([[P,this._wrapFnError("cleanup threw",r)]])}else if(n!=null&&typeof n=="object"){let r=n.deactivate;if(typeof r=="function")try{r()}catch(o){this._emit([[P,this._wrapFnError("cleanup.deactivate threw",o)]])}}for(let r of this._deps){if(r.unsub!=null){let o=r.unsub;r.unsub=null;try{o()}catch{}}jn(r)}this._waveHasNewData=!1,this._hasNewTerminal=!1,this._hasCalledFnOnce=!1,this._paused=!1,this._pendingWave=!1,this._pendingRerun=!1,this._rerunDepth=0,this._store={},this._dirtyDepCount=0,this._pauseLocks=null,this._pauseBuffer=null,this._fn!=null&&(this._cached=void 0),e||(this._fn!=null||this._deps.length>0)&&(!this._isTerminal||this._resubscribable)&&(this._status="sentinel")}_onDepMessage(e,n){let r=this._deps[e],o=n[0];if(this._inspectorHooks!=null){let s={kind:"dep_message",depIndex:e,message:n};for(let a of this._inspectorHooks)a(s)}if(o!==je){if(o===X){this._depDirtied(r);return}if(o===Oe){if(this._depInvalidated(r),this._cached===void 0)return;this._emit(Dn);return}if(o===xe||o===Ae){this._emit([n]);return}if(o===ue){this._emit(Wt);return}if(o===D)this._depSettledAsData(r,n[1]);else if(o===U)this._depSettledAsResolved(r);else if(o===$)this._depSettledAsTerminal(r,!0);else if(o===P)this._depSettledAsTerminal(r,n[1]);else{this._emit([n]);return}if(!this._fn){(o===D||o===U)&&this._emit([n]),(o===$||o===P)&&this._maybeAutoTerminalAfterWave();return}}}_depDirtied(e){e.dirty||(e.dirty=!0,e.involvedThisWave=!0,this._dirtyDepCount++,this._status!=="dirty"&&this._emit(qt))}_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(Ln),this._maybeAutoTerminalAfterWave();return}this._fn&&this._execFn(),this._maybeAutoTerminalAfterWave()}}_maybeAutoTerminalAfterWave(){if(this._deps.length===0||this._isTerminal)return;let e=this._deps.find(n=>n.terminal!==void 0&&n.terminal!==!0);if(e!=null){this._autoError&&this._emit([[P,e.terminal]]);return}this._autoComplete&&this._deps.every(n=>n.terminal!==void 0)&&this._emit(In)}_execFn(){if(!this._fn||this._isTerminal&&!this._resubscribable)return;if(this._isExecutingFn){this._pendingRerun=!0;return}let e=this._cleanup;if(typeof e=="function"){this._cleanup=void 0;try{e()}catch(a){this._emit([[P,this._wrapFnError("cleanup threw",a)]]);return}}else if(e!=null&&typeof e=="object"){let a=e.beforeRun;if(typeof a=="function"){e.beforeRun=void 0;try{a()}catch(i){this._emit([[P,this._wrapFnError("cleanup.beforeRun threw",i)]]);return}}}let n=this._deps.map(a=>a.involvedThisWave?a.dataBatch.length>0?[...a.dataBatch]:[]:void 0),r=this._deps.map(a=>a.prevData);for(let a=0;a<this._deps.length;a++){let i=n[a];i!=null&&i.length>0&&(this._deps[a].prevData=i[i.length-1])}let o=this._deps.map(a=>a.terminal),s={prevData:r,terminalDeps:o,store:this._store};if(this._hasCalledFnOnce=!0,this._clearWaveFlags(),this._inspectorHooks!=null){let a={kind:"run",batchData:n,prevData:r};for(let i of this._inspectorHooks)i(a)}this._isExecutingFn=!0;try{let a=this._fn(n,this._actions,s);if(typeof a=="function")this._cleanup=a;else if(a!=null&&typeof a=="object"){let i=a;(typeof i.beforeRun=="function"||typeof i.deactivate=="function"||typeof i.invalidate=="function")&&(this._cleanup=a)}}catch(a){this._emit([[P,this._wrapFnError("fn threw",a)]])}finally{this._isExecutingFn=!1,this._pendingRerun?(this._pendingRerun=!1,this._rerunDepth+=1,this._rerunDepth>io?(this._rerunDepth=0,this._emit([[P,new Error(`Node "${this.name}": _pendingRerun depth exceeded ${io} \u2014 likely a reactive cycle`)]])):this._maybeRunFnOnSettlement()):this._rerunDepth=0,this._clearWaveFlags()}}_clearWaveFlags(){this._waveHasNewData=!1,this._hasNewTerminal=!1;for(let e of this._deps)e.involvedThisWave=!1,e.dataBatch.length=0}_wrapFnError(e,n){let r=n instanceof Error?n.message:String(n);return new Error(`Node "${this.name}": ${e}: ${r}`,{cause:n})}_frameBatch(e){let n=this._config.tierOf;if(e.length===1)return n(e[0][0])===3&&this._status!=="dirty"?[Je,e[0]]:e;let r=!0,o=!1,s=!1,a=-1;for(let d of e){let c=n(d[0]);c<a&&(r=!1),c===3&&(o=!0),d[0]===X&&(s=!0),a=c}let i=e;if(!r){let d=e.map((c,u)=>({m:c,i:u,tier:n(c[0])}));d.sort((c,u)=>c.tier-u.tier||c.i-u.i),i=d.map(c=>c.m)}if(o&&!s&&this._status!=="dirty"){let d=0;for(;d<i.length&&n(i[d][0])===0;)d++;return d===0?[Je,...i]:[...i.slice(0,d),Je,...i.slice(d)]}return i}_emit(e){if(e.length===0)return;for(let i=0;i<e.length;i++){let d=e[i];if(d[0]===P&&d[1]===void 0)throw new TypeError('[ERROR, payload] requires a non-undefined payload (spec \xA71.2). Pass an Error object or domain tag instead \u2014 e.g. node.down([[ERROR, new Error("reason")]])')}let n=e;if(this._isTerminal&&!this._resubscribable){let i=e.filter(d=>d[0]===ue||d[0]===Oe);if(i.length===0)return;n=i}n=this._frameBatch(n);let o=null;for(let i=0;i<n.length;i++){let d=n[i],c=d[0];if(c!==xe&&c!==Ae){o?.push(d);continue}if(d.length<2)throw new Error(`Node "${this.name}": [[${c===xe?"PAUSE":"RESUME"}]] must carry a lockId payload \u2014 bare PAUSE/RESUME is a protocol violation (C0 rule). Use \`[[PAUSE, lockId]]\` / \`[[RESUME, lockId]]\`.`);let u=!0;if(this._pausable!==!1){let l=d[1];if(c===xe)this._pauseLocks==null&&(this._pauseLocks=new Set),this._pauseLocks.add(l),this._paused=!0,this._pausable==="resumeAll"&&this._pauseBuffer==null&&(this._pauseBuffer=[]);else if(this._pauseLocks==null||!this._pauseLocks.has(l))u=!1;else if(this._pauseLocks.delete(l),this._pauseLocks.size===0){if(this._paused=!1,this._pauseBuffer!=null&&this._pauseBuffer.length>0){let p=this._pauseBuffer;this._pauseBuffer=[],this._emit(p)}this._pendingWave&&(this._pendingWave=!1,this._maybeRunFnOnSettlement())}}u?o?.push(d):o==null&&(o=n.slice(0,i))}if(o!=null){if(o.length===0)return;n=o}if(this._hasMeta&&n.some(i=>i[0]===ue))for(let i of Object.keys(this.meta))try{this.meta[i]._emit(Wt)}catch{}let{finalMessages:s,equalsError:a}=this._updateState(n);if(s.length>0&&this._config.inspectorEnabled){let i=this._config.globalInspector;if(i!=null)try{i({kind:"emit",node:this,messages:s})}catch{}}if(s.length>0)if(this._paused&&this._pausable==="resumeAll"&&this._pauseBuffer!=null){let i=this._config.tierOf,d=[];for(let c of s)i(c[0])===3?this._pauseBuffer.push(c):d.push(c);d.length>0&&this._dispatchOrAccumulate(d)}else this._dispatchOrAccumulate(s);a!=null&&this._emit([[P,a]])}_updateState(e){let n=this._config.tierOf,r,o,s=-1,a=0;for(let u of e)n(u[0])===3&&a++;let i=a<=1,d=-1;if(this._versioning!=null&&a>1){for(let u=e.length-1;u>=0;u--)if(e[u][0]===D){d=u;break}}for(let u=0;u<e.length;u++){let l=e[u],p=l[0];if(p===D){if(l.length>=2){let f=!1;if(i&&this._cached!==void 0)try{f=this._equals(this._cached,l[1])}catch(m){o=this._wrapFnError("equals threw",m),s=u;break}if(f){r==null&&(r=e.slice(0,u)),r.push(zt),this._status="resolved";continue}this._cached=l[1],this._versioning!=null&&(d<0||u===d)&&ro(this._versioning,l[1],this._hashFn)}this._status="settled",r?.push(l)}else if(r?.push(l),p===X)this._status="dirty";else if(p===U)this._status="resolved";else if(p===$){this._status="completed";{let f=this._config.rigorRecorder;if(f!=null)try{f.onTerminalTransition(this,"completed",this._autoComplete,this._autoError,this._deps.length>0)}catch{}}}else if(p===P){this._status="errored";{let f=this._config.rigorRecorder;if(f!=null)try{f.onTerminalTransition(this,"errored",this._autoComplete,this._autoError,this._deps.length>0)}catch{}}}else if(p===Oe){if(this._cached!==void 0){let m=this._config.rigorRecorder;if(m!=null)try{m.onNonVacuousInvalidate(this,this._cached)}catch{}}this._cached=void 0,this._status="dirty";let f=this._cleanup;if(typeof f=="function"){this._cleanup=void 0;try{f()}catch{}}else if(f!=null&&typeof f=="object"){let m=f.invalidate;if(typeof m=="function")try{m()}catch{}}}else p===ue&&(this._resetOnTeardown&&(this._cached=void 0),this._deactivate(!0),this._status="sentinel")}let c=s>=0?r??e.slice(0,s):r??e;return o!=null?{finalMessages:c,equalsError:o}:{finalMessages:c}}_deliverToSinks=e=>{if(this._sinks==null)return;if(typeof this._sinks=="function"){this._sinks(e);return}let n=[...this._sinks];for(let r of n)r(e)};_dispatchOrAccumulate(e){if(Jr()){this._batchPendingMessages===null&&(this._batchPendingMessages=[],dt(()=>this._flushBatchPending()));for(let n of e)this._batchPendingMessages.push(n);return}Kt(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);Kt(this._deliverToSinks,n,this._config.tierOf)}},co=t=>Array.isArray(t),Bn=t=>typeof t=="object"&&t!=null&&!Array.isArray(t)});function F(t,e){return te([],{...e,initial:t})}function oe(t,e){return te((r,o,s)=>t(o,s)??void 0,{describeKind:"producer",...e})}function A(t,e,n){return te(t,(o,s,a)=>{let i=o.map((d,c)=>d!=null&&d.length>0?d.at(-1):a.prevData[c]);s.emit(e(i,a))},{describeKind:"derived",...n})}function Re(t,e,n){return te(t,(o,s,a)=>{let i=o.map((d,c)=>d!=null&&d.length>0?d.at(-1):a.prevData[c]);return e(i,s,a)??void 0},{describeKind:"effect",...n})}var Q=me(()=>{"use strict";ve()});var go={};On(go,{NS_PER_MS:()=>lt,NS_PER_SEC:()=>pt,constant:()=>uo,decorrelatedJitter:()=>mo,exponential:()=>po,fibonacci:()=>fo,linear:()=>lo,resolveBackoffPreset:()=>Kn,withMaxAttempts:()=>ui});function Ye(t){return t<0?0:t}function di(t,e){return e==="none"?t:e==="full"?Math.random()*t:t/2+Math.random()*(t/2)}function ci(t,e){return t+Math.random()*(e-t)}function uo(t){let e=Ye(t);return()=>e}function lo(t,e){let n=Ye(t),r=e===void 0?n:Ye(e);return o=>n+r*Math.max(0,o)}function po(t){let e=Ye(t?.baseNs??1e8),n=t?.factor!==void 0&&t.factor<1?1:t?.factor??2,r=Ye(t?.maxDelayNs??30*1e9),o=t?.jitter??"none";return s=>{let a;if(e===0)a=0;else if(n===1)a=e;else{let i=r/e,d=1;for(let c=0;c<Math.max(0,s);c++){if(d>=i){d=i;break}d*=n}a=e*d,a>r&&(a=r)}return di(a,o)}}function fo(t=100*1e6,e=30*1e9){let n=Ye(t),r=Ye(e);function o(s){if(s<=0)return 1;let a=1,i=2;for(let d=1;d<s;d++){let c=a+i;a=i,i=c}return i}return s=>{let a=o(s)*n;return a<=r?a:r}}function mo(t=100*1e6,e=30*1e9){return(n,r,o)=>{let a=Math.min(e,(o??t)*3);return ci(t,a)}}function ui(t,e){return(n,r,o)=>n>=e?null:t(n,r,o)}function Kn(t){if(t==="constant")return uo(1*1e9);if(t==="linear")return lo(1*1e9);if(t==="exponential")return po();if(t==="fibonacci")return fo();if(t==="decorrelatedJitter")return mo();throw new Error(`Unknown backoff preset: "${String(t)}". Use one of: constant, linear, exponential, fibonacci, decorrelatedJitter`)}var lt,pt,zn=me(()=>{"use strict";lt=1e6,pt=1e9});function qn(t,e){if(e!=null&&e.length>0)return new Set(e);switch(t){case"standard":return new Set(["type","status","value","deps","meta","v"]);case"full":return null;case"spec":return new Set(["type","deps","meta","value"]);default:return new Set(["type","deps"])}}function li(t){return t._describeKind!=null?t._describeKind:t._deps.length>0?"derived":t._fn!=null?"producer":"state"}function ft(t){let e=new WeakSet,n={};for(let[r,o]of ho(t))n[r]=Un(o,e);return n}function Un(t,e){if(t==null)return t;let n=typeof t;if(n==="boolean"||n==="number"||n==="string")return t;if(n==="function")return"<function>";if(Array.isArray(t))return e.has(t)?"<cycle>":(e.add(t),t.map(r=>Un(r,e)));if(n==="object"){let r=t;if(e.has(r))return"<cycle>";e.add(r);try{if(typeof r.subscribe=="function"&&"cache"in r)return"<Node>"}catch{return"<unserializable>"}let o={};for(let[s,a]of ho(r))o[s]=Un(a,e);return o}return"<unserializable>"}function ho(t){let e=[],n;try{n=Object.keys(t)}catch{return e}for(let r of n)try{e.push([r,t[r]])}catch{e.push([r,"<unserializable>"])}return e}function ae(t,e){let n={factory:t};return e!==void 0&&(n.factoryArgs=e),n}function pi(t){let e={};for(let[n,r]of Object.entries(t.meta))try{e[n]=r.cache}catch{}return e}function Wn(t,e,n){let r=e==null,o=!r&&e!=null?[...e].filter(u=>u.startsWith("meta.")).map(u=>u.slice(5)):null,s=r||e.has("meta")||o!=null&&o.length>0,a="state",i=[];t instanceof le&&(a=li(t),i=t._deps.map(u=>u.node.name??""));let d={type:a,deps:i};(r||e.has("status"))&&(d.status=t.status);let c=t instanceof le?t._guard:void 0;if(s){let u={...pi(t)};if(c!=null&&u.access===void 0&&(u.access=Pn(c)),o!=null&&o.length>0&&!e.has("meta")){let l={};for(let p of o)p in u&&(l[p]=u[p]);d.meta=l}else d.meta=u}if(t.name!=null&&(d.name=t.name),(r||e.has("value"))&&(!n||a==="state")){t.status==="sentinel"&&(d.sentinel=!0);try{d.value=t.cache}catch{}}if((r||e.has("v"))&&t.v!=null){let u={id:t.v.id,version:t.v.version};"cid"in t.v&&(u.cid=t.v.cid,u.prev=t.v.prev),d.v=u}return(r||e.has("guard"))&&c!=null&&(d.guard=Pn(c)),(r||e.has("lastMutation"))&&t.lastMutation!=null&&(d.lastMutation=t.lastMutation),d}var Le=me(()=>{"use strict";ct();ve()});function De(t,e,n){return{[t]:!0,[`${t}_type`]:e,...n??{}}}var Qe=me(()=>{"use strict"});function yo(t,e,n){if(e.length===0)throw new RangeError("budgetGate requires at least one constraint");let r=e.map(f=>f.node),o=[t,...r],s=new Hn,a=!1,i=!1,d=Symbol("budget-gate"),c=new Array(e.length);function u(){return e.every((f,m)=>f.check(c[m]))}function l(f){for(;s.size>0&&u();){let m=s.shift();f.emit(m)}s.size===0&&i&&(i=!1,f.down([[U]]))}return te([],(f,m)=>{for(let g=0;g<e.length;g++)c[g]=e[g].node.cache;let h=[];for(let g=0;g<o.length;g++){let y=o[g];h.push(y.subscribe(T=>{for(let b of T)p(b,g,m)}))}return()=>{for(let g of h)g()}},{...n,describeKind:"derived",meta:De("resilience","budget_gate",n?.meta)});function p(f,m,h){let g=f[0];if(m===0){if(g===D)return u()&&s.size===0?h.emit(f[1]):(s.push(f[1]),a||(a=!0,h.up([[xe,d]]))),!0;if(g===X)return h.down([[X]]),!0;if(g===U)return s.size===0?h.down([[U]]):i=!0,!0;if(g===$||g===P){for(;s.size>0;)h.emit(s.shift());return i=!1,a&&(a=!1,h.up([[Ae,d]])),h.down([f]),!0}return!1}if(g===D&&(c[m-1]=f[1]),g===D||g===U){let y=u();return y&&s.size>0?(l(h),s.size===0&&a&&(a=!1,h.up([[Ae,d]]))):!y&&!a&&s.size>0&&(a=!0,h.up([[xe,d]])),!0}return g===X?!0:g===P?(h.down([f]),!0):g===$}}var Hn,bo=me(()=>{"use strict";se();ve();Qe();Hn=class{buf=[];head=0;get size(){return this.buf.length-this.head}push(e){this.buf.push(e)}shift(){if(this.head>=this.buf.length)return;let e=this.buf[this.head];return this.buf[this.head]=void 0,this.head++,this.head>32&&this.head*2>this.buf.length&&(this.buf=this.buf.slice(this.head),this.head=0),e}clear(){this.buf=[],this.head=0}}});var pe,Be=me(()=>{"use strict";pe=class{_timer;_gen=0;start(e,n){this.cancel(),this._gen+=1;let r=this._gen;this._timer=setTimeout(()=>{this._timer=void 0,r===this._gen&&n()},e)}cancel(){this._timer!==void 0&&(clearTimeout(this._timer),this._timer=void 0)}get pending(){return this._timer!==void 0}}});var Xe,Jn=me(()=>{"use strict";Xe=class{constructor(e){this.capacity=e;if(!Number.isInteger(e)||e<=0)throw new Error(`RingBuffer capacity must be a positive integer (got ${e})`);this.buf=new Array(e)}buf;head=0;_size=0;get size(){return this._size}get maxSize(){return this.capacity}push(e){let n=(this.head+this._size)%this.capacity;this.buf[n]=e,this._size<this.capacity?this._size++:this.head=(this.head+1)%this.capacity}shift(){if(this._size===0)return;let e=this.buf[this.head];return this.buf[this.head]=void 0,this.head=(this.head+1)%this.capacity,this._size--,e}at(e){if(this._size===0)return;let n=e<0?this._size+e:e;if(!(n<0||n>=this._size))return this.buf[(this.head+n)%this.capacity]}toArray(){let e=new Array(this._size);for(let n=0;n<this._size;n++)e[n]=this.buf[(this.head+n)%this.capacity];return e}clear(){for(let e=0;e<this._size;e++)this.buf[(this.head+e)%this.capacity]=void 0;this.head=0,this._size=0}}});function Ze(t){return{describeKind:"derived",...t}}function fi(t){return t<0?0:t}function Yn(t){return t[1]}function mi(t){if(typeof t!="number"||!Number.isFinite(t))throw new TypeError("backoff strategy must return a finite number");return t<0?0:t}function To(t){let e=t?.count,n=t?.backoff;if(n!==void 0&&e===void 0)throw new RangeError("retry({ backoff }) requires explicit count to prevent unbounded retries; pass { count: <n>, backoff: ... }");let r=e!==void 0?e:0;if(r<0)throw new RangeError("retry count must be >= 0");let o=n===void 0?null:typeof n=="string"?Kn(n):n;return{maxRetries:r,strategy:o}}function vo(t){let e={};return t?.count!==void 0&&(e.count=t.count),typeof t?.backoff=="string"&&(e.backoff=t.backoff),Object.keys(e).length>0?e:void 0}function wo(t,e,n){let r=0,o=!1,s=null,a,i=new pe;function d(){a?.(),a=void 0}function c(l){if(o)return;if(r>=t.maxRetries){d(),n.down([[P,l]]);return}let p=t.strategy===null?0:t.strategy(r,l,s);if(p==null){d(),n.down([[P,l]]);return}let f;try{f=mi(p)}catch{d(),n.down([[P,l]]);return}s=f,r+=1,d();let m=f>0?f/1e6:1;i.start(m,()=>{o||u()})}function u(){i.cancel(),d();let l;try{l=e()}catch(p){c(p);return}a=l.subscribe(p=>{if(!o)for(let f of p){let m=f[0];if(m===X)n.down([[X]]);else if(m===D)r=0,s=null,n.emit(f[1]);else if(m===U)n.down([[U]]);else if(m===$)d(),n.down([[$]]);else if(m===P){c(Yn(f));return}else n.down([f])}})}return u(),()=>{o=!0,i.cancel(),d()}}function Qn(t,e){return typeof t=="function"?hi(t,e):gi(t,e)}function gi(t,e){let n=To(e);return oe(r=>wo(n,()=>t,r),{...Ze(),initial:t.cache,meta:{...ae("retry",vo(e))}})}function hi(t,e){let n=To(e);return oe(r=>wo(n,t,r),{...Ze(),initial:e?.initial,meta:{...ae("retry",vo(e))}})}function St(t){let e=Math.max(1,t?.failureThreshold??5),n=fi(t?.cooldownNs??30*1e9),r=t?.cooldown??null,o=Math.max(1,t?.halfOpenMax??1),s=t?.now??z,a="closed",i=0,d=0,c=0,u=n,l=0;function p(){if(!r)return n;let h=r(d);return h!==null?h:n}function f(){a="open",u=p(),c=s(),l=0}return{canExecute(){return a==="closed"?!0:a==="open"?s()-c>=u?(a="half-open",l=1,!0):!1:l<o?(l++,!0):!1},recordSuccess(){a==="half-open"?(a="closed",i=0,d=0):a==="closed"&&(i=0)},recordFailure(h){if(a==="half-open"){d++,f();return}a==="closed"&&(i++,i>=e&&f())},get state(){return a},get failureCount(){return i},reset(){a="closed",i=0,d=0,l=0}}}function yi(t,e){let n=e?.onOpen??"skip";return r=>{let o=te([],(s,a)=>{function i(){o.meta.breakerState.down([[D,t.state]])}let d=r.subscribe(c=>{for(let u of c){let l=u[0];l===X?a.down([[X]]):l===D?t.canExecute()?(i(),a.emit(u[1])):(i(),n==="error"?a.down([[P,new ze]]):a.down([[U]])):l===U?a.down([[U]]):l===$?(t.recordSuccess(),i(),a.down([[$]])):l===P?(t.recordFailure(Yn(u)),i(),a.down([u])):a.down([u])}});return i(),d},{...Ze(),meta:{breakerState:t.state,...ae("withBreaker",{onOpen:n})},completeWhenDepsComplete:!1,initial:r.cache});return{node:o,breakerState:o.meta.breakerState}}}function Mt(t,e,n){if(t<=0)throw new RangeError("capacity must be > 0");if(e<0)throw new RangeError("refillPerSecond must be >= 0");let r=n?.clock??z,o=t,s=r();function a(i){if(e>0){let d=i-s;o=Math.min(t,o+d/1e9*e)}s=i}return{available(){return a(r()),o},tryConsume(i=1){if(i<=0)return!0;let d=r();return a(d),o>=i?(o-=i,!0):!1},putBack(i=1){i<=0||(a(r()),o=Math.min(t,o+i))}}}function bi(t,e){let{maxEvents:n,windowNs:r}=e;if(n<=0)throw new RangeError("maxEvents must be > 0");if(r<=0)throw new RangeError("windowNs must be > 0");let o=e.maxBuffer;if(o===void 0)throw new RangeError("rateLimiter requires explicit maxBuffer (use Infinity to opt in to unbounded)");let s=o===1/0;if(!s&&(!Number.isInteger(o)||o<1))throw new RangeError("maxBuffer must be a positive integer (or Infinity for unbounded)");let a=e.onOverflow??"drop-newest",i=n*1e9/r,d=oe(c=>{let u=Mt(n,i),l=s?vi():Ti(o),p=new pe,f=!1,m=0,h=1e9/i,g=d.meta.droppedCount;function y(){g.emit(m)}g.cache!==0&&y();function T(){for(;l.size>0;)if(u.tryConsume(1))c.emit(l.shift());else{p.start(Math.max(1,h/1e6),T);return}}function b(){m+=1,y()}function w(){for(f=!0,p.cancel();l.size>0;)l.shift();m=0}let k=t.subscribe(S=>{for(let v of S){if(f)return;let x=v[0];if(x===X)c.down([[X]]);else if(x===D){if(!s&&l.size>=o)if(a==="drop-newest")b();else if(a==="drop-oldest")l.shift(),l.push(v[1]),b();else{b(),w(),c.down([[P,new Yt(o)]]);return}else l.push(v[1]);T()}else if(x===U)c.down([[U]]);else if(x===$)w(),c.down([[$]]);else if(x===P)w(),c.down([v]);else if(x===ue){w(),c.down([v]);return}else c.down([v])}});return()=>{f=!0,p.cancel(),k()}},{...Ze(),initial:t.cache,meta:{droppedCount:0,...ae("rateLimiter",e)}});return{node:d,droppedCount:d.meta.droppedCount}}function Ti(t){let e=new Xe(t);return{push:n=>e.push(n),shift:()=>e.shift(),get size(){return e.size}}}function vi(){let t=[];return{push:e=>{t.push(e)},shift:()=>t.shift(),get size(){return t.length}}}function wi(t,e){let n=e?.initialStatus??"pending",r=te([],(o,s)=>{let a=n;return r.meta.status.down([[D,n]]),r.meta.error.down([[D,null]]),t.subscribe(d=>{for(let c of d){let u=c[0];if(u===X)s.down([[X]]);else if(u===D)a==="errored"?ne(()=>{r.meta.error.down([[D,null]]),r.meta.status.down([[D,"running"]])}):r.meta.status.down([[D,"running"]]),a="running",s.emit(c[1]);else if(u===U)s.down([[U]]);else if(u===$)r.meta.status.down([[D,"completed"]]),a="completed",s.down([[$]]);else if(u===P){let l=Yn(c);ne(()=>{r.meta.error.down([[D,l]]),r.meta.status.down([[D,"errored"]])}),a="errored",s.down([c])}else s.down([c])}})},{...Ze(),meta:{status:n,error:null,...ae("withStatus",{initialStatus:n})},completeWhenDepsComplete:!1,resubscribable:!0,initial:t.cache});return{node:r,status:r.meta.status,error:r.meta.error}}function ki(t){return t!=null&&typeof t=="object"&&"cache"in t&&typeof t.subscribe=="function"}function xi(t){return t!=null&&typeof t.then=="function"}function Ri(t){return t!=null&&typeof t=="object"&&typeof t[Symbol.asyncIterator]=="function"}function _i(t,e){return oe(n=>{let r,o;function s(){o?.(),o=void 0,ki(e)||xi(e)||Ri(e)?r=V(e).subscribe(i=>{n.down(i);for(let d of i){let c=d[0];if(c===$||c===P||c===ue){r=void 0;return}}}):(n.emit(e),n.down([[$]]))}return o=t.subscribe(a=>{for(let i of a){let d=i[0];if(d===X)n.down([[X]]);else if(d===D)n.emit(i[1]);else if(d===U)n.down([[U]]);else if(d===$)n.down([[$]]);else if(d===P){s();return}else if(d===ue){r?.(),n.down([i]);return}else n.down([i])}}),()=>{o?.(),r?.()}},{...Ze(),initial:t.cache,meta:{...ae("fallback")}})}function Ni(t,e){if(e<=0)throw new RangeError("timeoutNs must be > 0");return oe(n=>{let r=!1,o=new pe;function s(){let i=e/1e6;o.start(i,()=>{r||(r=!0,a(),n.down([[P,new Qt(e)]]))})}let a=t.subscribe(i=>{for(let d of i){if(r)return;let c=d[0];if(c===X)n.down([[X]]);else if(c===D)s(),n.emit(d[1]);else if(c===U)n.down([[U]]);else if(c===$){o.cancel(),r=!0,n.down([[$]]);return}else if(c===P){o.cancel(),r=!0,n.down([d]);return}else if(c===ue){o.cancel(),r=!0,n.down([d]);return}else n.down([d])}});return s(),()=>{r=!0,o.cancel(),a()}},{...Ze(),initial:t.cache,meta:{...ae("timeout",{timeoutNs:e})}})}var ze,Yt,Qt,ko=me(()=>{"use strict";bo();Ne();ge();se();Le();ve();Q();zn();Z();Be();Jn();ze=class extends Error{name="CircuitOpenError";constructor(){super("Circuit breaker is open")}};Yt=class extends Error{name="RateLimiterOverflowError";constructor(e){super(`rateLimiter buffer overflow (maxBuffer=${e})`)}};Qt=class extends Error{name="TimeoutError";constructor(e){super(`Timed out after ${e/1e6}ms`)}}});var xo={};On(xo,{CircuitOpenError:()=>ze,RateLimiterOverflowError:()=>Yt,TimeoutError:()=>Qt,budgetGate:()=>yo,circuitBreaker:()=>St,fallback:()=>_i,rateLimiter:()=>bi,retry:()=>Qn,timeout:()=>Ni,tokenBucket:()=>Mt,withBreaker:()=>yi,withStatus:()=>wi});var mt=me(()=>{"use strict";ko()});function Xt(t){return{describeKind:"producer",...t}}function Zt(t,e){let{signal:n,period:r,...o}=e??{};return oe(s=>{let a=!1,i=0,d,c,u=()=>{a=!0,d!==void 0&&clearTimeout(d),c!==void 0&&clearInterval(c),n?.removeEventListener("abort",p)},l=()=>{a||(r!=null?(s.emit(i++),c=setInterval(()=>{a||s.emit(i++)},r)):(a=!0,n?.removeEventListener("abort",p),s.emit(i++),s.down([[$]])))},p=()=>{a||(u(),s.down([[P,n.reason]]))};if(n?.aborted){p();return}return d=setTimeout(l,t),n?.addEventListener("abort",p,{once:!0}),u},Xt(o))}function No(t,e){return oe(n=>{let r=!1;try{for(let o of t){if(r)return;n.emit(o)}r||n.down([[$]])}catch(o){r||n.down([[P,o]])}return()=>{r=!0}},Xt(e))}function Si(t){return t!=null&&typeof t.then=="function"}function en(t,e){let{signal:n,...r}=e??{};return oe(o=>{let s=!1,a=()=>{s||(s=!0,o.down([[P,n.reason]]))};if(n?.aborted){a();return}return n?.addEventListener("abort",a,{once:!0}),Promise.resolve(t).then(i=>{s||(s=!0,n?.removeEventListener("abort",a),o.emit(i),o.down([[$]]))},i=>{s||(s=!0,n?.removeEventListener("abort",a),o.down([[P,i]]))}),()=>{s=!0,n?.removeEventListener("abort",a)}},Xt(r))}function Zn(t,e){let{signal:n,...r}=e??{};return oe(o=>{let s=new AbortController,a=()=>s.abort(n?.reason);n?.aborted?s.abort(n.reason):n?.addEventListener("abort",a,{once:!0});let i=n??s.signal,d=!1,c=t[Symbol.asyncIterator](),u=()=>{d||i.aborted||Promise.resolve(c.next()).then(l=>{if(!(d||i.aborted)){if(l.done){o.down([[$]]);return}o.emit(l.value),u()}},l=>{!d&&!i.aborted&&o.down([[P,l]])})};return u(),()=>{d=!0,n?.removeEventListener("abort",a),s.abort(),Promise.resolve(c.return?.()).catch(()=>{})}},Xt(r))}function Mi(t){return t!=null&&typeof t=="object"&&"cache"in t&&typeof t.subscribe=="function"}function V(t,e){if(Mi(t))return t;if(Si(t))return en(t,e);if(t!=null){let n=t;if(typeof n[Symbol.asyncIterator]=="function")return Zn(t,e);if(typeof n[Symbol.iterator]=="function")return No(t,e)}return Ei(t)}function Ei(...t){return No(t,void 0)}function Et(t,e,n){return te([t],(o,s)=>{let a=o[0];if(a!=null&&a.length>0)for(let i of a)e(i)},{describeKind:"effect",...n}).subscribe(()=>{})}function _e(t){return new Promise((e,n)=>{let r=!1,o=!1,s;s=t.subscribe(a=>{for(let i of a){if(r)return;if(i[0]===D){r=!0,e(i[1]),s?(s(),s=void 0):o=!0;return}if(i[0]===P){r=!0,n(i[1]),s?(s(),s=void 0):o=!0;return}if(i[0]===$){r=!0,n(new Error("completed without DATA")),s?(s(),s=void 0):o=!0;return}}}),o&&(s?.(),s=void 0)})}function Ro(t,e,n){return new Promise((r,o)=>{let s=!1,a=!1,i,d=n?.skipCurrent===!0;i=t.subscribe(c=>{for(let u of c){if(s)return;if(!(d&&u[0]===D)){if(u[0]===D){let l=u[1];if(e(l)){s=!0,r(l),i?(i(),i=void 0):a=!0;return}}if(u[0]===P){s=!0,o(u[1]),i?(i(),i=void 0):a=!0;return}if(u[0]===$){s=!0,o(new Error("completed without matching value")),i?(i(),i=void 0):a=!0;return}}}}),d=!1,a&&(i?.(),i=void 0)})}async function So(t,e){let n=e?.predicate??(s=>s!=null),r=e?.skipCurrent;if(e?.timeoutMs==null||e.timeoutMs<=0)return await Ro(t,n,{skipCurrent:r});if(Xn===void 0){let[s,a]=await Promise.all([Promise.resolve().then(()=>(mt(),xo)),Promise.resolve().then(()=>(zn(),go))]);Xn=s.timeout,_o=a.NS_PER_MS}let o=Xn(t,e.timeoutMs*_o);return await Ro(o,n,{skipCurrent:r})}function Mo(t,e){let n=new AbortController,r=e?.reason??new Error("cancelled via nodeSignal"),o,s=!1,a=()=>{o?(o(),o=void 0):s=!0};return o=t.subscribe(i=>{if(!n.signal.aborted)for(let d of i){if(d[0]===D&&d[1]===!0){n.abort(r),a();return}if(d[0]===P){n.abort(d[1]),a();return}if(d[0]===$){a();return}}}),s&&(o?.(),o=void 0),{signal:n.signal,dispose:()=>{o&&(o(),o=void 0)}}}function Y(t){return t.subscribe(()=>{})}var Xn,_o,Eo=me(()=>{"use strict";se();ve();Q()});var Z=me(()=>{"use strict";Eo()});var Od={};On(Od,{AgentLoopGraph:()=>_n,AllTiersExhaustedError:()=>Ct,BudgetExhaustedError:()=>pn,ChatStreamGraph:()=>xn,CircuitOpenError:()=>ze,DEFAULT_DECAY_RATE:()=>jr,FallbackMissError:()=>Ki,LLMTimeoutError:()=>yt,ReplayCacheMissError:()=>nt,ToolRegistryGraph:()=>Rn,admissionFilter3D:()=>ud,admissionScored:()=>xs,agentLoop:()=>ad,agentMemory:()=>hd,anthropicAdapter:()=>er,canonicalJson:()=>ir,cascadingLlmAdapter:()=>vr,chatStream:()=>Dr,composePricing:()=>ca,computePrice:()=>fr,contentGate:()=>rd,costMeterExtractor:()=>Qa,createAdapter:()=>ra,createCapabilitiesRegistry:()=>ai,createPricingRegistry:()=>aa,dryRunAdapter:()=>et,fallbackAdapter:()=>ar,frozenContext:()=>Na,gatedStream:()=>Ha,gaugesAsContext:()=>yd,googleAdapter:()=>dr,graphFromSpec:()=>Ks,graphFromSpecReactive:()=>Rd,handoff:()=>dd,keywordFlagExtractor:()=>Za,knobsAsTools:()=>Nd,llmConsolidator:()=>Fr,llmExtractor:()=>Gr,memoryRetrieval:()=>zr,memoryWithKG:()=>Vr,memoryWithTiers:()=>Kr,memoryWithVectors:()=>Br,observableAdapter:()=>sa,openAICompatAdapter:()=>ur,parseRateLimitFromError:()=>yr,pricingFor:()=>ua,promptNode:()=>Rr,redactor:()=>od,registryPricing:()=>da,resilientAdapter:()=>ka,streamExtractor:()=>ed,streamingPromptNode:()=>Wa,suggestStrategy:()=>zs,suggestStrategyReactive:()=>Md,systemPromptBuilder:()=>Ja,tier:()=>va,toolCallExtractor:()=>nd,toolExecution:()=>Ir,toolRegistry:()=>Pr,toolSelector:()=>cd,validateGraphDef:()=>Ed,withBreaker:()=>mr,withBudgetGate:()=>hr,withDryRun:()=>pa,withRateLimiter:()=>Tr,withReplayCache:()=>Ot,withRetry:()=>wr,withTimeout:()=>kr,zeroPrice:()=>ln});module.exports=Ys(Od);Q();Ne();ge();se();Q();var Vn=class{_version=0;_store=new Map;_maxSize;_defaultTtl;constructor(e={}){let{maxSize:n,defaultTtl:r}=e;if(n!==void 0&&n<1)throw new RangeError("maxSize must be >= 1");if(r!==void 0&&r<=0)throw new RangeError("defaultTtl must be positive");this._maxSize=n,this._defaultTtl=r}get version(){return this._version}get size(){return this._store.size}has(e){let n=this._store.get(e);return n===void 0?!1:this._isExpired(n)?(this._store.delete(e),this._version+=1,!1):(this._touchLru(e,n),!0)}get(e){let n=this._store.get(e);if(n!==void 0){if(this._isExpired(n)){this._store.delete(e),this._version+=1;return}return this._touchLru(e,n),n.value}}set(e,n,r){let o=this._resolveExpiresAt(r);this._store.has(e)&&this._store.delete(e),this._store.set(e,{value:n,expiresAt:o}),this._evictLruWhileOver(),this._version+=1}setMany(e,n){let r=this._resolveExpiresAt(n),o=0;try{for(let[s,a]of e)this._store.has(s)&&this._store.delete(s),this._store.set(s,{value:a,expiresAt:r}),o+=1}finally{o>0&&(this._evictLruWhileOver(),this._version+=1)}}delete(e){let n=this._store.delete(e);return n&&(this._version+=1),n}deleteMany(e){let n=0;try{for(let r of e)this._store.delete(r)&&(n+=1)}finally{n>0&&(this._version+=1)}return n}clear(){let e=this._store.size;return e===0?0:(this._store.clear(),this._version+=1,e)}pruneExpired(){let e=z(),n=0;for(let[r,o]of this._store)this._isExpired(o,e)&&(this._store.delete(r),n+=1);return n>0&&(this._version+=1),n}toMap(){let e=z(),n=new Map;for(let[r,o]of this._store)this._isExpired(o,e)||n.set(r,o.value);return n}_resolveExpiresAt(e){let n=e??this._defaultTtl;if(n!==void 0){if(!Number.isFinite(n)||n<=0)throw new RangeError(`MapBackend: ttl must be a positive finite number (got ${n})`);return z()+n*1e9}}_isExpired(e,n){return e.expiresAt===void 0?!1:(n??z())>=e.expiresAt}_touchLru(e,n){this._store.delete(e),this._store.set(e,n)}_evictLruWhileOver(){if(this._maxSize!==void 0)for(;this._store.size>this._maxSize;){let e=this._store.keys().next().value;if(e===void 0)break;this._store.delete(e)}}};function Pe(t={}){let{name:e,maxSize:n,defaultTtl:r,versioning:o,backend:s,retention:a}=t;if(a&&n!==void 0)throw new RangeError("reactiveMap: `maxSize` (LRU) and `retention` (score-based) are mutually exclusive. Pick one eviction policy.");if(a&&a.archiveThreshold===void 0&&a.maxSize===void 0)throw new RangeError("reactiveMap: `retention` requires at least one of `archiveThreshold` or `maxSize` to trigger archival.");let i=s??new Vn({maxSize:n,defaultTtl:r}),d=F(i.toMap(),{name:e,describeKind:"state",equals:(p,f)=>p===f,...o!=null?{versioning:o}:{}});function c(){let p=i.toMap();ne(()=>{d.down([[X]]),d.down([[D,p]])})}function u(){if(!a)return;let p=i.toMap(),f=a.archiveThreshold,m=a.maxSize,h=[];for(let[y,T]of p)h.push({key:y,value:T,score:a.score(y,T)});h.sort((y,T)=>y.score-T.score);let g=new Set;if(f!==void 0)for(let y of h)if(y.score<f)g.add(y.key);else break;if(m!==void 0&&h.length-g.size>m)for(let y of h){if(h.length-g.size<=m)break;g.has(y.key)||g.add(y.key)}if(g.size!==0)for(let y of h)g.has(y.key)&&(a.onArchive?.(y.key,y.value,y.score),i.delete(y.key))}function l(p,f="mutation"){let m=i.version;try{return p()}finally{i.version!==m&&(f==="mutation"&&u(),c())}}return{entries:d,has(p){return l(()=>i.has(p),"read")},get(p){return l(()=>i.get(p),"read")},set(p,f,m){l(()=>i.set(p,f,m?.ttl))},setMany(p,f){l(()=>i.setMany(p,f?.ttl))},delete(p){l(()=>i.delete(p))},deleteMany(p){l(()=>i.deleteMany(p))},clear(){l(()=>i.clear())},pruneExpired(){l(()=>i.pruneExpired())},get size(){return i.size},dispose(){}}}function Nt(t,e){return`${t}::${e}`}function ai(t){let e=Pe({name:"capabilitiesRegistry"}),n=c=>{e.set(Nt(c.provider,c.id),c)};if(t)for(let c of t)n(c);let r=(c,u)=>{let l=e.get(Nt(c,u));if(l)return l;let p=e.entries.cache;if(!p)return;let f;for(let[,m]of p){if(m.provider!==c)continue;let h=m.id;u.startsWith(h)&&(!f||h.length>f.id.length)&&(f=m)}return f},o=128,s=new Map,a=new Map,i=(c,u,l,p)=>{for(c.has(u)&&c.delete(u),c.set(u,l);c.size>p;){let f=c.keys().next().value;if(f===void 0)break;c.delete(f)}},d=A([e.entries],([c])=>Array.from(c.values()),{name:"capabilitiesRegistry/entries",initial:[]});return{register:n,lookup:r,remove(c,u){let l=e.has(Nt(c,u));return l&&e.delete(Nt(c,u)),l},entries(){let c=e.entries.cache;return(function*(){if(c)for(let u of c.values())yield u})()},lookupNode(c,u){let l=Nt(c,u),p=s.get(l);if(p)return s.delete(l),s.set(l,p),p;let f=A([e.entries],()=>r(c,u),{name:`capabilitiesRegistry/lookup/${c}::${u}`,initial:void 0});return i(s,l,f,o),f},entriesNode:d,byProvider(c){let u=a.get(c);if(u)return a.delete(c),a.set(c,u),u;let l=A([d],([p])=>p.filter(f=>f.provider===c),{name:`capabilitiesRegistry/byProvider/${c}`,initial:[]});return i(a,c,l,o),l}}}ge();se();Le();ve();Q();Z();function tn(t){return{describeKind:"derived",...t}}function Oi(t){return{describeKind:"derived",partial:!0,...t}}function Oo(t,e,n){return te([t],(r,o)=>{let s=r[0];if(s==null||s.length===0){o.down([[U]]);return}let a=!1;for(let i of s)e(i)&&(o.emit(i),a=!0);a||o.down([[U]])},{...tn(n),meta:{...ae("filter"),...n?.meta??{}}})}function Ao(t,e,n){let r=n?.where??(s=>s!=null),o=!1;return te([t],(s,a)=>{let i=s[0];if(i==null||i.length===0){a.down([[U]]);return}for(let d of i)!o&&r(d)&&(o=!0,e(d)),a.emit(d)},tn(n))}function Co(t,e,n){return te([t,e],(r,o,s)=>{let a=r[0],i=r[1],d=i!=null&&i.length>0?i.at(-1):s.prevData[1];if(a!=null&&a.length>0){if(!(i!=null&&i.length>0)&&s.prevData[1]===void 0){o.down([[U]]);return}for(let c of a)o.emit([c,d])}else o.down([[U]])},{...Oi(n),meta:{...ae("withLatestFrom"),...n?.meta??{}}})}function Ai(t,e,n){let r,o=!1,s=()=>{o||(o=!0,n())};return r=t.subscribe(a=>{let i=!1,d=!1;for(let c of a)c[0]!==je&&(c[0]===D?e.emit(c[1]):c[0]===$?i=!0:c[0]===P?(d=!0,e.down([c])):(c[0]===X||c[0]===U)&&e.down([c]));d?(r?.(),r=void 0,s()):i&&s()}),()=>{r?.(),r=void 0}}function he(t,e,n){let r,o=!1;function s(){r?.(),r=void 0}return te([t],(a,i,d)=>{if(d.terminalDeps[0]!=null&&d.terminalDeps[0]!==!0){s();return}if(d.terminalDeps[0]===!0){o=!0,r||i.down([[$]]);return}let c=a[0];if(!(c==null||c.length===0))return s(),r=Ai(V(e(c[c.length-1])),i,()=>{s(),o&&i.down([[$]])}),{deactivate:()=>{s(),o=!1}}},{...tn(n),completeWhenDepsComplete:!1,meta:{...ae("switchMap"),...n?.meta??{}}})}function Lo(t,e,n){return oe(r=>{let o=t.subscribe(s=>{for(let a of s)if(a[0]===D)r.emit(a[1]);else if(a[0]===P)try{r.emit(e(a[1]))}catch(i){r.down([[P,i]])}else a[0]===$&&r.down([[$]])});return()=>{o()}},tn(n))}async function*gt(t,e){let n=e?.parse??(k=>k),r=e?.signal,o=new TextDecoder,s="",a="message",i=[],d,c,u=[],l=()=>{if(i.length===0&&a==="message"&&d===void 0){i=[];return}let k=i.join(`
|
|
2
|
+
`);u.push({event:a,data:n(k),id:d,retry:c}),a="message",i=[],d=void 0,c=void 0},p=k=>{if(k===""){l();return}if(k.startsWith(":"))return;let S=k.indexOf(":"),v=S<0?k:k.slice(0,S),x=S<0?"":k.slice(S+1);switch(x.startsWith(" ")&&(x=x.slice(1)),v){case"event":a=x;break;case"data":i.push(x);break;case"id":x.includes("\0")||(d=x);break;case"retry":{let R=Number(x);Number.isFinite(R)&&(c=R);break}}},f=(k,S)=>{s+=o.decode(k,{stream:!S});let v=s.split(/\r?\n/);s=v.pop()??"";for(let x of v)p(x)},m=t,h=t instanceof ReadableStream?t:m&&typeof m=="object"&&m.body instanceof ReadableStream?m.body:null,g,y,T=!1,b=()=>{T||(T=!0,g&&g.cancel().catch(()=>{}),y&&typeof y.return=="function"&&Promise.resolve(y.return()).catch(()=>{}))},w=()=>{b()};if(r){if(r.aborted)return;r.addEventListener("abort",w,{once:!0})}try{if(h){for(g=h.getReader();!r?.aborted;){let{value:k,done:S}=await g.read();if(S)break;for(f(k,!1);u.length>0;)yield u.shift()}f(new Uint8Array,!0)}else{for(y=t[Symbol.asyncIterator]();!r?.aborted;){let S=await y.next();if(S.done)break;for(f(S.value,!1);u.length>0;)yield u.shift()}f(new Uint8Array,!0)}if(s.trim()){for(let k of s.split(/\r?\n/))p(k);l()}for(;u.length>0;)yield u.shift()}finally{r&&r.removeEventListener("abort",w),b()}}async function Ve(t,e){let n;try{n=await t.text()}catch{n=""}let r=e??"HTTP",o=new Error(`${r} API ${t.status}: ${t.statusText}${n?` \u2014 ${n}`:""}`);return o.status=t.status,o.headers=t.headers,o}function er(t={}){return t.sdk?Pi(t):Ii(t)}function nn(t,e,n,r){let o=e?.model??n;if(!o)throw new Error("anthropicAdapter: model must be set via options.model or invokeOpts.model");let{system:s,chat:a}=Ci(t,e?.systemPrompt),i={model:o,messages:a.map(Li),max_tokens:e?.maxTokens??4096};return s&&(i.system=s),e?.temperature!=null&&(i.temperature=e.temperature),e?.tools&&e.tools.length>0&&(i.tools=e.tools.map(Di)),e?.maxReasoningTokens!=null&&(i.thinking={type:"enabled",budget_tokens:e.maxReasoningTokens}),e?.cacheHint,r&&(i.stream=!0),e?.providerExtras&&Object.assign(i,e.providerExtras),i}function Ci(t,e){let n=[];e&&n.push(e);let r=[];for(let o of t)o.role==="system"?n.push(o.content):r.push(o);return{system:n.length>0?n.join(`
|
|
3
3
|
|
|
4
|
-
`):void 0,chat:r}}function mi(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 gi(t){return{name:t.name,description:t.description,input_schema:t.parameters}}function zt(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 Fn(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 co(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:Fn(t.usage),finishReason:t.stop_reason,latencyMs:e,model:t.model,provider:"anthropic"}}function hi(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 u=Ut(i,a,t.model,!1),d=B(),c=await o(`${n}/v1/messages`,{method:"POST",headers:s(),body:JSON.stringify(u),signal:a?.signal});if(!c.ok)throw await Pe(c,"Anthropic");let l=await c.json(),p=Math.max(0,(B()-d)/1e6);return co(l,p)},async*stream(i,a){let u=Ut(i,a,t.model,!0),d=await o(`${n}/v1/messages`,{method:"POST",headers:{...s(),accept:"text/event-stream"},body:JSON.stringify(u),signal:a?.signal});if(!d.ok)throw await Pe(d,"Anthropic");if(!d.body)throw new Error("anthropicAdapter: streaming response has no body");let c,l,p=new Map;for await(let f of it(d.body,{signal:a?.signal})){let m=f.data;if(!m)continue;let y;try{y=JSON.parse(m)}catch{continue}switch(y.type){case"message_start":{c=zt(c,y.message.usage);break}case"content_block_start":{let g=y,h=g.content_block;h.type==="tool_use"&&(p.set(g.index,{id:String(h.id??""),name:String(h.name??""),argBuf:""}),yield{type:"tool-call-delta",delta:{id:String(h.id??""),name:String(h.name??"")}});break}case"content_block_delta":{let g=y,h=g.delta;if(h.type==="text_delta"&&typeof h.text=="string")yield{type:"token",delta:h.text};else if(h.type==="input_json_delta"&&typeof h.partial_json=="string"){let b=p.get(g.index);b&&(b.argBuf+=h.partial_json),yield{type:"tool-call-delta",delta:{argumentsDelta:h.partial_json}}}else h.type==="thinking_delta"&&typeof h.thinking=="string"&&(yield{type:"thinking",delta:h.thinking});break}case"message_delta":{let g=y;g.delta.stop_reason&&(l=g.delta.stop_reason),g.delta.usage&&(c=zt(c,g.delta.usage));break}case"message_stop":break}}c&&(yield{type:"usage",usage:Fn(c)}),yield{type:"finish",reason:l??"stop"}}}}function yi(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=Ut(n,r,t.model,!1),s=B(),i=await e.messages.create(o,{signal:r?.signal}),a=Math.max(0,(B()-s)/1e6);return co(i,a)},async*stream(n,r){if(!e.messages.stream)throw new Error("sdkBackedAnthropic: SDK instance does not expose .messages.stream");let o=Ut(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=zt(s,a.message.usage);break;case"content_block_delta":{let u=a.delta;u?.type==="text_delta"&&typeof u.text=="string"?yield{type:"token",delta:u.text}:u?.type==="input_json_delta"&&typeof u.partial_json=="string"?yield{type:"tool-call-delta",delta:{argumentsDelta:u.partial_json}}:u?.type==="thinking_delta"&&typeof u.thinking=="string"&&(yield{type:"thinking",delta:u.thinking});break}case"message_delta":{let u=a;u.delta.stop_reason&&(i=u.delta.stop_reason),u.delta.usage&&(s=zt(s,u.delta.usage));break}}s&&(yield{type:"usage",usage:Fn(s)}),yield{type:"finish",reason:i??"stop"}}}}Ie();function Ht(){let t=new Error("aborted");return t.name="AbortError",t}function lo(t,e){return t<=0?Promise.resolve():e?.aborted?Promise.reject(Ht()):new Promise((n,r)=>{let o=new se,s,i=()=>{o.cancel(),e&&s&&e.removeEventListener("abort",s)};o.start(t,()=>{i(),n()}),e&&(s=()=>{i(),r(Ht())},e.addEventListener("abort",s,{once:!0}))})}function We(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 u=[...a].reverse().find(d=>d.role==="user");return u?`echo: ${u.content}`:"dry-run: no user message"}),i=t.usage??((a,u)=>{let d=a.reduce((c,l)=>c+l.content.length,0);return{input:{regular:Math.ceil(d/4)},output:{regular:Math.ceil(u.length/4)}}});return{provider:e,model:n,async invoke(a,u){if(await lo(r,u?.signal),u?.signal?.aborted)throw Ht();let d=s(a,u),c=i(a,d);return{content:d,usage:c,finishReason:"stop",model:u?.model??n,provider:e,tier:u?.tier,metadata:{dryRun:!0}}},async*stream(a,u){let d=s(a,u),c=i(a,d),l=Math.ceil(d.length/o)||1,p=r>0?r/l:0;for(let f=0;f<d.length;f+=o){if(u?.signal?.aborted)throw Ht();await lo(p,u?.signal),yield{type:"token",delta:d.slice(f,f+o)}}yield{type:"usage",usage:c},yield{type:"finish",reason:"stop"}}}}fe();async function Wt(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+=po[r[s]];return o}var po=new Array(256);for(let t=0;t<256;t++)po[t]=t.toString(16).padStart(2,"0");function $n(t){if(t===null||typeof t!="object")return t;if(Array.isArray(t))return t.map($n);let e=t,n=Object.keys(e).sort(),r={};for(let o of n)r[o]=$n(e[o]);return r}function fo(t){return JSON.stringify($n(t),void 0,0)}var bi=new TextEncoder,Ti=new TextDecoder("utf-8",{fatal:!0}),vi={name:"json",version:1,encode(t){return bi.encode(fo(t))},decode(t){return JSON.parse(Ti.decode(t))}};function wi(){let t=new Map;return{name:"memory",read(e){let n=t.get(e);return n===void 0?void 0:new Uint8Array(n)},write(e,n){t.set(e,new Uint8Array(n))},delete(e){t.delete(e)},list(e){let n=[...t.keys()];return e?n.filter(r=>r.startsWith(e)).sort():n.sort()}}}function ki(t,e={}){let n=e.codec??vi,r=e.name??t.name??"kv",o=e.compactEvery,s=new Map,i=0,a={name:r,debounceMs:e.debounceMs,compactEvery:o,filter:e.filter,save(d,c){if(!(e.filter&&!e.filter(d,c))&&(s.set(d,c),i+=1,o!==void 0&&i%o===0||!e.debounceMs))return u()},load(d){let c=t.read(d);if(c!==void 0)return c instanceof Uint8Array?c.length===0?void 0:n.decode(c):Promise.resolve(c).then(l=>l===void 0||l.length===0?void 0:n.decode(l))},delete(d){if(s.delete(d),!!t.delete)return t.delete(d)},list(d){return t.list?t.list(d):[]},async flush(){await u()},async rollback(){s=new Map}};function u(){if(s.size===0)return;let d=s;s=new Map;let c=[];for(let[l,p]of d){let f=n.encode(p),m=t.write(l,f);m instanceof Promise&&c.push(m)}if(c.length>0)return Promise.all(c).then(()=>{})}return a}function jn(t){return ki(wi(),t)}fe();var Bn=class extends Error{constructor(n,r){super(`content-addressed lookup miss in read-strict mode: ${n}`);this.key=n;this.context=r;this.name="ContentAddressedMissError"}};function Vn(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))}function mo(t){let{storage:e,keyContext:n,keyPrefix:r,mode:o="read-write"}=t,s=n??(a=>a);async function i(a){let u=Vn(s(a)),d=await Wt(u);return r?`${r}:${d}`:d}return{keyFor:i,async lookup(a){if(o==="write")return;let u=await i(a),d=await e.load(u);if(d===void 0){if(o==="read-strict")throw new Bn(u,a);return}return d},async store(a,u){if(o==="read")return;let d=await i(a);await e.save(d,u)},async forget(a){if(o==="read"||o==="write"||!e.delete)return;let u=await i(a);await e.delete(u)}}}Q();function go(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),u;a!=null&&typeof a.then=="function"?u=Promise.resolve(a):a!=null&&typeof a=="object"&&"subscribe"in a&&"cache"in a?u=we(a):a!=null&&typeof a=="object"&&Symbol.asyncIterator in a?u=(async()=>{let l=a[Symbol.asyncIterator]();try{let{value:p,done:f}=await l.next();if(f)throw new Error("singleFromAny: factory returned empty async iterable");return p}finally{await l.return?.()}})():a!=null&&typeof a=="object"&&Symbol.iterator in a?u=(async()=>{let l=a[Symbol.iterator]();try{let{value:p,done:f}=l.next();if(f)throw new Error("singleFromAny: factory returned empty iterable");return p}finally{l.return?.()}})():u=Promise.resolve(a);let d,c=()=>{r.get(s)===d&&r.delete(s)};return d=u.then(l=>(c(),l),l=>{throw c(),l}),r.set(s,d),d}}Q();Ie();function ho(t){let{storage:e,mode:n="read-write",keyFn:r,keyPrefix:o="llm-replay"}=t,i=mo({storage:e,keyPrefix:o,mode:n==="read-strict"?"read":n,keyContext:({messages:u,opts:d})=>{let{signal:c,keyContext:l,...p}=d??{};return{messages:u,opts:p}}});async function a(u,d){if(r){if(r.length<=1){let l={messages:u,opts:d,context:d?.keyContext},p=await r(l);return`${o}:${p}`}let c=await r(u,d);return`${o}:${c}`}return i.keyFor({messages:u,opts:d})}return{keyFor:a,async lookup(u,d){if(n!=="write"){if(r){let c=await a(u,d),l=await e.load(c);return l===void 0?void 0:l}return i.lookup({messages:u,opts:d})}},async store(u,d,c){if(n!=="read"){if(r){let l=await a(u,d);await e.save(l,c);return}await i.store({messages:u,opts:d},c)}},async forget(u,d){if(!(n==="read"||n==="write")&&e.delete){if(r){let c=await a(u,d);await e.delete(c);return}await i.forget({messages:u,opts:d})}}}}fe();re();q();Q();function ge(t,e,n){return{provider:n?.provider??t.provider,model:n?.model??t.model,capabilities:n?.capabilities??t.capabilities?.bind(t),invoke:e.invoke,stream:e.stream}}function qt(t,e){let{onResp:n,onError:r,name:o}=e;if(t!=null&&typeof t.then=="function"){let d=t;return r?d.then(n).catch(c=>{throw r(c),c}):d.then(n)}if(t!=null&&typeof t=="object"&&"content"in t)return n(t);let s=G(t);if(r){let d=!1;s.subscribe(c=>{for(let l of c){if(d)return;l[0]===C&&(d=!0,r(l[1]))}})}let i,a=!1,u=io(s,d=>{i=n(d),a=!0});return O([u],([d])=>d==null?null:a?i:n(d),{name:o??"adapt/invokeTap"})}function qe(t){let e=t.endNs??B();return{timestamp:e,wallClock:t.startWallClockNs??ue(),provider:t.provider,model:t.model,tier:t.tier,usage:t.usage,latencyMs:Math.max(0,(e-t.startNs)/1e6),method:t.method,...t.error?{error:t.error}:{}}}function Ce(){return{input:{regular:0},output:{regular:0}}}var yo=Symbol.for("graphrefly.adapter.middlewareLayers");function me(t,e,n){let o=[...n?xi(n):[],e];return Object.defineProperty(t,yo,{value:Object.freeze(o),enumerable:!1,writable:!1,configurable:!1}),t}function xi(t){let e=t[yo];return Array.isArray(e)?e:[]}var Je=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 vt(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=n==="read"||n==="read-strict",u=ho({storage:e.storage,mode:n==="write-only"?"write":n,keyFn:e.keyFn,keyPrefix:i}),d=p=>p<=0?Promise.resolve():new Promise(f=>{new se().start(p,()=>f())}),c=go(async({messages:p,invokeOpts:f})=>await we(G(t.invoke(p,f))),{keyFn:({_precomputedKey:p})=>p}),l=ge(t,{async invoke(p,f){let m=await u.keyFor(p,f),y=await u.lookup(p,f);if(y?.response){let h=y.response;return{...h,metadata:{...h.metadata??{},replayCache:"hit"}}}if(n==="read-strict")throw new Je(m,"invoke");let g=await c({messages:p,invokeOpts:f,_precomputedKey:m});return a||await u.store(p,f,{response:g,storedAtNs:ue()}),g},async*stream(p,f){if(!r){for await(let w of t.stream(p,f))yield w;return}let m=await u.keyFor(p,f),y=await u.lookup(p,f);if(y){let w=y.response;if(y.streamChunks&&y.streamCadenceMs)for(let T=0;T<y.streamChunks.length;T++){let R=y.streamCadenceMs[T]??0,N=s>0?R/s:0;N>0&&await d(N),yield{type:"token",delta:y.streamChunks[T]?.delta??""}}else w.content&&(yield{type:"token",delta:w.content});w.usage&&(yield{type:"usage",usage:w.usage}),yield{type:"finish",reason:w.finishReason??"stop"};return}if(n==="read-strict")throw new Je(m,"stream");let g="",h,b,v=[],x=[],k;for await(let w of t.stream(p,f)){if(w.type==="token"&&(g+=w.delta,o)){let T=B(),R=k===void 0?0:(T-k)/1e6;x.push(R),k=T,v.push({delta:w.delta})}w.type==="usage"&&(h=w.usage),w.type==="finish"&&(b=w.reason),yield w}if((g||h)&&!a){let T={response:{content:g,usage:h??{input:{regular:0},output:{regular:0}},finishReason:b,model:t.model??f?.model??"",provider:t.provider},storedAtNs:ue(),...o?{streamChunks:v,streamCadenceMs:x}:{}};await u.store(p,f,T)}}});return me(l,"withReplayCache",t),l}var Kn=Vn;var Ri=Je;function bo(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 To(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 Si(t,e){if("key"in t)return t.key;let n=Kn({messages:t.messages,opts:t.invokeOpts??{}}),r=await Wt(n);return`${e}:${r}`}function _i(t){let e={response:t.response,storedAtNs:ue()};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 Ni(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=jn(),o=t.fixtures,s=(async()=>{for(let i of o){let a=await Si(i,e);await r.save(a,_i(i))}})();return s.catch(()=>{}),{tier:r,seedReady:s}}return t.fixturesStorage?{tier:t.fixturesStorage,seedReady:Promise.resolve()}:{tier:void 0,seedReady:Promise.resolve()}}function Un(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"?We({provider:e,model:n,respond:()=>"[unreachable: read-strict mode throws on miss]"}):{provider:e,model:n,async invoke(c,l){let p=t.respond?t.respond(c,l):bo(e,n);return To(p,e,n)},async*stream(c,l){let p=t.respond?t.respond(c,l):bo(e,n),f=To(p,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 c=Ni(t,o);i=c.tier??jn(),a=c.seedReady}let u=t.record?"read-write":r==="throw"?"read-strict":"read",d=vt(s,{storage:i,mode:u,keyPrefix:o,cacheStreaming:!0,captureStreamCadence:!0,replaySpeed:t.replaySpeed,...t.keyFn?{keyFn:t.keyFn}:{}});return{provider:e,model:n,capabilities:d.capabilities?.bind(d),async invoke(c,l){return await a,d.invoke(c,l)},async*stream(c,l){await a;for await(let p of d.stream(c,l))yield p}}}fe();function zn(t={}){return t.sdk?Ai(t):Oi(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 u of i.toolCalls)a.push({functionCall:{name:u.name,args:u.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(`
|
|
4
|
+
`):void 0,chat:r}}function Li(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 Di(t){return{name:t.name,description:t.description,input_schema:t.parameters}}function rn(t,e){if(!t)return{...e};let n={...t};return e.input_tokens!=null&&(n.input_tokens=e.input_tokens),e.output_tokens!=null&&(n.output_tokens=e.output_tokens),e.cache_read_input_tokens!=null&&(n.cache_read_input_tokens=e.cache_read_input_tokens),e.cache_creation_input_tokens!=null&&(n.cache_creation_input_tokens=e.cache_creation_input_tokens),e.cache_creation&&(n.cache_creation={...t.cache_creation??{},...e.cache_creation}),e.server_tool_use&&(n.server_tool_use={...t.server_tool_use??{},...e.server_tool_use}),n}function tr(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 Do(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:tr(t.usage),finishReason:t.stop_reason,latencyMs:e,model:t.model,provider:"anthropic"}}function Ii(t){let e=t.apiKey??globalThis.process?.env?.ANTHROPIC_API_KEY,n=t.baseURL??"https://api.anthropic.com",r=t.anthropicVersion??"2023-06-01",o=t.fetchImpl??fetch,s=()=>{if(!e)throw new Error("anthropicAdapter: apiKey required for invoke/stream (or provide opts.sdk)");return{"x-api-key":e,"anthropic-version":r,"content-type":"application/json",...t.headers??{}}};return{provider:"anthropic",model:t.model,async invoke(a,i){let d=nn(a,i,t.model,!1),c=z(),u=await o(`${n}/v1/messages`,{method:"POST",headers:s(),body:JSON.stringify(d),signal:i?.signal});if(!u.ok)throw await Ve(u,"Anthropic");let l=await u.json(),p=Math.max(0,(z()-c)/1e6);return Do(l,p)},async*stream(a,i){let d=nn(a,i,t.model,!0),c=await o(`${n}/v1/messages`,{method:"POST",headers:{...s(),accept:"text/event-stream"},body:JSON.stringify(d),signal:i?.signal});if(!c.ok)throw await Ve(c,"Anthropic");if(!c.body)throw new Error("anthropicAdapter: streaming response has no body");let u,l,p=new Map;for await(let f of gt(c.body,{signal:i?.signal})){let m=f.data;if(!m)continue;let h;try{h=JSON.parse(m)}catch{continue}switch(h.type){case"message_start":{u=rn(u,h.message.usage);break}case"content_block_start":{let g=h,y=g.content_block;y.type==="tool_use"&&(p.set(g.index,{id:String(y.id??""),name:String(y.name??""),argBuf:""}),yield{type:"tool-call-delta",delta:{id:String(y.id??""),name:String(y.name??"")}});break}case"content_block_delta":{let g=h,y=g.delta;if(y.type==="text_delta"&&typeof y.text=="string")yield{type:"token",delta:y.text};else if(y.type==="input_json_delta"&&typeof y.partial_json=="string"){let T=p.get(g.index);T&&(T.argBuf+=y.partial_json),yield{type:"tool-call-delta",delta:{argumentsDelta:y.partial_json}}}else y.type==="thinking_delta"&&typeof y.thinking=="string"&&(yield{type:"thinking",delta:y.thinking});break}case"message_delta":{let g=h;g.delta.stop_reason&&(l=g.delta.stop_reason),g.delta.usage&&(u=rn(u,g.delta.usage));break}case"message_stop":break}}u&&(yield{type:"usage",usage:tr(u)}),yield{type:"finish",reason:l??"stop"}}}}function Pi(t){let e=t.sdk;if(!e)throw new Error("sdkBackedAnthropic: sdk instance required");return{provider:"anthropic",model:t.model,async invoke(n,r){let o=nn(n,r,t.model,!1),s=z(),a=await e.messages.create(o,{signal:r?.signal}),i=Math.max(0,(z()-s)/1e6);return Do(a,i)},async*stream(n,r){if(!e.messages.stream)throw new Error("sdkBackedAnthropic: SDK instance does not expose .messages.stream");let o=nn(n,r,t.model,!0),s,a;for await(let i of e.messages.stream(o,{signal:r?.signal}))switch(i.type){case"message_start":s=rn(s,i.message.usage);break;case"content_block_delta":{let d=i.delta;d?.type==="text_delta"&&typeof d.text=="string"?yield{type:"token",delta:d.text}:d?.type==="input_json_delta"&&typeof d.partial_json=="string"?yield{type:"tool-call-delta",delta:{argumentsDelta:d.partial_json}}:d?.type==="thinking_delta"&&typeof d.thinking=="string"&&(yield{type:"thinking",delta:d.thinking});break}case"message_delta":{let d=i;d.delta.stop_reason&&(a=d.delta.stop_reason),d.delta.usage&&(s=rn(s,d.delta.usage));break}}s&&(yield{type:"usage",usage:tr(s)}),yield{type:"finish",reason:a??"stop"}}}}Be();function on(){let t=new Error("aborted");return t.name="AbortError",t}function Io(t,e){return t<=0?Promise.resolve():e?.aborted?Promise.reject(on()):new Promise((n,r)=>{let o=new pe,s,a=()=>{o.cancel(),e&&s&&e.removeEventListener("abort",s)};o.start(t,()=>{a(),n()}),e&&(s=()=>{a(),r(on())},e.addEventListener("abort",s,{once:!0}))})}function et(t={}){let e=t.provider??"dry-run",n=t.model??"dry-run-v1",r=t.latencyMs??0,o=Math.max(1,t.streamChunkSize??16),s=t.respond??(i=>{let d=[...i].reverse().find(c=>c.role==="user");return d?`echo: ${d.content}`:"dry-run: no user message"}),a=t.usage??((i,d)=>{let c=i.reduce((u,l)=>u+l.content.length,0);return{input:{regular:Math.ceil(c/4)},output:{regular:Math.ceil(d.length/4)}}});return{provider:e,model:n,async invoke(i,d){if(await Io(r,d?.signal),d?.signal?.aborted)throw on();let c=s(i,d),u=a(i,c);return{content:c,usage:u,finishReason:"stop",model:d?.model??n,provider:e,tier:d?.tier,metadata:{dryRun:!0}}},async*stream(i,d){let c=s(i,d),u=a(i,c),l=Math.ceil(c.length/o)||1,p=r>0?r/l:0;for(let f=0;f<c.length;f+=o){if(d?.signal?.aborted)throw on();await Io(p,d?.signal),yield{type:"token",delta:c.slice(f,f+o)}}yield{type:"usage",usage:u},yield{type:"finish",reason:"stop"}}}}ge();async function sn(t){let e=typeof t=="string"?new TextEncoder().encode(t):t,n=await globalThis.crypto.subtle.digest("SHA-256",e),r=new Uint8Array(n),o="";for(let s=0;s<r.length;s++)o+=Po[r[s]];return o}var Po=new Array(256);for(let t=0;t<256;t++)Po[t]=t.toString(16).padStart(2,"0");function nr(t){if(t===null||typeof t!="object")return t;if(Array.isArray(t))return t.map(nr);let e=t,n=Object.keys(e).sort(),r={};for(let o of n)r[o]=nr(e[o]);return r}function Go(t){return JSON.stringify(nr(t),void 0,0)}var Gi=new TextEncoder,Fi=new TextDecoder("utf-8",{fatal:!0}),$i={name:"json",version:1,encode(t){return Gi.encode(Go(t))},decode(t){return JSON.parse(Fi.decode(t))}};function ji(){let t=new Map;return{name:"memory",read(e){let n=t.get(e);return n===void 0?void 0:new Uint8Array(n)},write(e,n){t.set(e,new Uint8Array(n))},delete(e){t.delete(e)},list(e){let n=[...t.keys()];return e?n.filter(r=>r.startsWith(e)).sort():n.sort()}}}function Bi(t,e={}){let n=e.codec??$i,r=e.name??t.name??"kv",o=e.compactEvery,s=new Map,a=0,i={name:r,debounceMs:e.debounceMs,compactEvery:o,filter:e.filter,save(c,u){if(!(e.filter&&!e.filter(c,u))&&(s.set(c,u),a+=1,o!==void 0&&a%o===0||!e.debounceMs))return d()},load(c){let u=t.read(c);if(u!==void 0)return u instanceof Uint8Array?u.length===0?void 0:n.decode(u):Promise.resolve(u).then(l=>l===void 0||l.length===0?void 0:n.decode(l))},delete(c){if(s.delete(c),!!t.delete)return t.delete(c)},list(c){return t.list?t.list(c):[]},async flush(){await d()},async rollback(){s=new Map}};function d(){if(s.size===0)return;let c=s;s=new Map;let u=[];for(let[l,p]of c){let f=n.encode(p),m=t.write(l,f);m instanceof Promise&&u.push(m)}if(u.length>0)return Promise.all(u).then(()=>{})}return i}function rr(t){return Bi(ji(),t)}ge();var or=class extends Error{constructor(n,r){super(`content-addressed lookup miss in read-strict mode: ${n}`);this.key=n;this.context=r;this.name="ContentAddressedMissError"}};function sr(t){let e=new Set,n=r=>{if(r===null||typeof r!="object")return r;let o=r;if(e.has(o))return{__cycle:!0};e.add(o);try{if(Array.isArray(r))return r.map(n);let s={};for(let a of Object.keys(r).sort())s[a]=n(r[a]);return s}finally{e.delete(o)}};return JSON.stringify(n(t))}function Fo(t){let{storage:e,keyContext:n,keyPrefix:r,mode:o="read-write"}=t,s=n??(i=>i);async function a(i){let d=sr(s(i)),c=await sn(d);return r?`${r}:${c}`:c}return{keyFor:a,async lookup(i){if(o==="write")return;let d=await a(i),c=await e.load(d);if(c===void 0){if(o==="read-strict")throw new or(d,i);return}return c},async store(i,d){if(o==="read")return;let c=await a(i);await e.save(c,d)},async forget(i){if(o==="read"||o==="write"||!e.delete)return;let d=await a(i);await e.delete(d)}}}Z();function $o(t,e={}){let n=e.keyFn??(o=>String(o)),r=new Map;return o=>{let s=n(o),a=r.get(s);if(a)return a;let i=t(o),d;i!=null&&typeof i.then=="function"?d=Promise.resolve(i):i!=null&&typeof i=="object"&&"subscribe"in i&&"cache"in i?d=_e(i):i!=null&&typeof i=="object"&&Symbol.asyncIterator in i?d=(async()=>{let l=i[Symbol.asyncIterator]();try{let{value:p,done:f}=await l.next();if(f)throw new Error("singleFromAny: factory returned empty async iterable");return p}finally{await l.return?.()}})():i!=null&&typeof i=="object"&&Symbol.iterator in i?d=(async()=>{let l=i[Symbol.iterator]();try{let{value:p,done:f}=l.next();if(f)throw new Error("singleFromAny: factory returned empty iterable");return p}finally{l.return?.()}})():d=Promise.resolve(i);let c,u=()=>{r.get(s)===c&&r.delete(s)};return c=d.then(l=>(u(),l),l=>{throw u(),l}),r.set(s,c),c}}Z();Be();function jo(t){let{storage:e,mode:n="read-write",keyFn:r,keyPrefix:o="llm-replay"}=t,a=Fo({storage:e,keyPrefix:o,mode:n==="read-strict"?"read":n,keyContext:({messages:d,opts:c})=>{let{signal:u,keyContext:l,...p}=c??{};return{messages:d,opts:p}}});async function i(d,c){if(r){if(r.length<=1){let l={messages:d,opts:c,context:c?.keyContext},p=await r(l);return`${o}:${p}`}let u=await r(d,c);return`${o}:${u}`}return a.keyFor({messages:d,opts:c})}return{keyFor:i,async lookup(d,c){if(n!=="write"){if(r){let u=await i(d,c),l=await e.load(u);return l===void 0?void 0:l}return a.lookup({messages:d,opts:c})}},async store(d,c,u){if(n!=="read"){if(r){let l=await i(d,c);await e.save(l,u);return}await a.store({messages:d,opts:c},u)}},async forget(d,c){if(!(n==="read"||n==="write")&&e.delete){if(r){let u=await i(d,c);await e.delete(u);return}await a.forget({messages:d,opts:c})}}}}ge();se();Q();Z();function Te(t,e,n){return{provider:n?.provider??t.provider,model:n?.model??t.model,capabilities:n?.capabilities??t.capabilities?.bind(t),invoke:e.invoke,stream:e.stream}}function an(t,e){let{onResp:n,onError:r,name:o}=e;if(t!=null&&typeof t.then=="function"){let c=t;return r?c.then(n).catch(u=>{throw r(u),u}):c.then(n)}if(t!=null&&typeof t=="object"&&"content"in t)return n(t);let s=V(t);if(r){let c=!1;s.subscribe(u=>{for(let l of u){if(c)return;l[0]===P&&(c=!0,r(l[1]))}})}let a,i=!1,d=Ao(s,c=>{a=n(c),i=!0});return A([d],([c])=>c==null?null:i?a:n(c),{name:o??"adapt/invokeTap"})}function tt(t){let e=t.endNs??z();return{timestamp:e,wallClock:t.startWallClockNs??ie(),provider:t.provider,model:t.model,tier:t.tier,usage:t.usage,latencyMs:Math.max(0,(e-t.startNs)/1e6),method:t.method,...t.error?{error:t.error}:{}}}function Fe(){return{input:{regular:0},output:{regular:0}}}var Bo=Symbol.for("graphrefly.adapter.middlewareLayers");function be(t,e,n){let o=[...n?Vi(n):[],e];return Object.defineProperty(t,Bo,{value:Object.freeze(o),enumerable:!1,writable:!1,configurable:!1}),t}function Vi(t){let e=t[Bo];return Array.isArray(e)?e:[]}var nt=class extends Error{constructor(n,r){super(`withReplayCache: no cached response for ${r} (key=${n}, mode=read-strict)`);this.key=n;this.method=r}name="ReplayCacheMissError"};function Ot(t,e){let n=e.mode??"read-write",r=e.cacheStreaming??!1,o=e.captureStreamCadence??!1,s=e.replaySpeed??1,a=e.keyPrefix??"llm-replay",i=n==="read"||n==="read-strict",d=jo({storage:e.storage,mode:n==="write-only"?"write":n,keyFn:e.keyFn,keyPrefix:a}),c=p=>p<=0?Promise.resolve():new Promise(f=>{new pe().start(p,()=>f())}),u=$o(async({messages:p,invokeOpts:f})=>await _e(V(t.invoke(p,f))),{keyFn:({_precomputedKey:p})=>p}),l=Te(t,{async invoke(p,f){let m=await d.keyFor(p,f),h=await d.lookup(p,f);if(h?.response){let y=h.response;return{...y,metadata:{...y.metadata??{},replayCache:"hit"}}}if(n==="read-strict")throw new nt(m,"invoke");let g=await u({messages:p,invokeOpts:f,_precomputedKey:m});return i||await d.store(p,f,{response:g,storedAtNs:ie()}),g},async*stream(p,f){if(!r){for await(let S of t.stream(p,f))yield S;return}let m=await d.keyFor(p,f),h=await d.lookup(p,f);if(h){let S=h.response;if(h.streamChunks&&h.streamCadenceMs)for(let v=0;v<h.streamChunks.length;v++){let x=h.streamCadenceMs[v]??0,R=s>0?x/s:0;R>0&&await c(R),yield{type:"token",delta:h.streamChunks[v]?.delta??""}}else S.content&&(yield{type:"token",delta:S.content});S.usage&&(yield{type:"usage",usage:S.usage}),yield{type:"finish",reason:S.finishReason??"stop"};return}if(n==="read-strict")throw new nt(m,"stream");let g="",y,T,b=[],w=[],k;for await(let S of t.stream(p,f)){if(S.type==="token"&&(g+=S.delta,o)){let v=z(),x=k===void 0?0:(v-k)/1e6;w.push(x),k=v,b.push({delta:S.delta})}S.type==="usage"&&(y=S.usage),S.type==="finish"&&(T=S.reason),yield S}if((g||y)&&!i){let v={response:{content:g,usage:y??{input:{regular:0},output:{regular:0}},finishReason:T,model:t.model??f?.model??"",provider:t.provider},storedAtNs:ie(),...o?{streamChunks:b,streamCadenceMs:w}:{}};await d.store(p,f,v)}}});return be(l,"withReplayCache",t),l}var ir=sr;var Ki=nt;function Vo(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 Ko(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 zi(t,e){if("key"in t)return t.key;let n=ir({messages:t.messages,opts:t.invokeOpts??{}}),r=await sn(n);return`${e}:${r}`}function Ui(t){let e={response:t.response,storedAtNs:ie()};if("key"in t&&t.stream){let n=t.stream.chunks.filter(r=>r.type==="token");return{...e,streamChunks:n.map(r=>({delta:r.delta})),streamCadenceMs:t.stream.delaysMs??n.map(()=>0)}}return e}function qi(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=rr(),o=t.fixtures,s=(async()=>{for(let a of o){let i=await zi(a,e);await r.save(i,Ui(a))}})();return s.catch(()=>{}),{tier:r,seedReady:s}}return t.fixturesStorage?{tier:t.fixturesStorage,seedReady:Promise.resolve()}:{tier:void 0,seedReady:Promise.resolve()}}function ar(t={}){let e=t.provider??"fallback",n=t.model??"fallback",r=t.onMiss??"respond",o=t.keyPrefix??"fallback",s=t.record?t.record.adapter:r==="throw"?et({provider:e,model:n,respond:()=>"[unreachable: read-strict mode throws on miss]"}):{provider:e,model:n,async invoke(u,l){let p=t.respond?t.respond(u,l):Vo(e,n);return Ko(p,e,n)},async*stream(u,l){let p=t.respond?t.respond(u,l):Vo(e,n),f=Ko(p,e,n);yield{type:"token",delta:f.content},f.usage&&(yield{type:"usage",usage:f.usage}),yield{type:"finish",reason:f.finishReason??"stop"}}},a,i=Promise.resolve();if(t.record){if(!t.record.storage)throw new TypeError("fallbackAdapter: `record.storage` is required in record mode. For filesystem `record.dir` convenience, use the node subpath's `fallbackAdapter`.");a=t.record.storage}else{let u=qi(t,o);a=u.tier??rr(),i=u.seedReady}let d=t.record?"read-write":r==="throw"?"read-strict":"read",c=Ot(s,{storage:a,mode:d,keyPrefix:o,cacheStreaming:!0,captureStreamCadence:!0,replaySpeed:t.replaySpeed,...t.keyFn?{keyFn:t.keyFn}:{}});return{provider:e,model:n,capabilities:c.capabilities?.bind(c),async invoke(u,l){return await i,c.invoke(u,l)},async*stream(u,l){await i;for await(let p of c.stream(u,l))yield p}}}ge();function dr(t={}){return t.sdk?Yi(t):Ji(t)}function dn(t,e){let n=[],r=[];e?.systemPrompt&&n.push(e.systemPrompt);for(let a of t){if(a.role==="system"){n.push(a.content);continue}if(a.role==="tool"){r.push({role:"user",parts:[{functionResponse:{name:a.name??a.toolCallId??"tool",response:{result:a.content}}}]});continue}if(a.role==="assistant"&&a.toolCalls&&a.toolCalls.length>0){let i=[];a.content&&i.push({text:a.content});for(let d of a.toolCalls)i.push({functionCall:{name:d.name,args:d.arguments}});r.push({role:"model",parts:i});continue}r.push({role:a.role==="assistant"?"model":"user",parts:[{text:a.content}]})}let o={contents:r};n.length>0&&(o.systemInstruction={role:"system",parts:[{text:n.join(`
|
|
5
5
|
|
|
6
|
-
`)}]});let s={};return e?.maxTokens!=null&&(s.maxOutputTokens=e.maxTokens),e?.temperature!=null&&(s.temperature=e.temperature),e?.maxReasoningTokens!=null&&(s.thinkingConfig={thinkingBudget:e.maxReasoningTokens}),Object.keys(s).length>0&&(o.generationConfig=s),e?.tools&&e.tools.length>0&&(o.tools=[{functionDeclarations:e.tools.map(Mi)}]),e?.providerExtras&&Object.assign(o,e.providerExtras),o}function Mi(t){return{name:t.name,description:t.description,parameters:t.parameters}}function vo(t,e,n){let r={},o=t.generationConfig;o&&(typeof o.maxOutputTokens=="number"&&(r.maxOutputTokens=o.maxOutputTokens),typeof o.temperature=="number"&&(r.temperature=o.temperature),o.thinkingConfig&&(r.thinkingConfig=o.thinkingConfig)),t.systemInstruction&&(r.systemInstruction=t.systemInstruction),t.tools&&(r.tools=t.tools);for(let[s,i]of Object.entries(t))s==="contents"||s==="generationConfig"||s==="systemInstruction"||s==="tools"||s==="abortSignal"||s==="model"||(r[s]=i);return n&&(r.abortSignal=n),{model:e,contents:t.contents,config:Object.keys(r).length>0?r:void 0}}function Hn(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 wo(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:Hn(t.usageMetadata),finishReason:n?.finishReason,latencyMs:e,model:t.modelVersion,provider:"google"}}function Ei(t){if(t.apiKey)return t.apiKey;let e=globalThis.process?.env;return e?.GOOGLE_API_KEY??e?.GEMINI_API_KEY}function Oi(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=Ei(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),u=Jt(s,i),d=B(),c=`${e}/models/${encodeURIComponent(a)}:generateContent?${o()}`,l=await n(c,{method:"POST",headers:{"content-type":"application/json",...t.headers??{}},body:JSON.stringify(u),signal:i?.signal});if(!l.ok)throw await Pe(l,"Google");let p=await l.json(),f=Math.max(0,(B()-d)/1e6);return wo(p,f)},async*stream(s,i){let a=r(i),u=Jt(s,i),d=`${e}/models/${encodeURIComponent(a)}:streamGenerateContent?alt=sse&${o()}`,c=await n(d,{method:"POST",headers:{"content-type":"application/json",accept:"text/event-stream",...t.headers??{}},body:JSON.stringify(u),signal:i?.signal});if(!c.ok)throw await Pe(c,"Google");if(!c.body)throw new Error("googleAdapter: streaming response has no body");let l,p;for await(let f of it(c.body,{signal:i?.signal})){if(!f.data)continue;let m;try{m=JSON.parse(f.data)}catch{continue}let y=m.candidates?.[0];for(let g of y?.content?.parts??[])typeof g.text=="string"&&(g.thought?yield{type:"thinking",delta:g.text}:yield{type:"token",delta:g.text}),g.functionCall&&(yield{type:"tool-call-delta",delta:{name:g.functionCall.name,argumentsDelta:JSON.stringify(g.functionCall.args??{})}});y?.finishReason&&(p=y.finishReason),m.usageMetadata&&(l=m.usageMetadata)}l&&(yield{type:"usage",usage:Hn(l)}),yield{type:"finish",reason:p??"stop"}}}}function Ai(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=vo(o,s,r?.signal),a=B(),u=await e.models.generateContent(i),d=Math.max(0,(B()-a)/1e6);return wo(u,d)},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=vo(o,s,r?.signal),a,u,d=await e.models.generateContentStream(i);for await(let c of d){let l=c.candidates?.[0];for(let p of l?.content?.parts??[])typeof p.text=="string"&&(p.thought?yield{type:"thinking",delta:p.text}:yield{type:"token",delta:p.text}),p.functionCall&&(yield{type:"tool-call-delta",delta:{name:p.functionCall.name,argumentsDelta:JSON.stringify(p.functionCall.args??{})}});l?.finishReason&&(u=l.finishReason),c.usageMetadata&&(a=c.usageMetadata)}a&&(yield{type:"usage",usage:Hn(a)}),yield{type:"finish",reason:u??"stop"}}}}fe();var Ci={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 Wn(t={}){return t.sdk?Gi(t):Pi(t)}function Yt(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(Li);e?.systemPrompt&&!t.some(u=>u.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(Di)),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 Li(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 Di(t){return{type:"function",function:{name:t.name,description:t.description,parameters:t.parameters}}}function qn(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 ko(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:Ii(a.function.arguments)}));return{content:s,toolCalls:i.length>0?i:void 0,usage:qn(t.usage),finishReason:r?.finish_reason,latencyMs:e,model:t.model,provider:n}}function Ii(t){try{let e=JSON.parse(t);return typeof e=="object"&&e!=null?e:{_raw:t}}catch{return{_raw:t}}}function xo(t){let e=t.preset??"openai",n=Ci[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 Pi(t){let{provider:e,baseURL:n,apiKey:r}=xo(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,u){let d=Yt(a,u,t.model,!1,t.bodyExtras),c=B(),l=await o(`${n}/chat/completions`,{method:"POST",headers:i(),body:JSON.stringify(d),signal:u?.signal});if(!l.ok)throw await Pe(l,e);let p=await l.json(),f=Math.max(0,(B()-c)/1e6);return ko(p,f,e)},async*stream(a,u){let d=Yt(a,u,t.model,!0,t.bodyExtras),c=await o(`${n}/chat/completions`,{method:"POST",headers:{...i(),accept:"text/event-stream"},body:JSON.stringify(d),signal:u?.signal});if(!c.ok)throw await Pe(c,e);if(!c.body)throw new Error(`openAICompatAdapter[${e}]: streaming response has no body`);let l,p;for await(let f of it(c.body,{signal:u?.signal})){if(!f.data||f.data==="[DONE]")continue;let m;try{m=JSON.parse(f.data)}catch{continue}let y=m.choices;if(y){let g=y[0];if(g?.delta?.content&&(yield{type:"token",delta:g.delta.content}),g?.delta?.reasoning_content&&(yield{type:"thinking",delta:g.delta.reasoning_content}),g?.delta?.tool_calls)for(let h of g.delta.tool_calls)yield{type:"tool-call-delta",delta:{id:h.id,name:h.function?.name,argumentsDelta:h.function?.arguments}};g?.finish_reason&&(p=g.finish_reason)}m.usage&&(l=m.usage,yield{type:"usage",usage:qn(l)})}yield{type:"finish",reason:p??"stop"}}}}function Gi(t){let e=t.sdk;if(!e)throw new Error("sdkBackedOpenAI: sdk instance required");let{provider:n}=xo(t);return{provider:n,model:t.model,async invoke(r,o){let s=Yt(r,o,t.model,!1,t.bodyExtras),i=B(),a=await e.chat.completions.create(s,{signal:o?.signal}),u=Math.max(0,(B()-i)/1e6);return ko(a,u,n)},async*stream(r,o){let s=Yt(r,o,t.model,!0,t.bodyExtras),i=await e.chat.completions.create(s,{signal:o?.signal}),a,u;for await(let d of i){let c=d.choices;if(c){let p=c[0];if(p?.delta?.content&&(yield{type:"token",delta:p.delta.content}),p?.delta?.reasoning_content&&(yield{type:"thinking",delta:p.delta.reasoning_content}),p?.delta?.tool_calls)for(let f of p.delta.tool_calls)yield{type:"tool-call-delta",delta:{id:f.id,name:f.function?.name,argumentsDelta:f.function?.arguments}};p?.finish_reason&&(u=p.finish_reason)}let l=d.usage;l&&(a=l,yield{type:"usage",usage:qn(l)})}yield{type:"finish",reason:u??"stop"}}}}function Fi(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 Gn(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 zn(e)}case"dry-run":{let e={model:t.model,...t.extras};return We(e)}case"fallback":{let e={provider:t.provider,model:t.model,...t.extras};return Un(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 Wn(e)}default:{let e=t.provider;throw new Error(`createAdapter: unknown provider: ${String(e)}`)}}}fe();q();xe();re();Re();q();var Jn=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}snapshot(){return this.toArray()}restore(e){if(this._maxSize===void 0){this._buf.length=0;for(let n=0;n<e.length;n++)this._buf.push(e[n]);this._size=this._buf.length}else{let n=this._maxSize;for(let s=0;s<n;s++)this._buf[s]=void 0;this._head=0;let r=Math.min(e.length,n),o=e.length-r;for(let s=0;s<r;s++)this._buf[s]=e[o+s];this._size=r}this._version+=1}_rawAppend(e){if(this._maxSize===void 0){this._buf.push(e),this._size=this._buf.length;return}this._size<this._maxSize?(this._buf[(this._head+this._size)%this._maxSize]=e,this._size+=1):(this._buf[this._head]=e,this._head=(this._head+1)%this._maxSize)}};function wt(t){return t.subscribe(()=>{})}var $i=64;function Le(t,e={}){let{name:n,maxSize:r,versioning:o,guard:s,backend:i}=e,a=i??new Jn(t,r),u=I(a.toArray(),{name:n,describeKind:"state",equals:(T,R)=>T===R,...o!=null?{versioning:o}:{},...s!=null?{guard:s}:{}});function d(){let T=a.toArray();ee(()=>{u.down([[J]],{internal:!0}),u.down([[L,T]],{internal:!0})})}let c=new Map,l=new Map,p=new Map;function f(T,R){return`${T}:${R===void 0?"END":R}`}function m(T){if(T.size<$i)return;let R=T.keys().next();if(R.done)return;let N=T.get(R.value);N!==void 0&&N.dispose(),T.delete(R.value)}function y(T){let R=a.version;try{return T()}finally{a.version!==R&&d()}}function g(T){if(!Number.isInteger(T)||T<0)throw new RangeError(`tail: n must be a non-negative integer (got ${T})`);let R=c.get(T);if(R!==void 0)return c.delete(T),c.set(T,R),R.node;m(c);let N=O([u],([S])=>{let E=S;return T===0||E.length===0?[]:E.slice(Math.max(0,E.length-T))},{initial:a.tail(T),describeKind:"derived"}),_=wt(N);return c.set(T,{node:N,dispose:_}),N}function h(T,R){if(!Number.isInteger(T)||T<0)throw new RangeError(`slice: start must be a non-negative integer (got ${T})`);if(R!==void 0&&(!Number.isInteger(R)||R<0))throw new RangeError(`slice: stop must be a non-negative integer or undefined (got ${R})`);let N=f(T,R),_=l.get(N);if(_!==void 0)return l.delete(N),l.set(N,_),_.node;m(l);let S=O([u],([M])=>{let A=M;return R===void 0?A.slice(T):A.slice(T,R)},{initial:a.slice(T,R),describeKind:"derived"}),E=wt(S);return l.set(N,{node:S,dispose:E}),S}function b(T){let R=p.get(T);if(R!==void 0)return R.node;let N=O([u,T],([S,E])=>{let M=S,A=Math.max(0,Math.trunc(E??0));return M.slice(A)},{initial:[],describeKind:"derived"}),_=wt(N);return p.set(T,{node:N,dispose:_}),N}let v,x;function k(){v===void 0&&(v=te([u],(T,R,N)=>{let _=T[0],E=_!=null&&_.length>0?_.at(-1):N.prevData[0];if(E==null||E.length===0){R.down([[V]]);return}R.emit(E[E.length-1])},{name:n!=null?`${n}::lastValue`:"lastValue",describeKind:"derived",initial:a.size===0?void 0:a.at(a.size-1)}),x=O([u],([T])=>T.length>0,{name:n!=null?`${n}::hasLatest`:"hasLatest",describeKind:"derived",initial:a.size>0}),wt(v),wt(x))}let w={entries:u,get size(){return a.size},at(T){return a.at(T)},append(T){y(()=>a.append(T))},appendMany(T){T.length!==0&&y(()=>a.appendMany(T))},clear(){y(()=>a.clear())},trimHead(T){y(()=>a.trimHead(T))},withLatest(){return k(),u},get lastValue(){return k(),v},get hasLatest(){return k(),x},view(T){switch(T.kind){case"tail":return g(T.n);case"slice":return h(T.start,T.stop);case"fromCursor":return b(T.cursor)}},attach(T){let R=T.subscribe(N=>{for(let _ of N)_[0]===L&&w.append(_[1])});return()=>R()},attachStorage(T){if(T.length===0)return()=>{};let R=new Map;for(let _ of T)R.set(_,a.size);(async()=>{for(let _ of T)if(typeof _.loadEntries=="function")try{let S=await Promise.resolve(_.loadEntries());S.entries.length>0&&a.size===0&&(a.restore(S.entries),R.set(_,S.entries.length),d());break}catch{}})();let N=u.subscribe(_=>{for(let S of _){if(S[0]!==L)continue;let E=S[1];for(let M of T){let A=R.get(M)??0;if(E.length<A){try{let K=M.appendEntries(E);K instanceof Promise&&K.catch(()=>{})}catch{}R.set(M,E.length);continue}if(E.length===A)continue;let j=E.slice(A);R.set(M,E.length);try{let K=M.appendEntries(j);K instanceof Promise&&K.catch(()=>{})}catch{}}}});return()=>N()},disposeAllViews(){for(let T of c.values())T.dispose();c.clear();for(let T of l.values())T.dispose();l.clear();for(let T of p.values())T.dispose();p.clear()},dispose(){for(let T of c.values())T.dispose();c.clear();for(let T of l.values())T.dispose();l.clear();for(let T of p.values())T.dispose();p.clear()}};return w}Q();function Ee(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 Ge(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 Ro(){return{input:{regular:0},output:{regular:0}}}function ji(t,e){let n=e?.logMax??1e3,r=Le(void 0,{name:e?.name?`${e.name}/stats`:"adapterStats",maxSize:n}),o=I(null,{name:"adapterStats/lastCall"}),s=O([r.entries],([y])=>y.length,{name:"adapterStats/totalCalls",initial:0}),i=O([r.entries],([y])=>y.reduce((g,h)=>g+Ee(h.usage),0),{name:"adapterStats/totalInputTokens",initial:0}),a=O([r.entries],([y])=>y.reduce((g,h)=>g+Ge(h.usage),0),{name:"adapterStats/totalOutputTokens",initial:0}),u=[Y(s),Y(i),Y(a)],d=y=>{r.append(y),o.emit(y)},c=()=>{r.clear(),o.emit(null)},l=ge(t,{invoke(y,g){let h=B(),b=ue(),v=t.model??g?.model??"",x=w=>(d(qe({provider:t.provider,model:t.model??g?.model??w.model??"",tier:g?.tier??w.tier,usage:w.usage??Ce(),startNs:h,startWallClockNs:b,method:"invoke"})),w),k=w=>{let T=w;d(qe({provider:t.provider,model:v,tier:g?.tier,usage:Ce(),startNs:h,startWallClockNs:b,method:"invoke",error:{type:T?.name??"Error",message:T?.message??String(w)}}))};return qt(t.invoke(y,g),{onResp:x,onError:k,name:"adapterStats/invokeTap"})},async*stream(y,g){let h=B(),b=ue(),v=t.model??g?.model??"",x;try{for await(let k of t.stream(y,g))k.type==="usage"&&(x=k.usage),yield k;d(qe({provider:t.provider,model:v,tier:g?.tier,usage:x??Ce(),startNs:h,startWallClockNs:b,method:"stream"}))}catch(k){let w=k;throw d(qe({provider:t.provider,model:v,tier:g?.tier,usage:x??Ce(),startNs:h,startWallClockNs:b,method:"stream",error:{type:w?.name??"Error",message:w?.message??String(k)}})),k}}});me(l,"observableAdapter",t);let p=!1;return{adapter:l,stats:{lastCall:o,allCalls:r,totalCalls:s,totalInputTokens:i,totalOutputTokens:a,reset:c,dispose:()=>{if(!p){p=!0;for(let y of u)y();u.length=0}}}}}function Bi(t,e){return t==null?0:typeof t=="number"?t:t.thresholdTokens!=null&&t.pricePerMillionAbove!=null&&e>t.thresholdTokens?t.pricePerMillionAbove:t.pricePerMillion}function Xt(t="USD"){return{total:0,currency:t}}function Yn(t,e,n){let r=Ee(t),o=e.currency??"USD",s=n?.withBreakdown===!0,i=s?{}:null,a=0,u=(g,h,b)=>{if(!h||b==null)return;let v=Bi(b,r),x=h*v/1e6;a+=x,s&&(i[g]=(i[g]??0)+x)},d=t.input,c=e.input;if(c&&(u("input.regular",d.regular,c.regular),u("input.cacheRead",d.cacheRead??0,c.cacheRead),u("input.cacheWrite5m",d.cacheWrite5m??0,c.cacheWrite5m),u("input.cacheWrite1h",d.cacheWrite1h??0,c.cacheWrite1h),u("input.cacheWriteOther",d.cacheWriteOther??0,c.cacheWriteOther),u("input.audio",d.audio??0,c.audio),u("input.image",d.image??0,c.image),u("input.video",d.video??0,c.video),u("input.toolUse",d.toolUse??0,c.toolUse),d.extensions&&c.extensions))for(let[g,h]of Object.entries(d.extensions))u(`input.ext.${g}`,h,c.extensions[g]);let l=t.output,p=e.output;if(p&&(u("output.regular",l.regular,p.regular),u("output.reasoning",l.reasoning??0,p.reasoning),u("output.audio",l.audio??0,p.audio),u("output.predictionAccepted",l.predictionAccepted??0,p.predictionAccepted),u("output.predictionRejected",l.predictionRejected??0,p.predictionRejected),l.extensions&&p.extensions))for(let[g,h]of Object.entries(l.extensions))u(`output.ext.${g}`,h,p.extensions[g]);let f=n?.tier;if(f&&e.tierMultipliers){let g=e.tierMultipliers[f];if(g!=null&&(a*=g,s))for(let h of Object.keys(i))i[h]*=g}let m=t.auxiliary,y=e.auxiliary;if(m&&y)for(let[g,h]of Object.entries(m)){let b=y[g];if(b==null||!h)continue;let v=h*b;a+=v,s&&(i[`auxiliary.${g}`]=v)}return s?{total:a,currency:o,breakdown:i}:{total:a,currency:o}}function Qt(t,e){return`${t}::${e}`}function Vi(t){let e=new Map,n=new Map,r=(o,s,i)=>{e.set(Qt(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(Qt(o,s));if(i)return i.pricing;let a=n.get(o);if(!a)return;let u;for(let d of a)if(s.startsWith(d)&&(!u||d.length>u.key.length)){let c=e.get(Qt(o,d));c&&(u={key:d,pricing:c.pricing})}return u?.pricing},remove(o,s){let i=e.delete(Qt(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 Ki(t,e="USD"){return(n,r)=>{let o=t.lookup(r.provider,r.model);return o?Yn(n,o,{tier:r.tier,withBreakdown:r.withBreakdown}):Xt(e)}}function Ui(...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):Xt()}}function zi(t,e,n){return t?.pricing?Yn(e,t.pricing,n):Xt()}st();Q();function Qn(t,e={}){let n=e.breaker??ht(e),r=ge(t,{async invoke(o,s){if(!n.canExecute())throw new Fe;try{let i=await we(G(t.invoke(o,s)));return n.recordSuccess(),i}catch(i){throw n.recordFailure(i),i}},async*stream(o,s){if(!n.canExecute())throw new Fe;try{for await(let i of t.stream(o,s))yield i;n.recordSuccess()}catch(i){throw n.recordFailure(i),i}}});return me(r,"withBreaker",t),{adapter:r,breaker:n}}fe();re();q();Q();var Zt=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"},Xn=Object.freeze({calls:0,inputTokens:0,outputTokens:0,usd:0}),So=()=>({calls:0,inputTokens:0,outputTokens:0,usd:0});function Zn(t,e){let n=Le(void 0,{name:e.name?`${e.name}/log`:"budgetGate/log",maxSize:e.logMax??1e3}),r=I(So(),{name:e.name?`${e.name}/totals`:"budgetGate/totals"}),o=O([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(Y(o),e.onExhausted!=null){let d=e.onExhausted,c=!1,l=!0;o.subscribe(p=>{for(let f of p)if(f[0]===L){let m=f[1];if(c&&l&&m===!1){let y=_o(r.cache??Xn,e.caps);y&&d(y)}l=m,c=!0}})}let s=()=>{if(o.cache===!1){let d=r.cache??Xn,c=_o(d,e.caps);return new Zt(c??"budget",e.caps[c??"calls"]??0,Hi(d,c??"calls"))}},i=(d,c)=>{let l=t.provider,p=qe({provider:l,model:c.model,tier:c.tier,usage:d,startNs:c.startNs,method:c.method,...c.error?{error:c.error}:{}});n.append(p);let f=r.cache??Xn,m=e.pricingFn?f.usd+e.pricingFn(d,{model:c.model,provider:l,tier:c.tier}).total:f.usd;r.emit({calls:f.calls+1,inputTokens:f.inputTokens+Ee(d),outputTokens:f.outputTokens+Ge(d),usd:m})},a=()=>{n.clear(),r.emit(So())},u=ge(t,{invoke(d,c){let l=s();if(l)return Promise.reject(l);let p=B(),f=t.model??c?.model??"",m=g=>(i(g.usage??Ce(),{model:t.model??c?.model??g.model??"",tier:c?.tier??g.tier,startNs:p,method:"invoke"}),g),y=g=>{let h=g;i(Ce(),{model:f,tier:c?.tier,startNs:p,method:"invoke",error:{type:h?.name??"Error",message:h?.message??String(g)}})};return qt(t.invoke(d,c),{onResp:m,onError:y,name:"budgetGate/invokeTap"})},async*stream(d,c){let l=s();if(l)throw l;let p=B(),f;try{for await(let m of t.stream(d,c))m.type==="usage"&&(f=m.usage),yield m;i(f??Ce(),{model:t.model??c?.model??"",tier:c?.tier,startNs:p,method:"stream"})}catch(m){let y=m;throw i(f??Ce(),{model:t.model??c?.model??"",tier:c?.tier,startNs:p,method:"stream",error:{type:y?.name??"Error",message:y?.message??String(m)}}),m}}});return me(u,"withBudgetGate",t),{adapter:u,budget:{totals:r,isOpen:o,log:n,reset:a}}}function _o(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 Hi(t,e){switch(e){case"calls":return t.calls;case"inputTokens":return t.inputTokens;case"outputTokens":return t.outputTokens;case"usd":return t.usd}}Q();function Wi(t,e){let n=e.mock??We({provider:t.provider,model:t.model}),r=typeof e.enabled=="boolean"?e.enabled:void 0,o=r===void 0?G(e.enabled):void 0,s;o&&(s=Y(o));let i=()=>r!==void 0?r:!!o?.cache,a=ge(t,{invoke(d,c){return i()?n.invoke(d,c):t.invoke(d,c)},stream(d,c){return i()?n.stream(d,c):t.stream(d,c)}});return me(a,"withDryRun",t),{adapter:a,dispose:()=>{s&&(s(),s=void 0)}}}function er(t){if(t==null||typeof t!="object")return;let e=t,n=e.status,r=qi(e.headers);if(n!==429&&n!==503&&!ea(e.message))return;let o={},s=r("retry-after"),i=Yi(s);i!=null&&(o.retryAfterMs=i);let a=r("anthropic-ratelimit-requests-reset");if(a){let f=No(a);f!=null&&(o.retryAfterMs=Math.max(o.retryAfterMs??0,f))}let u=r("anthropic-ratelimit-tokens-reset");if(u){let f=No(u);f!=null&&(o.retryAfterMs=Math.max(o.retryAfterMs??0,f))}let d=en(r,"x-ratelimit-limit-requests");d!=null&&(o.rpmCap=d);let c=en(r,"x-ratelimit-limit-tokens");c!=null&&(o.tpmCap=c);let l=en(r,"x-ratelimit-remaining-requests"),p=en(r,"x-ratelimit-remaining-tokens");if(l!=null&&d!=null&&d>0&&(o.usageHint??={},o.usageHint.rpm=1-l/d),p!=null&&c!=null&&c>0&&(o.usageHint??={},o.usageHint.tpm=1-p/c),o.retryAfterMs==null&&e.message){let f=Xi(e.message);f!=null&&(o.retryAfterMs=f)}return e.headers&&(o.metadata={headers:Ji(e.headers)}),o.retryAfterMs==null&&o.rpmCap==null&&o.tpmCap==null&&o.usageHint==null?o.metadata?o:void 0:o}function qi(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 Ji(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 en(t,e){let n=t(e);if(n==null)return;let r=Number(n);return Number.isFinite(r)?r:void 0}function Yi(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 No(t){if(!t)return;let e=Date.parse(t);if(Number.isFinite(e))return Math.max(0,e-Date.now())}var Qi=/retry\s+(?:in|after)\s+(\d+(?:\.\d+)?)\s*(ms|s|sec|seconds?|m|min|minutes?)/i;function Xi(t){let e=Qi.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 Zi=/rate\s*limit|too\s*many\s*requests|quota|429/i;function ea(t){return!!t&&Zi.test(t)}fe();re();q();st();Q();Ie();function tr(t){let e=new Error(t);return e.name="AbortError",e}function Eo(t={}){let e=Math.max(1,t.burstMultiplier??1),n=t.clampCooldownMs??6e4,r=t.rpm!=null?G(t.rpm):I(Number.POSITIVE_INFINITY),o=t.tpm!=null?G(t.tpm):I(Number.POSITIVE_INFINITY),s=I(Number.POSITIVE_INFINITY,{name:"adaptiveRateLimiter/signalRpmCap"}),i=I(Number.POSITIVE_INFINITY,{name:"adaptiveRateLimiter/signalTpmCap"}),a=I({},{name:"adaptiveRateLimiter/lastSignal"}),u=O([r,s],([M,A])=>Math.min(Number(M??1/0),Number(A??1/0)),{name:"adaptiveRateLimiter/effectiveRpm"}),d=O([o,i],([M,A])=>Math.min(Number(M??1/0),Number(A??1/0)),{name:"adaptiveRateLimiter/effectiveTpm"}),c=at(Number(r.cache??Number.POSITIVE_INFINITY),e),l=at(Number(o.cache??Number.POSITIVE_INFINITY),e),p=!1,f=!1,m=u.subscribe(M=>{for(let A of M)if(A[0]===L){let j=Number(A[1]);Number.isFinite(j)&&j>0?(c=at(j,e),p=!1):j===1/0?(c=at(1/0,e),p=!1):j<=0&&(p=!0)}}),y=d.subscribe(M=>{for(let A of M)if(A[0]===L){let j=Number(A[1]);Number.isFinite(j)&&j>0?(l=at(j,e),f=!1):j===1/0?(l=at(1/0,e),f=!1):j<=0&&(f=!0)}}),g=0,h=new se,b=new se,v;t.adaptation!=null&&(v=G(t.adaptation).subscribe(A=>{for(let j of A)j[0]===L&&x(j[1])}));function x(M){if(a.emit(M),M.rpmCap!=null&&Number.isFinite(M.rpmCap)&&M.rpmCap>=0&&(s.emit(M.rpmCap),Number.isFinite(n)&&n>0&&h.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&&b.start(n,()=>i.emit(Number.POSITIVE_INFINITY))),M.retryAfterMs!=null&&M.retryAfterMs>0){let A=B()+M.retryAfterMs*1e6;A>g&&(g=A)}}let k=I(0,{name:"adaptiveRateLimiter/pending"}),w=I(Number.POSITIVE_INFINITY,{name:"adaptiveRateLimiter/rpmAvailable"}),T=I(Number.POSITIVE_INFINITY,{name:"adaptiveRateLimiter/tpmAvailable"}),R=M=>{k.emit((k.cache??0)+M)},N=()=>{w.emit(c.available()),T.emit(l.available())};async function _(M={}){let A=M.requestCost??1,j=M.tokenCost??0,K=M.signal;R(1);try{for(;;){if(K?.aborted)throw tr("AdaptiveRateLimiter.acquire aborted");let Z=B();if(g>Z){let F=Math.ceil((g-Z)/1e6);await tn(F,K);continue}if(A>0&&p||j>0&&f){await tn(250,K);continue}let ke=c,U=l;if(!ke.tryConsume(A)){await tn(Mo(ke,A),K);continue}if(!(j>0?U.tryConsume(j):!0)){ke.putBack(A),await tn(Mo(U,j),K);continue}N();return}}finally{R(-1)}}function S(M){M>0?l.tryConsume(M):M<0&&l.putBack(-M),N()}function E(){m(),y(),v?.(),h.cancel(),b.cancel()}return{effectiveRpm:u,effectiveTpm:d,lastSignal:a,pending:k,rpmAvailable:w,tpmAvailable:T,acquire:_,recordUsage:S,recordSignal:x,dispose:E}}function at(t,e){if(!Number.isFinite(t)||t===1/0)return yt(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER);let n=Math.max(1,t*e),r=t/60;return yt(n,r)}function Mo(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 tn(t,e){return t<=0?Promise.resolve():e?.aborted?Promise.reject(tr("AdaptiveRateLimiter.acquire aborted")):new Promise((n,r)=>{let o=new se,s,i=()=>{o.cancel(),e&&s&&e.removeEventListener("abort",s)};o.start(t,()=>{i(),n()}),e&&(s=()=>{i(),r(tr("AdaptiveRateLimiter.acquire aborted"))},e.addEventListener("abort",s,{once:!0}))})}Q();function nr(t,e={}){let n=e.limiter??Eo({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=er(i);a&&n.recordSignal(a)},s=ge(t,{async invoke(i,a){let u=r(i,a);await n.acquire({requestCost:1,tokenCost:u,signal:a?.signal});try{let d=await we(G(t.invoke(i,a))),c=d.usage??Ro(),p=Ee(c)+Ge(c)-u;return p>0&&n.recordUsage(p),d}catch(d){throw o(d),d}},async*stream(i,a){let u=r(i,a);await n.acquire({requestCost:1,tokenCost:u,signal:a?.signal});try{let d=0;for await(let l of t.stream(i,a))l.type==="usage"&&(d=Ee(l.usage)+Ge(l.usage)),yield l;let c=d-u;c>0&&n.recordUsage(c)}catch(d){throw o(d),d}}});return me(s,"withRateLimiter",t),{adapter:s,limiter:n}}st();Q();var kt=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 rr(t,e={}){if(t.length===0)throw new RangeError("cascadingLlmAdapter: tiers must be non-empty");let n=t.map(s=>({name:s.name,adapter:s.adapter,filter:s.filter,breaker:s.breaker?"canExecute"in s.breaker?s.breaker:ht(s.breaker):void 0})),r=e.streamRetryBeforeFirstChunk??!0,o={provider:"cascading",model:void 0,async invoke(s,i){let a=[],u=new Map;for(let c=0;c<n.length;c++){let l=n[c];if(l.filter&&!l.filter(s,i)){a.push({name:l.name,reason:"filter"});continue}if(l.breaker&&!l.breaker.canExecute()){a.push({name:l.name,reason:"breaker"});continue}try{let p=await we(G(l.adapter.invoke(s,i)));return l.breaker?.recordSuccess(),{...p,metadata:{...p.metadata??{},tier:l.name}}}catch(p){u.set(l.name,p),l.breaker?.recordFailure(p);let f=n[c+1];f&&e.onFallback?.(l.name,f.name,p)}}let d={skipped:a,failed:u};throw e.onExhausted?.(d),new kt(d)},async*stream(s,i){let a=[],u=new Map;for(let c=0;c<n.length;c++){let l=n[c];if(l.filter&&!l.filter(s,i)){a.push({name:l.name,reason:"filter"});continue}if(l.breaker&&!l.breaker.canExecute()){a.push({name:l.name,reason:"breaker"});continue}let p=!1;try{for await(let f of l.adapter.stream(s,i))p=!0,yield f;l.breaker?.recordSuccess();return}catch(f){if(u.set(l.name,f),l.breaker?.recordFailure(f),p||!r)throw f;let m=n[c+1];m&&e.onFallback?.(l.name,m.name,f)}}let d={skipped:a,failed:u};throw e.onExhausted?.(d),new kt(d)}};return me(o,`cascade[${n.map(s=>s.name).join(",")}]`),o}function ta(t,e,n){let r={name:t,adapter:e};return n?.breaker&&(r.breaker=n.breaker),n?.filter&&(r.filter=n.filter),r}Q();Ie();function nn(t="aborted"){let e=new Error(t);return e.name="AbortError",e}function Oo(t,e){return t<=0?Promise.resolve():e?.aborted?Promise.reject(nn()):new Promise((n,r)=>{let o=new se,s,i=()=>{o.cancel(),e&&s&&e.removeEventListener("abort",s)};o.start(t,()=>{i(),n()}),e&&(s=()=>{i(),r(nn())},e.addEventListener("abort",s,{once:!0}))})}function or(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??na,u=e.retryStreaming??!0,d=(l,p)=>{if(s==="decorrelated"){let g=Math.min(o,Math.max(r,p*3));return r+Math.random()*(g-r)}let f=s==="exp"?r*2**(l-1):r*l,m=Math.min(o,f);if(!i)return m;let y=m*(.5+Math.random());return Math.min(o,y)},c=ge(t,{async invoke(l,p){if(p?.signal?.aborted)throw nn();let f,m=r;for(let y=1;y<=n;y++)try{return await we(G(t.invoke(l,p)))}catch(g){if(f=g,y>=n||!a(g,y))throw g;let h=d(y,m);m=h,await Oo(h,p?.signal)}throw f},async*stream(l,p){if(p?.signal?.aborted)throw nn();if(!u){for await(let y of t.stream(l,p))yield y;return}let f,m=r;for(let y=1;y<=n;y++){let g=!1;try{for await(let h of t.stream(l,p))g=!0,yield h;return}catch(h){if(f=h,g||y>=n||!a(h,y))throw h;let b=d(y,m);m=b,await Oo(b,p?.signal)}}throw f}});return me(c,"withRetry",t),c}function na(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}Q();Ie();var dt=class extends Error{constructor(n){super(`LLM call timed out after ${n}ms`);this.ms=n}name="LLMTimeoutError"};function sr(t,e){if(e<=0)throw new RangeError("withTimeout: ms must be > 0");let n=s=>{let i=new AbortController,a=!1,u,d=new se;return s&&(s.aborted?i.abort(s.reason):(u=()=>{d.cancel(),i.abort(s.reason)},s.addEventListener("abort",u,{once:!0}))),d.start(e,()=>{a=!0,i.abort(new dt(e))}),{signal:i.signal,cancel:()=>{d.cancel(),s&&u&&s.removeEventListener("abort",u)},timedOut:()=>a}},r=(s,i)=>{if(!i||s instanceof dt)throw s;let a=s;if(a?.name==="AbortError"||a?.name==="DOMException"&&Number(a.code)===20||s?.message==="aborted"){let d=new dt(e);throw d.cause=s,d}throw s},o=ge(t,{async invoke(s,i){let{signal:a,cancel:u,timedOut:d}=n(i?.signal);try{return await we(G(t.invoke(s,{...i,signal:a})))}catch(c){return r(c,d())}finally{u()}},async*stream(s,i){let{signal:a,cancel:u,timedOut:d}=n(i?.signal);try{for await(let c of t.stream(s,{...i,signal:a}))yield c}catch(c){r(c,d())}finally{u()}}});return me(o,"withTimeout",t),o}function ra(t,e={}){let n={adapter:t},r=t;if(e.rateLimit){let o=nr(r,e.rateLimit);r=o.adapter,n.rateLimiter=o.limiter}if(e.budget){let o=Zn(r,e.budget);r=o.adapter,n.budget=o.budget}if(e.breaker){let o=Qn(r,e.breaker);r=o.adapter,n.breaker=o.breaker}if(e.timeoutMs!=null&&(r=sr(r,e.timeoutMs)),e.retry&&(r=or(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=rr([{name:e.name??"primary",adapter:r},{name:"fallback",adapter:e.fallback}],o)}return e.cache&&(r=vt(r,e.cache)),n.adapter=r,n}q();Q();function oa(t,e,n){let r=G(e);return ae(r,s=>{if(!s||s.length===0)return I(null);let i=n?.tools;return t.invoke(s,{model:n?.model,temperature:n?.temperature,maxTokens:n?.maxTokens,tools:i,systemPrompt:n?.systemPrompt})})}Re();Q();re();Q();Ie();re();Q();function Ao(t,e){let n=t.cache??0;return n>=e?!1:(t.down([[J],[L,n+1]]),!0)}function $e(t,e,n){return{[t]:!0,[`${t}_type`]:e,...n??{}}}function H(t,e){return $e("ai",t,e)}function sa(t){return t!=null&&typeof t.then=="function"}function ir(t){return typeof t=="object"&&t!==null&&"subscribe"in t&&typeof t.subscribe=="function"&&"cache"in t}function ia(t){return t!=null&&typeof t=="object"&&Symbol.asyncIterator in t&&typeof t[Symbol.asyncIterator]=="function"}var aa=3e4;function Co(t,e){if(t.status==="settled"){let r=t.cache;if(r!==void 0)return Promise.resolve(r)}let n=e?.timeoutMs??aa;return new Promise((r,o)=>{let s=new se,i=t.subscribe(a=>{for(let u of a){if(u[0]===L){s.cancel(),i(),r(u[1]);return}if(u[0]===C){s.cancel(),i(),o(u[1]);return}if(u[0]===$){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 xt(t){return sa(t)?xt(await t):ir(t)?Co(t):ia(t)?Co(G(t)):t}function ut(t){let e=t.match(/^```(?:json)?\s*([\s\S]*?)\s*```[\s\S]*$/);return e?e[1]:t}function da(t,e){let n=G(t),r=e?.refreshTrigger!=null?G(e.refreshTrigger):null;return r==null?te([n],(o,s,i)=>{if(i.store.emitted===!0)return;let u=o[0],d=u!=null&&u.length>0?u.at(-1):i.prevData[0];if(d!==void 0)return i.store.emitted=!0,s.emit(d),{invalidate:()=>{i.store.emitted=!1}}},{name:e?.name??"frozenContext",describeKind:"derived",initial:null,meta:H("frozen_context")}):te([n,r],(o,s,i)=>{let a=o[1];if(!(a!=null&&a.length>0))return;let d=o[0],c=d!=null&&d.length>0?d.at(-1):i.prevData[0];s.emit(c)},{name:e?.name??"frozenContext",describeKind:"derived",initial:null,meta:H("frozen_context")})}re();q();Q();function Lo(t){return t!=null&&typeof t=="object"&&"content"in t?String(t.content):typeof t=="string"?t:String(t)}function ua(t,e=200){return t.length<=e?t:`${t.slice(0,e)}\u2026`}function ar(t,e,n,r){let o=r?.format??"text",s=r?.name??"prompt_node",i=O(e,u=>{if(u.some(c=>c==null))return[];let d=typeof n=="string"?n:n(...u);return d?[{role:"user",content:d}]:[]},{name:`${s}::messages`,meta:H("prompt_node")});return ae(i,u=>!u||u.length===0?I(null):ne(d=>{let c=!1,l=!1,p,f={model:r?.model,temperature:r?.temperature,maxTokens:r?.maxTokens,systemPrompt:r?.systemPrompt};if(r?.abort){let h=oo(r.abort);f.signal=h.signal,p=h.dispose}let m;try{m=t.invoke(u,f)}catch(h){return c=!0,d.down([[C,h]]),()=>{p?.()}}let g=G(m).subscribe(h=>{if(!(l||c))for(let b of h){if(c)return;if(b[0]===L){let v=b[1];try{let x=Lo(v),k=o==="json"?JSON.parse(ut(x)):x;d.emit(k)}catch(x){let k=Lo(v),w=new Error(`promptNode: failed to parse LLM response as JSON: ${x.message}
|
|
7
|
-
Raw content (first 200 chars): ${
|
|
8
|
-
`)}function
|
|
9
|
-
`)}function va(t,e,n,r,o){let{x:s,y:i,w:a,h:u}=r;if(a<2||u<2){u>0&&jo(t,e,s,i,a,o);return}je(t,e,s,i,n.boxTL);for(let c=s+1;c<s+a-1;c+=1)je(t,e,c,i,n.boxH);je(t,e,s+a-1,i,n.boxTR);for(let c=i+1;c<i+u-1;c+=1){je(t,e,s,c,n.boxV);for(let l=s+1;l<s+a-1;l+=1)Uo(t,e,l,c," ","empty");je(t,e,s+a-1,c,n.boxV)}je(t,e,s,i+u-1,n.boxBL);for(let c=s+1;c<s+a-1;c+=1)je(t,e,c,i+u-1,n.boxH);je(t,e,s+a-1,i+u-1,n.boxBR);let d=i+Math.floor(u/2);jo(t,e,s+1,d,a-2,o)}function je(t,e,n,r,o){Uo(t,e,n,r,o,o===" "?"empty":o==="\u2500"||o==="-"?"boxH":o==="\u2502"||o==="|"?"boxV":"boxCorner")}function Uo(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 jo(t,e,n,r,o,s){if(r<0||r>=t.length)return;let i=n,a=o;for(let u of s){let d=dn(u);if(d!==0){if(a<d)break;i>=0&&i<t[r].length&&(t[r][i]=u,e[r][i]="label",d===2&&i+1<t[r].length&&(t[r][i+1]="",e[r][i+1]="label")),i+=d,a-=d}}for(;a>0;)i>=0&&i<t[r].length&&(t[r][i]=" ",e[r][i]="empty"),i+=1,a-=1}function wa(t,e,n,r){let o=r.points;if(o.length<2)return;for(let u=0;u+1<o.length;u+=1)ka(t,e,n,o[u],o[u+1]);for(let u=1;u+1<o.length;u+=1){let d=o[u-1],c=o[u],l=o[u+1],p=xa(d,c,l,n);p&&Vo(t,e,c.x,c.y,p,"edgeCorner")}let s=o[o.length-1],i=o[o.length-2],a=Ra(i,s,n);a&&Vo(t,e,s.x,s.y,a,"arrow")}function ka(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 u=i;u<=a;u+=1)Bo(t,e,u,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 u=i;u<=a;u+=1)Bo(t,e,s,u,n,"v")}}}function Bo(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 Vo(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 xa(t,e,n,r){let o=t.y===e.y,s=e.y===n.y;if(o===s)return;if(o){let u=t.x<e.x,d=n.y>e.y;return u&&d?r.cornerTR:u&&!d?r.cornerBR:!u&&d?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 Ra(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 Sa(t){let e=t.length;for(;e>0&&t.charCodeAt(e-1)===32;)e-=1;return t.slice(0,e)}function Wo(t){let e=_a(t);Na(e),Ma(e),Ea(e),Oa(e,t);let n=La(e,t),{width:r,height:o}=Ia(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 _a(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 Na(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 u=(e.get(a.id)??0)-1;e.set(a.id,u),u<=0&&n.push(a)}}}for(let s of t.nodes.values())s.layer<0&&(s.layer=0)}function Ma(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),u=a.layer-i.layer;if(u<=0){i.out=i.out.filter(l=>l!==s),a.in=a.in.filter(l=>l!==s);continue}if(u===1){s.hopIndex=0,s.chainLen=1,r.push(s);continue}i.out=i.out.filter(l=>l!==s),a.in=a.in.filter(l=>l!==s);let d=i;for(let l=1;l<u;l+=1){let p=`__virt_${o++}__`,f={id:p,isVirtual:!0,layer:i.layer+l,order:0,x:0,y:0,w:0,h:1,in:[],out:[]};t.nodes.set(p,f),n[f.layer].push(f);let m={chainId:s.chainId,chainFrom:s.chainFrom,chainTo:s.chainTo,fromId:d.id,toId:p,hopIndex:l-1,chainLen:u};d.out.push(m),f.in.push(m),r.push(m),d=f}let c={chainId:s.chainId,chainFrom:s.chainFrom,chainTo:s.chainTo,fromId:d.id,toId:a.id,hopIndex:u-1,chainLen:u};d.out.push(c),a.in.push(c),r.push(c)}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 Ea(t){for(let n=0;n<4;n+=1){for(let r=1;r<t.layers.length;r+=1)zo(t,t.layers[r],"in"),un(t.layers[r]);for(let r=t.layers.length-2;r>=0;r-=1)zo(t,t.layers[r],"out"),un(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=Ho(t,s[i],s[i+1],"in");[s[i],s[i+1]]=[s[i+1],s[i]],un(s),Ho(t,s[i],s[i+1],"in")<a?r=!0:([s[i],s[i+1]]=[s[i+1],s[i]],un(s))}}if(!r)break}}function zo(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 u of s){let d=t.nodes.get(n==="in"?u.fromId:u.toId);d&&(i+=d.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 un(t){for(let e=0;e<t.length;e+=1)t[e].order=e}function Ho(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 u of s){let d=t.nodes.get(r==="in"?a.fromId:a.toId)?.order??0,c=t.nodes.get(r==="in"?u.fromId:u.toId)?.order??0;(e.order<n.order&&d>c||e.order>n.order&&d<c)&&(i+=1)}return i}function Oa(t,e){e.direction==="LR"?Aa(t,e):Ca(t,e)}function Aa(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}qo(t,e,"y")}function Ca(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}qo(t,e,"x")}function qo(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 u=new Map;for(let c of a){let l=s===0?c.in:c.out;if(l.length===0)continue;let p=[];for(let m of l){let y=t.nodes.get(s===0?m.fromId:m.toId);if(!y)continue;let g=n==="y"?y.y:y.x;p.push(g+Math.floor(r(y)/2))}if(p.length===0)continue;p.sort((m,y)=>m-y);let f=p[Math.floor(p.length/2)];u.set(c.id,f-Math.floor(r(c)/2))}let d=0;for(let c of a){let l=u.get(c.id),p=n==="y"?c.y:c.x,m=Math.max(l??p,d);n==="y"?c.y=m:c.x=m,d=m+r(c)+o}}}}function La(t,e){let n=new Map;for(let d of t.hops){let c=n.get(d.chainId);c?c.push(d):n.set(d.chainId,[d])}for(let d of n.values())d.sort((c,l)=>c.hopIndex-l.hopIndex);let r=e.direction==="LR",o=d=>r?d.x:d.y,s=d=>r?d.w:d.h,i=d=>r?d.y+Math.floor(d.h/2):d.x+Math.floor(d.w/2),a=new Map;for(let d=0;d+1<t.layers.length;d+=1){let c=t.layers[d],l=t.layers[d+1],p=0;for(let R of c)p=Math.max(p,o(R)+s(R));let f=Number.POSITIVE_INFINITY;for(let R of l)f=Math.min(f,o(R));let m=Number.isFinite(f)?f-1:p,y=Math.max(1,m-p+1),g=[];for(let R of c)for(let N of R.out)g.push(N);g.sort((R,N)=>{let _=i(t.nodes.get(R.fromId)),S=i(t.nodes.get(N.fromId));if(_!==S)return _-S;let E=i(t.nodes.get(R.toId)),M=i(t.nodes.get(N.toId));return E-M});let h=[],b=new Map;for(let R of g){let N=i(t.nodes.get(R.fromId)),_=i(t.nodes.get(R.toId)),S=Math.min(N,_),E=Math.max(N,_),M=-1;for(let A=0;A<h.length;A+=1){let j=h[A],K=!0;for(let Z of j)if(Z.lo<=E&&S<=Z.hi){K=!1;break}if(K){j.push({lo:S,hi:E}),M=A;break}}M<0&&(h.push([{lo:S,hi:E}]),M=h.length-1),b.set(R,M)}let v=h.length,x=y>=Math.max(3,v+2),k=x?p+1:p,w=x?m-1:m,T=Math.max(1,w-k+1);for(let R of g){let N=b.get(R),_;if(v<=1)_=k+Math.floor(T/2);else{let S=(T-1)/(v-1);_=k+Math.floor(N*S)}a.set(R,Math.max(p,Math.min(m,_)))}}let u=[];for(let[,d]of n){let c=[];for(let p=0;p<d.length;p+=1){let f=d[p],m=t.nodes.get(f.fromId),y=t.nodes.get(f.toId),g=a.get(f),h=m.isVirtual?o(m):o(m)+s(m),b=y.isVirtual?o(y):o(y)-1,v=i(m),x=i(y);p===0&&cn(c,r,h,v),v!==x&&(cn(c,r,g,v),cn(c,r,g,x)),cn(c,r,b,x)}let l=d[0];u.push({from:l.chainFrom,to:l.chainTo,points:Da(c)})}return u}function cn(t,e,n,r){t.push(e?{x:n,y:r}:{x:r,y:n})}function Da(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 Ia(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 Pa=24,Ga=4,Fa=1,$a=3;function Jo(t,e){let n=ja(e.direction),r=Math.max(3,e.maxLabelWidth??Pa),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)),u=new Map,d=new Map;for(let f of s){let m=$o(f,r);u.set(f,m),d.set(f,dn(m)+4)}let c=Wo({nodes:s,edges:a,widthCells:f=>d.get(f)??3,heightCells:()=>$a,layerGap:Ga,nodeGap:Fa,direction:n}),l=Ko(c,{charset:o,labelOf:f=>u.get(f)??f}),p=e.logger;return p&&p(l),l}function ja(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)}`)}Re();function Yo(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[p,f]of o)i.set(p,f);let a=[];for(let[p,f]of Object.entries(r.nodes)){let m=i.get(p),y=m instanceof le?m:null,g=y?Do(y.cache):0,h=y?y._sinkCount:0,b=f.deps?.length??0,v=f.type==="effect"&&h===0,x=h===0?f.type==="effect"?"orphan-effect":f.type==="derived"?"idle-derived":f.type==="producer"?"idle-producer":null:null;a.push({path:p,type:f.type,status:f.status??"unknown",valueSizeBytes:g,subscriberCount:h,depCount:b,isOrphanEffect:v,orphanKind:x})}let u=a.reduce((p,f)=>p+f.valueSizeBytes,0),d=(p,f)=>[...a].sort(f??((m,y)=>y[p]-m[p])).slice(0,n),c=a.filter(p=>p.orphanKind!=null),l=a.filter(p=>p.isOrphanEffect);return{nodeCount:a.length,edgeCount:r.edges.length,subgraphCount:r.subgraphs.length,nodes:a,totalValueSizeBytes:u,hotspots:{byValueSize:d("valueSizeBytes"),bySubscriberCount:d("subscriberCount"),byDepCount:d("depCount")},orphans:c,orphanEffects:l}}var oe="::",Se="__meta__",Ye=1;function Qo(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 es(t){return t!=null&&typeof t=="object"&&"cache"in t&&typeof t.subscribe=="function"&&typeof t.down=="function"}function Ba(t){if(t!=null)return es(t)?t.cache:t}function Va(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(`
|
|
10
|
-
`)}function Xo(t){if(t.version!==Ye)throw new Error(`unsupported snapshot version ${String(t.version)} (expected ${Ye})`);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 Ka(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,u=s.constructor;if(a!==u)return!1;if(o instanceof Date)return o.getTime()===s.getTime();if(o instanceof RegExp)return o.source===s.source&&o.flags===s.flags;if(Array.isArray(o)){let p=s;if(o.length!==p.length)return!1;for(let f=0;f<o.length;f++)if(!r(o[f],p[f]))return!1;return!0}if(o instanceof Map){let p=s;if(o.size!==p.size)return!1;for(let[f,m]of o)if(!p.has(f)||!r(m,p.get(f)))return!1;return!0}if(o instanceof Set){let p=s;if(o.size!==p.size)return!1;for(let f of o){let m=!1;for(let y of p)if(r(f,y)){m=!0;break}if(!m)return!1}return!0}if(ArrayBuffer.isView(o)){let p=o,f=s;if(p.length!==f.length)return!1;for(let m=0;m<p.length;m++)if(p[m]!==f[m])return!1;return!0}let d=Object.keys(o),c=Object.keys(s);if(d.length!==c.length)return!1;let l=new Set(c);for(let p of d)if(!l.has(p)||!r(o[p],s[p]))return!1;return!0};return r(t,e)}function lr(t){if(t===null||typeof t!="object")return t;if(Array.isArray(t))return t.map(lr);let e=t,n=Object.keys(e).sort(),r={};for(let o of n)r[o]=lr(e[o]);return r}function Ua(t){return t.replaceAll("\\","\\\\").replaceAll('"','\\"')}function za(t){return t.replaceAll("\\","\\\\").replaceAll('"','\\"')}function Ha(t){return t==="TD"?"down":t==="BT"?"up":t==="RL"?"left":"right"}function ts(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 ns(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 Wa(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(lr(i),null,e.indent??2);return e.logger?.(a),a}function qa(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}): ${pn(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(`
|
|
11
|
-
`);return e.logger?.(s),s}function rs(t,e){let n=ns(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}["${Ua(i)}"]`)}for(let[i,a]of ts(t)){let u=o.get(i),d=o.get(a);!u||!d||s.push(` ${u} --> ${d}`)}return s.join(`
|
|
12
|
-
`)}function Ja(t,e){let n=rs(t,e);return os(n)}function os(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 d=0;d<i.length;d++)a+=String.fromCharCode(i[d]);return`https://mermaid.live/edit#base64:${globalThis.btoa(a).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}`}function Ya(t,e){let n=ns(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: ${Ha(n)}`];for(let i of r){let a=o.get(i);s.push(`${a}: "${za(i)}"`)}for(let[i,a]of ts(t)){let u=o.get(i),d=o.get(a);!u||!d||s.push(`${u} -> ${d}`)}return s.join(`
|
|
13
|
-
`)}function Qa(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ln(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+=Qa(r)}return e+="$",new RegExp(e)}var Xa={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"},Za={data:"",dirty:"",resolved:"",invalidate:"",pause:"",resume:"",complete:"",error:"",teardown:"",derived:"",path:"",reset:""};function pn(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 ed(t){return t==="none"?Za:t==="ansi"||t==null?Xa:{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 Zo(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 td(t,e,n){for(let r=0;r<t.length;r++){let o=t.charCodeAt(r);if(o<32||o===127)throw new Error(`Graph "${e}": ${n} "${t}" must not contain control character (U+${o.toString(16).padStart(4,"0").toUpperCase()} at index ${r})`)}}function cr(t,e,n){if(t==="")throw new Error(`Graph "${e}": ${n} name must be non-empty`);if(t.includes(oe))throw new Error(`Graph "${e}": ${n} "${t}" must not contain '${oe}' (path separator)`);if(t===Se)throw new Error(`Graph "${e}": ${n} name "${Se}" is reserved for meta companion paths`);td(t,e,n)}function nd(t,e){if(t==="")throw new Error(`Graph "${e}": resolve path must be non-empty`);let n=t.split(oe);for(let r of n)if(r==="")throw new Error(`Graph "${e}": resolve path has empty segment`);return n}function rd(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 ss(t){for(let e of t._mounts.values())ss(e);for(let e of t._nodes.values())try{e.down([[ce]],{internal:!0})}catch{}}var ie=class t{name;opts;config;_nodes=new Map;_nodeToName=new WeakMap;_mounts=new Map;_parent=void 0;_storageDisposers=new Set;_disposers=new Set;_destroyed=!1;_topology;_topologyEmitters=new Set;constructor(e,n){if(e==="")throw new Error("Graph name must be non-empty");if(e.includes(oe))throw new Error(`Graph name must not contain '${oe}' (got "${e}")`);if(e===Se)throw new Error(`Graph name "${Se}" is reserved for meta companion paths`);this.name=e,this.opts=Object.freeze({...n??{}}),this.config=n?.config??nt,this._traceRing=new Tt(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=ne(e=>{let n=r=>{e.emit(r)};return this._topologyEmitters.add(n),()=>{this._topologyEmitters.delete(n)}},{name:`${this.name}_topology`})),this._topology}_emitTopology(e){if(!(this._topology==null||this._topologyEmitters.size===0))for(let n of this._topologyEmitters)n(e)}nameOf(e){return this._nodeToName.get(e)}add(e,n){let r=e.name,o=n?.name??r;if(o==null||o==="")throw new Error(`Graph "${this.name}": graph.add requires a non-empty name \u2014 pass via opts.name or set it on the node (e.g. state(0, { name: "x" }))`);let s=o,i=n?.annotation;if(cr(s,this.name,"add"),this._mounts.has(s))throw new Error(`Graph "${this.name}": name "${s}" is already a mount point`);if(this._nodes.has(s))throw new Error(`Graph "${this.name}": node "${s}" already exists`);let 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:B()})),e}setVersioning(e){if(e!=null)for(let n of this._nodes.values())n instanceof le&&n._applyVersioning(e)}remove(e){cr(e,this.name,"remove");let n=this._mounts.get(e);if(n){let s={kind:"mount",nodes:[],mounts:[]},i=[];n._collectObserveTargets("",i);for(let[a,u]of i)a.includes(`${oe}${Se}${oe}`)||s.nodes.push(a);return s.nodes.sort(),s.mounts.push(e),s.mounts.push(...n._collectSubgraphs(`${e}${oe}`)),this._mounts.delete(e),n._parent=void 0,ss(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=ln(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(oe))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);ee(()=>{for(let[o,s]of r)this.set(o,s,n)})}invalidate(e,n){let r=n?.internal===!0;this.node(e).down([[_e]],{actor:n?.actor,internal:r,delivery:"write"})}error(e,n,r){let o=r?.internal===!0;this.node(e).down([[C,n]],{actor:r?.actor,internal:o,delivery:"write"})}complete(e,n){let r=n?.internal===!0;this.node(e).down([[$]],{actor:n?.actor,internal:r,delivery:"write"})}edges(e){let n=e?.recursive===!0,r=new Map;if(!n){for(let[u,d]of this._nodes)r.set(d,u);let a=[];for(let[u,d]of this._nodes)if(d instanceof le)for(let c of d._deps){let l=r.get(c.node);l!=null&&a.push([l,u])}return a.sort((u,d)=>u[0]<d[0]?-1:u[0]>d[0]?1:u[1]<d[1]?-1:u[1]>d[1]?1:0),a}let o=[];this._collectObserveTargets("",o);let s=new Map;for(let[a,u]of o)s.set(u,a);let i=[];for(let[a,u]of o)if(u instanceof le)for(let d of u._deps){let c=s.get(d.node);c!=null&&i.push([c,a])}return i.sort((a,u)=>a[0]<u[0]?-1:a[0]>u[0]?1:a[1]<u[1]?-1:a[1]>u[1]?1:0),i}mount(e,n){if(n===void 0){let o=new t(e);return this.mount(e,o)}if(typeof n=="function"){let o=new t(e);return n(o),this.mount(e,o)}let r=n;if(cr(e,this.name,"mount"),this._nodes.has(e))throw new Error(`Graph "${this.name}": cannot mount at "${e}" \u2014 node with that name exists`);if(this._mounts.has(e))throw new Error(`Graph "${this.name}": mount "${e}" already exists`);if(r===this)throw new Error(`Graph "${this.name}": cannot mount a graph into itself`);if(r._parent!=null)throw new Error(`Graph "${this.name}": this child graph is already mounted on "${r._parent.name}"`);for(let o=this;o!=null;o=o._parent)if(o===r)throw new Error(`Graph "${this.name}": mount("${e}", \u2026) would create a mount cycle`);return this._mounts.set(e,r),r._parent=this,this._emitTopology({kind:"added",name:e,nodeKind:"mount"}),r}resolve(e){let n=nd(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]===Se)return this._resolveMetaChainFromNode(s,o,n.join(oe));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(oe)}" is invalid`):new Error(`Graph "${this.name}": unknown mount or node "${r}"`);return i.resolve(o.join(oe))}_resolveMetaChainFromNode(e,n,r){let o=e,s=0,i=[...n];for(;s<i.length;){if(i[s]!==Se)throw new Error(`Graph "${this.name}": expected ${Se} segment in meta path "${r}"`);if(s+1>=i.length)throw new Error(`Graph "${this.name}": meta path requires a key after ${Se} in "${r}"`);let a=i[s+1],u=o.meta[a];if(!u)throw new Error(`Graph "${this.name}": unknown meta "${a}" in path "${r}"`);o=u,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 u of this._mounts.values())u._signalDeliver(e,n,r,o);let i=n.internal===!0?{internal:!0}:{actor:n.actor,delivery:"signal"},a=rd(e,this.config);for(let u of[...this._nodes.keys()].sort()){let d=this._nodes.get(u);if(!r.has(d)){r.add(d);try{d.down(e,i)}catch(c){if(c instanceof Me)throw c;o.push(c)}a.length!==0&&this._signalMetaSubtree(d,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(u){if(u instanceof Me)throw u;s.push(u)}this._signalMetaSubtree(a,n,r,o,s)}}}describe(e){if(e?.reactive===!0)return this._describeReactive(e);let n=Ba(e?.actor),r=e?.filter,o=rn(e?.detail,e?.fields),s=e?.format==="spec",i=s?rn("minimal"):o,a=[];this._collectObserveTargets("",a);let u=new Map;for(let[w,T]of a)u.set(T,w);let d=[];{let w=a.map(([,N])=>N),T=new Set(u.values()),R=0;for(;w.length>0;){let N=w.shift();if(N instanceof le)for(let _ of N._deps){let S=_.node;if(u.has(S))continue;let E=S.name??"",M=E;if(!M||T.has(M))if(E){let A=2;for(;T.has(`${E}#${A}`);)A++;M=`${E}#${A}`}else for(M=`__internal__/${R++}`;T.has(M);)M=`__internal__/${R++}`;u.set(S,M),T.add(M),d.push([M,S]),w.push(S)}}}let c=[...a,...d],l={};for(let[w,T]of c){if(n!=null&&!T.allowsObserve(n))continue;let R=dr(T,i),N=T instanceof le?T._deps.map(M=>u.get(M.node)??M.node.name??""):[],{name:_,...S}=R,E={...S,deps:N};if(!s){let M=this._annotations.get(w);M!=null&&(E.annotation=M)}if(r!=null)if(typeof r=="function"){let M=r;if(!(M.length>=2?M(w,E):M(E)))continue}else{let M=!0;for(let[A,j]of Object.entries(r)){let K=A==="deps_includes"?"depsIncludes":A==="meta_has"?"metaHas":A;if(K==="depsIncludes"){if(!E.deps.includes(String(j))){M=!1;break}continue}if(K==="metaHas"){if(!Object.hasOwn(E.meta??{},String(j))){M=!1;break}continue}if(E[K]!==j){M=!1;break}}if(!M)continue}l[w]=E}let p=new Set(Object.keys(l)),f=[];for(let[w,T]of c)if(T instanceof le)for(let R of T._deps){let N=u.get(R.node);N!=null&&f.push([N,w])}f.sort((w,T)=>w[0]<T[0]?-1:w[0]>T[0]?1:w[1]<T[1]?-1:w[1]>T[1]?1:0);let m=f.map(([w,T])=>({from:w,to:T}));(n!=null||r!=null)&&(m=m.filter(w=>p.has(w.from)&&p.has(w.to)));let y=this._collectSubgraphs(""),g=n!=null||r!=null?y.filter(w=>{let T=`${w}${oe}`;return[...p].some(R=>R===w||R.startsWith(T))}):y,h=this,b=e,v={name:this.name,nodes:l,edges:m,subgraphs:g,expand(w){let T={...b,format:void 0};return Array.isArray(w)?(T.fields=w,T.detail=void 0):(T.detail=w,T.fields=void 0),h.describe(T)}},x=e??{},k=x.format;return k==="json"?Wa(v,x):k==="pretty"?qa(v,x):k==="mermaid"?rs(v,x):k==="mermaid-url"?Ja(v,x):k==="d2"?Ya(v,x):k==="ascii"?Jo(v,x):v}_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}${oe}`))}return n}resourceProfile(e){return Yo(this,e)}reachable(e,n,r={}){return r.withDetail===!0?pr(this.describe(),e,n,{...r,withDetail:!0}):pr(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,u]of Object.entries(o.nodes))u.lastMutation!=null&&i.set(a,u.lastMutation);return Io(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=I(o,{name:`${r}_version`}),i=this.observe({timeline:!0,structured:!0}),a=!1,u=!1,d=()=>{a||u||(a=!0,mt(()=>{a=!1,!u&&(o+=1,s.emit(o))}))},c=i.onEvent(b=>{let v=b.type;v!=="data"&&v!=="error"&&v!=="complete"&&v!=="teardown"||d()}),l=[],p=new WeakSet,f=b=>{if(p.has(b)||u)return;p.add(b);let v=b.topology.subscribe(x=>{for(let k of x){if(k[0]!==L)continue;let w=k[1];if(d(),w.kind==="added"&&w.nodeKind==="mount"){let T=b._mounts.get(w.name);T!=null&&f(T)}}});l.push(v);for(let x of b._mounts.keys()){let k=b._mounts.get(x);k!=null&&f(k)}};f(this);let m,y=e.actor;es(y)&&(m=y.subscribe(b=>{let v=!1,x=!1;for(let k of b){let w=k[0];w===L?v=!0:(w===$||w===C||w===ce)&&(x=!0)}v&&d(),x&&(m?.(),m=void 0,d())}));let g;try{g=O([s],()=>this.describe(n),{name:r,describeKind:"derived",meta:{domain:"audit",kind:"describe"},equals:(b,v)=>b===v})}catch(b){c(),m?.();for(let v of l)v();throw i.dispose(),b}let h=Y(g);return{node:g,dispose(){u=!0,c(),m?.();for(let b of l)b();l.length=0,i.dispose(),h()}}}_explainReactive(e,n,r){let o=0,s=I(o,{name:"explain_version"}),i=this.observe({timeline:!0,structured:!0}),a=!1,u=!1,d=i.onEvent(f=>{let m=f.type;m!=="data"&&m!=="error"&&m!=="complete"&&m!=="teardown"||a||u||(a=!0,mt(()=>{a=!1,!u&&(o+=1,s.emit(o))}))}),c={...r?.maxDepth!=null?{maxDepth:r.maxDepth}:{},...r?.findCycle===!0?{findCycle:!0}:{}},l;try{l=O([s],()=>this._explainStatic(e,n,c),{name:r?.name??"explain",describeKind:"derived",meta:{domain:"audit",kind:"explain_path",from:e,to:n},equals:(f,m)=>f.found===m.found&&f.reason===m.reason&&f.steps.length===m.steps.length&&od(f.steps,m.steps)})}catch(f){throw d(),i.dispose(),f}let p=Y(l);return{node:l,dispose(){u=!0,d(),i.dispose(),p()}}}_pathsMatching(e){let n=ln(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}${oe}${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}${oe}${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}${oe}${Se}${oe}${o}`;r.push([i,s]),this._appendMetaObserveTargets(i,s,r)}}observe(e,n){let r=typeof e=="string",s=Zo(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 c=e,l=this.resolve(c);if(a!=null&&!l.allowsObserve(a))throw new Me({actor:a,action:"observe",nodeName:c});return i?this._buildStructuredObserver([[c,l]],s,"one"):{subscribe(p){return l.subscribe(p)},up(p){try{l.up?.(p)}catch(f){if(f instanceof Me)return;throw f}}}}let u=[];this._collectObserveTargets("",u),u.sort((c,l)=>c[0]<l[0]?-1:c[0]>l[0]?1:0);let d=a==null?u:u.filter(([,c])=>c.allowsObserve(a));return i?this._buildStructuredObserver(d,s,"all"):{subscribe:c=>{let l=d.map(([p,f])=>f.subscribe(m=>{c(p,m)}));return()=>{for(let p of l)p()}},up:(c,l)=>{try{this.resolve(c).up?.(l)}catch(p){if(p instanceof Me)return;throw p}}}}_buildStructuredObserver(e,n,r){let o=r==="one"?e[0]?.[0]:void 0,s=i=>{if(r==="one"&&o!=null){let c=this.resolve(o);return this._buildStructuredObserver([[o,c]],i,"one")}let a=[];this._collectObserveTargets("",a),a.sort((c,l)=>c[0]<l[0]?-1:c[0]>l[0]?1:0);let u=i.actor,d=u==null?a:a.filter(([,c])=>c.allowsObserve(u));return this._buildStructuredObserver(d,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",u=this.config.inspectorEnabled,d=(s||i)&&u,c=n.maxEvents,l=c!=null&&c>0?new Tt(c):null,p=[],f=new Set,m={},y=new Set,g=0,h=0,b=0,v=0,x=0,k=0,w=!1,T=!1,R=0,N=new Map,_=new Map,S=new Map,E=D=>{l?l.push(D):p.push(D);for(let z of f)z(D)},M=()=>o?{timestamp_ns:B(),in_batch:Et(),batch_id:R}:{},A=(D,z)=>{if(!(!d||!(D instanceof le)))return D._setInspectorHook(de=>{if(de.kind==="dep_message")N.set(D,de.depIndex);else if(de.kind==="run"){let he=de.batchData.map((X,be)=>X!=null&&X.length>0?X.at(-1):de.prevData[be]);_.set(D,he);let ye=de.batchData.map(X=>X!=null?[...X]:void 0);S.set(D,ye),i&&E({type:"derived",path:z,dep_values:he,dep_batches:ye,...M()})}})},j=D=>{let z=N.get(D),de=_.get(D);if(!s||de==null)return{};let ye=(z!=null&&z>=0&&D instanceof le?D._deps[z]:void 0)?.node,X=ye?.v,be=S.get(D);return{trigger_dep_index:z,trigger_dep_name:ye?.name,...X!=null?{trigger_version:{id:X.id,version:X.version}}:{},dep_values:[...de],...be!=null?{dep_batches:be}:{}}},K=[],Z=[];for(let[D,z]of e){let de=A(z,D);de&&K.push(de),Z.push(z.subscribe(he=>{R++;for(let ye of he){let X=ye[0],be=M();if(X===L){m[D]=ye[1];let bn=z instanceof le?z.lastMutation?.actor??Xe:Xe;E({type:"data",path:D,data:ye[1],actor:bn,...be,...j(z)})}else if(a)X===J?g++:X===V?h++:X===_e?b++:X===Ne?v++:X===Ae?x++:X===ce?k++:X===$&&!y.has(D)?w=!0:X===C&&(T=!0,y.add(D));else if(X===J)g++,E({type:"dirty",path:D,...be});else if(X===V)h++,E({type:"resolved",path:D,...be,...j(z)});else if(X===_e)b++,E({type:"invalidate",path:D,...be});else if(X===Ne)v++,E({type:"pause",path:D,lockId:ye[1],...be});else if(X===Ae)x++,E({type:"resume",path:D,lockId:ye[1],...be});else if(X===$)y.has(D)||(w=!0),E({type:"complete",path:D,...be});else if(X===C){T=!0,y.add(D);let bn=z instanceof le?z.lastMutation?.actor??Xe:Xe;E({type:"error",path:D,data:ye[1],actor:bn,...be})}else X===ce&&(k++,E({type:"teardown",path:D,...be}))}}))}let ke=!1,U=()=>{if(!ke){ke=!0;for(let D of Z)D();for(let D of K)D();for(let D of P)D({value:void 0,done:!0});P.length=0}},W=[],P=[];f.add(D=>{let z=P.shift();z?z({value:D,done:!1}):W.push(D)});let F={get values(){return m},get dirtyCount(){return g},get resolvedCount(){return h},get invalidateCount(){return b},get pauseCount(){return v},get resumeCount(){return x},get teardownCount(){return k},get events(){return l?l.toArray():[...p]},get anyCompletedCleanly(){return w},get anyErrored(){return T},get completedWithoutErrors(){return w&&!T},onEvent(D){return f.add(D),()=>f.delete(D)},dispose:U,expand(D){U();let z={...n};return typeof D=="string"?z.detail=D:Object.assign(z,D),r(Zo(z))},[Symbol.asyncIterator](){return{next(){return W.length>0?Promise.resolve({value:W.shift(),done:!1}):ke?Promise.resolve({value:void 0,done:!0}):new Promise(D=>P.push(D))},return(){return U(),Promise.resolve({value:void 0,done:!0})}}}};return n.format!=null&&this._attachFormatLogger(F,n),F}_attachFormatLogger(e,n){let r=n.format;if(r==null)return;let o=n.logger??(m=>console.log(m)),s=n.includeTypes?new Set(n.includeTypes):null,i=n.excludeTypes?new Set(n.excludeTypes):null,a=s==null&&i==null?()=>!0:m=>(s==null||s.has(m))&&(i==null||!i.has(m)),u=ed(n.theme),d=r==="stage-log"?B():0,c=m=>m==null?"":n.stageLabels?.[m]??m,l=(m,y)=>m.length>y?`${m.slice(0,y-1)}\u2026`:m,p=m=>m.type==="data"||m.type==="error"?l(pn(m.data),120):"",f=m=>{if(r==="stage-log"){let T=(B()-d)/1e9,R=c(m.path).padEnd(9);if(m.type==="data"){let N=p(m);return`[${T.toFixed(3)}s] ${R} \u2190${N?` ${N}`:""}`}if(m.type==="error"){let N=p(m);return`[${T.toFixed(3)}s] ${R} \u2717${N?` ${N}`:""}`}return m.type==="complete"?`[${T.toFixed(3)}s] ${R} \u25A0 complete`:`[${T.toFixed(3)}s] ${R} ${m.type}`}if(r==="json")try{return JSON.stringify(m)}catch{return JSON.stringify({type:m.type,path:m.path,data:"[unserializable]"})}let y=u[m.type]??"",g=m.path?`${u.path}${m.path}${u.reset} `:"",h=m.type==="data"||m.type==="error",b=m.type==="pause"||m.type==="resume",v=h?` ${pn(m.data)}`:b?` ${pn(m.lockId)}`:"",x=m.type==="data"||m.type==="resolved"||m.type==="derived"?m:void 0,k=x?.trigger_dep_name!=null?` <- ${x.trigger_dep_name}`:x?.trigger_dep_index!=null?` <- #${x.trigger_dep_index}`:"",w=m.in_batch?" [batch]":"";return`${g}${y}${m.type.toUpperCase()}${u.reset}${v}${k}${w}`};e.onEvent(m=>{a(m.type)&&o(f(m),m)})}addDisposer(e){return this._disposers.add(e),()=>{this._disposers.delete(e)}}destroy(){Qo(this._disposers,this.name),this.signal([[ce]],{internal:!0}),Qo(this._storageDisposers,this.name);for(let e of[...this._mounts.values()])e._parent=void 0,e._destroyClearOnly();this._mounts.clear(),this._nodes.clear(),this._parent=void 0,this._destroyed=!0}get destroyed(){return this._destroyed}_destroyClearOnly(){for(let e of[...this._mounts.values()])e._parent=void 0,e._destroyClearOnly();this._mounts.clear(),this._nodes.clear(),this._parent=void 0,this._destroyed=!0}snapshot(e){let{expand:n,...r}=this.describe({detail:"full"}),o={};for(let a of Object.keys(r.nodes).sort()){let{lastMutation:u,guard:d,...c}=r.nodes[a];o[a]=c}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 Mr(a,a.encode(i))}throw new Error(`snapshot: unknown format "${String(e.format)}"`)}static decode(e,n){let r=n?.config??nt,{codec:o,codecVersion:s,payload:i}=Er(e,r);return o.decode(i,s)}restore(e,n){if(Xo(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=>ln(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 u=this.tryResolve(s)?.v;if(u!=null&&u.id===i.v.id&&u.version===i.v.version)continue}try{this.set(s,i.value)}catch(a){n?.onError?.(s,a)}}}}}static fromSnapshot(e,n){Xo(e);let r=typeof n=="function"?n:n?.build,o=typeof n=="function"?void 0:n?.factories,s=new t(e.name);if(r)return r(s),s.restore(e),s;for(let f of[...e.subgraphs].sort((m,y)=>{let g=m.split(oe).length,h=y.split(oe).length;return g!==h?g-h:m<y?-1:m>y?1:0})){let m=f.split(oe),y=s;for(let g of m)y._mounts.has(g)||y.mount(g,new t(g)),y=y._mounts.get(g)}let i=o?Object.entries(o).map(([f,m])=>({re:ln(f),factory:m})):[],a=f=>{for(let m of i)if(m.re.test(f))return m.factory},u=f=>{let m=f.split(oe),y=m.pop();if(y==null||y.length===0)throw new Error(`invalid snapshot path "${f}"`);let g=s;for(let h of m){let b=g._mounts.get(h);if(!b)throw new Error(`unknown mount "${h}" in path "${f}"`);g=b}return[g,y]},d=Object.entries(e.nodes).filter(([f])=>!f.includes(`${oe}${Se}${oe}`)).sort((f,m)=>f[0]<m[0]?-1:f[0]>m[0]?1:0),c=new Map(d),l=new Map,p=!0;for(;c.size>0&&p;){p=!1;for(let[f,m]of[...c.entries()]){let y=m?.deps??[];if(!y.every(k=>l.has(k)))continue;let[g,h]=u(f),b={...m?.meta??{}},v=a(f),x;if(m?.type==="state")x=I(m.value,{meta:b});else{if(v==null)continue;x=v(h,{path:f,type:m.type,value:m.value,meta:b,deps:y,resolvedDeps:y.map(k=>l.get(k))})}g.add(x,{name:h}),l.set(f,x),c.delete(f),p=!0}}if(c.size>0){let f=[...c.keys()].sort().join(", ");throw new Error(`Graph.fromSnapshot could not reconstruct nodes without build callback: ${f}. Pass matching factories via fromSnapshot(data, { factories: { pattern: factoryFn } }).`)}return s.restore(e),s}toJSON(){return this.snapshot()}attachSnapshotStorage(e,n={}){let r=e.map(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,c)=>{if(d.disposed)return;let l=Va(c.nodes);if(d.lastSnapshot!=null&&l!==""&&l===d.lastFingerprint)return;let p=d.seq+1,f=ue(),g=d.lastSnapshot==null||p%d.compactEvery===0?{name:this.name,mode:"full",snapshot:c,seq:p,timestamp_ns:f,format_version:Ye}:{name:this.name,mode:"diff",diff:is(d.lastSnapshot,c),seq:p,timestamp_ns:f,format_version:Ye};if(d.tier.filter&&!d.tier.filter(g))return;let h;try{h=d.tier.save(g)}catch(b){n.onError?.(b,d.tier);return}if(h&&typeof h.then=="function"){let x=(d.savePending??Promise.resolve()).then(()=>h,()=>h).then(()=>{d.disposed||(d.seq=p,d.lastSnapshot=c,d.lastFingerprint=l)},k=>{n.onError?.(k,d.tier)});d.savePending=x.finally(()=>{d.savePending===x&&(d.savePending=void 0)})}else d.seq=p,d.lastSnapshot=c,d.lastFingerprint=l},s=(d,c)=>{try{o(d,c)}catch(l){n.onError?.(l,d.tier)}},i=(d,c)=>{if(!c.some(m=>{let y=this.config.messageTier(m[0]);return y>=3&&y<5}))return;if(n.filter){let m=this.tryResolve(d);if(m==null)return;let y=dr(m,rn("standard"));if(!n.filter(d,y))return}let p,f=()=>(p==null&&(p=this.snapshot()),p);for(let m of r)m.disposed||(m.debounceMs===0?s(m,f()):(m.timer==null&&(m.timer=new se),m.timer.start(m.debounceMs,()=>{m.disposed||s(m,this.snapshot())})))},a;if(n.paths!=null){let c=(typeof n.paths=="string"?this._pathsMatching(n.paths):n.paths).map(l=>{let p=this.tryResolve(l);return p==null?()=>{}:p.subscribe(f=>i(l,f))});a=()=>{for(let l of c)l()}}else a=this.observe().subscribe((d,c)=>i(d,c));let u=()=>{a();for(let d of r)d.disposed=!0,d.timer?.cancel();this._storageDisposers.delete(u)};return this._storageDisposers.add(u),{dispose:u}}async _cascadeRestore(e,n){for(let r of e){let o;try{o=await r.load?.()}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===Ye&&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?.()}catch(u){r?.onError?.(u,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===Ye&&i.nodes!=null?i:void 0;if(a!=null)try{return t.fromSnapshot(a,r)}catch(u){r?.onError?.(u,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:B(),...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(b=>!r.has(b)).sort(),i=[...r].filter(b=>!o.has(b)).sort(),a=[],u=[];for(let b of r){if(!o.has(b))continue;let v=e.nodes[b],x=n.nodes[b],k=v.v,w=x.v;k!=null&&w!=null&&k.id===w.id&&k.version!==w.version&&u.push({path:b,id:k.id,from:k.version,to:w.version});let T=k!=null&&w!=null&&k.id===w.id&&k.version===w.version;for(let R of["type","status","sentinel"]){let N=v[R],_=x[R];N!==_&&a.push({path:b,field:R,from:N,to:_})}if(!T)for(let R of["value","meta"]){let N=v[R],_=x[R];Ka(N,_)||a.push({path:b,field:R,from:N,to:_})}}let d=b=>`${b.from} ${b.to}`,c=new Set(e.edges.map(d)),l=new Set(n.edges.map(d)),p=n.edges.filter(b=>!c.has(d(b))),f=e.edges.filter(b=>!l.has(d(b))),m=new Set(e.subgraphs),y=new Set(n.subgraphs),g=[...y].filter(b=>!m.has(b)).sort(),h=[...m].filter(b=>!y.has(b)).sort();return{nodesAdded:s,nodesRemoved:i,nodesChanged:a,versionChanges:u,edgesAdded:p,edgesRemoved:f,subgraphsAdded:g,subgraphsRemoved:h}}};function is(t,e){let n=ie.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 pr(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,u=new Map,d=new Map,c=new Set;for(let[v,x]of Object.entries(t.nodes)){if(!v)continue;c.add(v);let k=x.deps??[];i.set(v,k);for(let w of k)w&&(c.add(w),a.has(w)||a.set(w,new Set),a.get(w).add(v))}for(let v of t.edges){if(v==null||typeof v!="object")continue;let x=typeof v.from=="string"?v.from:"",k=typeof v.to=="string"?v.to:"";!x||!k||(c.add(x),c.add(k),d.has(x)||d.set(x,new Set),d.get(x).add(k),u.has(k)||u.set(k,new Set),u.get(k).add(x))}if(!c.has(e))return r.withDetail?o:[];let l=r.both===!0,p=v=>{if(l){let T=i.get(v)??[],R=u.get(v),N=a.get(v),_=d.get(v),S=[...T];return R&&S.push(...R),N&&S.push(...N),_&&S.push(..._),S}if(n==="upstream"){let T=i.get(v)??[],R=u.get(v);return R?[...T,...R]:T}let x=a.get(v),k=d.get(v),w=x?[...x]:[];return k&&w.push(...k),w},f=new Set([e]),m=new Map,y=[{path:e,depth:0}],g=0,h=!1;for(;g<y.length;){let v=y[g++];if(s!=null&&v.depth>=s){p(v.path).length>0&&(h=!0);continue}for(let x of p(v.path))!x||f.has(x)||(f.add(x),m.set(x,v.depth+1),y.push({path:x,depth:v.depth+1}))}let b=[...m.keys()].sort((v,x)=>v<x?-1:v>x?1:0);return r.withDetail?{paths:b,depths:m,truncated:h}:b}function od(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 as(t,e){return $e("messaging",t,e)}var sd=1024,fr=class extends ie{_log;events;latest;hasLatest;constructor(e,n={}){super(e,n.graph),this._log=Le([],{name:"events",maxSize:n.retainedLimit??sd}),this._log.withLatest(),this.events=this._log.entries,this.add(this.events,{name:"events"}),this.latest=O([this.events],([r])=>{let o=r;return o.length===0?null:o[o.length-1]},{name:"latest",describeKind:"derived",meta:as("topic_latest")}),this.add(this.latest,{name:"latest"}),this.addDisposer(Y(this.latest)),this.hasLatest=O([this.events],([r])=>r.length>0,{name:"hasLatest",describeKind:"derived",meta:as("topic_has_latest")}),this.add(this.hasLatest,{name:"hasLatest"}),this.addDisposer(Y(this.hasLatest)),this.addDisposer(()=>{this.events.down([[$]])}),this.addDisposer(()=>this._log.disposeAllViews())}publish(e){if(e===void 0)throw new TypeError(`TopicGraph "${this.name}": publish(undefined) is not allowed (spec \xA75.12 SENTINEL).`);this._log.append(e)}attachEventStorage(e){return this._log.attachStorage(e)}retained(){return this.events.cache}get _logBundle(){return this._log}};function mr(t,e){return new fr(t,e)}xe();fe();re();Re();q();xe();fe();tt();re();var id=Fr((t,e)=>{t("observe"),t("signal"),e("write")});function us(t){let e=Le([],{name:t.name,maxSize:t.retainedLimit??1024,guard:t.guard??id,...t.versioning!=null?{versioning:t.versioning}:{}});return e.withLatest(),t.graph&&t.graph.add(e.entries,{name:t.name}),e}function cs(t){if(t===null||typeof t!="object"||Object.isFrozen(t))return t;for(let e of Object.keys(t))cs(t[e]);return Object.freeze(t)}function ad(t){let e=t.cache,r=(typeof e=="number"&&Number.isFinite(e)?e:0)+1;return t.down([[J],[L,r]]),r}function ds(t,e,n,r,o,s){let i=e(n,r,o);if(i===void 0)return;let a=s!=null?{...i,handlerVersion:s}:i;t.append(a)}function ct(t,e){let n=e.freeze??!0;return function(...o){let s=n?o.map(cs):o,i=ue(),a,u,d=!1,c;try{ee(()=>{e.seq&&(c=ad(e.seq));try{a=t(...s),e.onSuccess&&ds(e.audit,e.onSuccess,s,a,{t_ns:i,seq:c},e.handlerVersion)}catch(l){throw u=l,d=!0,l}})}catch(l){if(d&&e.onFailure){let p=u instanceof Error?u.name:typeof u;ds(e.audit,e.onFailure,s,u,{t_ns:i,seq:c,errorType:p},e.handlerVersion)}throw d?u:l}return a}}function Rt(t,e){return $e("orchestration",t,e)}var fn=class extends ie{constructor(e,n){super(e,n)}task(e,n,r={}){let o=(r.deps??[]).map(i=>this._resolveStep(i)),s=O(o,n,{name:e,describeKind:"derived",meta:Rt("task",r.meta)});return this.add(s,{name:e}),s}classify(e,n,r,o={}){let s=this._resolveStep(n),i=O([s],([a])=>{try{return{tag:r(a),value:a}}catch(u){return{tag:"error",value:a,error:u}}},{name:e,describeKind:"derived",meta:Rt("classify",o.meta)});return this.add(i,{name:e}),i}combine(e,n,r={}){let o=Object.keys(n),s=o.map(a=>this._resolveStep(n[a])),i=O(s,a=>{let u={};for(let d=0;d<o.length;d++)u[o[d]]=a[d];return u},{name:e,describeKind:"derived",meta:Rt("combine",r.meta)});return this.add(i,{name:e}),i}gate(e,n,r={}){let o=r.maxPending??1e3;if(o<1&&o!==Number.POSITIVE_INFINITY)throw new RangeError("gate: maxPending must be >= 1");let s=r.startOpen??!1;typeof n!="string"&&this.nameOf(n)===void 0&&this.add(n,{name:`${e}/source`});let i=this._resolveStep(n),a=new ie(`${e}_state`),u=I([],{name:"pending",equals:()=>!1}),d=I(s,{name:"isOpen"}),c=O([u],([U])=>U.length,{name:"count"}),l=I(0,{name:"droppedCount"}),p=us({name:"decisions",retainedLimit:1024,graph:a});a.add(u,{name:"pending"}),a.add(d,{name:"isOpen"}),a.add(c,{name:"count"}),a.add(l,{name:"droppedCount"}),this.mount(`${e}_state`,a);let f=[],m=!1,y=!1,g=s,h=d.subscribe(U=>{for(let W of U)W[0]===L&&(g=W[1])});this.addDisposer(h);function b(){u.emit([...f])}function v(U,W,P){p.append({action:U,t_ns:ue(),...W!==void 0?{items:W,count:W.length}:{},...P!==void 0?{unflushed:P}:{},...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}})}function x(U){if(f.push(U),f.length>o){let W=f.shift();l.emit(l.cache+1),v("drop",[W])}b()}function k(U){let W=f.splice(0,U);return b(),W}let w=te([i],(U,W,P)=>{let F=P.terminalDeps[0];if(F!==void 0){m=!0;let z=f.length;f=[],b(),v("teardown",void 0,z),W.down(F===!0?[[$]]:[[C,F]]);return}let D=U[0];if(D==null||D.length===0){W.down([[V]]);return}for(let z of D)g?W.emit(z):(x(z),W.down([[V]]))},{name:e,describeKind:"derived",meta:Rt("gate",r.meta)});if(this.add(w,{name:e}),r.approver!=null){r.approver.cache&&(d.emit(!0),g=!0,r.onceOnly&&(y=!0));let W=r.approver.subscribe(P=>{for(let F of P){if(F[0]!==L)continue;let D=!!F[1];if(D&&!g){if(r.onceOnly){if(y)continue;y=!0}ee(()=>{d.emit(!0);let z=k(f.length);v("open",z);for(let de of z){if(m)break;w.emit(de)}})}else if(!D&&g){if(r.onceOnly&&y)continue;ee(()=>{d.emit(!1),v("close")})}}});this.addDisposer(W)}let T=U=>{if(m)throw new Error(`gate: ${U}() called after gate was torn down`)},R=(U=1)=>{T("approve");let W=k(U);for(let P of W){if(m)break;w.emit(P)}},N=(U=1)=>{T("reject"),k(U)},_=(U,W=1)=>{T("modify");let P=[...f],F=k(W);for(let D=0;D<F.length&&!m;D++)w.emit(U(F[D],D,P))},S=()=>{T("open"),d.emit(!0);let U=k(f.length);for(let W of U){if(m)break;w.emit(W)}},E=()=>{T("close"),!(r.onceOnly&&y)&&d.emit(!1)},M=ct(R,{audit:p,freeze:!1,onSuccess:(U,W,P)=>({action:"approve",count:U[0]??1,t_ns:P.t_ns,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}}),onFailure:(U,W,P)=>({action:"drop",t_ns:P.t_ns,errorType:P.errorType,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}})}),A=ct(N,{audit:p,freeze:!1,onSuccess:(U,W,P)=>({action:"reject",count:U[0]??1,t_ns:P.t_ns,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}}),onFailure:(U,W,P)=>({action:"drop",t_ns:P.t_ns,errorType:P.errorType,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}})}),j=ct(_,{audit:p,freeze:!1,onSuccess:(U,W,P)=>({action:"modify",count:U[1]??1,t_ns:P.t_ns,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}}),onFailure:(U,W,P)=>({action:"drop",t_ns:P.t_ns,errorType:P.errorType,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}})}),K=ct(S,{audit:p,freeze:!1,onSuccess:(U,W,P)=>({action:"open",t_ns:P.t_ns,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}}),onFailure:(U,W,P)=>({action:"drop",t_ns:P.t_ns,errorType:P.errorType,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}})}),Z=ct(E,{audit:p,freeze:!1,onSuccess:(U,W,P)=>({action:"close",t_ns:P.t_ns,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}}),onFailure:(U,W,P)=>({action:"drop",t_ns:P.t_ns,errorType:P.errorType,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}})});return this.addDisposer(c.subscribe(()=>{})),{node:w,pending:u,count:c,isOpen:d,droppedCount:l,decisions:p,audit:p,approve:M,reject:A,modify:j,open:K,close:Z}}approval(e,n,r,o={}){return this.gate(e,n,{...o,approver:r,maxPending:1})}catch(e,n,r,o={}){let s=this._resolveStep(n),i=o.on??"error",a=te([s],(u,d,c)=>{let l=c.terminalDeps[0];if(l!==void 0){let f=l===!0?{kind:"complete"}:{kind:"error",error:l};if(i==="terminal"||i===f.kind){d.emit(r(f,d));return}d.down(f.kind==="complete"?[[$]]:[[C,f.error]]);return}let p=u[0];if(p==null||p.length===0){d.down([[V]]);return}for(let f of p)d.emit(f)},{name:e,describeKind:"derived",completeWhenDepsComplete:o.completeWhenDepsComplete??!(i==="complete"||i==="terminal"),errorWhenDepsError:!(i==="error"||i==="terminal"),meta:Rt("catch",o.meta)});return this.add(a,{name:e}),a}_resolveStep(e){if(typeof e=="string")return this.resolve(e);if(this.nameOf(e)===void 0)throw new Error(`PipelineGraph "${this.name}": Node dep is not registered. Pass a string path or call graph.add(node) first.`);return e}};function gr(t,e){return new fn(t,e)}async function ls(t,e,n,r){let o="",s=0;for await(let i of t.stream(e,n))r.publish({...i,seq:s++,ts:ue()}),i.type==="token"&&(o+=i.delta);return o}function ps(t,e){if(e==="json")try{return JSON.parse(ut(t))}catch(n){let r=t.slice(0,160);throw new Error(`streamingPromptNode: format:"json" \u2014 failed to parse accumulated text as JSON: ${n.message}; content preview: ${r}`)}return t}function fs(t,e){return O([t.latest],([n],r)=>{let o=r.store;if(n==null)return o.acc??"";let s=n;return s.seq===0&&(o.acc=""),s.type==="token"&&(o.acc=(o.acc??"")+s.delta),o.acc??""},{name:e,meta:H("accumulated_text"),initial:""})}function dd(t,e,n,r){let o=r?.name??"llm",s=r?.format??"text",i=mr(`${o}/stream`,{...r?.retainedLimit!=null?{retainedLimit:r.retainedLimit}:{}}),a=O(e,l=>{if(l.some(f=>f==null))return[];let p=typeof n=="string"?n:n(...l);return p?[{role:"user",content:p}]:[]},{name:`${o}::messages`,meta:H("prompt_node::messages"),initial:[]}),u=ae(a,l=>{let p=l;if(!p||p.length===0)return I(null);let f=new AbortController;async function*m(){try{let y=await ls(t,p,{model:r?.model,temperature:r?.temperature,maxTokens:r?.maxTokens,systemPrompt:r?.systemPrompt,signal:f.signal},i);yield ps(y,s)}finally{f.abort()}}return G(m())}),d=fs(i,`${o}::accumulatedText`),c=Y(u);return{output:u,deltaTopic:i,accumulatedText:d,dispose:()=>{c(),i.destroy()}}}function ud(t,e,n,r,o,s){let i=I(0,{name:`${e}/cancel`}),a=0,u=[...r,i],d=s?.name??e,c=s?.format??"text",l=mr(`${d}/stream`,{...s?.retainedLimit!=null?{retainedLimit:s.retainedLimit}:{}}),p=O(u,T=>{let R=T.slice(0,-1);if(R.some(_=>_==null))return[];let N=typeof o=="string"?o:o(...R);return N?[{role:"user",content:N}]:[]},{name:`${d}::messages`,meta:H("prompt_node::messages"),initial:[]}),f=ae(p,T=>{let R=T;if(!R||R.length===0)return I(null);let N=new AbortController;async function*_(){try{let S=await ls(n,R,{model:s?.model,temperature:s?.temperature,maxTokens:s?.maxTokens,systemPrompt:s?.systemPrompt,signal:N.signal},l);yield ps(S,c)}finally{N.abort()}}return G(_())}),m=fs(l,`${d}::accumulatedText`),y=so(f,T=>T!=null);t.add(y,{name:`${e}/raw`});let g=gr(`${e}/gate-graph`);t.mount(`${e}/gate-graph`,g),g.add(y,{name:`${e}/raw`});let h=g.gate(`${e}/gate`,`${e}/raw`,s?.gate),b=Y(f),v=Y(h.node),x=Y(m);t.addDisposer(b),t.addDisposer(v),t.addDisposer(x);let k=h.reject.bind(h),w={...h,reject(T=1){ee(()=>{k(T),i.emit(++a)})}};return{output:h.node,deltaTopic:l,accumulatedText:m,gate:w,dispose:()=>{b(),v(),x(),l.destroy()}}}q();Q();function cd(t,e){let n=e?.separator??`
|
|
6
|
+
`)}]});let s={};return e?.maxTokens!=null&&(s.maxOutputTokens=e.maxTokens),e?.temperature!=null&&(s.temperature=e.temperature),e?.maxReasoningTokens!=null&&(s.thinkingConfig={thinkingBudget:e.maxReasoningTokens}),Object.keys(s).length>0&&(o.generationConfig=s),e?.tools&&e.tools.length>0&&(o.tools=[{functionDeclarations:e.tools.map(Wi)}]),e?.providerExtras&&Object.assign(o,e.providerExtras),o}function Wi(t){return{name:t.name,description:t.description,parameters:t.parameters}}function zo(t,e,n){let r={},o=t.generationConfig;o&&(typeof o.maxOutputTokens=="number"&&(r.maxOutputTokens=o.maxOutputTokens),typeof o.temperature=="number"&&(r.temperature=o.temperature),o.thinkingConfig&&(r.thinkingConfig=o.thinkingConfig)),t.systemInstruction&&(r.systemInstruction=t.systemInstruction),t.tools&&(r.tools=t.tools);for(let[s,a]of Object.entries(t))s==="contents"||s==="generationConfig"||s==="systemInstruction"||s==="tools"||s==="abortSignal"||s==="model"||(r[s]=a);return n&&(r.abortSignal=n),{model:e,contents:t.contents,config:Object.keys(r).length>0?r:void 0}}function cr(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 Uo(t,e){let n=t.candidates?.[0],r=n?.content?.parts??[],o=[],s=[],a=0;for(let i of r)typeof i.text=="string"&&o.push(i.text),i.functionCall&&s.push({id:`${i.functionCall.name}-${a++}`,name:i.functionCall.name,arguments:i.functionCall.args??{}});return{content:o.join(""),toolCalls:s.length>0?s:void 0,usage:cr(t.usageMetadata),finishReason:n?.finishReason,latencyMs:e,model:t.modelVersion,provider:"google"}}function Hi(t){if(t.apiKey)return t.apiKey;let e=globalThis.process?.env;return e?.GOOGLE_API_KEY??e?.GEMINI_API_KEY}function Ji(t){let e=t.baseURL??"https://generativelanguage.googleapis.com/v1beta",n=t.fetchImpl??fetch,r=s=>{let a=s?.model??t.model;if(!a)throw new Error("googleAdapter: model must be set via options.model or invokeOpts.model");return a},o=()=>{let s=Hi(t);if(!s)throw new Error("googleAdapter: apiKey required for invoke/stream");return`key=${encodeURIComponent(s)}`};return{provider:"google",model:t.model,async invoke(s,a){let i=r(a),d=dn(s,a),c=z(),u=`${e}/models/${encodeURIComponent(i)}:generateContent?${o()}`,l=await n(u,{method:"POST",headers:{"content-type":"application/json",...t.headers??{}},body:JSON.stringify(d),signal:a?.signal});if(!l.ok)throw await Ve(l,"Google");let p=await l.json(),f=Math.max(0,(z()-c)/1e6);return Uo(p,f)},async*stream(s,a){let i=r(a),d=dn(s,a),c=`${e}/models/${encodeURIComponent(i)}:streamGenerateContent?alt=sse&${o()}`,u=await n(c,{method:"POST",headers:{"content-type":"application/json",accept:"text/event-stream",...t.headers??{}},body:JSON.stringify(d),signal:a?.signal});if(!u.ok)throw await Ve(u,"Google");if(!u.body)throw new Error("googleAdapter: streaming response has no body");let l,p;for await(let f of gt(u.body,{signal:a?.signal})){if(!f.data)continue;let m;try{m=JSON.parse(f.data)}catch{continue}let h=m.candidates?.[0];for(let g of h?.content?.parts??[])typeof g.text=="string"&&(g.thought?yield{type:"thinking",delta:g.text}:yield{type:"token",delta:g.text}),g.functionCall&&(yield{type:"tool-call-delta",delta:{name:g.functionCall.name,argumentsDelta:JSON.stringify(g.functionCall.args??{})}});h?.finishReason&&(p=h.finishReason),m.usageMetadata&&(l=m.usageMetadata)}l&&(yield{type:"usage",usage:cr(l)}),yield{type:"finish",reason:p??"stop"}}}}function Yi(t){let e=t.sdk;if(!e)throw new Error("sdkBackedGoogle: sdk instance required");return{provider:"google",model:t.model,async invoke(n,r){let o=dn(n,r),s=r?.model??t.model;if(!s)throw new Error("googleAdapter: model required");let a=zo(o,s,r?.signal),i=z(),d=await e.models.generateContent(a),c=Math.max(0,(z()-i)/1e6);return Uo(d,c)},async*stream(n,r){if(!e.models.generateContentStream)throw new Error("sdkBackedGoogle: SDK instance does not expose generateContentStream");let o=dn(n,r),s=r?.model??t.model;if(!s)throw new Error("googleAdapter: model required");let a=zo(o,s,r?.signal),i,d,c=await e.models.generateContentStream(a);for await(let u of c){let l=u.candidates?.[0];for(let p of l?.content?.parts??[])typeof p.text=="string"&&(p.thought?yield{type:"thinking",delta:p.text}:yield{type:"token",delta:p.text}),p.functionCall&&(yield{type:"tool-call-delta",delta:{name:p.functionCall.name,argumentsDelta:JSON.stringify(p.functionCall.args??{})}});l?.finishReason&&(d=l.finishReason),u.usageMetadata&&(i=u.usageMetadata)}i&&(yield{type:"usage",usage:cr(i)}),yield{type:"finish",reason:d??"stop"}}}}ge();var Qi={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 ur(t={}){return t.sdk?na(t):ta(t)}function cn(t,e,n,r,o){let s=e?.model??n;if(!s)throw new Error("openAICompatAdapter: model must be set via options.model or invokeOpts.model");let a=t.map(Xi);e?.systemPrompt&&!t.some(d=>d.role==="system")&&a.unshift({role:"system",content:e.systemPrompt});let i={model:s,messages:a};return e?.maxTokens!=null&&(i.max_tokens=e.maxTokens),e?.temperature!=null&&(i.temperature=e.temperature),e?.tools&&e.tools.length>0&&(i.tools=e.tools.map(Zi)),e?.maxReasoningTokens!=null&&(i.reasoning={max_tokens:e.maxReasoningTokens}),r&&(i.stream=!0,i.stream_options={include_usage:!0}),o&&Object.assign(i,o),e?.providerExtras&&Object.assign(i,e.providerExtras),i}function Xi(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 Zi(t){return{type:"function",function:{name:t.name,description:t.description,parameters:t.parameters}}}function lr(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 qo(t,e,n){let r=t.choices[0],o=r?.message,s=o?.content??"",a=(o?.tool_calls??[]).map(i=>({id:i.id,name:i.function.name,arguments:ea(i.function.arguments)}));return{content:s,toolCalls:a.length>0?a:void 0,usage:lr(t.usage),finishReason:r?.finish_reason,latencyMs:e,model:t.model,provider:n}}function ea(t){try{let e=JSON.parse(t);return typeof e=="object"&&e!=null?e:{_raw:t}}catch{return{_raw:t}}}function Wo(t){let e=t.preset??"openai",n=Qi[e],r=t.baseURL??n.baseURL,o=t.provider??n.provider,s=n.apiKeyEnv,a=t.apiKey??(s?globalThis.process?.env?.[s]:void 0);return{provider:o,baseURL:r,apiKey:a}}function ta(t){let{provider:e,baseURL:n,apiKey:r}=Wo(t),o=t.fetchImpl??fetch,s=e!=="ollama",a=()=>{let i={"content-type":"application/json",...t.headers??{}};if(s){if(!r)throw new Error(`openAICompatAdapter[${e}]: apiKey required for invoke/stream`);i.authorization=`Bearer ${r}`}return i};return{provider:e,model:t.model,async invoke(i,d){let c=cn(i,d,t.model,!1,t.bodyExtras),u=z(),l=await o(`${n}/chat/completions`,{method:"POST",headers:a(),body:JSON.stringify(c),signal:d?.signal});if(!l.ok)throw await Ve(l,e);let p=await l.json(),f=Math.max(0,(z()-u)/1e6);return qo(p,f,e)},async*stream(i,d){let c=cn(i,d,t.model,!0,t.bodyExtras),u=await o(`${n}/chat/completions`,{method:"POST",headers:{...a(),accept:"text/event-stream"},body:JSON.stringify(c),signal:d?.signal});if(!u.ok)throw await Ve(u,e);if(!u.body)throw new Error(`openAICompatAdapter[${e}]: streaming response has no body`);let l,p;for await(let f of gt(u.body,{signal:d?.signal})){if(!f.data||f.data==="[DONE]")continue;let m;try{m=JSON.parse(f.data)}catch{continue}let h=m.choices;if(h){let g=h[0];if(g?.delta?.content&&(yield{type:"token",delta:g.delta.content}),g?.delta?.reasoning_content&&(yield{type:"thinking",delta:g.delta.reasoning_content}),g?.delta?.tool_calls)for(let y of g.delta.tool_calls)yield{type:"tool-call-delta",delta:{id:y.id,name:y.function?.name,argumentsDelta:y.function?.arguments}};g?.finish_reason&&(p=g.finish_reason)}m.usage&&(l=m.usage,yield{type:"usage",usage:lr(l)})}yield{type:"finish",reason:p??"stop"}}}}function na(t){let e=t.sdk;if(!e)throw new Error("sdkBackedOpenAI: sdk instance required");let{provider:n}=Wo(t);return{provider:n,model:t.model,async invoke(r,o){let s=cn(r,o,t.model,!1,t.bodyExtras),a=z(),i=await e.chat.completions.create(s,{signal:o?.signal}),d=Math.max(0,(z()-a)/1e6);return qo(i,d,n)},async*stream(r,o){let s=cn(r,o,t.model,!0,t.bodyExtras),a=await e.chat.completions.create(s,{signal:o?.signal}),i,d;for await(let c of a){let u=c.choices;if(u){let p=u[0];if(p?.delta?.content&&(yield{type:"token",delta:p.delta.content}),p?.delta?.reasoning_content&&(yield{type:"thinking",delta:p.delta.reasoning_content}),p?.delta?.tool_calls)for(let f of p.delta.tool_calls)yield{type:"tool-call-delta",delta:{id:f.id,name:f.function?.name,argumentsDelta:f.function?.arguments}};p?.finish_reason&&(d=p.finish_reason)}let l=c.usage;l&&(i=l,yield{type:"usage",usage:lr(l)})}yield{type:"finish",reason:d??"stop"}}}}function ra(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 er(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 dr(e)}case"dry-run":{let e={model:t.model,...t.extras};return et(e)}case"fallback":{let e={provider:t.provider,model:t.model,...t.extras};return ar(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 ur(e)}default:{let e=t.provider;throw new Error(`createAdapter: unknown provider: ${String(e)}`)}}}ge();Q();Ne();se();ve();Q();var pr=class{_version=0;_maxSize;_buf;_head=0;_size=0;constructor(e,n){if(n!==void 0&&n<1)throw new RangeError("maxSize must be >= 1");if(this._maxSize=n,n!==void 0){if(this._buf=new Array(n),e&&e.length>0){let r=Math.min(e.length,n),o=e.length-r;for(let s=0;s<r;s++)this._buf[s]=e[o+s];this._size=r}}else this._buf=e?[...e]:[],this._size=this._buf.length}get version(){return this._version}get size(){return this._size}at(e){if(!Number.isInteger(e))return;let n=e>=0?e:this._size+e;if(!(n<0||n>=this._size))return this._maxSize!==void 0?this._buf[(this._head+n)%this._maxSize]:this._buf[n]}append(e){this._rawAppend(e),this._version+=1}appendMany(e){if(e.length===0)return;let n=this._maxSize!==void 0&&e.length>this._maxSize?e.length-this._maxSize:0;for(let r=n;r<e.length;r++)this._rawAppend(e[r]);this._version+=1}clear(){if(this._size===0)return 0;let e=this._size;if(this._maxSize===void 0)this._buf.length=0;else for(let n=0;n<e;n++)this._buf[(this._head+n)%this._maxSize]=void 0;return this._head=0,this._size=0,this._version+=1,e}trimHead(e){if(!Number.isInteger(e)||e<0)throw new RangeError(`trimHead: n must be a non-negative integer (got ${e})`);if(e===0||this._size===0)return 0;let n=Math.min(e,this._size);if(this._maxSize===void 0)this._buf.splice(0,n);else{for(let r=0;r<n;r++)this._buf[(this._head+r)%this._maxSize]=void 0;this._head=(this._head+n)%this._maxSize}return this._size-=n,this._version+=1,n}slice(e,n){if(!Number.isInteger(e)||e<0)throw new RangeError(`slice: start must be a non-negative integer (got ${e})`);if(n!==void 0&&(!Number.isInteger(n)||n<0))throw new RangeError(`slice: stop must be a non-negative integer or undefined (got ${n})`);let r=n===void 0?this._size:Math.min(Math.max(n,0),this._size),o=Math.min(e,this._size);if(o>=r)return[];let s=r-o;if(this._maxSize===void 0)return this._buf.slice(o,r);let a=new Array(s);for(let i=0;i<s;i++)a[i]=this._buf[(this._head+o+i)%this._maxSize];return a}tail(e){if(!Number.isInteger(e)||e<0)throw new RangeError(`tail: n must be a non-negative integer (got ${e})`);if(e===0||this._size===0)return[];let n=Math.min(e,this._size);return this.slice(this._size-n,this._size)}toArray(){if(this._maxSize===void 0)return[...this._buf];let e=new Array(this._size);for(let n=0;n<this._size;n++)e[n]=this._buf[(this._head+n)%this._maxSize];return e}snapshot(){return this.toArray()}restore(e){if(this._maxSize===void 0){this._buf.length=0;for(let n=0;n<e.length;n++)this._buf.push(e[n]);this._size=this._buf.length}else{let n=this._maxSize;for(let s=0;s<n;s++)this._buf[s]=void 0;this._head=0;let r=Math.min(e.length,n),o=e.length-r;for(let s=0;s<r;s++)this._buf[s]=e[o+s];this._size=r}this._version+=1}_rawAppend(e){if(this._maxSize===void 0){this._buf.push(e),this._size=this._buf.length;return}this._size<this._maxSize?(this._buf[(this._head+this._size)%this._maxSize]=e,this._size+=1):(this._buf[this._head]=e,this._head=(this._head+1)%this._maxSize)}};function At(t){return t.subscribe(()=>{})}var oa=64;function $e(t,e={}){let{name:n,maxSize:r,versioning:o,guard:s,backend:a}=e,i=a??new pr(t,r),d=F(i.toArray(),{name:n,describeKind:"state",equals:(v,x)=>v===x,...o!=null?{versioning:o}:{},...s!=null?{guard:s}:{}});function c(){let v=i.toArray();ne(()=>{d.down([[X]],{internal:!0}),d.down([[D,v]],{internal:!0})})}let u=new Map,l=new Map,p=new Map;function f(v,x){return`${v}:${x===void 0?"END":x}`}function m(v){if(v.size<oa)return;let x=v.keys().next();if(x.done)return;let R=v.get(x.value);R!==void 0&&R.dispose(),v.delete(x.value)}function h(v){let x=i.version;try{return v()}finally{i.version!==x&&c()}}function g(v){if(!Number.isInteger(v)||v<0)throw new RangeError(`tail: n must be a non-negative integer (got ${v})`);let x=u.get(v);if(x!==void 0)return u.delete(v),u.set(v,x),x.node;m(u);let R=A([d],([N])=>{let L=N;return v===0||L.length===0?[]:L.slice(Math.max(0,L.length-v))},{initial:i.tail(v),describeKind:"derived"}),M=At(R);return u.set(v,{node:R,dispose:M}),R}function y(v,x){if(!Number.isInteger(v)||v<0)throw new RangeError(`slice: start must be a non-negative integer (got ${v})`);if(x!==void 0&&(!Number.isInteger(x)||x<0))throw new RangeError(`slice: stop must be a non-negative integer or undefined (got ${x})`);let R=f(v,x),M=l.get(R);if(M!==void 0)return l.delete(R),l.set(R,M),M.node;m(l);let N=A([d],([_])=>{let E=_;return x===void 0?E.slice(v):E.slice(v,x)},{initial:i.slice(v,x),describeKind:"derived"}),L=At(N);return l.set(R,{node:N,dispose:L}),N}function T(v){let x=p.get(v);if(x!==void 0)return x.node;let R=A([d,v],([N,L])=>{let _=N,E=Math.max(0,Math.trunc(L??0));return _.slice(E)},{initial:[],describeKind:"derived"}),M=At(R);return p.set(v,{node:R,dispose:M}),R}let b,w;function k(){b===void 0&&(b=te([d],(v,x,R)=>{let M=v[0],L=M!=null&&M.length>0?M.at(-1):R.prevData[0];if(L==null||L.length===0){x.down([[U]]);return}x.emit(L[L.length-1])},{name:n!=null?`${n}::lastValue`:"lastValue",describeKind:"derived",initial:i.size===0?void 0:i.at(i.size-1)}),w=A([d],([v])=>v.length>0,{name:n!=null?`${n}::hasLatest`:"hasLatest",describeKind:"derived",initial:i.size>0}),At(b),At(w))}let S={entries:d,get size(){return i.size},at(v){return i.at(v)},append(v){h(()=>i.append(v))},appendMany(v){v.length!==0&&h(()=>i.appendMany(v))},clear(){h(()=>i.clear())},trimHead(v){h(()=>i.trimHead(v))},withLatest(){return k(),d},get lastValue(){return k(),b},get hasLatest(){return k(),w},view(v){switch(v.kind){case"tail":return g(v.n);case"slice":return y(v.start,v.stop);case"fromCursor":return T(v.cursor)}},attach(v){let x=v.subscribe(R=>{for(let M of R)M[0]===D&&S.append(M[1])});return()=>x()},attachStorage(v){if(v.length===0)return()=>{};let x=new Map;for(let M of v)x.set(M,i.size);(async()=>{for(let M of v)if(typeof M.loadEntries=="function")try{let N=await Promise.resolve(M.loadEntries());N.entries.length>0&&i.size===0&&(i.restore(N.entries),x.set(M,N.entries.length),c());break}catch{}})();let R=d.subscribe(M=>{for(let N of M){if(N[0]!==D)continue;let L=N[1];for(let _ of v){let E=x.get(_)??0;if(L.length<E){try{let K=_.appendEntries(L);K instanceof Promise&&K.catch(()=>{})}catch{}x.set(_,L.length);continue}if(L.length===E)continue;let I=L.slice(E);x.set(_,L.length);try{let K=_.appendEntries(I);K instanceof Promise&&K.catch(()=>{})}catch{}}}});return()=>R()},disposeAllViews(){for(let v of u.values())v.dispose();u.clear();for(let v of l.values())v.dispose();l.clear();for(let v of p.values())v.dispose();p.clear()},dispose(){for(let v of u.values())v.dispose();u.clear();for(let v of l.values())v.dispose();l.clear();for(let v of p.values())v.dispose();p.clear()}};return S}Z();function Ge(t){let e=t.input,n=e.regular+(e.cacheRead??0)+(e.cacheWrite5m??0)+(e.cacheWrite1h??0)+(e.cacheWriteOther??0)+(e.audio??0)+(e.image??0)+(e.video??0)+(e.toolUse??0);if(!e.extensions)return n;let r=0;for(let o of Object.values(e.extensions))r+=o;return n+r}function Ke(t){let e=t.output,n=e.regular+(e.reasoning??0)+(e.audio??0)+(e.predictionAccepted??0)+(e.predictionRejected??0);if(!e.extensions)return n;let r=0;for(let o of Object.values(e.extensions))r+=o;return n+r}function Ho(){return{input:{regular:0},output:{regular:0}}}function sa(t,e){let n=e?.logMax??1e3,r=$e(void 0,{name:e?.name?`${e.name}/stats`:"adapterStats",maxSize:n}),o=F(null,{name:"adapterStats/lastCall"}),s=A([r.entries],([h])=>h.length,{name:"adapterStats/totalCalls",initial:0}),a=A([r.entries],([h])=>h.reduce((g,y)=>g+Ge(y.usage),0),{name:"adapterStats/totalInputTokens",initial:0}),i=A([r.entries],([h])=>h.reduce((g,y)=>g+Ke(y.usage),0),{name:"adapterStats/totalOutputTokens",initial:0}),d=[Y(s),Y(a),Y(i)],c=h=>{r.append(h),o.emit(h)},u=()=>{r.clear(),o.emit(null)},l=Te(t,{invoke(h,g){let y=z(),T=ie(),b=t.model??g?.model??"",w=S=>(c(tt({provider:t.provider,model:t.model??g?.model??S.model??"",tier:g?.tier??S.tier,usage:S.usage??Fe(),startNs:y,startWallClockNs:T,method:"invoke"})),S),k=S=>{let v=S;c(tt({provider:t.provider,model:b,tier:g?.tier,usage:Fe(),startNs:y,startWallClockNs:T,method:"invoke",error:{type:v?.name??"Error",message:v?.message??String(S)}}))};return an(t.invoke(h,g),{onResp:w,onError:k,name:"adapterStats/invokeTap"})},async*stream(h,g){let y=z(),T=ie(),b=t.model??g?.model??"",w;try{for await(let k of t.stream(h,g))k.type==="usage"&&(w=k.usage),yield k;c(tt({provider:t.provider,model:b,tier:g?.tier,usage:w??Fe(),startNs:y,startWallClockNs:T,method:"stream"}))}catch(k){let S=k;throw c(tt({provider:t.provider,model:b,tier:g?.tier,usage:w??Fe(),startNs:y,startWallClockNs:T,method:"stream",error:{type:S?.name??"Error",message:S?.message??String(k)}})),k}}});be(l,"observableAdapter",t);let p=!1;return{adapter:l,stats:{lastCall:o,allCalls:r,totalCalls:s,totalInputTokens:a,totalOutputTokens:i,reset:u,dispose:()=>{if(!p){p=!0;for(let h of d)h();d.length=0}}}}}function ia(t,e){return t==null?0:typeof t=="number"?t:t.thresholdTokens!=null&&t.pricePerMillionAbove!=null&&e>t.thresholdTokens?t.pricePerMillionAbove:t.pricePerMillion}function ln(t="USD"){return{total:0,currency:t}}function fr(t,e,n){let r=Ge(t),o=e.currency??"USD",s=n?.withBreakdown===!0,a=s?{}:null,i=0,d=(g,y,T)=>{if(!y||T==null)return;let b=ia(T,r),w=y*b/1e6;i+=w,s&&(a[g]=(a[g]??0)+w)},c=t.input,u=e.input;if(u&&(d("input.regular",c.regular,u.regular),d("input.cacheRead",c.cacheRead??0,u.cacheRead),d("input.cacheWrite5m",c.cacheWrite5m??0,u.cacheWrite5m),d("input.cacheWrite1h",c.cacheWrite1h??0,u.cacheWrite1h),d("input.cacheWriteOther",c.cacheWriteOther??0,u.cacheWriteOther),d("input.audio",c.audio??0,u.audio),d("input.image",c.image??0,u.image),d("input.video",c.video??0,u.video),d("input.toolUse",c.toolUse??0,u.toolUse),c.extensions&&u.extensions))for(let[g,y]of Object.entries(c.extensions))d(`input.ext.${g}`,y,u.extensions[g]);let l=t.output,p=e.output;if(p&&(d("output.regular",l.regular,p.regular),d("output.reasoning",l.reasoning??0,p.reasoning),d("output.audio",l.audio??0,p.audio),d("output.predictionAccepted",l.predictionAccepted??0,p.predictionAccepted),d("output.predictionRejected",l.predictionRejected??0,p.predictionRejected),l.extensions&&p.extensions))for(let[g,y]of Object.entries(l.extensions))d(`output.ext.${g}`,y,p.extensions[g]);let f=n?.tier;if(f&&e.tierMultipliers){let g=e.tierMultipliers[f];if(g!=null&&(i*=g,s))for(let y of Object.keys(a))a[y]*=g}let m=t.auxiliary,h=e.auxiliary;if(m&&h)for(let[g,y]of Object.entries(m)){let T=h[g];if(T==null||!y)continue;let b=y*T;i+=b,s&&(a[`auxiliary.${g}`]=b)}return s?{total:i,currency:o,breakdown:a}:{total:i,currency:o}}function un(t,e){return`${t}::${e}`}function aa(t){let e=new Map,n=new Map,r=(o,s,a)=>{e.set(un(o,s),{provider:o,model:s,pricing:a});let i=n.get(o);i||(i=new Set,n.set(o,i)),i.add(s)};if(t)for(let[o,s,a]of t)r(o,s,a);return{register:r,lookup(o,s){let a=e.get(un(o,s));if(a)return a.pricing;let i=n.get(o);if(!i)return;let d;for(let c of i)if(s.startsWith(c)&&(!d||c.length>d.key.length)){let u=e.get(un(o,c));u&&(d={key:c,pricing:u.pricing})}return d?.pricing},remove(o,s){let a=e.delete(un(o,s));if(a){let i=n.get(o);i?.delete(s),i&&i.size===0&&n.delete(o)}return a},entries(){let o=e.values();return(function*(){for(let{provider:s,model:a,pricing:i}of o)yield[s,a,i]})()}}}function da(t,e="USD"){return(n,r)=>{let o=t.lookup(r.provider,r.model);return o?fr(n,o,{tier:r.tier,withBreakdown:r.withBreakdown}):ln(e)}}function ca(...t){return(e,n)=>{for(let r of t){let o=r(e,n);if(o.total!==0)return o}return t.length>0?t[0](e,n):ln()}}function ua(t,e,n){return t?.pricing?fr(e,t.pricing,n):ln()}mt();Z();function mr(t,e={}){let n=e.breaker??St(e),r=Te(t,{async invoke(o,s){if(!n.canExecute())throw new ze;try{let a=await _e(V(t.invoke(o,s)));return n.recordSuccess(),a}catch(a){throw n.recordFailure(a),a}},async*stream(o,s){if(!n.canExecute())throw new ze;try{for await(let a of t.stream(o,s))yield a;n.recordSuccess()}catch(a){throw n.recordFailure(a),a}}});return be(r,"withBreaker",t),{adapter:r,breaker:n}}ge();se();Q();Z();var pn=class extends Error{constructor(n,r,o){super(`Budget exhausted: ${n} (limit=${r}, observed=${o})`);this.which=n;this.limit=r;this.observed=o}name="BudgetExhaustedError"},gr=Object.freeze({calls:0,inputTokens:0,outputTokens:0,usd:0}),Jo=()=>({calls:0,inputTokens:0,outputTokens:0,usd:0});function hr(t,e){let n=$e(void 0,{name:e.name?`${e.name}/log`:"budgetGate/log",maxSize:e.logMax??1e3}),r=F(Jo(),{name:e.name?`${e.name}/totals`:"budgetGate/totals"}),o=A([r],([c])=>{let u=c;return!(e.caps.calls!=null&&u.calls>=e.caps.calls||e.caps.inputTokens!=null&&u.inputTokens>=e.caps.inputTokens||e.caps.outputTokens!=null&&u.outputTokens>=e.caps.outputTokens||e.caps.usd!=null&&u.usd>=e.caps.usd)},{name:e.name?`${e.name}/isOpen`:"budgetGate/isOpen",initial:!0});if(Y(o),e.onExhausted!=null){let c=e.onExhausted,u=!1,l=!0;o.subscribe(p=>{for(let f of p)if(f[0]===D){let m=f[1];if(u&&l&&m===!1){let h=Yo(r.cache??gr,e.caps);h&&c(h)}l=m,u=!0}})}let s=()=>{if(o.cache===!1){let c=r.cache??gr,u=Yo(c,e.caps);return new pn(u??"budget",e.caps[u??"calls"]??0,la(c,u??"calls"))}},a=(c,u)=>{let l=t.provider,p=tt({provider:l,model:u.model,tier:u.tier,usage:c,startNs:u.startNs,method:u.method,...u.error?{error:u.error}:{}});n.append(p);let f=r.cache??gr,m=e.pricingFn?f.usd+e.pricingFn(c,{model:u.model,provider:l,tier:u.tier}).total:f.usd;r.emit({calls:f.calls+1,inputTokens:f.inputTokens+Ge(c),outputTokens:f.outputTokens+Ke(c),usd:m})},i=()=>{n.clear(),r.emit(Jo())},d=Te(t,{invoke(c,u){let l=s();if(l)return Promise.reject(l);let p=z(),f=t.model??u?.model??"",m=g=>(a(g.usage??Fe(),{model:t.model??u?.model??g.model??"",tier:u?.tier??g.tier,startNs:p,method:"invoke"}),g),h=g=>{let y=g;a(Fe(),{model:f,tier:u?.tier,startNs:p,method:"invoke",error:{type:y?.name??"Error",message:y?.message??String(g)}})};return an(t.invoke(c,u),{onResp:m,onError:h,name:"budgetGate/invokeTap"})},async*stream(c,u){let l=s();if(l)throw l;let p=z(),f;try{for await(let m of t.stream(c,u))m.type==="usage"&&(f=m.usage),yield m;a(f??Fe(),{model:t.model??u?.model??"",tier:u?.tier,startNs:p,method:"stream"})}catch(m){let h=m;throw a(f??Fe(),{model:t.model??u?.model??"",tier:u?.tier,startNs:p,method:"stream",error:{type:h?.name??"Error",message:h?.message??String(m)}}),m}}});return be(d,"withBudgetGate",t),{adapter:d,budget:{totals:r,isOpen:o,log:n,reset:i}}}function Yo(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 la(t,e){switch(e){case"calls":return t.calls;case"inputTokens":return t.inputTokens;case"outputTokens":return t.outputTokens;case"usd":return t.usd}}Z();function pa(t,e){let n=e.mock??et({provider:t.provider,model:t.model}),r=typeof e.enabled=="boolean"?e.enabled:void 0,o=r===void 0?V(e.enabled):void 0,s;o&&(s=Y(o));let a=()=>r!==void 0?r:!!o?.cache,i=Te(t,{invoke(c,u){return a()?n.invoke(c,u):t.invoke(c,u)},stream(c,u){return a()?n.stream(c,u):t.stream(c,u)}});return be(i,"withDryRun",t),{adapter:i,dispose:()=>{s&&(s(),s=void 0)}}}function yr(t){if(t==null||typeof t!="object")return;let e=t,n=e.status,r=fa(e.headers);if(n!==429&&n!==503&&!Ta(e.message))return;let o={},s=r("retry-after"),a=ga(s);a!=null&&(o.retryAfterMs=a);let i=r("anthropic-ratelimit-requests-reset");if(i){let f=Qo(i);f!=null&&(o.retryAfterMs=Math.max(o.retryAfterMs??0,f))}let d=r("anthropic-ratelimit-tokens-reset");if(d){let f=Qo(d);f!=null&&(o.retryAfterMs=Math.max(o.retryAfterMs??0,f))}let c=fn(r,"x-ratelimit-limit-requests");c!=null&&(o.rpmCap=c);let u=fn(r,"x-ratelimit-limit-tokens");u!=null&&(o.tpmCap=u);let l=fn(r,"x-ratelimit-remaining-requests"),p=fn(r,"x-ratelimit-remaining-tokens");if(l!=null&&c!=null&&c>0&&(o.usageHint??={},o.usageHint.rpm=1-l/c),p!=null&&u!=null&&u>0&&(o.usageHint??={},o.usageHint.tpm=1-p/u),o.retryAfterMs==null&&e.message){let f=ya(e.message);f!=null&&(o.retryAfterMs=f)}return e.headers&&(o.metadata={headers:ma(e.headers)}),o.retryAfterMs==null&&o.rpmCap==null&&o.tpmCap==null&&o.usageHint==null?o.metadata?o:void 0:o}function fa(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 ma(t){let e={};if(typeof t.forEach=="function")return t.forEach((n,r)=>{e[r]=n}),e;for(let[n,r]of Object.entries(t))r!=null&&(e[n]=Array.isArray(r)?r.join(", "):r);return e}function fn(t,e){let n=t(e);if(n==null)return;let r=Number(n);return Number.isFinite(r)?r:void 0}function ga(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 Qo(t){if(!t)return;let e=Date.parse(t);if(Number.isFinite(e))return Math.max(0,e-Date.now())}var ha=/retry\s+(?:in|after)\s+(\d+(?:\.\d+)?)\s*(ms|s|sec|seconds?|m|min|minutes?)/i;function ya(t){let e=ha.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 ba=/rate\s*limit|too\s*many\s*requests|quota|429/i;function Ta(t){return!!t&&ba.test(t)}ge();se();Q();mt();Z();Be();function br(t){let e=new Error(t);return e.name="AbortError",e}function Zo(t={}){let e=Math.max(1,t.burstMultiplier??1),n=t.clampCooldownMs??6e4,r=t.rpm!=null?V(t.rpm):F(Number.POSITIVE_INFINITY),o=t.tpm!=null?V(t.tpm):F(Number.POSITIVE_INFINITY),s=F(Number.POSITIVE_INFINITY,{name:"adaptiveRateLimiter/signalRpmCap"}),a=F(Number.POSITIVE_INFINITY,{name:"adaptiveRateLimiter/signalTpmCap"}),i=F({},{name:"adaptiveRateLimiter/lastSignal"}),d=A([r,s],([_,E])=>Math.min(Number(_??1/0),Number(E??1/0)),{name:"adaptiveRateLimiter/effectiveRpm"}),c=A([o,a],([_,E])=>Math.min(Number(_??1/0),Number(E??1/0)),{name:"adaptiveRateLimiter/effectiveTpm"}),u=ht(Number(r.cache??Number.POSITIVE_INFINITY),e),l=ht(Number(o.cache??Number.POSITIVE_INFINITY),e),p=!1,f=!1,m=d.subscribe(_=>{for(let E of _)if(E[0]===D){let I=Number(E[1]);Number.isFinite(I)&&I>0?(u=ht(I,e),p=!1):I===1/0?(u=ht(1/0,e),p=!1):I<=0&&(p=!0)}}),h=c.subscribe(_=>{for(let E of _)if(E[0]===D){let I=Number(E[1]);Number.isFinite(I)&&I>0?(l=ht(I,e),f=!1):I===1/0?(l=ht(1/0,e),f=!1):I<=0&&(f=!0)}}),g=0,y=new pe,T=new pe,b;t.adaptation!=null&&(b=V(t.adaptation).subscribe(E=>{for(let I of E)I[0]===D&&w(I[1])}));function w(_){if(i.emit(_),_.rpmCap!=null&&Number.isFinite(_.rpmCap)&&_.rpmCap>=0&&(s.emit(_.rpmCap),Number.isFinite(n)&&n>0&&y.start(n,()=>s.emit(Number.POSITIVE_INFINITY))),_.tpmCap!=null&&Number.isFinite(_.tpmCap)&&_.tpmCap>=0&&(a.emit(_.tpmCap),Number.isFinite(n)&&n>0&&T.start(n,()=>a.emit(Number.POSITIVE_INFINITY))),_.retryAfterMs!=null&&_.retryAfterMs>0){let E=z()+_.retryAfterMs*1e6;E>g&&(g=E)}}let k=F(0,{name:"adaptiveRateLimiter/pending"}),S=F(Number.POSITIVE_INFINITY,{name:"adaptiveRateLimiter/rpmAvailable"}),v=F(Number.POSITIVE_INFINITY,{name:"adaptiveRateLimiter/tpmAvailable"}),x=_=>{k.emit((k.cache??0)+_)},R=()=>{S.emit(u.available()),v.emit(l.available())};async function M(_={}){let E=_.requestCost??1,I=_.tokenCost??0,K=_.signal;x(1);try{for(;;){if(K?.aborted)throw br("AdaptiveRateLimiter.acquire aborted");let q=z();if(g>q){let C=Math.ceil((g-q)/1e6);await mn(C,K);continue}if(E>0&&p||I>0&&f){await mn(250,K);continue}let H=u,G=l;if(!H.tryConsume(E)){await mn(Xo(H,E),K);continue}if(!(I>0?G.tryConsume(I):!0)){H.putBack(E),await mn(Xo(G,I),K);continue}R();return}}finally{x(-1)}}function N(_){_>0?l.tryConsume(_):_<0&&l.putBack(-_),R()}function L(){m(),h(),b?.(),y.cancel(),T.cancel()}return{effectiveRpm:d,effectiveTpm:c,lastSignal:i,pending:k,rpmAvailable:S,tpmAvailable:v,acquire:M,recordUsage:N,recordSignal:w,dispose:L}}function ht(t,e){if(!Number.isFinite(t)||t===1/0)return Mt(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER);let n=Math.max(1,t*e),r=t/60;return Mt(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 mn(t,e){return t<=0?Promise.resolve():e?.aborted?Promise.reject(br("AdaptiveRateLimiter.acquire aborted")):new Promise((n,r)=>{let o=new pe,s,a=()=>{o.cancel(),e&&s&&e.removeEventListener("abort",s)};o.start(t,()=>{a(),n()}),e&&(s=()=>{a(),r(br("AdaptiveRateLimiter.acquire aborted"))},e.addEventListener("abort",s,{once:!0}))})}Z();function Tr(t,e={}){let n=e.limiter??Zo({name:e.name??"rateLimiter",rpm:e.rpm,tpm:e.tpm,adaptation:e.adaptation,burstMultiplier:e.burstMultiplier}),r=(a,i)=>e.costFn?e.costFn(a,i):0,o=a=>{let i=yr(a);i&&n.recordSignal(i)},s=Te(t,{async invoke(a,i){let d=r(a,i);await n.acquire({requestCost:1,tokenCost:d,signal:i?.signal});try{let c=await _e(V(t.invoke(a,i))),u=c.usage??Ho(),p=Ge(u)+Ke(u)-d;return p>0&&n.recordUsage(p),c}catch(c){throw o(c),c}},async*stream(a,i){let d=r(a,i);await n.acquire({requestCost:1,tokenCost:d,signal:i?.signal});try{let c=0;for await(let l of t.stream(a,i))l.type==="usage"&&(c=Ge(l.usage)+Ke(l.usage)),yield l;let u=c-d;u>0&&n.recordUsage(u)}catch(c){throw o(c),c}}});return be(s,"withRateLimiter",t),{adapter:s,limiter:n}}mt();Z();var Ct=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 vr(t,e={}){if(t.length===0)throw new RangeError("cascadingLlmAdapter: tiers must be non-empty");let n=t.map(s=>({name:s.name,adapter:s.adapter,filter:s.filter,breaker:s.breaker?"canExecute"in s.breaker?s.breaker:St(s.breaker):void 0})),r=e.streamRetryBeforeFirstChunk??!0,o={provider:"cascading",model:void 0,async invoke(s,a){let i=[],d=new Map;for(let u=0;u<n.length;u++){let l=n[u];if(l.filter&&!l.filter(s,a)){i.push({name:l.name,reason:"filter"});continue}if(l.breaker&&!l.breaker.canExecute()){i.push({name:l.name,reason:"breaker"});continue}try{let p=await _e(V(l.adapter.invoke(s,a)));return l.breaker?.recordSuccess(),{...p,metadata:{...p.metadata??{},tier:l.name}}}catch(p){d.set(l.name,p),l.breaker?.recordFailure(p);let f=n[u+1];f&&e.onFallback?.(l.name,f.name,p)}}let c={skipped:i,failed:d};throw e.onExhausted?.(c),new Ct(c)},async*stream(s,a){let i=[],d=new Map;for(let u=0;u<n.length;u++){let l=n[u];if(l.filter&&!l.filter(s,a)){i.push({name:l.name,reason:"filter"});continue}if(l.breaker&&!l.breaker.canExecute()){i.push({name:l.name,reason:"breaker"});continue}let p=!1;try{for await(let f of l.adapter.stream(s,a))p=!0,yield f;l.breaker?.recordSuccess();return}catch(f){if(d.set(l.name,f),l.breaker?.recordFailure(f),p||!r)throw f;let m=n[u+1];m&&e.onFallback?.(l.name,m.name,f)}}let c={skipped:i,failed:d};throw e.onExhausted?.(c),new Ct(c)}};return be(o,`cascade[${n.map(s=>s.name).join(",")}]`),o}function va(t,e,n){let r={name:t,adapter:e};return n?.breaker&&(r.breaker=n.breaker),n?.filter&&(r.filter=n.filter),r}Z();Be();function gn(t="aborted"){let e=new Error(t);return e.name="AbortError",e}function es(t,e){return t<=0?Promise.resolve():e?.aborted?Promise.reject(gn()):new Promise((n,r)=>{let o=new pe,s,a=()=>{o.cancel(),e&&s&&e.removeEventListener("abort",s)};o.start(t,()=>{a(),n()}),e&&(s=()=>{a(),r(gn())},e.addEventListener("abort",s,{once:!0}))})}function wr(t,e={}){let n=e.attempts??3,r=e.baseDelayMs??500,o=e.maxDelayMs??1e4,s=e.strategy??"decorrelated",a=e.jitter??!0,i=e.shouldRetry??wa,d=e.retryStreaming??!0,c=(l,p)=>{if(s==="decorrelated"){let g=Math.min(o,Math.max(r,p*3));return r+Math.random()*(g-r)}let f=s==="exp"?r*2**(l-1):r*l,m=Math.min(o,f);if(!a)return m;let h=m*(.5+Math.random());return Math.min(o,h)},u=Te(t,{async invoke(l,p){if(p?.signal?.aborted)throw gn();let f,m=r;for(let h=1;h<=n;h++)try{return await _e(V(t.invoke(l,p)))}catch(g){if(f=g,h>=n||!i(g,h))throw g;let y=c(h,m);m=y,await es(y,p?.signal)}throw f},async*stream(l,p){if(p?.signal?.aborted)throw gn();if(!d){for await(let h of t.stream(l,p))yield h;return}let f,m=r;for(let h=1;h<=n;h++){let g=!1;try{for await(let y of t.stream(l,p))g=!0,yield y;return}catch(y){if(f=y,g||h>=n||!i(y,h))throw y;let T=c(h,m);m=T,await es(T,p?.signal)}}throw f}});return be(u,"withRetry",t),u}function wa(t,e){if(t==null)return!1;let n=t;return n.name==="LLMTimeoutError"?!0:n.name==="AbortError"||n.message==="aborted"||n.name==="DOMException"&&n.code!=null&&Number(n.code)===20||n.name==="BudgetExhaustedError"||n.name==="CircuitOpenError"?!1:n.status!=null?n.status===429||n.status>=500&&n.status<600:n.code&&typeof n.code=="string"&&/^E[A-Z]+$/.test(n.code)?!0:n.message?/network|timeout|socket|fetch|econn|eai_/i.test(n.message):!1}Z();Be();var yt=class extends Error{constructor(n){super(`LLM call timed out after ${n}ms`);this.ms=n}name="LLMTimeoutError"};function kr(t,e){if(e<=0)throw new RangeError("withTimeout: ms must be > 0");let n=s=>{let a=new AbortController,i=!1,d,c=new pe;return s&&(s.aborted?a.abort(s.reason):(d=()=>{c.cancel(),a.abort(s.reason)},s.addEventListener("abort",d,{once:!0}))),c.start(e,()=>{i=!0,a.abort(new yt(e))}),{signal:a.signal,cancel:()=>{c.cancel(),s&&d&&s.removeEventListener("abort",d)},timedOut:()=>i}},r=(s,a)=>{if(!a||s instanceof yt)throw s;let i=s;if(i?.name==="AbortError"||i?.name==="DOMException"&&Number(i.code)===20||s?.message==="aborted"){let c=new yt(e);throw c.cause=s,c}throw s},o=Te(t,{async invoke(s,a){let{signal:i,cancel:d,timedOut:c}=n(a?.signal);try{return await _e(V(t.invoke(s,{...a,signal:i})))}catch(u){return r(u,c())}finally{d()}},async*stream(s,a){let{signal:i,cancel:d,timedOut:c}=n(a?.signal);try{for await(let u of t.stream(s,{...a,signal:i}))yield u}catch(u){r(u,c())}finally{d()}}});return be(o,"withTimeout",t),o}function ka(t,e={}){let n={adapter:t},r=t;if(e.rateLimit){let o=Tr(r,e.rateLimit);r=o.adapter,n.rateLimiter=o.limiter}if(e.budget){let o=hr(r,e.budget);r=o.adapter,n.budget=o.budget}if(e.breaker){let o=mr(r,e.breaker);r=o.adapter,n.breaker=o.breaker}if(e.timeoutMs!=null&&(r=kr(r,e.timeoutMs)),e.retry&&(r=wr(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=vr([{name:e.name??"primary",adapter:r},{name:"fallback",adapter:e.fallback}],o)}return e.cache&&(r=Ot(r,e.cache)),n.adapter=r,n}Le();ve();Z();se();Qe();Z();Be();function W(t,e){return De("ai",t,e)}function xa(t){return t!=null&&typeof t.then=="function"}function xr(t){return typeof t=="object"&&t!==null&&"subscribe"in t&&typeof t.subscribe=="function"&&"cache"in t}function Ra(t){return t!=null&&typeof t=="object"&&Symbol.asyncIterator in t&&typeof t[Symbol.asyncIterator]=="function"}var _a=3e4;function ts(t,e){if(t.status==="settled"){let r=t.cache;if(r!==void 0)return Promise.resolve(r)}let n=e?.timeoutMs??_a;return new Promise((r,o)=>{let s=new pe,a=t.subscribe(i=>{for(let d of i){if(d[0]===D){s.cancel(),a(),r(d[1]);return}if(d[0]===P){s.cancel(),a(),o(d[1]);return}if(d[0]===$){s.cancel(),a(),o(new Error("firstDataFromNode: completed without producing a value"));return}}});s.start(n,()=>{a(),o(new Error(`firstDataFromNode: timed out after ${n}ms`))})})}async function Lt(t){return xa(t)?Lt(await t):xr(t)?ts(t):Ra(t)?ts(V(t)):t}function bt(t){let e=t.match(/^```(?:json)?\s*([\s\S]*?)\s*```[\s\S]*$/);return e?e[1]:t}function Na(t,e){let n=V(t),r=e?.refreshTrigger!=null?V(e.refreshTrigger):null,o=e?.name!==void 0?{name:e.name}:void 0,s=ae("frozenContext",o);return r==null?te([n],(a,i,d)=>{if(d.store.emitted===!0)return;let u=a[0],l=u!=null&&u.length>0?u.at(-1):d.prevData[0];if(l!==void 0)return d.store.emitted=!0,i.emit(l),{invalidate:()=>{d.store.emitted=!1}}},{name:e?.name??"frozenContext",describeKind:"derived",initial:null,meta:W("frozen_context",{...s})}):te([n,r],(a,i,d)=>{let c=a[1];if(!(c!=null&&c.length>0))return;let l=a[0],p=l!=null&&l.length>0?l.at(-1):d.prevData[0];i.emit(p)},{name:e?.name??"frozenContext",describeKind:"derived",initial:null,meta:W("frozen_context",{...s})})}se();Q();Z();function ns(t){return t!=null&&typeof t=="object"&&"content"in t?String(t.content):typeof t=="string"?t:String(t)}function Sa(t,e=200){return t.length<=e?t:`${t.slice(0,e)}\u2026`}function Rr(t,e,n,r){let o=r?.format??"text",s=r?.name??"prompt_node";r?.tools!==void 0&&o!=="raw"&&console.warn("promptNode: `tools` is set but `format !== 'raw'`. Tool calls in the response will be silently dropped \u2014 set `format: 'raw'` to receive the full LLMResponse with `toolCalls`.");let a=A(e,d=>{if(d.some(u=>u==null))return[];let c=typeof n=="string"?n:n(...d);return c?[{role:"user",content:c}]:[]},{name:`${s}::messages`,meta:W("prompt_node")});return he(a,d=>!d||d.length===0?F(null):oe(c=>{let u=!1,l=!1,p,f={model:r?.model,temperature:r?.temperature,maxTokens:r?.maxTokens,systemPrompt:r?.systemPrompt,...r?.tools!==void 0?{tools:r.tools}:{}};if(r?.abort){let y=Mo(r.abort);f.signal=y.signal,p=y.dispose}let m;try{m=t.invoke(d,f)}catch(y){return u=!0,c.down([[P,y]]),()=>{p?.()}}let g=V(m).subscribe(y=>{if(!(l||u))for(let T of y){if(u)return;if(T[0]===D){let b=T[1];if(o==="raw")c.emit(b);else try{let w=ns(b),k=o==="json"?JSON.parse(bt(w)):w;c.emit(k)}catch(w){let k=ns(b),S=new Error(`promptNode: failed to parse LLM response as JSON: ${w.message}
|
|
7
|
+
Raw content (first 200 chars): ${Sa(k)}`);u=!0,c.down([[P,S]]);return}}else if(T[0]===P){u=!0,c.down([[P,T[1]]]);return}else if(T[0]===$){u=!0,c.down([[$]]);return}else c.down([T])}});return()=>{l=!0,g(),p?.()}},{name:`${s}::call`,meta:W("prompt_node::call")}),{name:`${s}::output`,meta:r?.meta?{...W("prompt_node::output"),...r.meta}:W("prompt_node::output")})}Ne();ge();Le();Q();Z();Bt();ct();se();Q();Qe();Z();var ye={object:56,array:64,string:40,number:8,boolean:4,null:0,undefined:0,symbol:40,bigint:16,function:120,map:72,set:72,mapEntry:40,setEntry:24,date:24,regexp:48,error:64,url:80,promise:48,weakmap:40,weakset:40},Ma=Symbol.for("sizeof");function rs(t){let e=new WeakSet,n=new WeakSet,r=[t],o=0;for(;r.length>0;){let s=r.pop();o+=Ea(s,e,n,r)}return o}function Ea(t,e,n,r){if(t==null)return 0;switch(typeof t){case"number":return ye.number;case"boolean":return ye.boolean;case"string":return ye.string+t.length*2;case"bigint":return ye.bigint+Oa(t);case"symbol":return ye.symbol;case"function":return e.has(t)?0:(e.add(t),ye.function);case"undefined":return 0}let s=t;if(e.has(s))return 0;e.add(s);let a=s[Ma];if(typeof a=="function")try{let c=a.call(s);if(typeof c=="number"&&Number.isFinite(c))return c}catch{}if(s instanceof Date)return ye.date;if(s instanceof RegExp)return ye.regexp+s.source.length*2;if(s instanceof Error){let c=s.message?s.message.length*2:0,u=s.stack?s.stack.length*2:0;return ye.error+c+u}if(typeof URL<"u"&&s instanceof URL)return ye.url+s.href.length*2;if(typeof Promise<"u"&&s instanceof Promise)return ye.promise;if(s instanceof WeakMap)return ye.weakmap;if(s instanceof WeakSet)return ye.weakset;if(s instanceof Map){let c=ye.map;for(let[u,l]of s)c+=ye.mapEntry,r.push(u),r.push(l);return c}if(s instanceof Set){let c=ye.set;for(let u of s)c+=ye.setEntry,r.push(u);return c}if(Array.isArray(s)){let c=ye.array+s.length*8;for(let u of s)r.push(u);return c}if(s instanceof ArrayBuffer)return n.has(s)?0:(n.add(s),s.byteLength);if(ArrayBuffer.isView(s)){let c=s;return n.has(c.buffer)?48:(n.add(c.buffer),c.buffer.byteLength+48)}let i=ye.object,d=Object.keys(s);for(let c of d){i+=ye.string+c.length*2;try{r.push(s[c])}catch{}}return i}function Oa(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 os(t,e,n,r={}){let o=e in t.nodes,s=n in t.nodes;if(!o)return hn(e,n,"no-such-from");if(!s)return hn(e,n,"no-such-to");let a=r.maxDepth;if(a!=null&&(!Number.isInteger(a)||a<0))throw new Error("explainPath: maxDepth must be an integer >= 0");if(e===n){if(r.findCycle===!0){let c=Aa(t,e,r);if(c!=null)return c}let d=yn(e,t.nodes[e],0,r);return bn(e,n,[d])}if(a===0)return hn(e,n,"no-path");let i=ss(t,e,n,a);return i.found?bn(e,n,is(t,i.pathOrder,r)):hn(e,n,i.truncated?"max-depth-exceeded":"no-path")}function ss(t,e,n,r){let o=new Map,s=[{path:n,depth:0}],a=new Set([n]),i=0,d=!1;for(;i<s.length;){let l=s[i++];if(l.path===e)break;if(r!=null&&l.depth>=r){let h=t.nodes[l.path];h?.deps&&h.deps.length>0&&(d=!0);continue}let p=t.nodes[l.path];if(p==null)continue;let f=p.deps??[],m=new Map;for(let h=0;h<f.length;h++){let g=f[h];if(!g)continue;let y=m.get(g);y==null&&(y=[],m.set(g,y)),y.push(h)}for(let[h,g]of m)a.has(h)||(a.add(h),o.set(h,{from:l.path,depIndices:g}),s.push({path:h,depth:l.depth+1}))}if(!o.has(e))return{found:!1,pathOrder:[],truncated:d};let c=[{path:e}],u=e;for(;u!==n;){let l=o.get(u);if(l==null)return{found:!1,pathOrder:[],truncated:!1};c[c.length-1].depIndices=l.depIndices,c.push({path:l.from}),u=l.from}return{found:!0,pathOrder:c,truncated:!1}}function Aa(t,e,n){let r=t.nodes[e];if(r==null)return null;let o=r.deps??[],s=[];for(let i=0;i<o.length;i++)o[i]===e&&s.push(i);if(s.length>0){let i=yn(e,r,0,n);i.dep_index=s[0];let d=yn(e,r,1,n);return bn(e,e,[i,d])}let a=null;for(let i=0;i<o.length;i++){let d=o[i];if(!d||d===e)continue;let c=ss(t,d,e,n.maxDepth);c.found&&(a==null||c.pathOrder.length<a.pathOrder.length)&&(a=c,a={found:!0,pathOrder:[{path:e,depIndices:[i]},...c.pathOrder],truncated:!1})}return a==null?null:bn(e,e,is(t,a.pathOrder,n))}function is(t,e,n){return e.map((r,o)=>{let s=t.nodes[r.path],a=yn(r.path,s,o,n);return r.depIndices!=null&&r.depIndices.length>0&&(a.dep_index=r.depIndices[0],r.depIndices.length>1&&(a.dep_indices=[...r.depIndices])),a})}function yn(t,e,n,r){let o={path:t,type:e.type,hop:n};e.status!==void 0&&(o.status=e.status),"value"in e&&(o.value=e.value),e.v!=null&&(o.v=e.v);let s=r.annotations?.get(t)??e.annotation;s!=null&&(o.annotation=s);let a=r.lastMutations?.get(t)??e.lastMutation;return a!=null&&(o.lastMutation=a),o}function bn(t,e,n){return as(t,e,!0,"ok",n)}function hn(t,e,n){return as(t,e,!1,n,[])}function as(t,e,n,r,o){let s=Ca(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 Ca(t,e,n,r,o){if(!n)switch(r){case"no-such-from":return`explainPath: no node named "${t}"`;case"no-such-to":return`explainPath: no node named "${e}"`;case"max-depth-exceeded":return`explainPath: no path from "${t}" to "${e}" within maxDepth`;default:return`explainPath: no path from "${t}" to "${e}"`}let s=[`Causal path: ${t} \u2192 ${e} (${o.length} step(s))`];for(let a of o){let d=` ${a.hop===0?"\xB7":"\u2193"} ${a.path} (${a.type}${a.status?`/${a.status}`:""})`;if(s.push(d),"value"in a&&s.push(` value: ${La(a.value)}`),a.annotation!=null&&s.push(` annotation: ${a.annotation}`),a.lastMutation!=null){let c=a.lastMutation.actor;s.push(` actor: ${c.type}${c.id?`:${c.id}`:""}`)}}return s.join(`
|
|
8
|
+
`)}function La(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)}}Bt();Ne();ge();ct();se();Le();ve();Q();ge();function _r(t,e){if(Object.is(t,e))return!0;if(t==null||e==null||typeof t!="object"||typeof e!="object")return!1;if(Array.isArray(t)){if(!Array.isArray(e)||t.length!==e.length)return!1;for(let s=0;s<t.length;s++)if(!_r(t[s],e[s]))return!1;return!0}if(Array.isArray(e))return!1;let n=Object.keys(t),r=Object.keys(e);if(n.length!==r.length)return!1;let o=new Set(r);for(let s of n)if(!o.has(s)||!_r(t[s],e[s]))return!1;return!0}function ds(t,e){return`${t}\0${e}`}function Nr(t,e){let n=[],r=new Set(t.subgraphs),o=new Set(e.subgraphs),s=[];for(let g of o)r.has(g)||s.push(g);s.sort();for(let g of s)n.push({type:"subgraph-mounted",path:g});let a=new Set(Object.keys(t.nodes)),i=new Set(Object.keys(e.nodes)),d=[];for(let g of i)a.has(g)||d.push(g);d.sort();for(let g of d)n.push({type:"node-added",path:g,node:{...e.nodes[g]}});let c=[];for(let g of i){if(!a.has(g))continue;let y=t.nodes[g]?.meta,T=e.nodes[g]?.meta;y==null&&T==null||_r(y??{},T??{})||c.push(g)}c.sort();for(let g of c)n.push({type:"node-meta-changed",path:g,prevMeta:t.nodes[g]?.meta??{},nextMeta:e.nodes[g]?.meta??{}});let u=new Map;for(let g of t.edges)u.set(ds(g.from,g.to),g);let l=new Map;for(let g of e.edges)l.set(ds(g.from,g.to),g);let p=[];for(let[g,y]of l)u.has(g)||p.push(y);p.sort((g,y)=>g.from<y.from?-1:g.from>y.from?1:g.to<y.to?-1:g.to>y.to?1:0);for(let g of p)n.push({type:"edge-added",from:g.from,to:g.to});let f=[];for(let[g,y]of u)l.has(g)||f.push(y);f.sort((g,y)=>g.from<y.from?-1:g.from>y.from?1:g.to<y.to?-1:g.to>y.to?1:0);for(let g of f)n.push({type:"edge-removed",from:g.from,to:g.to});let m=[];for(let g of a)i.has(g)||m.push(g);m.sort();for(let g of m)n.push({type:"node-removed",path:g});let h=[];for(let g of r)o.has(g)||h.push(g);h.sort();for(let g of h)n.push({type:"subgraph-unmounted",path:g});return{events:n,flushedAt_ns:z()}}Z();Be();Jn();Cn();ve();function cs(t,e){let n=e?.topN??10,r=t.describe({detail:"standard"}),o=[],s=t._collectObserveTargets;typeof s=="function"&&s.call(t,"",o);let a=new Map;for(let[p,f]of o)a.set(p,f);let i=[];for(let[p,f]of Object.entries(r.nodes)){let m=a.get(p),h=m instanceof le?m:null,g=h?rs(h.cache):0,y=h?h._sinkCount:0,T=f.deps?.length??0,b=f.type==="effect"&&y===0,w=y===0?f.type==="effect"?"orphan-effect":f.type==="derived"?"idle-derived":f.type==="producer"?"idle-producer":null:null;i.push({path:p,type:f.type,status:f.status??"unknown",valueSizeBytes:g,subscriberCount:y,depCount:T,isOrphanEffect:b,orphanKind:w})}let d=i.reduce((p,f)=>p+f.valueSizeBytes,0),c=(p,f)=>[...i].sort(f??((m,h)=>h[p]-m[p])).slice(0,n),u=i.filter(p=>p.orphanKind!=null),l=i.filter(p=>p.isOrphanEffect);return{nodeCount:i.length,edgeCount:r.edges.length,subgraphCount:r.subgraphs.length,nodes:i,totalValueSizeBytes:d,hotspots:{byValueSize:c("valueSizeBytes"),bySubscriberCount:c("subscriberCount"),byDepCount:c("depCount")},orphans:u,orphanEffects:l}}var de="::",Se="__meta__",rt=1;function us(t,e){let n=Math.max(16,t.size*4),r=0;for(;t.size>0;){if(r++>=n){console.error(`[Graph "${e}".destroy] disposer drain exceeded cap (${n}); ${t.size} disposer(s) discarded`),t.clear();return}let o=t.values().next();if(o.done)return;let s=o.value;t.delete(s);try{s()}catch(a){console.error(`[Graph "${e}".destroy] disposer threw:`,a)}}}function gs(t){return t!=null&&typeof t=="object"&&"cache"in t&&typeof t.subscribe=="function"&&typeof t.down=="function"}function Da(t){if(t!=null)return gs(t)?t.cache:t}function ot(t){return t!=null&&typeof t=="object"&&"cache"in t&&typeof t.subscribe=="function"&&typeof t.down=="function"}function Ue(t){return ot(t)?t.cache??"":t}function ls(t){return ot(t)?t.cache??0:t}function ps(t){return ot(t)?t.cache??!1:t}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(`
|
|
9
|
+
`)}function fs(t){if(t.version!==rt)throw new Error(`unsupported snapshot version ${String(t.version)} (expected ${rt})`);for(let e of["name","nodes","edges","subgraphs"])if(!(e in t))throw new Error(`snapshot missing required key "${e}"`);if(typeof t.name!="string")throw new TypeError("snapshot 'name' must be a string");if(typeof t.nodes!="object"||t.nodes===null||Array.isArray(t.nodes))throw new TypeError("snapshot 'nodes' must be an object");if(!Array.isArray(t.edges))throw new TypeError("snapshot 'edges' must be an array");if(!Array.isArray(t.subgraphs))throw new TypeError("snapshot 'subgraphs' must be an array")}function Pa(t,e){let n=new WeakMap,r=(o,s)=>{if(Object.is(o,s))return!0;if(o==null||s==null||typeof o!="object"||typeof s!="object")return!1;let a=n.get(o);if(a==null&&(a=new WeakSet,n.set(o,a)),a.has(s))return!0;a.add(s);let i=o.constructor,d=s.constructor;if(i!==d)return!1;if(o instanceof Date)return o.getTime()===s.getTime();if(o instanceof RegExp)return o.source===s.source&&o.flags===s.flags;if(Array.isArray(o)){let p=s;if(o.length!==p.length)return!1;for(let f=0;f<o.length;f++)if(!r(o[f],p[f]))return!1;return!0}if(o instanceof Map){let p=s;if(o.size!==p.size)return!1;for(let[f,m]of o)if(!p.has(f)||!r(m,p.get(f)))return!1;return!0}if(o instanceof Set){let p=s;if(o.size!==p.size)return!1;for(let f of o){let m=!1;for(let h of p)if(r(f,h)){m=!0;break}if(!m)return!1}return!0}if(ArrayBuffer.isView(o)){let p=o,f=s;if(p.length!==f.length)return!1;for(let m=0;m<p.length;m++)if(p[m]!==f[m])return!1;return!0}let c=Object.keys(o),u=Object.keys(s);if(c.length!==u.length)return!1;let l=new Set(u);for(let p of c)if(!l.has(p)||!r(o[p],s[p]))return!1;return!0};return r(t,e)}function Ga(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+=Ga(r)}return e+="$",new RegExp(e)}var Fa={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"},$a={data:"",dirty:"",resolved:"",invalidate:"",pause:"",resume:"",complete:"",error:"",teardown:"",derived:"",path:"",reset:""};function Sr(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 ja(t){return t==="none"?$a:t==="ansi"||t==null?Fa:{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 ms(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 Ba(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 Mr(t,e,n){if(t==="")throw new Error(`Graph "${e}": ${n} name must be non-empty`);if(t.includes(de))throw new Error(`Graph "${e}": ${n} "${t}" must not contain '${de}' (path separator)`);if(t===Se)throw new Error(`Graph "${e}": ${n} name "${Se}" is reserved for meta companion paths`);Ba(t,e,n)}function Va(t,e){if(t==="")throw new Error(`Graph "${e}": resolve path must be non-empty`);let n=t.split(de);for(let r of n)if(r==="")throw new Error(`Graph "${e}": resolve path has empty segment`);return n}function Ka(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 hs(t){for(let e of t._mounts.values())hs(e);for(let e of t._nodes.values())try{e.down([[ue]],{internal:!0})}catch{}}var ce=class t{name;opts;config;_nodes=new Map;_nodeToName=new WeakMap;_mounts=new Map;_parent=void 0;_storageDisposers=new Set;_disposers=new Set;_destroyed=!1;_topology;_topologyEmitters=new Set;_factory;_factoryArgs;constructor(e,n){if(e==="")throw new Error("Graph name must be non-empty");if(e.includes(de))throw new Error(`Graph name must not contain '${de}' (got "${e}")`);if(e===Se)throw new Error(`Graph name "${Se}" is reserved for meta companion paths`);this.name=e,this.opts=Object.freeze({...n??{}}),this.config=n?.config??ut,this._traceRing=new Xe(n?.traceCapacity??1e3),n?.versioning!=null&&this.setVersioning(n.versioning),typeof n?.factory=="string"&&(this._factory=n.factory,n.factoryArgs!==void 0&&(this._factoryArgs=n.factoryArgs))}tagFactory(e,n){return this._factory=e,this._factoryArgs=n,this}ancestors(e=!0){let n=[],r=e?this:this._parent;for(;r!=null;)n.push(r),r=r._parent;return n}get topology(){return this._topology==null&&(this._topology=oe(e=>{let n=r=>{e.emit(r)};return this._topologyEmitters.add(n),()=>{this._topologyEmitters.delete(n)}},{name:`${this.name}_topology`})),this._topology}_emitTopology(e){if(!(this._topology==null||this._topologyEmitters.size===0))for(let n of this._topologyEmitters)n(e)}nameOf(e){return this._nodeToName.get(e)}add(e,n){let r=e.name,o=n?.name??r;if(o==null||o==="")throw new Error(`Graph "${this.name}": graph.add requires a non-empty name \u2014 pass via opts.name or set it on the node (e.g. state(0, { name: "x" }))`);let s=o,a=n?.annotation;if(Mr(s,this.name,"add"),this._mounts.has(s))throw new Error(`Graph "${this.name}": name "${s}" is already a mount point`);if(this._nodes.has(s))throw new Error(`Graph "${this.name}": node "${s}" already exists`);let i=this._nodeToName.get(e);if(i!==void 0)throw new Error(`Graph "${this.name}": node instance already registered as "${i}"`);return this._nodes.set(s,e),this._nodeToName.set(e,s),this._emitTopology({kind:"added",name:s,nodeKind:"node"}),a!=null&&(this._annotations.set(s,a),this.config.inspectorEnabled&&this._traceRing.push({path:s,annotation:a,timestamp_ns:z()})),e}setVersioning(e){if(e!=null)for(let n of this._nodes.values())n instanceof le&&n._applyVersioning(e)}remove(e){Mr(e,this.name,"remove");let n=this._mounts.get(e);if(n){let s={kind:"mount",nodes:[],mounts:[]},a=[];n._collectObserveTargets("",a);for(let[i,d]of a)i.includes(`${de}${Se}${de}`)||s.nodes.push(i);return s.nodes.sort(),s.mounts.push(e),s.mounts.push(...n._collectSubgraphs(`${e}${de}`)),this._mounts.delete(e),n._parent=void 0,hs(n),this._emitTopology({kind:"removed",name:e,nodeKind:"mount",audit:s}),s}let r=this._nodes.get(e);if(!r)throw new Error(`Graph "${this.name}": unknown node or mount "${e}"`);this._nodes.delete(e),this._nodeToName.delete(r),r.down([[ue]],{internal:!0});let o={kind:"node",nodes:[e],mounts:[]};return this._emitTopology({kind:"removed",name:e,nodeKind:"node",audit:o}),o}removeAll(e){let n=typeof e=="function"?e:(()=>{let s=Tn(e);return a=>s.test(a)})(),r={kind:"mount",nodes:[],mounts:[]},o=[...this._nodes.keys(),...this._mounts.keys()].filter(s=>n(s));for(let s of o){let a=this.remove(s);r.nodes.push(...a.nodes),r.mounts.push(...a.mounts)}return r.nodes.sort(),r.mounts.sort(),r}[Symbol.iterator](){let e=[...this._nodes.keys()].sort(),n=this._nodes,r=0;return{[Symbol.iterator](){return this},next(){if(r>=e.length)return{value:void 0,done:!0};let o=e[r++];return{value:[o,n.get(o)],done:!1}}}}node(e){if(e==="")throw new Error(`Graph "${this.name}": node name must be non-empty`);if(e.includes(de))return this.resolve(e);let n=this._nodes.get(e);if(!n)throw new Error(`Graph "${this.name}": unknown node "${e}"`);return n}get(e){return this.node(e).cache}set(e,n,r){let o=r?.internal===!0;this.node(e).down([[D,n]],{actor:r?.actor,internal:o,delivery:"write"})}setAll(e,n){let r=Symbol.iterator in e?e:Object.entries(e);ne(()=>{for(let[o,s]of r)this.set(o,s,n)})}invalidate(e,n){let r=n?.internal===!0;this.node(e).down([[Oe]],{actor:n?.actor,internal:r,delivery:"write"})}error(e,n,r){let o=r?.internal===!0;this.node(e).down([[P,n]],{actor:r?.actor,internal:o,delivery:"write"})}complete(e,n){let r=n?.internal===!0;this.node(e).down([[$]],{actor:n?.actor,internal:r,delivery:"write"})}edges(e){let n=e?.recursive===!0,r=new Map;if(!n){for(let[d,c]of this._nodes)r.set(c,d);let i=[];for(let[d,c]of this._nodes)if(c instanceof le)for(let u of c._deps){let l=r.get(u.node);l!=null&&i.push([l,d])}return i.sort((d,c)=>d[0]<c[0]?-1:d[0]>c[0]?1:d[1]<c[1]?-1:d[1]>c[1]?1:0),i}let o=[];this._collectObserveTargets("",o);let s=new Map;for(let[i,d]of o)s.set(d,i);let a=[];for(let[i,d]of o)if(d instanceof le)for(let c of d._deps){let u=s.get(c.node);u!=null&&a.push([u,i])}return a.sort((i,d)=>i[0]<d[0]?-1:i[0]>d[0]?1:i[1]<d[1]?-1:i[1]>d[1]?1:0),a}mount(e,n){if(n===void 0){let o=new t(e);return this.mount(e,o)}if(typeof n=="function"){let o=new t(e);return n(o),this.mount(e,o)}let r=n;if(Mr(e,this.name,"mount"),this._nodes.has(e))throw new Error(`Graph "${this.name}": cannot mount at "${e}" \u2014 node with that name exists`);if(this._mounts.has(e))throw new Error(`Graph "${this.name}": mount "${e}" already exists`);if(r===this)throw new Error(`Graph "${this.name}": cannot mount a graph into itself`);if(r._parent!=null)throw new Error(`Graph "${this.name}": this child graph is already mounted on "${r._parent.name}"`);for(let o=this;o!=null;o=o._parent)if(o===r)throw new Error(`Graph "${this.name}": mount("${e}", \u2026) would create a mount cycle`);return this._mounts.set(e,r),r._parent=this,this._emitTopology({kind:"added",name:e,nodeKind:"mount"}),r}resolve(e){let n=Va(e,this.name);return this._resolveFromSegments(n)}tryResolve(e){try{return this.resolve(e)}catch{return}}_resolveFromSegments(e){let n=e;if(n[0]===this.name&&(n=n.slice(1),n.length===0))throw new Error(`Graph "${this.name}": resolve path ends at graph name only`);let r=n[0],o=n.slice(1);if(o.length===0){let i=this._nodes.get(r);if(i)return i;throw this._mounts.has(r)?new Error(`Graph "${this.name}": path ends at subgraph "${r}" \u2014 not a node (GRAPHREFLY-SPEC \xA73.5)`):new Error(`Graph "${this.name}": unknown name "${r}"`)}let s=this._nodes.get(r);if(s&&o.length>0&&o[0]===Se)return this._resolveMetaChainFromNode(s,o,n.join(de));let a=this._mounts.get(r);if(!a)throw this._nodes.has(r)?new Error(`Graph "${this.name}": "${r}" is a node; trailing path "${o.join(de)}" is invalid`):new Error(`Graph "${this.name}": unknown mount or node "${r}"`);return a.resolve(o.join(de))}_resolveMetaChainFromNode(e,n,r){let o=e,s=0,a=[...n];for(;s<a.length;){if(a[s]!==Se)throw new Error(`Graph "${this.name}": expected ${Se} segment in meta path "${r}"`);if(s+1>=a.length)throw new Error(`Graph "${this.name}": meta path requires a key after ${Se} in "${r}"`);let i=a[s+1],d=o.meta[i];if(!d)throw new Error(`Graph "${this.name}": unknown meta "${i}" in path "${r}"`);o=d,s+=2}return o}signal(e,n){if(n?.internal!==!0){for(let o of e)if(this.config.messageTier(o[0])===3)throw new Error(`Graph "${this.name}": Graph.signal() rejects tier-3 messages (DATA / RESOLVED). Broadcast is for control-plane tiers (START / DIRTY / INVALIDATE / PAUSE / RESUME / COMPLETE / ERROR / TEARDOWN). For per-node value writes, use Graph.set or graph.node(name).down(...).`)}let r=[];if(this._signalDeliver(e,n??{},new Set,r),r.length>0)throw r[0]}_signalDeliver(e,n,r,o){for(let d of this._mounts.values())d._signalDeliver(e,n,r,o);let a=n.internal===!0?{internal:!0}:{actor:n.actor,delivery:"signal"},i=Ka(e,this.config);for(let d of[...this._nodes.keys()].sort()){let c=this._nodes.get(d);if(!r.has(c)){r.add(c);try{c.down(e,a)}catch(u){if(u instanceof Ce)throw u;o.push(u)}i.length!==0&&this._signalMetaSubtree(c,i,r,a,o)}}}_signalMetaSubtree(e,n,r,o,s){for(let a of Object.keys(e.meta).sort()){let i=e.meta[a];if(!r.has(i)){r.add(i);try{i.down(n,o)}catch(d){if(d instanceof Ce)throw d;s.push(d)}this._signalMetaSubtree(i,n,r,o,s)}}}describe(e){if(e?.reactive==="diff")return this._describeReactiveDiff(e);if(e?.reactive===!0)return this._describeReactive(e);let n=Da(e?.actor),r=e?.filter;if(e?.detail!=null&&e?.fields!=null)throw new TypeError("Graph.describe(): pass either `detail` or `fields`, not both. `detail: 'spec'` is the canonical spec projection; use `fields` only when you need a custom subset.");let o=qn(e?.detail,e?.fields),s=e?.detail==="spec",a=o,i=[];this._collectObserveTargets("",i);let d=new Map;for(let[w,k]of i)d.set(k,w);let c=[];{let w=i.map(([,v])=>v),k=new Set(d.values()),S=0;for(;w.length>0;){let v=w.shift();if(v instanceof le)for(let x of v._deps){let R=x.node;if(d.has(R))continue;let M=R.name??"",N=M;if(!N||k.has(N))if(M){let L=2;for(;k.has(`${M}#${L}`);)L++;N=`${M}#${L}`}else for(N=`__internal__/${S++}`;k.has(N);)N=`__internal__/${S++}`;d.set(R,N),k.add(N),c.push([N,R]),w.push(R)}}}let u=[...i,...c],l={};for(let[w,k]of u){if(n!=null&&!k.allowsObserve(n))continue;let S=Wn(k,a,s),v=k instanceof le?k._deps.map(N=>d.get(N.node)??N.node.name??""):[],{name:x,...R}=S,M={...R,deps:v};if(!s){let N=this._annotations.get(w);N!=null&&(M.annotation=N)}if(r!=null)if(typeof r=="function"){let N=r;if(!(N.length>=2?N(w,M):N(M)))continue}else{let N=!0;for(let[L,_]of Object.entries(r)){let E=L==="deps_includes"?"depsIncludes":L==="meta_has"?"metaHas":L;if(E==="depsIncludes"){if(!M.deps.includes(String(_))){N=!1;break}continue}if(E==="metaHas"){if(!Object.hasOwn(M.meta??{},String(_))){N=!1;break}continue}if(M[E]!==_){N=!1;break}}if(!N)continue}l[w]=M}let p=new Set(Object.keys(l)),f=[];for(let[w,k]of u)if(k instanceof le)for(let S of k._deps){let v=d.get(S.node);v!=null&&f.push([v,w])}f.sort((w,k)=>w[0]<k[0]?-1:w[0]>k[0]?1:w[1]<k[1]?-1:w[1]>k[1]?1:0);let m=f.map(([w,k])=>({from:w,to:k}));(n!=null||r!=null)&&(m=m.filter(w=>p.has(w.from)&&p.has(w.to)));let h=this._collectSubgraphs(""),g=n!=null||r!=null?h.filter(w=>{let k=`${w}${de}`;return[...p].some(S=>S===w||S.startsWith(k))}):h,y=this,T=e;return{name:this.name,nodes:l,edges:m,subgraphs:g,...this._factory!==void 0?{factory:this._factory}:{},...this._factoryArgs!==void 0?{factoryArgs:this._factoryArgs}:{},expand(w){let k={...T};return Array.isArray(w)?(k.fields=w,k.detail=void 0):(k.detail=w,k.fields=void 0),y.describe(k)}}}_collectSubgraphs(e){let n=[];for(let r of[...this._mounts.keys()].sort()){let o=e===""?r:`${e}${r}`;n.push(o),n.push(...this._mounts.get(r)._collectSubgraphs(`${o}${de}`))}return n}resourceProfile(e){return cs(this,e)}reachable(e,n,r={}){return r.withDetail===!0?Er(this.describe(),e,n,{...r,withDetail:!0}):Er(this.describe(),e,n,r)}explain(e,n,r){return r?.reactive===!0?this._explainReactive(e,n,r):this._explainStatic(Ue(e),Ue(n),{...r?.maxDepth!==void 0?{maxDepth:ls(r.maxDepth)}:{},...r?.findCycle!==void 0?{findCycle:ps(r.findCycle)}:{}})}_explainStatic(e,n,r){let o=this.describe({detail:"full"}),s=new Map(this._annotations),a=new Map;for(let[i,d]of Object.entries(o.nodes))d.lastMutation!=null&&a.set(i,d.lastMutation);return os(o,e,n,{...r?.maxDepth!=null?{maxDepth:r.maxDepth}:{},...r?.findCycle===!0?{findCycle:!0}:{},annotations:s,lastMutations:a})}_describeReactive(e){let n={...e,reactive:!1},r=e.reactiveName??"describe",o=0,s=F(o,{name:`${r}_version`}),a=this.observe({timeline:!0,structured:!0}),i=!1,d=!1,c=()=>{i||d||(i=!0,dt(()=>{i=!1,!d&&(o+=1,s.emit(o))}))},u=a.onEvent(T=>{let b=T.type;b!=="data"&&b!=="error"&&b!=="complete"&&b!=="teardown"||c()}),l=[],p=new WeakSet,f=T=>{if(p.has(T)||d)return;p.add(T);let b=T.topology.subscribe(w=>{for(let k of w){if(k[0]!==D)continue;let S=k[1];if(c(),S.kind==="added"&&S.nodeKind==="mount"){let v=T._mounts.get(S.name);v!=null&&f(v)}}});l.push(b);for(let w of T._mounts.keys()){let k=T._mounts.get(w);k!=null&&f(k)}};f(this);let m,h=e.actor;gs(h)&&(m=h.subscribe(T=>{let b=!1,w=!1;for(let k of T){let S=k[0];S===D?b=!0:(S===$||S===P||S===ue)&&(w=!0)}b&&c(),w&&(m?.(),m=void 0,c())}));let g;try{g=A([s],()=>this.describe(n),{name:r,describeKind:"derived",meta:{domain:"audit",kind:"describe"},equals:(T,b)=>T===b})}catch(T){u(),m?.();for(let b of l)b();throw a.dispose(),T}let y=Y(g);return{node:g,dispose(){d=!0,u(),m?.();for(let T of l)T();l.length=0,a.dispose(),y()}}}_describeReactiveDiff(e){let n={...e,reactive:!1},r=e.reactiveName??"describe-diff",o={name:this.name,nodes:{},edges:[],subgraphs:[]},s=this.describe(n),a=Nr(o,s),i=F(a,{name:r,meta:{domain:"audit",kind:"describe-diff"},equals:(p,f)=>p===f}),d=this._describeReactive({...e,reactiveName:void 0}),c=!1,u=d.node.subscribe(p=>{if(!c)for(let f of p){if(f[0]!==D)continue;let m=f[1],h=Nr(s,m);s=m,h.events.length!==0&&i.emit(h)}}),l=Y(i);return{node:i,dispose(){c=!0,u(),d.dispose(),i.down([[ue,"describe-diff disposed"]]),l()}}}_explainReactive(e,n,r){let o=0,s=F(o,{name:"explain_version"}),a=this.observe({timeline:!0,structured:!0}),i=!1,d=!1,c=()=>{i||d||(i=!0,dt(()=>{i=!1,!d&&(o+=1,s.emit(o))}))},u=a.onEvent(T=>{let b=T.type;b!=="data"&&b!=="error"&&b!=="complete"&&b!=="teardown"||c()}),l=[];e!=null&&ot(e)&&l.push(e),n!=null&&ot(n)&&l.push(n),r?.maxDepth!=null&&ot(r.maxDepth)&&l.push(r.maxDepth),r?.findCycle!=null&&ot(r.findCycle)&&l.push(r.findCycle);let p=()=>{for(let T of l)if(T.cache===void 0)return!1;return!0},f=()=>{let T=Ue(e),b=Ue(n);return{from:T,to:b,found:!1,reason:"pending",steps:[],text:"(awaiting reactive args)",toJSON:()=>({from:T,to:b,found:!1,reason:"pending",steps:[]})}},m;try{m=A([s],()=>{if(!p())return f();let T=Ue(e),b=Ue(n),w={...r?.maxDepth!==void 0?{maxDepth:ls(r.maxDepth)}:{},...r?.findCycle!==void 0?{findCycle:ps(r.findCycle)}:{}};return this._explainStatic(T,b,w)},{name:r?.name??"explain",describeKind:"derived",meta:{domain:"audit",kind:"explain_path",from:Ue(e),to:Ue(n)},equals:(T,b)=>T.found===b.found&&T.reason===b.reason&&T.steps.length===b.steps.length&&za(T.steps,b.steps)})}catch(T){throw u(),a.dispose(),T}let h=Y(m),g=[],y=T=>{let b;return b=T.subscribe(w=>{let k=!1,S=!1;for(let v of w){let x=v[0];x===D?k=!0:(x===$||x===P||x===ue)&&(S=!0)}(k||S)&&c(),S&&b&&(b(),b=void 0)}),()=>{b&&(b(),b=void 0)}};for(let T of l)g.push(y(T));return{node:m,dispose(){d=!0,u();for(let T of g)T?.();g.length=0,a.dispose(),h()}}}_pathsMatching(e){let n=Tn(e),r=[];return this._collectObserveTargets("",r),r.map(([o])=>o).filter(o=>n.test(o))}_collectObserveTargets(e,n){for(let r of[...this._mounts.keys()].sort()){let o=e===""?r:`${e}${de}${r}`;this._mounts.get(r)._collectObserveTargets(o,n)}for(let r of[...this._nodes.keys()].sort()){let o=this._nodes.get(r),s=e===""?r:`${e}${de}${r}`;n.push([s,o]),this._appendMetaObserveTargets(s,o,n)}}_appendMetaObserveTargets(e,n,r){for(let o of Object.keys(n.meta).sort()){let s=n.meta[o],a=`${e}${de}${Se}${de}${o}`;r.push([a,s]),this._appendMetaObserveTargets(a,s,r)}}observe(e,n){let r=typeof e=="string",s=ms(r?n:e);if(s.reactive===!0)return this._observeReactive(r?e:void 0,s);let a=s.structured===!0||s.timeline===!0||s.causal===!0||s.derived===!0||s.detail==="minimal"||s.detail==="full"||s.format!=null,i=s.actor;if(r){let u=e,l=this.resolve(u);if(i!=null&&!l.allowsObserve(i))throw new Ce({actor:i,action:"observe",nodeName:u});return a?this._buildStructuredObserver([[u,l]],s,"one"):{subscribe(p){return l.subscribe(p)},up(p){try{l.up?.(p)}catch(f){if(f instanceof Ce)return;throw f}}}}let d=[];this._collectObserveTargets("",d),d.sort((u,l)=>u[0]<l[0]?-1:u[0]>l[0]?1:0);let c=i==null?d:d.filter(([,u])=>u.allowsObserve(i));return a?this._buildStructuredObserver(c,s,"all"):{subscribe:u=>{let l=c.map(([p,f])=>f.subscribe(m=>{u(p,m)}));return()=>{for(let p of l)p()}},up:(u,l)=>{try{this.resolve(u).up?.(l)}catch(p){if(p instanceof Ce)return;throw p}}}}_observeReactive(e,n){let r=n.tiers,o=r!=null?new Set(r):null,s=n.reactiveName??"observe";return oe(a=>{let i=[],d=!1,c=!1,u=()=>{if(i.length===0||c)return;let h={events:i.slice(),flushedAt_ns:z()};i.length=0,a.emit(h)},l={...n,reactive:!1,structured:!0,timeline:!0},p=e!=null?this.observe(e,l):this.observe(l),f=h=>{c||(i.push(h),!d&&(d=!0,dt(()=>{d=!1,u()})))};for(let h of p.events)f(h);let m=p.onEvent(f);return()=>{c=!0,m(),p.dispose()}},{name:s,meta:{domain:"audit",kind:"observe-reactive"}})}_buildStructuredObserver(e,n,r){let o=r==="one"?e[0]?.[0]:void 0,s=a=>{if(r==="one"&&o!=null){let u=this.resolve(o);return this._buildStructuredObserver([[o,u]],a,"one")}let i=[];this._collectObserveTargets("",i),i.sort((u,l)=>u[0]<l[0]?-1:u[0]>l[0]?1:0);let d=a.actor,c=d==null?i:i.filter(([,u])=>u.allowsObserve(d));return this._buildStructuredObserver(c,a,"all")};return this._createObserveResult(e,n,s)}_createObserveResult(e,n,r){let o=n.timeline===!0,s=n.causal===!0,a=n.derived===!0,i=n.detail==="minimal",d=this.config.inspectorEnabled,c=(s||a)&&d,u=n.maxEvents,l=u!=null&&u>0?new Xe(u):null,p=[],f=new Set,m=n.tiers!=null?new Set(n.tiers):null,h={},g=new Set,y=0,T=0,b=0,w=0,k=0,S=0,v=!1,x=!1,R=0,M=new Map,N=new Map,L=new Map,_=B=>{if(!(m!=null&&!m.has(B.type))){l?l.push(B):p.push(B);for(let ee of f)ee(B)}},E=B=>m==null||m.has(B),I=()=>o?{timestamp_ns:z(),in_batch:Vt(),batch_id:R}:{},K=(B,ee)=>{if(!(!c||!(B instanceof le)))return B._setInspectorHook(we=>{if(we.kind==="dep_message")M.set(B,we.depIndex);else if(we.kind==="run"){let qe=we.batchData.map((re,ke)=>re!=null&&re.length>0?re.at(-1):we.prevData[ke]);N.set(B,qe);let Ee=we.batchData.map(re=>re!=null?[...re]:void 0);L.set(B,Ee),a&&_({type:"derived",path:ee,dep_values:qe,dep_batches:Ee,...I()})}})},q=B=>{let ee=M.get(B),we=N.get(B);if(!s||we==null)return{};let Ee=(ee!=null&&ee>=0&&B instanceof le?B._deps[ee]:void 0)?.node,re=Ee?.v,ke=L.get(B);return{trigger_dep_index:ee,trigger_dep_name:Ee?.name,...re!=null?{trigger_version:{id:re.id,version:re.version}}:{},dep_values:[...we],...ke!=null?{dep_batches:ke}:{}}},H=[],G=[];for(let[B,ee]of e){let we=K(ee,B);we&&H.push(we),G.push(ee.subscribe(qe=>{R++;for(let Ee of qe){let re=Ee[0],ke=I();if(re===D){h[B]=Ee[1];let Mn=ee instanceof le?ee.lastMutation?.actor??st:st;_({type:"data",path:B,data:Ee[1],actor:Mn,...ke,...q(ee)})}else if(i)re===X?E("dirty")&&y++:re===U?E("resolved")&&T++:re===Oe?E("invalidate")&&b++:re===xe?E("pause")&&w++:re===Ae?E("resume")&&k++:re===ue?E("teardown")&&S++:re===$&&!g.has(B)?E("complete")&&(v=!0):re===P&&E("error")&&(x=!0,g.add(B));else if(re===X)E("dirty")&&y++,_({type:"dirty",path:B,...ke});else if(re===U)E("resolved")&&T++,_({type:"resolved",path:B,...ke,...q(ee)});else if(re===Oe)E("invalidate")&&b++,_({type:"invalidate",path:B,...ke});else if(re===xe)E("pause")&&w++,_({type:"pause",path:B,lockId:Ee[1],...ke});else if(re===Ae)E("resume")&&k++,_({type:"resume",path:B,lockId:Ee[1],...ke});else if(re===$)E("complete")&&!g.has(B)&&(v=!0),_({type:"complete",path:B,...ke});else if(re===P){E("error")&&(x=!0,g.add(B));let Mn=ee instanceof le?ee.lastMutation?.actor??st:st;_({type:"error",path:B,data:Ee[1],actor:Mn,...ke})}else re===ue&&(E("teardown")&&S++,_({type:"teardown",path:B,...ke}))}}))}let j=!1,O=()=>{if(!j){j=!0;for(let B of G)B();for(let B of H)B();for(let B of J)B({value:void 0,done:!0});J.length=0}},C=[],J=[];f.add(B=>{let ee=J.shift();ee?ee({value:B,done:!1}):C.push(B)});let fe={get values(){return h},get dirtyCount(){return y},get resolvedCount(){return T},get invalidateCount(){return b},get pauseCount(){return w},get resumeCount(){return k},get teardownCount(){return S},get events(){return l?l.toArray():[...p]},get anyCompletedCleanly(){return v},get anyErrored(){return x},get completedWithoutErrors(){return v&&!x},onEvent(B){return f.add(B),()=>f.delete(B)},dispose:O,expand(B){O();let ee={...n};return typeof B=="string"?ee.detail=B:Object.assign(ee,B),r(ms(ee))},[Symbol.asyncIterator](){return{next(){return C.length>0?Promise.resolve({value:C.shift(),done:!1}):j?Promise.resolve({value:void 0,done:!0}):new Promise(B=>J.push(B))},return(){return O(),Promise.resolve({value:void 0,done:!0})}}}};return n.format!=null&&this._attachFormatLogger(fe,n),fe}_attachFormatLogger(e,n){let r=n.format;if(r==null)return;let o=n.logger??(m=>console.log(m)),s=n.includeTypes?new Set(n.includeTypes):null,a=n.excludeTypes?new Set(n.excludeTypes):null,i=s==null&&a==null?()=>!0:m=>(s==null||s.has(m))&&(a==null||!a.has(m)),d=ja(n.theme),c=r==="stage-log"?z():0,u=m=>m==null?"":n.stageLabels?.[m]??m,l=(m,h)=>m.length>h?`${m.slice(0,h-1)}\u2026`:m,p=m=>m.type==="data"||m.type==="error"?l(Sr(m.data),120):"",f=m=>{if(r==="stage-log"){let v=(z()-c)/1e9,x=u(m.path).padEnd(9);if(m.type==="data"){let R=p(m);return`[${v.toFixed(3)}s] ${x} \u2190${R?` ${R}`:""}`}if(m.type==="error"){let R=p(m);return`[${v.toFixed(3)}s] ${x} \u2717${R?` ${R}`:""}`}return m.type==="complete"?`[${v.toFixed(3)}s] ${x} \u25A0 complete`:`[${v.toFixed(3)}s] ${x} ${m.type}`}if(r==="json")try{return JSON.stringify(m)}catch{return JSON.stringify({type:m.type,path:m.path,data:"[unserializable]"})}let h=d[m.type]??"",g=m.path?`${d.path}${m.path}${d.reset} `:"",y=m.type==="data"||m.type==="error",T=m.type==="pause"||m.type==="resume",b=y?` ${Sr(m.data)}`:T?` ${Sr(m.lockId)}`:"",w=m.type==="data"||m.type==="resolved"||m.type==="derived"?m:void 0,k=w?.trigger_dep_name!=null?` <- ${w.trigger_dep_name}`:w?.trigger_dep_index!=null?` <- #${w.trigger_dep_index}`:"",S=m.in_batch?" [batch]":"";return`${g}${h}${m.type.toUpperCase()}${d.reset}${b}${k}${S}`};e.onEvent(m=>{i(m.type)&&o(f(m),m)})}addDisposer(e){return this._disposers.add(e),()=>{this._disposers.delete(e)}}destroy(){us(this._disposers,this.name),this.signal([[ue]],{internal:!0}),us(this._storageDisposers,this.name);for(let e of[...this._mounts.values()])e._parent=void 0,e._destroyClearOnly();this._mounts.clear(),this._nodes.clear(),this._parent=void 0,this._destroyed=!0}get destroyed(){return this._destroyed}_destroyClearOnly(){for(let e of[...this._mounts.values()])e._parent=void 0,e._destroyClearOnly();this._mounts.clear(),this._nodes.clear(),this._parent=void 0,this._destroyed=!0}snapshot(e){let{expand:n,...r}=this.describe({detail:"full"}),o={};for(let i of Object.keys(r.nodes).sort()){let{lastMutation:d,guard:c,...u}=r.nodes[i];o[i]=u}let s=[...r.subgraphs].sort(),a={...r,version:1,nodes:o,subgraphs:s};if(e?.format==null)return a;if(e.format==="json-string")return JSON.stringify(a);if(e.format==="bytes"){if(e.codec==null)throw new Error("snapshot({format: 'bytes'}) requires a `codec` name");let i=this.config.lookupCodec(e.codec);if(i==null)throw new Error(`snapshot: codec "${e.codec}" is not registered on this graph's config. Call config.registerCodec(...) before creating nodes.`);return qr(i,i.encode(a))}throw new Error(`snapshot: unknown format "${String(e.format)}"`)}static decode(e,n){let r=n?.config??ut,{codec:o,codecVersion:s,payload:a}=Wr(e,r);return o.decode(a,s)}restore(e,n){if(fs(e),e.name!==this.name)throw new Error(`Graph "${this.name}": restore snapshot name "${e.name}" does not match this graph`);let r=n?.only==null?null:(Array.isArray(n.only)?n.only:[n.only]).map(s=>Tn(s)),o=n?.includeProducers===!0;for(let s of Object.keys(e.nodes).sort()){if(r!==null&&!r.some(i=>i.test(s)))continue;let a=e.nodes[s];if(a!==void 0){if(!("value"in a)||a.value===void 0){"value"in a&&a.value===void 0&&n?.onError?.(s,new Error(`restore: slice.value is undefined for "${s}" (undefined is the global SENTINEL; not valid DATA)`));continue}if(!(a.type==="derived"||a.type==="effect")&&!(a.type==="producer"&&!o)){if(a.v!=null){let d=this.tryResolve(s)?.v;if(d!=null&&d.id===a.v.id&&d.version===a.v.version)continue}try{this.set(s,a.value)}catch(i){n?.onError?.(s,i)}}}}}static fromSnapshot(e,n){fs(e);let r=typeof n=="function"?n:n?.build,o=typeof n=="function"?void 0:n?.factories,s=new t(e.name);if(r)return r(s),s.restore(e),s;for(let f of[...e.subgraphs].sort((m,h)=>{let g=m.split(de).length,y=h.split(de).length;return g!==y?g-y:m<h?-1:m>h?1:0})){let m=f.split(de),h=s;for(let g of m)h._mounts.has(g)||h.mount(g,new t(g)),h=h._mounts.get(g)}let a=o?Object.entries(o).map(([f,m])=>({re:Tn(f),factory:m})):[],i=f=>{for(let m of a)if(m.re.test(f))return m.factory},d=f=>{let m=f.split(de),h=m.pop();if(h==null||h.length===0)throw new Error(`invalid snapshot path "${f}"`);let g=s;for(let y of m){let T=g._mounts.get(y);if(!T)throw new Error(`unknown mount "${y}" in path "${f}"`);g=T}return[g,h]},c=Object.entries(e.nodes).filter(([f])=>!f.includes(`${de}${Se}${de}`)).sort((f,m)=>f[0]<m[0]?-1:f[0]>m[0]?1:0),u=new Map(c),l=new Map,p=!0;for(;u.size>0&&p;){p=!1;for(let[f,m]of[...u.entries()]){let h=m?.deps??[];if(!h.every(k=>l.has(k)))continue;let[g,y]=d(f),T={...m?.meta??{}},b=i(f),w;if(m?.type==="state")w=F(m.value,{meta:T});else{if(b==null)continue;w=b(y,{path:f,type:m.type,value:m.value,meta:T,deps:h,resolvedDeps:h.map(k=>l.get(k))})}g.add(w,{name:y}),l.set(f,w),u.delete(f),p=!0}}if(u.size>0){let f=[...u.keys()].sort().join(", ");throw new Error(`Graph.fromSnapshot could not reconstruct nodes without build callback: ${f}. Pass matching factories via fromSnapshot(data, { factories: { pattern: factoryFn } }).`)}return s.restore(e),s}toJSON(){return this.snapshot()}attachSnapshotStorage(e,n={}){let r=e.map(c=>({tier:c,debounceMs:Math.max(0,c.debounceMs??0),compactEvery:Math.max(1,c.compactEvery??10),timer:void 0,seq:0,lastSnapshot:void 0,lastFingerprint:"",disposed:!1,savePending:void 0}));n.autoRestore===!0&&this._cascadeRestore(e,n.onError);let o=(c,u)=>{if(c.disposed)return;let l=Ia(u.nodes);if(c.lastSnapshot!=null&&l!==""&&l===c.lastFingerprint)return;let p=c.seq+1,f=ie(),g=c.lastSnapshot==null||p%c.compactEvery===0?{name:this.name,mode:"full",snapshot:u,seq:p,timestamp_ns:f,format_version:rt}:{name:this.name,mode:"diff",diff:ys(c.lastSnapshot,u),seq:p,timestamp_ns:f,format_version:rt};if(c.tier.filter&&!c.tier.filter(g))return;let y;try{y=c.tier.save(g)}catch(T){n.onError?.(T,c.tier);return}if(y&&typeof y.then=="function"){let w=(c.savePending??Promise.resolve()).then(()=>y,()=>y).then(()=>{c.disposed||(c.seq=p,c.lastSnapshot=u,c.lastFingerprint=l)},k=>{n.onError?.(k,c.tier)});c.savePending=w.finally(()=>{c.savePending===w&&(c.savePending=void 0)})}else c.seq=p,c.lastSnapshot=u,c.lastFingerprint=l},s=(c,u)=>{try{o(c,u)}catch(l){n.onError?.(l,c.tier)}},a=(c,u)=>{if(!u.some(m=>{let h=this.config.messageTier(m[0]);return h>=3&&h<5}))return;if(n.filter){let m=this.tryResolve(c);if(m==null)return;let h=Wn(m,qn("standard"));if(!n.filter(c,h))return}let p,f=()=>(p==null&&(p=this.snapshot()),p);for(let m of r)m.disposed||(m.debounceMs===0?s(m,f()):(m.timer==null&&(m.timer=new pe),m.timer.start(m.debounceMs,()=>{m.disposed||s(m,this.snapshot())})))},i;if(n.paths!=null){let u=(typeof n.paths=="string"?this._pathsMatching(n.paths):n.paths).map(l=>{let p=this.tryResolve(l);return p==null?()=>{}:p.subscribe(f=>a(l,f))});i=()=>{for(let l of u)l()}}else i=this.observe().subscribe((c,u)=>a(c,u));let d=()=>{i();for(let c of r)c.disposed=!0,c.timer?.cancel();this._storageDisposers.delete(d)};return this._storageDisposers.add(d),{dispose:d}}async _cascadeRestore(e,n){for(let r of e){let o;try{o=await r.load?.()}catch(a){n?.(a,r);continue}if(o==null||typeof o!="object"||Array.isArray(o))continue;let s=o;try{if(s.mode==="full"&&s.snapshot!=null)return this.restore(s.snapshot),!0;if(s.version===rt&&s.nodes!=null)return this.restore(s),!0}catch(a){n?.(a,r)}}return!1}static async fromStorage(e,n,r){for(let o of n){let s;try{s=await o.load?.()}catch(d){r?.onError?.(d,o);continue}if(s==null||typeof s!="object"||Array.isArray(s))continue;let a=s,i=a.mode==="full"&&a.snapshot!=null?a.snapshot:a.version===rt&&a.nodes!=null?a:void 0;if(i!=null)try{return t.fromSnapshot(i,r)}catch(d){r?.onError?.(d,o)}}throw new Error(`Graph.fromStorage: no tier held a restorable record for "${e}" across ${n.length} tier(s)`)}_annotations=new Map;_traceRing;trace(e,n,r){if(e!=null&&n!=null){if(this.tryResolve(e)==null)return;if(this._annotations.set(e,n),this.config.inspectorEnabled){let o={path:e,annotation:n,timestamp_ns:z(),...r?.actor!=null?{actor:r.actor}:{}};this._traceRing.push(o)}return}return e!=null?this.config.inspectorEnabled?this._annotations.get(e):void 0:this.config.inspectorEnabled?this._traceRing.toArray():[]}annotation(e){return this._annotations.get(e)}clearTrace(){this._annotations.clear(),this._traceRing.clear()}pruneTrace(e){let n=this._traceRing.toArray().filter(o=>!e(o)),r=this._traceRing.size-n.length;this._traceRing.clear();for(let o of n)this._traceRing.push(o);return r}static diff(e,n){let r=new Set(Object.keys(e.nodes)),o=new Set(Object.keys(n.nodes)),s=[...o].filter(T=>!r.has(T)).sort(),a=[...r].filter(T=>!o.has(T)).sort(),i=[],d=[];for(let T of r){if(!o.has(T))continue;let b=e.nodes[T],w=n.nodes[T],k=b.v,S=w.v;k!=null&&S!=null&&k.id===S.id&&k.version!==S.version&&d.push({path:T,id:k.id,from:k.version,to:S.version});let v=k!=null&&S!=null&&k.id===S.id&&k.version===S.version;for(let x of["type","status","sentinel"]){let R=b[x],M=w[x];R!==M&&i.push({path:T,field:x,from:R,to:M})}if(!v)for(let x of["value","meta"]){let R=b[x],M=w[x];Pa(R,M)||i.push({path:T,field:x,from:R,to:M})}}let c=T=>`${T.from} ${T.to}`,u=new Set(e.edges.map(c)),l=new Set(n.edges.map(c)),p=n.edges.filter(T=>!u.has(c(T))),f=e.edges.filter(T=>!l.has(c(T))),m=new Set(e.subgraphs),h=new Set(n.subgraphs),g=[...h].filter(T=>!m.has(T)).sort(),y=[...m].filter(T=>!h.has(T)).sort();return{nodesAdded:s,nodesRemoved:a,nodesChanged:i,versionChanges:d,edgesAdded:p,edgesRemoved:f,subgraphsAdded:g,subgraphsRemoved:y}}};function ys(t,e){let n=ce.diff(t,e),r={};for(let o of n.nodesAdded){let s=e.nodes[o];s!=null&&(r[o]=s)}return{...n,nodesAddedFull:r}}function Er(t,e,n,r={}){let o={paths:[],depths:new Map,truncated:!1};if(!e)return r.withDetail?o:[];if(!r.both&&n!=="upstream"&&n!=="downstream")throw new Error('reachable: direction must be "upstream" or "downstream"');let s=r.maxDepth;if(s!=null&&(!Number.isInteger(s)||s<0))throw new Error("reachable: maxDepth must be an integer >= 0");if(s===0)return r.withDetail?o:[];let a=new Map,i=new Map,d=new Map,c=new Map,u=new Set;for(let[b,w]of Object.entries(t.nodes)){if(!b)continue;u.add(b);let k=w.deps??[];a.set(b,k);for(let S of k)S&&(u.add(S),i.has(S)||i.set(S,new Set),i.get(S).add(b))}for(let b of t.edges){if(b==null||typeof b!="object")continue;let w=typeof b.from=="string"?b.from:"",k=typeof b.to=="string"?b.to:"";!w||!k||(u.add(w),u.add(k),c.has(w)||c.set(w,new Set),c.get(w).add(k),d.has(k)||d.set(k,new Set),d.get(k).add(w))}if(!u.has(e))return r.withDetail?o:[];let l=r.both===!0,p=b=>{if(l){let v=a.get(b)??[],x=d.get(b),R=i.get(b),M=c.get(b),N=[...v];return x&&N.push(...x),R&&N.push(...R),M&&N.push(...M),N}if(n==="upstream"){let v=a.get(b)??[],x=d.get(b);return x?[...v,...x]:v}let w=i.get(b),k=c.get(b),S=w?[...w]:[];return k&&S.push(...k),S},f=new Set([e]),m=new Map,h=[{path:e,depth:0}],g=0,y=!1;for(;g<h.length;){let b=h[g++];if(s!=null&&b.depth>=s){p(b.path).length>0&&(y=!0);continue}for(let w of p(b.path))!w||f.has(w)||(f.add(w),m.set(w,b.depth+1),h.push({path:w,depth:b.depth+1}))}let T=[...m.keys()].sort((b,w)=>b<w?-1:b>w?1:0);return r.withDetail?{paths:T,depths:m,truncated:y}:T}function za(t,e){if(t.length!==e.length)return!1;for(let n=0;n<t.length;n++){let r=t[n],o=e[n];if(r.path!==o.path||r.type!==o.type||r.status!==o.status||r.hop!==o.hop||r.dep_index!==o.dep_index||r.annotation!==o.annotation||r.value!==o.value||r.lastMutation!==o.lastMutation)return!1;let s=r.v,a=o.v;if(s!==a&&(s==null||a==null||s.id!==a.id||s.version!==a.version))return!1}return!0}function bs(t,e){return De("messaging",t,e)}var Ua=1024,Or=class extends ce{_log;events;latest;hasLatest;constructor(e,n={}){super(e,n.graph),this._log=$e([],{name:"events",maxSize:n.retainedLimit??Ua}),this._log.withLatest(),this.events=this._log.entries,this.add(this.events,{name:"events"}),this.latest=A([this.events],([r])=>{let o=r;return o.length===0?null:o[o.length-1]},{name:"latest",describeKind:"derived",meta:bs("topic_latest")}),this.add(this.latest,{name:"latest"}),this.addDisposer(Y(this.latest)),this.hasLatest=A([this.events],([r])=>r.length>0,{name:"hasLatest",describeKind:"derived",meta:bs("topic_has_latest")}),this.add(this.hasLatest,{name:"hasLatest"}),this.addDisposer(Y(this.hasLatest)),this.addDisposer(()=>{this.events.down([[$]])}),this.addDisposer(()=>this._log.disposeAllViews())}publish(e){if(e===void 0)throw new TypeError(`TopicGraph "${this.name}": publish(undefined) is not allowed (spec \xA75.12 SENTINEL).`);this._log.append(e)}attachEventStorage(e){return this._log.attachStorage(e)}retained(){return this.events.cache}get _logBundle(){return this._log}};function Ar(t,e){return new Or(t,e)}Ne();ge();se();Le();ve();Q();Qe();Ne();ge();ct();se();Q();function Ts(t,e){let n=t.cache??0;return n>=e?!1:(t.down([[X],[D,n+1]]),!0)}var qa=no((t,e)=>{t("observe"),t("signal"),e("write")});function Tt(t){let e=$e([],{name:t.name,maxSize:t.retainedLimit??1024,guard:t.guard??qa,...t.versioning!=null?{versioning:t.versioning}:{}});return e.withLatest(),t.graph&&t.graph.add(e.entries,{name:t.name}),e}function Cr(t){if(t===null||typeof t!="object"||Object.isFrozen(t))return t;for(let e of Object.keys(t))Cr(t[e]);return Object.freeze(t)}function Dt(t){let e=t.cache,r=(typeof e=="number"&&Number.isFinite(e)?e:0)+1;return t.down([[X],[D,r]]),r}function vn(t,e,n,r,o,s){let a=e(n,r,o);if(a===void 0)return;let i=s!=null?{...a,handlerVersion:s}:a;t.append(i)}function Me(t,e){let n=e.freeze??!0;return function(...o){let s=n?o.map(Cr):o,a=ie(),i=e.seq?Dt(e.seq):void 0;try{let d=t(...s);return e.onSuccess&&vn(e.audit,e.onSuccess,s,d,{t_ns:a,seq:i},e.handlerVersion),d}catch(d){if(e.onFailure){let c=d instanceof Error?d.name:typeof d;vn(e.audit,e.onFailure,s,d,{t_ns:a,seq:i,errorType:c},e.handlerVersion)}throw d}}}function vt(t,e){let n=e.freeze??!0;return function(...o){let s=n?o.map(Cr):o,a=ie(),i,d,c=!1,u;try{ne(()=>{e.seq&&(u=Dt(e.seq));try{i=t(...s),e.onSuccess&&vn(e.audit,e.onSuccess,s,i,{t_ns:a,seq:u},e.handlerVersion)}catch(l){throw d=l,c=!0,l}})}catch(l){if(c&&e.onFailure){let p=d instanceof Error?d.name:typeof d;vn(e.audit,e.onFailure,s,d,{t_ns:a,seq:u,errorType:p},e.handlerVersion)}throw c?d:l}return i}}function wn(t,e,n=0){let r=F(n,{name:e,describeKind:"state"});return t.add(r,{name:e}),r}function It(t,e){return De("orchestration",t,e)}var kn=class extends ce{constructor(e,n){super(e,n)}task(e,n,r={}){let o=(r.deps??[]).map(a=>this._resolveStep(a)),s=A(o,n,{name:e,describeKind:"derived",meta:It("task",r.meta)});return this.add(s,{name:e}),s}classify(e,n,r,o={}){let s=this._resolveStep(n),a=A([s],([i])=>{try{return{tag:r(i),value:i}}catch(d){return{tag:"error",value:i,error:d}}},{name:e,describeKind:"derived",meta:It("classify",o.meta)});return this.add(a,{name:e}),a}combine(e,n,r={}){let o=Object.keys(n),s=o.map(i=>this._resolveStep(n[i])),a=A(s,i=>{let d={};for(let c=0;c<o.length;c++)d[o[c]]=i[c];return d},{name:e,describeKind:"derived",meta:It("combine",r.meta)});return this.add(a,{name:e}),a}approvalGate(e,n,r={}){let o=r.maxPending??1e3;if(o<1&&o!==Number.POSITIVE_INFINITY)throw new RangeError("approvalGate: maxPending must be >= 1");let s=r.startOpen??!1;typeof n!="string"&&this.nameOf(n)===void 0&&this.add(n,{name:`${e}/source`});let a=this._resolveStep(n),i=new ce(`${e}_state`),d=F([],{name:"pending",equals:()=>!1}),c=F(s,{name:"isOpen"}),u=A([d],([G])=>G.length,{name:"count"}),l=F(0,{name:"droppedCount"}),p=Tt({name:"decisions",retainedLimit:1024,graph:i});i.add(d,{name:"pending"}),i.add(c,{name:"isOpen"}),i.add(u,{name:"count"}),i.add(l,{name:"droppedCount"}),this.mount(`${e}_state`,i);let f=[],m=!1,h=!1,g=s,y=c.subscribe(G=>{for(let j of G)j[0]===D&&(g=j[1])});this.addDisposer(y);function T(){d.emit([...f])}function b(G,j,O){p.append({action:G,t_ns:ie(),...j!==void 0?{items:j,count:j.length}:{},...O!==void 0?{unflushed:O}:{},...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}})}function w(G){if(f.push(G),f.length>o){let j=f.shift();l.emit(l.cache+1),b("drop",[j])}T()}function k(G){let j=f.splice(0,G);return T(),j}let S=te([a],(G,j,O)=>{let C=O.terminalDeps[0];if(C!==void 0){m=!0;let fe=f.length;f=[],T(),b("teardown",void 0,fe),j.down(C===!0?[[$]]:[[P,C]]);return}let J=G[0];if(J==null||J.length===0){j.down([[U]]);return}for(let fe of J)g?j.emit(fe):(w(fe),j.down([[U]]))},{name:e,describeKind:"derived",meta:It("approval_gate",r.meta)});if(this.add(S,{name:e}),r.approver!=null){r.approver.cache&&(c.emit(!0),g=!0,r.onceOnly&&(h=!0));let j=r.approver.subscribe(O=>{for(let C of O){if(C[0]!==D)continue;let J=!!C[1];if(J&&!g){if(r.onceOnly){if(h)continue;h=!0}ne(()=>{c.emit(!0);let fe=k(f.length);b("open",fe);for(let B of fe){if(m)break;S.emit(B)}})}else if(!J&&g){if(r.onceOnly&&h)continue;ne(()=>{c.emit(!1),b("close")})}}});this.addDisposer(j)}let v=G=>{if(m)throw new Error(`approvalGate: ${G}() called after the gate was torn down`)},x=(G=1)=>{v("approve");let j=k(G);for(let O of j){if(m)break;S.emit(O)}},R=(G=1)=>{v("reject"),k(G)},M=(G,j=1)=>{v("modify");let O=[...f],C=k(j);for(let J=0;J<C.length&&!m;J++)S.emit(G(C[J],J,O))},N=()=>{v("open"),c.emit(!0);let G=k(f.length);for(let j of G){if(m)break;S.emit(j)}},L=()=>{v("close"),!(r.onceOnly&&h)&&c.emit(!1)},_=vt(x,{audit:p,freeze:!1,onSuccess:(G,j,O)=>({action:"approve",count:G[0]??1,t_ns:O.t_ns,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}}),onFailure:(G,j,O)=>({action:"drop",t_ns:O.t_ns,errorType:O.errorType,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}})}),E=vt(R,{audit:p,freeze:!1,onSuccess:(G,j,O)=>({action:"reject",count:G[0]??1,t_ns:O.t_ns,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}}),onFailure:(G,j,O)=>({action:"drop",t_ns:O.t_ns,errorType:O.errorType,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}})}),I=vt(M,{audit:p,freeze:!1,onSuccess:(G,j,O)=>({action:"modify",count:G[1]??1,t_ns:O.t_ns,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}}),onFailure:(G,j,O)=>({action:"drop",t_ns:O.t_ns,errorType:O.errorType,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}})}),K=vt(N,{audit:p,freeze:!1,onSuccess:(G,j,O)=>({action:"open",t_ns:O.t_ns,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}}),onFailure:(G,j,O)=>({action:"drop",t_ns:O.t_ns,errorType:O.errorType,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}})}),q=vt(L,{audit:p,freeze:!1,onSuccess:(G,j,O)=>({action:"close",t_ns:O.t_ns,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}}),onFailure:(G,j,O)=>({action:"drop",t_ns:O.t_ns,errorType:O.errorType,...r.handlerVersion!=null?{handlerVersion:r.handlerVersion}:{}})});return this.addDisposer(u.subscribe(()=>{})),{node:S,pending:d,count:u,isOpen:c,droppedCount:l,decisions:p,audit:p,approve:_,reject:E,modify:I,open:K,close:q}}approval(e,n,r,o={}){return this.approvalGate(e,n,{...o,approver:r,maxPending:1})}catch(e,n,r,o={}){let s=this._resolveStep(n),a=o.on??"errored",i=te([s],(d,c,u)=>{let l=u.terminalDeps[0];if(l!==void 0){let f=l===!0?{kind:"completed"}:{kind:"errored",error:l};if(a==="terminal"||a===f.kind){c.emit(r(f,c));return}c.down(f.kind==="completed"?[[$]]:[[P,f.error]]);return}let p=d[0];if(p==null||p.length===0){c.down([[U]]);return}for(let f of p)c.emit(f)},{name:e,describeKind:"derived",completeWhenDepsComplete:o.completeWhenDepsComplete??!(a==="completed"||a==="terminal"),errorWhenDepsError:!(a==="errored"||a==="terminal"),meta:It("catch",o.meta)});return this.add(i,{name:e}),i}_resolveStep(e){if(typeof e=="string")return this.resolve(e);if(this.nameOf(e)===void 0)throw new Error(`PipelineGraph "${this.name}": Node dep is not registered. Pass a string path or call graph.add(node) first.`);return e}};function Lr(t,e){let n=new kn(t,e),{factory:r,factoryArgs:o,...s}=e??{};return n.tagFactory("pipelineGraph",ft(s)),n}async function vs(t,e,n,r){let o="",s=0;for await(let a of t.stream(e,n))r.publish({...a,seq:s++,ts:ie()}),a.type==="token"&&(o+=a.delta);return o}function ws(t,e){if(e==="json")try{return JSON.parse(bt(t))}catch(n){let r=t.slice(0,160);throw new Error(`streamingPromptNode: format:"json" \u2014 failed to parse accumulated text as JSON: ${n.message}; content preview: ${r}`)}return t}function ks(t,e){return A([t.latest],([n],r)=>{let o=r.store;if(n==null)return o.acc??"";let s=n;return s.seq===0&&(o.acc=""),s.type==="token"&&(o.acc=(o.acc??"")+s.delta),o.acc??""},{name:e,meta:W("accumulated_text"),initial:""})}function Wa(t,e,n,r){let o=r?.name??"llm",s=r?.format??"text",a=Ar(`${o}/stream`,{...r?.retainedLimit!=null?{retainedLimit:r.retainedLimit}:{}}),i=A(e,l=>{if(l.some(f=>f==null))return[];let p=typeof n=="string"?n:n(...l);return p?[{role:"user",content:p}]:[]},{name:`${o}::messages`,meta:W("prompt_node::messages"),initial:[]}),d=he(i,l=>{let p=l;if(!p||p.length===0)return F(null);let f=new AbortController;async function*m(){try{let h=await vs(t,p,{model:r?.model,temperature:r?.temperature,maxTokens:r?.maxTokens,systemPrompt:r?.systemPrompt,signal:f.signal},a);yield ws(h,s)}finally{f.abort()}}return V(m())},{meta:ae("streamingPromptNode")}),c=ks(a,`${o}::accumulatedText`),u=Y(d);return{output:d,deltaTopic:a,accumulatedText:c,dispose:()=>{u(),a.destroy()}}}function Ha(t,e,n,r,o,s){let a=F(0,{name:`${e}/cancel`}),i=0,d=[...r,a],c=s?.name??e,u=s?.format??"text",l=Ar(`${c}/stream`,{...s?.retainedLimit!=null?{retainedLimit:s.retainedLimit}:{}}),p=A(d,v=>{let x=v.slice(0,-1);if(x.some(M=>M==null))return[];let R=typeof o=="string"?o:o(...x);return R?[{role:"user",content:R}]:[]},{name:`${c}::messages`,meta:W("prompt_node::messages"),initial:[]}),f=he(p,v=>{let x=v;if(!x||x.length===0)return F(null);let R=new AbortController;async function*M(){try{let N=await vs(n,x,{model:s?.model,temperature:s?.temperature,maxTokens:s?.maxTokens,systemPrompt:s?.systemPrompt,signal:R.signal},l);yield ws(N,u)}finally{R.abort()}}return V(M())},{meta:ae("gatedStream")}),m=ks(l,`${c}::accumulatedText`),h=Oo(f,v=>v!=null);t.add(h,{name:`${e}/raw`});let g=Lr(`${e}/gate-graph`);t.mount(`${e}/gate-graph`,g),g.add(h,{name:`${e}/raw`});let y=g.approvalGate(`${e}/gate`,`${e}/raw`,s?.gate),T=Y(f),b=Y(y.node),w=Y(m);t.addDisposer(T),t.addDisposer(b),t.addDisposer(w);let k=y.reject.bind(y),S={...y,reject(v=1){ne(()=>{k(v),a.emit(++i)})}};return{output:y.node,deltaTopic:l,accumulatedText:m,gate:S,dispose:()=>{T(),b(),w(),l.destroy()}}}Q();Z();function Ja(t,e){let n=e?.separator??`
|
|
14
10
|
|
|
15
|
-
`,r=t.map(i=>typeof i=="string"?I(i):G(i)),o=O(r,i=>i.filter(a=>a!=null&&a!=="").join(n),{name:e?.name??"systemPrompt",describeKind:"derived",meta:H("system_prompt"),initial:""}),s=Y(o);return Object.assign(o,{dispose:s})}q();var ld=(t,e)=>t===e?!0:t.chunkCount===e.chunkCount&&t.charCount===e.charCount&&t.estimatedTokens===e.estimatedTokens&&t.estimated===e.estimated;function pd(t,e){let n=e?.charsPerToken??4,r={chunkCount:0,charCount:0,estimatedTokens:0,estimated:!0};return O([t.latest],([o],s)=>{if(o==null)return r;let i=o;"chunkCount"in s.store||(s.store.chunkCount=0,s.store.charCount=0,s.store.usageTokens=0,s.store.sawUsage=!1);let a=s.store;i.type==="token"?(a.chunkCount+=1,a.charCount+=i.delta.length):i.type==="usage"&&(a.sawUsage=!0,a.usageTokens=Ee(i.usage)+Ge(i.usage));let u=a.sawUsage?a.usageTokens:Math.ceil(a.charCount/n);return{chunkCount:a.chunkCount,charCount:a.charCount,estimatedTokens:u,estimated:!a.sawUsage}},{name:e?.name??"cost-meter",describeKind:"derived",initial:r,meta:H("cost_meter_extractor"),equals:ld})}q();var fd=(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 md(t,e){let n=e.maxPatternLength??128;for(let o of e.patterns)if(o.pattern.source.length>n)throw new Error(`keywordFlagExtractor: pattern "${o.label}" literal exceeds maxPatternLength (${o.pattern.source.length} > ${n}); raise the option or shorten the pattern.`);let r=e.patterns.map(o=>({label:o.label,pattern:o.pattern,compiled:new RegExp(o.pattern.source,`${o.pattern.flags.replace("g","")}g`)}));return O([t],([o],s)=>{if(o==null)return[];let i=o;"flags"in s.store||(s.store.flags=[],s.store.scannedTo=0);let a=s.store.flags,u=s.store.scannedTo,d=Math.max(0,u-n),c=i.slice(d),l=!1;for(let{pattern:p,label:f,compiled:m}of r){m.lastIndex=0;for(let y of c.matchAll(m)){let g=d+(y.index??0);g+y[0].length<=u||(a.push({label:f,pattern:p,match:y[0],position:g}),l=!0)}}return s.store.scannedTo=i.length,l?[...a]:a.slice()},{name:e.name??"keyword-flag-extractor",describeKind:"derived",initial:[],meta:H("keyword_flag_extractor"),equals:fd})}q();function gd(t,e,n){return O([t],([r])=>r==null?null:e(r),{name:n?.name??"extractor",describeKind:"derived",initial:null,meta:H("stream_extractor"),...n?.equals?{equals:n.equals}:{}})}q();var hd=(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 yd(t,e){return O([t],([n],r)=>{if(n==null)return[];let o=n;"calls"in r.store||(r.store.calls=[],r.store.scanFrom=0);let s=r.store.calls,i=r.store.scanFrom,a=!1;for(;i<o.length;){let u=o.indexOf("{",i);if(u===-1){r.store.scanFrom=o.length;break}let d=0,c=-1,l=!1;for(let f=u;f<o.length;f++){let m=o[f];if(l)m==="\\"&&f+1<o.length?f++:m==='"'&&(l=!1);else if(m==='"')l=!0;else if(m==="{")d++;else if(m==="}"&&(d--,d===0)){c=f;break}}if(c===-1){r.store.scanFrom=u;break}let p=o.slice(u,c+1);try{let f=JSON.parse(p);typeof f.name=="string"&&f.arguments!=null&&typeof f.arguments=="object"&&(s.push({name:f.name,arguments:f.arguments,raw:p,startIndex:u}),a=!0)}catch{}i=c+1,r.store.scanFrom=i}return a?[...s]:s.slice()},{name:e?.name??"tool-call-extractor",describeKind:"derived",initial:[],meta:H("tool_call_extractor"),equals:hd})}q();function bd(t,e,n,r){let o=n*(r?.hardMultiplier??1.5),s=typeof e!="function",i=[t];return s&&i.push(e),O(i,a=>{let u=a[0]??"";if(u.length===0)return"allow";let d=s?a[1]??0:e(u);return d>=o?"block":d>=n?"review":"allow"},{name:r?.name??"content-gate",initial:"allow"})}q();function Td(t,e,n,r){let o=n??(()=>"[REDACTED]");function s(i){let a=i;for(let u of e){let d=u.global?u:new RegExp(u.source,`${u.flags}g`);a=a.replace(d,c=>o(c,u))}return a}return O([t],([i])=>s(i??""),{name:r?.name??"redactor",initial:""})}xe();re();Re();q();Q();q();var mn=class extends ie{_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=O([this.messages],([r])=>{let o=r;return o.length===0?null:o[o.length-1]},{name:"latest",describeKind:"derived",meta:H("chat_latest")}),this.add(this.latest,{name:"latest"}),this.addDisposer(Y(this.latest)),this.messageCount=O([this.messages],([r])=>r.length,{name:"messageCount",describeKind:"derived",meta:H("chat_message_count"),initial:0}),this.add(this.messageCount,{name:"messageCount"}),this.addDisposer(Y(this.messageCount))}append(e,n,r){this._log.append({role:e,content:n,...r})}appendToolResult(e,n){this._log.append({role:"tool",content:n,toolCallId:e})}clear(){this._log.clear()}allMessages(){return this.messages.cache}};function hr(t,e){return new mn(t,e)}q();st();function yr(t){let{toolCalls:e,tools:n}=t,r=t.retryCount??1,o=t.onError??"rescue",s=(i,a)=>{if(i===a)return!0;if(i.length!==a.length)return!1;for(let u=0;u<i.length;u++){let d=i[u],c=a[u];if(d?.id!==c?.id||d?.content!==c?.content)return!1}return!0};return ae(e,i=>{if(i==null||i.length===0)throw new Error("toolExecution: received an empty tool-call batch as DATA \u2014 callers must upstream-filter empty batches (emit RESOLVED) so switchMap is only dispatched for non-empty batches.");let a=i.map(u=>vd(u,n,r,o));return O(a,u=>u,{name:"toolExecution::batch",equals:s})})}function vd(t,e,n,r){let o=Dn(()=>e.executeReactive(t.name,t.arguments),{count:n}),s=O([o],([i])=>({id:t.id,content:typeof i=="string"?i:JSON.stringify(i)}));return r==="propagate"?s:uo(s,i=>({id:t.id,content:JSON.stringify({error:String(i)})}))}re();q();Q();var gn=class extends ie{definitions;schemas;_bundle;constructor(e,n={}){super(e,n.graph),this._bundle=rt({name:"definitions"}),this.definitions=this._bundle.entries,this.add(this.definitions,{name:"definitions"}),this.schemas=O([this.definitions],([r])=>[...(r??new Map).values()],{name:"schemas",describeKind:"derived",meta:H("tool_schemas"),initial:[]}),this.add(this.schemas,{name:"schemas"}),this.addDisposer(Y(this.schemas))}register(e){this._bundle.set(e.name,e)}unregister(e){this._bundle.delete(e)}executeReactive(e,n){let r=this._bundle.get(e);if(!r)throw new Error(`toolRegistry: unknown tool "${e}"`);return ne(o=>{let s=new AbortController,i;try{let u=r.handler(n,{signal:s.signal});i=wd(u,s.signal)}catch(u){return o.down([[C,u]]),()=>{s.abort()}}let a=i.subscribe(u=>{o.down(u)});return()=>{s.abort(),a()}},{name:`executeReactive::${e}`,meta:H("tool_execute_reactive")})}getDefinition(e){return this._bundle.entries.cache?.get(e)}};function br(t,e){return new gn(t,e)}function wd(t,e){return ir(t)?t:t!=null&&typeof t.then=="function"?Vt(t,{signal:e}):t!=null&&typeof t=="object"&&Symbol.asyncIterator in t?Pn(t,{signal:e}):Vt(Promise.resolve(t),{signal:e})}var hn=class extends ie{chat;tools;status;turn;aborted;lastResponse;toolCalls;toolResults;_terminalResult;_disposeRunWiring;_running=!1;_currentAbortController=null;constructor(e,n){if(super(e,n.graph),this.chat=hr(`${e}-chat`,{maxMessages:n.maxMessages}),this.mount("chat",this.chat),this.tools=br(`${e}-tools`),this.mount("tools",this.tools),n.tools)for(let P of n.tools)this.tools.register(P);this.status=I("idle",{name:"status",describeKind:"state",meta:H("agent_status")}),this.add(this.status,{name:"status"}),this.turn=I(0,{name:"turn",describeKind:"state",meta:H("agent_turn_count")}),this.add(this.turn,{name:"turn"}),this.aborted=I(!1,{name:"aborted",describeKind:"state",meta:H("agent_aborted")}),this.add(this.aborted,{name:"aborted"});let r=0,o=this.turn.subscribe(P=>{for(let F of P)F[0]===L&&(r=F[1])}),s=!1,i=this.aborted.subscribe(P=>{for(let F of P)F[0]===L&&(s=F[1])}),a=this.chat.messages.cache??[],u=this.chat.messages.subscribe(P=>{for(let F of P)F[0]===L&&(a=F[1])}),d=this.tools.schemas.cache??[],c=this.tools.schemas.subscribe(P=>{for(let F of P)F[0]===L&&(d=F[1])}),l=n.adapter,p=n.systemPrompt,f=n.model,m=n.temperature,y=n.maxTokens,g=n.maxTurns??10,h=n.stopWhen,b=this.chat,v=this.tools,x=this.status,k=this.turn,w=this.aborted,T=te([x],(P,F,D)=>{if(St(P,D.prevData,0,"idle")!=="thinking"||s||r>=g){F.down([[V]]);return}if(a.length===0){F.down([[V]]);return}F.emit({messages:a,tools:d})},{name:"promptInput",describeKind:"derived",meta:H("agent_prompt_input",{closureReads:["aborted","turn","chat.messages","tools.schemas"]})}),R=ae(T,P=>{let F=new AbortController;return this._currentAbortController=F,s&&F.abort(new Error("agentLoop: aborted")),G(l.invoke(P.messages,{tools:P.tools.length>0?P.tools:void 0,systemPrompt:p,model:f,temperature:m,maxTokens:y,signal:F.signal}),{signal:F.signal})},{equals:()=>!1}),N=I(null,{name:"lastResponse",describeKind:"state",meta:H("agent_last_response")});this.lastResponse=N;let _=te([N,x],(P,F,D)=>{let z=St(P,D.prevData,0,null);if(St(P,D.prevData,1,"idle")!=="acting"){F.down([[V]]);return}let he=z?.toolCalls;if(he==null||he.length===0){F.down([[V]]);return}F.emit(he)},{name:"toolCallsRaw",describeKind:"derived",meta:H("agent_tool_calls_raw")}),S=n.interceptToolCalls?n.interceptToolCalls(_):_;this.toolCalls=S;let E=yr({toolCalls:S,tools:v,retryCount:1});this.toolResults=E;let M=ve([R],([P])=>{if(s)return;let F=P,D=r+1,z=F.toolCalls!=null&&F.toolCalls.length>0,de=F.finishReason==="end_turn"&&(!F.toolCalls||F.toolCalls.length===0),he=h?.(F)===!0,ye=D>=g,X=he||de||!z||ye?"done":"acting";ee(()=>{N.emit(F),x.emit(X),k.emit(D),b.append("assistant",F.content,{toolCalls:F.toolCalls})})}),A=ve([E],([P])=>{if(s)return;let F=P;if(F.length===0)return;let D=r>=g?"done":"thinking";ee(()=>{x.emit(D);for(let z of F)b.appendToolResult(z.id,z.content)})}),j=x.cache??"idle",K=x.subscribe(P=>{for(let F of P)F[0]===L&&(j=F[1])}),Z=ve([w],([P])=>{P===!0&&(this._currentAbortController?.abort(new Error("agentLoop: aborted")),j!=="done"&&x.emit("done"))}),ke=Y(M),U=Y(A),W=Y(Z);this._terminalResult=te([x,N],(P,F,D)=>{let z=St(P,D.prevData,0,"idle"),de=St(P,D.prevData,1,null);if(z==="done"){if(de!=null){F.emit(de);return}let he=new Error("agentLoop: aborted");he.name="AbortError",F.down([[C,he]]);return}if(z==="error"){F.down([[C,new Error("agentLoop: errored")]]);return}F.down([[V]])},{name:"terminalResult",describeKind:"derived",meta:H("agent_terminal_result")}),this.add(T,{name:"promptInput"}),this.add(R,{name:"llmResponse"}),this.add(this.lastResponse,{name:"lastResponse"}),this.toolCalls===_?this.add(this.toolCalls,{name:"toolCalls"}):(this.add(_,{name:"toolCallsRaw"}),this.add(this.toolCalls,{name:"toolCalls"})),this.add(E,{name:"toolResults"}),this.add(this._terminalResult,{name:"terminalResult"}),this.addDisposer(o),this.addDisposer(i),this.addDisposer(K),this.addDisposer(u),this.addDisposer(c),this.addDisposer(ke),this.addDisposer(U),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;try{ee(()=>{this.turn.emit(0),this.aborted.emit(!1),this.status.emit("idle"),this.lastResponse.emit(null)}),e!=null&&this.chat.append("user",e);let o=ro(this._terminalResult,{skipCurrent:!0});if(n!=null)if(n.aborted)this.aborted.emit(!0);else{let s=()=>this.aborted.emit(!0);n.addEventListener("abort",s,{once:!0}),r=()=>n.removeEventListener("abort",s)}return n?.aborted!==!0&&this.status.emit("thinking"),await o}finally{r?.(),this._running=!1,this._currentAbortController=null}}abort(){this.aborted.emit(!0)}destroy(){try{this._disposeRunWiring()}catch{}super.destroy()}};function St(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 kd(t,e){return new hn(t,e)}q();Q();function xd(t,e,n){let r=G(t),o=n?.condition!=null?G(n.condition):null,s=I(null,{name:n?.name?`${n.name}::null`:"handoff::null"});if(o==null)return ae(r,a=>{if(a==null)return s;let u=I(a);return e(u)});let i=O([r,o],([a,u])=>({v:a,open:u===!0}),{name:n?.name?`${n.name}::router`:"handoff::router",describeKind:"derived"});return ae(i,({v:a,open:u})=>{if(a==null)return s;if(!u)return I(a);let d=I(a);return e(d)})}q();Q();function Rd(t,e,n){let r=G(t),o=e.map(i=>G(i)),s=[r,...o];return O(s,i=>{let a=i[0]??[],u=i.slice(1);return a.filter(d=>{for(let c of u)if(c!=null&&!c(d))return!1;return!0})},{name:n?.name??"tool-selector",describeKind:"derived",meta:H("tool_selector"),equals:(i,a)=>{let u=i,d=a;if(u.length!==d.length)return!1;for(let c=0;c<u.length;c++)if(u[c]!==d[c])return!1;return!0}})}function ms(t){let e=t.thresholds??{};return n=>{let r=t.scoreFn(n);for(let o of Object.keys(e)){let s=e[o];if(s===void 0)continue;let i=r[o];if((Number.isFinite(i)?i:Number.NEGATIVE_INFINITY)<s)return!1}return!0}}function Sd(t){let e={persistence:t.persistenceThreshold??.3,personalValue:t.personalValueThreshold??.3},n=ms({scoreFn:t.scoreFn,thresholds:e});return t.requireStructured?r=>{if(!n(r))return!1;let o=t.scoreFn(r).structure;return Number.isFinite(o)&&o>0}:n}q();xe();re();q();Q();function _d(t){return typeof t=="object"&&t!==null&&"cache"in t&&typeof t.subscribe=="function"}function gs(t){t.subscribe(()=>{})}function _t(t){return t instanceof Map?t:new Map}function hs(t,e){if(!Array.isArray(e.upsert))throw new TypeError("distill extraction requires upsert: Array<{ key, value }>");ee(()=>{for(let{key:n,value:r}of e.upsert)t.set(n,r);for(let n of e.remove??[])t.delete(n)})}function ys(t,e,n){let r=G(t),o=rt(n.mapOptions??{}),s=n.budget??2e3,a=n.context!==void 0&&n.context!==null?G(n.context):I(null),u=_t(o.entries.cache);o.entries.subscribe(f=>{for(let m of f)m[0]===L&&(u=_t(m[1]))});let d=ae(r,f=>e(f,u));if(bt(d,f=>{hs(o,f)}),n.evict){let f=new Map,m=O([o.entries],([y])=>{let g=[],h=_t(y);for(let b of f.keys())h.has(b)||(f.get(b)(),f.delete(b));for(let[b,v]of h){let x=n.evict(b,v);if(_d(x)){if(!f.has(b)){let k=bt(x,w=>{w===!0&&o.has(b)&&o.delete(b)});f.set(b,k)}continue}if(typeof x=="boolean"){x&&g.push(b);continue}throw new TypeError("distill evict() must return boolean or Node<boolean>")}return g});bt(m,y=>{for(let g of y)o.delete(g)})}let c=n.consolidateTrigger!==void 0&&n.consolidateTrigger!==null;if(n.consolidate&&c){let f=G(n.consolidateTrigger),m=ae(f,()=>n.consolidate(u));bt(m,y=>{hs(o,y)})}let l=O([o.entries,a],([f,m])=>{let y=[..._t(f).entries()].map(([b,v])=>({key:b,value:v,score:n.score(v,m),cost:n.cost(v)}));y.sort((b,v)=>v.score-b.score);let g=[],h=s;for(let b of y)b.cost<=h&&(g.push({key:b.key,value:b.value,score:b.score}),h-=b.cost);return g}),p=O([o.entries],([f])=>_t(f).size);return gs(l),gs(p),{store:o,compact:l,size:p}}Q();q();function bs(t,e,n,r){let o=n.name??r;return s=>{let i=I(s);return ar(n.adapter,[i],a=>e(a),{name:o,format:"json",systemPrompt:t,model:n.model,temperature:n.temperature??0,maxTokens:n.maxTokens})}}function Tr(t,e){let n=e.maxExistingKeys??100,r=bs(t,o=>JSON.stringify({input:o.raw,existingKeys:o.existingKeys}),e,"llmExtractor");return(o,s)=>{let i=n===Number.POSITIVE_INFINITY?[...s.keys()]:[...s.keys()].slice(0,n);return r({raw:o,existingKeys:i})}}function vr(t,e){let n=bs(t,r=>JSON.stringify({memories:r}),e,"llmConsolidator");return r=>{let o=[...r.entries()].map(([s,i])=>({key:s,value:i}));return n(o)}}xe();fe();q();Q();fe();q();function Ts(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 Nd(t){if(t!==void 0&&t<1)throw new RangeError("maxSize must be >= 1")}function Qe(t){return new Map(t)}function Oe(t){return t.cache??new Map}function yn(t){return t.cache??[]}function Md(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,u=e[i]??0;r+=a*u,o+=a*a,s+=u*u}return o===0||s===0?0:r/Math.sqrt(o*s)}function vs(t={}){let e=t.maxSize,n=t.policy??"fifo";Nd(e);let r=I(new Map,{name:t.name,describeKind:"state"});function o(i){if(e!==void 0)for(;i.size>e;){let a;for(let u of i.values()){if(!a){a=u;continue}let d=n==="lru"?u.lastAccessNs:u.createdAtNs,c=n==="lru"?a.lastAccessNs:a.createdAtNs;d<c&&(a=u)}if(!a)break;i.delete(a.id)}}function s(i){r.emit(i)}return{entries:r,upsert(i,a){let u=B(),d=Oe(r),c=d.get(i),l=Qe(d);l.set(i,{id:i,value:a,createdAtNs:c?.createdAtNs??u,lastAccessNs:u}),o(l),s(l)},remove(i){let a=Qe(Oe(r));a.delete(i)&&s(a)},clear(){Oe(r).size!==0&&s(new Map)},get(i){let a=Oe(r),u=a.get(i);if(u){if(n==="lru"){let d=B(),c=Qe(a);c.set(i,{...u,lastAccessNs:d}),s(c)}return u.value}},has(i){return Oe(r).has(i)}}}function ws(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=I(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,u,d){s(u);let c=Qe(Oe(o));c.set(a,{id:a,vector:[...u],meta:d}),e==="hnsw"&&r.upsert(a,u,d),i(c)},remove(a){let u=Qe(Oe(o));u.delete(a)&&(e==="hnsw"&&r.remove(a),i(u))},clear(){Oe(o).size!==0&&(e==="hnsw"&&r.clear(),i(new Map))},search(a,u=5){return s(a),u<=0?[]:e==="hnsw"?r.search(a,u):[...Oe(o).values()].map(c=>({id:c.id,score:Md(a,c.vector),meta:c.meta})).sort((c,l)=>l.score-c.score).slice(0,u)}}}function ks(t){let e=new ie(t),n=I(new Map,{name:"entities",describeKind:"state"}),r=I([],{name:"edges",describeKind:"state"}),o=O([r],([u])=>{let d=u??[],c=new Map;for(let l of d){let p=c.get(l.from)??[];c.set(l.from,Object.freeze([...p,l]))}return c},{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(u){n.emit(u)}function i(u){r.emit(u)}return Object.assign(e,{upsertEntity(u,d){let c=Qe(Oe(n));c.set(u,d),s(c)},removeEntity(u){let d=Qe(Oe(n)),c=d.delete(u),l=yn(r),p=l.filter(f=>f.from!==u&&f.to!==u);!c&&p.length===l.length||(s(d),i(p))},link(u,d,c,l=1){let p=`${u}\0${d}\0${c}`,f=yn(r),m=new Set(f.map(g=>`${g.from}\0${g.to}\0${g.relation}`)),y=[...f];if(m.has(p))for(let g=0;g<y.length;g+=1){let h=y[g];if(h.from===u&&h.to===d&&h.relation===c){y[g]={...h,weight:l};break}}else y.push({from:u,to:d,relation:c,weight:l});i(y)},unlink(u,d,c){let l=yn(r),p=l.filter(f=>c===void 0?!(f.from===u&&f.to===d):!(f.from===u&&f.to===d&&f.relation===c));p.length!==l.length&&i(p)},related(u,d){return yn(r).filter(c=>(c.from===u||c.to===u)&&(d===void 0||c.relation===d))}})}var wr=Math.LN2/604800;function lt(t){return t instanceof Map?t:new Map}function kr(t,e,n){let r=ws({dimension:n.dimension});t.add(r.entries,{name:"vectorIndex"});let s=ve([e.store.entries],([i])=>{let a=lt(i);for(let[u,d]of a){let c=n.embedFn(d);c&&r.upsert(u,c,d)}}).subscribe(()=>{});return t.addDisposer(s),{vectors:r,dispose:()=>s()}}function xr(t,e,n,r){let o=r.mountPath??n,s=ks(`${n}-kg`);if(t.mount(o,s),!r.entityFn)return{kg:s,dispose:()=>{}};let i=r.entityFn,u=ve([e.store.entries],([d])=>{let c=lt(d);for(let[l,p]of c){let f=i(l,p);if(f){for(let m of f.entities??[])s.upsertEntity(m.id,m.value);for(let m of f.relations??[])s.link(m.from,m.to,m.relation,m.weight)}}}).subscribe(()=>{});return t.addDisposer(u),{kg:s,dispose:()=>u()}}function Rr(t,e,n){let r=n.decayRate??wr,o=n.maxActive??1e3,s=n.archiveThreshold??.1,i=n.permanentFilter??(()=>!1),a=vs({name:"permanent"});t.add(a.entries,{name:"permanent"});let u=new Set,d=b=>u.has(b)?"permanent":lt(e.store.entries.cache).has(b)?"active":"archived",c=(b,v)=>{u.add(b),a.upsert(b,v)},l=new Map,p=e.store.entries,f=n.context?G(n.context):I(null),y=ve([p,f],([b,v])=>{let x=lt(b),k=B(),w=[],T=[];for(let[N,_]of x){if(l.has(N)||l.set(N,k),i(N,_)){T.push({key:N,value:_});continue}let S=n.score(_,v),E=l.get(N)??k,M=Number(k-E)/1e9;Ts(S,M,r)<s&&w.push(N)}for(let N of l.keys())x.has(N)||l.delete(N);for(let{key:N,value:_}of T)u.has(N)||c(N,_);let R=x.size-u.size;if(R>o){let N=[...x.entries()].filter(([S])=>!u.has(S)).map(([S,E])=>({key:S,score:n.score(E,v)})).sort((S,E)=>S.score-E.score),_=R-o;for(let S=0;S<_&&S<N.length;S++){let E=N[S].key;w.includes(E)||w.push(E)}}w.length>0&&ee(()=>{for(let N of w)e.store.delete(N)})}).subscribe(()=>{}),g=null;n.archiveTier&&(g=t.attachSnapshotStorage([n.archiveTier],n.archiveStorageOptions??{}));let h=()=>{y(),g?.dispose()};return t.addDisposer(h),{tiers:{permanent:a,activeEntries:p,archiveHandle:g,tierOf:d,markPermanent:c},dispose:h}}function Ed(t,e){if(!t||!e)return 0;let n=Math.min(t.length,e.length),r=0;for(;r<n&&t[r]===e[r];)r++;return r}function Sr(t,e,n,r,o){let s=o.topK??20,i=o.graphDepth??1,a=o.budget??2e3,u=o.contextWeight??0,d=o.context?G(o.context):I(null),c=(g,h,b)=>{let v=new Map,x=[];if(n&&b.vector){x=n.search(b.vector,s);for(let _ of x){let S=g.get(_.id);S&&v.set(_.id,{value:S,sources:new Set(["vector"])})}}let k=[];if(r){let _=[...b.entityIds??[],...v.keys()],S=new Set,E=_;for(let M=0;M<i;M++){let A=[];for(let j of E)if(!S.has(j)){S.add(j);for(let K of r.related(j)){let Z=K.to;if(!S.has(Z)){A.push(Z);let ke=g.get(Z);if(ke){let U=v.get(Z);U?U.sources.add("graph"):v.set(Z,{value:ke,sources:new Set(["graph"])}),k.push(Z)}}}}E=A}}for(let[_,S]of g)v.has(_)||v.set(_,{value:S,sources:new Set(["store"])});let w=b.context?.length??0,T=[];for(let[_,{value:S,sources:E}]of v){let M=o.contextOf?o.contextOf(S):void 0,A=o.score(S,h);if(u>0&&w>0){let K=Ed(b.context,M);K>0&&(A=A*(1+u*K/w))}let j=M?{key:_,value:S,score:A,sources:[...E],context:M}:{key:_,value:S,score:A,sources:[...E]};T.push(j)}T.sort((_,S)=>S.score-_.score);let R=[],N=0;for(let _ of T){let S=o.cost(_.value);if(N+S>a&&R.length>0)break;R.push(_),N+=S}return{packed:R,trace:{vectorCandidates:x,graphExpanded:k,ranked:T,packed:R}}},l=(g,h)=>{if(g===h)return!0;if(g.length!==h.length)return!1;for(let b=0;b<g.length;b++)if(g[b]!==h[b])return!1;return!0},p=I([],{name:"retrieval",describeKind:"state",meta:H("retrieval_pipeline"),equals:l});t.add(p,{name:"retrieval"});let f=I(null,{name:"retrievalTrace",describeKind:"state",meta:H("retrieval_trace")});return t.add(f,{name:"retrievalTrace"}),{retrieval:p,retrievalTrace:f,retrieve:g=>{let h=lt(e.store.entries.cache),{packed:b,trace:v}=c(h,d.cache,g);return ee(()=>{p.emit(b),f.emit(v)}),b},retrieveReactive:g=>{let h=G(g),b=O([e.store.entries,d,h],([k,w,T])=>{if(T==null)return{packed:[],trace:null};let R=lt(k),{packed:N,trace:_}=c(R,w,T);return{packed:N,trace:_}},{name:"retrievalReactive::result",describeKind:"derived",meta:H("retrieval_reactive_result"),initial:{packed:[],trace:null}}),x=ve([b],([k])=>{let w=k;ee(()=>{p.emit(w.packed),w.trace&&f.emit(w.trace)})}).subscribe(()=>{});return t.addDisposer(x),O([b],([k])=>k.packed,{name:"retrievalReactive",describeKind:"derived",meta:H("retrieval_reactive"),initial:[],equals:l})}}}function Od(t,e,n){let r=new ie(t,n.graph),o;if(n.extractFn)o=n.extractFn;else if(n.adapter&&n.extractPrompt)o=Tr(n.extractPrompt,{adapter:n.adapter});else throw new Error("agentMemory: provide either extractFn or adapter + extractPrompt");let s=(b,v)=>b==null?{upsert:[]}:o(b,v),i=e;if(n.admissionFilter){let b=G(e),v=n.admissionFilter;i=O([b],([x])=>{if(v(x))return x},{name:"admissionFilter",describeKind:"derived"})}let a;n.consolidateFn?a=n.consolidateFn:n.adapter&&n.consolidatePrompt&&(a=vr(n.consolidatePrompt,{adapter:n.adapter}));let u=n.consolidateTrigger;if(!u&&a&&n.reflection?.enabled!==!1){let b=n.reflection?.interval??3e5;u=to(b,{period:b})}let d={score:n.score,cost:n.cost,budget:n.budget??2e3,context:n.context,consolidate:a,consolidateTrigger:u},c=ys(i,s,d);r.add(c.store.entries,{name:"store"}),r.add(c.compact,{name:"compact"}),r.add(c.size,{name:"size"});let l=null;n.vectorDimensions&&n.vectorDimensions>0&&n.embedFn&&(l=kr(r,c,{dimension:n.vectorDimensions,embedFn:n.embedFn}).vectors);let p=null;n.enableKnowledgeGraph&&(p=xr(r,c,t,{mountPath:"kg",entityFn:n.entityFn}).kg);let f=null;n.tiers&&(f=Rr(r,c,{...n.tiers,score:n.score,context:n.context}).tiers);let m=null,y=null,g=null,h=null;if(l||p){let b=Sr(r,c,l,p,{score:n.score,cost:n.cost,budget:n.budget,topK:n.retrieval?.topK,graphDepth:n.retrieval?.graphDepth,contextOf:n.contextOf,contextWeight:n.contextWeight,context:n.context});m=b.retrieval,y=b.retrievalTrace,g=b.retrieve,h=b.retrieveReactive}return Object.assign(r,{distillBundle:c,compact:c.compact,size:c.size,vectors:l,kg:p,memoryTiers:f,retrieval:m,retrievalTrace:y,retrieve:g,retrieveReactive:h})}function Ad(t,e,n){let r=t.describe({actor:e,detail:"full"}),o=n?.groupByTags??!0,s=n?.separator??`
|
|
16
|
-
`,
|
|
11
|
+
`,r=t.map(a=>typeof a=="string"?F(a):V(a)),o=A(r,a=>a.filter(i=>i!=null&&i!=="").join(n),{name:e?.name??"systemPrompt",describeKind:"derived",meta:W("system_prompt"),initial:""}),s=Y(o);return Object.assign(o,{dispose:s})}Q();var Ya=(t,e)=>t===e?!0:t.chunkCount===e.chunkCount&&t.charCount===e.charCount&&t.estimatedTokens===e.estimatedTokens&&t.estimated===e.estimated;function Qa(t,e){let n=e?.charsPerToken??4,r={chunkCount:0,charCount:0,estimatedTokens:0,estimated:!0};return A([t.latest],([o],s)=>{if(o==null)return r;let a=o;"chunkCount"in s.store||(s.store.chunkCount=0,s.store.charCount=0,s.store.usageTokens=0,s.store.sawUsage=!1);let i=s.store;a.type==="token"?(i.chunkCount+=1,i.charCount+=a.delta.length):a.type==="usage"&&(i.sawUsage=!0,i.usageTokens=Ge(a.usage)+Ke(a.usage));let d=i.sawUsage?i.usageTokens:Math.ceil(i.charCount/n);return{chunkCount:i.chunkCount,charCount:i.charCount,estimatedTokens:d,estimated:!i.sawUsage}},{name:e?.name??"cost-meter",describeKind:"derived",initial:r,meta:W("cost_meter_extractor"),equals:Ya})}Q();var Xa=(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 Za(t,e){let n=e.maxPatternLength??128;for(let o of e.patterns)if(o.pattern.source.length>n)throw new Error(`keywordFlagExtractor: pattern "${o.label}" literal exceeds maxPatternLength (${o.pattern.source.length} > ${n}); raise the option or shorten the pattern.`);let r=e.patterns.map(o=>({label:o.label,pattern:o.pattern,compiled:new RegExp(o.pattern.source,`${o.pattern.flags.replace("g","")}g`)}));return A([t],([o],s)=>{if(o==null)return[];let a=o;"flags"in s.store||(s.store.flags=[],s.store.scannedTo=0);let i=s.store.flags,d=s.store.scannedTo,c=Math.max(0,d-n),u=a.slice(c),l=!1;for(let{pattern:p,label:f,compiled:m}of r){m.lastIndex=0;for(let h of u.matchAll(m)){let g=c+(h.index??0);g+h[0].length<=d||(i.push({label:f,pattern:p,match:h[0],position:g}),l=!0)}}return s.store.scannedTo=a.length,l?[...i]:i.slice()},{name:e.name??"keyword-flag-extractor",describeKind:"derived",initial:[],meta:W("keyword_flag_extractor"),equals:Xa})}Q();function ed(t,e,n){return A([t],([r])=>r==null?null:e(r),{name:n?.name??"extractor",describeKind:"derived",initial:null,meta:W("stream_extractor"),...n?.equals?{equals:n.equals}:{}})}Q();var td=(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 nd(t,e){return A([t],([n],r)=>{if(n==null)return[];let o=n;"calls"in r.store||(r.store.calls=[],r.store.scanFrom=0);let s=r.store.calls,a=r.store.scanFrom,i=!1;for(;a<o.length;){let d=o.indexOf("{",a);if(d===-1){r.store.scanFrom=o.length;break}let c=0,u=-1,l=!1;for(let f=d;f<o.length;f++){let m=o[f];if(l)m==="\\"&&f+1<o.length?f++:m==='"'&&(l=!1);else if(m==='"')l=!0;else if(m==="{")c++;else if(m==="}"&&(c--,c===0)){u=f;break}}if(u===-1){r.store.scanFrom=d;break}let p=o.slice(d,u+1);try{let f=JSON.parse(p);typeof f.name=="string"&&f.arguments!=null&&typeof f.arguments=="object"&&(s.push({name:f.name,arguments:f.arguments,raw:p,startIndex:d}),i=!0)}catch{}a=u+1,r.store.scanFrom=a}return i?[...s]:s.slice()},{name:e?.name??"tool-call-extractor",describeKind:"derived",initial:[],meta:W("tool_call_extractor"),equals:td})}Q();function rd(t,e,n,r){let o=n*(r?.hardMultiplier??1.5),s=typeof e!="function",a=[t];return s&&a.push(e),A(a,i=>{let d=i[0]??"";if(d.length===0)return"allow";let c=s?i[1]??0:e(d);return c>=o?"block":c>=n?"review":"allow"},{name:r?.name??"content-gate",initial:"allow"})}Q();function od(t,e,n,r){let o=n??(()=>"[REDACTED]");function s(a){let i=a;for(let d of e){let c=d.global?d:new RegExp(d.source,`${d.flags}g`);i=i.replace(c,u=>o(u,d))}return i}return A([t],([a])=>s(a??""),{name:r?.name??"redactor",initial:""})}Ne();se();Le();ve();Q();Z();Q();Z();var xn=class extends ce{_log;messages;latest;messageCount;constructor(e,n={}){super(e,n.graph),this._log=$e([],{name:"messages",maxSize:n.maxMessages}),this.messages=this._log.entries,this.add(this.messages,{name:"messages"}),this.latest=A([this.messages],([r])=>{let o=r;return o.length===0?null:o[o.length-1]},{name:"latest",describeKind:"derived",meta:W("chat_latest")}),this.add(this.latest,{name:"latest"}),this.addDisposer(Y(this.latest)),this.messageCount=A([this.messages],([r])=>r.length,{name:"messageCount",describeKind:"derived",meta:W("chat_message_count"),initial:0}),this.add(this.messageCount,{name:"messageCount"}),this.addDisposer(Y(this.messageCount))}append(e,n,r){this._log.append({role:e,content:n,...r})}appendToolResult(e,n){this._log.append({role:"tool",content:n,toolCallId:e})}clear(){this._log.clear()}allMessages(){return this.messages.cache}};function Dr(t,e){return new xn(t,e)}Q();mt();function Ir(t){let{toolCalls:e,tools:n}=t,r=t.retryCount??1,o=t.onError??"rescue",s=(a,i)=>{if(a===i)return!0;if(a.length!==i.length)return!1;for(let d=0;d<a.length;d++){let c=a[d],u=i[d];if(c?.id!==u?.id||c?.content!==u?.content)return!1}return!0};return he(e,a=>{if(a==null||a.length===0)throw new Error("toolExecution: received an empty tool-call batch as DATA \u2014 callers must upstream-filter empty batches (emit RESOLVED) so switchMap is only dispatched for non-empty batches.");let i=a.map(d=>sd(d,n,r,o));return A(i,d=>d,{name:"toolExecution::batch",equals:s})})}function sd(t,e,n,r){let o=Qn(()=>e.executeReactive(t.name,t.arguments),{count:n}),s=A([o],([a])=>({id:t.id,content:typeof a=="string"?a:JSON.stringify(a)}));return r==="propagate"?s:Lo(s,a=>({id:t.id,content:JSON.stringify({error:String(a)})}))}se();Q();Z();var Rn=class extends ce{definitions;schemas;_bundle;constructor(e,n={}){super(e,n.graph),this._bundle=Pe({name:"definitions"}),this.definitions=this._bundle.entries,this.add(this.definitions,{name:"definitions"}),this.schemas=A([this.definitions],([r])=>[...(r??new Map).values()],{name:"schemas",describeKind:"derived",meta:W("tool_schemas"),initial:[]}),this.add(this.schemas,{name:"schemas"}),this.addDisposer(Y(this.schemas))}register(e){this._bundle.set(e.name,e)}unregister(e){this._bundle.delete(e)}executeReactive(e,n){let r=this._bundle.get(e);if(!r)throw new Error(`toolRegistry: unknown tool "${e}"`);return oe(o=>{let s=new AbortController,a;try{let d=r.handler(n,{signal:s.signal});a=id(d,s.signal)}catch(d){return o.down([[P,d]]),()=>{s.abort()}}let i=a.subscribe(d=>{o.down(d)});return()=>{s.abort(),i()}},{name:`executeReactive::${e}`,meta:W("tool_execute_reactive")})}getDefinition(e){return this._bundle.entries.cache?.get(e)}};function Pr(t,e){return new Rn(t,e)}function id(t,e){return xr(t)?t:t!=null&&typeof t.then=="function"?en(t,{signal:e}):t!=null&&typeof t=="object"&&Symbol.asyncIterator in t?Zn(t,{signal:e}):en(Promise.resolve(t),{signal:e})}var _n=class extends ce{chat;tools;status;turn;aborted;lastResponse;toolCalls;toolResults;_terminalResult;_disposeRunWiring;_running=!1;_currentAbortController=null;constructor(e,n){if(super(e,n.graph),this.chat=Dr(`${e}-chat`,{maxMessages:n.maxMessages}),this.mount("chat",this.chat),this.tools=Pr(`${e}-tools`),this.mount("tools",this.tools),n.tools)for(let O of n.tools)this.tools.register(O);this.status=F("idle",{name:"status",describeKind:"state",meta:W("agent_status")}),this.add(this.status,{name:"status"}),this.turn=F(0,{name:"turn",describeKind:"state",meta:W("agent_turn_count")}),this.add(this.turn,{name:"turn"}),this.aborted=F(!1,{name:"aborted",describeKind:"state",meta:W("agent_aborted")}),this.add(this.aborted,{name:"aborted"});let r=0,o=this.turn.subscribe(O=>{for(let C of O)C[0]===D&&(r=C[1])}),s=!1,a=this.aborted.subscribe(O=>{for(let C of O)C[0]===D&&(s=C[1])}),i=this.chat.messages.cache??[],d=this.chat.messages.subscribe(O=>{for(let C of O)C[0]===D&&(i=C[1])}),c=this.tools.schemas.cache??[],u=this.tools.schemas.subscribe(O=>{for(let C of O)C[0]===D&&(c=C[1])}),l=n.adapter,p=n.systemPrompt,f=n.model,m=n.temperature,h=n.maxTokens,g=n.maxTurns??10,y=n.stopWhen,T=this.chat,b=this.tools,w=this.status,k=this.turn,S=this.aborted,v=te([w],(O,C,J)=>{if(Pt(O,J.prevData,0,"idle")!=="thinking"||s||r>=g){C.down([[U]]);return}if(i.length===0){C.down([[U]]);return}C.emit({messages:i,tools:c})},{name:"promptInput",describeKind:"derived",meta:W("agent_prompt_input",{closureReads:["aborted","turn","chat.messages","tools.schemas"]})}),x=he(v,O=>{let C=new AbortController;return this._currentAbortController=C,s&&C.abort(new Error("agentLoop: aborted")),V(l.invoke(O.messages,{tools:O.tools.length>0?O.tools:void 0,systemPrompt:p,model:f,temperature:m,maxTokens:h,signal:C.signal}),{signal:C.signal})},{equals:()=>!1}),R=F(null,{name:"lastResponse",describeKind:"state",meta:W("agent_last_response")});this.lastResponse=R;let M=te([R,w],(O,C,J)=>{let fe=Pt(O,J.prevData,0,null);if(Pt(O,J.prevData,1,"idle")!=="acting"){C.down([[U]]);return}let ee=fe?.toolCalls;if(ee==null||ee.length===0){C.down([[U]]);return}C.emit(ee)},{name:"toolCallsRaw",describeKind:"derived",meta:W("agent_tool_calls_raw")}),N=n.interceptToolCalls?n.interceptToolCalls(M):M;this.toolCalls=N;let L=Ir({toolCalls:N,tools:b,retryCount:1});this.toolResults=L;let _=Re([x],([O])=>{if(s)return;let C=O,J=r+1,fe=C.toolCalls!=null&&C.toolCalls.length>0,B=C.finishReason==="end_turn"&&(!C.toolCalls||C.toolCalls.length===0),ee=y?.(C)===!0,we=J>=g,qe=ee||B||!fe||we?"done":"acting";ne(()=>{R.emit(C),w.emit(qe),k.emit(J),T.append("assistant",C.content,{toolCalls:C.toolCalls})})}),E=Re([L],([O])=>{if(s)return;let C=O;if(C.length===0)return;let J=r>=g?"done":"thinking";ne(()=>{w.emit(J);for(let fe of C)T.appendToolResult(fe.id,fe.content)})}),I=w.cache??"idle",K=w.subscribe(O=>{for(let C of O)C[0]===D&&(I=C[1])}),q=Re([S],([O])=>{O===!0&&(this._currentAbortController?.abort(new Error("agentLoop: aborted")),I!=="done"&&w.emit("done"))}),H=Y(_),G=Y(E),j=Y(q);this._terminalResult=te([w,R],(O,C,J)=>{let fe=Pt(O,J.prevData,0,"idle"),B=Pt(O,J.prevData,1,null);if(fe==="done"){if(B!=null){C.emit(B);return}let ee=new Error("agentLoop: aborted");ee.name="AbortError",C.down([[P,ee]]);return}if(fe==="error"){C.down([[P,new Error("agentLoop: errored")]]);return}C.down([[U]])},{name:"terminalResult",describeKind:"derived",meta:W("agent_terminal_result")}),this.add(v,{name:"promptInput"}),this.add(x,{name:"llmResponse"}),this.add(this.lastResponse,{name:"lastResponse"}),this.toolCalls===M?this.add(this.toolCalls,{name:"toolCalls"}):(this.add(M,{name:"toolCallsRaw"}),this.add(this.toolCalls,{name:"toolCalls"})),this.add(L,{name:"toolResults"}),this.add(this._terminalResult,{name:"terminalResult"}),this.addDisposer(o),this.addDisposer(a),this.addDisposer(K),this.addDisposer(d),this.addDisposer(u),this.addDisposer(H),this.addDisposer(G),this.addDisposer(j),this._disposeRunWiring=()=>{}}async run(e,n){if(this._running)throw new RangeError(`agentLoop "${this.name}": run() called while a previous run() is still pending \u2014 await the previous run before starting another, or call abort() first`);this._running=!0;let r;try{ne(()=>{this.turn.emit(0),this.aborted.emit(!1),this.status.emit("idle"),this.lastResponse.emit(null)}),e!=null&&this.chat.append("user",e);let o=So(this._terminalResult,{skipCurrent:!0});if(n!=null)if(n.aborted)this.aborted.emit(!0);else{let s=()=>this.aborted.emit(!0);n.addEventListener("abort",s,{once:!0}),r=()=>n.removeEventListener("abort",s)}return n?.aborted!==!0&&this.status.emit("thinking"),await o}finally{r?.(),this._running=!1,this._currentAbortController=null}}abort(){this.aborted.emit(!0)}destroy(){try{this._disposeRunWiring()}catch{}super.destroy()}};function Pt(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 ad(t,e){let n=new _n(t,e);return n.tagFactory("agentLoop",ft(e)),n}Le();Q();Z();function dd(t,e,n){let r=V(t),o=n?.condition!=null?V(n.condition):null,s=F(null,{name:n?.name?`${n.name}::null`:"handoff::null"});if(o==null)return he(r,i=>{if(i==null)return s;let d=F(i);return e(d)},{meta:ae("handoff")});let a=A([r,o],([i,d])=>({v:i,open:d===!0}),{name:n?.name?`${n.name}::router`:"handoff::router",describeKind:"derived"});return he(a,({v:i,open:d})=>{if(i==null)return s;if(!d)return F(i);let c=F(i);return e(c)},{meta:ae("handoff")})}Le();Q();Z();function cd(t,e,n){let r=V(t),o=e.map(a=>V(a)),s=[r,...o];return A(s,a=>{let i=a[0]??[],d=a.slice(1);return i.filter(c=>{for(let u of d)if(u!=null&&!u(c))return!1;return!0})},{name:n?.name??"tool-selector",describeKind:"derived",meta:{...W("tool_selector"),...ae("toolSelector")},equals:(a,i)=>{let d=a,c=i;if(d.length!==c.length)return!1;for(let u=0;u<d.length;u++)if(d[u]!==c[u])return!1;return!0}})}function xs(t){let e=t.thresholds??{};return n=>{let r=t.scoreFn(n);for(let o of Object.keys(e)){let s=e[o];if(s===void 0)continue;let a=r[o];if((Number.isFinite(a)?a:Number.NEGATIVE_INFINITY)<s)return!1}return!0}}function ud(t){let e={persistence:t.persistenceThreshold??.3,personalValue:t.personalValueThreshold??.3},n=xs({scoreFn:t.scoreFn,thresholds:e});return t.requireStructured?r=>{if(!n(r))return!1;let o=t.scoreFn(r).structure;return Number.isFinite(o)&&o>0}:n}se();Le();Q();Ne();se();Le();Q();Z();function ld(t){return typeof t=="object"&&t!==null&&"cache"in t&&typeof t.subscribe=="function"}function Rs(t){t.subscribe(()=>{})}function Gt(t){return t instanceof Map?t:new Map}function _s(t,e){if(!Array.isArray(e.upsert))throw new TypeError("distill extraction requires upsert: Array<{ key, value }>");ne(()=>{for(let{key:n,value:r}of e.upsert)t.set(n,r);for(let n of e.remove??[])t.delete(n)})}function Ns(t,e,n){let r=V(t),o=Pe(n.mapOptions??{}),s=n.budget??2e3,i=n.context!==void 0&&n.context!==null?V(n.context):F(null),d=Gt(o.entries.cache);o.entries.subscribe(f=>{for(let m of f)m[0]===D&&(d=Gt(m[1]))});let c=V(e(r,o.entries));if(Et(c,f=>{_s(o,f)}),n.evict){let f=new Map,m=A([o.entries],([h])=>{let g=[],y=Gt(h);for(let T of f.keys())y.has(T)||(f.get(T)(),f.delete(T));for(let[T,b]of y){let w=n.evict(T,b);if(ld(w)){if(!f.has(T)){let k=Et(w,S=>{S===!0&&o.has(T)&&o.delete(T)});f.set(T,k)}continue}if(typeof w=="boolean"){w&&g.push(T);continue}throw new TypeError("distill evict() must return boolean or Node<boolean>")}return g});Et(m,h=>{for(let g of h)o.delete(g)})}let u=n.consolidateTrigger!==void 0&&n.consolidateTrigger!==null;if(n.consolidate&&u){let f=V(n.consolidateTrigger),m=he(f,()=>n.consolidate(d));Et(m,h=>{_s(o,h)})}let l=A([o.entries,i],([f,m])=>{let h=[...Gt(f).entries()].map(([T,b])=>({key:T,value:b,score:n.score(b,m),cost:n.cost(b)}));h.sort((T,b)=>b.score-T.score);let g=[],y=s;for(let T of h)T.cost<=y&&(g.push({key:T.key,value:T.value,score:T.score}),y-=T.cost);return g},{meta:{...ae("distill",{budget:s})}}),p=A([o.entries],([f])=>Gt(f).size);return Rs(l),Rs(p),{store:o,compact:l,size:p}}Z();Q();function Ss(t,e,n,r){let o=n.name??r;return s=>{let a=F(s);return Rr(n.adapter,[a],i=>e(i),{name:o,format:"json",systemPrompt:t,model:n.model,temperature:n.temperature??0,maxTokens:n.maxTokens})}}function Gr(t,e){let n=e.maxExistingKeys??100,r=Ss(t,o=>JSON.stringify({input:o.raw,existingKeys:o.existingKeys}),e,"llmExtractor");return(o,s)=>{let a=n===Number.POSITIVE_INFINITY?[...s.keys()]:[...s.keys()].slice(0,n);return r({raw:o,existingKeys:a})}}function Fr(t,e){let n=Ss(t,r=>JSON.stringify({memories:r}),e,"llmConsolidator");return r=>{let o=[...r.entries()].map(([s,a])=>({key:s,value:a}));return n(o)}}Ne();ge();Q();Z();function Ft(t,e,n,r=0){if(!Number.isFinite(t))return r;if(!Number.isFinite(e)||e<=0||!Number.isFinite(n)||n<=0)return Math.max(r,t);let o=t*Math.exp(-n*e);return Math.max(r,o)}ge();ve();Q();Qe();Z();var pd=1e9;function Ie(t,e){return De("memory",t,e)}function $t(t,e){return t instanceof le?t:F(t,e?{name:e}:void 0)}function Ms(t,e){return(t-e)/pd}function $r(t,e){let n=Math.max(t.length,e.length),r=0,o=0,s=0;for(let i=0;i<n;i+=1){let d=t[i]??0,c=e[i]??0;r+=d*c,o+=d*d,s+=c*c}if(o===0||s===0)return 0;let a=r/Math.sqrt(o*s);return Number.isFinite(a)?a:0}function fd(t,e){if(t===e)return!0;if(t==null||e==null||t.length!==e.length)return!1;for(let n=0;n<t.length;n+=1){let r=t[n],o=e[n];if(r.id!==o.id||r.score!==o.score||r.meta!==o.meta)return!1}return!0}function md(t,e){if(t===e)return!0;if(t==null||e==null||t.length!==e.length)return!1;for(let n=0;n<t.length;n+=1){let r=t[n],o=e[n];if(r.id!==o.id||r.score!==o.score||r.lastAccessNs!==o.lastAccessNs||r.value!==o.value)return!1}return!0}function Cs(t,e={}){let n=e.maxSize,r=e.ranked??!0,o=r?e.decayRate??0:0,s=e.minScore??0;if(n!==void 0&&n<1)throw new RangeError("collection: maxSize must be >= 1");let a=()=>r?1:0,i=e.score??a,d=r&&i instanceof le?i:void 0,c=()=>d?d.cache??a:i,u=new ce(t),p=Pe({name:"items",...n!==void 0?{retention:{score:(_,E)=>r?Ft(E.baseScore,Ms(z(),E.lastAccessNs),o,s):E.lastAccessNs,maxSize:n}}:{}});u.add(p.entries,{name:"items"});let f;if(r&&o>0){let _=e.refreshIntervalMs??Math.max(1,1e3*Math.LN2/(10*o)),E=Zt(_,{period:_});f=A([E],()=>z(),{name:"refresh_tick_ns",describeKind:"derived",initial:z(),meta:Ie("clock")}),u.add(f,{name:"refresh_tick_ns"})}let m;if(r){let _=[p.entries];f&&_.push(f),d&&_.push(d),m=A(_,E=>{let I=E[0],K;if(f){let H=E[1];K=typeof H=="number"?H:z()}else K=z();if(!I||I.size===0)return[];let q=[];for(let H of I.values())q.push({...H,score:Ft(H.baseScore,Ms(K,H.lastAccessNs),o,s)});return q.sort((H,G)=>G.score-H.score||G.lastAccessNs-H.lastAccessNs),q},{name:"ranked",describeKind:"derived",equals:md,meta:Ie("ranked")}),u.add(m,{name:"ranked"})}else m=F([],{name:"ranked",describeKind:"state",meta:Ie("ranked_disabled")}),u.add(m,{name:"ranked"});let h=A([p.entries],([_])=>(_??new Map).size,{name:"size",describeKind:"derived",initial:0,meta:Ie("size")});u.add(h,{name:"size"}),u.addDisposer(Y(h));let g=Tt({name:"events",retainedLimit:1024,graph:u}),y=wn(u,"seq",0),T=(_,E,I)=>{let K=z(),q=p.get(_),H=I?.score??c()(E);p.set(_,{id:_,value:E,baseScore:H,createdAtNs:q?.createdAtNs??K,lastAccessNs:K})},b=_=>{p.has(_)&&p.delete(_)},w=()=>{p.size!==0&&p.clear()},k=()=>{if(!r)return;let _=c(),E=p.entries.cache;if(!E||E.size===0)return;let I=[];for(let K of E.values())I.push([K.id,{...K,baseScore:_(K.value)}]);p.setMany(I)},S=Me(T,{audit:g,seq:y,onSuccess:([_],E,I)=>({action:"upsert",id:_,t_ns:I.t_ns,seq:I.seq})}),v=Me(b,{audit:g,seq:y,onSuccess:([_],E,I)=>({action:"remove",id:_,t_ns:I.t_ns,seq:I.seq})}),x=Me(w,{audit:g,seq:y,onSuccess:(_,E,I)=>({action:"clear",t_ns:I.t_ns,seq:I.seq})}),R=Me(k,{audit:g,seq:y,onSuccess:(_,E,I)=>({action:"rescore",t_ns:I.t_ns,seq:I.seq})});function M(_){let E=$t(_,"id");return A([p.entries,E],([I,K])=>I?.get(K),{describeKind:"derived",meta:Ie("collection_item")})}function N(_){let E=$t(_,"id");return A([p.entries,E],([I,K])=>I?.has(K)??!1,{describeKind:"derived",meta:Ie("collection_has")})}return Object.assign(u,{events:g,items:p.entries,ranked:m,size:h,upsert:S,remove:v,clear:x,rescore:R,itemNode:M,hasNode:N})}function Ls(t={}){let e=t.backend??"flat",n=t.dimension,r=t.strictDimension??!0,o=t.maxSize,s=t.retentionScore,a;if(e==="hnsw"&&(a=t.hnswFactory?.(),!a))throw new Error('vectorIndex backend "hnsw" requires an optional dependency adapter; install your HNSW package and provide `hnswFactory`.');let i=new ce(t.name??"vector_index"),d;function c(R){if(n!==void 0){if(R.length!==n)throw new RangeError(`vector dimension mismatch: expected ${n}, got ${R.length}`);return}if(r){if(d===void 0){d=R.length;return}if(R.length!==d)throw new RangeError(`vector dimension mismatch: inferred ${d} from first upsert, got ${R.length}. Pass \`strictDimension: false\` to opt into zero-pad behavior, or set an explicit \`dimension\`.`)}}let u=s??(R=>R.upsertedAtNs),l=!1,p=Tt({name:"events",retainedLimit:1024,graph:i}),f=wn(i,"seq",0),m=Pe({name:"entries",...o!==void 0?{retention:{score:(R,M)=>u(M),maxSize:o,onArchive:R=>{l||(e==="hnsw"&&a.remove(R),p.append({action:"evict",id:R,t_ns:ie(),seq:Dt(f)}))}}}:{}});if(i.add(m.entries,{name:"entries"}),i.addDisposer(Y(m.entries)),a?.dispose){let R=a.dispose.bind(a);i.addDisposer(()=>R())}let h=(R,M,N)=>{c(M),e==="hnsw"&&a.upsert(R,M,N);let L=(()=>{if(N!==void 0)return N===null||typeof N!="object"?N:Array.isArray(N)?[...N]:{...N}})(),_={id:R,vector:[...M],...L!==void 0?{meta:L}:{},upsertedAtNs:z()};m.set(R,_)},g=R=>{m.has(R)&&(e==="hnsw"&&a.remove(R),m.delete(R))},y=()=>{if(m.size!==0){l=!0;try{m.clear(),e==="hnsw"&&a.clear()}finally{l=!1}d=void 0}},T=()=>{if(e!=="hnsw")return;let R=m.entries.cache;if(R){a.clear();for(let M of R.values())a.upsert(M.id,M.vector,M.meta)}},b=Me(h,{audit:p,freeze:!1,seq:f,onSuccess:([R],M,N)=>({action:"upsert",id:R,t_ns:N.t_ns,seq:N.seq})}),w=Me(g,{audit:p,seq:f,onSuccess:([R],M,N)=>({action:"remove",id:R,t_ns:N.t_ns,seq:N.seq})}),k=Me(y,{audit:p,seq:f,onSuccess:(R,M,N)=>({action:"clear",t_ns:N.t_ns,seq:N.seq})}),S=Me(T,{audit:p,seq:f,onSuccess:(R,M,N)=>({action:"reindex",t_ns:N.t_ns,seq:N.seq})});function v(R,M=5){let N=$t(M,"k");return A([m.entries,R,N],L=>{let _=L[0],E=L[1],I=L[2],K=Number.isFinite(I)?Math.max(0,Math.floor(I)):0;if(!_||_.size===0||K<=0)return[];if(E==null||E.length===0)return[];let q=n??(r?d:void 0);return q!==void 0&&E.length!==q?[]:e==="hnsw"?[...a.search(E,K)]:[..._.values()].map(G=>({id:G.id,score:$r(E,G.vector),...G.meta!==void 0?{meta:G.meta}:{}})).sort((G,j)=>j.score-G.score).slice(0,K)},{describeKind:"derived",equals:(L,_)=>fd(L,_),meta:Ie("vector_search")})}return Object.assign(i,{backend:e,events:p,entries:m.entries,upsert:b,remove:w,clear:k,reindex:S,searchNode:v})}var Es="\0";function Nn(t,e,n){return`${t}${Es}${e}${Es}${n}`}function Os(t,e){if(!t||t.size===0)return new Map;let n=new Map;for(let o of t.values()){let s=e==="from"?o.from:o.to,a=n.get(s);a||(a=[],n.set(s,a)),a.push(o)}let r=new Map;for(let[o,s]of n)r.set(o,Object.freeze(s));return r}function As(t,e){if(t===e)return!0;if(t==null||e==null||t.size!==e.size)return!1;for(let[n,r]of t){let o=e.get(n);if(!o||r.length!==o.length)return!1;for(let s=0;s<r.length;s+=1){let a=r[s],i=o[s];if(a.from!==i.from||a.to!==i.to||a.relation!==i.relation||a.weight!==i.weight)return!1}}return!0}function Ds(t,e={}){let n=e.orphanGC??"keep";if(e.entitiesMaxSize!==void 0&&e.entitiesMaxSize<1)throw new RangeError("knowledgeGraph: entitiesMaxSize must be >= 1");if(e.edgesMaxSize!==void 0&&e.edgesMaxSize<1)throw new RangeError("knowledgeGraph: edgesMaxSize must be >= 1");let r=new ce(t),o=Pe({name:"entities",...e.entitiesMaxSize!==void 0?{maxSize:e.entitiesMaxSize}:{}}),s=Pe({name:"edges",...e.edgesMaxSize!==void 0?{maxSize:e.edgesMaxSize}:{}});r.add(o.entries,{name:"entities"}),r.add(s.entries,{name:"edges"});let a=A([s.entries],([x])=>Os(x,"from"),{name:"adjacencyOut",describeKind:"derived",initial:new Map,equals:As,meta:Ie("adjacency_out")}),i=A([s.entries],([x])=>Os(x,"to"),{name:"adjacencyIn",describeKind:"derived",initial:new Map,equals:As,meta:Ie("adjacency_in")});r.add(a,{name:"adjacencyOut"}),r.add(i,{name:"adjacencyIn"}),r.addDisposer(Y(a)),r.addDisposer(Y(i));let d=A([o.entries],([x])=>(x??new Map).size,{name:"entityCount",describeKind:"derived",initial:0,meta:Ie("entity_count")}),c=A([s.entries],([x])=>(x??new Map).size,{name:"edgeCount",describeKind:"derived",initial:0,meta:Ie("edge_count")});r.add(d,{name:"entityCount"}),r.add(c,{name:"edgeCount"}),r.addDisposer(Y(d)),r.addDisposer(Y(c));let u=Tt({name:"events",retainedLimit:1024,graph:r}),l=wn(r,"seq",0);function p(x){let R=a.cache,M=i.cache;return(R?.get(x)?.length??0)>0||(M?.get(x)?.length??0)>0}function f(x){if(n==="remove")for(let R of x)o.has(R)&&(p(R)||(o.delete(R),u.append({action:"orphanRemove",id:R,t_ns:ie(),seq:Dt(l)})))}let m=(x,R)=>{o.set(x,R)},h=x=>{let R=s.entries.cache,M=new Set;if(R){let N=[];for(let[L,_]of R)(_.from===x||_.to===x)&&(N.push(L),_.from!==x&&M.add(_.from),_.to!==x&&M.add(_.to));N.length>0&&s.deleteMany(N)}o.has(x)&&o.delete(x),f([...M])},g=(x,R,M,N=1)=>{s.set(Nn(x,R,M),{from:x,to:R,relation:M,weight:N})},y=(x,R,M)=>{if(M!==void 0)s.delete(Nn(x,R,M));else{let N=s.entries.cache;if(!N)return;let L=[];for(let[_,E]of N)E.from===x&&E.to===R&&L.push(_);L.length>0&&s.deleteMany(L)}f([x,R])},T=Me(m,{audit:u,seq:l,onSuccess:([x],R,M)=>({action:"upsertEntity",id:x,t_ns:M.t_ns,seq:M.seq})}),b=Me(h,{audit:u,seq:l,onSuccess:([x],R,M)=>({action:"removeEntity",id:x,t_ns:M.t_ns,seq:M.seq})}),w=Me(g,{audit:u,seq:l,onSuccess:([x,R,M,N],L,_)=>({action:"link",from:x,to:R,relation:M,weight:N??1,t_ns:_.t_ns,seq:_.seq})}),k=Me(y,{audit:u,seq:l,onSuccess:([x,R,M],N,L)=>({action:"unlink",from:x,to:R,...M!==void 0?{relation:M}:{},t_ns:L.t_ns,seq:L.seq})});function S(x,R){let M=$t(x,"id"),N=R!==void 0?$t(R,"relation"):void 0;return A(N?[a,i,M,N]:[a,i,M],_=>{let E=_[0],I=_[1],K=_[2],q=N?_[3]:void 0,H=E.get(K)??[],G=I.get(K)??[],j=new Set,O=[];for(let C of H){let J=Nn(C.from,C.to,C.relation);j.has(J)||q!==void 0&&C.relation!==q||(j.add(J),O.push(C))}for(let C of G){let J=Nn(C.from,C.to,C.relation);j.has(J)||q!==void 0&&C.relation!==q||(j.add(J),O.push(C))}return O},{describeKind:"derived",equals:(_,E)=>{let I=_,K=E;if(I===K)return!0;if(I==null||K==null||I.length!==K.length)return!1;for(let q=0;q<I.length;q+=1){let H=I[q],G=K[q];if(H.from!==G.from||H.to!==G.to||H.relation!==G.relation||H.weight!==G.weight)return!1}return!0},meta:Ie("related")})}return Object.assign(r,{events:u,entities:o.entries,edges:s.entries,adjacencyOut:a,adjacencyIn:i,entityCount:d,edgeCount:c,upsertEntity:T,removeEntity:b,link:w,unlink:k,relatedNode:S})}var jr=Math.LN2/604800;function wt(t){return t instanceof Map?t:new Map}function Br(t,e,n){let r=Ls({dimension:n.dimension});t.add(r.entries,{name:"vectorIndex"});let s=Re([e.store.entries],([a])=>{let i=wt(a);for(let[d,c]of i){let u=n.embedFn(c);u&&r.upsert(d,u,c)}}).subscribe(()=>{});return t.addDisposer(s),{vectors:r,dispose:()=>s()}}function Vr(t,e,n,r){let o=r.mountPath??n,s=Ds(`${n}-kg`);if(t.mount(o,s),!r.entityFn)return{kg:s,dispose:()=>{}};let a=r.entityFn,d=Re([e.store.entries],([c])=>{let u=wt(c);for(let[l,p]of u){let f=a(l,p);if(f){for(let m of f.entities??[])s.upsertEntity(m.id,m.value);for(let m of f.relations??[])s.link(m.from,m.to,m.relation,m.weight)}}}).subscribe(()=>{});return t.addDisposer(d),{kg:s,dispose:()=>d()}}function Kr(t,e,n){let r=n.decayRate??jr,o=n.maxActive??1e3,s=n.archiveThreshold??.1,a=n.permanentFilter??(()=>!1),i=Cs("permanent",{ranked:!1});t.mount("permanent",i);let d=new Set,c=T=>d.has(T)?"permanent":wt(e.store.entries.cache).has(T)?"active":"archived",u=(T,b)=>{d.add(T),i.upsert(T,b)},l=new Map,p=e.store.entries,f=n.context?V(n.context):F(null),h=Re([p,f],([T,b])=>{let w=wt(T),k=z(),S=[],v=[];for(let[R,M]of w){if(l.has(R)||l.set(R,k),a(R,M)){v.push({key:R,value:M});continue}let N=n.score(M,b),L=l.get(R)??k,_=Number(k-L)/1e9;Ft(N,_,r)<s&&S.push(R)}for(let R of l.keys())w.has(R)||l.delete(R);for(let{key:R,value:M}of v)d.has(R)||u(R,M);let x=w.size-d.size;if(x>o){let R=[...w.entries()].filter(([N])=>!d.has(N)).map(([N,L])=>({key:N,score:n.score(L,b)})).sort((N,L)=>N.score-L.score),M=x-o;for(let N=0;N<M&&N<R.length;N++){let L=R[N].key;S.includes(L)||S.push(L)}}S.length>0&&ne(()=>{for(let R of S)e.store.delete(R)})}).subscribe(()=>{}),g=null;n.archiveTier&&(g=t.attachSnapshotStorage([n.archiveTier],n.archiveStorageOptions??{}));let y=()=>{h(),g?.dispose()};return t.addDisposer(y),{tiers:{permanent:i,activeEntries:p,archiveHandle:g,tierOf:c,markPermanent:u},dispose:y}}function gd(t,e){if(!t||!e)return 0;let n=Math.min(t.length,e.length),r=0;for(;r<n&&t[r]===e[r];)r++;return r}function zr(t,e,n,r,o){let s=o.topK??20,a=o.graphDepth??1,i=o.budget??2e3,d=o.contextWeight??0,c=o.context?V(o.context):F(null),u=(g,y,T)=>{let b=new Map,w=[];if(n&&T.vector){let M=T.vector,N=n.entries.cache;if(N&&N.size>0&&s>0){w=[...N.values()].map(_=>({id:_.id,score:$r(M,_.vector),..._.meta!==void 0?{meta:_.meta}:{}})).sort((_,E)=>E.score-_.score).slice(0,s);for(let _ of w){let E=g.get(_.id);E&&b.set(_.id,{value:E,sources:new Set(["vector"])})}}}let k=[];if(r){let M=r.adjacencyOut.cache,N=r.adjacencyIn.cache,L=[...T.entityIds??[],...b.keys()],_=new Set,E=L;for(let I=0;I<a;I++){let K=[];for(let q of E){if(_.has(q))continue;_.add(q);let H=M?.get(q)??[],G=N?.get(q)??[];for(let j of H){let O=j.to;if(!_.has(O)){K.push(O);let C=g.get(O);if(C){let J=b.get(O);J?J.sources.add("graph"):b.set(O,{value:C,sources:new Set(["graph"])}),k.push(O)}}}for(let j of G){let O=j.from;if(!_.has(O)){K.push(O);let C=g.get(O);if(C){let J=b.get(O);J?J.sources.add("graph"):b.set(O,{value:C,sources:new Set(["graph"])}),k.push(O)}}}}E=K}}for(let[M,N]of g)b.has(M)||b.set(M,{value:N,sources:new Set(["store"])});let S=T.context?.length??0,v=[];for(let[M,{value:N,sources:L}]of b){let _=o.contextOf?o.contextOf(N):void 0,E=o.score(N,y);if(d>0&&S>0){let K=gd(T.context,_);K>0&&(E=E*(1+d*K/S))}let I=_?{key:M,value:N,score:E,sources:[...L],context:_}:{key:M,value:N,score:E,sources:[...L]};v.push(I)}v.sort((M,N)=>N.score-M.score);let x=[],R=0;for(let M of v){let N=o.cost(M.value);if(R+N>i&&x.length>0)break;x.push(M),R+=N}return{packed:x,trace:{vectorCandidates:w,graphExpanded:k,ranked:v,packed:x}}},l=(g,y)=>{if(g===y)return!0;if(g.length!==y.length)return!1;for(let T=0;T<g.length;T++)if(g[T]!==y[T])return!1;return!0},p=F([],{name:"retrieval",describeKind:"state",meta:W("retrieval_pipeline"),equals:l});t.add(p,{name:"retrieval"});let f=F(null,{name:"retrievalTrace",describeKind:"state",meta:W("retrieval_trace")});return t.add(f,{name:"retrievalTrace"}),{retrieval:p,retrievalTrace:f,retrieve:g=>{let y=wt(e.store.entries.cache),{packed:T,trace:b}=u(y,c.cache,g);return ne(()=>{p.emit(T),f.emit(b)}),T},retrieveReactive:g=>{let y=V(g),T=A([e.store.entries,c,y],([k,S,v])=>{if(v==null)return{packed:[],trace:null};let x=wt(k),{packed:R,trace:M}=u(x,S,v);return{packed:R,trace:M}},{name:"retrievalReactive::result",describeKind:"derived",meta:W("retrieval_reactive_result"),initial:{packed:[],trace:null}}),w=Re([T],([k])=>{let S=k;ne(()=>{p.emit(S.packed),S.trace&&f.emit(S.trace)})}).subscribe(()=>{});return t.addDisposer(w),A([T],([k])=>k.packed,{name:"retrievalReactive",describeKind:"derived",meta:W("retrieval_reactive"),initial:[],equals:l})}}}function hd(t,e,n){let r=new ce(t,n.graph);r.tagFactory("agentMemory",ft(n));let o;if(n.extractFn)o=n.extractFn;else if(n.adapter&&n.extractPrompt)o=Gr(n.extractPrompt,{adapter:n.adapter});else throw new Error("agentMemory: provide either extractFn or adapter + extractPrompt");let s=(T,b)=>{let w=b.cache??new Map,k=b.subscribe(S=>{for(let v of S)v[0]===D&&(w=v[1])});return r.addDisposer(k),he(T,S=>S==null?{upsert:[]}:o(S,w))},a=e;if(n.admissionFilter){let T=V(e),b=n.admissionFilter;a=A([T],([w])=>{if(b(w))return w},{name:"admissionFilter",describeKind:"derived"})}let i;n.consolidateFn?i=n.consolidateFn:n.adapter&&n.consolidatePrompt&&(i=Fr(n.consolidatePrompt,{adapter:n.adapter}));let d=n.consolidateTrigger;if(!d&&i&&n.reflection?.enabled!==!1){let T=n.reflection?.interval??3e5;d=Zt(T,{period:T})}let c={score:n.score,cost:n.cost,budget:n.budget??2e3,context:n.context,consolidate:i,consolidateTrigger:d},u=Ns(a,s,c);r.add(u.store.entries,{name:"store"}),r.add(u.compact,{name:"compact"}),r.add(u.size,{name:"size"});let l=null;n.vectorDimensions&&n.vectorDimensions>0&&n.embedFn&&(l=Br(r,u,{dimension:n.vectorDimensions,embedFn:n.embedFn}).vectors);let p=null;n.enableKnowledgeGraph&&(p=Vr(r,u,t,{mountPath:"kg",entityFn:n.entityFn}).kg);let f=null;n.tiers&&(f=Kr(r,u,{...n.tiers,score:n.score,context:n.context}).tiers);let m=null,h=null,g=null,y=null;if(l||p){let T=zr(r,u,l,p,{score:n.score,cost:n.cost,budget:n.budget,topK:n.retrieval?.topK,graphDepth:n.retrieval?.graphDepth,contextOf:n.contextOf,contextWeight:n.contextWeight,context:n.context});m=T.retrieval,h=T.retrievalTrace,g=T.retrieve,y=T.retrieveReactive}return Object.assign(r,{distillBundle:u,compact:u.compact,size:u.size,vectors:l,kg:p,memoryTiers:f,retrieval:m,retrievalTrace:h,retrieve:g,retrieveReactive:y})}function yd(t,e,n){let r=t.describe({actor:e,detail:"full"}),o=n?.groupByTags??!0,s=n?.separator??`
|
|
12
|
+
`,a=[],i=n?.sinceVersion;for(let[d,c]of Object.entries(r.nodes)){let u=c.meta??{},l=u.description,p=u.format;if(!l&&!p)continue;if(i!=null&&c.v!=null){let y=i.get(d);if(y!=null&&y.id===c.v.id&&c.v.version<=y.version)continue}let f=l??d,m=c.value,h=u.unit,g;p==="currency"&&typeof m=="number"?g=`$${m.toFixed(2)}`:p==="percentage"&&typeof m=="number"?g=`${(m*100).toFixed(1)}%`:m==null?g="(no value)":g=String(m),h&&p!=="currency"&&p!=="percentage"&&(g=`${g} ${h}`),a.push({path:d,description:f,formatted:g})}if(a.length===0)return"";if(o){let d=new Map,c=[];for(let l of a){let f=r.nodes[l.path].meta?.tags;if(f&&f.length>0){let m=f[0],h=d.get(m);h||(h=[],d.set(m,h)),h.push(l)}else c.push(l)}if(d.size===0)return a.map(l=>`- ${l.description}: ${l.formatted}`).join(s);let u=[];for(let[l,p]of[...d.entries()].sort((f,m)=>f[0].localeCompare(m[0])))u.push(`[${l}]${s}${p.map(f=>`- ${f.description}: ${f.formatted}`).join(s)}`);return c.length>0&&u.push(c.map(l=>`- ${l.description}: ${l.formatted}`).join(s)),u.join(s+s)}return a.map(d=>`- ${d.description}: ${d.formatted}`).join(s)}se();Q();Z();Q();Ne();se();ve();Q();Qe();Z();function Is(t,e){return De("reduction",t,e)}function Ps(t,e,n,r){let o=r?.maxIterations??10,s=`__feedback_${e}`,a=F(0,{meta:Is("feedback_counter",{maxIterations:o,feedbackFrom:e,feedbackTo:n})});t.add(a,{name:s});let i=t.resolve(e),d=t.resolve(n),c=`__feedback_effect_${e}`,u=te([],(l,p)=>{let f=i.subscribe(m=>{for(let h of m){let g=h[0];if(g===D){let y=h[1];if(y==null)return;ne(()=>{Ts(a,o)&&d.emit(y)})}else if(g===$||g===P){let y=g===P&&h.length>1?[P,h[1]]:[g];a.down([y])}}});return()=>f()},{name:c,describeKind:"effect",meta:{...Is("feedback_effect",{feedbackFrom:e,feedbackTo:n}),_internal:!0}});return t.add(u,{name:c}),t.addDisposer(Y(u)),t}function kt(t){let e=t.meta?.factory;return typeof e=="string"?e:void 0}function xt(t){let e=t.meta?.factoryArgs;return e!=null&&typeof e=="object"?e:{}}function Gs(t){let e=xt(t);return"initial"in e?e.initial:t.value}function $s(t){return typeof t=="object"&&t!==null&&"factory"in t}function js(t){return typeof t=="object"&&t!==null&&"factory"in t}function bd(t){return $s(t)?t.factory:t}function Td(t){return js(t)?t.factory:t}function vd(t,e){let n=[],r=new Set(Object.keys(e.fns??{})),o=new Set(Object.keys(e.sources??{}));for(let[s,a]of Object.entries(t.nodes)){if(a.type==="template")continue;let i=a,d=kt(i);if(d==null)continue;let c=i.type==="producer";if(i.type==="state"&&d==="state")continue;if(c){let l=o.has(d),p=r.has(d);if(!l&&!p&&(o.size>0||r.size>0)){let f=Sn(d,o)??Sn(d,r);n.push(`Node "${s}": source "${d}" not found in catalog`+(f?`. Did you mean "${f}"?`:""))}}else if(r.size>0&&!r.has(d))if(o.has(d))n.push(`Node "${s}": fn "${d}" is a source, not a function. Use it as a producer source instead, or use a function from: ${[...r].join(", ")}`);else{let l=Sn(d,r);n.push(`Node "${s}": fn "${d}" not found in catalog`+(l?`. Did you mean "${l}"?`:""))}let u=xt(i);if(!c&&e.fns?.[d]){let l=e.fns[d];if($s(l)&&l.configSchema){for(let[p,f]of Object.entries(l.configSchema))if(f.required!==!1&&!(p in u)&&n.push(`Node "${s}": config missing required field "${p}"`),p in u&&f.enum){let m=u[p];f.enum.includes(m)||n.push(`Node "${s}": config.${p} = ${JSON.stringify(m)}, expected one of: ${f.enum.join(", ")}`)}}}if(c&&e.sources?.[d]){let l=e.sources[d];if(js(l)&&l.configSchema){for(let[p,f]of Object.entries(l.configSchema))if(f.required!==!1&&!(p in u)&&n.push(`Node "${s}": config missing required field "${p}"`),p in u&&f.enum){let m=u[p];f.enum.includes(m)||n.push(`Node "${s}": config.${p} = ${JSON.stringify(m)}, expected one of: ${f.enum.join(", ")}`)}}}}if(t.templates)for(let[s,a]of Object.entries(t.templates))for(let[i,d]of Object.entries(a.nodes)){let c=kt(d);if(c!=null&&!(d.type==="state"&&c==="state")&&d.type!=="producer"&&r.size>0&&!r.has(c)){let u=Sn(c,r);n.push(`Template "${s}" node "${i}": fn "${c}" not found in catalog`+(u?`. Did you mean "${u}"?`:""))}}return{valid:n.length===0,errors:n,warnings:[]}}function Sn(t,e){let n=null,r=1/0,o=t.toLowerCase();for(let s of e){let a=wd(o,s.toLowerCase());a<r&&a<=Math.max(3,Math.floor(t.length/2))&&(r=a,n=s)}return n}function wd(t,e){let n=t.length,r=e.length,o=Array.from({length:n+1},(s,a)=>Array.from({length:r+1},(i,d)=>a===0?d:d===0?a:0));for(let s=1;s<=n;s++)for(let a=1;a<=r;a++)o[s][a]=t[s-1]===e[a-1]?o[s-1][a-1]:1+Math.min(o[s-1][a],o[s][a-1],o[s-1][a-1]);return o[n][r]}var Fs=new Set(["state","producer","derived","effect","operator","template"]),kd=new Set(["state","producer","derived","effect","operator"]);function xd(t){let e=[],n=[];if(t==null||typeof t!="object")return{valid:!1,errors:["GraphSpec must be a non-null object"],warnings:n};let r=t;if((typeof r.name!="string"||r.name.length===0)&&e.push("Missing or empty 'name' field"),r.nodes==null||typeof r.nodes!="object"||Array.isArray(r.nodes))return e.push("Missing or invalid 'nodes' field (must be an object)"),{valid:!1,errors:e,warnings:n};let o=new Set(Object.keys(r.nodes)),s=new Map,a=new Map;if(r.templates!=null&&typeof r.templates=="object"&&!Array.isArray(r.templates)){for(let[i,d]of Object.entries(r.templates))if(d!=null&&typeof d=="object"){let c=d;a.set(i,{params:Array.isArray(c.params)?c.params:[]})}}if(r.templates!=null)if(typeof r.templates!="object"||Array.isArray(r.templates))e.push("'templates' must be an object");else for(let[i,d]of Object.entries(r.templates)){if(d==null||typeof d!="object"){e.push(`Template "${i}": must be an object`);continue}let c=d;if(Array.isArray(c.params)||e.push(`Template "${i}": missing 'params' array`),c.nodes==null||typeof c.nodes!="object"||Array.isArray(c.nodes))e.push(`Template "${i}": missing or invalid 'nodes' object`);else{let u=new Set(Array.isArray(c.params)?c.params:[]),l=new Set(Object.keys(c.nodes));for(let[p,f]of Object.entries(c.nodes)){if(f==null||typeof f!="object"){e.push(`Template "${i}" node "${p}": must be an object`);continue}let m=f;if((typeof m.type!="string"||!kd.has(m.type))&&e.push(`Template "${i}" node "${p}": invalid type`),Array.isArray(m.deps))for(let h of m.deps)!l.has(h)&&!u.has(h)&&e.push(`Template "${i}" node "${p}": dep "${h}" is not an inner node or param`)}typeof c.output!="string"?e.push(`Template "${i}": missing 'output' string`):c.nodes[c.output]||e.push(`Template "${i}": output "${c.output}" is not a declared node`)}}for(let[i,d]of Object.entries(r.nodes)){if(d==null||typeof d!="object"){e.push(`Node "${i}": must be an object`);continue}let c=d;if(typeof c.type!="string"||!Fs.has(c.type)){e.push(`Node "${i}": invalid type "${String(c.type)}" (expected: ${[...Fs].join(", ")})`);continue}if(s.set(i,c.type),c.type==="template")if(typeof c.template!="string"||!a.has(c.template))e.push(`Node "${i}": template "${String(c.template)}" not found in templates`);else if(c.bind==null||typeof c.bind!="object"||Array.isArray(c.bind))e.push(`Node "${i}": template ref requires 'bind' object`);else{let u=a.get(c.template),l=c.bind;for(let p of u.params)p in l||e.push(`Node "${i}": template param "${p}" is not bound (template "${c.template}")`);for(let[,p]of Object.entries(l))typeof p=="string"&&!o.has(p)&&e.push(`Node "${i}": bind target "${p}" does not reference an existing node`)}else{if(Array.isArray(c.deps))for(let u of c.deps)u===i?e.push(`Node "${i}": self-referencing dep`):o.has(u)||e.push(`Node "${i}": dep "${u}" does not reference an existing node`);(c.type==="derived"||c.type==="effect"||c.type==="operator")&&!Array.isArray(c.deps)&&e.push(`Node "${i}": ${c.type} node should have a 'deps' array`)}}if(r.feedback!=null)if(!Array.isArray(r.feedback))e.push("'feedback' must be an array");else for(let i=0;i<r.feedback.length;i++){let d=r.feedback[i];if(d==null||typeof d!="object"){e.push(`Feedback [${i}]: must be an object`);continue}let c=d;typeof c.from!="string"||!o.has(c.from)?e.push(`Feedback [${i}]: 'from' "${String(c.from)}" does not reference an existing node`):s.get(c.from)==="effect"&&n.push(`Feedback [${i}]: 'from' "${c.from}" is an effect node \u2014 effects emit no DATA, so the feedback edge will never fire. Did you mean a derived/state node upstream?`),typeof c.from=="string"&&c.from===c.to&&e.push(`Feedback [${i}]: 'from' and 'to' must be different nodes`),typeof c.to!="string"||!o.has(c.to)?e.push(`Feedback [${i}]: 'to' "${String(c.to)}" does not reference an existing node`):typeof c.to=="string"&&s.get(c.to)!=="state"&&e.push(`Feedback [${i}]: 'to' node "${c.to}" must be a state node (got "${s.get(c.to)??"unknown"}")`)}return{valid:e.length===0,errors:e,warnings:n}}function Bs(t,e){let n=xd(t);if(!n.valid)throw new Error(`compileSpec: invalid GraphSpec:
|
|
17
13
|
${n.errors.join(`
|
|
18
|
-
`)}`);let r=e?.catalog??{},
|
|
19
|
-
${
|
|
20
|
-
`)}`);let u=[],
|
|
21
|
-
${
|
|
22
|
-
`)}`)}if(
|
|
14
|
+
`)}`);let r=t.factory,o=t.factoryArgs;if(typeof r=="string"){let b=e?.catalog?.graphFactories?.[r];if(b)return b(o)}let s=e?.catalog??{},a=e?.onMissing??"placeholder",i=new ce(t.name),d=t.templates??{},c=vd(t,s);if(!c.valid)throw new Error(`compileSpec: catalog validation errors:
|
|
15
|
+
${c.errors.join(`
|
|
16
|
+
`)}`);let u=[],l=(b,w,k)=>{u.push({path:b,kind:w,name:k})},p=b=>{let w=s.fns?.[b];return w?bd(w):void 0},f=b=>{let w=s.sources?.[b];return w?Td(w):void 0},m=b=>{if(!b)return;let w={};for(let[k,S]of Object.entries(b))k==="factory"||k==="factoryArgs"||(w[k]=S);return Object.keys(w).length>0?w:void 0},h=new Map,g=[];for(let[b,w]of Object.entries(t.nodes)){if(w.type==="template")continue;let k=w,S=kt(k),v=xt(k);if(k.type==="state"){let x=Gs(k),R=F(x,{name:b,meta:m(k.meta)});i.add(R,{name:b}),h.set(b,R)}else if(k.type==="producer"){let x=S?f(S):void 0,R=S?p(S):void 0;if(x){let M=x(v);i.add(M,{name:b}),h.set(b,M)}else if(R){let M=R([],v);i.add(M,{name:b}),h.set(b,M)}else{S&&l(b,"source",S);let M=oe(()=>{},{name:b,meta:{...m(k.meta),_specSource:S}});i.add(M,{name:b}),h.set(b,M)}}else g.push([b,k])}let y=!0,T=new Map(g);for(;T.size>0&&y;){y=!1;for(let[b,w]of[...T.entries()]){let k=w.deps??[];if(!k.every(N=>h.has(N)))continue;let S=k.map(N=>h.get(N)),v=kt(w),x=xt(w),R=v?p(v):void 0,M;R?M=R(S,x):w.type==="effect"?(v&&l(b,"fn",v),M=Re(S,()=>{})):(v&&l(b,"fn",v),M=A(S,N=>N[0])),i.add(M,{name:b}),h.set(b,M),T.delete(b),y=!0}}if(T.size>0){let b=[...T.keys()].sort().join(", ");throw new Error(`compileSpec: unresolvable deps for nodes: ${b}`)}for(let[b,w]of Object.entries(t.nodes)){if(w.type!=="template")continue;let k=w,S=d[k.template],v=new ce(b),x=new Map,R=[];for(let[_,E]of Object.entries(S.nodes)){let I=(E.deps??[]).map(G=>G.startsWith("$")&&k.bind[G]?k.bind[G]:G),K={...E,deps:I},q=kt(E),H=xt(E);if(E.type==="state"){let G=Gs(E),j=F(G,{name:_,meta:m(E.meta)});v.add(j,{name:_}),x.set(_,j)}else if(E.type==="producer"){let G=q?f(q):void 0,j=q?p(q):void 0;if(G){let O=G(H);v.add(O,{name:_}),x.set(_,O)}else if(j){let O=j([],H);v.add(O,{name:_}),x.set(_,O)}else{q&&l(`${b}.${_}`,"source",q);let O=oe(()=>{},{name:_,meta:{...m(E.meta),_specSource:q}});v.add(O,{name:_}),x.set(_,O)}}else R.push([_,K])}let M=!0,N=new Map(R);for(;N.size>0&&M;){M=!1;for(let[_,E]of[...N.entries()]){let I=E.deps??[];if(!I.every(C=>x.has(C)||h.has(C)))continue;let q=I.map(C=>x.get(C)??h.get(C)),H=kt(E),G=xt(E),j=H?p(H):void 0,O;j?O=j(q,G):E.type==="effect"?(H&&l(`${b}.${_}`,"fn",H),O=Re(q,()=>{})):(H&&l(`${b}.${_}`,"fn",H),O=A(q,C=>C[0])),v.add(O,{name:_}),x.set(_,O),N.delete(_),M=!0}}if(N.size>0){let _=[...N.keys()].sort().join(", ");throw new Error(`compileSpec: template "${k.template}" has unresolvable deps: ${_}`)}i.mount(b,v);let L=`${b}::${S.output}`;h.set(b,i.resolve(L));try{let _=i.resolve(L);_.meta._templateName?.emit(k.template),_.meta._templateBind?.emit(k.bind)}catch{}}for(let b of t.feedback??[])Ps(i,b.from,b.to,{maxIterations:b.maxIterations});if(u.length>0){if(a==="error"){let b=u.map(w=>` - ${w.path}: missing ${w.kind} "${w.name}"`);throw new Error(`compileSpec: ${u.length} catalog entr${u.length===1?"y":"ies"} missing \u2014 pass them via opts.catalog or set opts.onMissing to "warn"/"placeholder":
|
|
17
|
+
${b.join(`
|
|
18
|
+
`)}`)}if(a==="warn"){let b=e?.onWarn??(w=>console.warn(w));for(let w of u)b(`compileSpec: ${w.path} references missing ${w.kind} "${w.name}" \u2014 substituted placeholder`)}}return i}var Vs=`You are a graph architect for GraphReFly, a reactive graph protocol.
|
|
23
19
|
|
|
24
20
|
Given a natural-language description, produce a JSON graph specification with this structure:
|
|
25
21
|
|
|
@@ -52,9 +48,9 @@ Rules:
|
|
|
52
48
|
- "operator" nodes are parameterized transformations with deps.
|
|
53
49
|
- Use "deps" inside each node to declare dependencies \u2014 no separate "edges" array.
|
|
54
50
|
- meta.description is required for every node.
|
|
55
|
-
- Return ONLY valid JSON, no markdown fences or commentary.`;async function
|
|
51
|
+
- Return ONLY valid JSON, no markdown fences or commentary.`;async function Ks(t,e,n){let o=[{role:"system",content:n?.systemPromptExtra?`${Vs}
|
|
56
52
|
|
|
57
|
-
${n.systemPromptExtra}`:
|
|
53
|
+
${n.systemPromptExtra}`:Vs},{role:"user",content:t}],s=e.invoke(o,{model:n?.model,temperature:n?.temperature??0,maxTokens:n?.maxTokens,signal:n?.signal}),i=(await Lt(s)).content.trim();i.startsWith("```")&&(i=bt(i));let d;try{d=JSON.parse(i)}catch{throw new Error(`graphFromSpec: LLM response is not valid JSON: ${i.slice(0,200)}`)}return Bs(d,{catalog:n?.catalog})}function Rd(t,e,n){let r=V(t);return he(r,o=>!o||typeof o!="string"||o.trim().length===0?F(null):oe(s=>{let a=new AbortController,i=!1;return Ks(o,e,{...n,signal:a.signal}).then(d=>{if(i){d.destroy();return}s.emit(d),s.down([[$]])}).catch(d=>{i||s.down([[P,d]])}),()=>{i=!0,a.abort()}},{name:"graphFromSpec::call"}))}function _d(t){let e={},n=t.type;return n==="enum"&&Array.isArray(t.values)?(e.type="string",e.enum=t.values):n==="integer"?e.type="integer":n==="number"?e.type="number":n==="boolean"?e.type="boolean":n==="string"?e.type="string":e.type=["string","number","boolean"],Array.isArray(t.range)&&t.range.length===2&&(e.minimum=t.range[0],e.maximum=t.range[1]),typeof t.format=="string"&&(e.description=`Format: ${t.format}`),typeof t.unit=="string"&&(e.description?e.description+=` (${t.unit})`:e.description=`Unit: ${t.unit}`),e}function Nd(t,e){let n=t.describe({actor:e,detail:"full"}),r=[],o=[],s=[];for(let[a,i]of Object.entries(n.nodes)){if(i.type!=="state"||a.includes("::__meta__::")||i.status==="completed"||i.status==="errored")continue;let d=i.meta??{},c=d.access;if(c==="human"||c==="system")continue;let u=d.description??`Set the value of ${a}`,l=_d(d),p={type:"object",required:["value"],properties:{value:l},additionalProperties:!1},f=a.replace(/::/g,"__");r.push({type:"function",function:{name:f,description:u,parameters:p}}),o.push({name:a,description:u,inputSchema:p});let m=t,h=e,g=i.v;s.push({name:a,description:u,parameters:p,handler(y){return m.set(a,y.value,h?{actor:h}:void 0),y.value},...g!=null?{version:{id:g.id,version:g.version}}:{}})}return{openai:r,mcp:o,definitions:s}}se();Q();Z();var Sd=`You are a reactive graph optimizer for GraphReFly.
|
|
58
54
|
|
|
59
55
|
Given a graph's current structure (from describe()) and a problem statement, suggest topology and parameter changes to solve the problem.
|
|
60
56
|
|
|
@@ -75,4 +71,4 @@ Return ONLY valid JSON with this structure:
|
|
|
75
71
|
Rules:
|
|
76
72
|
- Only suggest operations that reference existing nodes (for remove/disconnect/set_value/update_meta) or new nodes you define (for add_node).
|
|
77
73
|
- Keep changes minimal \u2014 prefer the smallest set of operations that solves the problem.
|
|
78
|
-
- Return ONLY valid JSON, no markdown fences or commentary.`;async function
|
|
74
|
+
- Return ONLY valid JSON, no markdown fences or commentary.`;async function zs(t,e,n,r){let{expand:o,...s}=t.describe({actor:r?.actor,detail:"standard"}),a=[{role:"system",content:Sd},{role:"user",content:JSON.stringify({graph:s,problem:e})}],i=n.invoke(a,{model:r?.model,temperature:r?.temperature??0,maxTokens:r?.maxTokens,signal:r?.signal}),c=(await Lt(i)).content.trim();c.startsWith("```")&&(c=c.replace(/^```(?:json)?\s*/,"").replace(/\s*```$/,""));let u;try{u=JSON.parse(c)}catch{throw new Error(`suggestStrategy: LLM response is not valid JSON: ${c.slice(0,200)}`)}let l=u;if(typeof l.summary!="string")throw new Error("suggestStrategy: missing 'summary' in response");if(typeof l.reasoning!="string")throw new Error("suggestStrategy: missing 'reasoning' in response");if(!Array.isArray(l.operations))throw new Error("suggestStrategy: missing 'operations' array in response");return{summary:l.summary,reasoning:l.reasoning,operations:l.operations}}function Md(t,e,n,r){let o=V(e),s=Co(o,t);return he(s,a=>{if(a==null)return F(null);let[i,d]=a;return!d||!i||typeof i!="string"||i.trim().length===0?F(null):d.destroyed?F(null):oe(c=>{let u=new AbortController,l=!1;return zs(d,i,n,{...r,signal:u.signal}).then(p=>{l||(c.emit(p),c.down([[$]]))}).catch(p=>{l||c.down([[P,p]])}),()=>{l=!0,u.abort()}},{name:"suggestStrategy::call"})})}var Us=new Set(["state","derived","producer","operator","effect"]);function Ed(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 a=s;if((typeof a.type!="string"||!Us.has(a.type))&&e.push(`Node "${o}": invalid type "${String(a.type)}" (expected: ${[...Us].join(", ")})`),Array.isArray(a.deps))for(let i of a.deps)typeof i=="string"&&!r.has(i)&&e.push(`Node "${o}": dep "${i}" 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 a=n.edges[s];if(a==null||typeof a!="object"){e.push(`Edge [${s}]: must be an object`);continue}let i=a;(typeof i.from!="string"||!r.has(i.from))&&e.push(`Edge [${s}]: 'from' "${String(i.from)}" does not reference an existing node`),(typeof i.to!="string"||!r.has(i.to))&&e.push(`Edge [${s}]: 'to' "${String(i.to)}" does not reference an existing node`);let d=`${i.from}->${i.to}`;o.has(d)&&e.push(`Edge [${s}]: duplicate edge ${d}`),o.add(d)}}return{valid:e.length===0,errors:e}}0&&(module.exports={AgentLoopGraph,AllTiersExhaustedError,BudgetExhaustedError,ChatStreamGraph,CircuitOpenError,DEFAULT_DECAY_RATE,FallbackMissError,LLMTimeoutError,ReplayCacheMissError,ToolRegistryGraph,admissionFilter3D,admissionScored,agentLoop,agentMemory,anthropicAdapter,canonicalJson,cascadingLlmAdapter,chatStream,composePricing,computePrice,contentGate,costMeterExtractor,createAdapter,createCapabilitiesRegistry,createPricingRegistry,dryRunAdapter,fallbackAdapter,frozenContext,gatedStream,gaugesAsContext,googleAdapter,graphFromSpec,graphFromSpecReactive,handoff,keywordFlagExtractor,knobsAsTools,llmConsolidator,llmExtractor,memoryRetrieval,memoryWithKG,memoryWithTiers,memoryWithVectors,observableAdapter,openAICompatAdapter,parseRateLimitFromError,pricingFor,promptNode,redactor,registryPricing,resilientAdapter,streamExtractor,streamingPromptNode,suggestStrategy,suggestStrategyReactive,systemPromptBuilder,tier,toolCallExtractor,toolExecution,toolRegistry,toolSelector,validateGraphDef,withBreaker,withBudgetGate,withDryRun,withRateLimiter,withReplayCache,withRetry,withTimeout,zeroPrice});
|