@graphrefly/graphrefly 0.32.0 → 0.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{cascading-D3sapjue.d.ts → cascading-Bg0a4VSf.d.ts} +2 -2
- package/dist/{cascading-BfQmSmjU.d.cts → cascading-DKIb6Pk8.d.cts} +2 -2
- package/dist/{chunk-4JBKKUCJ.js → chunk-2JO6LXFT.js} +1 -1
- package/dist/{chunk-FTA5TB2A.js → chunk-2LZ6DL45.js} +1 -1
- package/dist/chunk-3Y4BXFFR.js +1 -0
- package/dist/{chunk-WQ7I7JVU.js → chunk-4F564IPP.js} +1 -1
- package/dist/{chunk-M2VFLRPJ.js → chunk-4NYSEUKV.js} +1 -1
- package/dist/{chunk-N2KKISCE.js → chunk-533RQFF6.js} +1 -1
- package/dist/{chunk-BU4SUZSA.js → chunk-55T3K37W.js} +1 -1
- package/dist/chunk-65WWQ5CB.js +43 -0
- package/dist/chunk-6HQ6HVTF.js +1 -0
- package/dist/{chunk-4VXL3UZK.js → chunk-7Q2WPFQ7.js} +1 -1
- package/dist/chunk-A3GDELMY.js +61 -0
- package/dist/{chunk-5PBXUVHI.js → chunk-BY4WKPKM.js} +1 -1
- package/dist/{chunk-JYMNVEH6.js → chunk-C5DINHNP.js} +1 -1
- package/dist/{chunk-7QS77X6G.js → chunk-CJMFZXIZ.js} +1 -1
- package/dist/{chunk-W6FQIFVE.js → chunk-CLD3F4R5.js} +1 -1
- package/dist/{chunk-RWGJQQLT.js → chunk-FKRPIRE6.js} +1 -1
- package/dist/{chunk-UXEB35L4.js → chunk-GAOX6OPT.js} +1 -1
- package/dist/{chunk-TOCCHQI6.js → chunk-GCUYSIM4.js} +1 -1
- package/dist/{chunk-XRSHMHEG.js → chunk-HTBOCKVD.js} +1 -1
- package/dist/{chunk-LJGPOJHS.js → chunk-IB64M7VP.js} +1 -1
- package/dist/{chunk-Q2SY7M7K.js → chunk-IJFSR4NU.js} +1 -1
- package/dist/{chunk-X4OOM6QU.js → chunk-INXDSJRC.js} +1 -1
- package/dist/{chunk-4YGJ7KZ6.js → chunk-IPNJDNE7.js} +1 -1
- package/dist/{chunk-4UUDNFYG.js → chunk-KGKJCHEK.js} +1 -1
- package/dist/chunk-KN2UMFT6.js +5 -0
- package/dist/{chunk-A4JT4SAD.js → chunk-KRH66M4O.js} +1 -1
- package/dist/{chunk-K54OKWNY.js → chunk-L3KUKDZC.js} +1 -1
- package/dist/{chunk-Y26UN6J5.js → chunk-LOF5HSD3.js} +1 -1
- package/dist/chunk-LYCLF26R.js +1 -0
- package/dist/{chunk-CZVYLXFK.js → chunk-M27MVZCP.js} +1 -1
- package/dist/{chunk-DWIAG62L.js → chunk-NNKJUORL.js} +1 -1
- package/dist/{chunk-WF3V5X2L.js → chunk-PBN426RU.js} +1 -1
- package/dist/{chunk-MFNOZ5E6.js → chunk-Q46YJCQH.js} +1 -1
- package/dist/{chunk-KD3IYBTD.js → chunk-SFIM774L.js} +1 -1
- package/dist/{chunk-VXJX3ZZP.js → chunk-T2TB37TW.js} +1 -1
- package/dist/{chunk-UMH3HSP7.js → chunk-T7EQPKOP.js} +1 -1
- package/dist/{chunk-JAHAJU4G.js → chunk-TONEKQM3.js} +1 -1
- package/dist/{chunk-CNXUW2CU.js → chunk-TZLEMGAK.js} +1 -1
- package/dist/{chunk-LWGLBCMU.js → chunk-TZQPPQEQ.js} +1 -1
- package/dist/{chunk-7JZ3YORY.js → chunk-U2T2XWDA.js} +1 -1
- package/dist/{chunk-WE32AFFA.js → chunk-UF746BQ4.js} +1 -1
- package/dist/{chunk-7QMVU3IX.js → chunk-WBWBY6LI.js} +1 -1
- package/dist/{chunk-7EMUF2RY.js → chunk-Y63GWRHO.js} +1 -1
- package/dist/{chunk-PWKLZ2XU.js → chunk-YDWTVO4E.js} +1 -1
- package/dist/{chunk-EIFHFDFD.js → chunk-YUBV7EEE.js} +1 -1
- package/dist/compat/index.cjs +5 -5
- package/dist/compat/index.d.cts +14 -14
- package/dist/compat/index.d.ts +14 -14
- package/dist/compat/index.js +1 -1
- package/dist/compat/jotai/index.cjs +1 -1
- package/dist/compat/jotai/index.d.cts +2 -2
- package/dist/compat/jotai/index.d.ts +2 -2
- package/dist/compat/jotai/index.js +1 -1
- package/dist/compat/nanostores/index.cjs +1 -1
- package/dist/compat/nanostores/index.d.cts +2 -2
- package/dist/compat/nanostores/index.d.ts +2 -2
- package/dist/compat/nanostores/index.js +1 -1
- package/dist/compat/nestjs/index.cjs +5 -5
- package/dist/compat/nestjs/index.d.cts +6 -6
- package/dist/compat/nestjs/index.d.ts +6 -6
- package/dist/compat/nestjs/index.js +1 -1
- package/dist/compat/react/index.d.cts +2 -2
- package/dist/compat/react/index.d.ts +2 -2
- package/dist/compat/solid/index.d.cts +2 -2
- package/dist/compat/solid/index.d.ts +2 -2
- package/dist/compat/svelte/index.d.cts +2 -2
- package/dist/compat/svelte/index.d.ts +2 -2
- package/dist/compat/vue/index.d.cts +2 -2
- package/dist/compat/vue/index.d.ts +2 -2
- package/dist/compat/zustand/index.cjs +3 -3
- 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-BY9hMxN7.d.ts → composite-BPDU_XV1.d.ts} +2 -2
- package/dist/{composite-CH0S8DFn.d.cts → composite-CmvdhTJe.d.cts} +2 -2
- package/dist/core/index.cjs +1 -1
- package/dist/core/index.d.cts +4 -4
- package/dist/core/index.d.ts +4 -4
- package/dist/core/index.js +1 -1
- package/dist/extra/browser.cjs +1 -1
- package/dist/extra/browser.d.cts +1 -1
- package/dist/extra/browser.d.ts +1 -1
- package/dist/extra/browser.js +1 -1
- package/dist/extra/index.cjs +16 -16
- package/dist/extra/index.d.cts +9 -9
- package/dist/extra/index.d.ts +9 -9
- package/dist/extra/index.js +1 -1
- package/dist/extra/node.cjs +1 -1
- package/dist/extra/node.d.cts +1 -1
- package/dist/extra/node.d.ts +1 -1
- package/dist/extra/node.js +1 -1
- package/dist/extra/operators.cjs +1 -1
- package/dist/extra/operators.d.cts +1 -1
- package/dist/extra/operators.d.ts +1 -1
- package/dist/extra/operators.js +1 -1
- package/dist/extra/reactive.cjs +1 -1
- package/dist/extra/reactive.d.cts +3 -3
- package/dist/extra/reactive.d.ts +3 -3
- package/dist/extra/reactive.js +1 -1
- package/dist/extra/sources.cjs +1 -1
- package/dist/extra/sources.d.cts +1 -1
- package/dist/extra/sources.d.ts +1 -1
- package/dist/extra/sources.js +1 -1
- package/dist/extra/storage-browser.cjs +1 -1
- package/dist/extra/storage-browser.d.cts +1 -1
- package/dist/extra/storage-browser.d.ts +1 -1
- package/dist/extra/storage-browser.js +1 -1
- package/dist/{fallback-Cb3GH1O7.d.cts → fallback-9YznPvPP.d.cts} +1 -1
- package/dist/{fallback-DRjJ_ZM8.d.ts → fallback-mYSd8vQo.d.ts} +1 -1
- package/dist/graph/index.cjs +4 -4
- 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-BOhEGJ6E.d.ts → graph-BROUZPG9.d.ts} +2 -2
- package/dist/{graph-CdJeX7O7.d.cts → graph-DaoydJ_u.d.cts} +2 -2
- package/dist/{index-C22aTC1X.d.cts → index-3L3RC3VJ.d.ts} +578 -108
- package/dist/{index-BmZb8fNF.d.cts → index-B-KCkW4M.d.cts} +4 -4
- package/dist/{index-CDK5RsV5.d.cts → index-B1hFhK1K.d.cts} +1 -1
- package/dist/{index-C7RqYbOZ.d.ts → index-B5eS17Bz.d.ts} +7 -7
- package/dist/{index-DSawGt8n.d.cts → index-BDEhWLF4.d.cts} +3 -3
- package/dist/{index-CZUzi6Dy.d.ts → index-BFHpNSsV.d.ts} +4 -4
- package/dist/{index-DDo-eqQ4.d.cts → index-BO6t0HjV.d.cts} +1 -1
- package/dist/{index-CrC7urhX.d.ts → index-BRisOxlx.d.ts} +1 -1
- package/dist/{index-CHfBm51k.d.ts → index-BUtCR0k6.d.ts} +4 -4
- package/dist/{index-BydMDMf7.d.cts → index-BVTjuKeP.d.cts} +1 -1
- package/dist/{index-BX22kvjh.d.ts → index-BWiX5foT.d.ts} +1 -1
- package/dist/{index-Dxk-pUQI.d.ts → index-Bd2AjMQY.d.ts} +2 -2
- package/dist/{index-Dbmj0iYR.d.ts → index-Bi4ZP6Hc.d.ts} +2 -2
- package/dist/{index-j33Lfb1G.d.cts → index-BkfL5MXh.d.cts} +3 -3
- package/dist/{index-CnjUhRbs.d.cts → index-BpjQanLs.d.cts} +2 -2
- package/dist/{index-LGzAYqdR.d.ts → index-BsxqmV6u.d.ts} +2 -2
- package/dist/{index-CCdg0JLX.d.cts → index-C2Dey3L-.d.cts} +12 -3
- package/dist/{index-gXTVbSax.d.ts → index-C5uMGVJw.d.ts} +4 -4
- package/dist/{index-C-Gsh-0a.d.cts → index-C8_bnDBZ.d.cts} +3 -3
- package/dist/{index-C9qCLIN4.d.ts → index-CD7qmvSf.d.ts} +3 -3
- package/dist/{index-wIx1Jisk.d.ts → index-CI5fULSz.d.ts} +1 -1
- package/dist/{index-BUZPTPSQ.d.ts → index-CNxdDb2e.d.ts} +3 -3
- package/dist/{index-FBqTfL_S.d.cts → index-CQ1gt4rn.d.cts} +1 -1
- package/dist/{index-CNyiYQWF.d.ts → index-CQtnGFrZ.d.cts} +578 -108
- package/dist/{index-DhlAMlm9.d.ts → index-CbCNoogR.d.ts} +218 -66
- package/dist/{index-BDLy6CQ9.d.cts → index-Ccv_61jG.d.cts} +2 -2
- package/dist/{index-MV2yGIAq.d.ts → index-Ced0dphF.d.ts} +9 -9
- package/dist/{index-BzxU4yhV.d.cts → index-ChZvMC4M.d.cts} +4 -4
- package/dist/{index-zMQIQuDu.d.ts → index-Chi9IiHJ.d.ts} +3 -3
- package/dist/{index-DUkuH3jP.d.cts → index-ClJUZAOr.d.cts} +18 -3
- package/dist/{index-D7XxY1Ff.d.cts → index-ClKm7CFB.d.cts} +1 -1
- package/dist/{index-D3HcdZ4d.d.cts → index-Cn3taOmp.d.cts} +2 -2
- package/dist/{index-C4QTaDli.d.cts → index-CoR-tOZA.d.cts} +4 -4
- package/dist/{index-BpFWP7Bq.d.cts → index-Cp91Sxbo.d.cts} +5 -4
- package/dist/{index-DD1czHj3.d.ts → index-Cq7Uqgu4.d.ts} +2 -2
- package/dist/{index-EGjF6iSY.d.cts → index-D23g00HE.d.cts} +4 -4
- package/dist/{index-Bnmttu35.d.ts → index-D80nGRb9.d.ts} +3 -3
- package/dist/{index-DY2QbdoP.d.cts → index-DR3XqZlV.d.cts} +1 -1
- package/dist/{index-BANwzwBV.d.ts → index-Db21wuaD.d.ts} +5 -4
- package/dist/{index-CIXaiYDE.d.cts → index-DhWrMTI6.d.cts} +1 -1
- package/dist/{index-Dp_pS7Bw.d.ts → index-DheNs40A.d.ts} +2 -2
- package/dist/{index-CVevMZ0n.d.ts → index-Dia4yc2y.d.ts} +3 -3
- package/dist/{index-_BXz9K7b.d.cts → index-Ds3Rz9m9.d.cts} +3 -3
- package/dist/{index-Ckl03Q0s.d.ts → index-Dtpr2FIB.d.ts} +18 -3
- package/dist/{index-ByPnK85n.d.ts → index-DupIl9wI.d.ts} +1 -1
- package/dist/{index-CEoU-r-g.d.ts → index-DuvQAU02.d.ts} +2 -2
- package/dist/{index-D0C_USMR.d.ts → index-DxEcY7Om.d.ts} +1 -1
- package/dist/{index-eYHRkoK-.d.ts → index-HvJ90_tX.d.ts} +12 -3
- package/dist/{index-BuN2wGJs.d.cts → index-IxinNgAH.d.cts} +218 -66
- package/dist/{index-LzCJ0kMT.d.cts → index-Jgl7ev9I.d.cts} +9 -9
- package/dist/{index-DlGaEBW5.d.cts → index-RJX4snyi.d.cts} +2 -2
- package/dist/{index-DNhTQReY.d.cts → index-ZIQaKIdY.d.cts} +7 -7
- package/dist/{index-lpGUhTBn.d.ts → index-b4a6Sg0R.d.ts} +4 -4
- package/dist/{index-BiGeETJs.d.cts → index-iKsmdnq6.d.cts} +2 -2
- package/dist/{index-CmSjld-4.d.ts → index-nP13Qe6T.d.ts} +1 -1
- package/dist/{index-BJDXj9Wf.d.cts → index-p0bkNfby.d.cts} +3 -3
- package/dist/{index-aBqZUx3B.d.cts → index-wcfc7W-f.d.cts} +2 -2
- package/dist/{index-BwdPDWI4.d.cts → index-yJY9thRY.d.cts} +2 -2
- package/dist/{index-BbcSZCAG.d.ts → index-ygRFoyrN.d.ts} +2 -2
- package/dist/{index-Ip3q9T9x.d.ts → index-zA1uVtk0.d.ts} +1 -1
- package/dist/index.cjs +57 -57
- package/dist/index.d.cts +44 -44
- package/dist/index.d.ts +44 -44
- package/dist/index.js +1 -1
- package/dist/{meta-COtmHLwT.d.cts → meta-BdjSt8ky.d.cts} +1 -1
- package/dist/{meta-BMwx3ExI.d.ts → meta-CtDjj7cU.d.ts} +1 -1
- package/dist/{node-BVV7G1bq.d.cts → node-8qx0kgYt.d.cts} +49 -1
- package/dist/{node-BVV7G1bq.d.ts → node-8qx0kgYt.d.ts} +49 -1
- package/dist/{observable-BrUAPeH_.d.cts → observable-B6Ba-TTI.d.cts} +1 -1
- package/dist/{observable-ITikPXz3.d.ts → observable-DOniYM2B.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 +19 -19
- package/dist/patterns/ai/index.d.cts +16 -16
- package/dist/patterns/ai/index.d.ts +16 -16
- package/dist/patterns/ai/index.js +1 -1
- package/dist/patterns/ai/node.cjs +2 -2
- 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 +7 -7
- package/dist/patterns/audit/index.d.cts +5 -5
- package/dist/patterns/audit/index.d.ts +5 -5
- package/dist/patterns/audit/index.js +1 -1
- package/dist/patterns/cqrs/index.cjs +3 -3
- package/dist/patterns/cqrs/index.d.cts +4 -4
- package/dist/patterns/cqrs/index.d.ts +4 -4
- package/dist/patterns/cqrs/index.js +1 -1
- package/dist/patterns/demo-shell/index.cjs +6 -6
- 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 +6 -6
- package/dist/patterns/domain-templates/index.d.cts +4 -4
- package/dist/patterns/domain-templates/index.d.ts +4 -4
- package/dist/patterns/domain-templates/index.js +1 -1
- package/dist/patterns/graphspec/index.cjs +8 -8
- 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 +7 -7
- package/dist/patterns/guarded-execution/index.d.cts +6 -6
- package/dist/patterns/guarded-execution/index.d.ts +6 -6
- package/dist/patterns/guarded-execution/index.js +1 -1
- package/dist/patterns/harness/index.cjs +12 -12
- package/dist/patterns/harness/index.d.cts +11 -10
- package/dist/patterns/harness/index.d.ts +11 -10
- package/dist/patterns/harness/index.js +1 -1
- package/dist/patterns/job-queue/index.cjs +7 -7
- package/dist/patterns/job-queue/index.d.cts +4 -4
- package/dist/patterns/job-queue/index.d.ts +4 -4
- package/dist/patterns/job-queue/index.js +1 -1
- package/dist/patterns/lens/index.cjs +5 -5
- 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 +4 -4
- package/dist/patterns/memory/index.d.cts +4 -4
- package/dist/patterns/memory/index.d.ts +4 -4
- package/dist/patterns/memory/index.js +1 -1
- package/dist/patterns/messaging/index.cjs +4 -4
- package/dist/patterns/messaging/index.d.cts +4 -4
- package/dist/patterns/messaging/index.d.ts +4 -4
- package/dist/patterns/messaging/index.js +1 -1
- package/dist/patterns/orchestration/index.cjs +7 -7
- package/dist/patterns/orchestration/index.d.cts +5 -5
- package/dist/patterns/orchestration/index.d.ts +5 -5
- package/dist/patterns/orchestration/index.js +1 -1
- package/dist/patterns/reactive-layout/index.cjs +1 -1
- 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 +1 -1
- 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 +7 -7
- package/dist/patterns/refine-loop/index.d.cts +5 -5
- package/dist/patterns/refine-loop/index.d.ts +5 -5
- package/dist/patterns/refine-loop/index.js +1 -1
- package/dist/patterns/resilient-pipeline/index.cjs +1 -1
- package/dist/patterns/resilient-pipeline/index.d.cts +6 -6
- package/dist/patterns/resilient-pipeline/index.d.ts +6 -6
- package/dist/patterns/resilient-pipeline/index.js +1 -1
- package/dist/patterns/surface/index.cjs +7 -7
- 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/{reactive-layout-Bq0rA2Wb.d.ts → reactive-layout-DBJ3Vz-m.d.ts} +2 -2
- package/dist/{reactive-layout-Dhhe54Oj.d.cts → reactive-layout-Dk9AOQb_.d.cts} +2 -2
- package/dist/{reactive-log-5jFeNRmd.d.cts → reactive-log-CWC7jO4J.d.cts} +1 -1
- package/dist/{reactive-log-BOJDCI5x.d.ts → reactive-log-CqaBg8nf.d.ts} +1 -1
- package/dist/{reactive-map-IJIfZxoh.d.cts → reactive-map-Cm89Hk0c.d.cts} +1 -1
- package/dist/{reactive-map-CtRaCddO.d.ts → reactive-map-LjwjcFaW.d.ts} +1 -1
- package/dist/{resilience-IVNDYORD.js → resilience-7UZHSSGC.js} +1 -1
- package/dist/{resilience-Q6Bt_7y0.d.cts → resilience-N_VtLf7W.d.cts} +1 -1
- package/dist/{resilience-CludlzcP.d.ts → resilience-RjDIHZNZ.d.ts} +1 -1
- package/dist/{sugar-BHbAACDG.d.ts → sugar-CQkn_rxB.d.ts} +1 -1
- package/dist/{sugar-CqR6DJ7v.d.cts → sugar-DVEYhR7a.d.cts} +1 -1
- package/dist/{topology-tree-CpSjvIXp.d.cts → topology-tree-BB6oJxMz.d.cts} +1 -1
- package/dist/{topology-tree-DAbCV2Yw.d.ts → topology-tree-CAFOG5S5.d.ts} +1 -1
- package/dist/{types-CdfO2QTt.d.ts → types-B2LfBvNc.d.ts} +16 -2
- package/dist/{types-BgMqbc7N.d.cts → types-Cp_4coR_.d.cts} +16 -2
- package/package.json +1 -1
- package/dist/chunk-2JNT5NDF.js +0 -61
- package/dist/chunk-2RH4QNDQ.js +0 -1
- package/dist/chunk-7AJKUA36.js +0 -1
- package/dist/chunk-LG73TUF4.js +0 -43
- package/dist/chunk-PNTBXOQ6.js +0 -5
- package/dist/chunk-ZWETYYQG.js +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
"use strict";var Ut=Object.create;var ee=Object.defineProperty;var Bt=Object.getOwnPropertyDescriptor;var Ht=Object.getOwnPropertyNames;var jt=Object.getPrototypeOf,Gt=Object.prototype.hasOwnProperty;var E=(e,t)=>()=>(e&&(t=e(e=0)),t);var Vt=(e,t)=>{for(var n in t)ee(e,n,{get:t[n],enumerable:!0})},je=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Ht(t))!Gt.call(e,s)&&s!==n&&ee(e,s,{get:()=>t[s],enumerable:!(r=Bt(t,s))||r.enumerable});return e};var Kt=(e,t,n)=>(n=e!=null?Ut(jt(e)):{},je(t||!e||!e.__esModule?ee(n,"default",{value:e,enumerable:!0}):n,e)),Wt=e=>je(ee({},"__esModule",{value:!0}),e);function w(){return Math.trunc(performance.now()*1e6)}function D(){return Date.now()*1e6}var L=E(()=>{"use strict"});function $e(){return we>0||qt}function ze(){return we>0}function qe(e){we>0?Jt.push(e):e()}function te(e,t,n){if(t.length===0)return;if(t.length===1){let d=n(t[0][0]);if(d<3||!$e()){e(t);return}(d>=5?We:d===4?Ke:Ve).push(()=>e(t));return}let r=t.length,s=r,i=r,a=r,o=0;for(;o<r&&n(t[o][0])<3;)o++;for(s=o;o<r&&n(t[o][0])===3;)o++;for(i=o;o<r&&n(t[o][0])===4;)o++;a=o;let c=$e();if(s>0){let d=t.slice(0,s);e(d)}if(i>s){let d=t.slice(s,i);c?Ve.push(()=>e(d)):e(d)}if(a>i){let d=t.slice(i,a);c?Ke.push(()=>e(d)):e(d)}if(r>a){let d=t.slice(a,r);c?We.push(()=>e(d)):e(d)}}var we,qt,Ve,Ke,We,Jt,Je=E(()=>{"use strict";we=0,qt=!1,Ve=[],Ke=[],We=[],Jt=[]});var J,R,P,I,U,B,Q,F,M,v,H,ve,Qt,xe,Yt,Xt,_e,Qe,Ye,Xe,Se,ne=E(()=>{"use strict";J=Symbol.for("graphrefly/START"),R=Symbol.for("graphrefly/DATA"),P=Symbol.for("graphrefly/DIRTY"),I=Symbol.for("graphrefly/RESOLVED"),U=Symbol.for("graphrefly/INVALIDATE"),B=Symbol.for("graphrefly/PAUSE"),Q=Symbol.for("graphrefly/RESUME"),F=Symbol.for("graphrefly/TEARDOWN"),M=Symbol.for("graphrefly/COMPLETE"),v=Symbol.for("graphrefly/ERROR"),H=Object.freeze([P]),ve=Object.freeze([I]),Qt=Object.freeze([U]),xe=Object.freeze([J]),Yt=Object.freeze([M]),Xt=Object.freeze([F]),_e=Object.freeze([H]),Qe=Object.freeze([ve]),Ye=Object.freeze([Qt]),Xe=Object.freeze([Yt]),Se=Object.freeze([Xt])});function Ze(e){e.registerCodec(Zt)}var Zt,et=E(()=>{"use strict";Zt={name:"json",version:1,contentType:"application/json",encode(e){let t=JSON.stringify(e);return new TextEncoder().encode(t)},decode(e,t){let n=new TextDecoder().decode(e);return JSON.parse(n)}}});function re(e){if(e==null)return en;let{type:t,id:n,...r}=e;return{type:t??"system",id:n??"",...r}}var en,tt=E(()=>{"use strict";en={type:"system",id:""}});function nt(e){e.registerMessageType(J,{tier:0,wireCrossing:!1}),e.registerMessageType(P,{tier:1,wireCrossing:!1}),e.registerMessageType(U,{tier:1,wireCrossing:!1,metaPassthrough:!1}),e.registerMessageType(B,{tier:2,wireCrossing:!1}),e.registerMessageType(Q,{tier:2,wireCrossing:!1}),e.registerMessageType(R,{tier:3,wireCrossing:!0}),e.registerMessageType(I,{tier:3,wireCrossing:!0}),e.registerMessageType(M,{tier:4,wireCrossing:!0,metaPassthrough:!1}),e.registerMessageType(v,{tier:4,wireCrossing:!0,metaPassthrough:!1}),e.registerMessageType(F,{tier:5,wireCrossing:!0,metaPassthrough:!1})}var oe,rt=E(()=>{"use strict";ne();oe=class{_messageTypes=new Map;_codecs=new Map;_onMessage;_onSubscribe;_defaultVersioning;_defaultHashFn;_inspectorEnabled=!(typeof process<"u"&&process.env?.NODE_ENV==="production");_globalInspector;_frozen=!1;tierOf;constructor(t){this._onMessage=t.onMessage,this._onSubscribe=t.onSubscribe,this._defaultVersioning=t.defaultVersioning,this._defaultHashFn=t.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(t){this._assertUnfrozen(),this._onMessage=t}set onSubscribe(t){this._assertUnfrozen(),this._onSubscribe=t}get defaultVersioning(){return this._defaultVersioning}set defaultVersioning(t){this._assertUnfrozen(),this._defaultVersioning=t}get defaultHashFn(){return this._defaultHashFn}set defaultHashFn(t){this._assertUnfrozen(),this._defaultHashFn=t}get inspectorEnabled(){return this._inspectorEnabled}set inspectorEnabled(t){this._inspectorEnabled=t}get globalInspector(){return this._globalInspector}set globalInspector(t){this._globalInspector=t}registerMessageType(t,n){return this._assertUnfrozen(),this._messageTypes.set(t,{tier:n.tier,wireCrossing:n.wireCrossing??n.tier>=3,metaPassthrough:n.metaPassthrough??!0}),this}messageTier(t){let n=this._messageTypes.get(t);return n!=null?n.tier:1}isWireCrossing(t){let n=this._messageTypes.get(t);return n!=null?n.wireCrossing:!0}isLocalOnly(t){return!this.isWireCrossing(t)}isMetaPassthrough(t){let n=this._messageTypes.get(t);return n!=null?n.metaPassthrough:!0}isKnownMessageType(t){return this._messageTypes.has(t)}registerCodec(t){return this._assertUnfrozen(),this._codecs.set(t.name,t),this}lookupCodec(t){return this._codecs.get(t)}_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.")}}});var j,ot=E(()=>{"use strict";j=class extends Error{actor;action;nodeName;constructor(t,n){super(n??`GuardDenied: action "${String(t.action)}" denied for actor type "${String(t.actor.type)}"`),this.name="GuardDenied",this.actor=t.actor,this.action=t.action,this.nodeName=t.nodeName}get node(){return this.nodeName}}});function Ae(e){if(e===void 0)return null;if(typeof e=="number"){if(!Number.isFinite(e))throw new TypeError(`Cannot hash non-finite number: ${e}`);if(Number.isInteger(e)&&!Number.isSafeInteger(e))throw new TypeError(`Cannot hash integer outside safe range (|n| > 2^53-1): ${e}. Cross-language cid parity is not guaranteed for unsafe integers.`);return e}if(typeof e=="string"||typeof e=="boolean"||e===null)return e;if(Array.isArray(e))return e.map(Ae);if(typeof e=="object"&&e!==null){let t={};for(let n of Object.keys(e).sort())t[n]=Ae(e[n]);return t}return null}function rn(e){let t=nn.encode(e),n=t.length,r=n*8,s=n+9+63&-64,i=new Uint8Array(s);i.set(t),i[n]=128;let a=new DataView(i.buffer);a.setUint32(s-4,r>>>0,!1),a.setUint32(s-8,Math.floor(r/4294967296)>>>0,!1);let o=1779033703,c=3144134277,d=1013904242,l=2773480762,u=1359893119,p=2600822924,f=528734635,y=1541459225,h=new Uint32Array(64),m=(_,S)=>_>>>S|_<<32-S;for(let _=0;_<s;_+=64){for(let A=0;A<16;A++)h[A]=a.getUint32(_+A*4,!1);for(let A=16;A<64;A++){let W=h[A-15],$=h[A-2],Z=m(W,7)^m(W,18)^W>>>3,Te=m($,17)^m($,19)^$>>>10;h[A]=h[A-16]+Z+h[A-7]+Te>>>0}let S=o,N=c,k=d,b=l,T=u,x=p,C=f,ke=y;for(let A=0;A<64;A++){let W=m(T,6)^m(T,11)^m(T,25),$=T&x^~T&C,Z=ke+W+$+tn[A]+h[A]>>>0,Te=m(S,2)^m(S,13)^m(S,22),Ft=S&N^S&k^N&k,Dt=Te+Ft>>>0;ke=C,C=x,x=T,T=b+Z>>>0,b=k,k=N,N=S,S=Z+Dt>>>0}o=o+S>>>0,c=c+N>>>0,d=d+k>>>0,l=l+b>>>0,u=u+T>>>0,p=p+x>>>0,f=f+C>>>0,y=y+ke>>>0}let g=_=>_.toString(16).padStart(8,"0");return g(o)+g(c)+g(d)+g(l)+g(u)+g(p)+g(f)+g(y)}function Ee(e){let t=Ae(e??null),n=JSON.stringify(t);return rn(n).slice(0,16)}function on(){let e=globalThis.crypto;if(e?.randomUUID)return e.randomUUID();let t=()=>Math.floor(Math.random()*4294967296).toString(16).padStart(8,"0"),n=t()+t()+t()+t();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 Re(e,t,n){let r=n?.id??on();if(e===0)return{id:r,version:0};let i=(n?.hash??Ee)(t);return{id:r,version:0,cid:i,prev:null}}function st(e,t,n){e.version+=1,"cid"in e&&(e.prev=e.cid,e.cid=n(t))}var tn,nn,it=E(()=>{"use strict";tn=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]),nn=new TextEncoder});function dt(e){return{node:e,unsub:null,prevData:void 0,dirty:!1,involvedThisWave:!1,dataBatch:[],terminal:void 0}}function Me(e){e.prevData=void 0,e.dirty=!1,e.involvedThisWave=!1,e.dataBatch.length=0,e.terminal=void 0}function se(e){return e.length===0?e:typeof e[0]=="symbol"?[e]:e}function ut(e,t,n){let r=lt(e)?e:[],s=typeof e=="function"?e:typeof t=="function"?t:void 0,i={};return lt(e)?i=(Ne(t)?t:n)??{}:Ne(e)?i=e:i=(Ne(t)?t:n)??{},new ie(r,s,i)}var at,ct,sn,an,Ce,ie,lt,Ne,pt=E(()=>{"use strict";et();tt();Je();L();rt();ot();ne();it();at=()=>{},ct=100;sn=(e,t,n,r)=>{n.direction==="down-in"&&e._onDepMessage(n.depIndex,t)},an=(e,t,n,r)=>{let s=e;if(s._status==="completed"||s._status==="errored")return;let i=s._cached,a=i===void 0?[xe]:[xe,[R,i]];s._status==="dirty"&&a.push(H),te(t,a,s._config.tierOf)},Ce=new oe({onMessage:sn,onSubscribe:an});nt(Ce);Ze(Ce);ie=class e{_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(t,n,r){this._config=r.config??Ce,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=t.length===0&&n==null&&this._cached!==void 0?"settled":"sentinel",this._hashFn=r.versioningHash??this._config.defaultHashFn??Ee;let s=r.versioning??this._config.defaultVersioning;this._versioningLevel=s,this._versioning=s!=null?Re(s,this._cached===void 0?void 0:this._cached,{id:r.versioningId,hash:this._hashFn}):void 0,this._deps=t.map(dt);let i={};for(let[o,c]of Object.entries(r.meta??{})){let d={initial:c,name:`${r.name??"node"}:meta:${o}`,describeKind:"state",config:this._config};r.guard!=null&&(d.guard=r.guard),i[o]=new e([],void 0,d)}Object.freeze(i),this.meta=i,this._hasMeta=Object.keys(i).length>0;let a=this;this._actions={emit(o){a._emit([[R,o]])},down(o){a._emit(se(o))},up(o){a._emitUp(se(o))}},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(t,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&&t<=r)return;let s=n?.hash??this._hashFn;s!==this._hashFn&&(this._hashFn=s);let i=this._cached===void 0?void 0:this._cached,a=this._versioning,o=a?.id??n?.id,c=a?.version??0,d=Re(t,i,{id:o,hash:s});d.version=c,this._versioning=d,this._versioningLevel=t}_setInspectorHook(t){return t==null?()=>{}:(this._inspectorHooks==null&&(this._inspectorHooks=new Set),this._inspectorHooks.add(t),()=>{this._inspectorHooks?.delete(t),this._inspectorHooks?.size===0&&(this._inspectorHooks=void 0)})}_pushGuard(t){return this._extraGuards==null&&(this._extraGuards=new Set),this._extraGuards.add(t),()=>{this._extraGuards?.delete(t),this._extraGuards?.size===0&&(this._extraGuards=void 0)}}allowsObserve(t){if(this._guard==null&&this._extraGuards==null)return!0;let n=re(t);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(t){if(t?.internal)return;let n=this._guard!=null||this._extraGuards!=null,r=t?.actor!=null;if(!n&&!r)return;let s=re(t?.actor),i=t?.delivery==="signal"?"signal":"write";if(this._guard!=null&&!this._guard(s,i))throw new j({actor:s,action:i,nodeName:this.name});if(this._extraGuards!=null){for(let a of this._extraGuards)if(!a(s,i))throw new j({actor:s,action:i,nodeName:this.name})}this._lastMutation={actor:s,timestamp_ns:D()}}down(t,n){let r=se(t);r.length!==0&&(this._checkGuard(n),this._emit(r))}emit(t,n){this._checkGuard(n),this._emit([[R,t]])}up(t,n){if(this._deps.length===0)return;let r=se(t);if(r.length===0)return;this._checkGuard(n);let s=n??{internal:!0};this._validateUpTiers(r);for(let i of this._deps)i.node.up?.(r,s)}_emitUp(t){if(this._deps.length!==0&&t.length!==0){this._validateUpTiers(t);for(let n of this._deps)n.node.up?.(t,{internal:!0})}}_validateUpTiers(t){let n=this._config.tierOf;for(let r of t){let s=n(r[0]);if(s===3||s===4)throw new Error(`Node "${this.name}": tier-${s} 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(t,n){if(n!=null&&this._guard!=null){let c=re(n);if(!this._guard(c,"observe"))throw new j({actor:c,action:"observe",nodeName:this.name})}let s=this._isTerminal&&this._resubscribable;if(s){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 c of this._deps)Me(c);if(this._partial===!1){for(let c of this._deps)if(c.prevData!==void 0||c.dataBatch.length!==0||c.terminal!==void 0||c.dirty)throw new Error(`resubscribable-reset invariant: DepRecord not fully reset for node ${this._optsName??"(anonymous)"}`)}}this._sinkCount+=1;let i;try{i=this._config.onSubscribe(this,t,{sinkCount:this._sinkCount,afterTerminalReset:s},this._actions)}catch(c){throw this._sinkCount-=1,c}this._sinks==null?this._sinks=t:typeof this._sinks=="function"?this._sinks=new Set([this._sinks,t]):this._sinks.add(t);let a=this._isTerminal;if(this._sinkCount===1&&!a)try{this._activate()}catch(c){if(this._sinkCount-=1,this._removeSink(t),this._sinkCount===0&&(this._status="sentinel"),typeof i=="function")try{i()}catch{}throw c}this._status==="sentinel"&&this._cached===void 0&&(this._status="pending");let o=!1;return()=>{o||(o=!0,this._sinkCount-=1,this._removeSink(t),typeof i=="function"&&i(),this._sinks==null&&this._deactivate())}}_removeSink(t){if(this._sinks===t)this._sinks=null;else if(this._sinks!=null&&typeof this._sinks!="function")if(this._sinks.delete(t),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 t=this._deps.length,n=0;try{for(let r=0;r<t;r++){let s=r,i=this._deps[r];i.unsub=at,i.unsub=i.node.subscribe(a=>{if(i.unsub===null)return;let o=this._config.tierOf,c=!1;for(let d of a)o(d[0])>=3&&(c=!0),this._config.onMessage(this,d,{direction:"down-in",depIndex:s},this._actions);c&&this._maybeRunFnOnSettlement()}),n++}}catch(r){this._deps[n].unsub=null;for(let s=0;s<n;s++){let i=this._deps[s];if(i.unsub!=null){let a=i.unsub;i.unsub=null;try{a()}catch{}Me(i)}}throw this._dirtyDepCount=0,r}}_addDep(t){for(let s=0;s<this._deps.length;s++)if(this._deps[s].node===t)return s;let n=this._deps.length,r=dt(t);if(this._deps.push(r),this._sinks==null)return n;r.dirty=!0,this._dirtyDepCount++,this._status!=="dirty"&&this._emit(_e),r.unsub=at;try{r.unsub=t.subscribe(s=>{if(r.unsub===null)return;let i=this._config.tierOf,a=!1;for(let o of s)i(o[0])>=3&&(a=!0),this._config.onMessage(this,o,{direction:"down-in",depIndex:n},this._actions);a&&this._maybeRunFnOnSettlement()})}catch(s){throw r.unsub=null,this._deps.pop(),this._dirtyDepCount--,s}return n}_deactivate(t=!1){let n=this._cleanup;if(this._cleanup=void 0,typeof n=="function")try{n()}catch(r){this._emit([[v,this._wrapFnError("cleanup threw",r)]])}else if(n!=null&&typeof n=="object"){let r=n.deactivate;if(typeof r=="function")try{r()}catch(s){this._emit([[v,this._wrapFnError("cleanup.deactivate threw",s)]])}}for(let r of this._deps){if(r.unsub!=null){let s=r.unsub;r.unsub=null;try{s()}catch{}}Me(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),t||(this._fn!=null||this._deps.length>0)&&(!this._isTerminal||this._resubscribable)&&(this._status="sentinel")}_onDepMessage(t,n){let r=this._deps[t],s=n[0];if(this._inspectorHooks!=null){let i={kind:"dep_message",depIndex:t,message:n};for(let a of this._inspectorHooks)a(i)}if(s!==J){if(s===P){this._depDirtied(r);return}if(s===U){if(this._depInvalidated(r),this._cached===void 0)return;this._emit(Ye);return}if(s===B||s===Q){this._emit([n]);return}if(s===F){this._emit(Se);return}if(s===R)this._depSettledAsData(r,n[1]);else if(s===I)this._depSettledAsResolved(r);else if(s===M)this._depSettledAsTerminal(r,!0);else if(s===v)this._depSettledAsTerminal(r,n[1]);else{this._emit([n]);return}if(!this._fn){(s===R||s===I)&&this._emit([n]),(s===M||s===v)&&this._maybeAutoTerminalAfterWave();return}}}_depDirtied(t){t.dirty||(t.dirty=!0,t.involvedThisWave=!0,this._dirtyDepCount++,this._status!=="dirty"&&this._emit(_e))}_depSettledAsData(t,n){t.dirty&&(t.dirty=!1,this._dirtyDepCount--),t.involvedThisWave=!0,t.dataBatch.push(n),this._waveHasNewData=!0}_depSettledAsResolved(t){t.dirty&&(t.dirty=!1,this._dirtyDepCount--)}_depSettledAsTerminal(t,n){t.dirty&&(t.dirty=!1,this._dirtyDepCount--),t.terminal=n,t.involvedThisWave=!0,this._hasNewTerminal=!0}_depInvalidated(t){t.prevData=void 0,t.terminal=void 0,t.dataBatch.length=0,t.dirty?t.involvedThisWave=!1:(t.dirty=!0,t.involvedThisWave=!0,this._dirtyDepCount++)}_maybeRunFnOnSettlement(){if(!(this._isTerminal&&!this._resubscribable)&&!(this._dirtyDepCount>0)){if(!this._partial&&!this._hasCalledFnOnce)for(let t=0;t<this._deps.length;t++){let n=this._deps[t];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(Qe),this._maybeAutoTerminalAfterWave();return}this._fn&&this._execFn(),this._maybeAutoTerminalAfterWave()}}_maybeAutoTerminalAfterWave(){if(this._deps.length===0||this._isTerminal)return;let t=this._deps.find(n=>n.terminal!==void 0&&n.terminal!==!0);if(t!=null){this._autoError&&this._emit([[v,t.terminal]]);return}this._autoComplete&&this._deps.every(n=>n.terminal!==void 0)&&this._emit(Xe)}_execFn(){if(!this._fn||this._isTerminal&&!this._resubscribable)return;if(this._isExecutingFn){this._pendingRerun=!0;return}let t=this._cleanup;if(typeof t=="function"){this._cleanup=void 0;try{t()}catch(a){this._emit([[v,this._wrapFnError("cleanup threw",a)]]);return}}else if(t!=null&&typeof t=="object"){let a=t.beforeRun;if(typeof a=="function"){t.beforeRun=void 0;try{a()}catch(o){this._emit([[v,this._wrapFnError("cleanup.beforeRun threw",o)]]);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 o=n[a];o!=null&&o.length>0&&(this._deps[a].prevData=o[o.length-1])}let s=this._deps.map(a=>a.terminal),i={prevData:r,terminalDeps:s,store:this._store};if(this._hasCalledFnOnce=!0,this._clearWaveFlags(),this._inspectorHooks!=null){let a={kind:"run",batchData:n,prevData:r};for(let o of this._inspectorHooks)o(a)}this._isExecutingFn=!0;try{let a=this._fn(n,this._actions,i);if(typeof a=="function")this._cleanup=a;else if(a!=null&&typeof a=="object"){let o=a;(typeof o.beforeRun=="function"||typeof o.deactivate=="function"||typeof o.invalidate=="function")&&(this._cleanup=a)}}catch(a){this._emit([[v,this._wrapFnError("fn threw",a)]])}finally{this._isExecutingFn=!1,this._pendingRerun?(this._pendingRerun=!1,this._rerunDepth+=1,this._rerunDepth>ct?(this._rerunDepth=0,this._emit([[v,new Error(`Node "${this.name}": _pendingRerun depth exceeded ${ct} \u2014 likely a reactive cycle`)]])):this._maybeRunFnOnSettlement()):this._rerunDepth=0,this._clearWaveFlags()}}_clearWaveFlags(){this._waveHasNewData=!1,this._hasNewTerminal=!1;for(let t of this._deps)t.involvedThisWave=!1,t.dataBatch.length=0}_wrapFnError(t,n){let r=n instanceof Error?n.message:String(n);return new Error(`Node "${this.name}": ${t}: ${r}`,{cause:n})}_frameBatch(t){let n=this._config.tierOf;if(t.length===1)return n(t[0][0])===3&&this._status!=="dirty"?[H,t[0]]:t;let r=!0,s=!1,i=!1,a=-1;for(let c of t){let d=n(c[0]);d<a&&(r=!1),d===3&&(s=!0),c[0]===P&&(i=!0),a=d}let o=t;if(!r){let c=t.map((d,l)=>({m:d,i:l,tier:n(d[0])}));c.sort((d,l)=>d.tier-l.tier||d.i-l.i),o=c.map(d=>d.m)}if(s&&!i&&this._status!=="dirty"){let c=0;for(;c<o.length&&n(o[c][0])===0;)c++;return c===0?[H,...o]:[...o.slice(0,c),H,...o.slice(c)]}return o}_emit(t){if(t.length===0)return;for(let o=0;o<t.length;o++){let c=t[o];if(c[0]===v&&c[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=t;if(this._isTerminal&&!this._resubscribable){let o=t.filter(c=>c[0]===F||c[0]===U);if(o.length===0)return;n=o}n=this._frameBatch(n);let s=null;for(let o=0;o<n.length;o++){let c=n[o],d=c[0];if(d!==B&&d!==Q){s?.push(c);continue}if(c.length<2)throw new Error(`Node "${this.name}": [[${d===B?"PAUSE":"RESUME"}]] must carry a lockId payload \u2014 bare PAUSE/RESUME is a protocol violation (C0 rule). Use \`[[PAUSE, lockId]]\` / \`[[RESUME, lockId]]\`.`);let l=!0;if(this._pausable!==!1){let u=c[1];if(d===B)this._pauseLocks==null&&(this._pauseLocks=new Set),this._pauseLocks.add(u),this._paused=!0,this._pausable==="resumeAll"&&this._pauseBuffer==null&&(this._pauseBuffer=[]);else if(this._pauseLocks==null||!this._pauseLocks.has(u))l=!1;else if(this._pauseLocks.delete(u),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())}}l?s?.push(c):s==null&&(s=n.slice(0,o))}if(s!=null){if(s.length===0)return;n=s}if(this._hasMeta&&n.some(o=>o[0]===F))for(let o of Object.keys(this.meta))try{this.meta[o]._emit(Se)}catch{}let{finalMessages:i,equalsError:a}=this._updateState(n);if(i.length>0&&this._config.inspectorEnabled){let o=this._config.globalInspector;if(o!=null)try{o({kind:"emit",node:this,messages:i})}catch{}}if(i.length>0)if(this._paused&&this._pausable==="resumeAll"&&this._pauseBuffer!=null){let o=this._config.tierOf,c=[];for(let d of i)o(d[0])===3?this._pauseBuffer.push(d):c.push(d);c.length>0&&this._dispatchOrAccumulate(c)}else this._dispatchOrAccumulate(i);a!=null&&this._emit([[v,a]])}_updateState(t){let n=this._config.tierOf,r,s,i=-1,a=0;for(let l of t)n(l[0])===3&&a++;let o=a<=1,c=-1;if(this._versioning!=null&&a>1){for(let l=t.length-1;l>=0;l--)if(t[l][0]===R){c=l;break}}for(let l=0;l<t.length;l++){let u=t[l],p=u[0];if(p===R){if(u.length>=2){let f=!1;if(o&&this._cached!==void 0)try{f=this._equals(this._cached,u[1])}catch(y){s=this._wrapFnError("equals threw",y),i=l;break}if(f){r==null&&(r=t.slice(0,l)),r.push(ve),this._status="resolved";continue}this._cached=u[1],this._versioning!=null&&(c<0||l===c)&&st(this._versioning,u[1],this._hashFn)}this._status="settled",r?.push(u)}else if(r?.push(u),p===P)this._status="dirty";else if(p===I)this._status="resolved";else if(p===M)this._status="completed";else if(p===v)this._status="errored";else if(p===U){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 y=f.invalidate;if(typeof y=="function")try{y()}catch{}}}else p===F&&(this._resetOnTeardown&&(this._cached=void 0),this._deactivate(!0),this._status="sentinel")}let d=i>=0?r??t.slice(0,i):r??t;return s!=null?{finalMessages:d,equalsError:s}:{finalMessages:d}}_deliverToSinks=t=>{if(this._sinks==null)return;if(typeof this._sinks=="function"){this._sinks(t);return}let n=[...this._sinks];for(let r of n)r(t)};_dispatchOrAccumulate(t){if(ze()){this._batchPendingMessages===null&&(this._batchPendingMessages=[],qe(()=>this._flushBatchPending()));for(let n of t)this._batchPendingMessages.push(n);return}te(this._deliverToSinks,t,this._config.tierOf)}_flushBatchPending(){let t=this._batchPendingMessages;if(t===null||(this._batchPendingMessages=null,t.length===0))return;let n=this._frameBatch(t);te(this._deliverToSinks,n,this._config.tierOf)}},lt=e=>Array.isArray(e),Ne=e=>typeof e=="object"&&e!=null&&!Array.isArray(e)});function ae(e,t){return ut((r,s,i)=>e(s,i)??void 0,{describeKind:"producer",...t})}var ft=E(()=>{"use strict";pt()});function Le(e){return{describeKind:"producer",...e}}function mt(e,t){return ae(n=>{let r=!1;try{for(let s of e){if(r)return;n.emit(s)}r||n.down([[M]])}catch(s){r||n.down([[v,s]])}return()=>{r=!0}},Le(t))}function cn(e){return e!=null&&typeof e.then=="function"}function dn(e,t){let{signal:n,...r}=t??{};return ae(s=>{let i=!1,a=()=>{i||(i=!0,s.down([[v,n.reason]]))};if(n?.aborted){a();return}return n?.addEventListener("abort",a,{once:!0}),Promise.resolve(e).then(o=>{i||(i=!0,n?.removeEventListener("abort",a),s.emit(o),s.down([[M]]))},o=>{i||(i=!0,n?.removeEventListener("abort",a),s.down([[v,o]]))}),()=>{i=!0,n?.removeEventListener("abort",a)}},Le(r))}function ln(e,t){let{signal:n,...r}=t??{};return ae(s=>{let i=new AbortController,a=()=>i.abort(n?.reason);n?.aborted?i.abort(n.reason):n?.addEventListener("abort",a,{once:!0});let o=n??i.signal,c=!1,d=e[Symbol.asyncIterator](),l=()=>{c||o.aborted||Promise.resolve(d.next()).then(u=>{if(!(c||o.aborted)){if(u.done){s.down([[M]]);return}s.emit(u.value),l()}},u=>{!c&&!o.aborted&&s.down([[v,u]])})};return l(),()=>{c=!0,n?.removeEventListener("abort",a),i.abort(),Promise.resolve(d.return?.()).catch(()=>{})}},Le(r))}function un(e){return e!=null&&typeof e=="object"&&"cache"in e&&typeof e.subscribe=="function"}function Y(e,t){if(un(e))return e;if(cn(e))return dn(e,t);if(e!=null){let n=e;if(typeof n[Symbol.asyncIterator]=="function")return ln(e,t);if(typeof n[Symbol.iterator]=="function")return mt(e,t)}return pn(e)}function pn(...e){return mt(e,void 0)}function G(e){return new Promise((t,n)=>{let r=!1,s=!1,i;i=e.subscribe(a=>{for(let o of a){if(r)return;if(o[0]===R){r=!0,t(o[1]),i?(i(),i=void 0):s=!0;return}if(o[0]===v){r=!0,n(o[1]),i?(i(),i=void 0):s=!0;return}if(o[0]===M){r=!0,n(new Error("completed without DATA")),i?(i(),i=void 0):s=!0;return}}}),s&&(i?.(),i=void 0)})}var ce=E(()=>{"use strict";ne();ft()});var V,Oe=E(()=>{"use strict";V=class{_timer;_gen=0;start(t,n){this.cancel(),this._gen+=1;let r=this._gen;this._timer=setTimeout(()=>{this._timer=void 0,r===this._gen&&n()},t)}cancel(){this._timer!==void 0&&(clearTimeout(this._timer),this._timer=void 0)}get pending(){return this._timer!==void 0}}});function fn(e){return e<0?0:e}function gt(e){let t=Math.max(1,e?.failureThreshold??5),n=fn(e?.cooldownNs??30*1e9),r=e?.cooldown??null,s=Math.max(1,e?.halfOpenMax??1),i=e?.now??w,a="closed",o=0,c=0,d=0,l=n,u=0;function p(){if(!r)return n;let h=r(c);return h!==null?h:n}function f(){a="open",l=p(),d=i(),u=0}return{canExecute(){return a==="closed"?!0:a==="open"?i()-d>=l?(a="half-open",u=1,!0):!1:u<s?(u++,!0):!1},recordSuccess(){a==="half-open"?(a="closed",o=0,c=0):a==="closed"&&(o=0)},recordFailure(h){if(a==="half-open"){c++,f();return}a==="closed"&&(o++,o>=t&&f())},get state(){return a},get failureCount(){return o},reset(){a="closed",o=0,c=0,u=0}}}var ht=E(()=>{"use strict";L()});var Fn={};Vt(Fn,{chromeNanoAdapter:()=>z,cloudFirstPreset:()=>On,localFirstPreset:()=>Pn,offlinePreset:()=>In,webllmAdapter:()=>q});module.exports=Wt(Fn);L();function Ge(){let e=new Error("aborted");return e.name="AbortError",e}function z(e={}){let t=e.streamMode??"accumulated",n=e.navigatorOverride??globalThis.navigator,r=()=>{let o=n?.ai;if(!o?.languageModel)throw new Error("chromeNanoAdapter: Chrome AI languageModel not available (requires Chrome 131+ with flag/OT).");return o},s=async o=>r().languageModel.create({systemPrompt:o?.systemPrompt??e.systemPrompt,temperature:o?.temperature??e.temperature,topK:e.topK,signal:o?.signal}),i=o=>{let c=[];for(let d of o)d.role!=="system"&&c.push(`${d.role}: ${d.content}`);return c.join(`
|
|
1
|
+
"use strict";var Bt=Object.create;var ee=Object.defineProperty;var Ht=Object.getOwnPropertyDescriptor;var Gt=Object.getOwnPropertyNames;var jt=Object.getPrototypeOf,Vt=Object.prototype.hasOwnProperty;var E=(e,t)=>()=>(e&&(t=e(e=0)),t);var Kt=(e,t)=>{for(var n in t)ee(e,n,{get:t[n],enumerable:!0})},Ge=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Gt(t))!Vt.call(e,s)&&s!==n&&ee(e,s,{get:()=>t[s],enumerable:!(r=Ht(t,s))||r.enumerable});return e};var Wt=(e,t,n)=>(n=e!=null?Bt(jt(e)):{},Ge(t||!e||!e.__esModule?ee(n,"default",{value:e,enumerable:!0}):n,e)),$t=e=>Ge(ee({},"__esModule",{value:!0}),e);function w(){return Math.trunc(performance.now()*1e6)}function D(){return Date.now()*1e6}var L=E(()=>{"use strict"});function $e(){return we>0||Jt}function qe(){return we>0}function ze(e){we>0?Qt.push(e):e()}function te(e,t,n){if(t.length===0)return;if(t.length===1){let d=n(t[0][0]);if(d<3||!$e()){e(t);return}(d>=5?We:d===4?Ke:Ve).push(()=>e(t));return}let r=t.length,s=r,i=r,a=r,o=0;for(;o<r&&n(t[o][0])<3;)o++;for(s=o;o<r&&n(t[o][0])===3;)o++;for(i=o;o<r&&n(t[o][0])===4;)o++;a=o;let c=$e();if(s>0){let d=t.slice(0,s);e(d)}if(i>s){let d=t.slice(s,i);c?Ve.push(()=>e(d)):e(d)}if(a>i){let d=t.slice(i,a);c?Ke.push(()=>e(d)):e(d)}if(r>a){let d=t.slice(a,r);c?We.push(()=>e(d)):e(d)}}var we,Jt,Ve,Ke,We,Qt,Je=E(()=>{"use strict";we=0,Jt=!1,Ve=[],Ke=[],We=[],Qt=[]});var J,R,P,I,U,B,Q,F,M,v,H,ve,Yt,xe,Xt,Zt,_e,Qe,Ye,Xe,Se,ne=E(()=>{"use strict";J=Symbol.for("graphrefly/START"),R=Symbol.for("graphrefly/DATA"),P=Symbol.for("graphrefly/DIRTY"),I=Symbol.for("graphrefly/RESOLVED"),U=Symbol.for("graphrefly/INVALIDATE"),B=Symbol.for("graphrefly/PAUSE"),Q=Symbol.for("graphrefly/RESUME"),F=Symbol.for("graphrefly/TEARDOWN"),M=Symbol.for("graphrefly/COMPLETE"),v=Symbol.for("graphrefly/ERROR"),H=Object.freeze([P]),ve=Object.freeze([I]),Yt=Object.freeze([U]),xe=Object.freeze([J]),Xt=Object.freeze([M]),Zt=Object.freeze([F]),_e=Object.freeze([H]),Qe=Object.freeze([ve]),Ye=Object.freeze([Yt]),Xe=Object.freeze([Xt]),Se=Object.freeze([Zt])});function Ze(e){e.registerCodec(en)}var en,et=E(()=>{"use strict";en={name:"json",version:1,contentType:"application/json",encode(e){let t=JSON.stringify(e);return new TextEncoder().encode(t)},decode(e,t){let n=new TextDecoder().decode(e);return JSON.parse(n)}}});function re(e){if(e==null)return tn;let{type:t,id:n,...r}=e;return{type:t??"system",id:n??"",...r}}var tn,tt=E(()=>{"use strict";tn={type:"system",id:""}});function nt(e){e.registerMessageType(J,{tier:0,wireCrossing:!1}),e.registerMessageType(P,{tier:1,wireCrossing:!1}),e.registerMessageType(U,{tier:1,wireCrossing:!1,metaPassthrough:!1}),e.registerMessageType(B,{tier:2,wireCrossing:!1}),e.registerMessageType(Q,{tier:2,wireCrossing:!1}),e.registerMessageType(R,{tier:3,wireCrossing:!0}),e.registerMessageType(I,{tier:3,wireCrossing:!0}),e.registerMessageType(M,{tier:4,wireCrossing:!0,metaPassthrough:!1}),e.registerMessageType(v,{tier:4,wireCrossing:!0,metaPassthrough:!1}),e.registerMessageType(F,{tier:5,wireCrossing:!0,metaPassthrough:!1})}var oe,rt=E(()=>{"use strict";ne();oe=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(t){this._onMessage=t.onMessage,this._onSubscribe=t.onSubscribe,this._defaultVersioning=t.defaultVersioning,this._defaultHashFn=t.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(t){this._assertUnfrozen(),this._onMessage=t}set onSubscribe(t){this._assertUnfrozen(),this._onSubscribe=t}get defaultVersioning(){return this._defaultVersioning}set defaultVersioning(t){this._assertUnfrozen(),this._defaultVersioning=t}get defaultHashFn(){return this._defaultHashFn}set defaultHashFn(t){this._assertUnfrozen(),this._defaultHashFn=t}get inspectorEnabled(){return this._inspectorEnabled}set inspectorEnabled(t){this._inspectorEnabled=t}get globalInspector(){return this._globalInspector}set globalInspector(t){this._globalInspector=t}get rigorRecorder(){return this._rigorRecorder}set rigorRecorder(t){this._rigorRecorder=t}registerMessageType(t,n){return this._assertUnfrozen(),this._messageTypes.set(t,{tier:n.tier,wireCrossing:n.wireCrossing??n.tier>=3,metaPassthrough:n.metaPassthrough??!0}),this}messageTier(t){let n=this._messageTypes.get(t);return n!=null?n.tier:1}isWireCrossing(t){let n=this._messageTypes.get(t);return n!=null?n.wireCrossing:!0}isLocalOnly(t){return!this.isWireCrossing(t)}isMetaPassthrough(t){let n=this._messageTypes.get(t);return n!=null?n.metaPassthrough:!0}isKnownMessageType(t){return this._messageTypes.has(t)}registerCodec(t){return this._assertUnfrozen(),this._codecs.set(t.name,t),this}lookupCodec(t){return this._codecs.get(t)}_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.")}}});var G,ot=E(()=>{"use strict";G=class extends Error{actor;action;nodeName;constructor(t,n){super(n??`GuardDenied: action "${String(t.action)}" denied for actor type "${String(t.actor.type)}"`),this.name="GuardDenied",this.actor=t.actor,this.action=t.action,this.nodeName=t.nodeName}get node(){return this.nodeName}}});function Ae(e){if(e===void 0)return null;if(typeof e=="number"){if(!Number.isFinite(e))throw new TypeError(`Cannot hash non-finite number: ${e}`);if(Number.isInteger(e)&&!Number.isSafeInteger(e))throw new TypeError(`Cannot hash integer outside safe range (|n| > 2^53-1): ${e}. Cross-language cid parity is not guaranteed for unsafe integers.`);return e}if(typeof e=="string"||typeof e=="boolean"||e===null)return e;if(Array.isArray(e))return e.map(Ae);if(typeof e=="object"&&e!==null){let t={};for(let n of Object.keys(e).sort())t[n]=Ae(e[n]);return t}return null}function on(e){let t=rn.encode(e),n=t.length,r=n*8,s=n+9+63&-64,i=new Uint8Array(s);i.set(t),i[n]=128;let a=new DataView(i.buffer);a.setUint32(s-4,r>>>0,!1),a.setUint32(s-8,Math.floor(r/4294967296)>>>0,!1);let o=1779033703,c=3144134277,d=1013904242,u=2773480762,l=1359893119,p=2600822924,f=528734635,h=1541459225,y=new Uint32Array(64),m=(_,S)=>_>>>S|_<<32-S;for(let _=0;_<s;_+=64){for(let A=0;A<16;A++)y[A]=a.getUint32(_+A*4,!1);for(let A=16;A<64;A++){let W=y[A-15],$=y[A-2],Z=m(W,7)^m(W,18)^W>>>3,Te=m($,17)^m($,19)^$>>>10;y[A]=y[A-16]+Z+y[A-7]+Te>>>0}let S=o,N=c,k=d,b=u,T=l,x=p,C=f,ke=h;for(let A=0;A<64;A++){let W=m(T,6)^m(T,11)^m(T,25),$=T&x^~T&C,Z=ke+W+$+nn[A]+y[A]>>>0,Te=m(S,2)^m(S,13)^m(S,22),Dt=S&N^S&k^N&k,Ut=Te+Dt>>>0;ke=C,C=x,x=T,T=b+Z>>>0,b=k,k=N,N=S,S=Z+Ut>>>0}o=o+S>>>0,c=c+N>>>0,d=d+k>>>0,u=u+b>>>0,l=l+T>>>0,p=p+x>>>0,f=f+C>>>0,h=h+ke>>>0}let g=_=>_.toString(16).padStart(8,"0");return g(o)+g(c)+g(d)+g(u)+g(l)+g(p)+g(f)+g(h)}function Ee(e){let t=Ae(e??null),n=JSON.stringify(t);return on(n).slice(0,16)}function sn(){let e=globalThis.crypto;if(e?.randomUUID)return e.randomUUID();let t=()=>Math.floor(Math.random()*4294967296).toString(16).padStart(8,"0"),n=t()+t()+t()+t();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 Re(e,t,n){let r=n?.id??sn();if(e===0)return{id:r,version:0};let i=(n?.hash??Ee)(t);return{id:r,version:0,cid:i,prev:null}}function st(e,t,n){e.version+=1,"cid"in e&&(e.prev=e.cid,e.cid=n(t))}var nn,rn,it=E(()=>{"use strict";nn=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]),rn=new TextEncoder});function dt(e){return{node:e,unsub:null,prevData:void 0,dirty:!1,involvedThisWave:!1,dataBatch:[],terminal:void 0}}function Me(e){e.prevData=void 0,e.dirty=!1,e.involvedThisWave=!1,e.dataBatch.length=0,e.terminal=void 0}function se(e){return e.length===0?e:typeof e[0]=="symbol"?[e]:e}function ut(e,t,n){let r=lt(e)?e:[],s=typeof e=="function"?e:typeof t=="function"?t:void 0,i={};return lt(e)?i=(Ne(t)?t:n)??{}:Ne(e)?i=e:i=(Ne(t)?t:n)??{},new ie(r,s,i)}var at,ct,an,cn,Ce,ie,lt,Ne,pt=E(()=>{"use strict";et();tt();Je();L();rt();ot();ne();it();at=()=>{},ct=100;an=(e,t,n,r)=>{n.direction==="down-in"&&e._onDepMessage(n.depIndex,t)},cn=(e,t,n,r)=>{let s=e;if(s._status==="completed"||s._status==="errored")return;let i=s._cached,a=i===void 0?[xe]:[xe,[R,i]];s._status==="dirty"&&a.push(H),te(t,a,s._config.tierOf)},Ce=new oe({onMessage:an,onSubscribe:cn});nt(Ce);Ze(Ce);ie=class e{_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(t,n,r){this._config=r.config??Ce,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=t.length===0&&n==null&&this._cached!==void 0?"settled":"sentinel",this._hashFn=r.versioningHash??this._config.defaultHashFn??Ee;let s=r.versioning??this._config.defaultVersioning;this._versioningLevel=s,this._versioning=s!=null?Re(s,this._cached===void 0?void 0:this._cached,{id:r.versioningId,hash:this._hashFn}):void 0,this._deps=t.map(dt);let i={};for(let[o,c]of Object.entries(r.meta??{})){let d={initial:c,name:`${r.name??"node"}:meta:${o}`,describeKind:"state",config:this._config};r.guard!=null&&(d.guard=r.guard),i[o]=new e([],void 0,d)}Object.freeze(i),this.meta=i,this._hasMeta=Object.keys(i).length>0;let a=this;this._actions={emit(o){a._emit([[R,o]])},down(o){a._emit(se(o))},up(o){a._emitUp(se(o))}},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(t,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&&t<=r)return;let s=n?.hash??this._hashFn;s!==this._hashFn&&(this._hashFn=s);let i=this._cached===void 0?void 0:this._cached,a=this._versioning,o=a?.id??n?.id,c=a?.version??0,d=Re(t,i,{id:o,hash:s});d.version=c,this._versioning=d,this._versioningLevel=t}_setInspectorHook(t){return t==null?()=>{}:(this._inspectorHooks==null&&(this._inspectorHooks=new Set),this._inspectorHooks.add(t),()=>{this._inspectorHooks?.delete(t),this._inspectorHooks?.size===0&&(this._inspectorHooks=void 0)})}_pushGuard(t){return this._extraGuards==null&&(this._extraGuards=new Set),this._extraGuards.add(t),()=>{this._extraGuards?.delete(t),this._extraGuards?.size===0&&(this._extraGuards=void 0)}}allowsObserve(t){if(this._guard==null&&this._extraGuards==null)return!0;let n=re(t);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(t){if(t?.internal)return;let n=this._guard!=null||this._extraGuards!=null,r=t?.actor!=null;if(!n&&!r)return;let s=re(t?.actor),i=t?.delivery==="signal"?"signal":"write";if(this._guard!=null&&!this._guard(s,i))throw new G({actor:s,action:i,nodeName:this.name});if(this._extraGuards!=null){for(let a of this._extraGuards)if(!a(s,i))throw new G({actor:s,action:i,nodeName:this.name})}this._lastMutation={actor:s,timestamp_ns:D()}}down(t,n){let r=se(t);r.length!==0&&(this._checkGuard(n),this._emit(r))}emit(t,n){this._checkGuard(n),this._emit([[R,t]])}up(t,n){if(this._deps.length===0)return;let r=se(t);if(r.length===0)return;this._checkGuard(n);let s=n??{internal:!0};this._validateUpTiers(r);for(let i of this._deps)i.node.up?.(r,s)}_emitUp(t){if(this._deps.length!==0&&t.length!==0){this._validateUpTiers(t);for(let n of this._deps)n.node.up?.(t,{internal:!0})}}_validateUpTiers(t){let n=this._config.tierOf;for(let r of t){let s=n(r[0]);if(s===3||s===4)throw new Error(`Node "${this.name}": tier-${s} 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(t,n){if(n!=null&&this._guard!=null){let c=re(n);if(!this._guard(c,"observe"))throw new G({actor:c,action:"observe",nodeName:this.name})}let s=this._isTerminal&&this._resubscribable;if(s){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 c of this._deps)Me(c);if(this._partial===!1){for(let c of this._deps)if(c.prevData!==void 0||c.dataBatch.length!==0||c.terminal!==void 0||c.dirty)throw new Error(`resubscribable-reset invariant: DepRecord not fully reset for node ${this._optsName??"(anonymous)"}`)}}this._sinkCount+=1;let i;try{i=this._config.onSubscribe(this,t,{sinkCount:this._sinkCount,afterTerminalReset:s},this._actions)}catch(c){throw this._sinkCount-=1,c}this._sinks==null?this._sinks=t:typeof this._sinks=="function"?this._sinks=new Set([this._sinks,t]):this._sinks.add(t);let a=this._isTerminal;if(this._sinkCount===1&&!a)try{this._activate()}catch(c){if(this._sinkCount-=1,this._removeSink(t),this._sinkCount===0&&(this._status="sentinel"),typeof i=="function")try{i()}catch{}throw c}this._status==="sentinel"&&this._cached===void 0&&(this._status="pending");let o=!1;return()=>{o||(o=!0,this._sinkCount-=1,this._removeSink(t),typeof i=="function"&&i(),this._sinks==null&&this._deactivate())}}_removeSink(t){if(this._sinks===t)this._sinks=null;else if(this._sinks!=null&&typeof this._sinks!="function")if(this._sinks.delete(t),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 t=this._deps.length,n=0;try{for(let r=0;r<t;r++){let s=r,i=this._deps[r];i.unsub=at,i.unsub=i.node.subscribe(a=>{if(i.unsub===null)return;let o=this._config.tierOf,c=!1;for(let d of a)o(d[0])>=3&&(c=!0),this._config.onMessage(this,d,{direction:"down-in",depIndex:s},this._actions);c&&this._maybeRunFnOnSettlement()}),n++}}catch(r){this._deps[n].unsub=null;for(let s=0;s<n;s++){let i=this._deps[s];if(i.unsub!=null){let a=i.unsub;i.unsub=null;try{a()}catch{}Me(i)}}throw this._dirtyDepCount=0,r}}_addDep(t){for(let s=0;s<this._deps.length;s++)if(this._deps[s].node===t)return s;let n=this._deps.length,r=dt(t);if(this._deps.push(r),this._sinks==null)return n;r.dirty=!0,this._dirtyDepCount++,this._status!=="dirty"&&this._emit(_e),r.unsub=at;try{r.unsub=t.subscribe(s=>{if(r.unsub===null)return;let i=this._config.tierOf,a=!1;for(let o of s)i(o[0])>=3&&(a=!0),this._config.onMessage(this,o,{direction:"down-in",depIndex:n},this._actions);a&&this._maybeRunFnOnSettlement()})}catch(s){throw r.unsub=null,this._deps.pop(),this._dirtyDepCount--,s}return n}_deactivate(t=!1){let n=this._cleanup;if(this._cleanup=void 0,typeof n=="function")try{n()}catch(r){this._emit([[v,this._wrapFnError("cleanup threw",r)]])}else if(n!=null&&typeof n=="object"){let r=n.deactivate;if(typeof r=="function")try{r()}catch(s){this._emit([[v,this._wrapFnError("cleanup.deactivate threw",s)]])}}for(let r of this._deps){if(r.unsub!=null){let s=r.unsub;r.unsub=null;try{s()}catch{}}Me(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),t||(this._fn!=null||this._deps.length>0)&&(!this._isTerminal||this._resubscribable)&&(this._status="sentinel")}_onDepMessage(t,n){let r=this._deps[t],s=n[0];if(this._inspectorHooks!=null){let i={kind:"dep_message",depIndex:t,message:n};for(let a of this._inspectorHooks)a(i)}if(s!==J){if(s===P){this._depDirtied(r);return}if(s===U){if(this._depInvalidated(r),this._cached===void 0)return;this._emit(Ye);return}if(s===B||s===Q){this._emit([n]);return}if(s===F){this._emit(Se);return}if(s===R)this._depSettledAsData(r,n[1]);else if(s===I)this._depSettledAsResolved(r);else if(s===M)this._depSettledAsTerminal(r,!0);else if(s===v)this._depSettledAsTerminal(r,n[1]);else{this._emit([n]);return}if(!this._fn){(s===R||s===I)&&this._emit([n]),(s===M||s===v)&&this._maybeAutoTerminalAfterWave();return}}}_depDirtied(t){t.dirty||(t.dirty=!0,t.involvedThisWave=!0,this._dirtyDepCount++,this._status!=="dirty"&&this._emit(_e))}_depSettledAsData(t,n){t.dirty&&(t.dirty=!1,this._dirtyDepCount--),t.involvedThisWave=!0,t.dataBatch.push(n),this._waveHasNewData=!0}_depSettledAsResolved(t){t.dirty&&(t.dirty=!1,this._dirtyDepCount--)}_depSettledAsTerminal(t,n){t.dirty&&(t.dirty=!1,this._dirtyDepCount--),t.terminal=n,t.involvedThisWave=!0,this._hasNewTerminal=!0}_depInvalidated(t){t.prevData=void 0,t.terminal=void 0,t.dataBatch.length=0,t.dirty?t.involvedThisWave=!1:(t.dirty=!0,t.involvedThisWave=!0,this._dirtyDepCount++)}_maybeRunFnOnSettlement(){if(!(this._isTerminal&&!this._resubscribable)&&!(this._dirtyDepCount>0)){if(!this._partial&&!this._hasCalledFnOnce)for(let t=0;t<this._deps.length;t++){let n=this._deps[t];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(Qe),this._maybeAutoTerminalAfterWave();return}this._fn&&this._execFn(),this._maybeAutoTerminalAfterWave()}}_maybeAutoTerminalAfterWave(){if(this._deps.length===0||this._isTerminal)return;let t=this._deps.find(n=>n.terminal!==void 0&&n.terminal!==!0);if(t!=null){this._autoError&&this._emit([[v,t.terminal]]);return}this._autoComplete&&this._deps.every(n=>n.terminal!==void 0)&&this._emit(Xe)}_execFn(){if(!this._fn||this._isTerminal&&!this._resubscribable)return;if(this._isExecutingFn){this._pendingRerun=!0;return}let t=this._cleanup;if(typeof t=="function"){this._cleanup=void 0;try{t()}catch(a){this._emit([[v,this._wrapFnError("cleanup threw",a)]]);return}}else if(t!=null&&typeof t=="object"){let a=t.beforeRun;if(typeof a=="function"){t.beforeRun=void 0;try{a()}catch(o){this._emit([[v,this._wrapFnError("cleanup.beforeRun threw",o)]]);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 o=n[a];o!=null&&o.length>0&&(this._deps[a].prevData=o[o.length-1])}let s=this._deps.map(a=>a.terminal),i={prevData:r,terminalDeps:s,store:this._store};if(this._hasCalledFnOnce=!0,this._clearWaveFlags(),this._inspectorHooks!=null){let a={kind:"run",batchData:n,prevData:r};for(let o of this._inspectorHooks)o(a)}this._isExecutingFn=!0;try{let a=this._fn(n,this._actions,i);if(typeof a=="function")this._cleanup=a;else if(a!=null&&typeof a=="object"){let o=a;(typeof o.beforeRun=="function"||typeof o.deactivate=="function"||typeof o.invalidate=="function")&&(this._cleanup=a)}}catch(a){this._emit([[v,this._wrapFnError("fn threw",a)]])}finally{this._isExecutingFn=!1,this._pendingRerun?(this._pendingRerun=!1,this._rerunDepth+=1,this._rerunDepth>ct?(this._rerunDepth=0,this._emit([[v,new Error(`Node "${this.name}": _pendingRerun depth exceeded ${ct} \u2014 likely a reactive cycle`)]])):this._maybeRunFnOnSettlement()):this._rerunDepth=0,this._clearWaveFlags()}}_clearWaveFlags(){this._waveHasNewData=!1,this._hasNewTerminal=!1;for(let t of this._deps)t.involvedThisWave=!1,t.dataBatch.length=0}_wrapFnError(t,n){let r=n instanceof Error?n.message:String(n);return new Error(`Node "${this.name}": ${t}: ${r}`,{cause:n})}_frameBatch(t){let n=this._config.tierOf;if(t.length===1)return n(t[0][0])===3&&this._status!=="dirty"?[H,t[0]]:t;let r=!0,s=!1,i=!1,a=-1;for(let c of t){let d=n(c[0]);d<a&&(r=!1),d===3&&(s=!0),c[0]===P&&(i=!0),a=d}let o=t;if(!r){let c=t.map((d,u)=>({m:d,i:u,tier:n(d[0])}));c.sort((d,u)=>d.tier-u.tier||d.i-u.i),o=c.map(d=>d.m)}if(s&&!i&&this._status!=="dirty"){let c=0;for(;c<o.length&&n(o[c][0])===0;)c++;return c===0?[H,...o]:[...o.slice(0,c),H,...o.slice(c)]}return o}_emit(t){if(t.length===0)return;for(let o=0;o<t.length;o++){let c=t[o];if(c[0]===v&&c[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=t;if(this._isTerminal&&!this._resubscribable){let o=t.filter(c=>c[0]===F||c[0]===U);if(o.length===0)return;n=o}n=this._frameBatch(n);let s=null;for(let o=0;o<n.length;o++){let c=n[o],d=c[0];if(d!==B&&d!==Q){s?.push(c);continue}if(c.length<2)throw new Error(`Node "${this.name}": [[${d===B?"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=c[1];if(d===B)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?s?.push(c):s==null&&(s=n.slice(0,o))}if(s!=null){if(s.length===0)return;n=s}if(this._hasMeta&&n.some(o=>o[0]===F))for(let o of Object.keys(this.meta))try{this.meta[o]._emit(Se)}catch{}let{finalMessages:i,equalsError:a}=this._updateState(n);if(i.length>0&&this._config.inspectorEnabled){let o=this._config.globalInspector;if(o!=null)try{o({kind:"emit",node:this,messages:i})}catch{}}if(i.length>0)if(this._paused&&this._pausable==="resumeAll"&&this._pauseBuffer!=null){let o=this._config.tierOf,c=[];for(let d of i)o(d[0])===3?this._pauseBuffer.push(d):c.push(d);c.length>0&&this._dispatchOrAccumulate(c)}else this._dispatchOrAccumulate(i);a!=null&&this._emit([[v,a]])}_updateState(t){let n=this._config.tierOf,r,s,i=-1,a=0;for(let u of t)n(u[0])===3&&a++;let o=a<=1,c=-1;if(this._versioning!=null&&a>1){for(let u=t.length-1;u>=0;u--)if(t[u][0]===R){c=u;break}}for(let u=0;u<t.length;u++){let l=t[u],p=l[0];if(p===R){if(l.length>=2){let f=!1;if(o&&this._cached!==void 0)try{f=this._equals(this._cached,l[1])}catch(h){s=this._wrapFnError("equals threw",h),i=u;break}if(f){r==null&&(r=t.slice(0,u)),r.push(ve),this._status="resolved";continue}this._cached=l[1],this._versioning!=null&&(c<0||u===c)&&st(this._versioning,l[1],this._hashFn)}this._status="settled",r?.push(l)}else if(r?.push(l),p===P)this._status="dirty";else if(p===I)this._status="resolved";else if(p===M){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===v){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===U){if(this._cached!==void 0){let h=this._config.rigorRecorder;if(h!=null)try{h.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 h=f.invalidate;if(typeof h=="function")try{h()}catch{}}}else p===F&&(this._resetOnTeardown&&(this._cached=void 0),this._deactivate(!0),this._status="sentinel")}let d=i>=0?r??t.slice(0,i):r??t;return s!=null?{finalMessages:d,equalsError:s}:{finalMessages:d}}_deliverToSinks=t=>{if(this._sinks==null)return;if(typeof this._sinks=="function"){this._sinks(t);return}let n=[...this._sinks];for(let r of n)r(t)};_dispatchOrAccumulate(t){if(qe()){this._batchPendingMessages===null&&(this._batchPendingMessages=[],ze(()=>this._flushBatchPending()));for(let n of t)this._batchPendingMessages.push(n);return}te(this._deliverToSinks,t,this._config.tierOf)}_flushBatchPending(){let t=this._batchPendingMessages;if(t===null||(this._batchPendingMessages=null,t.length===0))return;let n=this._frameBatch(t);te(this._deliverToSinks,n,this._config.tierOf)}},lt=e=>Array.isArray(e),Ne=e=>typeof e=="object"&&e!=null&&!Array.isArray(e)});function ae(e,t){return ut((r,s,i)=>e(s,i)??void 0,{describeKind:"producer",...t})}var ft=E(()=>{"use strict";pt()});function Le(e){return{describeKind:"producer",...e}}function mt(e,t){return ae(n=>{let r=!1;try{for(let s of e){if(r)return;n.emit(s)}r||n.down([[M]])}catch(s){r||n.down([[v,s]])}return()=>{r=!0}},Le(t))}function dn(e){return e!=null&&typeof e.then=="function"}function ln(e,t){let{signal:n,...r}=t??{};return ae(s=>{let i=!1,a=()=>{i||(i=!0,s.down([[v,n.reason]]))};if(n?.aborted){a();return}return n?.addEventListener("abort",a,{once:!0}),Promise.resolve(e).then(o=>{i||(i=!0,n?.removeEventListener("abort",a),s.emit(o),s.down([[M]]))},o=>{i||(i=!0,n?.removeEventListener("abort",a),s.down([[v,o]]))}),()=>{i=!0,n?.removeEventListener("abort",a)}},Le(r))}function un(e,t){let{signal:n,...r}=t??{};return ae(s=>{let i=new AbortController,a=()=>i.abort(n?.reason);n?.aborted?i.abort(n.reason):n?.addEventListener("abort",a,{once:!0});let o=n??i.signal,c=!1,d=e[Symbol.asyncIterator](),u=()=>{c||o.aborted||Promise.resolve(d.next()).then(l=>{if(!(c||o.aborted)){if(l.done){s.down([[M]]);return}s.emit(l.value),u()}},l=>{!c&&!o.aborted&&s.down([[v,l]])})};return u(),()=>{c=!0,n?.removeEventListener("abort",a),i.abort(),Promise.resolve(d.return?.()).catch(()=>{})}},Le(r))}function pn(e){return e!=null&&typeof e=="object"&&"cache"in e&&typeof e.subscribe=="function"}function Y(e,t){if(pn(e))return e;if(dn(e))return ln(e,t);if(e!=null){let n=e;if(typeof n[Symbol.asyncIterator]=="function")return un(e,t);if(typeof n[Symbol.iterator]=="function")return mt(e,t)}return fn(e)}function fn(...e){return mt(e,void 0)}function j(e){return new Promise((t,n)=>{let r=!1,s=!1,i;i=e.subscribe(a=>{for(let o of a){if(r)return;if(o[0]===R){r=!0,t(o[1]),i?(i(),i=void 0):s=!0;return}if(o[0]===v){r=!0,n(o[1]),i?(i(),i=void 0):s=!0;return}if(o[0]===M){r=!0,n(new Error("completed without DATA")),i?(i(),i=void 0):s=!0;return}}}),s&&(i?.(),i=void 0)})}var ce=E(()=>{"use strict";ne();ft()});var V,Oe=E(()=>{"use strict";V=class{_timer;_gen=0;start(t,n){this.cancel(),this._gen+=1;let r=this._gen;this._timer=setTimeout(()=>{this._timer=void 0,r===this._gen&&n()},t)}cancel(){this._timer!==void 0&&(clearTimeout(this._timer),this._timer=void 0)}get pending(){return this._timer!==void 0}}});function mn(e){return e<0?0:e}function gt(e){let t=Math.max(1,e?.failureThreshold??5),n=mn(e?.cooldownNs??30*1e9),r=e?.cooldown??null,s=Math.max(1,e?.halfOpenMax??1),i=e?.now??w,a="closed",o=0,c=0,d=0,u=n,l=0;function p(){if(!r)return n;let y=r(c);return y!==null?y:n}function f(){a="open",u=p(),d=i(),l=0}return{canExecute(){return a==="closed"?!0:a==="open"?i()-d>=u?(a="half-open",l=1,!0):!1:l<s?(l++,!0):!1},recordSuccess(){a==="half-open"?(a="closed",o=0,c=0):a==="closed"&&(o=0)},recordFailure(y){if(a==="half-open"){c++,f();return}a==="closed"&&(o++,o>=t&&f())},get state(){return a},get failureCount(){return o},reset(){a="closed",o=0,c=0,l=0}}}var ht=E(()=>{"use strict";L()});var Dn={};Kt(Dn,{chromeNanoAdapter:()=>q,cloudFirstPreset:()=>Pn,localFirstPreset:()=>In,offlinePreset:()=>Fn,webllmAdapter:()=>z});module.exports=$t(Dn);L();function je(){let e=new Error("aborted");return e.name="AbortError",e}function q(e={}){let t=e.streamMode??"accumulated",n=e.navigatorOverride??globalThis.navigator,r=()=>{let o=n?.ai;if(!o?.languageModel)throw new Error("chromeNanoAdapter: Chrome AI languageModel not available (requires Chrome 131+ with flag/OT).");return o},s=async o=>r().languageModel.create({systemPrompt:o?.systemPrompt??e.systemPrompt,temperature:o?.temperature??e.temperature,topK:e.topK,signal:o?.signal}),i=o=>{let c=[];for(let d of o)d.role!=="system"&&c.push(`${d.role}: ${d.content}`);return c.join(`
|
|
2
2
|
|
|
3
|
-
`)},a=()=>({input:{regular:0},output:{regular:0}});return{provider:"chrome-nano",model:"chrome-nano",async invoke(o,c){let d=await s(c);try{let
|
|
4
|
-
`);
|
|
3
|
+
`)},a=()=>({input:{regular:0},output:{regular:0}});return{provider:"chrome-nano",model:"chrome-nano",async invoke(o,c){let d=await s(c);try{let u=i(o),l=w(),p=await d.prompt(u,{signal:c?.signal}),f=Math.max(0,(w()-l)/1e6);return{content:p,usage:a(),finishReason:"stop",latencyMs:f,model:"chrome-nano",provider:"chrome-nano"}}finally{d.destroy?.()}},async*stream(o,c){let d=await s(c);try{let u=i(o);if(t==="delta")for await(let l of d.promptStreaming(u,{signal:c?.signal})){if(c?.signal?.aborted)throw je();l&&(yield{type:"token",delta:l})}else{let l="";for await(let p of d.promptStreaming(u,{signal:c?.signal})){if(c?.signal?.aborted)throw je();let f=p.startsWith(l)?p.slice(l.length):p;l=p,f&&(yield{type:"token",delta:f})}}yield{type:"usage",usage:a()},yield{type:"finish",reason:"stop"}}finally{d.destroy?.()}}}}L();function qt(){let e=new Error("aborted");return e.name="AbortError",e}function z(e){let t=e.engine,n=async()=>{if(t)return t;if(!zt(e.navigatorOverride))throw new Error("webllmAdapter: WebGPU not available in this environment");let a=(await import("@mlc-ai/web-llm").catch(()=>{throw new Error("webllmAdapter: @mlc-ai/web-llm not installed. Add it as a peer dependency or pass opts.engine.")})).CreateMLCEngine;if(!a)throw new Error("webllmAdapter: @mlc-ai/web-llm missing CreateMLCEngine export");return t=await a(e.model,{initProgressCallback:e.initProgressCallback}),t},r=(i,a)=>{let o=[];a?.systemPrompt&&o.push({role:"system",content:a.systemPrompt});for(let c of i)o.push({role:c.role==="tool"?"user":c.role,content:c.content});return o},s=i=>({input:{regular:i?.prompt_tokens??0},output:{regular:i?.completion_tokens??0},raw:i});return{provider:"webllm",model:e.model,async invoke(i,a){let o=await n(),c=w(),d=await o.chat.completions.create({model:a?.model??e.model,messages:r(i,a),max_tokens:a?.maxTokens,temperature:a?.temperature},{signal:a?.signal}),u=Math.max(0,(w()-c)/1e6),l=d.choices?.[0];return{content:l?.message?.content??"",usage:s(d.usage),finishReason:l?.finish_reason,latencyMs:u,model:e.model,provider:"webllm"}},async*stream(i,a){let c=await(await n()).chat.completions.create({model:a?.model??e.model,messages:r(i,a),max_tokens:a?.maxTokens,temperature:a?.temperature,stream:!0},{signal:a?.signal}),d,u;for await(let l of c){if(a?.signal?.aborted)throw qt();let p=l.choices?.[0];p?.delta?.content&&(yield{type:"token",delta:p.delta.content}),p?.finish_reason&&(u=p.finish_reason),l.usage&&(d=l.usage)}d&&(yield{type:"usage",usage:s(d)}),yield{type:"finish",reason:u??"stop"}}}}function zt(e){let t=e??globalThis.navigator;return!!(t&&"gpu"in t&&t.gpu)}L();async function*K(e,t){let n=t?.parse??(k=>k),r=t?.signal,s=new TextDecoder,i="",a="message",o=[],c,d,u=[],l=()=>{if(o.length===0&&a==="message"&&c===void 0){o=[];return}let k=o.join(`
|
|
4
|
+
`);u.push({event:a,data:n(k),id:c,retry:d}),a="message",o=[],c=void 0,d=void 0},p=k=>{if(k===""){l();return}if(k.startsWith(":"))return;let b=k.indexOf(":"),T=b<0?k:k.slice(0,b),x=b<0?"":k.slice(b+1);switch(x.startsWith(" ")&&(x=x.slice(1)),T){case"event":a=x;break;case"data":o.push(x);break;case"id":x.includes("\0")||(c=x);break;case"retry":{let C=Number(x);Number.isFinite(C)&&(d=C);break}}},f=(k,b)=>{i+=s.decode(k,{stream:!b});let T=i.split(/\r?\n/);i=T.pop()??"";for(let x of T)p(x)},h=e,y=e instanceof ReadableStream?e:h&&typeof h=="object"&&h.body instanceof ReadableStream?h.body:null,m,g,_=!1,S=()=>{_||(_=!0,m&&m.cancel().catch(()=>{}),g&&typeof g.return=="function"&&Promise.resolve(g.return()).catch(()=>{}))},N=()=>{S()};if(r){if(r.aborted)return;r.addEventListener("abort",N,{once:!0})}try{if(y){for(m=y.getReader();!r?.aborted;){let{value:k,done:b}=await m.read();if(b)break;for(f(k,!1);u.length>0;)yield u.shift()}f(new Uint8Array,!0)}else{for(g=e[Symbol.asyncIterator]();!r?.aborted;){let b=await g.next();if(b.done)break;for(f(b.value,!1);u.length>0;)yield u.shift()}f(new Uint8Array,!0)}if(i.trim()){for(let k of i.split(/\r?\n/))p(k);l()}for(;u.length>0;)yield u.shift()}finally{r&&r.removeEventListener("abort",N),S()}}async function O(e,t){let n;try{n=await e.text()}catch{n=""}let r=t??"HTTP",s=new Error(`${r} API ${e.status}: ${e.statusText}${n?` \u2014 ${n}`:""}`);return s.status=e.status,s.headers=e.headers,s}function yt(e={}){return e.sdk?kn(e):bn(e)}function de(e,t,n,r){let s=t?.model??n;if(!s)throw new Error("anthropicAdapter: model must be set via options.model or invokeOpts.model");let{system:i,chat:a}=gn(e,t?.systemPrompt),o={model:s,messages:a.map(hn),max_tokens:t?.maxTokens??4096};return i&&(o.system=i),t?.temperature!=null&&(o.temperature=t.temperature),t?.tools&&t.tools.length>0&&(o.tools=t.tools.map(yn)),t?.maxReasoningTokens!=null&&(o.thinking={type:"enabled",budget_tokens:t.maxReasoningTokens}),t?.cacheHint,r&&(o.stream=!0),t?.providerExtras&&Object.assign(o,t.providerExtras),o}function gn(e,t){let n=[];t&&n.push(t);let r=[];for(let s of e)s.role==="system"?n.push(s.content):r.push(s);return{system:n.length>0?n.join(`
|
|
5
5
|
|
|
6
|
-
`):void 0,chat:r}}function gn(e){if(e.role==="tool")return{role:"user",content:[{type:"tool_result",tool_use_id:e.toolCallId,content:e.content}]};if(e.role==="assistant"&&e.toolCalls&&e.toolCalls.length>0){let t=[];e.content&&t.push({type:"text",text:e.content});for(let n of e.toolCalls)t.push({type:"tool_use",id:n.id,name:n.name,input:n.arguments});return{role:"assistant",content:t}}return{role:e.role,content:e.content}}function hn(e){return{name:e.name,description:e.description,input_schema:e.parameters}}function le(e,t){if(!e)return{...t};let n={...e};return t.input_tokens!=null&&(n.input_tokens=t.input_tokens),t.output_tokens!=null&&(n.output_tokens=t.output_tokens),t.cache_read_input_tokens!=null&&(n.cache_read_input_tokens=t.cache_read_input_tokens),t.cache_creation_input_tokens!=null&&(n.cache_creation_input_tokens=t.cache_creation_input_tokens),t.cache_creation&&(n.cache_creation={...e.cache_creation??{},...t.cache_creation}),t.server_tool_use&&(n.server_tool_use={...e.server_tool_use??{},...t.server_tool_use}),n}function Pe(e){let t={input:{regular:e?.input_tokens??0},output:{regular:e?.output_tokens??0},raw:e};return e?.cache_read_input_tokens&&(t.input.cacheRead=e.cache_read_input_tokens),e?.cache_creation?(e.cache_creation.ephemeral_5m_input_tokens&&(t.input.cacheWrite5m=e.cache_creation.ephemeral_5m_input_tokens),e.cache_creation.ephemeral_1h_input_tokens&&(t.input.cacheWrite1h=e.cache_creation.ephemeral_1h_input_tokens)):e?.cache_creation_input_tokens&&(t.input.cacheWrite5m=e.cache_creation_input_tokens),e?.server_tool_use?.web_search_requests&&(t.auxiliary={webSearchRequests:e.server_tool_use.web_search_requests}),t}function bt(e,t){let n=[],r=[];for(let s of e.content)if(s.type==="text"&&typeof s.text=="string")n.push(s.text);else if(s.type==="tool_use"){let i=s;r.push({id:i.id,name:i.name,arguments:i.input??{}})}return{content:n.join(""),toolCalls:r.length>0?r:void 0,usage:Pe(e.usage),finishReason:e.stop_reason,latencyMs:t,model:e.model,provider:"anthropic"}}function yn(e){let t=e.apiKey??globalThis.process?.env?.ANTHROPIC_API_KEY,n=e.baseURL??"https://api.anthropic.com",r=e.anthropicVersion??"2023-06-01",s=e.fetchImpl??fetch,i=()=>{if(!t)throw new Error("anthropicAdapter: apiKey required for invoke/stream (or provide opts.sdk)");return{"x-api-key":t,"anthropic-version":r,"content-type":"application/json",...e.headers??{}}};return{provider:"anthropic",model:e.model,async invoke(a,o){let c=de(a,o,e.model,!1),d=w(),l=await s(`${n}/v1/messages`,{method:"POST",headers:i(),body:JSON.stringify(c),signal:o?.signal});if(!l.ok)throw await O(l,"Anthropic");let u=await l.json(),p=Math.max(0,(w()-d)/1e6);return bt(u,p)},async*stream(a,o){let c=de(a,o,e.model,!0),d=await s(`${n}/v1/messages`,{method:"POST",headers:{...i(),accept:"text/event-stream"},body:JSON.stringify(c),signal:o?.signal});if(!d.ok)throw await O(d,"Anthropic");if(!d.body)throw new Error("anthropicAdapter: streaming response has no body");let l,u,p=new Map;for await(let f of K(d.body,{signal:o?.signal})){let y=f.data;if(!y)continue;let h;try{h=JSON.parse(y)}catch{continue}switch(h.type){case"message_start":{l=le(l,h.message.usage);break}case"content_block_start":{let m=h,g=m.content_block;g.type==="tool_use"&&(p.set(m.index,{id:String(g.id??""),name:String(g.name??""),argBuf:""}),yield{type:"tool-call-delta",delta:{id:String(g.id??""),name:String(g.name??"")}});break}case"content_block_delta":{let m=h,g=m.delta;if(g.type==="text_delta"&&typeof g.text=="string")yield{type:"token",delta:g.text};else if(g.type==="input_json_delta"&&typeof g.partial_json=="string"){let _=p.get(m.index);_&&(_.argBuf+=g.partial_json),yield{type:"tool-call-delta",delta:{argumentsDelta:g.partial_json}}}else g.type==="thinking_delta"&&typeof g.thinking=="string"&&(yield{type:"thinking",delta:g.thinking});break}case"message_delta":{let m=h;m.delta.stop_reason&&(u=m.delta.stop_reason),m.delta.usage&&(l=le(l,m.delta.usage));break}case"message_stop":break}}l&&(yield{type:"usage",usage:Pe(l)}),yield{type:"finish",reason:u??"stop"}}}}function bn(e){let t=e.sdk;if(!t)throw new Error("sdkBackedAnthropic: sdk instance required");return{provider:"anthropic",model:e.model,async invoke(n,r){let s=de(n,r,e.model,!1),i=w(),a=await t.messages.create(s,{signal:r?.signal}),o=Math.max(0,(w()-i)/1e6);return bt(a,o)},async*stream(n,r){if(!t.messages.stream)throw new Error("sdkBackedAnthropic: SDK instance does not expose .messages.stream");let s=de(n,r,e.model,!0),i,a;for await(let o of t.messages.stream(s,{signal:r?.signal}))switch(o.type){case"message_start":i=le(i,o.message.usage);break;case"content_block_delta":{let c=o.delta;c?.type==="text_delta"&&typeof c.text=="string"?yield{type:"token",delta:c.text}:c?.type==="input_json_delta"&&typeof c.partial_json=="string"?yield{type:"tool-call-delta",delta:{argumentsDelta:c.partial_json}}:c?.type==="thinking_delta"&&typeof c.thinking=="string"&&(yield{type:"thinking",delta:c.thinking});break}case"message_delta":{let c=o;c.delta.stop_reason&&(a=c.delta.stop_reason),c.delta.usage&&(i=le(i,c.delta.usage));break}}i&&(yield{type:"usage",usage:Pe(i)}),yield{type:"finish",reason:a??"stop"}}}}Oe();function ue(){let e=new Error("aborted");return e.name="AbortError",e}function kt(e,t){return e<=0?Promise.resolve():t?.aborted?Promise.reject(ue()):new Promise((n,r)=>{let s=new V,i,a=()=>{s.cancel(),t&&i&&t.removeEventListener("abort",i)};s.start(e,()=>{a(),n()}),t&&(i=()=>{a(),r(ue())},t.addEventListener("abort",i,{once:!0}))})}function pe(e={}){let t=e.provider??"dry-run",n=e.model??"dry-run-v1",r=e.latencyMs??0,s=Math.max(1,e.streamChunkSize??16),i=e.respond??(o=>{let c=[...o].reverse().find(d=>d.role==="user");return c?`echo: ${c.content}`:"dry-run: no user message"}),a=e.usage??((o,c)=>{let d=o.reduce((l,u)=>l+u.content.length,0);return{input:{regular:Math.ceil(d/4)},output:{regular:Math.ceil(c.length/4)}}});return{provider:t,model:n,async invoke(o,c){if(await kt(r,c?.signal),c?.signal?.aborted)throw ue();let d=i(o,c),l=a(o,d);return{content:d,usage:l,finishReason:"stop",model:c?.model??n,provider:t,tier:c?.tier,metadata:{dryRun:!0}}},async*stream(o,c){let d=i(o,c),l=a(o,d),u=Math.ceil(d.length/s)||1,p=r>0?r/u:0;for(let f=0;f<d.length;f+=s){if(c?.signal?.aborted)throw ue();await kt(p,c?.signal),yield{type:"token",delta:d.slice(f,f+s)}}yield{type:"usage",usage:l},yield{type:"finish",reason:"stop"}}}}L();async function fe(e){let t=typeof e=="string"?new TextEncoder().encode(e):e,n=await globalThis.crypto.subtle.digest("SHA-256",t),r=new Uint8Array(n),s="";for(let i=0;i<r.length;i++)s+=Tt[r[i]];return s}var Tt=new Array(256);for(let e=0;e<256;e++)Tt[e]=e.toString(16).padStart(2,"0");function Ie(){let e=new Map;return{save(t,n){e.set(t,JSON.parse(JSON.stringify(n)))},load(t){let n=e.get(t);return n===void 0?null:JSON.parse(JSON.stringify(n))},clear(t){e.delete(t)},list(){return[...e.keys()].sort()}}}L();var Fe=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 De(e){let t=new Set,n=r=>{if(r===null||typeof r!="object")return r;let s=r;if(t.has(s))return{__cycle:!0};t.add(s);try{if(Array.isArray(r))return r.map(n);let i={};for(let a of Object.keys(r).sort())i[a]=n(r[a]);return i}finally{t.delete(s)}};return JSON.stringify(n(e))}function wt(e){let{storage:t,keyContext:n,keyPrefix:r,mode:s="read-write"}=e,i=n??(o=>o);async function a(o){let c=De(i(o)),d=await fe(c);return r?`${r}:${d}`:d}return{keyFor:a,async lookup(o){if(s==="write")return;let c=await a(o),d=await t.load(c);if(d==null){if(s==="read-strict")throw new Fe(c,o);return}return d},async store(o,c){if(s==="read")return;let d=await a(o);await t.save(d,c)},async forget(o){if(s==="read"||s==="write"||!t.clear)return;let c=await a(o);await t.clear(c)}}}ce();function vt(e,t={}){let n=t.keyFn??(s=>String(s)),r=new Map;return s=>{let i=n(s),a=r.get(i);if(a)return a;let o=e(s),c;o!=null&&typeof o.then=="function"?c=Promise.resolve(o):o!=null&&typeof o=="object"&&"subscribe"in o&&"cache"in o?c=G(o):o!=null&&typeof o=="object"&&Symbol.asyncIterator in o?c=(async()=>{let u=o[Symbol.asyncIterator]();try{let{value:p,done:f}=await u.next();if(f)throw new Error("singleFromAny: factory returned empty async iterable");return p}finally{await u.return?.()}})():o!=null&&typeof o=="object"&&Symbol.iterator in o?c=(async()=>{let u=o[Symbol.iterator]();try{let{value:p,done:f}=u.next();if(f)throw new Error("singleFromAny: factory returned empty iterable");return p}finally{u.return?.()}})():c=Promise.resolve(o);let d,l=()=>{r.get(i)===d&&r.delete(i)};return d=c.then(u=>(l(),u),u=>{throw l(),u}),r.set(i,d),d}}ce();Oe();function xt(e){let{storage:t,mode:n="read-write",keyFn:r,keyPrefix:s="llm-replay"}=e,a=wt({storage:t,keyPrefix:s,mode:n==="read-strict"?"read":n,keyContext:({messages:c,opts:d})=>{let{signal:l,keyContext:u,...p}=d??{};return{messages:c,opts:p}}});async function o(c,d){if(r){if(r.length<=1){let u={messages:c,opts:d,context:d?.keyContext},p=await r(u);return`${s}:${p}`}let l=await r(c,d);return`${s}:${l}`}return a.keyFor({messages:c,opts:d})}return{keyFor:o,async lookup(c,d){if(n!=="write"){if(r){let l=await o(c,d),u=await t.load(l);return u??void 0}return a.lookup({messages:c,opts:d})}},async store(c,d,l){if(n!=="read"){if(r){let u=await o(c,d);await t.save(u,l);return}await a.store({messages:c,opts:d},l)}},async forget(c,d){if(!(n==="read"||n==="write")&&t.clear){if(r){let l=await o(c,d);await t.clear(l);return}await a.forget({messages:c,opts:d})}}}}function _t(e,t,n){return{provider:n?.provider??e.provider,model:n?.model??e.model,capabilities:n?.capabilities??e.capabilities?.bind(e),invoke:t.invoke,stream:t.stream}}var St=Symbol.for("graphrefly.adapter.middlewareLayers");function me(e,t,n){let s=[...n?kn(n):[],t];return Object.defineProperty(e,St,{value:Object.freeze(s),enumerable:!1,writable:!1,configurable:!1}),e}function kn(e){let t=e[St];return Array.isArray(t)?t:[]}var X=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 At(e,t){let n=t.mode??"read-write",r=t.cacheStreaming??!1,s=t.captureStreamCadence??!1,i=t.replaySpeed??1,a=t.keyPrefix??"llm-replay",o=n==="read"||n==="read-strict",c=xt({storage:t.storage,mode:n==="write-only"?"write":n,keyFn:t.keyFn,keyPrefix:a}),d=p=>p<=0?Promise.resolve():new Promise(f=>{new V().start(p,()=>f())}),l=vt(async({messages:p,invokeOpts:f})=>await G(Y(e.invoke(p,f))),{keyFn:({_precomputedKey:p})=>p}),u=_t(e,{async invoke(p,f){let y=await c.keyFor(p,f),h=await c.lookup(p,f);if(h?.response){let g=h.response;return{...g,metadata:{...g.metadata??{},replayCache:"hit"}}}if(n==="read-strict")throw new X(y,"invoke");let m=await l({messages:p,invokeOpts:f,_precomputedKey:y});return o||await c.store(p,f,{response:m,storedAtNs:D()}),m},async*stream(p,f){if(!r){for await(let b of e.stream(p,f))yield b;return}let y=await c.keyFor(p,f),h=await c.lookup(p,f);if(h){let b=h.response;if(h.streamChunks&&h.streamCadenceMs)for(let T=0;T<h.streamChunks.length;T++){let x=h.streamCadenceMs[T]??0,C=i>0?x/i:0;C>0&&await d(C),yield{type:"token",delta:h.streamChunks[T]?.delta??""}}else b.content&&(yield{type:"token",delta:b.content});b.usage&&(yield{type:"usage",usage:b.usage}),yield{type:"finish",reason:b.finishReason??"stop"};return}if(n==="read-strict")throw new X(y,"stream");let m="",g,_,S=[],N=[],k;for await(let b of e.stream(p,f)){if(b.type==="token"&&(m+=b.delta,s)){let T=w(),x=k===void 0?0:(T-k)/1e6;N.push(x),k=T,S.push({delta:b.delta})}b.type==="usage"&&(g=b.usage),b.type==="finish"&&(_=b.reason),yield b}if((m||g)&&!o){let T={response:{content:m,usage:g??{input:{regular:0},output:{regular:0}},finishReason:_,model:e.model??f?.model??"",provider:e.provider},storedAtNs:D(),...s?{streamChunks:S,streamCadenceMs:N}:{}};await c.store(p,f,T)}}});return me(u,"withReplayCache",e),u}var Et=De;function Rt(e,t){return{content:"[fallback: no cached response available for this request]",usage:{input:{regular:0},output:{regular:0}},finishReason:"stop",model:t,provider:e,metadata:{degraded:!0,reason:"no-fixture"}}}function Mt(e,t,n){return typeof e=="string"?{content:e,usage:{input:{regular:0},output:{regular:0}},finishReason:"stop",model:n,provider:t,metadata:{degraded:!0,reason:"respond"}}:e}async function Tn(e,t){if("key"in e)return e.key;let n=Et({messages:e.messages,opts:e.invokeOpts??{}}),r=await fe(n);return`${t}:${r}`}function wn(e){let t={response:e.response,storedAtNs:D()};if("key"in e&&e.stream){let n=e.stream.chunks.filter(r=>r.type==="token");return{...t,streamChunks:n.map(r=>({delta:r.delta})),streamCadenceMs:e.stream.delaysMs??n.map(()=>0)}}return t}function vn(e,t){let n=[];if(e.fixtures!=null&&n.push("fixtures"),e.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(e.fixtures){let r=Ie(),s=e.fixtures,i=(async()=>{for(let a of s){let o=await Tn(a,t);await r.save(o,wn(a))}})();return i.catch(()=>{}),{tier:r,seedReady:i}}return e.fixturesStorage?{tier:e.fixturesStorage,seedReady:Promise.resolve()}:{tier:void 0,seedReady:Promise.resolve()}}function Nt(e={}){let t=e.provider??"fallback",n=e.model??"fallback",r=e.onMiss??"respond",s=e.keyPrefix??"fallback",i=e.record?e.record.adapter:r==="throw"?pe({provider:t,model:n,respond:()=>"[unreachable: read-strict mode throws on miss]"}):{provider:t,model:n,async invoke(l,u){let p=e.respond?e.respond(l,u):Rt(t,n);return Mt(p,t,n)},async*stream(l,u){let p=e.respond?e.respond(l,u):Rt(t,n),f=Mt(p,t,n);yield{type:"token",delta:f.content},f.usage&&(yield{type:"usage",usage:f.usage}),yield{type:"finish",reason:f.finishReason??"stop"}}},a,o=Promise.resolve();if(e.record){if(!e.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=e.record.storage}else{let l=vn(e,s);a=l.tier??Ie(),o=l.seedReady}let c=e.record?"read-write":r==="throw"?"read-strict":"read",d=At(i,{storage:a,mode:c,keyPrefix:s,cacheStreaming:!0,captureStreamCadence:!0,replaySpeed:e.replaySpeed,...e.keyFn?{keyFn:e.keyFn}:{}});return{provider:t,model:n,capabilities:d.capabilities?.bind(d),async invoke(l,u){return await o,d.invoke(l,u)},async*stream(l,u){await o;for await(let p of d.stream(l,u))yield p}}}L();function Ct(e={}){return e.sdk?An(e):Sn(e)}function ge(e,t){let n=[],r=[];t?.systemPrompt&&n.push(t.systemPrompt);for(let a of e){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 o=[];a.content&&o.push({text:a.content});for(let c of a.toolCalls)o.push({functionCall:{name:c.name,args:c.arguments}});r.push({role:"model",parts:o});continue}r.push({role:a.role==="assistant"?"model":"user",parts:[{text:a.content}]})}let s={contents:r};n.length>0&&(s.systemInstruction={role:"system",parts:[{text:n.join(`
|
|
6
|
+
`):void 0,chat:r}}function hn(e){if(e.role==="tool")return{role:"user",content:[{type:"tool_result",tool_use_id:e.toolCallId,content:e.content}]};if(e.role==="assistant"&&e.toolCalls&&e.toolCalls.length>0){let t=[];e.content&&t.push({type:"text",text:e.content});for(let n of e.toolCalls)t.push({type:"tool_use",id:n.id,name:n.name,input:n.arguments});return{role:"assistant",content:t}}return{role:e.role,content:e.content}}function yn(e){return{name:e.name,description:e.description,input_schema:e.parameters}}function le(e,t){if(!e)return{...t};let n={...e};return t.input_tokens!=null&&(n.input_tokens=t.input_tokens),t.output_tokens!=null&&(n.output_tokens=t.output_tokens),t.cache_read_input_tokens!=null&&(n.cache_read_input_tokens=t.cache_read_input_tokens),t.cache_creation_input_tokens!=null&&(n.cache_creation_input_tokens=t.cache_creation_input_tokens),t.cache_creation&&(n.cache_creation={...e.cache_creation??{},...t.cache_creation}),t.server_tool_use&&(n.server_tool_use={...e.server_tool_use??{},...t.server_tool_use}),n}function Pe(e){let t={input:{regular:e?.input_tokens??0},output:{regular:e?.output_tokens??0},raw:e};return e?.cache_read_input_tokens&&(t.input.cacheRead=e.cache_read_input_tokens),e?.cache_creation?(e.cache_creation.ephemeral_5m_input_tokens&&(t.input.cacheWrite5m=e.cache_creation.ephemeral_5m_input_tokens),e.cache_creation.ephemeral_1h_input_tokens&&(t.input.cacheWrite1h=e.cache_creation.ephemeral_1h_input_tokens)):e?.cache_creation_input_tokens&&(t.input.cacheWrite5m=e.cache_creation_input_tokens),e?.server_tool_use?.web_search_requests&&(t.auxiliary={webSearchRequests:e.server_tool_use.web_search_requests}),t}function bt(e,t){let n=[],r=[];for(let s of e.content)if(s.type==="text"&&typeof s.text=="string")n.push(s.text);else if(s.type==="tool_use"){let i=s;r.push({id:i.id,name:i.name,arguments:i.input??{}})}return{content:n.join(""),toolCalls:r.length>0?r:void 0,usage:Pe(e.usage),finishReason:e.stop_reason,latencyMs:t,model:e.model,provider:"anthropic"}}function bn(e){let t=e.apiKey??globalThis.process?.env?.ANTHROPIC_API_KEY,n=e.baseURL??"https://api.anthropic.com",r=e.anthropicVersion??"2023-06-01",s=e.fetchImpl??fetch,i=()=>{if(!t)throw new Error("anthropicAdapter: apiKey required for invoke/stream (or provide opts.sdk)");return{"x-api-key":t,"anthropic-version":r,"content-type":"application/json",...e.headers??{}}};return{provider:"anthropic",model:e.model,async invoke(a,o){let c=de(a,o,e.model,!1),d=w(),u=await s(`${n}/v1/messages`,{method:"POST",headers:i(),body:JSON.stringify(c),signal:o?.signal});if(!u.ok)throw await O(u,"Anthropic");let l=await u.json(),p=Math.max(0,(w()-d)/1e6);return bt(l,p)},async*stream(a,o){let c=de(a,o,e.model,!0),d=await s(`${n}/v1/messages`,{method:"POST",headers:{...i(),accept:"text/event-stream"},body:JSON.stringify(c),signal:o?.signal});if(!d.ok)throw await O(d,"Anthropic");if(!d.body)throw new Error("anthropicAdapter: streaming response has no body");let u,l,p=new Map;for await(let f of K(d.body,{signal:o?.signal})){let h=f.data;if(!h)continue;let y;try{y=JSON.parse(h)}catch{continue}switch(y.type){case"message_start":{u=le(u,y.message.usage);break}case"content_block_start":{let m=y,g=m.content_block;g.type==="tool_use"&&(p.set(m.index,{id:String(g.id??""),name:String(g.name??""),argBuf:""}),yield{type:"tool-call-delta",delta:{id:String(g.id??""),name:String(g.name??"")}});break}case"content_block_delta":{let m=y,g=m.delta;if(g.type==="text_delta"&&typeof g.text=="string")yield{type:"token",delta:g.text};else if(g.type==="input_json_delta"&&typeof g.partial_json=="string"){let _=p.get(m.index);_&&(_.argBuf+=g.partial_json),yield{type:"tool-call-delta",delta:{argumentsDelta:g.partial_json}}}else g.type==="thinking_delta"&&typeof g.thinking=="string"&&(yield{type:"thinking",delta:g.thinking});break}case"message_delta":{let m=y;m.delta.stop_reason&&(l=m.delta.stop_reason),m.delta.usage&&(u=le(u,m.delta.usage));break}case"message_stop":break}}u&&(yield{type:"usage",usage:Pe(u)}),yield{type:"finish",reason:l??"stop"}}}}function kn(e){let t=e.sdk;if(!t)throw new Error("sdkBackedAnthropic: sdk instance required");return{provider:"anthropic",model:e.model,async invoke(n,r){let s=de(n,r,e.model,!1),i=w(),a=await t.messages.create(s,{signal:r?.signal}),o=Math.max(0,(w()-i)/1e6);return bt(a,o)},async*stream(n,r){if(!t.messages.stream)throw new Error("sdkBackedAnthropic: SDK instance does not expose .messages.stream");let s=de(n,r,e.model,!0),i,a;for await(let o of t.messages.stream(s,{signal:r?.signal}))switch(o.type){case"message_start":i=le(i,o.message.usage);break;case"content_block_delta":{let c=o.delta;c?.type==="text_delta"&&typeof c.text=="string"?yield{type:"token",delta:c.text}:c?.type==="input_json_delta"&&typeof c.partial_json=="string"?yield{type:"tool-call-delta",delta:{argumentsDelta:c.partial_json}}:c?.type==="thinking_delta"&&typeof c.thinking=="string"&&(yield{type:"thinking",delta:c.thinking});break}case"message_delta":{let c=o;c.delta.stop_reason&&(a=c.delta.stop_reason),c.delta.usage&&(i=le(i,c.delta.usage));break}}i&&(yield{type:"usage",usage:Pe(i)}),yield{type:"finish",reason:a??"stop"}}}}Oe();function ue(){let e=new Error("aborted");return e.name="AbortError",e}function kt(e,t){return e<=0?Promise.resolve():t?.aborted?Promise.reject(ue()):new Promise((n,r)=>{let s=new V,i,a=()=>{s.cancel(),t&&i&&t.removeEventListener("abort",i)};s.start(e,()=>{a(),n()}),t&&(i=()=>{a(),r(ue())},t.addEventListener("abort",i,{once:!0}))})}function pe(e={}){let t=e.provider??"dry-run",n=e.model??"dry-run-v1",r=e.latencyMs??0,s=Math.max(1,e.streamChunkSize??16),i=e.respond??(o=>{let c=[...o].reverse().find(d=>d.role==="user");return c?`echo: ${c.content}`:"dry-run: no user message"}),a=e.usage??((o,c)=>{let d=o.reduce((u,l)=>u+l.content.length,0);return{input:{regular:Math.ceil(d/4)},output:{regular:Math.ceil(c.length/4)}}});return{provider:t,model:n,async invoke(o,c){if(await kt(r,c?.signal),c?.signal?.aborted)throw ue();let d=i(o,c),u=a(o,d);return{content:d,usage:u,finishReason:"stop",model:c?.model??n,provider:t,tier:c?.tier,metadata:{dryRun:!0}}},async*stream(o,c){let d=i(o,c),u=a(o,d),l=Math.ceil(d.length/s)||1,p=r>0?r/l:0;for(let f=0;f<d.length;f+=s){if(c?.signal?.aborted)throw ue();await kt(p,c?.signal),yield{type:"token",delta:d.slice(f,f+s)}}yield{type:"usage",usage:u},yield{type:"finish",reason:"stop"}}}}L();async function fe(e){let t=typeof e=="string"?new TextEncoder().encode(e):e,n=await globalThis.crypto.subtle.digest("SHA-256",t),r=new Uint8Array(n),s="";for(let i=0;i<r.length;i++)s+=Tt[r[i]];return s}var Tt=new Array(256);for(let e=0;e<256;e++)Tt[e]=e.toString(16).padStart(2,"0");function Ie(){let e=new Map;return{save(t,n){e.set(t,JSON.parse(JSON.stringify(n)))},load(t){let n=e.get(t);return n===void 0?null:JSON.parse(JSON.stringify(n))},clear(t){e.delete(t)},list(){return[...e.keys()].sort()}}}L();var Fe=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 De(e){let t=new Set,n=r=>{if(r===null||typeof r!="object")return r;let s=r;if(t.has(s))return{__cycle:!0};t.add(s);try{if(Array.isArray(r))return r.map(n);let i={};for(let a of Object.keys(r).sort())i[a]=n(r[a]);return i}finally{t.delete(s)}};return JSON.stringify(n(e))}function wt(e){let{storage:t,keyContext:n,keyPrefix:r,mode:s="read-write"}=e,i=n??(o=>o);async function a(o){let c=De(i(o)),d=await fe(c);return r?`${r}:${d}`:d}return{keyFor:a,async lookup(o){if(s==="write")return;let c=await a(o),d=await t.load(c);if(d==null){if(s==="read-strict")throw new Fe(c,o);return}return d},async store(o,c){if(s==="read")return;let d=await a(o);await t.save(d,c)},async forget(o){if(s==="read"||s==="write"||!t.clear)return;let c=await a(o);await t.clear(c)}}}ce();function vt(e,t={}){let n=t.keyFn??(s=>String(s)),r=new Map;return s=>{let i=n(s),a=r.get(i);if(a)return a;let o=e(s),c;o!=null&&typeof o.then=="function"?c=Promise.resolve(o):o!=null&&typeof o=="object"&&"subscribe"in o&&"cache"in o?c=j(o):o!=null&&typeof o=="object"&&Symbol.asyncIterator in o?c=(async()=>{let l=o[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?.()}})():o!=null&&typeof o=="object"&&Symbol.iterator in o?c=(async()=>{let l=o[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?.()}})():c=Promise.resolve(o);let d,u=()=>{r.get(i)===d&&r.delete(i)};return d=c.then(l=>(u(),l),l=>{throw u(),l}),r.set(i,d),d}}ce();Oe();function xt(e){let{storage:t,mode:n="read-write",keyFn:r,keyPrefix:s="llm-replay"}=e,a=wt({storage:t,keyPrefix:s,mode:n==="read-strict"?"read":n,keyContext:({messages:c,opts:d})=>{let{signal:u,keyContext:l,...p}=d??{};return{messages:c,opts:p}}});async function o(c,d){if(r){if(r.length<=1){let l={messages:c,opts:d,context:d?.keyContext},p=await r(l);return`${s}:${p}`}let u=await r(c,d);return`${s}:${u}`}return a.keyFor({messages:c,opts:d})}return{keyFor:o,async lookup(c,d){if(n!=="write"){if(r){let u=await o(c,d),l=await t.load(u);return l??void 0}return a.lookup({messages:c,opts:d})}},async store(c,d,u){if(n!=="read"){if(r){let l=await o(c,d);await t.save(l,u);return}await a.store({messages:c,opts:d},u)}},async forget(c,d){if(!(n==="read"||n==="write")&&t.clear){if(r){let u=await o(c,d);await t.clear(u);return}await a.forget({messages:c,opts:d})}}}}function _t(e,t,n){return{provider:n?.provider??e.provider,model:n?.model??e.model,capabilities:n?.capabilities??e.capabilities?.bind(e),invoke:t.invoke,stream:t.stream}}var St=Symbol.for("graphrefly.adapter.middlewareLayers");function me(e,t,n){let s=[...n?Tn(n):[],t];return Object.defineProperty(e,St,{value:Object.freeze(s),enumerable:!1,writable:!1,configurable:!1}),e}function Tn(e){let t=e[St];return Array.isArray(t)?t:[]}var X=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 At(e,t){let n=t.mode??"read-write",r=t.cacheStreaming??!1,s=t.captureStreamCadence??!1,i=t.replaySpeed??1,a=t.keyPrefix??"llm-replay",o=n==="read"||n==="read-strict",c=xt({storage:t.storage,mode:n==="write-only"?"write":n,keyFn:t.keyFn,keyPrefix:a}),d=p=>p<=0?Promise.resolve():new Promise(f=>{new V().start(p,()=>f())}),u=vt(async({messages:p,invokeOpts:f})=>await j(Y(e.invoke(p,f))),{keyFn:({_precomputedKey:p})=>p}),l=_t(e,{async invoke(p,f){let h=await c.keyFor(p,f),y=await c.lookup(p,f);if(y?.response){let g=y.response;return{...g,metadata:{...g.metadata??{},replayCache:"hit"}}}if(n==="read-strict")throw new X(h,"invoke");let m=await u({messages:p,invokeOpts:f,_precomputedKey:h});return o||await c.store(p,f,{response:m,storedAtNs:D()}),m},async*stream(p,f){if(!r){for await(let b of e.stream(p,f))yield b;return}let h=await c.keyFor(p,f),y=await c.lookup(p,f);if(y){let b=y.response;if(y.streamChunks&&y.streamCadenceMs)for(let T=0;T<y.streamChunks.length;T++){let x=y.streamCadenceMs[T]??0,C=i>0?x/i:0;C>0&&await d(C),yield{type:"token",delta:y.streamChunks[T]?.delta??""}}else b.content&&(yield{type:"token",delta:b.content});b.usage&&(yield{type:"usage",usage:b.usage}),yield{type:"finish",reason:b.finishReason??"stop"};return}if(n==="read-strict")throw new X(h,"stream");let m="",g,_,S=[],N=[],k;for await(let b of e.stream(p,f)){if(b.type==="token"&&(m+=b.delta,s)){let T=w(),x=k===void 0?0:(T-k)/1e6;N.push(x),k=T,S.push({delta:b.delta})}b.type==="usage"&&(g=b.usage),b.type==="finish"&&(_=b.reason),yield b}if((m||g)&&!o){let T={response:{content:m,usage:g??{input:{regular:0},output:{regular:0}},finishReason:_,model:e.model??f?.model??"",provider:e.provider},storedAtNs:D(),...s?{streamChunks:S,streamCadenceMs:N}:{}};await c.store(p,f,T)}}});return me(l,"withReplayCache",e),l}var Et=De;function Rt(e,t){return{content:"[fallback: no cached response available for this request]",usage:{input:{regular:0},output:{regular:0}},finishReason:"stop",model:t,provider:e,metadata:{degraded:!0,reason:"no-fixture"}}}function Mt(e,t,n){return typeof e=="string"?{content:e,usage:{input:{regular:0},output:{regular:0}},finishReason:"stop",model:n,provider:t,metadata:{degraded:!0,reason:"respond"}}:e}async function wn(e,t){if("key"in e)return e.key;let n=Et({messages:e.messages,opts:e.invokeOpts??{}}),r=await fe(n);return`${t}:${r}`}function vn(e){let t={response:e.response,storedAtNs:D()};if("key"in e&&e.stream){let n=e.stream.chunks.filter(r=>r.type==="token");return{...t,streamChunks:n.map(r=>({delta:r.delta})),streamCadenceMs:e.stream.delaysMs??n.map(()=>0)}}return t}function xn(e,t){let n=[];if(e.fixtures!=null&&n.push("fixtures"),e.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(e.fixtures){let r=Ie(),s=e.fixtures,i=(async()=>{for(let a of s){let o=await wn(a,t);await r.save(o,vn(a))}})();return i.catch(()=>{}),{tier:r,seedReady:i}}return e.fixturesStorage?{tier:e.fixturesStorage,seedReady:Promise.resolve()}:{tier:void 0,seedReady:Promise.resolve()}}function Nt(e={}){let t=e.provider??"fallback",n=e.model??"fallback",r=e.onMiss??"respond",s=e.keyPrefix??"fallback",i=e.record?e.record.adapter:r==="throw"?pe({provider:t,model:n,respond:()=>"[unreachable: read-strict mode throws on miss]"}):{provider:t,model:n,async invoke(u,l){let p=e.respond?e.respond(u,l):Rt(t,n);return Mt(p,t,n)},async*stream(u,l){let p=e.respond?e.respond(u,l):Rt(t,n),f=Mt(p,t,n);yield{type:"token",delta:f.content},f.usage&&(yield{type:"usage",usage:f.usage}),yield{type:"finish",reason:f.finishReason??"stop"}}},a,o=Promise.resolve();if(e.record){if(!e.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=e.record.storage}else{let u=xn(e,s);a=u.tier??Ie(),o=u.seedReady}let c=e.record?"read-write":r==="throw"?"read-strict":"read",d=At(i,{storage:a,mode:c,keyPrefix:s,cacheStreaming:!0,captureStreamCadence:!0,replaySpeed:e.replaySpeed,...e.keyFn?{keyFn:e.keyFn}:{}});return{provider:t,model:n,capabilities:d.capabilities?.bind(d),async invoke(u,l){return await o,d.invoke(u,l)},async*stream(u,l){await o;for await(let p of d.stream(u,l))yield p}}}L();function Lt(e={}){return e.sdk?En(e):An(e)}function ge(e,t){let n=[],r=[];t?.systemPrompt&&n.push(t.systemPrompt);for(let a of e){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 o=[];a.content&&o.push({text:a.content});for(let c of a.toolCalls)o.push({functionCall:{name:c.name,args:c.arguments}});r.push({role:"model",parts:o});continue}r.push({role:a.role==="assistant"?"model":"user",parts:[{text:a.content}]})}let s={contents:r};n.length>0&&(s.systemInstruction={role:"system",parts:[{text:n.join(`
|
|
7
7
|
|
|
8
|
-
`)}]});let i={};return t?.maxTokens!=null&&(i.maxOutputTokens=t.maxTokens),t?.temperature!=null&&(i.temperature=t.temperature),t?.maxReasoningTokens!=null&&(i.thinkingConfig={thinkingBudget:t.maxReasoningTokens}),Object.keys(i).length>0&&(s.generationConfig=i),t?.tools&&t.tools.length>0&&(s.tools=[{functionDeclarations:t.tools.map(xn)}]),t?.providerExtras&&Object.assign(s,t.providerExtras),s}function xn(e){return{name:e.name,description:e.description,parameters:e.parameters}}function Ue(e){let t={input:{regular:0},output:{regular:0},raw:e};if(!e)return t;let n=e.promptTokenCount??0,r=e.cachedContentTokenCount??0;if(t.input.regular=Math.max(0,n-r),r>0&&(t.input.cacheRead=r),e.toolUsePromptTokenCount&&(t.input.toolUse=e.toolUsePromptTokenCount),e.promptTokensDetails)for(let s of e.promptTokensDetails){let i=s.modality?.toLowerCase();i==="image"?t.input.image=(t.input.image??0)+s.tokenCount:i==="audio"?t.input.audio=(t.input.audio??0)+s.tokenCount:i==="video"&&(t.input.video=(t.input.video??0)+s.tokenCount)}return t.output.regular=e.candidatesTokenCount??0,e.thoughtsTokenCount&&(t.output.reasoning=e.thoughtsTokenCount),t}function Lt(e,t){let n=e.candidates?.[0],r=n?.content?.parts??[],s=[],i=[],a=0;for(let o of r)typeof o.text=="string"&&s.push(o.text),o.functionCall&&i.push({id:`${o.functionCall.name}-${a++}`,name:o.functionCall.name,arguments:o.functionCall.args??{}});return{content:s.join(""),toolCalls:i.length>0?i:void 0,usage:Ue(e.usageMetadata),finishReason:n?.finishReason,latencyMs:t,model:e.modelVersion,provider:"google"}}function _n(e){if(e.apiKey)return e.apiKey;let t=globalThis.process?.env;return t?.GOOGLE_API_KEY??t?.GEMINI_API_KEY}function Sn(e){let t=e.baseURL??"https://generativelanguage.googleapis.com/v1beta",n=e.fetchImpl??fetch,r=i=>{let a=i?.model??e.model;if(!a)throw new Error("googleAdapter: model must be set via options.model or invokeOpts.model");return a},s=()=>{let i=_n(e);if(!i)throw new Error("googleAdapter: apiKey required for invoke/stream");return`key=${encodeURIComponent(i)}`};return{provider:"google",model:e.model,async invoke(i,a){let o=r(a),c=ge(i,a),d=w(),l=`${t}/models/${encodeURIComponent(o)}:generateContent?${s()}`,u=await n(l,{method:"POST",headers:{"content-type":"application/json",...e.headers??{}},body:JSON.stringify(c),signal:a?.signal});if(!u.ok)throw await O(u,"Google");let p=await u.json(),f=Math.max(0,(w()-d)/1e6);return Lt(p,f)},async*stream(i,a){let o=r(a),c=ge(i,a),d=`${t}/models/${encodeURIComponent(o)}:streamGenerateContent?alt=sse&${s()}`,l=await n(d,{method:"POST",headers:{"content-type":"application/json",accept:"text/event-stream",...e.headers??{}},body:JSON.stringify(c),signal:a?.signal});if(!l.ok)throw await O(l,"Google");if(!l.body)throw new Error("googleAdapter: streaming response has no body");let u,p;for await(let f of K(l.body,{signal:a?.signal})){if(!f.data)continue;let y;try{y=JSON.parse(f.data)}catch{continue}let h=y.candidates?.[0];for(let m of h?.content?.parts??[])typeof m.text=="string"&&(m.thought?yield{type:"thinking",delta:m.text}:yield{type:"token",delta:m.text}),m.functionCall&&(yield{type:"tool-call-delta",delta:{name:m.functionCall.name,argumentsDelta:JSON.stringify(m.functionCall.args??{})}});h?.finishReason&&(p=h.finishReason),y.usageMetadata&&(u=y.usageMetadata)}u&&(yield{type:"usage",usage:Ue(u)}),yield{type:"finish",reason:p??"stop"}}}}function An(e){let t=e.sdk;if(!t)throw new Error("sdkBackedGoogle: sdk instance required");return{provider:"google",model:e.model,async invoke(n,r){let s=ge(n,r),i=r?.model??e.model;if(!i)throw new Error("googleAdapter: model required");let a=w(),o=await t.models.generateContent({...s,model:i},{signal:r?.signal}),c=Math.max(0,(w()-a)/1e6);return Lt(o,c)},async*stream(n,r){if(!t.models.generateContentStream)throw new Error("sdkBackedGoogle: SDK instance does not expose generateContentStream");let s=ge(n,r),i=r?.model??e.model;if(!i)throw new Error("googleAdapter: model required");let a,o;for await(let c of t.models.generateContentStream({...s,model:i},{signal:r?.signal})){let d=c.candidates?.[0];for(let l of d?.content?.parts??[])typeof l.text=="string"&&(l.thought?yield{type:"thinking",delta:l.text}:yield{type:"token",delta:l.text}),l.functionCall&&(yield{type:"tool-call-delta",delta:{name:l.functionCall.name,argumentsDelta:JSON.stringify(l.functionCall.args??{})}});d?.finishReason&&(o=d.finishReason),c.usageMetadata&&(a=c.usageMetadata)}a&&(yield{type:"usage",usage:Ue(a)}),yield{type:"finish",reason:o??"stop"}}}}L();var En={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 Ot(e={}){return e.sdk?Ln(e):Cn(e)}function he(e,t,n,r,s){let i=t?.model??n;if(!i)throw new Error("openAICompatAdapter: model must be set via options.model or invokeOpts.model");let a=e.map(Rn);t?.systemPrompt&&!e.some(c=>c.role==="system")&&a.unshift({role:"system",content:t.systemPrompt});let o={model:i,messages:a};return t?.maxTokens!=null&&(o.max_tokens=t.maxTokens),t?.temperature!=null&&(o.temperature=t.temperature),t?.tools&&t.tools.length>0&&(o.tools=t.tools.map(Mn)),t?.maxReasoningTokens!=null&&(o.reasoning={max_tokens:t.maxReasoningTokens}),r&&(o.stream=!0,o.stream_options={include_usage:!0}),s&&Object.assign(o,s),t?.providerExtras&&Object.assign(o,t.providerExtras),o}function Rn(e){return e.role==="tool"?{role:"tool",tool_call_id:e.toolCallId,content:e.content}:e.role==="assistant"&&e.toolCalls&&e.toolCalls.length>0?{role:"assistant",content:e.content||null,tool_calls:e.toolCalls.map(t=>({id:t.id,type:"function",function:{name:t.name,arguments:JSON.stringify(t.arguments)}}))}:{role:e.role,content:e.content}}function Mn(e){return{type:"function",function:{name:e.name,description:e.description,parameters:e.parameters}}}function Be(e){let t={input:{regular:0},output:{regular:0},raw:e};if(!e)return t;let n=e.prompt_tokens??0,r=e.prompt_tokens_details?.cached_tokens??0;e.prompt_cache_hit_tokens!=null?(r=e.prompt_cache_hit_tokens,t.input.regular=e.prompt_cache_miss_tokens??Math.max(0,n-r)):t.input.regular=Math.max(0,n-r),r>0&&(t.input.cacheRead=r),e.prompt_tokens_details?.audio_tokens&&(t.input.audio=e.prompt_tokens_details.audio_tokens);let s=e.completion_tokens??0,i=e.completion_tokens_details?.reasoning_tokens??0;return t.output.regular=Math.max(0,s-i),i>0&&(t.output.reasoning=i),e.completion_tokens_details?.audio_tokens&&(t.output.audio=e.completion_tokens_details.audio_tokens),e.completion_tokens_details?.accepted_prediction_tokens&&(t.output.predictionAccepted=e.completion_tokens_details.accepted_prediction_tokens),e.completion_tokens_details?.rejected_prediction_tokens&&(t.output.predictionRejected=e.completion_tokens_details.rejected_prediction_tokens),t}function Pt(e,t,n){let r=e.choices[0],s=r?.message,i=s?.content??"",a=(s?.tool_calls??[]).map(o=>({id:o.id,name:o.function.name,arguments:Nn(o.function.arguments)}));return{content:i,toolCalls:a.length>0?a:void 0,usage:Be(e.usage),finishReason:r?.finish_reason,latencyMs:t,model:e.model,provider:n}}function Nn(e){try{let t=JSON.parse(e);return typeof t=="object"&&t!=null?t:{_raw:e}}catch{return{_raw:e}}}function It(e){let t=e.preset??"openai",n=En[t],r=e.baseURL??n.baseURL,s=e.provider??n.provider,i=n.apiKeyEnv,a=e.apiKey??(i?globalThis.process?.env?.[i]:void 0);return{provider:s,baseURL:r,apiKey:a}}function Cn(e){let{provider:t,baseURL:n,apiKey:r}=It(e),s=e.fetchImpl??fetch,i=t!=="ollama",a=()=>{let o={"content-type":"application/json",...e.headers??{}};if(i){if(!r)throw new Error(`openAICompatAdapter[${t}]: apiKey required for invoke/stream`);o.authorization=`Bearer ${r}`}return o};return{provider:t,model:e.model,async invoke(o,c){let d=he(o,c,e.model,!1,e.bodyExtras),l=w(),u=await s(`${n}/chat/completions`,{method:"POST",headers:a(),body:JSON.stringify(d),signal:c?.signal});if(!u.ok)throw await O(u,t);let p=await u.json(),f=Math.max(0,(w()-l)/1e6);return Pt(p,f,t)},async*stream(o,c){let d=he(o,c,e.model,!0,e.bodyExtras),l=await s(`${n}/chat/completions`,{method:"POST",headers:{...a(),accept:"text/event-stream"},body:JSON.stringify(d),signal:c?.signal});if(!l.ok)throw await O(l,t);if(!l.body)throw new Error(`openAICompatAdapter[${t}]: streaming response has no body`);let u,p;for await(let f of K(l.body,{signal:c?.signal})){if(!f.data||f.data==="[DONE]")continue;let y;try{y=JSON.parse(f.data)}catch{continue}let h=y.choices;if(h){let m=h[0];if(m?.delta?.content&&(yield{type:"token",delta:m.delta.content}),m?.delta?.reasoning_content&&(yield{type:"thinking",delta:m.delta.reasoning_content}),m?.delta?.tool_calls)for(let g of m.delta.tool_calls)yield{type:"tool-call-delta",delta:{id:g.id,name:g.function?.name,argumentsDelta:g.function?.arguments}};m?.finish_reason&&(p=m.finish_reason)}y.usage&&(u=y.usage,yield{type:"usage",usage:Be(u)})}yield{type:"finish",reason:p??"stop"}}}}function Ln(e){let t=e.sdk;if(!t)throw new Error("sdkBackedOpenAI: sdk instance required");let{provider:n}=It(e);return{provider:n,model:e.model,async invoke(r,s){let i=he(r,s,e.model,!1,e.bodyExtras),a=w(),o=await t.chat.completions.create(i,{signal:s?.signal}),c=Math.max(0,(w()-a)/1e6);return Pt(o,c,n)},async*stream(r,s){let i=he(r,s,e.model,!0,e.bodyExtras),a=await t.chat.completions.create(i,{signal:s?.signal}),o,c;for await(let d of a){let l=d.choices;if(l){let p=l[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&&(c=p.finish_reason)}let u=d.usage;u&&(o=u,yield{type:"usage",usage:Be(u)})}yield{type:"finish",reason:c??"stop"}}}}function He(e){switch(e.provider){case"anthropic":{let t={apiKey:e.apiKey,model:e.model,baseURL:e.baseURL,headers:e.headers,sdk:e.sdk,fetchImpl:e.fetchImpl,...e.extras};return yt(t)}case"google":{let t={apiKey:e.apiKey,model:e.model,baseURL:e.baseURL,headers:e.headers,sdk:e.sdk,fetchImpl:e.fetchImpl,...e.extras};return Ct(t)}case"dry-run":{let t={model:e.model,...e.extras};return pe(t)}case"fallback":{let t={provider:e.provider,model:e.model,...e.extras};return Nt(t)}case"openai":case"openrouter":case"groq":case"ollama":case"deepseek":case"xai":{let t={preset:e.provider,apiKey:e.apiKey,model:e.model,baseURL:e.baseURL,headers:e.headers,bodyExtras:e.bodyExtras,sdk:e.sdk,fetchImpl:e.fetchImpl,...e.extras};return Ot(t)}default:{let t=e.provider;throw new Error(`createAdapter: unknown provider: ${String(t)}`)}}}ht();ce();var ye=class extends Error{name="AllTiersExhaustedError";skipped;failed;constructor(t){let n=[];t.failed.size>0&&n.push(`failed=[${[...t.failed.keys()].join(",")}]`),t.skipped.length>0&&n.push(`skipped=[${t.skipped.map(r=>`${r.name}(${r.reason})`).join(",")}]`),super(`All LLM adapter tiers exhausted: ${n.join(" ")}`),this.skipped=t.skipped,this.failed=t.failed}};function be(e,t={}){if(e.length===0)throw new RangeError("cascadingLlmAdapter: tiers must be non-empty");let n=e.map(i=>({name:i.name,adapter:i.adapter,filter:i.filter,breaker:i.breaker?"canExecute"in i.breaker?i.breaker:gt(i.breaker):void 0})),r=t.streamRetryBeforeFirstChunk??!0,s={provider:"cascading",model:void 0,async invoke(i,a){let o=[],c=new Map;for(let l=0;l<n.length;l++){let u=n[l];if(u.filter&&!u.filter(i,a)){o.push({name:u.name,reason:"filter"});continue}if(u.breaker&&!u.breaker.canExecute()){o.push({name:u.name,reason:"breaker"});continue}try{let p=await G(Y(u.adapter.invoke(i,a)));return u.breaker?.recordSuccess(),{...p,metadata:{...p.metadata??{},tier:u.name}}}catch(p){c.set(u.name,p),u.breaker?.recordFailure(p);let f=n[l+1];f&&t.onFallback?.(u.name,f.name,p)}}let d={skipped:o,failed:c};throw t.onExhausted?.(d),new ye(d)},async*stream(i,a){let o=[],c=new Map;for(let l=0;l<n.length;l++){let u=n[l];if(u.filter&&!u.filter(i,a)){o.push({name:u.name,reason:"filter"});continue}if(u.breaker&&!u.breaker.canExecute()){o.push({name:u.name,reason:"breaker"});continue}let p=!1;try{for await(let f of u.adapter.stream(i,a))p=!0,yield f;u.breaker?.recordSuccess();return}catch(f){if(c.set(u.name,f),u.breaker?.recordFailure(f),p||!r)throw f;let y=n[l+1];y&&t.onFallback?.(u.name,y.name,f)}}let d={skipped:o,failed:c};throw t.onExhausted?.(d),new ye(d)}};return me(s,`cascade[${n.map(i=>i.name).join(",")}]`),s}function On(e){let t=[{name:"cloud",adapter:He(e.cloud)}];return e.webllmModel&&t.push({name:"webllm",adapter:q({model:e.webllmModel})}),e.chromeNano!==!1&&t.push({name:"chrome-nano",adapter:z(),filter:(n,r)=>!r?.tools||r.tools.length===0}),be(t,e.cascade)}function Pn(e){let t=[{name:"ollama",adapter:He({provider:"ollama",model:e.ollamaModel,baseURL:e.ollamaBaseURL})}];return e.webllmModel&&t.push({name:"webllm",adapter:q({model:e.webllmModel})}),e.chromeNano!==!1&&t.push({name:"chrome-nano",adapter:z(),filter:(n,r)=>!r?.tools||r.tools.length===0}),be(t,e.cascade)}function In(e){let t=[{name:"webllm",adapter:q({model:e.webllmModel})}];return e.chromeNano!==!1&&t.push({name:"chrome-nano",adapter:z(),filter:(n,r)=>!r?.tools||r.tools.length===0}),be(t,e.cascade)}0&&(module.exports={chromeNanoAdapter,cloudFirstPreset,localFirstPreset,offlinePreset,webllmAdapter});
|
|
8
|
+
`)}]});let i={};return t?.maxTokens!=null&&(i.maxOutputTokens=t.maxTokens),t?.temperature!=null&&(i.temperature=t.temperature),t?.maxReasoningTokens!=null&&(i.thinkingConfig={thinkingBudget:t.maxReasoningTokens}),Object.keys(i).length>0&&(s.generationConfig=i),t?.tools&&t.tools.length>0&&(s.tools=[{functionDeclarations:t.tools.map(_n)}]),t?.providerExtras&&Object.assign(s,t.providerExtras),s}function _n(e){return{name:e.name,description:e.description,parameters:e.parameters}}function Ct(e,t,n){let r={},s=e.generationConfig;s&&(typeof s.maxOutputTokens=="number"&&(r.maxOutputTokens=s.maxOutputTokens),typeof s.temperature=="number"&&(r.temperature=s.temperature),s.thinkingConfig&&(r.thinkingConfig=s.thinkingConfig)),e.systemInstruction&&(r.systemInstruction=e.systemInstruction),e.tools&&(r.tools=e.tools);for(let[i,a]of Object.entries(e))i==="contents"||i==="generationConfig"||i==="systemInstruction"||i==="tools"||i==="abortSignal"||i==="model"||(r[i]=a);return n&&(r.abortSignal=n),{model:t,contents:e.contents,config:Object.keys(r).length>0?r:void 0}}function Ue(e){let t={input:{regular:0},output:{regular:0},raw:e};if(!e)return t;let n=e.promptTokenCount??0,r=e.cachedContentTokenCount??0;if(t.input.regular=Math.max(0,n-r),r>0&&(t.input.cacheRead=r),e.toolUsePromptTokenCount&&(t.input.toolUse=e.toolUsePromptTokenCount),e.promptTokensDetails)for(let s of e.promptTokensDetails){let i=s.modality?.toLowerCase();i==="image"?t.input.image=(t.input.image??0)+s.tokenCount:i==="audio"?t.input.audio=(t.input.audio??0)+s.tokenCount:i==="video"&&(t.input.video=(t.input.video??0)+s.tokenCount)}return t.output.regular=e.candidatesTokenCount??0,e.thoughtsTokenCount&&(t.output.reasoning=e.thoughtsTokenCount),t}function Ot(e,t){let n=e.candidates?.[0],r=n?.content?.parts??[],s=[],i=[],a=0;for(let o of r)typeof o.text=="string"&&s.push(o.text),o.functionCall&&i.push({id:`${o.functionCall.name}-${a++}`,name:o.functionCall.name,arguments:o.functionCall.args??{}});return{content:s.join(""),toolCalls:i.length>0?i:void 0,usage:Ue(e.usageMetadata),finishReason:n?.finishReason,latencyMs:t,model:e.modelVersion,provider:"google"}}function Sn(e){if(e.apiKey)return e.apiKey;let t=globalThis.process?.env;return t?.GOOGLE_API_KEY??t?.GEMINI_API_KEY}function An(e){let t=e.baseURL??"https://generativelanguage.googleapis.com/v1beta",n=e.fetchImpl??fetch,r=i=>{let a=i?.model??e.model;if(!a)throw new Error("googleAdapter: model must be set via options.model or invokeOpts.model");return a},s=()=>{let i=Sn(e);if(!i)throw new Error("googleAdapter: apiKey required for invoke/stream");return`key=${encodeURIComponent(i)}`};return{provider:"google",model:e.model,async invoke(i,a){let o=r(a),c=ge(i,a),d=w(),u=`${t}/models/${encodeURIComponent(o)}:generateContent?${s()}`,l=await n(u,{method:"POST",headers:{"content-type":"application/json",...e.headers??{}},body:JSON.stringify(c),signal:a?.signal});if(!l.ok)throw await O(l,"Google");let p=await l.json(),f=Math.max(0,(w()-d)/1e6);return Ot(p,f)},async*stream(i,a){let o=r(a),c=ge(i,a),d=`${t}/models/${encodeURIComponent(o)}:streamGenerateContent?alt=sse&${s()}`,u=await n(d,{method:"POST",headers:{"content-type":"application/json",accept:"text/event-stream",...e.headers??{}},body:JSON.stringify(c),signal:a?.signal});if(!u.ok)throw await O(u,"Google");if(!u.body)throw new Error("googleAdapter: streaming response has no body");let l,p;for await(let f of K(u.body,{signal:a?.signal})){if(!f.data)continue;let h;try{h=JSON.parse(f.data)}catch{continue}let y=h.candidates?.[0];for(let m of y?.content?.parts??[])typeof m.text=="string"&&(m.thought?yield{type:"thinking",delta:m.text}:yield{type:"token",delta:m.text}),m.functionCall&&(yield{type:"tool-call-delta",delta:{name:m.functionCall.name,argumentsDelta:JSON.stringify(m.functionCall.args??{})}});y?.finishReason&&(p=y.finishReason),h.usageMetadata&&(l=h.usageMetadata)}l&&(yield{type:"usage",usage:Ue(l)}),yield{type:"finish",reason:p??"stop"}}}}function En(e){let t=e.sdk;if(!t)throw new Error("sdkBackedGoogle: sdk instance required");return{provider:"google",model:e.model,async invoke(n,r){let s=ge(n,r),i=r?.model??e.model;if(!i)throw new Error("googleAdapter: model required");let a=Ct(s,i,r?.signal),o=w(),c=await t.models.generateContent(a),d=Math.max(0,(w()-o)/1e6);return Ot(c,d)},async*stream(n,r){if(!t.models.generateContentStream)throw new Error("sdkBackedGoogle: SDK instance does not expose generateContentStream");let s=ge(n,r),i=r?.model??e.model;if(!i)throw new Error("googleAdapter: model required");let a=Ct(s,i,r?.signal),o,c,d=await t.models.generateContentStream(a);for await(let u of d){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&&(c=l.finishReason),u.usageMetadata&&(o=u.usageMetadata)}o&&(yield{type:"usage",usage:Ue(o)}),yield{type:"finish",reason:c??"stop"}}}}L();var Rn={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 Pt(e={}){return e.sdk?On(e):Ln(e)}function he(e,t,n,r,s){let i=t?.model??n;if(!i)throw new Error("openAICompatAdapter: model must be set via options.model or invokeOpts.model");let a=e.map(Mn);t?.systemPrompt&&!e.some(c=>c.role==="system")&&a.unshift({role:"system",content:t.systemPrompt});let o={model:i,messages:a};return t?.maxTokens!=null&&(o.max_tokens=t.maxTokens),t?.temperature!=null&&(o.temperature=t.temperature),t?.tools&&t.tools.length>0&&(o.tools=t.tools.map(Nn)),t?.maxReasoningTokens!=null&&(o.reasoning={max_tokens:t.maxReasoningTokens}),r&&(o.stream=!0,o.stream_options={include_usage:!0}),s&&Object.assign(o,s),t?.providerExtras&&Object.assign(o,t.providerExtras),o}function Mn(e){return e.role==="tool"?{role:"tool",tool_call_id:e.toolCallId,content:e.content}:e.role==="assistant"&&e.toolCalls&&e.toolCalls.length>0?{role:"assistant",content:e.content||null,tool_calls:e.toolCalls.map(t=>({id:t.id,type:"function",function:{name:t.name,arguments:JSON.stringify(t.arguments)}}))}:{role:e.role,content:e.content}}function Nn(e){return{type:"function",function:{name:e.name,description:e.description,parameters:e.parameters}}}function Be(e){let t={input:{regular:0},output:{regular:0},raw:e};if(!e)return t;let n=e.prompt_tokens??0,r=e.prompt_tokens_details?.cached_tokens??0;e.prompt_cache_hit_tokens!=null?(r=e.prompt_cache_hit_tokens,t.input.regular=e.prompt_cache_miss_tokens??Math.max(0,n-r)):t.input.regular=Math.max(0,n-r),r>0&&(t.input.cacheRead=r),e.prompt_tokens_details?.audio_tokens&&(t.input.audio=e.prompt_tokens_details.audio_tokens);let s=e.completion_tokens??0,i=e.completion_tokens_details?.reasoning_tokens??0;return t.output.regular=Math.max(0,s-i),i>0&&(t.output.reasoning=i),e.completion_tokens_details?.audio_tokens&&(t.output.audio=e.completion_tokens_details.audio_tokens),e.completion_tokens_details?.accepted_prediction_tokens&&(t.output.predictionAccepted=e.completion_tokens_details.accepted_prediction_tokens),e.completion_tokens_details?.rejected_prediction_tokens&&(t.output.predictionRejected=e.completion_tokens_details.rejected_prediction_tokens),t}function It(e,t,n){let r=e.choices[0],s=r?.message,i=s?.content??"",a=(s?.tool_calls??[]).map(o=>({id:o.id,name:o.function.name,arguments:Cn(o.function.arguments)}));return{content:i,toolCalls:a.length>0?a:void 0,usage:Be(e.usage),finishReason:r?.finish_reason,latencyMs:t,model:e.model,provider:n}}function Cn(e){try{let t=JSON.parse(e);return typeof t=="object"&&t!=null?t:{_raw:e}}catch{return{_raw:e}}}function Ft(e){let t=e.preset??"openai",n=Rn[t],r=e.baseURL??n.baseURL,s=e.provider??n.provider,i=n.apiKeyEnv,a=e.apiKey??(i?globalThis.process?.env?.[i]:void 0);return{provider:s,baseURL:r,apiKey:a}}function Ln(e){let{provider:t,baseURL:n,apiKey:r}=Ft(e),s=e.fetchImpl??fetch,i=t!=="ollama",a=()=>{let o={"content-type":"application/json",...e.headers??{}};if(i){if(!r)throw new Error(`openAICompatAdapter[${t}]: apiKey required for invoke/stream`);o.authorization=`Bearer ${r}`}return o};return{provider:t,model:e.model,async invoke(o,c){let d=he(o,c,e.model,!1,e.bodyExtras),u=w(),l=await s(`${n}/chat/completions`,{method:"POST",headers:a(),body:JSON.stringify(d),signal:c?.signal});if(!l.ok)throw await O(l,t);let p=await l.json(),f=Math.max(0,(w()-u)/1e6);return It(p,f,t)},async*stream(o,c){let d=he(o,c,e.model,!0,e.bodyExtras),u=await s(`${n}/chat/completions`,{method:"POST",headers:{...a(),accept:"text/event-stream"},body:JSON.stringify(d),signal:c?.signal});if(!u.ok)throw await O(u,t);if(!u.body)throw new Error(`openAICompatAdapter[${t}]: streaming response has no body`);let l,p;for await(let f of K(u.body,{signal:c?.signal})){if(!f.data||f.data==="[DONE]")continue;let h;try{h=JSON.parse(f.data)}catch{continue}let y=h.choices;if(y){let m=y[0];if(m?.delta?.content&&(yield{type:"token",delta:m.delta.content}),m?.delta?.reasoning_content&&(yield{type:"thinking",delta:m.delta.reasoning_content}),m?.delta?.tool_calls)for(let g of m.delta.tool_calls)yield{type:"tool-call-delta",delta:{id:g.id,name:g.function?.name,argumentsDelta:g.function?.arguments}};m?.finish_reason&&(p=m.finish_reason)}h.usage&&(l=h.usage,yield{type:"usage",usage:Be(l)})}yield{type:"finish",reason:p??"stop"}}}}function On(e){let t=e.sdk;if(!t)throw new Error("sdkBackedOpenAI: sdk instance required");let{provider:n}=Ft(e);return{provider:n,model:e.model,async invoke(r,s){let i=he(r,s,e.model,!1,e.bodyExtras),a=w(),o=await t.chat.completions.create(i,{signal:s?.signal}),c=Math.max(0,(w()-a)/1e6);return It(o,c,n)},async*stream(r,s){let i=he(r,s,e.model,!0,e.bodyExtras),a=await t.chat.completions.create(i,{signal:s?.signal}),o,c;for await(let d of a){let u=d.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&&(c=p.finish_reason)}let l=d.usage;l&&(o=l,yield{type:"usage",usage:Be(l)})}yield{type:"finish",reason:c??"stop"}}}}function He(e){switch(e.provider){case"anthropic":{let t={apiKey:e.apiKey,model:e.model,baseURL:e.baseURL,headers:e.headers,sdk:e.sdk,fetchImpl:e.fetchImpl,...e.extras};return yt(t)}case"google":{let t={apiKey:e.apiKey,model:e.model,baseURL:e.baseURL,headers:e.headers,sdk:e.sdk,fetchImpl:e.fetchImpl,...e.extras};return Lt(t)}case"dry-run":{let t={model:e.model,...e.extras};return pe(t)}case"fallback":{let t={provider:e.provider,model:e.model,...e.extras};return Nt(t)}case"openai":case"openrouter":case"groq":case"ollama":case"deepseek":case"xai":{let t={preset:e.provider,apiKey:e.apiKey,model:e.model,baseURL:e.baseURL,headers:e.headers,bodyExtras:e.bodyExtras,sdk:e.sdk,fetchImpl:e.fetchImpl,...e.extras};return Pt(t)}default:{let t=e.provider;throw new Error(`createAdapter: unknown provider: ${String(t)}`)}}}ht();ce();var ye=class extends Error{name="AllTiersExhaustedError";skipped;failed;constructor(t){let n=[];t.failed.size>0&&n.push(`failed=[${[...t.failed.keys()].join(",")}]`),t.skipped.length>0&&n.push(`skipped=[${t.skipped.map(r=>`${r.name}(${r.reason})`).join(",")}]`),super(`All LLM adapter tiers exhausted: ${n.join(" ")}`),this.skipped=t.skipped,this.failed=t.failed}};function be(e,t={}){if(e.length===0)throw new RangeError("cascadingLlmAdapter: tiers must be non-empty");let n=e.map(i=>({name:i.name,adapter:i.adapter,filter:i.filter,breaker:i.breaker?"canExecute"in i.breaker?i.breaker:gt(i.breaker):void 0})),r=t.streamRetryBeforeFirstChunk??!0,s={provider:"cascading",model:void 0,async invoke(i,a){let o=[],c=new Map;for(let u=0;u<n.length;u++){let l=n[u];if(l.filter&&!l.filter(i,a)){o.push({name:l.name,reason:"filter"});continue}if(l.breaker&&!l.breaker.canExecute()){o.push({name:l.name,reason:"breaker"});continue}try{let p=await j(Y(l.adapter.invoke(i,a)));return l.breaker?.recordSuccess(),{...p,metadata:{...p.metadata??{},tier:l.name}}}catch(p){c.set(l.name,p),l.breaker?.recordFailure(p);let f=n[u+1];f&&t.onFallback?.(l.name,f.name,p)}}let d={skipped:o,failed:c};throw t.onExhausted?.(d),new ye(d)},async*stream(i,a){let o=[],c=new Map;for(let u=0;u<n.length;u++){let l=n[u];if(l.filter&&!l.filter(i,a)){o.push({name:l.name,reason:"filter"});continue}if(l.breaker&&!l.breaker.canExecute()){o.push({name:l.name,reason:"breaker"});continue}let p=!1;try{for await(let f of l.adapter.stream(i,a))p=!0,yield f;l.breaker?.recordSuccess();return}catch(f){if(c.set(l.name,f),l.breaker?.recordFailure(f),p||!r)throw f;let h=n[u+1];h&&t.onFallback?.(l.name,h.name,f)}}let d={skipped:o,failed:c};throw t.onExhausted?.(d),new ye(d)}};return me(s,`cascade[${n.map(i=>i.name).join(",")}]`),s}function Pn(e){let t=[{name:"cloud",adapter:He(e.cloud)}];return e.webllmModel&&t.push({name:"webllm",adapter:z({model:e.webllmModel})}),e.chromeNano!==!1&&t.push({name:"chrome-nano",adapter:q(),filter:(n,r)=>!r?.tools||r.tools.length===0}),be(t,e.cascade)}function In(e){let t=[{name:"ollama",adapter:He({provider:"ollama",model:e.ollamaModel,baseURL:e.ollamaBaseURL})}];return e.webllmModel&&t.push({name:"webllm",adapter:z({model:e.webllmModel})}),e.chromeNano!==!1&&t.push({name:"chrome-nano",adapter:q(),filter:(n,r)=>!r?.tools||r.tools.length===0}),be(t,e.cascade)}function Fn(e){let t=[{name:"webllm",adapter:z({model:e.webllmModel})}];return e.chromeNano!==!1&&t.push({name:"chrome-nano",adapter:q(),filter:(n,r)=>!r?.tools||r.tools.length===0}),be(t,e.cascade)}0&&(module.exports={chromeNanoAdapter,cloudFirstPreset,localFirstPreset,offlinePreset,webllmAdapter});
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { L as LLMAdapter } from '../../types-
|
|
2
|
-
import { c as createAdapter, C as CascadingLlmAdapterOptions } from '../../cascading-
|
|
3
|
-
import '../../node-
|
|
1
|
+
import { L as LLMAdapter } from '../../types-Cp_4coR_.cjs';
|
|
2
|
+
import { c as createAdapter, C as CascadingLlmAdapterOptions } from '../../cascading-DKIb6Pk8.cjs';
|
|
3
|
+
import '../../node-8qx0kgYt.cjs';
|
|
4
4
|
import '../../extra/sources.cjs';
|
|
5
|
-
import '../../resilience-
|
|
5
|
+
import '../../resilience-N_VtLf7W.cjs';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* ChromeNanoAdapter — Chrome Built-in AI Prompt API.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { L as LLMAdapter } from '../../types-
|
|
2
|
-
import { c as createAdapter, C as CascadingLlmAdapterOptions } from '../../cascading-
|
|
3
|
-
import '../../node-
|
|
1
|
+
import { L as LLMAdapter } from '../../types-B2LfBvNc.js';
|
|
2
|
+
import { c as createAdapter, C as CascadingLlmAdapterOptions } from '../../cascading-Bg0a4VSf.js';
|
|
3
|
+
import '../../node-8qx0kgYt.js';
|
|
4
4
|
import '../../extra/sources.js';
|
|
5
|
-
import '../../resilience-
|
|
5
|
+
import '../../resilience-RjDIHZNZ.js';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* ChromeNanoAdapter — Chrome Built-in AI Prompt API.
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{d as y,f}from"../../chunk-
|
|
1
|
+
import{d as y,f}from"../../chunk-KN2UMFT6.js";import"../../chunk-2LZ6DL45.js";import"../../chunk-LOF5HSD3.js";import"../../chunk-FKRPIRE6.js";import"../../chunk-7Q2WPFQ7.js";import"../../chunk-SGS4OJGS.js";import"../../chunk-ESMPEKEV.js";import"../../chunk-I6VIH3VA.js";import"../../chunk-4F564IPP.js";import"../../chunk-4VVTGLXJ.js";import"../../chunk-T7EQPKOP.js";import{o as p}from"../../chunk-LYCLF26R.js";import"../../chunk-CK2E7BTU.js";import"../../chunk-QYADASLV.js";function L(){let e=new Error("aborted");return e.name="AbortError",e}function h(e={}){let r=e.streamMode??"accumulated",d=e.navigatorOverride??globalThis.navigator,i=()=>{let a=d?.ai;if(!a?.languageModel)throw new Error("chromeNanoAdapter: Chrome AI languageModel not available (requires Chrome 131+ with flag/OT).");return a},g=async a=>i().languageModel.create({systemPrompt:a?.systemPrompt??e.systemPrompt,temperature:a?.temperature??e.temperature,topK:e.topK,signal:a?.signal}),l=a=>{let n=[];for(let o of a)o.role!=="system"&&n.push(`${o.role}: ${o.content}`);return n.join(`
|
|
2
2
|
|
|
3
3
|
`)},t=()=>({input:{regular:0},output:{regular:0}});return{provider:"chrome-nano",model:"chrome-nano",async invoke(a,n){let o=await g(n);try{let c=l(a),s=p(),m=await o.prompt(c,{signal:n?.signal}),u=Math.max(0,(p()-s)/1e6);return{content:m,usage:t(),finishReason:"stop",latencyMs:u,model:"chrome-nano",provider:"chrome-nano"}}finally{o.destroy?.()}},async*stream(a,n){let o=await g(n);try{let c=l(a);if(r==="delta")for await(let s of o.promptStreaming(c,{signal:n?.signal})){if(n?.signal?.aborted)throw L();s&&(yield{type:"token",delta:s})}else{let s="";for await(let m of o.promptStreaming(c,{signal:n?.signal})){if(n?.signal?.aborted)throw L();let u=m.startsWith(s)?m.slice(s.length):m;s=m,u&&(yield{type:"token",delta:u})}}yield{type:"usage",usage:t()},yield{type:"finish",reason:"stop"}}finally{o.destroy?.()}}}}function A(){let e=new Error("aborted");return e.name="AbortError",e}function b(e){let r=e.engine,d=async()=>{if(r)return r;if(!w(e.navigatorOverride))throw new Error("webllmAdapter: WebGPU not available in this environment");let t=(await import("@mlc-ai/web-llm").catch(()=>{throw new Error("webllmAdapter: @mlc-ai/web-llm not installed. Add it as a peer dependency or pass opts.engine.")})).CreateMLCEngine;if(!t)throw new Error("webllmAdapter: @mlc-ai/web-llm missing CreateMLCEngine export");return r=await t(e.model,{initProgressCallback:e.initProgressCallback}),r},i=(l,t)=>{let a=[];t?.systemPrompt&&a.push({role:"system",content:t.systemPrompt});for(let n of l)a.push({role:n.role==="tool"?"user":n.role,content:n.content});return a},g=l=>({input:{regular:l?.prompt_tokens??0},output:{regular:l?.completion_tokens??0},raw:l});return{provider:"webllm",model:e.model,async invoke(l,t){let a=await d(),n=p(),o=await a.chat.completions.create({model:t?.model??e.model,messages:i(l,t),max_tokens:t?.maxTokens,temperature:t?.temperature},{signal:t?.signal}),c=Math.max(0,(p()-n)/1e6),s=o.choices?.[0];return{content:s?.message?.content??"",usage:g(o.usage),finishReason:s?.finish_reason,latencyMs:c,model:e.model,provider:"webllm"}},async*stream(l,t){let n=await(await d()).chat.completions.create({model:t?.model??e.model,messages:i(l,t),max_tokens:t?.maxTokens,temperature:t?.temperature,stream:!0},{signal:t?.signal}),o,c;for await(let s of n){if(t?.signal?.aborted)throw A();let m=s.choices?.[0];m?.delta?.content&&(yield{type:"token",delta:m.delta.content}),m?.finish_reason&&(c=m.finish_reason),s.usage&&(o=s.usage)}o&&(yield{type:"usage",usage:g(o)}),yield{type:"finish",reason:c??"stop"}}}}function w(e){let r=e??globalThis.navigator;return!!(r&&"gpu"in r&&r.gpu)}function N(e){let r=[{name:"cloud",adapter:y(e.cloud)}];return e.webllmModel&&r.push({name:"webllm",adapter:b({model:e.webllmModel})}),e.chromeNano!==!1&&r.push({name:"chrome-nano",adapter:h(),filter:(d,i)=>!i?.tools||i.tools.length===0}),f(r,e.cascade)}function S(e){let r=[{name:"ollama",adapter:y({provider:"ollama",model:e.ollamaModel,baseURL:e.ollamaBaseURL})}];return e.webllmModel&&r.push({name:"webllm",adapter:b({model:e.webllmModel})}),e.chromeNano!==!1&&r.push({name:"chrome-nano",adapter:h(),filter:(d,i)=>!i?.tools||i.tools.length===0}),f(r,e.cascade)}function R(e){let r=[{name:"webllm",adapter:b({model:e.webllmModel})}];return e.chromeNano!==!1&&r.push({name:"chrome-nano",adapter:h(),filter:(d,i)=>!i?.tools||i.tools.length===0}),f(r,e.cascade)}export{h as chromeNanoAdapter,N as cloudFirstPreset,S as localFirstPreset,R as offlinePreset,b as webllmAdapter};
|