@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.
Files changed (398) hide show
  1. package/LICENSE +201 -0
  2. package/dist/{Action-mqVvtEHt.d.ts → Action-DYl88bwj.d.ts} +1 -1
  3. package/dist/{Action-BkRHy2vg.d.cts → Action-DkxsI_DK.d.cts} +1 -1
  4. package/dist/Action.cjs.map +1 -1
  5. package/dist/Action.d.cts +1 -1
  6. package/dist/Action.d.ts +1 -1
  7. package/dist/Action.js +2 -2
  8. package/dist/{Actions-AsQ07yTP.d.cts → Actions-Dicm7jdc.d.cts} +2 -2
  9. package/dist/{Actions-AsQ07yTP.d.ts → Actions-Dicm7jdc.d.ts} +2 -2
  10. package/dist/Actions.cjs.map +1 -1
  11. package/dist/Actions.d.cts +1 -1
  12. package/dist/Actions.d.ts +1 -1
  13. package/dist/Actions.js +1 -1
  14. package/dist/{Bound-BN1DQ_lM.d.ts → Bound-1OJLzVIS.d.ts} +2 -2
  15. package/dist/{Bound-BPIfH9SS.d.cts → Bound-BMLrtQ1V.d.cts} +2 -2
  16. package/dist/Bound.cjs +1737 -399
  17. package/dist/Bound.cjs.map +1 -1
  18. package/dist/Bound.d.cts +5 -5
  19. package/dist/Bound.d.ts +5 -5
  20. package/dist/Bound.js +19 -17
  21. package/dist/{Debug-B5q5Bkzx.d.ts → Debug-DKrWP5H1.d.ts} +40 -22
  22. package/dist/{Debug-Bq8Sqjcr.d.cts → Debug-hIT44XsY.d.cts} +40 -22
  23. package/dist/Debug.cjs +1348 -318
  24. package/dist/Debug.cjs.map +1 -1
  25. package/dist/Debug.d.cts +12 -11
  26. package/dist/Debug.d.ts +12 -11
  27. package/dist/Debug.js +20 -11
  28. package/dist/EffectOp.cjs +15 -6
  29. package/dist/EffectOp.cjs.map +1 -1
  30. package/dist/EffectOp.js +3 -3
  31. package/dist/Env.cjs +772 -6
  32. package/dist/Env.cjs.map +1 -1
  33. package/dist/Env.js +5 -2
  34. package/dist/ExternalStore-DqJKKRJ4.d.ts +61 -0
  35. package/dist/ExternalStore-JC-gAgEI.d.cts +61 -0
  36. package/dist/ExternalStore.cjs +774 -0
  37. package/dist/ExternalStore.cjs.map +1 -0
  38. package/dist/ExternalStore.d.cts +8 -0
  39. package/dist/ExternalStore.d.ts +8 -0
  40. package/dist/ExternalStore.js +19 -0
  41. package/dist/ExternalStore.js.map +1 -0
  42. package/dist/{Flow-BhpjE22E.d.ts → Flow-CZmXRDqp.d.cts} +13 -4
  43. package/dist/{Flow-1fZT8MpX.d.cts → Flow-DIVDxz7R.d.ts} +13 -4
  44. package/dist/Flow.cjs +765 -148
  45. package/dist/Flow.cjs.map +1 -1
  46. package/dist/Flow.d.cts +6 -6
  47. package/dist/Flow.d.ts +6 -6
  48. package/dist/Flow.js +9 -8
  49. package/dist/{Handle-D_cLW1Z3.d.ts → Handle-Bo6cAFut.d.ts} +1 -1
  50. package/dist/{Handle-D8D1zPb_.d.cts → Handle-CfDvSqN7.d.cts} +1 -1
  51. package/dist/Handle.d.cts +5 -5
  52. package/dist/Handle.d.ts +5 -5
  53. package/dist/{Kernel-8kC-jOda.d.cts → Kernel-CuXBF9S_.d.cts} +16 -7
  54. package/dist/{Kernel-CnGE1Fyk.d.ts → Kernel-D9guNwRL.d.ts} +16 -7
  55. package/dist/Kernel.cjs +814 -26
  56. package/dist/Kernel.cjs.map +1 -1
  57. package/dist/Kernel.d.cts +13 -12
  58. package/dist/Kernel.d.ts +13 -12
  59. package/dist/Kernel.js +7 -4
  60. package/dist/{Link-Db7975nU.d.ts → Link-CUM0yUCH.d.ts} +10 -3
  61. package/dist/{Link-fX8x1eCK.d.cts → Link-NAfR6uGD.d.cts} +10 -3
  62. package/dist/Link.cjs +1294 -121
  63. package/dist/Link.cjs.map +1 -1
  64. package/dist/Link.d.cts +5 -5
  65. package/dist/Link.d.ts +5 -5
  66. package/dist/Link.js +37 -29
  67. package/dist/{Logic-DRh4sDZj.d.cts → Logic-09VQpIj3.d.cts} +7 -4
  68. package/dist/{Logic-BRjEMr-W.d.ts → Logic-DKg7ghGy.d.ts} +7 -4
  69. package/dist/Logic.cjs +2 -1
  70. package/dist/Logic.cjs.map +1 -1
  71. package/dist/Logic.d.cts +5 -5
  72. package/dist/Logic.d.ts +5 -5
  73. package/dist/Logic.js +1 -1
  74. package/dist/{MatchBuilder-CJk5oCkR.d.cts → MatchBuilder-CsW5jgrL.d.ts} +1 -1
  75. package/dist/{MatchBuilder-0QOc-nlU.d.ts → MatchBuilder-Dksk07F4.d.cts} +1 -1
  76. package/dist/MatchBuilder.cjs +2 -2
  77. package/dist/MatchBuilder.cjs.map +1 -1
  78. package/dist/MatchBuilder.d.cts +6 -6
  79. package/dist/MatchBuilder.d.ts +6 -6
  80. package/dist/MatchBuilder.js +2 -2
  81. package/dist/Middleware-D8tUDLv_.d.cts +100 -0
  82. package/dist/Middleware-DS7CbTTN.d.ts +100 -0
  83. package/dist/Middleware.cjs +678 -58
  84. package/dist/Middleware.cjs.map +1 -1
  85. package/dist/Middleware.d.cts +2 -86
  86. package/dist/Middleware.d.ts +2 -86
  87. package/dist/Middleware.js +15 -12
  88. package/dist/{Module-DnzluX2J.d.ts → Module-B_Cntyms.d.ts} +54 -25
  89. package/dist/{Module-B_0xRDMR.d.cts → Module-CmNOVXzf.d.cts} +54 -25
  90. package/dist/Module.cjs +9331 -3317
  91. package/dist/Module.cjs.map +1 -1
  92. package/dist/Module.d.cts +7 -6
  93. package/dist/Module.d.ts +7 -6
  94. package/dist/Module.js +39 -31
  95. package/dist/ModuleTag-CGho_InD.d.ts +113 -0
  96. package/dist/ModuleTag-CITb8L_G.d.cts +113 -0
  97. package/dist/ModuleTag.cjs +7248 -2847
  98. package/dist/ModuleTag.cjs.map +1 -1
  99. package/dist/ModuleTag.d.cts +6 -6
  100. package/dist/ModuleTag.d.ts +6 -6
  101. package/dist/ModuleTag.js +35 -29
  102. package/dist/Observability-Bdhnx2Dv.d.ts +385 -0
  103. package/dist/Observability-DXGAFBIT.d.cts +385 -0
  104. package/dist/Observability.cjs +5093 -1556
  105. package/dist/Observability.cjs.map +1 -1
  106. package/dist/Observability.d.cts +6 -7
  107. package/dist/Observability.d.ts +6 -7
  108. package/dist/Observability.js +28 -23
  109. package/dist/{Platform-CHX8o-U4.d.ts → Platform-B4s8tg6C.d.cts} +4 -5
  110. package/dist/{Platform-C49Pv956.d.cts → Platform-BV_0MW7g.d.cts} +5 -2
  111. package/dist/{Platform-C49Pv956.d.ts → Platform-BV_0MW7g.d.ts} +5 -2
  112. package/dist/{Platform-CVlv0xLQ.d.cts → Platform-W0Mefy_e.d.ts} +4 -5
  113. package/dist/Platform.cjs +2 -1
  114. package/dist/Platform.cjs.map +1 -1
  115. package/dist/Platform.d.cts +2 -3
  116. package/dist/Platform.d.ts +2 -3
  117. package/dist/Platform.js +2 -2
  118. package/dist/{Process-CM9xbMdP.d.ts → Process-CO8G7HO9.d.cts} +30 -5
  119. package/dist/{Process-mL8fHDSB.d.cts → Process-Cyf6VNDR.d.ts} +30 -5
  120. package/dist/Process.cjs +1288 -120
  121. package/dist/Process.cjs.map +1 -1
  122. package/dist/Process.d.cts +6 -6
  123. package/dist/Process.d.ts +6 -6
  124. package/dist/Process.js +34 -26
  125. package/dist/ReadQuery-C_or5nLC.d.ts +128 -0
  126. package/dist/ReadQuery-DXLzCE0E.d.cts +614 -0
  127. package/dist/ReadQuery-DXLzCE0E.d.ts +614 -0
  128. package/dist/ReadQuery-Yve1lmUo.d.cts +128 -0
  129. package/dist/ReadQuery.cjs +290 -5
  130. package/dist/ReadQuery.cjs.map +1 -1
  131. package/dist/ReadQuery.d.cts +3 -2
  132. package/dist/ReadQuery.d.ts +3 -2
  133. package/dist/ReadQuery.js +23 -5
  134. package/dist/{Reflection-CQnKwPXj.d.ts → Reflection-B2Xi1e4Q.d.ts} +89 -7
  135. package/dist/{Reflection-Kabo1mlU.d.cts → Reflection-DNB4V4_e.d.cts} +89 -7
  136. package/dist/Reflection.cjs +3227 -1617
  137. package/dist/Reflection.cjs.map +1 -1
  138. package/dist/Reflection.d.cts +17 -15
  139. package/dist/Reflection.d.ts +17 -15
  140. package/dist/Reflection.js +33 -25
  141. package/dist/{Resource-Dy1xD_DG.d.cts → Resource-pKvQQ4x5.d.cts} +3 -3
  142. package/dist/{Resource-Dy1xD_DG.d.ts → Resource-pKvQQ4x5.d.ts} +3 -3
  143. package/dist/Resource.cjs +781 -15
  144. package/dist/Resource.cjs.map +1 -1
  145. package/dist/Resource.d.cts +1 -1
  146. package/dist/Resource.d.ts +1 -1
  147. package/dist/Resource.js +6 -3
  148. package/dist/{Root-7ADUMk4t.d.cts → Root-CCVuFHB6.d.cts} +3 -3
  149. package/dist/{Root-7ADUMk4t.d.ts → Root-CCVuFHB6.d.ts} +3 -3
  150. package/dist/Root.cjs +786 -20
  151. package/dist/Root.cjs.map +1 -1
  152. package/dist/Root.d.cts +2 -2
  153. package/dist/Root.d.ts +2 -2
  154. package/dist/Root.js +7 -3
  155. package/dist/{Runtime-CtyzZG4i.d.ts → Runtime-CRmvwK4I.d.ts} +70 -14
  156. package/dist/{Runtime-B-aL-f29.d.cts → Runtime-C_wJM9mN.d.cts} +70 -14
  157. package/dist/Runtime.cjs +4942 -1601
  158. package/dist/Runtime.cjs.map +1 -1
  159. package/dist/Runtime.d.cts +17 -15
  160. package/dist/Runtime.d.ts +17 -15
  161. package/dist/Runtime.js +44 -32
  162. package/dist/{ScopeRegistry-D1owDNSm.d.cts → ScopeRegistry-BhYzqWri.d.cts} +6 -6
  163. package/dist/{ScopeRegistry-D1owDNSm.d.ts → ScopeRegistry-BhYzqWri.d.ts} +6 -6
  164. package/dist/ScopeRegistry.cjs +776 -10
  165. package/dist/ScopeRegistry.cjs.map +1 -1
  166. package/dist/ScopeRegistry.d.cts +1 -1
  167. package/dist/ScopeRegistry.d.ts +1 -1
  168. package/dist/ScopeRegistry.js +6 -3
  169. package/dist/{State-CU50R26M.d.cts → State-rNFsFPTl.d.cts} +2 -2
  170. package/dist/{State-CU50R26M.d.ts → State-rNFsFPTl.d.ts} +2 -2
  171. package/dist/State.cjs.map +1 -1
  172. package/dist/State.d.cts +1 -1
  173. package/dist/State.d.ts +1 -1
  174. package/dist/State.js +1 -1
  175. package/dist/{StateTrait-BGsZghTz.d.ts → StateTrait-CijdwNb6.d.ts} +25 -8
  176. package/dist/{StateTrait-OWhbj12c.d.cts → StateTrait-Dltto6PU.d.cts} +25 -8
  177. package/dist/StateTrait.cjs +1890 -528
  178. package/dist/StateTrait.cjs.map +1 -1
  179. package/dist/StateTrait.d.cts +9 -7
  180. package/dist/StateTrait.d.ts +9 -7
  181. package/dist/StateTrait.js +18 -14
  182. package/dist/{TraitLifecycle-CwV5WPFX.d.cts → TraitLifecycle-BKzDqzLu.d.cts} +2 -2
  183. package/dist/{TraitLifecycle-LdIWmKlg.d.ts → TraitLifecycle-Cvo94uDB.d.ts} +2 -2
  184. package/dist/TraitLifecycle.cjs +630 -67
  185. package/dist/TraitLifecycle.cjs.map +1 -1
  186. package/dist/TraitLifecycle.d.cts +6 -6
  187. package/dist/TraitLifecycle.d.ts +6 -6
  188. package/dist/TraitLifecycle.js +8 -7
  189. package/dist/Workflow-C_OWr4dV.d.ts +415 -0
  190. package/dist/Workflow-DmydkHO8.d.cts +415 -0
  191. package/dist/Workflow.cjs +3150 -0
  192. package/dist/Workflow.cjs.map +1 -0
  193. package/dist/Workflow.d.cts +7 -0
  194. package/dist/Workflow.d.ts +7 -0
  195. package/dist/Workflow.js +58 -0
  196. package/dist/Workflow.js.map +1 -0
  197. package/dist/{action-DiMDD_0v.d.cts → action-BQxjPFEw.d.cts} +5 -5
  198. package/dist/{action-DiMDD_0v.d.ts → action-BQxjPFEw.d.ts} +5 -5
  199. package/dist/chunk-2XRLXDWR.js +276 -0
  200. package/dist/chunk-2XRLXDWR.js.map +1 -0
  201. package/dist/chunk-3L6QGFMM.js +701 -0
  202. package/dist/chunk-3L6QGFMM.js.map +1 -0
  203. package/dist/{chunk-GMPEOUP2.js → chunk-4MZ7BT3R.js} +2 -2
  204. package/dist/chunk-4MZ7BT3R.js.map +1 -0
  205. package/dist/{chunk-3IYZ5IGG.js → chunk-5WKUGEBY.js} +2 -2
  206. package/dist/{chunk-3RMKLXHX.js → chunk-63ZQ5RIN.js} +2 -2
  207. package/dist/{chunk-M3WTHJHJ.js → chunk-67DIEA53.js} +385 -148
  208. package/dist/chunk-67DIEA53.js.map +1 -0
  209. package/dist/{chunk-YS3AZQ2G.js → chunk-6HFAW2MH.js} +1 -1
  210. package/dist/chunk-6HFAW2MH.js.map +1 -0
  211. package/dist/{chunk-EY4NZKDR.js → chunk-6Y2TKCNY.js} +2 -2
  212. package/dist/{chunk-76WT3HOR.js → chunk-6YZOXFPQ.js} +25 -24
  213. package/dist/chunk-6YZOXFPQ.js.map +1 -0
  214. package/dist/{chunk-G5ZBFPNU.js → chunk-A2RQOJC7.js} +2 -2
  215. package/dist/{chunk-AUIR5O6W.js → chunk-AFSB6NKM.js} +13 -19
  216. package/dist/chunk-AFSB6NKM.js.map +1 -0
  217. package/dist/{chunk-JCXGZRMU.js → chunk-AO4JEOKD.js} +22 -23
  218. package/dist/chunk-AO4JEOKD.js.map +1 -0
  219. package/dist/{chunk-TAAPQVZN.js → chunk-AYELIQXR.js} +2 -2
  220. package/dist/{chunk-QMM6O4CD.js → chunk-BLHZW7DG.js} +15 -3
  221. package/dist/{chunk-QMM6O4CD.js.map → chunk-BLHZW7DG.js.map} +1 -1
  222. package/dist/{chunk-TQOBJYDP.js → chunk-CD4N74YC.js} +1 -1
  223. package/dist/chunk-CD4N74YC.js.map +1 -0
  224. package/dist/{chunk-ANLBCBDC.js → chunk-CGE2HBTH.js} +11 -11
  225. package/dist/chunk-CGE2HBTH.js.map +1 -0
  226. package/dist/{chunk-OFADUJWJ.js → chunk-CYYSQMLO.js} +5 -5
  227. package/dist/chunk-CYYSQMLO.js.map +1 -0
  228. package/dist/{chunk-66ALHVEX.js → chunk-EB46EYI7.js} +3 -3
  229. package/dist/{chunk-NZJKFF45.js → chunk-EKCDHWRK.js} +4 -4
  230. package/dist/chunk-EKCDHWRK.js.map +1 -0
  231. package/dist/{chunk-BABLDP24.js → chunk-EPQFNJU3.js} +152 -7
  232. package/dist/chunk-EPQFNJU3.js.map +1 -0
  233. package/dist/{chunk-OGWBVHB3.js → chunk-ESR6HGOY.js} +73 -14
  234. package/dist/chunk-ESR6HGOY.js.map +1 -0
  235. package/dist/{chunk-NBD3KUOZ.js → chunk-F6RP62H3.js} +150 -98
  236. package/dist/chunk-F6RP62H3.js.map +1 -0
  237. package/dist/chunk-FBYW3QDI.js +252 -0
  238. package/dist/chunk-FBYW3QDI.js.map +1 -0
  239. package/dist/{chunk-IPF7E66P.js → chunk-FYAODKVP.js} +2 -2
  240. package/dist/chunk-GNEN7NKO.js +908 -0
  241. package/dist/chunk-GNEN7NKO.js.map +1 -0
  242. package/dist/chunk-GWSM4KLB.js +763 -0
  243. package/dist/chunk-GWSM4KLB.js.map +1 -0
  244. package/dist/{chunk-4SO6JMZL.js → chunk-HDMXCUZL.js} +1 -1
  245. package/dist/chunk-HDMXCUZL.js.map +1 -0
  246. package/dist/{chunk-ZFY7U2FR.js → chunk-HJM5Y5NU.js} +43 -3
  247. package/dist/chunk-HJM5Y5NU.js.map +1 -0
  248. package/dist/{chunk-ZGDVUPTM.js → chunk-IOZ3VKPK.js} +129 -68
  249. package/dist/chunk-IOZ3VKPK.js.map +1 -0
  250. package/dist/{chunk-PYOE4VSI.js → chunk-IVXSVHO4.js} +303 -247
  251. package/dist/chunk-IVXSVHO4.js.map +1 -0
  252. package/dist/chunk-J3CWXIPV.js +242 -0
  253. package/dist/chunk-J3CWXIPV.js.map +1 -0
  254. package/dist/chunk-K6JQW266.js +42 -0
  255. package/dist/chunk-K6JQW266.js.map +1 -0
  256. package/dist/chunk-KMZYQF6Q.js +202 -0
  257. package/dist/chunk-KMZYQF6Q.js.map +1 -0
  258. package/dist/{chunk-JWOYLO27.js → chunk-LPPZDFTD.js} +22 -12
  259. package/dist/chunk-LPPZDFTD.js.map +1 -0
  260. package/dist/{chunk-PAYXCY6A.js → chunk-MYB2B5WX.js} +997 -576
  261. package/dist/chunk-MYB2B5WX.js.map +1 -0
  262. package/dist/chunk-MYKNINNN.js +228 -0
  263. package/dist/chunk-MYKNINNN.js.map +1 -0
  264. package/dist/chunk-NSQIRMVF.js +27 -0
  265. package/dist/{chunk-QCHIQWAJ.js.map → chunk-NSQIRMVF.js.map} +1 -1
  266. package/dist/chunk-NUDBM4MM.js +30 -0
  267. package/dist/chunk-NUDBM4MM.js.map +1 -0
  268. package/dist/chunk-NZMWWDAY.js +23 -0
  269. package/dist/chunk-NZMWWDAY.js.map +1 -0
  270. package/dist/{chunk-RNFE3ML2.js → chunk-OCUV2Y25.js} +4 -3
  271. package/dist/chunk-OCUV2Y25.js.map +1 -0
  272. package/dist/chunk-P4ZJOQA7.js +271 -0
  273. package/dist/chunk-P4ZJOQA7.js.map +1 -0
  274. package/dist/chunk-P6C5EZ3D.js +342 -0
  275. package/dist/chunk-P6C5EZ3D.js.map +1 -0
  276. package/dist/{chunk-CW6T36TN.js → chunk-PBD7BJUN.js} +62 -4
  277. package/dist/chunk-PBD7BJUN.js.map +1 -0
  278. package/dist/chunk-PBIUCQY3.js +696 -0
  279. package/dist/chunk-PBIUCQY3.js.map +1 -0
  280. package/dist/chunk-PD6YECQH.js +845 -0
  281. package/dist/chunk-PD6YECQH.js.map +1 -0
  282. package/dist/{chunk-M7IYCTJV.js → chunk-R4LFQGP3.js} +2 -2
  283. package/dist/chunk-RHJIGDUE.js +21 -0
  284. package/dist/chunk-RHJIGDUE.js.map +1 -0
  285. package/dist/{chunk-KP7MUZNX.js → chunk-RLXO27MW.js} +30 -8
  286. package/dist/chunk-RLXO27MW.js.map +1 -0
  287. package/dist/{chunk-DFNM3WX2.js → chunk-S44BEV4B.js} +168 -45
  288. package/dist/chunk-S44BEV4B.js.map +1 -0
  289. package/dist/chunk-S4S5N4BJ.js +1461 -0
  290. package/dist/chunk-S4S5N4BJ.js.map +1 -0
  291. package/dist/{chunk-BZ2SHDN2.js → chunk-SGTRAXXX.js} +3 -3
  292. package/dist/chunk-SGTRAXXX.js.map +1 -0
  293. package/dist/{chunk-M2RGJPXX.js → chunk-SJAE5PB5.js} +3 -3
  294. package/dist/{chunk-JGIWG6SR.js → chunk-SNPNHU3H.js} +3937 -1776
  295. package/dist/chunk-SNPNHU3H.js.map +1 -0
  296. package/dist/{chunk-IHVBV5C2.js → chunk-SOOBFXRR.js} +94 -71
  297. package/dist/chunk-SOOBFXRR.js.map +1 -0
  298. package/dist/{chunk-ZDTRWK5F.js → chunk-TAHFWKS6.js} +2 -2
  299. package/dist/chunk-UEFFTVPY.js +9 -0
  300. package/dist/chunk-UEFFTVPY.js.map +1 -0
  301. package/dist/{chunk-24VULZ7A.js → chunk-UR5BXLBP.js} +3 -3
  302. package/dist/chunk-UR5BXLBP.js.map +1 -0
  303. package/dist/{chunk-DMBALCE2.js → chunk-V2SBGVDO.js} +471 -186
  304. package/dist/chunk-V2SBGVDO.js.map +1 -0
  305. package/dist/chunk-VJLWD47W.js +23 -0
  306. package/dist/chunk-VJLWD47W.js.map +1 -0
  307. package/dist/{chunk-4CQAV7YB.js → chunk-W647DX5Z.js} +2 -2
  308. package/dist/{chunk-THATMZXD.js → chunk-WFIIU3YZ.js} +2 -2
  309. package/dist/{chunk-THATMZXD.js.map → chunk-WFIIU3YZ.js.map} +1 -1
  310. package/dist/chunk-YZDJMAKL.js +82 -0
  311. package/dist/chunk-YZDJMAKL.js.map +1 -0
  312. package/dist/{chunk-3TMODYZV.js → chunk-Z5XH6VHY.js} +5 -5
  313. package/dist/chunk-Z5XH6VHY.js.map +1 -0
  314. package/dist/{chunk-BE3HW4FY.js → chunk-ZBBMZMA6.js} +377 -170
  315. package/dist/chunk-ZBBMZMA6.js.map +1 -0
  316. package/dist/index.cjs +21224 -11714
  317. package/dist/index.cjs.map +1 -1
  318. package/dist/index.d.cts +195 -49
  319. package/dist/index.d.ts +195 -49
  320. package/dist/index.js +150 -74
  321. package/dist/index.js.map +1 -1
  322. package/dist/{ir-BMP7yxJJ.d.cts → ir-BSosEwc8.d.cts} +1 -1
  323. package/dist/{ir-DUOz6H-5.d.ts → ir-D-uqwL_4.d.ts} +1 -1
  324. package/dist/{module-B8CBqIZ_.d.cts → module-Ds4tarcI.d.cts} +230 -140
  325. package/dist/{module-k7m3txak.d.ts → module-Zd1Gn-Nj.d.ts} +230 -140
  326. package/package.json +20 -4
  327. package/dist/ModuleTag-C8FHY_sY.d.ts +0 -93
  328. package/dist/ModuleTag-EGbgBMpZ.d.cts +0 -93
  329. package/dist/Observability-COqEvp2C.d.cts +0 -713
  330. package/dist/Observability-cY4kLn0S.d.ts +0 -713
  331. package/dist/ReadQuery-BlMwhe-F.d.ts +0 -30
  332. package/dist/ReadQuery-CL5XlXts.d.cts +0 -30
  333. package/dist/ReadQuery-SinbStGF.d.cts +0 -38
  334. package/dist/ReadQuery-SinbStGF.d.ts +0 -38
  335. package/dist/chunk-24VULZ7A.js.map +0 -1
  336. package/dist/chunk-3QMIVH35.js +0 -43
  337. package/dist/chunk-3QMIVH35.js.map +0 -1
  338. package/dist/chunk-3TMODYZV.js.map +0 -1
  339. package/dist/chunk-4SO6JMZL.js.map +0 -1
  340. package/dist/chunk-76WT3HOR.js.map +0 -1
  341. package/dist/chunk-ANLBCBDC.js.map +0 -1
  342. package/dist/chunk-AUIR5O6W.js.map +0 -1
  343. package/dist/chunk-BABLDP24.js.map +0 -1
  344. package/dist/chunk-BE3HW4FY.js.map +0 -1
  345. package/dist/chunk-BZ2SHDN2.js.map +0 -1
  346. package/dist/chunk-CW6T36TN.js.map +0 -1
  347. package/dist/chunk-DFNM3WX2.js.map +0 -1
  348. package/dist/chunk-DMBALCE2.js.map +0 -1
  349. package/dist/chunk-EGK3KN7B.js +0 -406
  350. package/dist/chunk-EGK3KN7B.js.map +0 -1
  351. package/dist/chunk-GMPEOUP2.js.map +0 -1
  352. package/dist/chunk-IHVBV5C2.js.map +0 -1
  353. package/dist/chunk-JCXGZRMU.js.map +0 -1
  354. package/dist/chunk-JGIWG6SR.js.map +0 -1
  355. package/dist/chunk-JWOYLO27.js.map +0 -1
  356. package/dist/chunk-KIXAU3GM.js +0 -137
  357. package/dist/chunk-KIXAU3GM.js.map +0 -1
  358. package/dist/chunk-KL5ACTCT.js +0 -8
  359. package/dist/chunk-KL5ACTCT.js.map +0 -1
  360. package/dist/chunk-KP7MUZNX.js.map +0 -1
  361. package/dist/chunk-M3BFQ7HK.js +0 -13
  362. package/dist/chunk-M3BFQ7HK.js.map +0 -1
  363. package/dist/chunk-M3WTHJHJ.js.map +0 -1
  364. package/dist/chunk-NBD3KUOZ.js.map +0 -1
  365. package/dist/chunk-NQZ2OSGR.js +0 -151
  366. package/dist/chunk-NQZ2OSGR.js.map +0 -1
  367. package/dist/chunk-NZJKFF45.js.map +0 -1
  368. package/dist/chunk-OFADUJWJ.js.map +0 -1
  369. package/dist/chunk-OGWBVHB3.js.map +0 -1
  370. package/dist/chunk-PAYXCY6A.js.map +0 -1
  371. package/dist/chunk-PYOE4VSI.js.map +0 -1
  372. package/dist/chunk-QCHIQWAJ.js +0 -21
  373. package/dist/chunk-RNFE3ML2.js.map +0 -1
  374. package/dist/chunk-TKZ7MEIA.js +0 -27
  375. package/dist/chunk-TKZ7MEIA.js.map +0 -1
  376. package/dist/chunk-TQOBJYDP.js.map +0 -1
  377. package/dist/chunk-VZB726PE.js +0 -93
  378. package/dist/chunk-VZB726PE.js.map +0 -1
  379. package/dist/chunk-W3TEWHLO.js +0 -568
  380. package/dist/chunk-W3TEWHLO.js.map +0 -1
  381. package/dist/chunk-YS3AZQ2G.js.map +0 -1
  382. package/dist/chunk-ZFLHVFUC.js +0 -192
  383. package/dist/chunk-ZFLHVFUC.js.map +0 -1
  384. package/dist/chunk-ZFY7U2FR.js.map +0 -1
  385. package/dist/chunk-ZGDVUPTM.js.map +0 -1
  386. package/dist/protocol-g_1897M2.d.cts +0 -127
  387. package/dist/protocol-g_1897M2.d.ts +0 -127
  388. /package/dist/{chunk-3IYZ5IGG.js.map → chunk-5WKUGEBY.js.map} +0 -0
  389. /package/dist/{chunk-3RMKLXHX.js.map → chunk-63ZQ5RIN.js.map} +0 -0
  390. /package/dist/{chunk-EY4NZKDR.js.map → chunk-6Y2TKCNY.js.map} +0 -0
  391. /package/dist/{chunk-G5ZBFPNU.js.map → chunk-A2RQOJC7.js.map} +0 -0
  392. /package/dist/{chunk-TAAPQVZN.js.map → chunk-AYELIQXR.js.map} +0 -0
  393. /package/dist/{chunk-66ALHVEX.js.map → chunk-EB46EYI7.js.map} +0 -0
  394. /package/dist/{chunk-IPF7E66P.js.map → chunk-FYAODKVP.js.map} +0 -0
  395. /package/dist/{chunk-M7IYCTJV.js.map → chunk-R4LFQGP3.js.map} +0 -0
  396. /package/dist/{chunk-M2RGJPXX.js.map → chunk-SJAE5PB5.js.map} +0 -0
  397. /package/dist/{chunk-ZDTRWK5F.js.map → chunk-TAHFWKS6.js.map} +0 -0
  398. /package/dist/{chunk-4CQAV7YB.js.map → chunk-W647DX5Z.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/internal/runtime/core/runner/ProgramRunner.errors.ts","../src/internal/runtime/AppRuntime.ts","../src/internal/runtime/core/AppAssemblyGraph.ts","../src/internal/runtime/core/runner/ProgramRunner.closeScope.ts","../src/internal/runtime/core/runner/ProgramRunner.signals.ts","../src/internal/runtime/core/runner/ProgramRunner.kernel.ts"],"sourcesContent":["export type ProgramRunnerErrorTag = 'BootError' | 'MainError' | 'DisposeError' | 'DisposeTimeout'\n\nexport interface ProgramIdentity {\n moduleId: string\n instanceId: string\n}\n\nconst summarizeCause = (cause: unknown): { name?: string; message?: string } => {\n if (cause instanceof Error) {\n return { name: cause.name, message: cause.message }\n }\n return { message: typeof cause === 'string' ? cause : undefined }\n}\n\nabstract class ProgramRunnerErrorBase extends Error {\n abstract readonly _tag: ProgramRunnerErrorTag\n readonly moduleId: string\n readonly instanceId: string\n readonly entrypoint: 'boot' | 'main' | 'dispose'\n readonly hint?: string\n\n protected constructor(params: {\n readonly message: string\n readonly identity: ProgramIdentity\n readonly entrypoint: 'boot' | 'main' | 'dispose'\n readonly hint?: string\n }) {\n super(params.message)\n this.moduleId = params.identity.moduleId\n this.instanceId = params.identity.instanceId\n this.entrypoint = params.entrypoint\n this.hint = params.hint\n }\n\n toJSON(): Record<string, unknown> {\n return {\n _tag: this._tag,\n name: this.name,\n message: this.message,\n moduleId: this.moduleId,\n instanceId: this.instanceId,\n entrypoint: this.entrypoint,\n hint: this.hint,\n }\n }\n}\n\nexport class BootError extends ProgramRunnerErrorBase {\n readonly _tag = 'BootError' as const\n readonly cause?: { name?: string; message?: string }\n\n constructor(identity: ProgramIdentity, cause: unknown) {\n super({\n message: '[Logix] Program boot failed',\n identity,\n entrypoint: 'boot',\n hint: 'Check that options.layer / imports / providers are complete, and that no dependencies are missing during assembly.',\n })\n this.name = 'BootError'\n this.cause = summarizeCause(cause)\n }\n\n override toJSON(): Record<string, unknown> {\n return { ...super.toJSON(), cause: this.cause }\n }\n}\n\nexport class MainError extends ProgramRunnerErrorBase {\n readonly _tag = 'MainError' as const\n readonly cause?: { name?: string; message?: string }\n\n constructor(identity: ProgramIdentity, cause: unknown) {\n super({\n message: '[Logix] Program main failed',\n identity,\n entrypoint: 'main',\n hint: 'Main failed: ensure main handles domain errors explicitly, and check for interruption or missing dependencies.',\n })\n this.name = 'MainError'\n this.cause = summarizeCause(cause)\n }\n\n override toJSON(): Record<string, unknown> {\n return { ...super.toJSON(), cause: this.cause }\n }\n}\n\nexport class DisposeError extends ProgramRunnerErrorBase {\n readonly _tag = 'DisposeError' as const\n readonly cause?: { name?: string; message?: string }\n\n constructor(identity: ProgramIdentity, cause: unknown) {\n super({\n message: '[Logix] Program dispose failed',\n identity,\n entrypoint: 'dispose',\n hint: 'Dispose failed: a finalizer may have thrown, or scope/resource handles may be invalid; check onError/logs.',\n })\n this.name = 'DisposeError'\n this.cause = summarizeCause(cause)\n }\n\n override toJSON(): Record<string, unknown> {\n return { ...super.toJSON(), cause: this.cause }\n }\n}\n\nexport class DisposeTimeoutError extends ProgramRunnerErrorBase {\n readonly _tag = 'DisposeTimeout' as const\n readonly timeoutMs: number\n readonly elapsedMs: number\n readonly suggestions: ReadonlyArray<string>\n\n constructor(identity: ProgramIdentity, params: { readonly timeoutMs: number; readonly elapsedMs: number }) {\n super({\n message: '[Logix] Program dispose timed out',\n identity,\n entrypoint: 'dispose',\n hint: 'Dispose timed out: if the program cannot exit naturally, resources may not be released or background fibers are still running.',\n })\n this.name = 'DisposeTimeoutError'\n this.timeoutMs = params.timeoutMs\n this.elapsedMs = params.elapsedMs\n this.suggestions = [\n 'Check for event listeners that were not unregistered (e.g. process.on / emitter.on).',\n 'Check for fibers that were not joined/interrupt (long-lived watchers / Stream.run*).',\n 'Check for resource handles that were not closed (timer / socket / file handle).',\n ]\n }\n\n override toJSON(): Record<string, unknown> {\n return {\n ...super.toJSON(),\n timeoutMs: this.timeoutMs,\n elapsedMs: this.elapsedMs,\n suggestions: this.suggestions,\n }\n }\n}\n","import { Effect, Exit, Layer, ManagedRuntime, ServiceMap } from 'effect'\nimport {\n ConcurrencyPolicyTag,\n ReadQueryStrictGateConfigTag,\n SchedulingPolicySurfaceTag,\n StateTransactionConfigTag,\n declarativeLinkRuntimeLayer,\n hostSchedulerLayer,\n HostSchedulerTag,\n runtimeStoreLayer,\n tickSchedulerLayer,\n type ConcurrencyPolicy,\n type SchedulingPolicySurface,\n type ReadQueryStrictGateRuntimeConfig,\n type StateTransactionRuntimeConfig,\n} from './core/env.js'\nimport {\n AppAssemblyGraph,\n type AssemblyReasonCode,\n type AssemblyStageId,\n type BootAssemblyReport,\n} from './core/AppAssemblyGraph.js'\nimport {\n RootContextTag,\n makeRootContext,\n mergeRootContext,\n readyRootContext,\n type RootContext,\n} from './core/RootContext.js'\nimport type { HostScheduler } from './core/HostScheduler.js'\nimport * as ProcessRuntime from './core/process/ProcessRuntime.js'\nimport type { AnyModuleShape, ModuleTag, ModuleRuntime, StateOf, ActionOf } from './core/module.js'\n\n/**\n * AppModuleEntry: a module entry produced by Logix.provide.\n *\n * - module: the Module definition object (both a Tag and a carrier of shape info + factory capability).\n * - layer: the runtime Layer for the Module.\n */\nexport interface AppModuleEntry {\n readonly module: ModuleTag<any, any>\n readonly layer: Layer.Layer<any, any, any>\n /**\n * Optional: list of Service Tags provided by this module's layer.\n *\n * - Used only during app assembly for tag collision detection and Env topology analysis.\n * - Internally, AppRuntime assembly can declare this explicitly via provideWithTags.\n * - Does not affect runtime behavior; if omitted, the module layer is treated as \"no explicit service tags declared\".\n */\n readonly serviceTags?: ReadonlyArray<ServiceMap.Key<any, any>>\n}\n\nexport interface LogixAppConfig<R> {\n readonly layer: Layer.Layer<R, never, never>\n readonly modules: ReadonlyArray<AppModuleEntry>\n readonly processes: ReadonlyArray<Effect.Effect<void, any, any>>\n readonly onError?: (cause: import('effect').Cause.Cause<unknown>) => Effect.Effect<void>\n /**\n * Optional HostScheduler override for this Runtime.\n *\n * IMPORTANT:\n * - Services like TickScheduler capture HostScheduler at Layer build-time (073).\n * - This option injects the override into the tick services build pipeline to avoid env-override pitfalls.\n */\n readonly hostScheduler?: HostScheduler\n /**\n * Runtime-level default StateTransaction config:\n * - If not provided, each ModuleRuntime falls back to NODE_ENV-based default instrumentation.\n * - If instrumentation is provided, it becomes the default instrumentation for modules under this Runtime;\n * individual modules may still override it via ModuleImpl.stateTransaction.\n */\n readonly stateTransaction?: StateTransactionRuntimeConfig\n /**\n * Runtime-level unified scheduling policy surface:\n * - If not provided, each entrypoint falls back to builtin defaults (e.g. concurrencyLimit=16).\n * - If provided, it becomes the default policy for modules under this Runtime;\n * individual modules may still override via runtime_module/provider (merged by ModuleRuntime resolver).\n */\n readonly schedulingPolicy?: SchedulingPolicySurface\n /**\n * Legacy alias for schedulingPolicy (migration path).\n */\n readonly concurrencyPolicy?: ConcurrencyPolicy\n /**\n * ReadQuery strict gate (057):\n * - Used in CI/perf gates to upgrade dynamic fallbacks into failures or warnings.\n * - Not provided by default (preserve usability).\n */\n readonly readQueryStrictGate?: ReadQueryStrictGateRuntimeConfig\n}\n\nexport interface AppDefinition<R> {\n readonly definition: LogixAppConfig<R>\n readonly layer: Layer.Layer<R, never, never>\n readonly makeRuntime: () => ManagedRuntime.ManagedRuntime<R, never>\n readonly getAssemblyReport?: () => BootAssemblyReport | undefined\n}\n\ninterface TagInfo {\n readonly key: string\n readonly tag: ServiceMap.Key<any, any>\n readonly ownerModuleId: string\n readonly source: 'module' | 'service'\n}\n\ninterface TagCollision {\n readonly key: string\n readonly conflicts: ReadonlyArray<TagInfo>\n}\n\ninterface TagCollisionError extends Error {\n readonly _tag: 'TagCollisionError'\n readonly collisions: ReadonlyArray<TagCollision>\n}\n\nconst getTagKey = (tag: ServiceMap.Key<any, any>): string => {\n const anyTag = tag as any\n if (typeof anyTag.key === 'string') {\n return anyTag.key\n }\n if (typeof anyTag._id === 'string') {\n return anyTag._id\n }\n if (typeof anyTag.toString === 'function') {\n return anyTag.toString()\n }\n return '[unknown-tag]'\n}\n\nconst buildTagIndex = (entries: ReadonlyArray<AppModuleEntry>): Map<string, TagInfo[]> => {\n const index = new Map<string, TagInfo[]>()\n\n for (const entry of entries) {\n const ownerId = String(entry.module.id)\n\n // Record the Module tag itself.\n const moduleTag = entry.module as unknown as ServiceMap.Key<any, any>\n const moduleKey = getTagKey(moduleTag)\n const moduleInfo: TagInfo = {\n key: moduleKey,\n tag: moduleTag,\n ownerModuleId: ownerId,\n source: 'module',\n }\n const existingModuleInfos = index.get(moduleKey)\n if (existingModuleInfos) {\n existingModuleInfos.push(moduleInfo)\n } else {\n index.set(moduleKey, [moduleInfo])\n }\n\n // Record explicitly declared service tags (if any).\n if (entry.serviceTags && entry.serviceTags.length > 0) {\n for (const tag of entry.serviceTags) {\n const key = getTagKey(tag)\n const info: TagInfo = {\n key,\n tag,\n ownerModuleId: ownerId,\n source: 'service',\n }\n const existingInfos = index.get(key)\n if (existingInfos) {\n existingInfos.push(info)\n } else {\n index.set(key, [info])\n }\n }\n }\n }\n\n return index\n}\n\nconst validateTags = (entries: ReadonlyArray<AppModuleEntry>): void => {\n const index = buildTagIndex(entries)\n const collisions: TagCollision[] = []\n\n for (const [key, infos] of index) {\n if (infos.length <= 1) {\n continue\n }\n const owners = new Set<string>()\n for (const info of infos) {\n owners.add(info.ownerModuleId)\n }\n // Treat it as a collision only when the same key appears under multiple different modules.\n // Duplicates within a single module are not considered an error (may come from multi-layer composition).\n if (owners.size > 1) {\n collisions.push({ key, conflicts: infos })\n }\n }\n\n if (collisions.length === 0) {\n return\n }\n\n const message =\n '[Logix] Tag collision detected:\\n' +\n collisions\n .map((c) => {\n const header = `- key: ${c.key}`\n const lines = c.conflicts.map((i) => ` - owner: ${i.ownerModuleId}, source: ${i.source}`)\n return [header, ...lines].join('\\n')\n })\n .join('\\n')\n\n const error: TagCollisionError = Object.assign(new Error(message), {\n _tag: 'TagCollisionError' as const,\n collisions,\n })\n\n throw error\n}\n\nexport const makeApp = <R>(config: LogixAppConfig<R>): AppDefinition<R> => {\n const appModuleIds = config.modules.map((entry) => String(entry.module.id))\n const appId = appModuleIds.length === 1 ? appModuleIds[0]! : appModuleIds.slice().sort().join('~')\n const assemblyGraph = new AppAssemblyGraph(appId)\n let latestAssemblyReport: BootAssemblyReport | undefined\n\n const failAndThrow = (stageId: AssemblyStageId, reasonCode: AssemblyReasonCode, error: unknown): never => {\n assemblyGraph.failStage(stageId, reasonCode, error)\n latestAssemblyReport = assemblyGraph.buildReport(false)\n throw error\n }\n\n assemblyGraph.beginStage('validate.modules')\n const seenIds = new Set<string>()\n for (const entry of config.modules) {\n const id = String(entry.module.id)\n\n if (seenIds.has(id)) {\n const error = new Error(\n `[Logix] Duplicate Module ID/Tag detected: \"${id}\". \\nEnsure all modules in the application Runtime have unique IDs.`,\n )\n failAndThrow('validate.modules', 'boot::module_duplicate', error)\n }\n seenIds.add(id)\n }\n assemblyGraph.completeStage('validate.modules')\n\n // Validate tag collisions before merging layers.\n // This exposes \"the same ServiceTag implemented by multiple modules\" early, avoiding silent Env overrides.\n assemblyGraph.beginStage('validate.tags')\n try {\n validateTags(config.modules)\n assemblyGraph.completeStage('validate.tags')\n } catch (error) {\n failAndThrow('validate.tags', 'boot::tag_collision', error)\n }\n\n // If the Runtime provides a unified StateTransaction config, attach the corresponding service to the app Env.\n const stateTxnLayer: Layer.Layer<R, never, never> = config.stateTransaction\n ? (Layer.succeed(StateTransactionConfigTag, config.stateTransaction) as Layer.Layer<R, never, never>)\n : (Layer.empty as Layer.Layer<R, never, never>)\n\n const resolvedSchedulingPolicy = config.schedulingPolicy ?? config.concurrencyPolicy\n\n // If the Runtime provides a unified scheduling policy, attach the corresponding service to the app Env.\n // NOTE: ConcurrencyPolicyTag remains a legacy alias of SchedulingPolicySurfaceTag.\n const schedulingPolicyLayer: Layer.Layer<R, never, never> = resolvedSchedulingPolicy\n ? (Layer.succeed(SchedulingPolicySurfaceTag, resolvedSchedulingPolicy) as Layer.Layer<R, never, never>)\n : (Layer.empty as Layer.Layer<R, never, never>)\n\n // If the Runtime provides a ReadQuery strict gate, attach the corresponding service to the app Env.\n const readQueryStrictGateLayer: Layer.Layer<R, never, never> = config.readQueryStrictGate\n ? (Layer.succeed(ReadQueryStrictGateConfigTag, config.readQueryStrictGate) as Layer.Layer<R, never, never>)\n : (Layer.empty as Layer.Layer<R, never, never>)\n\n const pinnedHostSchedulerLayer: Layer.Layer<any, never, never> | undefined =\n config.hostScheduler !== undefined\n ? (Layer.succeed(HostSchedulerTag, config.hostScheduler) as Layer.Layer<any, never, never>)\n : undefined\n\n const tickServicesLayer = Layer.provideMerge(pinnedHostSchedulerLayer ?? hostSchedulerLayer)(\n Layer.provideMerge(runtimeStoreLayer)(Layer.provideMerge(declarativeLinkRuntimeLayer)(tickSchedulerLayer())),\n )\n\n // Provide tick services as the baseline runtime env for caller layers.\n // This allows app layers to override TickScheduler/HostScheduler while still depending on RuntimeStore/DeclarativeLinkRuntime.\n const appLayer = (config.layer as Layer.Layer<any, never, never>).pipe(Layer.provide(tickServicesLayer))\n\n assemblyGraph.beginStage('build.baseLayer')\n const baseLayer = Layer.mergeAll(\n tickServicesLayer,\n appLayer,\n // If a HostScheduler override is requested, pin it as the final HostSchedulerTag value to avoid accidental divergence.\n // (Build-time capture is handled above by injecting it into tickServicesLayer.)\n pinnedHostSchedulerLayer ?? (Layer.empty as Layer.Layer<any, never, never>),\n stateTxnLayer,\n schedulingPolicyLayer,\n // Keep explicit legacy alias provisioning in the Env merge path so older callsites that reference\n // ConcurrencyPolicyTag keep identical behavior during phase-1 migration.\n resolvedSchedulingPolicy\n ? (Layer.succeed(ConcurrencyPolicyTag, resolvedSchedulingPolicy) as Layer.Layer<R, never, never>)\n : (Layer.empty as Layer.Layer<R, never, never>),\n readQueryStrictGateLayer,\n ProcessRuntime.layer(),\n Layer.effect(\n RootContextTag,\n makeRootContext({ appId, appModuleIds }),\n ),\n ) as Layer.Layer<R, never, never>\n assemblyGraph.completeStage('build.baseLayer')\n\n const runStage = <A>(\n stageId: AssemblyStageId,\n reasonCode: AssemblyReasonCode,\n effect: Effect.Effect<A, any, any>,\n ): Effect.Effect<A, any, any> =>\n Effect.gen(function* () {\n assemblyGraph.beginStage(stageId)\n const exit = yield* Effect.exit(effect)\n\n if (Exit.isSuccess(exit)) {\n assemblyGraph.completeStage(stageId)\n return exit.value\n }\n\n assemblyGraph.failStage(stageId, reasonCode, exit.cause)\n latestAssemblyReport = assemblyGraph.buildReport(false)\n return yield* Effect.failCause(exit.cause)\n })\n\n const finalLayer = Layer.unwrap(\n Effect.gen(function* () {\n // AppDefinition can be used to create multiple runtimes; reset graph state before each boot.\n assemblyGraph.reset()\n // These stages are validated/computed at makeApp-time and should appear as succeeded in every boot report.\n assemblyGraph.beginStage('validate.modules')\n assemblyGraph.completeStage('validate.modules')\n assemblyGraph.beginStage('validate.tags')\n assemblyGraph.completeStage('validate.tags')\n assemblyGraph.beginStage('build.baseLayer')\n assemblyGraph.completeStage('build.baseLayer')\n\n const scope = yield* Effect.scope\n\n // IMPORTANT (073):\n // - Build baseLayer first, then build module layers under baseEnv.\n // - Otherwise, module initialization may fork long-lived fibers (txnQueue/logics) before TickScheduler/RuntimeStore\n // is available, and those fibers will permanently miss the runtime services due to Env capture semantics.\n const env = yield* Effect.gen(function* () {\n const baseEnv = yield* runStage(\n 'build.baseEnv',\n 'boot::base_layer_build_failed',\n Layer.buildWithScope(baseLayer, scope),\n )\n\n const moduleEnv = yield* runStage(\n 'build.moduleEnvs',\n 'boot::module_layer_build_failed',\n config.modules.length > 0\n ? Effect.provide(\n Layer.buildWithScope(\n config.modules.length === 1\n ? config.modules[0]!.layer\n : config.modules.slice(1).reduce((acc, entry) => Layer.merge(acc, entry.layer), config.modules[0]!.layer),\n scope,\n ),\n baseEnv,\n )\n : Effect.succeed(undefined),\n )\n\n const mergedEnv = yield* runStage(\n 'merge.env',\n 'boot::env_merge_failed',\n Effect.sync(() => (moduleEnv ? ServiceMap.merge(baseEnv, moduleEnv) : baseEnv)),\n )\n\n const rootContext = yield* runStage(\n 'rootContext.merge',\n 'boot::root_context_merge_failed',\n Effect.flatMap(\n Effect.sync(() => ServiceMap.get(mergedEnv, RootContextTag as ServiceMap.Key<any, RootContext>)),\n (root) => mergeRootContext(root, mergedEnv as ServiceMap.ServiceMap<any>),\n ),\n )\n assemblyGraph.markRootContextMerged()\n\n yield* runStage(\n 'rootContext.ready',\n 'boot::root_context_ready_failed',\n readyRootContext(rootContext),\n )\n assemblyGraph.markRootContextReady()\n\n const processRuntime = ServiceMap.get(\n mergedEnv,\n ProcessRuntime.ProcessRuntimeTag as ServiceMap.Key<any, ProcessRuntime.ProcessRuntime>,\n )\n\n yield* runStage(\n 'process.install',\n 'boot::process_install_failed',\n Effect.forEach(\n config.processes,\n (process) =>\n Effect.gen(function* () {\n const installation = yield* Effect.provide(\n processRuntime.install(process as any, {\n scope: { type: 'app', appId },\n enabled: true,\n installedAt: 'appRuntime',\n }),\n mergedEnv,\n )\n\n if (installation === undefined) {\n yield* Effect.provide(\n config.onError ? Effect.catchCause(process, config.onError) : process,\n mergedEnv,\n ).pipe(Effect.forkScoped())\n }\n }),\n { discard: true },\n ),\n )\n\n return mergedEnv\n })\n\n latestAssemblyReport = assemblyGraph.buildReport(true)\n\n return Layer.effectServices(Effect.succeed(env))\n }).pipe(\n Effect.catchCause((cause) =>\n Effect.gen(function* () {\n assemblyGraph.ensureFailure('boot::unknown', cause)\n latestAssemblyReport = assemblyGraph.buildReport(false)\n return yield* Effect.failCause(cause)\n }),\n ),\n ),\n ) as Layer.Layer<R, never, never>\n\n return {\n definition: config,\n layer: finalLayer,\n makeRuntime: () => ManagedRuntime.make(finalLayer),\n getAssemblyReport: () => latestAssemblyReport,\n }\n}\n\nexport const getAssemblyReport = <R>(app: AppDefinition<R>): BootAssemblyReport | undefined => app.getAssemblyReport?.()\n\n/**\n * Sugar: pair a Module with a runtime instance or layer for AppRuntime's modules config.\n */\nexport const provide = <Sh extends AnyModuleShape, R, E>(\n module: ModuleTag<any, Sh>,\n resource: Layer.Layer<ModuleRuntime<StateOf<Sh>, ActionOf<Sh>>, E, R> | ModuleRuntime<StateOf<Sh>, ActionOf<Sh>>,\n): AppModuleEntry => {\n const layer = isLayer(resource)\n ? resource\n : Layer.succeed(module, resource as ModuleRuntime<StateOf<Sh>, ActionOf<Sh>>)\n\n return { module, layer }\n}\n\n/**\n * Sugar: attach explicit ServiceTag metadata to an app module entry for tag collision detection.\n *\n * - serviceTags should include only services implemented by this module's layer.\n * - Internal-only helper: `@logixjs/core` blocks `./internal/*` in package exports, so this is not a public API surface.\n */\nexport const provideWithTags = <Sh extends AnyModuleShape, R, E>(\n module: ModuleTag<any, Sh>,\n resource: Layer.Layer<ModuleRuntime<StateOf<Sh>, ActionOf<Sh>>, E, R> | ModuleRuntime<StateOf<Sh>, ActionOf<Sh>>,\n serviceTags: ReadonlyArray<ServiceMap.Key<any, any>>,\n): AppModuleEntry => {\n const base = provide(module, resource)\n return {\n ...base,\n serviceTags,\n }\n}\n\nconst isLayer = (value: unknown): value is Layer.Layer<any, any, any> => Layer.isLayer(value)\n","export type AssemblyStageId =\n | 'validate.modules'\n | 'validate.tags'\n | 'build.baseLayer'\n | 'build.baseEnv'\n | 'build.moduleEnvs'\n | 'merge.env'\n | 'rootContext.merge'\n | 'rootContext.ready'\n | 'process.install'\n\nexport type AssemblyStageStatus = 'pending' | 'running' | 'succeeded' | 'failed' | 'skipped'\n\nexport type AssemblyReasonCode =\n | 'boot::module_duplicate'\n | 'boot::tag_collision'\n | 'boot::base_layer_build_failed'\n | 'boot::module_layer_build_failed'\n | 'boot::env_merge_failed'\n | 'boot::root_context_merge_failed'\n | 'boot::root_context_ready_failed'\n | 'boot::process_install_failed'\n | 'boot::unknown'\n\ninterface AssemblyStageDefinition {\n readonly stageId: AssemblyStageId\n readonly dependsOn: ReadonlyArray<AssemblyStageId>\n}\n\nexport interface AppAssemblyGraphNode {\n readonly stageId: AssemblyStageId\n readonly stageSeq: number\n readonly dependsOn: ReadonlyArray<AssemblyStageId>\n readonly status: AssemblyStageStatus\n readonly durationMs?: number\n readonly reasonCode?: AssemblyReasonCode\n readonly message?: string\n}\n\ninterface MutableAppAssemblyGraphNode {\n stageId: AssemblyStageId\n stageSeq: number\n dependsOn: ReadonlyArray<AssemblyStageId>\n status: AssemblyStageStatus\n startedAtMs?: number\n durationMs?: number\n reasonCode?: AssemblyReasonCode\n message?: string\n}\n\nexport interface RootContextLifecycleRecord {\n readonly state: 'uninitialized' | 'merged' | 'ready' | 'failed'\n readonly mergedAtStageSeq?: number\n readonly readyAtStageSeq?: number\n readonly reasonCode?: AssemblyReasonCode\n}\n\nexport interface BootFailureDiagnostic {\n readonly stageId: AssemblyStageId\n readonly stageSeq: number\n readonly reasonCode: AssemblyReasonCode\n readonly message: string\n readonly upstreamStages: ReadonlyArray<AssemblyStageId>\n}\n\nexport interface BootAssemblyReport {\n readonly version: 1\n readonly appId: string\n readonly success: boolean\n readonly nodes: ReadonlyArray<AppAssemblyGraphNode>\n readonly rootContextLifecycle: RootContextLifecycleRecord\n readonly failure?: BootFailureDiagnostic\n}\n\nconst STAGE_DEFINITIONS: ReadonlyArray<AssemblyStageDefinition> = [\n { stageId: 'validate.modules', dependsOn: [] },\n { stageId: 'validate.tags', dependsOn: ['validate.modules'] },\n { stageId: 'build.baseLayer', dependsOn: ['validate.tags'] },\n { stageId: 'build.baseEnv', dependsOn: ['build.baseLayer'] },\n { stageId: 'build.moduleEnvs', dependsOn: ['build.baseEnv'] },\n { stageId: 'merge.env', dependsOn: ['build.moduleEnvs'] },\n { stageId: 'rootContext.merge', dependsOn: ['merge.env'] },\n { stageId: 'rootContext.ready', dependsOn: ['rootContext.merge'] },\n { stageId: 'process.install', dependsOn: ['rootContext.ready'] },\n]\n\nexport const APP_ASSEMBLY_STAGE_ORDER: ReadonlyArray<AssemblyStageDefinition> = STAGE_DEFINITIONS\n\nconst toSlimMessage = (error: unknown): string => {\n if (error instanceof Error && typeof error.message === 'string' && error.message.length > 0) {\n return error.message\n }\n\n const message = (error as { message?: unknown } | null)?.message\n if (typeof message === 'string' && message.length > 0) {\n return message\n }\n\n if (typeof error === 'string' && error.length > 0) {\n return error\n }\n\n try {\n return JSON.stringify(error)\n } catch {\n return String(error)\n }\n}\n\nexport class AppAssemblyGraph {\n private readonly nodes: Array<MutableAppAssemblyGraphNode>\n private readonly nodeIndex: ReadonlyMap<AssemblyStageId, MutableAppAssemblyGraphNode>\n private rootContextLifecycle: RootContextLifecycleRecord = { state: 'uninitialized' }\n private failure: BootFailureDiagnostic | undefined\n\n constructor(private readonly appId: string) {\n const mutableNodes: Array<MutableAppAssemblyGraphNode> = STAGE_DEFINITIONS.map((stage, index) => ({\n stageId: stage.stageId,\n stageSeq: index + 1,\n dependsOn: stage.dependsOn,\n status: 'pending',\n }))\n\n this.nodes = mutableNodes\n this.nodeIndex = new Map(mutableNodes.map((node) => [node.stageId, node] as const))\n }\n\n reset(): void {\n for (const node of this.nodes) {\n node.status = 'pending'\n node.startedAtMs = undefined\n node.durationMs = undefined\n node.reasonCode = undefined\n node.message = undefined\n }\n this.rootContextLifecycle = { state: 'uninitialized' }\n this.failure = undefined\n }\n\n beginStage(stageId: AssemblyStageId): void {\n const node = this.getNode(stageId)\n if (node.status === 'pending') {\n node.status = 'running'\n node.startedAtMs = Date.now()\n }\n }\n\n completeStage(stageId: AssemblyStageId): void {\n const node = this.getNode(stageId)\n node.status = 'succeeded'\n node.durationMs = this.computeDurationMs(node)\n }\n\n failStage(stageId: AssemblyStageId, reasonCode: AssemblyReasonCode, error: unknown): void {\n const node = this.getNode(stageId)\n node.status = 'failed'\n node.durationMs = this.computeDurationMs(node)\n node.reasonCode = reasonCode\n node.message = toSlimMessage(error)\n\n this.failure = {\n stageId,\n stageSeq: node.stageSeq,\n reasonCode,\n message: node.message,\n upstreamStages: node.dependsOn,\n }\n\n if (stageId === 'rootContext.merge' || stageId === 'rootContext.ready') {\n this.markRootContextFailed(reasonCode)\n }\n\n for (const currentNode of this.nodes) {\n if (currentNode.stageSeq > node.stageSeq && currentNode.status === 'pending') {\n currentNode.status = 'skipped'\n }\n }\n }\n\n ensureFailure(reasonCode: AssemblyReasonCode, error: unknown): void {\n if (this.failure) {\n return\n }\n\n const fallbackNode =\n this.nodes.find((node) => node.status === 'running') ??\n this.nodes.find((node) => node.status === 'pending') ??\n this.nodes[this.nodes.length - 1]\n\n if (!fallbackNode) {\n return\n }\n\n this.failStage(fallbackNode.stageId, reasonCode, error)\n }\n\n markRootContextMerged(): void {\n const mergeStageSeq = this.getNode('rootContext.merge').stageSeq\n this.rootContextLifecycle = {\n state: this.rootContextLifecycle.state === 'ready' ? 'ready' : 'merged',\n mergedAtStageSeq: mergeStageSeq,\n readyAtStageSeq: this.rootContextLifecycle.readyAtStageSeq,\n reasonCode: this.rootContextLifecycle.reasonCode,\n }\n }\n\n markRootContextReady(): void {\n const readyStageSeq = this.getNode('rootContext.ready').stageSeq\n this.rootContextLifecycle = {\n state: 'ready',\n mergedAtStageSeq: this.rootContextLifecycle.mergedAtStageSeq,\n readyAtStageSeq: readyStageSeq,\n reasonCode: undefined,\n }\n }\n\n buildReport(success: boolean): BootAssemblyReport {\n return {\n version: 1,\n appId: this.appId,\n success,\n nodes: this.nodes.map((node) => ({\n stageId: node.stageId,\n stageSeq: node.stageSeq,\n dependsOn: node.dependsOn,\n status: node.status,\n durationMs: node.durationMs,\n reasonCode: node.reasonCode,\n message: node.message,\n })),\n rootContextLifecycle: { ...this.rootContextLifecycle },\n failure: this.failure ? { ...this.failure } : undefined,\n }\n }\n\n private markRootContextFailed(reasonCode: AssemblyReasonCode): void {\n this.rootContextLifecycle = {\n state: 'failed',\n mergedAtStageSeq: this.rootContextLifecycle.mergedAtStageSeq,\n readyAtStageSeq: this.rootContextLifecycle.readyAtStageSeq,\n reasonCode,\n }\n }\n\n private getNode(stageId: AssemblyStageId): MutableAppAssemblyGraphNode {\n const node = this.nodeIndex.get(stageId)\n if (!node) {\n throw new Error(`[Logix] Unknown assembly stage: ${stageId}`)\n }\n return node\n }\n\n private computeDurationMs(node: MutableAppAssemblyGraphNode): number | undefined {\n if (node.startedAtMs === undefined) {\n return undefined\n }\n\n return Math.max(0, Date.now() - node.startedAtMs)\n }\n}\n","import { Cause, Effect, Exit, Scope } from 'effect'\nimport { DisposeError, DisposeTimeoutError, type ProgramIdentity } from './ProgramRunner.errors.js'\n\nexport const closeProgramScope = (params: {\n readonly scope: Scope.Closeable\n readonly timeoutMs: number\n readonly identity: ProgramIdentity\n readonly onError?: (cause: Cause.Cause<unknown>) => Effect.Effect<void, never, never>\n}): Effect.Effect<void, never, never> => {\n return Effect.gen(function* () {\n const start = Date.now()\n\n const result = yield* Effect.promise<Exit.Exit<void, never> | { readonly _tag: 'Timeout' }>(() =>\n new Promise((resolve) => {\n const timer = setTimeout(() => resolve({ _tag: 'Timeout' as const }), params.timeoutMs)\n void Effect.runPromiseExit(Scope.close(params.scope, Exit.void)).then((exit) => {\n clearTimeout(timer)\n resolve(exit)\n })\n }),\n )\n\n if ((result as any)._tag === 'Timeout') {\n const error = new DisposeTimeoutError(params.identity, {\n timeoutMs: params.timeoutMs,\n elapsedMs: Date.now() - start,\n })\n\n if (typeof params.onError === 'function') {\n yield* params.onError(Cause.die(error)).pipe(Effect.catchCause(() => Effect.void))\n }\n\n return yield* Effect.die(error)\n }\n\n const exit = result as Exit.Exit<void, never>\n if (Exit.isSuccess(exit)) {\n return\n }\n\n return yield* Effect.die(new DisposeError(params.identity, exit.cause))\n })\n}\n","import { Effect, Exit, Scope } from 'effect'\n\nconst getProcess = (): any => (globalThis as any).process\n\nconst isNodeProcess = (\n value: unknown,\n): value is {\n on: (event: string, handler: () => void) => void\n off?: (event: string, handler: () => void) => void\n removeListener?: (event: string, handler: () => void) => void\n} => typeof value === 'object' && value !== null && typeof (value as any).on === 'function'\n\nconst removeListener = (proc: any, event: string, handler: () => void): void => {\n if (typeof proc.off === 'function') {\n proc.off(event, handler)\n return\n }\n if (typeof proc.removeListener === 'function') {\n proc.removeListener(event, handler)\n }\n}\n\nexport const installGracefulShutdownHandlers = (params: {\n readonly scope: Scope.Closeable\n readonly enabled: boolean\n readonly onSignal?: () => Effect.Effect<void, never, never>\n}): Effect.Effect<void> => {\n if (!params.enabled) {\n return Effect.void\n }\n\n const proc = getProcess()\n if (!isNodeProcess(proc)) {\n return Effect.void\n }\n\n const handler = (): void => {\n const effect = params.onSignal ? params.onSignal() : Scope.close(params.scope, Exit.void).pipe(Effect.asVoid)\n void Effect.runPromise(effect)\n }\n\n return Effect.gen(function* () {\n yield* Scope.addFinalizer(\n params.scope,\n Effect.sync(() => {\n removeListener(proc, 'SIGINT', handler)\n removeListener(proc, 'SIGTERM', handler)\n }),\n )\n\n yield* Effect.sync(() => {\n proc.on('SIGINT', handler)\n proc.on('SIGTERM', handler)\n })\n })\n}\n","import { Cause, Effect, Exit, Scope } from 'effect'\nimport type { ManagedRuntime } from 'effect'\nimport type { AnyModuleShape, ModuleImpl } from '../module.js'\nimport { make as makeBoundApi } from '../BoundApiRuntime.js'\nimport { closeProgramScope } from './ProgramRunner.closeScope.js'\nimport { DisposeError, DisposeTimeoutError, type ProgramIdentity } from './ProgramRunner.errors.js'\nimport { installGracefulShutdownHandlers } from './ProgramRunner.signals.js'\nimport type { ProgramRunContext } from './ProgramRunner.context.js'\n\nexport type RuntimeFactory = (\n rootImpl: ModuleImpl<any, AnyModuleShape, any>,\n options?: unknown,\n) => ManagedRuntime.ManagedRuntime<any, never>\n\nexport interface ProgramRunnerKernel<Sh extends AnyModuleShape> {\n readonly scope: Scope.Closeable\n readonly runtime: ManagedRuntime.ManagedRuntime<any, never>\n readonly identity: ProgramIdentity\n readonly installSignals: (enabled: boolean) => Effect.Effect<void>\n readonly close: (params: {\n readonly timeoutMs: number\n readonly onError?: (cause: import('effect').Cause.Cause<unknown>) => Effect.Effect<void, never, never>\n }) => Effect.Effect<void, never, never>\n readonly setInstanceId: (value: unknown) => void\n readonly toContext: (moduleRuntime: unknown) => ProgramRunContext<Sh>\n}\n\nexport const makeProgramRunnerKernel = <Sh extends AnyModuleShape>(\n makeRuntime: RuntimeFactory,\n rootImpl: ModuleImpl<any, Sh, any>,\n options?: unknown,\n): Effect.Effect<ProgramRunnerKernel<Sh>> =>\n Effect.gen(function* () {\n const identity: ProgramIdentity = {\n moduleId: String(rootImpl.module.id),\n instanceId: 'unknown',\n }\n\n const scope = yield* Scope.make()\n const runtime = makeRuntime(rootImpl as unknown as ModuleImpl<any, AnyModuleShape, any>, options)\n\n const setInstanceId = (value: unknown) => {\n identity.instanceId = typeof value === 'string' && value.length > 0 ? value : String(value ?? 'unknown')\n }\n\n const close = (params: {\n readonly timeoutMs: number\n readonly onError?: (cause: import('effect').Cause.Cause<unknown>) => Effect.Effect<void, never, never>\n }) =>\n Effect.gen(function* () {\n const exit = yield* Effect.exit(\n closeProgramScope({\n scope,\n timeoutMs: params.timeoutMs,\n identity,\n onError: params.onError,\n }),\n )\n\n if (Exit.isSuccess(exit)) {\n const disposeResult = yield* Effect.promise<\n | { readonly _tag: 'Success' }\n | { readonly _tag: 'Failure'; readonly error: unknown }\n | { readonly _tag: 'Timeout' }\n >(() =>\n new Promise((resolve) => {\n const timer = setTimeout(() => resolve({ _tag: 'Timeout' as const }), params.timeoutMs)\n void runtime.dispose().then(\n () => {\n clearTimeout(timer)\n resolve({ _tag: 'Success' as const })\n },\n (error) => {\n clearTimeout(timer)\n resolve({ _tag: 'Failure' as const, error })\n },\n )\n }),\n )\n\n if (disposeResult._tag === 'Timeout') {\n return yield* Effect.die(\n new DisposeTimeoutError(identity, {\n timeoutMs: params.timeoutMs,\n elapsedMs: params.timeoutMs,\n }),\n )\n }\n\n if (disposeResult._tag === 'Failure') {\n return yield* Effect.die(new DisposeError(identity, Cause.die(disposeResult.error)))\n }\n\n return\n }\n\n void runtime.dispose()\n return yield* Effect.failCause(exit.cause)\n }) as Effect.Effect<void, never, never>\n\n const installSignals = (enabled: boolean) => installGracefulShutdownHandlers({ scope, enabled })\n\n const toContext = (moduleRuntime: unknown) =>\n ({\n scope,\n runtime,\n module: moduleRuntime as any,\n $: makeBoundApi(rootImpl.module.shape as any, moduleRuntime as any) as any,\n }) satisfies ProgramRunContext<Sh>\n\n return {\n scope,\n runtime,\n identity,\n installSignals,\n close,\n setInstanceId,\n toContext,\n }\n })\n"],"mappings":"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","names":["layer","Effect","Exit","Effect","Exit","exit","Effect","Exit","Scope","Cause","Effect","Exit","Scope","Effect","Scope","Exit","Cause"]}