@logixjs/core 0.0.1 → 1.0.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/LICENSE +201 -0
- package/dist/{Action-mqVvtEHt.d.ts → Action-DYl88bwj.d.ts} +1 -1
- package/dist/{Action-BkRHy2vg.d.cts → Action-DkxsI_DK.d.cts} +1 -1
- package/dist/Action.cjs.map +1 -1
- package/dist/Action.d.cts +1 -1
- package/dist/Action.d.ts +1 -1
- package/dist/Action.js +2 -2
- package/dist/{Actions-AsQ07yTP.d.cts → Actions-Dicm7jdc.d.cts} +2 -2
- package/dist/{Actions-AsQ07yTP.d.ts → Actions-Dicm7jdc.d.ts} +2 -2
- package/dist/Actions.cjs.map +1 -1
- package/dist/Actions.d.cts +1 -1
- package/dist/Actions.d.ts +1 -1
- package/dist/Actions.js +1 -1
- package/dist/{Bound-BN1DQ_lM.d.ts → Bound-1OJLzVIS.d.ts} +2 -2
- package/dist/{Bound-BPIfH9SS.d.cts → Bound-BMLrtQ1V.d.cts} +2 -2
- package/dist/Bound.cjs +1737 -399
- package/dist/Bound.cjs.map +1 -1
- package/dist/Bound.d.cts +5 -5
- package/dist/Bound.d.ts +5 -5
- package/dist/Bound.js +19 -17
- package/dist/{Debug-B5q5Bkzx.d.ts → Debug-DKrWP5H1.d.ts} +40 -22
- package/dist/{Debug-Bq8Sqjcr.d.cts → Debug-hIT44XsY.d.cts} +40 -22
- package/dist/Debug.cjs +1348 -318
- package/dist/Debug.cjs.map +1 -1
- package/dist/Debug.d.cts +12 -11
- package/dist/Debug.d.ts +12 -11
- package/dist/Debug.js +20 -11
- package/dist/EffectOp.cjs +15 -6
- package/dist/EffectOp.cjs.map +1 -1
- package/dist/EffectOp.js +3 -3
- package/dist/Env.cjs +772 -6
- package/dist/Env.cjs.map +1 -1
- package/dist/Env.js +5 -2
- package/dist/ExternalStore-DqJKKRJ4.d.ts +61 -0
- package/dist/ExternalStore-JC-gAgEI.d.cts +61 -0
- package/dist/ExternalStore.cjs +774 -0
- package/dist/ExternalStore.cjs.map +1 -0
- package/dist/ExternalStore.d.cts +8 -0
- package/dist/ExternalStore.d.ts +8 -0
- package/dist/ExternalStore.js +19 -0
- package/dist/ExternalStore.js.map +1 -0
- package/dist/{Flow-BhpjE22E.d.ts → Flow-CZmXRDqp.d.cts} +13 -4
- package/dist/{Flow-1fZT8MpX.d.cts → Flow-DIVDxz7R.d.ts} +13 -4
- package/dist/Flow.cjs +765 -148
- package/dist/Flow.cjs.map +1 -1
- package/dist/Flow.d.cts +6 -6
- package/dist/Flow.d.ts +6 -6
- package/dist/Flow.js +9 -8
- package/dist/{Handle-D_cLW1Z3.d.ts → Handle-Bo6cAFut.d.ts} +1 -1
- package/dist/{Handle-D8D1zPb_.d.cts → Handle-CfDvSqN7.d.cts} +1 -1
- package/dist/Handle.d.cts +5 -5
- package/dist/Handle.d.ts +5 -5
- package/dist/{Kernel-8kC-jOda.d.cts → Kernel-CuXBF9S_.d.cts} +16 -7
- package/dist/{Kernel-CnGE1Fyk.d.ts → Kernel-D9guNwRL.d.ts} +16 -7
- package/dist/Kernel.cjs +814 -26
- package/dist/Kernel.cjs.map +1 -1
- package/dist/Kernel.d.cts +13 -12
- package/dist/Kernel.d.ts +13 -12
- package/dist/Kernel.js +7 -4
- package/dist/{Link-Db7975nU.d.ts → Link-CUM0yUCH.d.ts} +10 -3
- package/dist/{Link-fX8x1eCK.d.cts → Link-NAfR6uGD.d.cts} +10 -3
- package/dist/Link.cjs +1294 -121
- package/dist/Link.cjs.map +1 -1
- package/dist/Link.d.cts +5 -5
- package/dist/Link.d.ts +5 -5
- package/dist/Link.js +37 -29
- package/dist/{Logic-DRh4sDZj.d.cts → Logic-09VQpIj3.d.cts} +7 -4
- package/dist/{Logic-BRjEMr-W.d.ts → Logic-DKg7ghGy.d.ts} +7 -4
- package/dist/Logic.cjs +2 -1
- package/dist/Logic.cjs.map +1 -1
- package/dist/Logic.d.cts +5 -5
- package/dist/Logic.d.ts +5 -5
- package/dist/Logic.js +1 -1
- package/dist/{MatchBuilder-CJk5oCkR.d.cts → MatchBuilder-CsW5jgrL.d.ts} +1 -1
- package/dist/{MatchBuilder-0QOc-nlU.d.ts → MatchBuilder-Dksk07F4.d.cts} +1 -1
- package/dist/MatchBuilder.cjs +2 -2
- package/dist/MatchBuilder.cjs.map +1 -1
- package/dist/MatchBuilder.d.cts +6 -6
- package/dist/MatchBuilder.d.ts +6 -6
- package/dist/MatchBuilder.js +2 -2
- package/dist/Middleware-D8tUDLv_.d.cts +100 -0
- package/dist/Middleware-DS7CbTTN.d.ts +100 -0
- package/dist/Middleware.cjs +678 -58
- package/dist/Middleware.cjs.map +1 -1
- package/dist/Middleware.d.cts +2 -86
- package/dist/Middleware.d.ts +2 -86
- package/dist/Middleware.js +15 -12
- package/dist/{Module-DnzluX2J.d.ts → Module-B_Cntyms.d.ts} +54 -25
- package/dist/{Module-B_0xRDMR.d.cts → Module-CmNOVXzf.d.cts} +54 -25
- package/dist/Module.cjs +9331 -3317
- package/dist/Module.cjs.map +1 -1
- package/dist/Module.d.cts +7 -6
- package/dist/Module.d.ts +7 -6
- package/dist/Module.js +39 -31
- package/dist/ModuleTag-CGho_InD.d.ts +113 -0
- package/dist/ModuleTag-CITb8L_G.d.cts +113 -0
- package/dist/ModuleTag.cjs +7248 -2847
- package/dist/ModuleTag.cjs.map +1 -1
- package/dist/ModuleTag.d.cts +6 -6
- package/dist/ModuleTag.d.ts +6 -6
- package/dist/ModuleTag.js +35 -29
- package/dist/Observability-Bdhnx2Dv.d.ts +385 -0
- package/dist/Observability-DXGAFBIT.d.cts +385 -0
- package/dist/Observability.cjs +5093 -1556
- package/dist/Observability.cjs.map +1 -1
- package/dist/Observability.d.cts +6 -7
- package/dist/Observability.d.ts +6 -7
- package/dist/Observability.js +28 -23
- package/dist/{Platform-CHX8o-U4.d.ts → Platform-B4s8tg6C.d.cts} +4 -5
- package/dist/{Platform-C49Pv956.d.cts → Platform-BV_0MW7g.d.cts} +5 -2
- package/dist/{Platform-C49Pv956.d.ts → Platform-BV_0MW7g.d.ts} +5 -2
- package/dist/{Platform-CVlv0xLQ.d.cts → Platform-W0Mefy_e.d.ts} +4 -5
- package/dist/Platform.cjs +2 -1
- package/dist/Platform.cjs.map +1 -1
- package/dist/Platform.d.cts +2 -3
- package/dist/Platform.d.ts +2 -3
- package/dist/Platform.js +2 -2
- package/dist/{Process-CM9xbMdP.d.ts → Process-CO8G7HO9.d.cts} +30 -5
- package/dist/{Process-mL8fHDSB.d.cts → Process-Cyf6VNDR.d.ts} +30 -5
- package/dist/Process.cjs +1288 -120
- package/dist/Process.cjs.map +1 -1
- package/dist/Process.d.cts +6 -6
- package/dist/Process.d.ts +6 -6
- package/dist/Process.js +34 -26
- package/dist/ReadQuery-C_or5nLC.d.ts +128 -0
- package/dist/ReadQuery-DXLzCE0E.d.cts +614 -0
- package/dist/ReadQuery-DXLzCE0E.d.ts +614 -0
- package/dist/ReadQuery-Yve1lmUo.d.cts +128 -0
- package/dist/ReadQuery.cjs +290 -5
- package/dist/ReadQuery.cjs.map +1 -1
- package/dist/ReadQuery.d.cts +3 -2
- package/dist/ReadQuery.d.ts +3 -2
- package/dist/ReadQuery.js +23 -5
- package/dist/{Reflection-CQnKwPXj.d.ts → Reflection-B2Xi1e4Q.d.ts} +89 -7
- package/dist/{Reflection-Kabo1mlU.d.cts → Reflection-DNB4V4_e.d.cts} +89 -7
- package/dist/Reflection.cjs +3227 -1617
- package/dist/Reflection.cjs.map +1 -1
- package/dist/Reflection.d.cts +17 -15
- package/dist/Reflection.d.ts +17 -15
- package/dist/Reflection.js +33 -25
- package/dist/{Resource-Dy1xD_DG.d.cts → Resource-pKvQQ4x5.d.cts} +3 -3
- package/dist/{Resource-Dy1xD_DG.d.ts → Resource-pKvQQ4x5.d.ts} +3 -3
- package/dist/Resource.cjs +781 -15
- package/dist/Resource.cjs.map +1 -1
- package/dist/Resource.d.cts +1 -1
- package/dist/Resource.d.ts +1 -1
- package/dist/Resource.js +6 -3
- package/dist/{Root-7ADUMk4t.d.cts → Root-CCVuFHB6.d.cts} +3 -3
- package/dist/{Root-7ADUMk4t.d.ts → Root-CCVuFHB6.d.ts} +3 -3
- package/dist/Root.cjs +786 -20
- package/dist/Root.cjs.map +1 -1
- package/dist/Root.d.cts +2 -2
- package/dist/Root.d.ts +2 -2
- package/dist/Root.js +7 -3
- package/dist/{Runtime-CtyzZG4i.d.ts → Runtime-CRmvwK4I.d.ts} +70 -14
- package/dist/{Runtime-B-aL-f29.d.cts → Runtime-C_wJM9mN.d.cts} +70 -14
- package/dist/Runtime.cjs +4942 -1601
- package/dist/Runtime.cjs.map +1 -1
- package/dist/Runtime.d.cts +17 -15
- package/dist/Runtime.d.ts +17 -15
- package/dist/Runtime.js +44 -32
- package/dist/{ScopeRegistry-D1owDNSm.d.cts → ScopeRegistry-BhYzqWri.d.cts} +6 -6
- package/dist/{ScopeRegistry-D1owDNSm.d.ts → ScopeRegistry-BhYzqWri.d.ts} +6 -6
- package/dist/ScopeRegistry.cjs +776 -10
- package/dist/ScopeRegistry.cjs.map +1 -1
- package/dist/ScopeRegistry.d.cts +1 -1
- package/dist/ScopeRegistry.d.ts +1 -1
- package/dist/ScopeRegistry.js +6 -3
- package/dist/{State-CU50R26M.d.cts → State-rNFsFPTl.d.cts} +2 -2
- package/dist/{State-CU50R26M.d.ts → State-rNFsFPTl.d.ts} +2 -2
- package/dist/State.cjs.map +1 -1
- package/dist/State.d.cts +1 -1
- package/dist/State.d.ts +1 -1
- package/dist/State.js +1 -1
- package/dist/{StateTrait-BGsZghTz.d.ts → StateTrait-CijdwNb6.d.ts} +25 -8
- package/dist/{StateTrait-OWhbj12c.d.cts → StateTrait-Dltto6PU.d.cts} +25 -8
- package/dist/StateTrait.cjs +1890 -528
- package/dist/StateTrait.cjs.map +1 -1
- package/dist/StateTrait.d.cts +9 -7
- package/dist/StateTrait.d.ts +9 -7
- package/dist/StateTrait.js +18 -14
- package/dist/{TraitLifecycle-CwV5WPFX.d.cts → TraitLifecycle-BKzDqzLu.d.cts} +2 -2
- package/dist/{TraitLifecycle-LdIWmKlg.d.ts → TraitLifecycle-Cvo94uDB.d.ts} +2 -2
- package/dist/TraitLifecycle.cjs +630 -67
- package/dist/TraitLifecycle.cjs.map +1 -1
- package/dist/TraitLifecycle.d.cts +6 -6
- package/dist/TraitLifecycle.d.ts +6 -6
- package/dist/TraitLifecycle.js +8 -7
- package/dist/Workflow-C_OWr4dV.d.ts +415 -0
- package/dist/Workflow-DmydkHO8.d.cts +415 -0
- package/dist/Workflow.cjs +3150 -0
- package/dist/Workflow.cjs.map +1 -0
- package/dist/Workflow.d.cts +7 -0
- package/dist/Workflow.d.ts +7 -0
- package/dist/Workflow.js +58 -0
- package/dist/Workflow.js.map +1 -0
- package/dist/{action-DiMDD_0v.d.cts → action-BQxjPFEw.d.cts} +5 -5
- package/dist/{action-DiMDD_0v.d.ts → action-BQxjPFEw.d.ts} +5 -5
- package/dist/chunk-2XRLXDWR.js +276 -0
- package/dist/chunk-2XRLXDWR.js.map +1 -0
- package/dist/chunk-3L6QGFMM.js +701 -0
- package/dist/chunk-3L6QGFMM.js.map +1 -0
- package/dist/{chunk-GMPEOUP2.js → chunk-4MZ7BT3R.js} +2 -2
- package/dist/chunk-4MZ7BT3R.js.map +1 -0
- package/dist/{chunk-3IYZ5IGG.js → chunk-5WKUGEBY.js} +2 -2
- package/dist/{chunk-3RMKLXHX.js → chunk-63ZQ5RIN.js} +2 -2
- package/dist/{chunk-M3WTHJHJ.js → chunk-67DIEA53.js} +385 -148
- package/dist/chunk-67DIEA53.js.map +1 -0
- package/dist/{chunk-YS3AZQ2G.js → chunk-6HFAW2MH.js} +1 -1
- package/dist/chunk-6HFAW2MH.js.map +1 -0
- package/dist/{chunk-EY4NZKDR.js → chunk-6Y2TKCNY.js} +2 -2
- package/dist/{chunk-76WT3HOR.js → chunk-6YZOXFPQ.js} +25 -24
- package/dist/chunk-6YZOXFPQ.js.map +1 -0
- package/dist/{chunk-G5ZBFPNU.js → chunk-A2RQOJC7.js} +2 -2
- package/dist/{chunk-AUIR5O6W.js → chunk-AFSB6NKM.js} +13 -19
- package/dist/chunk-AFSB6NKM.js.map +1 -0
- package/dist/{chunk-JCXGZRMU.js → chunk-AO4JEOKD.js} +22 -23
- package/dist/chunk-AO4JEOKD.js.map +1 -0
- package/dist/{chunk-TAAPQVZN.js → chunk-AYELIQXR.js} +2 -2
- package/dist/{chunk-QMM6O4CD.js → chunk-BLHZW7DG.js} +15 -3
- package/dist/{chunk-QMM6O4CD.js.map → chunk-BLHZW7DG.js.map} +1 -1
- package/dist/{chunk-TQOBJYDP.js → chunk-CD4N74YC.js} +1 -1
- package/dist/chunk-CD4N74YC.js.map +1 -0
- package/dist/{chunk-ANLBCBDC.js → chunk-CGE2HBTH.js} +11 -11
- package/dist/chunk-CGE2HBTH.js.map +1 -0
- package/dist/{chunk-OFADUJWJ.js → chunk-CYYSQMLO.js} +5 -5
- package/dist/chunk-CYYSQMLO.js.map +1 -0
- package/dist/{chunk-66ALHVEX.js → chunk-EB46EYI7.js} +3 -3
- package/dist/{chunk-NZJKFF45.js → chunk-EKCDHWRK.js} +4 -4
- package/dist/chunk-EKCDHWRK.js.map +1 -0
- package/dist/{chunk-BABLDP24.js → chunk-EPQFNJU3.js} +152 -7
- package/dist/chunk-EPQFNJU3.js.map +1 -0
- package/dist/{chunk-OGWBVHB3.js → chunk-ESR6HGOY.js} +73 -14
- package/dist/chunk-ESR6HGOY.js.map +1 -0
- package/dist/{chunk-NBD3KUOZ.js → chunk-F6RP62H3.js} +150 -98
- package/dist/chunk-F6RP62H3.js.map +1 -0
- package/dist/chunk-FBYW3QDI.js +252 -0
- package/dist/chunk-FBYW3QDI.js.map +1 -0
- package/dist/{chunk-IPF7E66P.js → chunk-FYAODKVP.js} +2 -2
- package/dist/chunk-GNEN7NKO.js +908 -0
- package/dist/chunk-GNEN7NKO.js.map +1 -0
- package/dist/chunk-GWSM4KLB.js +763 -0
- package/dist/chunk-GWSM4KLB.js.map +1 -0
- package/dist/{chunk-4SO6JMZL.js → chunk-HDMXCUZL.js} +1 -1
- package/dist/chunk-HDMXCUZL.js.map +1 -0
- package/dist/{chunk-ZFY7U2FR.js → chunk-HJM5Y5NU.js} +43 -3
- package/dist/chunk-HJM5Y5NU.js.map +1 -0
- package/dist/{chunk-ZGDVUPTM.js → chunk-IOZ3VKPK.js} +129 -68
- package/dist/chunk-IOZ3VKPK.js.map +1 -0
- package/dist/{chunk-PYOE4VSI.js → chunk-IVXSVHO4.js} +303 -247
- package/dist/chunk-IVXSVHO4.js.map +1 -0
- package/dist/chunk-J3CWXIPV.js +242 -0
- package/dist/chunk-J3CWXIPV.js.map +1 -0
- package/dist/chunk-K6JQW266.js +42 -0
- package/dist/chunk-K6JQW266.js.map +1 -0
- package/dist/chunk-KMZYQF6Q.js +202 -0
- package/dist/chunk-KMZYQF6Q.js.map +1 -0
- package/dist/{chunk-JWOYLO27.js → chunk-LPPZDFTD.js} +22 -12
- package/dist/chunk-LPPZDFTD.js.map +1 -0
- package/dist/{chunk-PAYXCY6A.js → chunk-MYB2B5WX.js} +997 -576
- package/dist/chunk-MYB2B5WX.js.map +1 -0
- package/dist/chunk-MYKNINNN.js +228 -0
- package/dist/chunk-MYKNINNN.js.map +1 -0
- package/dist/chunk-NSQIRMVF.js +27 -0
- package/dist/{chunk-QCHIQWAJ.js.map → chunk-NSQIRMVF.js.map} +1 -1
- package/dist/chunk-NUDBM4MM.js +30 -0
- package/dist/chunk-NUDBM4MM.js.map +1 -0
- package/dist/chunk-NZMWWDAY.js +23 -0
- package/dist/chunk-NZMWWDAY.js.map +1 -0
- package/dist/{chunk-RNFE3ML2.js → chunk-OCUV2Y25.js} +4 -3
- package/dist/chunk-OCUV2Y25.js.map +1 -0
- package/dist/chunk-P4ZJOQA7.js +271 -0
- package/dist/chunk-P4ZJOQA7.js.map +1 -0
- package/dist/chunk-P6C5EZ3D.js +342 -0
- package/dist/chunk-P6C5EZ3D.js.map +1 -0
- package/dist/{chunk-CW6T36TN.js → chunk-PBD7BJUN.js} +62 -4
- package/dist/chunk-PBD7BJUN.js.map +1 -0
- package/dist/chunk-PBIUCQY3.js +696 -0
- package/dist/chunk-PBIUCQY3.js.map +1 -0
- package/dist/chunk-PD6YECQH.js +845 -0
- package/dist/chunk-PD6YECQH.js.map +1 -0
- package/dist/{chunk-M7IYCTJV.js → chunk-R4LFQGP3.js} +2 -2
- package/dist/chunk-RHJIGDUE.js +21 -0
- package/dist/chunk-RHJIGDUE.js.map +1 -0
- package/dist/{chunk-KP7MUZNX.js → chunk-RLXO27MW.js} +30 -8
- package/dist/chunk-RLXO27MW.js.map +1 -0
- package/dist/{chunk-DFNM3WX2.js → chunk-S44BEV4B.js} +168 -45
- package/dist/chunk-S44BEV4B.js.map +1 -0
- package/dist/chunk-S4S5N4BJ.js +1461 -0
- package/dist/chunk-S4S5N4BJ.js.map +1 -0
- package/dist/{chunk-BZ2SHDN2.js → chunk-SGTRAXXX.js} +3 -3
- package/dist/chunk-SGTRAXXX.js.map +1 -0
- package/dist/{chunk-M2RGJPXX.js → chunk-SJAE5PB5.js} +3 -3
- package/dist/{chunk-JGIWG6SR.js → chunk-SNPNHU3H.js} +3937 -1776
- package/dist/chunk-SNPNHU3H.js.map +1 -0
- package/dist/{chunk-IHVBV5C2.js → chunk-SOOBFXRR.js} +94 -71
- package/dist/chunk-SOOBFXRR.js.map +1 -0
- package/dist/{chunk-ZDTRWK5F.js → chunk-TAHFWKS6.js} +2 -2
- package/dist/chunk-UEFFTVPY.js +9 -0
- package/dist/chunk-UEFFTVPY.js.map +1 -0
- package/dist/{chunk-24VULZ7A.js → chunk-UR5BXLBP.js} +3 -3
- package/dist/chunk-UR5BXLBP.js.map +1 -0
- package/dist/{chunk-DMBALCE2.js → chunk-V2SBGVDO.js} +471 -186
- package/dist/chunk-V2SBGVDO.js.map +1 -0
- package/dist/chunk-VJLWD47W.js +23 -0
- package/dist/chunk-VJLWD47W.js.map +1 -0
- package/dist/{chunk-4CQAV7YB.js → chunk-W647DX5Z.js} +2 -2
- package/dist/{chunk-THATMZXD.js → chunk-WFIIU3YZ.js} +2 -2
- package/dist/{chunk-THATMZXD.js.map → chunk-WFIIU3YZ.js.map} +1 -1
- package/dist/chunk-YZDJMAKL.js +82 -0
- package/dist/chunk-YZDJMAKL.js.map +1 -0
- package/dist/{chunk-3TMODYZV.js → chunk-Z5XH6VHY.js} +5 -5
- package/dist/chunk-Z5XH6VHY.js.map +1 -0
- package/dist/{chunk-BE3HW4FY.js → chunk-ZBBMZMA6.js} +377 -170
- package/dist/chunk-ZBBMZMA6.js.map +1 -0
- package/dist/index.cjs +21224 -11714
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +195 -49
- package/dist/index.d.ts +195 -49
- package/dist/index.js +150 -74
- package/dist/index.js.map +1 -1
- package/dist/{ir-BMP7yxJJ.d.cts → ir-BSosEwc8.d.cts} +1 -1
- package/dist/{ir-DUOz6H-5.d.ts → ir-D-uqwL_4.d.ts} +1 -1
- package/dist/{module-B8CBqIZ_.d.cts → module-Ds4tarcI.d.cts} +230 -140
- package/dist/{module-k7m3txak.d.ts → module-Zd1Gn-Nj.d.ts} +230 -140
- package/package.json +20 -4
- package/dist/ModuleTag-C8FHY_sY.d.ts +0 -93
- package/dist/ModuleTag-EGbgBMpZ.d.cts +0 -93
- package/dist/Observability-COqEvp2C.d.cts +0 -713
- package/dist/Observability-cY4kLn0S.d.ts +0 -713
- package/dist/ReadQuery-BlMwhe-F.d.ts +0 -30
- package/dist/ReadQuery-CL5XlXts.d.cts +0 -30
- package/dist/ReadQuery-SinbStGF.d.cts +0 -38
- package/dist/ReadQuery-SinbStGF.d.ts +0 -38
- package/dist/chunk-24VULZ7A.js.map +0 -1
- package/dist/chunk-3QMIVH35.js +0 -43
- package/dist/chunk-3QMIVH35.js.map +0 -1
- package/dist/chunk-3TMODYZV.js.map +0 -1
- package/dist/chunk-4SO6JMZL.js.map +0 -1
- package/dist/chunk-76WT3HOR.js.map +0 -1
- package/dist/chunk-ANLBCBDC.js.map +0 -1
- package/dist/chunk-AUIR5O6W.js.map +0 -1
- package/dist/chunk-BABLDP24.js.map +0 -1
- package/dist/chunk-BE3HW4FY.js.map +0 -1
- package/dist/chunk-BZ2SHDN2.js.map +0 -1
- package/dist/chunk-CW6T36TN.js.map +0 -1
- package/dist/chunk-DFNM3WX2.js.map +0 -1
- package/dist/chunk-DMBALCE2.js.map +0 -1
- package/dist/chunk-EGK3KN7B.js +0 -406
- package/dist/chunk-EGK3KN7B.js.map +0 -1
- package/dist/chunk-GMPEOUP2.js.map +0 -1
- package/dist/chunk-IHVBV5C2.js.map +0 -1
- package/dist/chunk-JCXGZRMU.js.map +0 -1
- package/dist/chunk-JGIWG6SR.js.map +0 -1
- package/dist/chunk-JWOYLO27.js.map +0 -1
- package/dist/chunk-KIXAU3GM.js +0 -137
- package/dist/chunk-KIXAU3GM.js.map +0 -1
- package/dist/chunk-KL5ACTCT.js +0 -8
- package/dist/chunk-KL5ACTCT.js.map +0 -1
- package/dist/chunk-KP7MUZNX.js.map +0 -1
- package/dist/chunk-M3BFQ7HK.js +0 -13
- package/dist/chunk-M3BFQ7HK.js.map +0 -1
- package/dist/chunk-M3WTHJHJ.js.map +0 -1
- package/dist/chunk-NBD3KUOZ.js.map +0 -1
- package/dist/chunk-NQZ2OSGR.js +0 -151
- package/dist/chunk-NQZ2OSGR.js.map +0 -1
- package/dist/chunk-NZJKFF45.js.map +0 -1
- package/dist/chunk-OFADUJWJ.js.map +0 -1
- package/dist/chunk-OGWBVHB3.js.map +0 -1
- package/dist/chunk-PAYXCY6A.js.map +0 -1
- package/dist/chunk-PYOE4VSI.js.map +0 -1
- package/dist/chunk-QCHIQWAJ.js +0 -21
- package/dist/chunk-RNFE3ML2.js.map +0 -1
- package/dist/chunk-TKZ7MEIA.js +0 -27
- package/dist/chunk-TKZ7MEIA.js.map +0 -1
- package/dist/chunk-TQOBJYDP.js.map +0 -1
- package/dist/chunk-VZB726PE.js +0 -93
- package/dist/chunk-VZB726PE.js.map +0 -1
- package/dist/chunk-W3TEWHLO.js +0 -568
- package/dist/chunk-W3TEWHLO.js.map +0 -1
- package/dist/chunk-YS3AZQ2G.js.map +0 -1
- package/dist/chunk-ZFLHVFUC.js +0 -192
- package/dist/chunk-ZFLHVFUC.js.map +0 -1
- package/dist/chunk-ZFY7U2FR.js.map +0 -1
- package/dist/chunk-ZGDVUPTM.js.map +0 -1
- package/dist/protocol-g_1897M2.d.cts +0 -127
- package/dist/protocol-g_1897M2.d.ts +0 -127
- /package/dist/{chunk-3IYZ5IGG.js.map → chunk-5WKUGEBY.js.map} +0 -0
- /package/dist/{chunk-3RMKLXHX.js.map → chunk-63ZQ5RIN.js.map} +0 -0
- /package/dist/{chunk-EY4NZKDR.js.map → chunk-6Y2TKCNY.js.map} +0 -0
- /package/dist/{chunk-G5ZBFPNU.js.map → chunk-A2RQOJC7.js.map} +0 -0
- /package/dist/{chunk-TAAPQVZN.js.map → chunk-AYELIQXR.js.map} +0 -0
- /package/dist/{chunk-66ALHVEX.js.map → chunk-EB46EYI7.js.map} +0 -0
- /package/dist/{chunk-IPF7E66P.js.map → chunk-FYAODKVP.js.map} +0 -0
- /package/dist/{chunk-M7IYCTJV.js.map → chunk-R4LFQGP3.js.map} +0 -0
- /package/dist/{chunk-M2RGJPXX.js.map → chunk-SJAE5PB5.js.map} +0 -0
- /package/dist/{chunk-ZDTRWK5F.js.map → chunk-TAHFWKS6.js.map} +0 -0
- /package/dist/{chunk-4CQAV7YB.js.map → chunk-W647DX5Z.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/internal/runtime/core/mutativePatches.ts","../src/internal/runtime/core/BoundApiRuntime.ts","../src/internal/runtime/core/Lifecycle.ts","../src/internal/runtime/core/LogicDiagnostics.ts"],"sourcesContent":["import { create, type Patches } from 'mutative'\nimport type { FieldPath } from '../../field-path.js'\nimport { isFieldPathSegment, toKey } from '../../field-path.js'\n\nexport type PatchPath = FieldPath\n\nexport const mutateWithoutPatches = <S>(base: S, mutator: (draft: S) => void): S => {\n return create(base, mutator as any) as unknown as S\n}\n\n// Patch path evidence (from mutative) is allowed to include list indices (number / digit strings).\n// Field-level dirty ids are still derived by filtering out index segments via normalizeFieldPath.\nconst isNonNegativeIntString = (text: string): boolean => {\n if (!text) return false\n for (let i = 0; i < text.length; i++) {\n const c = text.charCodeAt(i)\n if (c < 48 /* '0' */ || c > 57 /* '9' */) return false\n }\n return true\n}\n\nconst toPatchFieldPath = (path: unknown): PatchPath | '*' | undefined => {\n if (typeof path === 'string') {\n const trimmed = path.trim()\n return trimmed.length > 0 ? '*' : undefined\n }\n\n if (!Array.isArray(path)) return undefined\n\n // Fast path: patch path is already a pure string path evidence array.\n let allValidString = true\n for (let i = 0; i < path.length; i++) {\n const seg = path[i]\n if (typeof seg !== 'string' || !(isFieldPathSegment(seg) || isNonNegativeIntString(seg))) {\n allValidString = false\n break\n }\n }\n if (allValidString) return path as PatchPath\n\n // Structural path:\n // - keep valid field segments (non-numeric), and\n // - keep list indices (numbers / digit strings) for listIndexEvidence (C-1 / D-1).\n const parts: Array<string> = []\n for (let i = 0; i < path.length; i++) {\n const seg = path[i]\n if (typeof seg === 'string') {\n if (isFieldPathSegment(seg) || isNonNegativeIntString(seg)) {\n parts.push(seg)\n }\n continue\n }\n\n if (typeof seg === 'number' && Number.isFinite(seg)) {\n const n = Math.floor(seg)\n if (n >= 0 && n <= 2_147_483_647) {\n parts.push(String(n))\n }\n }\n }\n\n return parts.length === 0 ? '*' : parts\n}\n\nexport const mutateWithPatchPaths = <S>(\n base: S,\n mutator: (draft: S) => void,\n): { readonly nextState: S; readonly patchPaths: ReadonlyArray<PatchPath | '*'> } => {\n const out = create(base, mutator as any, {\n enablePatches: {\n pathAsArray: true,\n arrayLengthAssignment: false,\n },\n }) as unknown\n\n if (!Array.isArray(out)) {\n return { nextState: out as S, patchPaths: [] }\n }\n\n const nextState = out[0] as S\n const patches = (out[1] ?? []) as Patches<{ pathAsArray: true; arrayLengthAssignment: false }>\n\n // Large patch bursts (e.g. reducers mutating hundreds/thousands of flat fields) are typically prefix-free and\n // already unique. In this case, string-key dedup becomes pure overhead and can cause GC jitter in perf workloads.\n // We keep only the '*' guard and let downstream dirty-set tracking handle any rare duplicates.\n if (patches.length > 256) {\n let sawStar = false\n const patchPaths: Array<PatchPath | '*'> = []\n for (let i = 0; i < patches.length; i++) {\n const patch = patches[i]\n const p = toPatchFieldPath((patch as any)?.path)\n if (!p) continue\n if (p === '*') {\n if (sawStar) continue\n sawStar = true\n }\n patchPaths.push(p)\n }\n return {\n nextState,\n patchPaths,\n }\n }\n\n // Perf note:\n // - Avoid JSON.stringify-based dedup keys (alloc-heavy, can cause GC spikes in perf workloads).\n // - Use segment keys for single-segment paths; fall back to a stable toKey() digest for multi-segment paths.\n let sawStar = false\n const singleSeg = new Set<string>()\n const multiSeg = new Set<string>()\n const patchPaths: Array<PatchPath | '*'> = []\n\n for (let i = 0; i < patches.length; i++) {\n const patch = patches[i]\n const p = toPatchFieldPath((patch as any)?.path)\n if (!p) continue\n\n if (p === '*') {\n if (sawStar) continue\n sawStar = true\n patchPaths.push(p)\n continue\n }\n\n if (p.length === 1) {\n const seg = p[0]!\n if (singleSeg.has(seg)) continue\n singleSeg.add(seg)\n patchPaths.push(p)\n continue\n }\n\n const key = toKey(p)\n if (multiSeg.has(key)) continue\n multiSeg.add(key)\n patchPaths.push(p)\n }\n\n return {\n nextState,\n patchPaths,\n }\n}\n","import { Deferred, Effect, Exit, Option, Schema, ServiceMap, Stream } from 'effect'\nimport { create } from 'mutative'\nimport type * as Logix from './module.js'\nimport * as Logic from './LogicMiddleware.js'\nimport * as Action from '../../action.js'\nimport * as TaskRunner from './TaskRunner.js'\nimport { mutateWithPatchPaths } from './mutativePatches.js'\nimport * as FlowRuntime from './FlowRuntime.js'\nimport * as MatchBuilder from './MatchBuilder.js'\nimport * as Platform from './Platform.js'\nimport * as Lifecycle from './Lifecycle.js'\nimport * as Debug from './DebugSink.js'\nimport * as LogicDiagnostics from './LogicDiagnostics.js'\nimport { isDevEnv } from './env.js'\nimport type { JsonValue } from '../../observability/jsonValue.js'\nimport { RunSessionTag, type RunSession } from '../../observability/runSession.js'\nimport * as Root from '../../root.js'\nimport type { RuntimeInternals } from './RuntimeInternals.js'\nimport type * as ModuleTraits from './ModuleTraits.js'\nimport { getRuntimeInternals, setBoundInternals } from './runtimeInternalsAccessor.js'\nimport type { AnyModuleShape, ModuleRuntime, StateOf, ActionOf } from './module.js'\n\nconst DIRECT_STATE_WRITE_EFFECT = Symbol.for('logix.directStateWriteEffect')\n\ntype DirectStateWriteMetadata<Sh extends AnyModuleShape> =\n | { readonly kind: 'update'; readonly run: (prev: StateOf<Sh>) => StateOf<Sh> }\n | { readonly kind: 'mutate'; readonly run: (draft: Logic.Draft<StateOf<Sh>>) => void }\n\ntype DirectStateWriteEffect<Sh extends AnyModuleShape> = Effect.Effect<void, never, any> & {\n [DIRECT_STATE_WRITE_EFFECT]?: DirectStateWriteMetadata<Sh>\n}\n\nconst markDirectStateWriteEffect = <Sh extends AnyModuleShape, A extends Effect.Effect<void, never, any>>(\n effect: A,\n metadata: DirectStateWriteMetadata<Sh>,\n): A => {\n ;(effect as DirectStateWriteEffect<Sh>)[DIRECT_STATE_WRITE_EFFECT] = metadata\n return effect\n}\n\nconst getDirectStateWriteMetadata = <Sh extends AnyModuleShape>(\n value: unknown,\n): DirectStateWriteMetadata<Sh> | undefined => {\n if (!value || (typeof value !== 'object' && typeof value !== 'function')) return undefined\n return (value as DirectStateWriteEffect<Sh>)[DIRECT_STATE_WRITE_EFFECT]\n}\n\n// Local IntentBuilder factory; equivalent to the old internal/dsl/LogicBuilder.makeIntentBuilderFactory.\nconst LogicBuilderFactory = <Sh extends AnyModuleShape, R = never>(\n runtime: ModuleRuntime<StateOf<Sh>, ActionOf<Sh>>,\n runtimeInternals: RuntimeInternals,\n) => {\n const flowApi = FlowRuntime.make<Sh, R>(runtime, runtimeInternals)\n\n return <T>(stream: Stream.Stream<T>, triggerName?: string): Logic.IntentBuilder<T, Sh, R> => {\n const runWithStateTransaction: TaskRunner.TaskRunnerRuntime['runWithStateTransaction'] = (origin, body) =>\n runtimeInternals.txn.runWithStateTransaction(origin as any, body)\n\n const taskRunnerRuntime: TaskRunner.TaskRunnerRuntime = {\n moduleId: runtime.moduleId,\n instanceId: runtimeInternals.instanceId,\n runWithStateTransaction,\n resolveConcurrencyPolicy: runtimeInternals.concurrency.resolveConcurrencyPolicy,\n }\n\n const builder = {\n debounce: (ms: number) =>\n LogicBuilderFactory<Sh, R>(runtime, runtimeInternals)(flowApi.debounce<T>(ms)(stream), triggerName),\n throttle: (ms: number) =>\n LogicBuilderFactory<Sh, R>(runtime, runtimeInternals)(flowApi.throttle<T>(ms)(stream), triggerName),\n filter: (predicate: (value: T) => boolean) =>\n LogicBuilderFactory<Sh, R>(runtime, runtimeInternals)(flowApi.filter(predicate)(stream), triggerName),\n map: <U>(f: (value: T) => U) =>\n LogicBuilderFactory<Sh, R>(runtime, runtimeInternals)(stream.pipe(Stream.map(f)), triggerName),\n run<A = void, E = never, R2 = unknown>(\n eff: Logic.Of<Sh, R & R2, A, E> | ((p: T) => Logic.Of<Sh, R & R2, A, E>),\n options?: Logic.OperationOptions,\n ): Logic.Of<Sh, R & R2, void, E> {\n return flowApi.run<T, A, E, R2>(eff, options)(stream)\n },\n runLatest<A = void, E = never, R2 = unknown>(\n eff: Logic.Of<Sh, R & R2, A, E> | ((p: T) => Logic.Of<Sh, R & R2, A, E>),\n options?: Logic.OperationOptions,\n ): Logic.Of<Sh, R & R2, void, E> {\n return flowApi.runLatest<T, A, E, R2>(eff, options)(stream)\n },\n runExhaust<A = void, E = never, R2 = unknown>(\n eff: Logic.Of<Sh, R & R2, A, E> | ((p: T) => Logic.Of<Sh, R & R2, A, E>),\n options?: Logic.OperationOptions,\n ): Logic.Of<Sh, R & R2, void, E> {\n return flowApi.runExhaust<T, A, E, R2>(eff, options)(stream)\n },\n runParallel<A = void, E = never, R2 = unknown>(\n eff: Logic.Of<Sh, R & R2, A, E> | ((p: T) => Logic.Of<Sh, R & R2, A, E>),\n options?: Logic.OperationOptions,\n ): Logic.Of<Sh, R & R2, void, E> {\n return flowApi.runParallel<T, A, E, R2>(eff, options)(stream)\n },\n runFork: <A = void, E = never, R2 = unknown>(\n eff: Logic.Of<Sh, R & R2, A, E> | ((p: T) => Logic.Of<Sh, R & R2, A, E>),\n ): Logic.Of<Sh, R & R2, void, E> => {\n if (runtimeInternals && triggerName && typeof eff !== 'function' && getDirectStateWriteMetadata<Sh>(eff) != null) {\n return Effect.sync(() => {\n const metadata = getDirectStateWriteMetadata<Sh>(eff)!\n runtimeInternals.txn.registerActionStateWriteback(\n triggerName,\n metadata.kind === 'update'\n ? ({ kind: 'update', run: metadata.run } as any)\n : ({ kind: 'mutate', run: metadata.run } as any),\n )\n }) as Logic.Of<Sh, R & R2, void, E>\n }\n return Effect.forkScoped(flowApi.run<T, A, E, R2>(eff)(stream)).pipe(Effect.asVoid) as Logic.Of<\n Sh,\n R & R2,\n void,\n E\n >\n },\n runParallelFork: <A = void, E = never, R2 = unknown>(\n eff: Logic.Of<Sh, R & R2, A, E> | ((p: T) => Logic.Of<Sh, R & R2, A, E>),\n ): Logic.Of<Sh, R & R2, void, E> => {\n if (runtimeInternals && triggerName && typeof eff !== 'function' && getDirectStateWriteMetadata<Sh>(eff) != null) {\n return Effect.sync(() => {\n const metadata = getDirectStateWriteMetadata<Sh>(eff)!\n runtimeInternals.txn.registerActionStateWriteback(\n triggerName,\n metadata.kind === 'update'\n ? ({ kind: 'update', run: metadata.run } as any)\n : ({ kind: 'mutate', run: metadata.run } as any),\n )\n }) as Logic.Of<Sh, R & R2, void, E>\n }\n return Effect.forkScoped(flowApi.runParallel<T, A, E, R2>(eff)(stream)).pipe(Effect.asVoid) as Logic.Of<\n Sh,\n R & R2,\n void,\n E\n >\n },\n runTask: <A = void, E = never, R2 = unknown>(\n config: TaskRunner.TaskRunnerConfig<T, Sh, R & R2, A, E>,\n ): Logic.Of<Sh, R & R2, void, never> =>\n TaskRunner.makeTaskRunner<T, Sh, R & R2, A, E>(stream, 'task', taskRunnerRuntime, {\n ...config,\n triggerName: config.triggerName ?? triggerName,\n }) as Logic.Of<Sh, R & R2, void, never>,\n runParallelTask: <A = void, E = never, R2 = unknown>(\n config: TaskRunner.TaskRunnerConfig<T, Sh, R & R2, A, E>,\n ): Logic.Of<Sh, R & R2, void, never> =>\n TaskRunner.makeTaskRunner<T, Sh, R & R2, A, E>(stream, 'parallel', taskRunnerRuntime, {\n ...config,\n triggerName: config.triggerName ?? triggerName,\n }) as Logic.Of<Sh, R & R2, void, never>,\n runLatestTask: <A = void, E = never, R2 = unknown>(\n config: TaskRunner.TaskRunnerConfig<T, Sh, R & R2, A, E>,\n ): Logic.Of<Sh, R & R2, void, never> =>\n TaskRunner.makeTaskRunner<T, Sh, R & R2, A, E>(stream, 'latest', taskRunnerRuntime, {\n ...config,\n triggerName: config.triggerName ?? triggerName,\n }) as Logic.Of<Sh, R & R2, void, never>,\n runExhaustTask: <A = void, E = never, R2 = unknown>(\n config: TaskRunner.TaskRunnerConfig<T, Sh, R & R2, A, E>,\n ): Logic.Of<Sh, R & R2, void, never> =>\n TaskRunner.makeTaskRunner<T, Sh, R & R2, A, E>(stream, 'exhaust', taskRunnerRuntime, {\n ...config,\n triggerName: config.triggerName ?? triggerName,\n }) as Logic.Of<Sh, R & R2, void, never>,\n toStream: () => stream,\n update: (\n reducer: (prev: StateOf<Sh>, payload: T) => StateOf<Sh> | Effect.Effect<StateOf<Sh>, any, any>,\n ): Logic.Of<Sh, R, void, never> =>\n Stream.runForEach(stream, (payload) =>\n taskRunnerRuntime.runWithStateTransaction(\n {\n kind: 'watcher:update',\n name: triggerName,\n },\n () =>\n Effect.gen(function* () {\n const prev = (yield* runtime.getState) as StateOf<Sh>\n const next = reducer(prev, payload)\n if (Effect.isEffect(next)) {\n const exit = yield* Effect.exit(next as Effect.Effect<StateOf<Sh>, any, any>)\n if (exit._tag === 'Failure') {\n yield* Effect.logError('Flow error', exit.cause)\n return\n }\n yield* runtime.setState(exit.value as StateOf<Sh>)\n return\n }\n yield* runtime.setState(next as StateOf<Sh>)\n }),\n ),\n ).pipe(Effect.catchCause((cause) => Effect.logError('Flow error', cause))) as Logic.Of<Sh, R, void, never>,\n mutate: (reducer: (draft: Logic.Draft<StateOf<Sh>>, payload: T) => void): Logic.Of<Sh, R, void, never> =>\n Stream.runForEach(stream, (payload) =>\n taskRunnerRuntime.runWithStateTransaction(\n {\n kind: 'watcher:mutate',\n name: triggerName,\n },\n () =>\n Effect.gen(function* () {\n const prev = (yield* runtime.getState) as StateOf<Sh>\n const recordPatch = runtimeInternals.txn.recordStatePatch\n const updateDraft = runtimeInternals.txn.updateDraft\n\n const { nextState, patchPaths } = mutateWithPatchPaths(prev as StateOf<Sh>, (draft) => {\n reducer(draft as Logic.Draft<StateOf<Sh>>, payload)\n })\n\n for (const path of patchPaths) {\n recordPatch(path, 'unknown')\n }\n\n updateDraft(nextState)\n }),\n ),\n ).pipe(Effect.catchCause((cause) => Effect.logError('Flow error', cause))) as Logic.Of<Sh, R, void, never>,\n } as Omit<Logic.IntentBuilder<T, Sh, R>, 'pipe'>\n\n const pipe: Logic.IntentBuilder<T, Sh, R>['pipe'] = function (this: unknown) {\n // eslint-disable-next-line prefer-rest-params\n const fns = arguments as unknown as ReadonlyArray<\n (self: Logic.IntentBuilder<T, Sh, R>) => Logic.IntentBuilder<T, Sh, R>\n >\n let acc: Logic.IntentBuilder<T, Sh, R> = builder as Logic.IntentBuilder<T, Sh, R>\n for (let i = 0; i < fns.length; i++) {\n acc = fns[i](acc)\n }\n return acc\n }\n\n return Object.assign(builder, { pipe }) as Logic.IntentBuilder<T, Sh, R>\n }\n}\nimport type { BoundApi } from './module.js'\n\n/**\n * BoundApi implementation: creates a pre-bound `$` for a given Store shape + runtime.\n *\n * Note: public types and entrypoint signatures live in api/BoundApi.ts; this file only hosts the implementation.\n */\nexport function make<Sh extends Logix.AnyModuleShape, R = never>(\n shape: Sh,\n runtime: Logix.ModuleRuntime<Logix.StateOf<Sh>, Logix.ActionOf<Sh>>,\n options?: {\n readonly getPhase?: () => 'setup' | 'run'\n readonly phaseService?: LogicDiagnostics.LogicPhaseService\n readonly moduleId?: string\n readonly logicUnit?: LogicDiagnostics.LogicUnitService\n },\n): BoundApi<Sh, R> {\n const runtimeInternals = getRuntimeInternals(runtime as any)\n\n const getPhase = options?.getPhase ?? (() => 'run')\n const getCurrentPhase = (): 'setup' | 'run' => {\n const phaseService = options?.phaseService\n const phase = phaseService?.current ?? getPhase()\n return phase === 'setup' ? 'setup' : 'run'\n }\n const guardRunOnly = (kind: string, api: string) => {\n const phaseService = options?.phaseService\n const phase = phaseService?.current ?? getPhase()\n if (phase === 'setup') {\n throw LogicDiagnostics.makeLogicPhaseError(kind, api, 'setup', options?.moduleId)\n }\n }\n const flowApi = FlowRuntime.make<Sh, R>(runtime, runtimeInternals)\n\n const makeIntentBuilder = (runtime_: Logix.ModuleRuntime<any, any>) =>\n LogicBuilderFactory<Sh, R>(runtime_, runtimeInternals)\n const withLifecycle = <A>(\n available: (manager: Lifecycle.LifecycleManager) => Effect.Effect<A, never, any>,\n missing: () => Effect.Effect<A, never, any>,\n ) =>\n Effect.serviceOption(Lifecycle.LifecycleContext as ServiceMap.Key<any, Lifecycle.LifecycleManager>).pipe(\n Effect.flatMap((maybe) =>\n Option.match(maybe, {\n onSome: available,\n onNone: missing,\n })),\n )\n const withPlatform = (invoke: (platform: Platform.Service) => Effect.Effect<void, never, any>) =>\n Effect.serviceOption(Platform.Tag as ServiceMap.Key<any, Platform.Service>).pipe(\n Effect.flatMap((maybe) =>\n Option.match(maybe, {\n onSome: invoke,\n onNone: () => Effect.void,\n }),\n ),\n )\n\n const emitSetupOnlyViolation = (api: string): Effect.Effect<void> =>\n Debug.record({\n type: 'diagnostic',\n moduleId: runtime.moduleId,\n instanceId: runtime.instanceId,\n code: 'logic::invalid_phase',\n severity: 'error',\n message: `${api} is setup-only and is not allowed in run phase.`,\n hint:\n 'Move $.lifecycle.* calls to the synchronous part of Module.logic builder (before return) for registration; ' +\n 'for dynamic resource cleanup in the run phase, use Effect.acquireRelease / Scope finalizer instead of registering onDestroy late.',\n kind: 'lifecycle_in_run',\n }).pipe(Effect.orDie)\n\n const createIntentBuilder = <T>(stream: Stream.Stream<T>, triggerName?: string) =>\n makeIntentBuilder(runtime)(stream, triggerName)\n\n const actionMatchesTag = (action: unknown, tag: string): boolean => {\n const actionTag = (action as any)?._tag\n if (actionTag === tag) {\n return true\n }\n const actionType = (action as any)?.type\n return actionType === tag\n }\n\n const actionStreamByTag = (tag: string): Stream.Stream<Logix.ActionOf<Sh>> => {\n const topicSelector = runtime.actionsByTag$\n if (typeof topicSelector === 'function') {\n return topicSelector(tag)\n }\n return runtime.actions$.pipe(Stream.filter((action: unknown) => actionMatchesTag(action, tag)))\n }\n\n const onceInRunSession = (key: string): Effect.Effect<boolean, never, any> =>\n Effect.serviceOption(RunSessionTag as unknown as ServiceMap.Key<any, RunSession>).pipe(\n Effect.map((maybe) => (Option.isSome(maybe) ? maybe.value.local.once(key) : true)),\n )\n\n let cachedDiagnosticsLevel: Debug.DiagnosticsLevel | undefined\n\n const isModuleLike = (\n value: unknown,\n ): value is {\n readonly _kind: 'ModuleDef' | 'Module'\n readonly id: string\n readonly tag: ServiceMap.Key<any, Logix.ModuleRuntime<any, any>>\n readonly schemas?: Record<string, unknown>\n readonly meta?: Record<string, JsonValue>\n readonly dev?: { readonly source?: { readonly file: string; readonly line: number; readonly column: number } }\n } =>\n Boolean(\n value &&\n typeof value === 'object' &&\n ((value as any)._kind === 'ModuleDef' || (value as any)._kind === 'Module') &&\n 'tag' in (value as object) &&\n ServiceMap.isKey((value as any).tag),\n )\n\n const buildModuleHandle = (\n tag: ServiceMap.Key<any, Logix.ModuleRuntime<any, any>>,\n rt: Logix.ModuleRuntime<any, any>,\n ): unknown => {\n const actionsProxy: Logix.ModuleHandle<any>['actions'] = new Proxy(\n {},\n {\n get: (_target, prop) => (payload: unknown) =>\n rt.dispatch({\n _tag: prop as string,\n payload,\n }),\n },\n ) as Logix.ModuleHandle<any>['actions']\n\n const handle: Logix.ModuleHandle<any> = {\n read: (selector) => Effect.map(rt.getState, selector),\n changes: rt.changes,\n dispatch: rt.dispatch,\n actions$: rt.actions$,\n actions: actionsProxy,\n }\n\n const EXTEND_HANDLE = Symbol.for('logix.module.handle.extend')\n const extend = (tag as any)?.[EXTEND_HANDLE] as\n | ((runtime: Logix.ModuleRuntime<any, any>, base: Logix.ModuleHandle<any>) => unknown)\n | undefined\n\n return typeof extend === 'function' ? (extend(rt, handle) ?? handle) : handle\n }\n\n const emitModuleDescriptorOnce = (\n module: {\n readonly id: string\n readonly tag: any\n readonly schemas?: Record<string, unknown>\n readonly meta?: Record<string, JsonValue>\n readonly dev?: { readonly source?: { readonly file: string; readonly line: number; readonly column: number } }\n },\n rt: Logix.ModuleRuntime<any, any>,\n ): Effect.Effect<void, never, any> =>\n Effect.gen(function* () {\n // Hot-path guard: never emit events when diagnostics are off.\n if (cachedDiagnosticsLevel === 'off') return\n\n const key = `module_descriptor:${String(rt.instanceId ?? 'unknown')}`\n const shouldEmit = yield* onceInRunSession(key)\n if (!shouldEmit) return\n\n const actionKeys = Object.keys((module.tag as any)?.shape?.actionMap ?? {})\n\n const internalSymbol = Symbol.for('logix.module.internal')\n const internal = (module as any)[internalSymbol] as { readonly mounted?: ReadonlyArray<any> } | undefined\n\n const logicUnits = (internal?.mounted ?? []).map((u: any) => ({\n kind: String(u?.kind ?? 'user'),\n id: String(u?.id ?? ''),\n derived: u?.derived ? true : undefined,\n name: typeof u?.name === 'string' ? u.name : undefined,\n }))\n\n const schemaKeys = module.schemas && typeof module.schemas === 'object' ? Object.keys(module.schemas) : undefined\n\n const meta = module.meta && typeof module.meta === 'object' ? module.meta : undefined\n\n const source = module.dev?.source\n\n const traitsSnapshot = runtimeInternals.traits.getModuleTraitsSnapshot()\n const traits = traitsSnapshot\n ? {\n digest: traitsSnapshot.digest,\n count: traitsSnapshot.traits.length,\n }\n : undefined\n\n const data = {\n id: module.id,\n moduleId: String(rt.moduleId),\n instanceId: String(rt.instanceId),\n actionKeys,\n logicUnits,\n schemaKeys,\n meta,\n source,\n traits,\n }\n\n yield* Debug.record({\n type: 'trace:module:descriptor',\n moduleId: rt.moduleId,\n instanceId: rt.instanceId,\n data,\n } as any)\n })\n\n /**\n * strict: resolve a Module runtime only from the current Effect environment.\n *\n * Notes:\n * - With multiple roots / instances, any process-wide registry cannot express the correct semantics.\n * - A missing provider is a wiring error: fail deterministically and provide actionable hints (more details in dev/test).\n */\n const resolveModuleRuntime = (\n tag: ServiceMap.Key<any, Logix.ModuleRuntime<any, any>>,\n ): Effect.Effect<Logix.ModuleRuntime<any, any>, never, any> =>\n Effect.gen(function* () {\n const requestedModuleId = typeof (tag as any)?.id === 'string' ? ((tag as any).id as string) : undefined\n const fromModuleId = typeof options?.moduleId === 'string' ? options.moduleId : runtime.moduleId\n\n // self: always allow resolving the current ModuleRuntime (both Bound.make and runtime injection paths).\n if (requestedModuleId && requestedModuleId === runtime.moduleId) {\n return runtime as unknown as Logix.ModuleRuntime<any, any>\n }\n\n const fromImports = runtimeInternals.imports.get(tag as unknown as ServiceMap.Key<any, any>)\n if (fromImports) {\n return fromImports as unknown as Logix.ModuleRuntime<any, any>\n }\n\n // Bound.make (no moduleId context): allow resolving from the current Effect env (useful for tests/scaffolding).\n if (typeof options?.moduleId !== 'string') {\n const fromEnv = yield* Effect.serviceOption(tag as any)\n if (Option.isSome(fromEnv)) {\n return fromEnv.value as unknown as Logix.ModuleRuntime<any, any>\n }\n }\n\n // 2) Not found: die immediately — this is a wiring error; guide the caller to fix the composition.\n const tokenId = requestedModuleId ?? '<unknown module id>'\n const fix: string[] = isDevEnv()\n ? [\n '- Provide the child implementation in the same scope (imports).',\n ` Example: ${fromModuleId ?? 'ParentModule'}.implement({ imports: [${requestedModuleId ?? 'ChildModule'}.impl], ... })`,\n '- If you intentionally want a root singleton, provide it at app root (Runtime.make(...,{ layer }) / root imports),',\n ' and use Root.resolve(ModuleTag) (instead of $.use) at the callsite.',\n ]\n : []\n\n const err = new Error(\n isDevEnv()\n ? [\n '[MissingModuleRuntimeError] Cannot resolve ModuleRuntime for ModuleTag.',\n '',\n `tokenId: ${tokenId}`,\n 'entrypoint: logic.$.use',\n 'mode: strict',\n `from: ${fromModuleId ?? '<unknown module id>'}`,\n `startScope: moduleId=${fromModuleId ?? '<unknown>'}, instanceId=${String(runtime.instanceId ?? '<unknown>')}`,\n '',\n 'fix:',\n ...fix,\n ].join('\\n')\n : '[MissingModuleRuntimeError] module runtime not found',\n )\n\n ;(err as any).tokenId = tokenId\n ;(err as any).entrypoint = 'logic.$.use'\n ;(err as any).mode = 'strict'\n ;(err as any).from = fromModuleId\n ;(err as any).startScope = {\n moduleId: fromModuleId,\n instanceId: String(runtime.instanceId ?? '<unknown>'),\n }\n ;(err as any).fix = fix\n\n err.name = 'MissingModuleRuntimeError'\n return yield* Effect.die(err)\n })\n\n type BatchedStateWritebackOutcome =\n | { readonly _tag: 'ok' }\n | { readonly _tag: 'failure'; readonly cause: unknown }\n\n type BatchedStateWritebackRequest =\n | {\n readonly kind: 'update'\n readonly update: (prev: Logix.StateOf<Sh>) => Logix.StateOf<Sh>\n readonly done: Deferred.Deferred<BatchedStateWritebackOutcome>\n }\n | {\n readonly kind: 'mutate'\n readonly mutate: (draft: Logic.Draft<Logix.StateOf<Sh>>) => void\n readonly done: Deferred.Deferred<BatchedStateWritebackOutcome>\n }\n\n type BatchedStateWritebackCoordinator = {\n readonly enqueueUpdate: (update: (prev: Logix.StateOf<Sh>) => Logix.StateOf<Sh>) => Effect.Effect<void, never, any>\n readonly enqueueMutate: (mutate: (draft: Logic.Draft<Logix.StateOf<Sh>>) => void) => Effect.Effect<void, never, any>\n }\n\n // Perf-first batching for `$.state.update/$.state.mutate` called *outside* a transaction:\n // - Many watchers may write back on the same tick; running N transactions is dominated by fixed txn cost.\n // - Batch them into a single StateTransaction (still sequentially applies reducers), reducing queue/commit overhead.\n //\n // Notes:\n // - Enabled only when runtimeInternals exists and NODE_ENV=production (perf mode).\n // - Semantics change: multiple state writebacks may share the same txnSeq/txnId (forward-only evolution).\n let batchedStateWritebackCoordinator: BatchedStateWritebackCoordinator | undefined\n\n const getOrCreateBatchedStateWritebackCoordinator = (): BatchedStateWritebackCoordinator => {\n if (batchedStateWritebackCoordinator) return batchedStateWritebackCoordinator\n if (!runtimeInternals) {\n throw new Error('[BatchedStateWritebackCoordinator] Missing runtimeInternals (expected in ModuleRuntime-backed $).')\n }\n\n let inFlight = false\n const pending: Array<BatchedStateWritebackRequest> = []\n\n const drain = (): ReadonlyArray<BatchedStateWritebackRequest> => {\n if (pending.length === 0) return []\n return pending.splice(0, pending.length)\n }\n\n const ok: BatchedStateWritebackOutcome = { _tag: 'ok' }\n const fail = (cause: unknown): BatchedStateWritebackOutcome => ({ _tag: 'failure', cause })\n\n const applyBatch = (batch: ReadonlyArray<BatchedStateWritebackRequest>): Effect.Effect<void, never, any> =>\n Effect.gen(function* () {\n if (batch.length === 0) return\n\n let current = (yield* runtime.getState) as Logix.StateOf<Sh>\n\n for (let i = 0; i < batch.length; i++) {\n const req = batch[i]!\n if (req.kind === 'update') {\n const next = req.update(current)\n current = next\n yield* runtime.setState(next)\n continue\n }\n\n const { nextState, patchPaths } = mutateWithPatchPaths(current as Logix.StateOf<Sh>, (draft) => {\n req.mutate(draft as Logic.Draft<Logix.StateOf<Sh>>)\n })\n\n for (const path of patchPaths) {\n runtimeInternals.txn.recordStatePatch(path, 'unknown')\n }\n\n runtimeInternals.txn.updateDraft(nextState)\n current = nextState as Logix.StateOf<Sh>\n }\n })\n\n const flushInFlight = (): Effect.Effect<void, never, any> =>\n Effect.uninterruptible(\n Effect.gen(function* () {\n if (inFlight) return\n inFlight = true\n try {\n while (true) {\n const batch = drain()\n if (batch.length === 0) {\n // Release the inFlight lock, then re-check pending to avoid the \"enqueue while exiting\" race.\n inFlight = false\n if (pending.length === 0) return\n inFlight = true\n continue\n }\n\n const originName =\n batch.length === 1 ? (batch[0]!.kind === 'update' ? 'update' : 'mutate') : 'writeback:batched'\n\n const exit = yield* Effect.exit(\n runtimeInternals.txn.runWithStateTransaction(\n {\n kind: 'state',\n name: originName,\n details: { batched: true, count: batch.length },\n } as any,\n () => applyBatch(batch).pipe(Effect.asVoid),\n ),\n )\n\n const outcome: BatchedStateWritebackOutcome = exit._tag === 'Success' ? ok : fail(exit.cause)\n\n for (let i = 0; i < batch.length; i++) {\n yield* Deferred.succeed(batch[i]!.done, outcome)\n }\n\n // Unexpected failures are treated as fatal; unblock waiters and stop the drain loop.\n if (outcome._tag === 'failure') {\n return\n }\n }\n } finally {\n inFlight = false\n }\n }),\n )\n\n const waitForMicrotask = (): Effect.Effect<void, never, never> =>\n Effect.promise(\n () =>\n new Promise<void>((resolve) => {\n if (typeof queueMicrotask === 'function') {\n queueMicrotask(resolve)\n return\n }\n Promise.resolve().then(resolve)\n }),\n )\n\n const enqueueAndAwait = (req: BatchedStateWritebackRequest): Effect.Effect<void, never, any> =>\n Effect.gen(function* () {\n pending.push(req)\n if (!inFlight) {\n yield* waitForMicrotask()\n }\n yield* flushInFlight()\n const outcome = yield* Deferred.await(req.done)\n if (outcome._tag === 'failure') {\n return yield* Effect.die(outcome.cause)\n }\n })\n\n const coordinator: BatchedStateWritebackCoordinator = {\n enqueueUpdate: (update) =>\n Effect.gen(function* () {\n const done = yield* Deferred.make<BatchedStateWritebackOutcome>()\n yield* enqueueAndAwait({ kind: 'update', update, done })\n }),\n enqueueMutate: (mutate) =>\n Effect.gen(function* () {\n const done = yield* Deferred.make<BatchedStateWritebackOutcome>()\n yield* enqueueAndAwait({ kind: 'mutate', mutate, done })\n }),\n }\n\n batchedStateWritebackCoordinator = coordinator\n return coordinator\n }\n\n const stateApi: BoundApi<Sh, R>['state'] = {\n read: runtime.getState,\n update: (f) =>\n markDirectStateWriteEffect<Sh, Effect.Effect<void, never, any>>(\n Effect.gen(function* () {\n const inTxn = yield* Effect.service(TaskRunner.inSyncTransactionFiber).pipe(Effect.orDie)\n if (inTxn) {\n const prev = yield* runtime.getState\n return yield* runtime.setState(f(prev))\n }\n\n const body = () => Effect.flatMap(runtime.getState, (prev) => runtime.setState(f(prev)))\n\n if (runtimeInternals && !isDevEnv()) {\n return yield* getOrCreateBatchedStateWritebackCoordinator().enqueueUpdate(f as any)\n }\n\n return yield* runtimeInternals\n ? runtimeInternals.txn.runWithStateTransaction({ kind: 'state', name: 'update' } as any, body)\n : body()\n }),\n { kind: 'update', run: f as any },\n ),\n mutate: (f) =>\n markDirectStateWriteEffect<Sh, Effect.Effect<void, never, any>>(\n Effect.gen(function* () {\n const recordPatch = runtimeInternals?.txn.recordStatePatch\n const updateDraft = runtimeInternals?.txn.updateDraft\n\n const inTxn = yield* Effect.service(TaskRunner.inSyncTransactionFiber).pipe(Effect.orDie)\n if (inTxn) {\n const prev = yield* runtime.getState\n const { nextState, patchPaths } = mutateWithPatchPaths(prev as Logix.StateOf<Sh>, (draft) => {\n f(draft as Logic.Draft<Logix.StateOf<Sh>>)\n })\n\n for (const path of patchPaths) {\n recordPatch?.(path, 'unknown')\n }\n\n updateDraft?.(nextState)\n return\n }\n\n const body = () =>\n Effect.gen(function* () {\n const prev = yield* runtime.getState\n const { nextState, patchPaths } = mutateWithPatchPaths(prev as Logix.StateOf<Sh>, (draft) => {\n f(draft as Logic.Draft<Logix.StateOf<Sh>>)\n })\n\n for (const path of patchPaths) {\n recordPatch?.(path, 'unknown')\n }\n\n updateDraft?.(nextState)\n })\n\n if (runtimeInternals && !isDevEnv()) {\n return yield* getOrCreateBatchedStateWritebackCoordinator().enqueueMutate(f as any)\n }\n\n return yield* runtimeInternals\n ? runtimeInternals.txn.runWithStateTransaction({ kind: 'state', name: 'mutate' } as any, body)\n : body()\n }),\n { kind: 'mutate', run: f as any },\n ),\n ref: runtime.ref,\n }\n\n\n const actions = shape.actionMap as BoundApi<Sh, R>['actions']\n\n const dispatcherCache = new Map<string, (...args: any[]) => Effect.Effect<void, any, any>>()\n\n const hasAction = (key: string): boolean => Object.prototype.hasOwnProperty.call(actions as any, key)\n\n const dispatchers: BoundApi<Sh, R>['dispatchers'] = new Proxy({} as any, {\n get: (_target, prop) => {\n if (typeof prop !== 'string') return undefined\n if (!hasAction(prop)) return undefined\n\n const cached = dispatcherCache.get(prop)\n if (cached) return cached\n\n const token = (actions as any)[prop] as Action.AnyActionToken\n const fn = (...args: any[]) => runtime.dispatch((token as any)(...args))\n\n dispatcherCache.set(prop, fn)\n return fn\n },\n has: (_target, prop) => typeof prop === 'string' && hasAction(prop),\n ownKeys: () => Object.keys(actions as any),\n getOwnPropertyDescriptor: (_target, prop) => {\n if (typeof prop !== 'string') return undefined\n if (!hasAction(prop)) return undefined\n return { enumerable: true, configurable: true }\n },\n }) as unknown as BoundApi<Sh, R>['dispatchers']\n\n const dispatch: BoundApi<Sh, R>['dispatch'] = (...args: any[]) => {\n const [first, second] = args\n\n if (typeof first === 'string') {\n return runtime.dispatch({ _tag: first, payload: second } as Logix.ActionOf<Sh>)\n }\n\n if (Action.isActionToken(first)) {\n return runtime.dispatch((first as any)(second))\n }\n\n return runtime.dispatch(first as Logix.ActionOf<Sh>)\n }\n\n const matchApi = <V>(value: V): Logic.FluentMatch<V> => MatchBuilder.makeMatch(value)\n\n const matchTagApi = <V extends { _tag: string }>(value: V): Logic.FluentMatchTag<V> =>\n MatchBuilder.makeMatchTag(value)\n\n // Primary reducer registration: write into the reducer map via the runtime's internal registrar.\n const reducer: BoundApi<Sh, R>['reducer'] = (tag, fn) => {\n return Effect.sync(() => {\n runtimeInternals.txn.registerReducer(String(tag), fn as any)\n }) as any\n }\n\n const effect: BoundApi<Sh, R>['effect'] = (token, handler) =>\n Effect.gen(function* () {\n if (!Action.isActionToken(token)) {\n return yield* Effect.die(new Error('[BoundApi.effect] token must be an ActionToken'))\n }\n\n const phase = getCurrentPhase()\n const logicUnit = options?.logicUnit\n\n yield* runtimeInternals.effects.registerEffect({\n actionTag: token.tag,\n handler: handler as any,\n phase,\n ...(logicUnit\n ? {\n logicUnit: {\n logicUnitId: logicUnit.logicUnitId,\n logicUnitLabel: logicUnit.logicUnitLabel,\n path: logicUnit.path,\n },\n }\n : {}),\n })\n }) as any\n\n const api: BoundApi<Sh, R> = {\n root: {\n resolve: (tag: any) => {\n guardRunOnly('root_resolve_in_setup', '$.root.resolve')\n return Root.resolve(tag, {\n entrypoint: 'logic.$.root.resolve',\n waitForReady: true,\n }) as any\n },\n },\n state: stateApi,\n actions,\n dispatchers,\n dispatch,\n flow: flowApi,\n match: matchApi,\n matchTag: matchTagApi,\n lifecycle: {\n onInitRequired: (eff: Logic.Of<Sh, R, void, never>) => {\n if (getCurrentPhase() === 'run') {\n return emitSetupOnlyViolation('$.lifecycle.onInitRequired') as any\n }\n runtimeInternals.lifecycle.registerInitRequired(eff as any)\n return Effect.void as any\n },\n onStart: (eff: Logic.Of<Sh, R, void, never>) => {\n if (getCurrentPhase() === 'run') {\n return emitSetupOnlyViolation('$.lifecycle.onStart') as any\n }\n runtimeInternals.lifecycle.registerStart(eff as any)\n return Effect.void as any\n },\n onInit: (eff: Logic.Of<Sh, R, void, never>) => {\n // Legacy alias: same semantics as onInitRequired (to reduce migration friction).\n if (getCurrentPhase() === 'run') {\n return emitSetupOnlyViolation('$.lifecycle.onInit') as any\n }\n runtimeInternals.lifecycle.registerInitRequired(eff as any)\n return Effect.void as any\n },\n onDestroy: (eff: Logic.Of<Sh, R, void, never>) => {\n if (getCurrentPhase() === 'run') {\n return emitSetupOnlyViolation('$.lifecycle.onDestroy') as any\n }\n runtimeInternals.lifecycle.registerDestroy(eff as any)\n return Effect.void as any\n },\n onError: (\n handler: (\n cause: import('effect').Cause.Cause<unknown>,\n context: Lifecycle.ErrorContext,\n ) => Effect.Effect<void, never, R>,\n ) => {\n if (getCurrentPhase() === 'run') {\n return emitSetupOnlyViolation('$.lifecycle.onError') as any\n }\n runtimeInternals.lifecycle.registerOnError(handler as any)\n return Effect.void as any\n },\n onSuspend: (eff: Logic.Of<Sh, R, void, never>) => {\n if (getCurrentPhase() === 'run') {\n return emitSetupOnlyViolation('$.lifecycle.onSuspend') as any\n }\n runtimeInternals.lifecycle.registerPlatformSuspend(Effect.asVoid(eff as Effect.Effect<void, never, any>))\n return Effect.void as any\n },\n onResume: (eff: Logic.Of<Sh, R, void, never>) => {\n if (getCurrentPhase() === 'run') {\n return emitSetupOnlyViolation('$.lifecycle.onResume') as any\n }\n runtimeInternals.lifecycle.registerPlatformResume(Effect.asVoid(eff as Effect.Effect<void, never, any>))\n return Effect.void as any\n },\n onReset: (eff: Logic.Of<Sh, R, void, never>) => {\n if (getCurrentPhase() === 'run') {\n return emitSetupOnlyViolation('$.lifecycle.onReset') as any\n }\n runtimeInternals.lifecycle.registerPlatformReset(Effect.asVoid(eff as Effect.Effect<void, never, any>))\n return Effect.void as any\n },\n },\n traits: {\n declare: (traits: ModuleTraits.TraitSpec) => {\n if (getCurrentPhase() === 'run') {\n throw LogicDiagnostics.makeLogicPhaseError(\n 'traits_declare_in_run',\n '$.traits.declare',\n 'run',\n options?.moduleId,\n )\n }\n\n if (!traits || typeof traits !== 'object') {\n throw new Error('[InvalidTraitsDeclaration] $.traits.declare expects an object.')\n }\n\n const logicUnit = options?.logicUnit ?? {\n logicUnitId: 'unknown',\n logicUnitIdKind: 'derived' as const,\n logicUnitLabel: 'logicUnit:unknown',\n path: undefined as string | undefined,\n }\n\n runtimeInternals.traits.registerModuleTraitsContribution({\n traits,\n provenance: {\n originType: 'logicUnit',\n originId: logicUnit.logicUnitId,\n originIdKind: logicUnit.logicUnitIdKind,\n originLabel: logicUnit.logicUnitLabel,\n path: logicUnit.path,\n },\n })\n },\n source: {\n refresh: (fieldPath: string, options?: { readonly force?: boolean }) =>\n Effect.gen(function* () {\n const handler = runtimeInternals.traits.getSourceRefreshHandler(fieldPath) as\n | ((state: Logix.StateOf<Sh>) => Effect.Effect<void, never, any>)\n | undefined\n if (!handler) {\n // If no refresh handler is registered, treat it as a no-op to avoid throwing when StateTraitProgram is not installed.\n return yield* Effect.void\n }\n\n const force = options?.force === true\n const runHandler = (state: Logix.StateOf<Sh>) =>\n force ? Effect.provideService(handler(state), TaskRunner.forceSourceRefresh, true) : handler(state)\n\n // Never call enqueueTransaction inside the transaction window (it can deadlock):\n // - Run the handler inside the current transaction so it writes to the draft via bound.state.mutate.\n // - The outer transaction window is responsible for commit + debug aggregation.\n const inTxn = yield* Effect.service(TaskRunner.inSyncTransactionFiber).pipe(Effect.orDie)\n if (inTxn) {\n const state = (yield* runtime.getState) as Logix.StateOf<Sh>\n return yield* runHandler(state)\n }\n\n // Treat one source-refresh as a dedicated transaction entry.\n return yield* runtimeInternals.txn.runWithStateTransaction(\n {\n kind: 'source-refresh',\n name: fieldPath,\n } as any,\n () =>\n Effect.gen(function* () {\n const state = (yield* runtime.getState) as Logix.StateOf<Sh>\n return yield* runHandler(state)\n }),\n )\n }),\n },\n },\n reducer,\n effect,\n use: new Proxy(() => {}, {\n apply: (_target, _thisArg, [arg]) => {\n guardRunOnly('use_in_setup', '$.use')\n if (isModuleLike(arg)) {\n const domain = arg\n const tag = domain.tag as unknown as ServiceMap.Key<any, Logix.ModuleRuntime<any, any>>\n\n const resolveAndBuild = resolveModuleRuntime(tag).pipe(Effect.map((rt) => buildModuleHandle(tag, rt)))\n\n const resolveWithDescriptor = resolveModuleRuntime(tag).pipe(\n Effect.tap((rt) => emitModuleDescriptorOnce(domain, rt)),\n Effect.map((rt) => buildModuleHandle(tag, rt)),\n )\n\n const detectAndSelect = Effect.service(Debug.currentDiagnosticsLevel).pipe(\n Effect.map((level) => {\n cachedDiagnosticsLevel = level\n return level\n }),\n Effect.flatMap((level) => (level === 'off' ? resolveAndBuild : resolveWithDescriptor)),\n )\n\n // 022 perf gate: when diagnostics are off, $.use(module) and $.use(module.tag) must be equivalent with zero extra overhead.\n // Constraint: Effect is a value (reusable), so we must one-time cache at execution time instead of branching at construction time.\n return Effect.suspend(() => {\n if (cachedDiagnosticsLevel === 'off') {\n return resolveAndBuild\n }\n\n if (cachedDiagnosticsLevel !== undefined) {\n return resolveWithDescriptor\n }\n\n return detectAndSelect\n }) as unknown as Logic.Of<Sh, R, any, never>\n }\n if (ServiceMap.isKey(arg)) {\n const candidate = arg as { _kind?: unknown }\n\n // Module: return a read-only ModuleHandle view.\n if (candidate._kind === 'ModuleTag') {\n return resolveModuleRuntime(arg as any).pipe(\n Effect.map((rt: Logix.ModuleRuntime<any, any>) => buildModuleHandle(arg as any, rt)),\n ) as unknown as Logic.Of<Sh, R, any, never>\n }\n\n // Regular service tag: read the service from Env.\n return Effect.service(arg as ServiceMap.Key<any, any>).pipe(Effect.orDie) as unknown as Logic.Of<Sh, R, any, never>\n }\n return Effect.die('BoundApi.use: unsupported argument') as unknown as Logic.Of<Sh, R, any, never>\n },\n }) as unknown as BoundApi<Sh, R>['use'],\n onAction: new Proxy(() => {}, {\n apply: (_target, _thisArg, args) => {\n guardRunOnly('use_in_setup', '$.onAction')\n const arg = args[0]\n if (Action.isActionToken(arg)) {\n const tag = arg.tag\n return createIntentBuilder(actionStreamByTag(tag).pipe(Stream.map((action: any) => action.payload)), tag)\n }\n if (Schema.isSchema(arg)) {\n const decode = Schema.decodeUnknownSync(arg as any)\n return createIntentBuilder(\n runtime.actions$.pipe(\n Stream.filter((a: any) => {\n try {\n decode(a)\n return true\n } catch {\n return false\n }\n }),\n ),\n )\n }\n if (typeof arg === 'function') {\n return createIntentBuilder(runtime.actions$.pipe(Stream.filter(arg)))\n }\n if (typeof arg === 'string') {\n return createIntentBuilder(actionStreamByTag(arg), arg)\n }\n if (typeof arg === 'object' && arg !== null) {\n if ('_tag' in arg) {\n const tag = String((arg as any)._tag)\n return createIntentBuilder(actionStreamByTag(tag), tag)\n }\n }\n return createIntentBuilder(runtime.actions$)\n },\n get: (_target, prop) => {\n guardRunOnly('use_in_setup', '$.onAction')\n if (typeof prop === 'string') {\n return createIntentBuilder(actionStreamByTag(prop), prop)\n }\n return undefined\n },\n }) as unknown as BoundApi<Sh, R>['onAction'],\n onState: (selector: (s: Logix.StateOf<Sh>) => any) => {\n guardRunOnly('use_in_setup', '$.onState')\n return createIntentBuilder(runtime.changes(selector))\n },\n on: (stream: Stream.Stream<any>) => {\n guardRunOnly('use_in_setup', '$.on')\n return createIntentBuilder(stream)\n },\n } as any\n\n setBoundInternals(api as any, runtimeInternals)\n\n return api\n}\n","import { Cause, Effect, Ref, ServiceMap } from 'effect'\nimport { toSerializableErrorSummary } from './errorSummary.js'\nimport * as Debug from './DebugSink.js'\n\nexport type Phase = 'init' | 'run' | 'destroy' | 'platform'\n\nexport type Hook = 'initRequired' | 'start' | 'destroy' | 'suspend' | 'resume' | 'reset' | 'unknown'\n\nexport type TaskKind = 'initRequired' | 'start' | 'destroy' | 'platformSuspend' | 'platformResume' | 'platformReset'\n\nexport interface ErrorContext {\n readonly phase: Phase\n readonly hook: Hook\n readonly moduleId: string\n readonly instanceId: string\n readonly taskId?: string\n readonly txnSeq?: number\n readonly opSeq?: number\n /**\n * For diagnostics only: an implementation-side marker indicating where the error originated,\n * e.g. \"logic.fork\" / \"initRequired\" / \"start\".\n *\n * Note: this field must be serializable and must not become a protocol anchor.\n */\n readonly origin?: string\n}\n\nexport interface ModuleRuntimeIdentity {\n readonly moduleId: string\n readonly instanceId: string\n readonly runtimeLabel?: string\n}\n\nexport type InstanceStatus = 'creating' | 'initializing' | 'ready' | 'failed' | 'terminating' | 'terminated'\n\nexport interface InitProgress {\n readonly total: number\n readonly completed: number\n readonly current?: number\n readonly startedAt?: number\n}\n\nexport type LifecycleOutcome =\n | { readonly status: 'success' }\n | {\n readonly status: 'failure'\n readonly error: import('./errorSummary.js').SerializableErrorSummary\n }\n\nexport interface LifecycleStatus {\n readonly identity: ModuleRuntimeIdentity\n readonly status: InstanceStatus\n readonly initOutcome?: LifecycleOutcome\n readonly initProgress?: InitProgress\n}\n\nexport interface TaskRef {\n readonly taskId: string\n readonly kind: TaskKind\n readonly order: number\n readonly name?: string\n readonly fatalOnFailure?: boolean\n}\n\nexport interface LifecycleTask extends TaskRef {\n readonly effect: Effect.Effect<void, never, any>\n}\n\nexport interface Budgets {\n /** Per-instance lifecycle event budget (aligned with specs/011 data-model; default ≤ 20). */\n readonly maxEventsPerInstance: number\n /** Per-event size budget (aligned with specs/011 data-model; default ≤ 4KB). */\n readonly maxEventBytes: number\n}\n\nexport interface LifecycleManager {\n readonly identity: ModuleRuntimeIdentity\n readonly budgets: Budgets\n\n readonly registerPlatformSuspend: (\n effect: Effect.Effect<void, never, any>,\n options?: { readonly name?: string },\n ) => void\n readonly registerPlatformResume: (\n effect: Effect.Effect<void, never, any>,\n options?: { readonly name?: string },\n ) => void\n readonly registerPlatformReset: (\n effect: Effect.Effect<void, never, any>,\n options?: { readonly name?: string },\n ) => void\n\n readonly registerInitRequired: (effect: Effect.Effect<void, never, any>, options?: { readonly name?: string }) => void\n readonly registerStart: (\n effect: Effect.Effect<void, never, any>,\n options?: { readonly name?: string; readonly fatalOnFailure?: boolean },\n ) => void\n readonly registerDestroy: (effect: Effect.Effect<void, never, any>, options?: { readonly name?: string }) => void\n readonly registerOnError: (\n handler: (cause: Cause.Cause<unknown>, context: ErrorContext) => Effect.Effect<void, never, any>,\n ) => void\n\n readonly getStatus: Effect.Effect<LifecycleStatus>\n readonly setStatus: (\n status: InstanceStatus,\n patch?: {\n readonly initOutcome?: LifecycleOutcome | undefined\n readonly initProgress?: InitProgress | undefined\n readonly runtimeLabel?: string | undefined\n },\n ) => Effect.Effect<void>\n\n readonly notifyError: (cause: Cause.Cause<unknown>, context: ErrorContext) => Effect.Effect<void, never, any>\n\n readonly runPlatformSuspend: Effect.Effect<void, never, any>\n readonly runPlatformResume: Effect.Effect<void, never, any>\n readonly runPlatformReset: Effect.Effect<void, never, any>\n\n readonly runInitRequired: Effect.Effect<void, unknown, any>\n readonly runStart: Effect.Effect<void, never, any>\n readonly runDestroy: Effect.Effect<void, never, any>\n\n /** Diagnostics only: whether any onError handler has been registered. */\n readonly hasOnErrorHandlers: Effect.Effect<boolean>\n\n /** Tests/diagnostics only: read a snapshot of registered tasks (immutable view). */\n readonly getTaskSnapshot: Effect.Effect<\n Readonly<{\n readonly initRequired: ReadonlyArray<TaskRef>\n readonly start: ReadonlyArray<TaskRef>\n readonly destroy: ReadonlyArray<TaskRef>\n readonly platformSuspend: ReadonlyArray<TaskRef>\n readonly platformResume: ReadonlyArray<TaskRef>\n readonly platformReset: ReadonlyArray<TaskRef>\n }>,\n never,\n never\n >\n}\n\nexport class LifecycleContext extends ServiceMap.Service<LifecycleContext, LifecycleManager>()('@logixjs/LifecycleManager') {}\n\nconst safeRun = (label: string, eff: Effect.Effect<void, any, any>) =>\n eff.pipe(\n Effect.matchCauseEffect({\n onSuccess: () => Effect.void,\n onFailure: (cause) => Effect.logError(`[${label}] failed: ${Cause.pretty(cause)}`),\n }),\n )\n\nconst makeTaskId = (kind: TaskKind, order: number): string => `${kind}:${order}`\n\nexport const makeLifecycleManager = (identity: ModuleRuntimeIdentity): Effect.Effect<LifecycleManager> =>\n Effect.gen(function* () {\n const budgets: Budgets = {\n maxEventsPerInstance: 20,\n maxEventBytes: 4 * 1024,\n }\n\n const statusRef = yield* Ref.make<LifecycleStatus>({\n identity,\n status: 'creating',\n })\n\n const initRequired: LifecycleTask[] = []\n const start: LifecycleTask[] = []\n const destroy: LifecycleTask[] = []\n const platformSuspend: LifecycleTask[] = []\n const platformResume: LifecycleTask[] = []\n const platformReset: LifecycleTask[] = []\n const onErrorHandlers: Array<\n (cause: Cause.Cause<unknown>, context: ErrorContext) => Effect.Effect<void, never, any>\n > = []\n\n const getStatus: Effect.Effect<LifecycleStatus> = Ref.get(statusRef)\n\n const recordPhase = (phase: Phase, name: string, payload?: unknown): Effect.Effect<void, never, any> =>\n Debug.record({\n type: 'lifecycle:phase',\n moduleId: identity.moduleId,\n instanceId: identity.instanceId,\n phase,\n name,\n payload,\n })\n\n const setStatus = (\n status: InstanceStatus,\n patch?: {\n readonly initOutcome?: LifecycleOutcome | undefined\n readonly initProgress?: InitProgress | undefined\n readonly runtimeLabel?: string | undefined\n },\n ) =>\n Ref.update(statusRef, (prev) => ({\n ...prev,\n identity: {\n ...prev.identity,\n ...(patch?.runtimeLabel ? { runtimeLabel: patch.runtimeLabel } : null),\n },\n status,\n ...(patch?.initOutcome !== undefined ? { initOutcome: patch.initOutcome } : null),\n ...(patch?.initProgress !== undefined ? { initProgress: patch.initProgress } : null),\n }))\n\n const registerInitRequired = (effect: Effect.Effect<void, never, any>, options?: { readonly name?: string }) => {\n const order = initRequired.length\n initRequired.push({\n taskId: makeTaskId('initRequired', order),\n kind: 'initRequired',\n order,\n name: options?.name,\n effect,\n })\n }\n\n const registerStart = (\n effect: Effect.Effect<void, never, any>,\n options?: { readonly name?: string; readonly fatalOnFailure?: boolean },\n ) => {\n const order = start.length\n start.push({\n taskId: makeTaskId('start', order),\n kind: 'start',\n order,\n name: options?.name,\n fatalOnFailure: options?.fatalOnFailure,\n effect,\n })\n }\n\n const registerDestroy = (effect: Effect.Effect<void, never, any>, options?: { readonly name?: string }) => {\n const order = destroy.length\n destroy.push({\n taskId: makeTaskId('destroy', order),\n kind: 'destroy',\n order,\n name: options?.name,\n effect,\n })\n }\n\n const registerOnError = (\n handler: (cause: Cause.Cause<unknown>, context: ErrorContext) => Effect.Effect<void, never, any>,\n ) => {\n onErrorHandlers.push(handler)\n }\n\n const registerPlatformSuspend = (effect: Effect.Effect<void, never, any>, options?: { readonly name?: string }) => {\n const order = platformSuspend.length\n platformSuspend.push({\n taskId: makeTaskId('platformSuspend', order),\n kind: 'platformSuspend',\n order,\n name: options?.name,\n effect,\n })\n }\n\n const registerPlatformResume = (effect: Effect.Effect<void, never, any>, options?: { readonly name?: string }) => {\n const order = platformResume.length\n platformResume.push({\n taskId: makeTaskId('platformResume', order),\n kind: 'platformResume',\n order,\n name: options?.name,\n effect,\n })\n }\n\n const registerPlatformReset = (effect: Effect.Effect<void, never, any>, options?: { readonly name?: string }) => {\n const order = platformReset.length\n platformReset.push({\n taskId: makeTaskId('platformReset', order),\n kind: 'platformReset',\n order,\n name: options?.name,\n effect,\n })\n }\n\n const notifyError = (cause: Cause.Cause<unknown>, context: ErrorContext) => {\n // Interrupt/cancel should not be reported as an error.\n if (Cause.hasInterruptsOnly(cause)) {\n return Effect.void\n }\n\n return Debug.record({\n type: 'lifecycle:error',\n moduleId: context.moduleId,\n instanceId: context.instanceId,\n cause,\n phase: context.phase,\n hook: context.hook,\n taskId: context.taskId,\n txnSeq: context.txnSeq,\n opSeq: context.opSeq,\n origin: context.origin,\n }).pipe(\n Effect.flatMap(() =>\n Effect.forEach(\n onErrorHandlers,\n (handler) =>\n handler(cause, context).pipe(\n Effect.catchCause((inner) => Effect.logError(`[lifecycle.onError] failed: ${Cause.pretty(inner)}`)),\n ),\n { discard: true },\n ),\n ),\n )\n }\n\n const runInitRequired: Effect.Effect<void, unknown, any> = Effect.gen(function* () {\n const total = initRequired.length\n if (total === 0) {\n yield* setStatus('ready', {\n initProgress: { total: 0, completed: 0 },\n initOutcome: { status: 'success' },\n })\n return\n }\n\n const startedAt = Date.now()\n yield* recordPhase('init', 'initRequired:start', { total })\n yield* setStatus('initializing', {\n initProgress: { total, completed: 0, current: 0, startedAt },\n })\n\n let completed = 0\n for (let i = 0; i < initRequired.length; i++) {\n yield* setStatus('initializing', {\n initProgress: { total, completed, current: i, startedAt },\n })\n\n const task = initRequired[i]\n const exit = yield* Effect.exit(task.effect)\n\n if (exit._tag === 'Success') {\n completed += 1\n yield* setStatus('initializing', {\n initProgress: { total, completed, current: i + 1, startedAt },\n })\n continue\n }\n\n const summary = toSerializableErrorSummary(exit.cause)\n yield* notifyError(exit.cause, {\n phase: 'init',\n hook: 'initRequired',\n moduleId: identity.moduleId,\n instanceId: identity.instanceId,\n taskId: task.taskId,\n origin: 'initRequired',\n })\n\n yield* setStatus('failed', {\n initProgress: { total, completed, current: i, startedAt },\n initOutcome: { status: 'failure', error: summary.errorSummary },\n })\n\n return yield* Effect.failCause(exit.cause)\n }\n\n yield* recordPhase('init', 'initRequired:success', { total })\n yield* setStatus('ready', {\n initProgress: { total, completed, current: total, startedAt },\n initOutcome: { status: 'success' },\n })\n })\n\n const runStart: Effect.Effect<void, never, any> = recordPhase('run', 'start:schedule', {\n total: start.length,\n }).pipe(\n Effect.flatMap(() =>\n Effect.forEach(\n start,\n (task) =>\n Effect.forkScoped(\n task.effect.pipe(\n Effect.catchCause((cause) =>\n notifyError(cause, {\n phase: 'run',\n hook: 'start',\n moduleId: identity.moduleId,\n instanceId: identity.instanceId,\n taskId: task.taskId,\n origin: 'start',\n })),\n ),\n ).pipe(Effect.asVoid),\n { discard: true, concurrency: 'unbounded' },\n ),\n ),\n )\n\n const runDestroy: Effect.Effect<void, never, any> = Effect.gen(function* () {\n yield* recordPhase('destroy', 'destroy:start', { total: destroy.length })\n yield* setStatus('terminating')\n\n // destroy: run in reverse registration order (LIFO), best-effort (one failure does not block others).\n for (let i = destroy.length - 1; i >= 0; i--) {\n const task = destroy[i]\n yield* safeRun(\n 'lifecycle.onDestroy',\n task.effect.pipe(\n Effect.catchCause((cause) =>\n notifyError(cause, {\n phase: 'destroy',\n hook: 'destroy',\n moduleId: identity.moduleId,\n instanceId: identity.instanceId,\n taskId: task.taskId,\n origin: 'destroy',\n })),\n ),\n )\n }\n\n yield* setStatus('terminated')\n yield* recordPhase('destroy', 'destroy:done', { total: destroy.length })\n })\n\n const runPlatformSuspend: Effect.Effect<void, never, any> = Effect.gen(function* () {\n if (platformSuspend.length === 0) return\n\n yield* recordPhase('platform', 'signal:suspend', { total: platformSuspend.length })\n for (const task of platformSuspend) {\n yield* safeRun(\n 'lifecycle.onSuspend',\n task.effect.pipe(\n Effect.catchCause((cause) =>\n notifyError(cause, {\n phase: 'platform',\n hook: 'suspend',\n moduleId: identity.moduleId,\n instanceId: identity.instanceId,\n taskId: task.taskId,\n origin: 'platform.suspend',\n })),\n ),\n )\n }\n })\n\n const runPlatformResume: Effect.Effect<void, never, any> = Effect.gen(function* () {\n if (platformResume.length === 0) return\n\n yield* recordPhase('platform', 'signal:resume', { total: platformResume.length })\n for (const task of platformResume) {\n yield* safeRun(\n 'lifecycle.onResume',\n task.effect.pipe(\n Effect.catchCause((cause) =>\n notifyError(cause, {\n phase: 'platform',\n hook: 'resume',\n moduleId: identity.moduleId,\n instanceId: identity.instanceId,\n taskId: task.taskId,\n origin: 'platform.resume',\n })),\n ),\n )\n }\n })\n\n const runPlatformReset: Effect.Effect<void, never, any> = Effect.gen(function* () {\n if (platformReset.length === 0) return\n\n yield* recordPhase('platform', 'signal:reset', { total: platformReset.length })\n for (const task of platformReset) {\n yield* safeRun(\n 'lifecycle.onReset',\n task.effect.pipe(\n Effect.catchCause((cause) =>\n notifyError(cause, {\n phase: 'platform',\n hook: 'reset',\n moduleId: identity.moduleId,\n instanceId: identity.instanceId,\n taskId: task.taskId,\n origin: 'platform.reset',\n })),\n ),\n )\n }\n })\n\n const getTaskSnapshot: LifecycleManager['getTaskSnapshot'] = Effect.sync(() => ({\n initRequired: initRequired.map(({ effect: _eff, ...rest }) => rest),\n start: start.map(({ effect: _eff, ...rest }) => rest),\n destroy: destroy.map(({ effect: _eff, ...rest }) => rest),\n platformSuspend: platformSuspend.map(({ effect: _eff, ...rest }) => rest),\n platformResume: platformResume.map(({ effect: _eff, ...rest }) => rest),\n platformReset: platformReset.map(({ effect: _eff, ...rest }) => rest),\n }))\n\n const hasOnErrorHandlers: LifecycleManager['hasOnErrorHandlers'] = Effect.sync(() => onErrorHandlers.length > 0)\n\n return {\n identity,\n budgets,\n registerPlatformSuspend,\n registerPlatformResume,\n registerPlatformReset,\n registerInitRequired,\n registerStart,\n registerDestroy,\n registerOnError,\n getStatus,\n setStatus,\n notifyError,\n runPlatformSuspend,\n runPlatformResume,\n runPlatformReset,\n runInitRequired,\n runStart,\n runDestroy,\n hasOnErrorHandlers,\n getTaskSnapshot,\n }\n })\n","import { Cause, Effect, ServiceMap } from 'effect'\nimport * as Debug from './DebugSink.js'\nimport { isDevEnv } from './env.js'\n\nconst phaseDiagnosticsEnabled = (): boolean => isDevEnv()\n\n/**\n * Logic diagnostics:\n * - Currently focuses on initialization noise caused by missing Env services (\"Service not found\").\n *\n * Design intent:\n * - In recommended usage, Runtime / React layers provide Env correctly.\n * - In some startup timing windows, Logic may try to read services before Env is fully provided.\n * - Such errors often occur once, do not change final semantics, but pollute logs.\n *\n * Therefore we emit a warning diagnostic via Debug, explaining likely causes and investigation paths.\n * The real error semantics are still handled by lifecycle.onError / AppRuntime.onError.\n */\n\nconst SERVICE_NOT_FOUND_PREFIX = 'Service not found:'\n\n/**\n * If the Cause contains a `Service not found: ...` error, emit a warning diagnostic:\n * - code: logic::env_service_not_found\n * - message: the original error message\n * - hint: explains this is known startup timing noise and suggests what to check\n */\nexport const emitEnvServiceNotFoundDiagnosticIfNeeded = (\n cause: Cause.Cause<unknown>,\n moduleId?: string,\n): Effect.Effect<void> =>\n Effect.gen(function* () {\n let pretty: string\n try {\n pretty = Cause.pretty(cause)\n } catch {\n return\n }\n\n if (!pretty.includes(SERVICE_NOT_FOUND_PREFIX)) {\n return\n }\n\n // 1) Warning diagnostic for the missing Env service itself\n yield* Debug.record({\n type: 'diagnostic',\n moduleId,\n code: 'logic::env_service_not_found',\n severity: 'warning',\n message: pretty,\n hint:\n 'Logic attempted to access an Env service before it was provided. This is a known initialization timing noise in Runtime/React integration. ' +\n \"If it happens once during early startup and everything works afterward, it's likely harmless; \" +\n 'if it persists or correlates with app issues, verify Runtime.make / RuntimeProvider.layer provides the service.',\n })\n\n // 2) In some cases (e.g. accessing Env too early during Logic setup), we also want to surface\n // logic::invalid_phase to suggest moving Env access to the run section.\n //\n // Because we cannot reliably determine the phase at this point, this is only a supplemental signal.\n // The real phase guard is still handled by LogicPhaseError + emitInvalidPhaseDiagnosticIfNeeded.\n yield* Debug.record({\n type: 'diagnostic',\n moduleId,\n code: 'logic::invalid_phase',\n severity: 'error',\n message: '$.use is not allowed before Env is fully ready.',\n hint:\n 'Avoid reading services during setup or before Env is ready; ' +\n 'move Env access to the Logic run section, or wrap init via $.lifecycle.onInitRequired.',\n kind: 'env_service_not_ready',\n })\n })\n\nexport interface LogicPhaseError extends Error {\n readonly _tag: 'LogicPhaseError'\n readonly kind: string\n readonly api?: string\n readonly phase: 'setup' | 'run'\n readonly moduleId?: string\n}\n\nexport interface LogicPhaseService {\n readonly current: 'setup' | 'run'\n}\n\nexport class LogicPhaseServiceTag extends ServiceMap.Service<\n LogicPhaseServiceTag,\n LogicPhaseService\n>()('@logixjs/LogicPhaseService') {}\n\n/**\n * LogicUnitService:\n * - Injected while executing each mounted logic unit (scope = the logic unit's setup/run fiber).\n * - Used for trait provenance and other \"bound to the current logic unit\" information (aligned with 022-module logicUnitId).\n *\n * Constraints:\n * - Read-only (must not mutate runtime state); only a provenance/diagnostics anchor.\n */\nexport interface LogicUnitService {\n readonly logicUnitId: string\n readonly logicUnitIdKind: 'explicit' | 'derived'\n readonly logicUnitLabel: string\n readonly path?: string\n}\n\nexport class LogicUnitServiceTag extends ServiceMap.Service<\n LogicUnitServiceTag,\n LogicUnitService\n>()('@logixjs/LogicUnitService') {}\n\nexport const makeLogicPhaseError = (\n kind: string,\n api: string,\n phase: 'setup' | 'run',\n moduleId?: string,\n): LogicPhaseError =>\n Object.assign(new Error(`[LogicPhaseError] ${api} is not allowed in ${phase} phase (kind=${kind}).`), {\n _tag: 'LogicPhaseError',\n kind,\n api,\n phase,\n moduleId,\n }) as LogicPhaseError\n\n/**\n * Extracts LogicPhaseError from a Cause and emits it as a diagnostic:\n * - code: logic::invalid_phase\n * - kind: concrete violation kind (e.g. use_in_setup)\n */\nexport const emitInvalidPhaseDiagnosticIfNeeded = (\n cause: Cause.Cause<unknown>,\n moduleId?: string,\n): Effect.Effect<void> =>\n Effect.gen(function* () {\n if (!phaseDiagnosticsEnabled()) {\n return\n }\n\n const allErrors = cause.reasons\n .filter((reason) => Cause.isFailReason(reason) || Cause.isDieReason(reason))\n .map((reason) => (Cause.isFailReason(reason) ? reason.error : reason.defect))\n\n for (const err of allErrors) {\n const logicErr = err as any\n if (logicErr && logicErr._tag === 'LogicPhaseError') {\n const phaseErr = logicErr as LogicPhaseError\n const hint =\n phaseErr.kind === 'use_in_setup' || phaseErr.kind === 'lifecycle_in_setup'\n ? 'The setup phase must not read Env/services or run long-lived logic; move the relevant calls to the run phase.'\n : phaseErr.kind === 'lifecycle_in_run'\n ? 'Do not register $.lifecycle.* in the run phase (setup-only). Move lifecycle registrations to the synchronous part of Module.logic builder (before return).'\n : phaseErr.kind === 'traits_in_run' || phaseErr.kind === 'traits_declare_in_run'\n ? 'Traits are frozen after setup; move $.traits.declare to LogicPlan.setup or the setup registration phase of Module.logic builder.'\n : 'Move logic to the run phase; keep setup for registrations only.'\n\n yield* Debug.record({\n type: 'diagnostic',\n moduleId: phaseErr.moduleId ?? moduleId,\n code: 'logic::invalid_phase',\n severity: 'error',\n message: `${phaseErr.api ?? phaseErr.kind} is not allowed in ${phaseErr.phase} phase.`,\n hint,\n kind: phaseErr.kind,\n })\n\n // Return after the first LogicPhaseError match.\n return\n }\n }\n })\n"],"mappings":"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","names":["sawStar","patchPaths","Effect","ServiceMap","Cause","Effect","ServiceMap","Effect","Cause","ServiceMap","Effect","make","api","ServiceMap","resolve","options"]}
|