@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
@@ -1,192 +0,0 @@
1
- import {
2
- isDevEnv
3
- } from "./chunk-3QMIVH35.js";
4
- import {
5
- record
6
- } from "./chunk-DMBALCE2.js";
7
-
8
- // src/internal/runtime/core/TaskRunner.ts
9
- import { Cause, Effect, Fiber, FiberRef, Ref, Stream } from "effect";
10
- var inSyncTransactionFiber = FiberRef.unsafeMake(false);
11
- var forceSourceRefresh = FiberRef.unsafeMake(false);
12
- var inSyncTransactionGlobalDepth = 0;
13
- var enterSyncTransaction = () => {
14
- inSyncTransactionGlobalDepth += 1;
15
- };
16
- var exitSyncTransaction = () => {
17
- inSyncTransactionGlobalDepth = Math.max(0, inSyncTransactionGlobalDepth - 1);
18
- };
19
- var isInSyncTransaction = () => inSyncTransactionGlobalDepth > 0;
20
- var resolve = (eff, payload) => typeof eff === "function" ? eff(payload) : eff;
21
- var defaultOrigins = (triggerName) => ({
22
- pending: {
23
- kind: "task:pending",
24
- name: triggerName
25
- },
26
- success: {
27
- kind: "service-callback",
28
- name: "task:success"
29
- },
30
- failure: {
31
- kind: "service-callback",
32
- name: "task:failure"
33
- }
34
- });
35
- var shouldNoopInSyncTransactionFiber = (options) => Effect.gen(function* () {
36
- const inTxn = yield* FiberRef.get(inSyncTransactionFiber);
37
- if (!inTxn) {
38
- return false;
39
- }
40
- if (isDevEnv()) {
41
- yield* record({
42
- type: "diagnostic",
43
- moduleId: options.moduleId,
44
- instanceId: options.instanceId,
45
- code: options.code,
46
- severity: options.severity,
47
- message: options.message,
48
- hint: options.hint,
49
- actionTag: options.actionTag,
50
- kind: options.kind
51
- });
52
- }
53
- return true;
54
- });
55
- var resolveConcurrencyLimit = (runtime) => runtime.resolveConcurrencyPolicy ? runtime.resolveConcurrencyPolicy().pipe(Effect.map((p) => p.concurrencyLimit)) : Effect.succeed(16);
56
- var runTaskLifecycle = (payload, runtime, config, getCanWriteBack) => Effect.gen(function* () {
57
- const noop = yield* shouldNoopInSyncTransactionFiber({
58
- moduleId: runtime.moduleId,
59
- instanceId: runtime.instanceId,
60
- code: "logic::invalid_usage",
61
- severity: "error",
62
- message: "run*Task is not allowed inside a synchronous StateTransaction body (it may deadlock the txnQueue).",
63
- hint: "Call run*Task from the run section of a watcher (e.g. $.onAction/$.onState/$.on); do not call it directly inside a reducer / trait.run / synchronous transaction body. For long-lived flows, use a multi-entry pattern (pending \u2192 IO \u2192 writeback).",
64
- kind: "run_task_in_transaction"
65
- });
66
- if (noop) {
67
- return;
68
- }
69
- const defaults = defaultOrigins(config.triggerName);
70
- const origins = {
71
- pending: config.origin?.pending ?? defaults.pending,
72
- success: config.origin?.success ?? defaults.success,
73
- failure: config.origin?.failure ?? defaults.failure
74
- };
75
- const pending = config.pending;
76
- if (pending) {
77
- yield* Effect.uninterruptible(
78
- runtime.runWithStateTransaction(origins.pending, () => Effect.asVoid(resolve(pending, payload)))
79
- );
80
- }
81
- const io = resolve(config.effect, payload);
82
- const exit = yield* Effect.exit(io);
83
- if (getCanWriteBack) {
84
- const ok = yield* getCanWriteBack;
85
- if (!ok) {
86
- return;
87
- }
88
- }
89
- if (exit._tag === "Success") {
90
- const success = config.success;
91
- if (success) {
92
- yield* runtime.runWithStateTransaction(origins.success, () => Effect.asVoid(success(exit.value, payload)));
93
- }
94
- return;
95
- }
96
- const cause = exit.cause;
97
- if (Cause.isInterrupted(cause)) {
98
- return;
99
- }
100
- const failure = config.failure;
101
- if (failure) {
102
- yield* runtime.runWithStateTransaction(origins.failure, () => Effect.asVoid(failure(cause, payload)));
103
- }
104
- }).pipe(
105
- // Watchers must not crash as a whole due to a single task failure: swallow errors, but keep them diagnosable.
106
- Effect.catchAllCause(
107
- (cause) => record({
108
- type: "diagnostic",
109
- moduleId: runtime.moduleId,
110
- instanceId: runtime.instanceId,
111
- code: "task_runner::unhandled_failure",
112
- severity: "error",
113
- message: "TaskRunner encountered an unhandled failure (pending/IO/writeback).",
114
- hint: "Add a failure writeback for this task or handle errors explicitly upstream; avoid fire-and-forget swallowing errors.",
115
- actionTag: config.triggerName,
116
- kind: "task_runner_unhandled_failure",
117
- trigger: {
118
- kind: "task",
119
- name: config.triggerName
120
- }
121
- }).pipe(Effect.zipRight(Effect.logError("TaskRunner error", cause)))
122
- )
123
- );
124
- var makeTaskRunner = (stream, mode, runtime, config) => {
125
- if (mode === "latest") {
126
- return Effect.gen(function* () {
127
- const taskIdRef = yield* Ref.make(0);
128
- const currentFiberRef = yield* Ref.make(void 0);
129
- const start = (payload) => Effect.gen(function* () {
130
- const taskId = yield* Ref.updateAndGet(taskIdRef, (n) => n + 1);
131
- const prev = yield* Ref.get(currentFiberRef);
132
- if (prev) {
133
- yield* Fiber.interruptFork(prev);
134
- }
135
- const canWriteBack = Ref.get(taskIdRef).pipe(Effect.map((current) => current === taskId));
136
- const fiber = yield* Effect.fork(
137
- runTaskLifecycle(payload, runtime, config, canWriteBack)
138
- );
139
- yield* Ref.set(currentFiberRef, fiber);
140
- });
141
- return yield* Stream.runForEach(stream, start);
142
- });
143
- }
144
- if (mode === "exhaust") {
145
- return Effect.gen(function* () {
146
- const concurrency = yield* resolveConcurrencyLimit(runtime);
147
- const busyRef = yield* Ref.make(false);
148
- const mapper = (payload) => Effect.gen(function* () {
149
- const acquired = yield* Ref.modify(
150
- busyRef,
151
- (busy) => busy ? [false, busy] : [true, true]
152
- );
153
- if (!acquired) {
154
- return;
155
- }
156
- try {
157
- yield* runTaskLifecycle(payload, runtime, config);
158
- } finally {
159
- yield* Ref.set(busyRef, false);
160
- }
161
- });
162
- return yield* Stream.runDrain(stream.pipe(Stream.mapEffect(mapper, { concurrency })));
163
- });
164
- }
165
- if (mode === "parallel") {
166
- return Effect.gen(function* () {
167
- const concurrency = yield* resolveConcurrencyLimit(runtime);
168
- return yield* Stream.runDrain(
169
- stream.pipe(
170
- Stream.mapEffect((payload) => runTaskLifecycle(payload, runtime, config), {
171
- concurrency
172
- })
173
- )
174
- );
175
- });
176
- }
177
- return Stream.runForEach(
178
- stream,
179
- (payload) => runTaskLifecycle(payload, runtime, config)
180
- );
181
- };
182
-
183
- export {
184
- inSyncTransactionFiber,
185
- forceSourceRefresh,
186
- enterSyncTransaction,
187
- exitSyncTransaction,
188
- isInSyncTransaction,
189
- shouldNoopInSyncTransactionFiber,
190
- makeTaskRunner
191
- };
192
- //# sourceMappingURL=chunk-ZFLHVFUC.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/internal/runtime/core/TaskRunner.ts"],"sourcesContent":["import { Cause, Effect, Fiber, FiberRef, Ref, Stream } from 'effect'\nimport * as Debug from './DebugSink.js'\nimport { isDevEnv } from './env.js'\nimport type * as Logic from './LogicMiddleware.js'\nimport type { AnyModuleShape } from './module.js'\nimport type { RuntimeInternalsResolvedConcurrencyPolicy } from './RuntimeInternals.js'\nimport type { StateTxnOrigin } from './StateTransaction.js'\n\n/**\n * Prevents calling run*Task inside a \"synchronous transaction execution fiber\" (it would deadlock the txnQueue).\n *\n * - ModuleRuntime locally marks it as true while executing each transaction (dispatch/source-refresh/devtools/...).\n * - run*Task checks the flag on start: when true, it emits diagnostics only in dev/test and then no-ops.\n */\nexport const inSyncTransactionFiber = FiberRef.unsafeMake(false)\n\n/**\n * Force source.refresh:\n * - Default: when snapshot keyHash is unchanged and a non-idle snapshot already exists, refresh SHOULD be a no-op\n * (avoid redundant IO/writeback).\n * - Exception: explicit refresh (manual refresh) / invalidation-driven refresh needs to \"re-fetch even with the same keyHash\".\n *\n * Note: use a FiberRef to locally pass \"whether this refresh is forced\", avoiding expanding the source refresh handler signature.\n */\nexport const forceSourceRefresh = FiberRef.unsafeMake(false)\n\n/**\n * Synchronous transaction window (process-level) marker:\n * - Used as a hard guard in \"non-Effect API\" entry points (e.g. Promise/async functions).\n * - FiberRef cannot reliably read the \"current fiber\" in such entry points, so we need a synchronous callstack-level marker.\n *\n * Note: if a transaction body incorrectly crosses async boundaries, this marker will be held longer; that is a severe violation.\n */\nlet inSyncTransactionGlobalDepth = 0\n\nexport const enterSyncTransaction = (): void => {\n inSyncTransactionGlobalDepth += 1\n}\n\nexport const exitSyncTransaction = (): void => {\n inSyncTransactionGlobalDepth = Math.max(0, inSyncTransactionGlobalDepth - 1)\n}\n\nexport const isInSyncTransaction = (): boolean => inSyncTransactionGlobalDepth > 0\n\nexport type TaskRunnerMode =\n | 'task' // sequential\n | 'parallel'\n | 'latest'\n | 'exhaust'\n\nexport type TaskStatus = 'idle' | 'pending' | 'running' | 'success' | 'failure' | 'interrupted'\n\nexport interface TaskExecution {\n readonly taskId: number\n readonly status: TaskStatus\n readonly acceptedAt: number\n readonly startedAt?: number\n readonly endedAt?: number\n}\n\nexport interface TaskRunnerOrigins {\n readonly pending?: StateTxnOrigin\n readonly success?: StateTxnOrigin\n readonly failure?: StateTxnOrigin\n}\n\ntype TaskHandler<Payload, Sh extends AnyModuleShape, R> =\n | Logic.Of<Sh, R, void, never>\n | ((payload: Payload) => Logic.Of<Sh, R, void, never>)\n\ntype TaskEffect<Payload, Sh extends AnyModuleShape, R, A, E> =\n | Logic.Of<Sh, R, A, E>\n | ((payload: Payload) => Logic.Of<Sh, R, A, E>)\n\nexport interface TaskRunnerConfig<Payload, Sh extends AnyModuleShape, R, A = void, E = never> {\n /**\n * Optional: trigger source name (e.g. actionTag / fieldPath), used as the default pending origin.name.\n * - BoundApiRuntime may fill this in for onAction(\"xxx\") / traits.source.refresh(\"field\"), etc.\n * - Other callers are not required to provide it.\n */\n readonly triggerName?: string\n\n /**\n * pending: synchronous state writes (loading=true / clearing errors, etc.), always a separate transaction entry.\n * - Only executed for tasks that are accepted and actually started (ignored triggers in runExhaustTask do not run pending).\n */\n readonly pending?: TaskHandler<Payload, Sh, R>\n\n /**\n * effect: real IO / async work (must run outside the transaction window).\n */\n readonly effect: TaskEffect<Payload, Sh, R, A, E>\n\n /**\n * success: success writeback (separate transaction entry).\n */\n readonly success?: (result: A, payload: Payload) => Logic.Of<Sh, R, void, never>\n\n /**\n * failure: failure writeback (separate transaction entry).\n *\n * Note: takes a Cause to preserve defect/interrupt semantics; interrupts do not trigger failure writeback by default.\n */\n readonly failure?: (cause: Cause.Cause<E>, payload: Payload) => Logic.Of<Sh, R, void, never>\n\n /**\n * origin: optional override for the three transaction origins.\n * - Default: pending.kind=\"task:pending\"; success/failure.kind=\"service-callback\".\n */\n readonly origin?: TaskRunnerOrigins\n\n /**\n * priority: reserved for future debugging/sorting; does not change transaction boundaries or concurrency semantics.\n */\n readonly priority?: number\n}\n\nexport interface TaskRunnerRuntime {\n readonly moduleId?: string\n readonly instanceId?: string\n readonly runWithStateTransaction: (\n origin: StateTxnOrigin,\n body: () => Effect.Effect<void, never, any>,\n ) => Effect.Effect<void, never, any>\n readonly resolveConcurrencyPolicy?: () => Effect.Effect<RuntimeInternalsResolvedConcurrencyPolicy, never, any>\n}\n\nconst resolve = <Payload, Sh extends AnyModuleShape, R, A, E>(\n eff: TaskEffect<Payload, Sh, R, A, E> | TaskHandler<Payload, Sh, R>,\n payload: Payload,\n): any => (typeof eff === 'function' ? (eff as any)(payload) : eff)\n\nconst defaultOrigins = (triggerName: string | undefined): Required<TaskRunnerOrigins> => ({\n pending: {\n kind: 'task:pending',\n name: triggerName,\n },\n success: {\n kind: 'service-callback',\n name: 'task:success',\n },\n failure: {\n kind: 'service-callback',\n name: 'task:failure',\n },\n})\n\nexport const shouldNoopInSyncTransactionFiber = (options: {\n readonly moduleId?: string\n readonly instanceId?: string\n readonly code: string\n readonly severity: 'error' | 'warning' | 'info'\n readonly message: string\n readonly hint?: string\n readonly actionTag?: string\n readonly kind?: string\n}): Effect.Effect<boolean> =>\n Effect.gen(function* () {\n const inTxn = yield* FiberRef.get(inSyncTransactionFiber)\n if (!inTxn) {\n return false\n }\n // Always no-op regardless of env (otherwise we may deadlock); diagnostics are emitted only in dev/test.\n if (isDevEnv()) {\n yield* Debug.record({\n type: 'diagnostic',\n moduleId: options.moduleId,\n instanceId: options.instanceId,\n code: options.code,\n severity: options.severity,\n message: options.message,\n hint: options.hint,\n actionTag: options.actionTag,\n kind: options.kind,\n })\n }\n return true\n })\n\nconst resolveConcurrencyLimit = (runtime: TaskRunnerRuntime): Effect.Effect<number | 'unbounded', never, any> =>\n runtime.resolveConcurrencyPolicy\n ? runtime.resolveConcurrencyPolicy().pipe(Effect.map((p) => p.concurrencyLimit))\n : Effect.succeed(16)\n\nconst runTaskLifecycle = <Payload, Sh extends AnyModuleShape, R, A, E>(\n payload: Payload,\n runtime: TaskRunnerRuntime,\n config: TaskRunnerConfig<Payload, Sh, R, A, E>,\n getCanWriteBack?: Effect.Effect<boolean>,\n): Effect.Effect<void, never, Logic.Env<Sh, R>> =>\n Effect.gen(function* () {\n const noop = yield* shouldNoopInSyncTransactionFiber({\n moduleId: runtime.moduleId,\n instanceId: runtime.instanceId,\n code: 'logic::invalid_usage',\n severity: 'error',\n message: 'run*Task is not allowed inside a synchronous StateTransaction body (it may deadlock the txnQueue).',\n hint:\n 'Call run*Task from the run section of a watcher (e.g. $.onAction/$.onState/$.on); ' +\n 'do not call it directly inside a reducer / trait.run / synchronous transaction body. For long-lived flows, use a multi-entry pattern (pending → IO → writeback).',\n kind: 'run_task_in_transaction',\n })\n if (noop) {\n return\n }\n\n const defaults = defaultOrigins(config.triggerName)\n const origins: Required<TaskRunnerOrigins> = {\n pending: config.origin?.pending ?? defaults.pending,\n success: config.origin?.success ?? defaults.success,\n failure: config.origin?.failure ?? defaults.failure,\n }\n\n // 1) pending: separate transaction entry; once started it should not be interrupted by runLatest.\n const pending = config.pending\n if (pending) {\n yield* Effect.uninterruptible(\n runtime.runWithStateTransaction(origins.pending, () => Effect.asVoid(resolve(pending, payload))),\n )\n }\n\n // 2) IO: runs outside the transaction window.\n const io = resolve(config.effect, payload) as Effect.Effect<A, E, Logic.Env<Sh, R>>\n const exit = yield* Effect.exit(io)\n\n // 3) writeback: use the guard to confirm it's still the current task (runLatestTask).\n if (getCanWriteBack) {\n const ok = yield* getCanWriteBack\n if (!ok) {\n return\n }\n }\n\n if (exit._tag === 'Success') {\n const success = config.success\n if (success) {\n yield* runtime.runWithStateTransaction(origins.success, () => Effect.asVoid(success(exit.value, payload)))\n }\n return\n }\n\n // Failure: interruptions do not trigger failure writeback (e.g. runLatestTask cancellation, Scope ending).\n const cause = exit.cause as Cause.Cause<E>\n if (Cause.isInterrupted(cause)) {\n return\n }\n\n const failure = config.failure\n if (failure) {\n yield* runtime.runWithStateTransaction(origins.failure, () => Effect.asVoid(failure(cause, payload)))\n }\n }).pipe(\n // Watchers must not crash as a whole due to a single task failure: swallow errors, but keep them diagnosable.\n Effect.catchAllCause((cause) =>\n Debug.record({\n type: 'diagnostic',\n moduleId: runtime.moduleId,\n instanceId: runtime.instanceId,\n code: 'task_runner::unhandled_failure',\n severity: 'error',\n message: 'TaskRunner encountered an unhandled failure (pending/IO/writeback).',\n hint: 'Add a failure writeback for this task or handle errors explicitly upstream; avoid fire-and-forget swallowing errors.',\n actionTag: config.triggerName,\n kind: 'task_runner_unhandled_failure',\n trigger: {\n kind: 'task',\n name: config.triggerName,\n },\n }).pipe(Effect.zipRight(Effect.logError('TaskRunner error', cause))),\n ),\n ) as Effect.Effect<void, never, Logic.Env<Sh, R>>\n\n/**\n * makeTaskRunner:\n * - Reuses FlowRuntime concurrency semantics (sequential/parallel/latest/exhaust).\n * - Splits a single trigger into: pending (separate txn) → IO → success/failure (separate txn).\n */\nexport const makeTaskRunner = <Payload, Sh extends AnyModuleShape, R, A = void, E = never>(\n stream: Stream.Stream<Payload>,\n mode: TaskRunnerMode,\n runtime: TaskRunnerRuntime,\n config: TaskRunnerConfig<Payload, Sh, R, A, E>,\n): Effect.Effect<void, never, Logic.Env<Sh, R>> => {\n if (mode === 'latest') {\n return Effect.gen(function* () {\n const taskIdRef = yield* Ref.make(0)\n const currentFiberRef = yield* Ref.make<Fiber.RuntimeFiber<void, never> | undefined>(undefined)\n\n const start = (payload: Payload) =>\n Effect.gen(function* () {\n const taskId = yield* Ref.updateAndGet(taskIdRef, (n) => n + 1)\n\n const prev = yield* Ref.get(currentFiberRef)\n if (prev) {\n // Do not wait for the old fiber to fully end (avoid blocking new triggers); writeback is guarded by taskId.\n yield* Fiber.interruptFork(prev)\n }\n\n const canWriteBack = Ref.get(taskIdRef).pipe(Effect.map((current) => current === taskId))\n\n const fiber = yield* Effect.fork(\n runTaskLifecycle<Payload, Sh, R, A, E>(payload, runtime, config, canWriteBack),\n )\n\n yield* Ref.set(currentFiberRef, fiber)\n })\n\n return yield* Stream.runForEach(stream, start)\n })\n }\n\n if (mode === 'exhaust') {\n return Effect.gen(function* () {\n const concurrency = yield* resolveConcurrencyLimit(runtime)\n const busyRef = yield* Ref.make(false)\n\n const mapper = (payload: Payload) =>\n Effect.gen(function* () {\n const acquired = yield* Ref.modify(busyRef, (busy) =>\n busy ? ([false, busy] as const) : ([true, true] as const),\n )\n if (!acquired) {\n // Ignore trigger: no pending transaction is produced.\n return\n }\n try {\n yield* runTaskLifecycle<Payload, Sh, R, A, E>(payload, runtime, config)\n } finally {\n yield* Ref.set(busyRef, false)\n }\n })\n\n return yield* Stream.runDrain(stream.pipe(Stream.mapEffect(mapper, { concurrency })))\n }) as Effect.Effect<void, never, Logic.Env<Sh, R>>\n }\n\n if (mode === 'parallel') {\n return Effect.gen(function* () {\n const concurrency = yield* resolveConcurrencyLimit(runtime)\n\n return yield* Stream.runDrain(\n stream.pipe(\n Stream.mapEffect((payload) => runTaskLifecycle<Payload, Sh, R, A, E>(payload, runtime, config), {\n concurrency,\n }),\n ),\n )\n }) as Effect.Effect<void, never, Logic.Env<Sh, R>>\n }\n\n // mode === \"task\"(sequential)\n return Stream.runForEach(stream, (payload) =>\n runTaskLifecycle<Payload, Sh, R, A, E>(payload, runtime, config),\n ) as Effect.Effect<void, never, Logic.Env<Sh, R>>\n}\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/internal/state-trait/ir.ts"],"sourcesContent":["import type { StateTraitEntry, StateTraitPlanStep, StateTraitProgram } from './model.js'\nimport * as CanonicalFieldPath from '../field-path.js'\nimport { fnv1a32, stableStringify } from '../digest.js'\n\nexport type FieldPath = CanonicalFieldPath.FieldPath\n\nexport interface StaticIrNode {\n readonly nodeId: string\n readonly kind: string\n readonly reads: ReadonlyArray<FieldPath>\n readonly writes: ReadonlyArray<FieldPath>\n readonly writesUnknown?: boolean\n readonly policy?: Record<string, unknown>\n readonly meta?: {\n readonly label?: string\n readonly description?: string\n readonly tags?: ReadonlyArray<string>\n readonly group?: string\n readonly docsUrl?: string\n readonly cacheGroup?: string\n readonly annotations?: Record<string, unknown>\n }\n}\n\nexport interface StaticIrEdge {\n readonly edgeId: string\n readonly from: string\n readonly to: string\n readonly kind: string\n}\n\nexport interface StaticIr {\n readonly version: string\n readonly moduleId: string\n /**\n * Stable digest (for drift detection / diffing): determined solely by the current export structure.\n */\n readonly digest: string\n readonly nodes: ReadonlyArray<StaticIrNode>\n readonly edges: ReadonlyArray<StaticIrEdge>\n readonly conflicts?: ReadonlyArray<unknown>\n}\n\nconst normalizeFieldPaths = (paths: ReadonlyArray<string> | undefined): ReadonlyArray<FieldPath> => {\n if (!paths || paths.length === 0) return []\n const out: Array<FieldPath> = []\n for (const path of paths) {\n const normalized = CanonicalFieldPath.normalizeFieldPath(path)\n if (normalized) out.push(normalized)\n }\n return out\n}\n\nconst normalizeFieldPath = (path: string | undefined): FieldPath | undefined =>\n path ? CanonicalFieldPath.normalizeFieldPath(path) : undefined\n\nconst toNodeKind = (step: StateTraitPlanStep): string => {\n switch (step.kind) {\n case 'computed-update':\n return 'computed'\n case 'link-propagate':\n return 'link'\n case 'source-refresh':\n return 'source'\n case 'check-validate':\n return 'check'\n }\n}\n\nconst findEntryForStep = (\n program: StateTraitProgram<any>,\n step: StateTraitPlanStep,\n): StateTraitEntry<any, string> | undefined => {\n const fieldPath = step.targetFieldPath\n if (!fieldPath) return undefined\n const kind = toNodeKind(step)\n return program.entries.find(\n (e) =>\n e.fieldPath === fieldPath &&\n (e.kind === kind ||\n (kind === 'check' && e.kind === 'check') ||\n (kind === 'source' && e.kind === 'source') ||\n (kind === 'link' && e.kind === 'link') ||\n (kind === 'computed' && e.kind === 'computed')),\n )\n}\n\nconst getReadsForEntry = (entry: StateTraitEntry<any, string> | undefined): ReadonlyArray<string> | undefined => {\n if (!entry) return undefined\n if (entry.kind === 'computed') {\n return (entry.meta as any).deps as ReadonlyArray<string> | undefined\n }\n if (entry.kind === 'source') {\n return (entry.meta as any).deps as ReadonlyArray<string> | undefined\n }\n if (entry.kind === 'link') {\n const from = (entry.meta as any).from as string | undefined\n return from ? [from] : []\n }\n if (entry.kind === 'check') {\n const rules = ((entry.meta as any)?.rules ?? {}) as Record<string, any>\n const out: Array<string> = []\n for (const name of Object.keys(rules)) {\n const rule = rules[name]\n const deps = rule?.deps as ReadonlyArray<string> | undefined\n if (deps) out.push(...deps)\n }\n return out\n }\n return undefined\n}\n\nexport const exportStaticIr = (params: {\n readonly program: StateTraitProgram<any>\n readonly moduleId: string\n readonly version?: string\n}): StaticIr => {\n const moduleId = params.moduleId\n const version = params.version ?? '009'\n\n const metaByField = new Map<\n string,\n {\n readonly label?: string\n readonly description?: string\n readonly tags?: ReadonlyArray<string>\n readonly group?: string\n readonly docsUrl?: string\n readonly cacheGroup?: string\n readonly annotations?: Record<string, unknown>\n }\n >()\n for (const node of params.program.graph.nodes) {\n const meta = node.meta as any\n if (!meta || typeof meta !== 'object') continue\n const label = typeof meta.label === 'string' ? meta.label : undefined\n const description = typeof meta.description === 'string' ? meta.description : undefined\n const tags =\n Array.isArray(meta.tags) && meta.tags.every((t: unknown) => typeof t === 'string')\n ? (meta.tags as ReadonlyArray<string>)\n : undefined\n const group = typeof meta.group === 'string' ? meta.group : undefined\n const docsUrl = typeof meta.docsUrl === 'string' ? meta.docsUrl : undefined\n const cacheGroup = typeof meta.cacheGroup === 'string' ? meta.cacheGroup : undefined\n\n const annotationsRaw = meta.annotations\n const annotations =\n annotationsRaw && typeof annotationsRaw === 'object' && !Array.isArray(annotationsRaw)\n ? (annotationsRaw as Record<string, unknown>)\n : undefined\n\n if (label || description || tags || group || docsUrl || cacheGroup || annotations) {\n metaByField.set(node.id, {\n label,\n description,\n tags,\n group,\n docsUrl,\n cacheGroup,\n annotations,\n })\n }\n }\n\n const nodes: Array<StaticIrNode> = params.program.plan.steps.map((step) => {\n const kind = toNodeKind(step)\n const entry = findEntryForStep(params.program, step)\n const reads = normalizeFieldPaths(getReadsForEntry(entry))\n\n const target = step.targetFieldPath\n const write = normalizeFieldPath(target)\n const writes = write ? [write] : []\n\n const meta = target ? metaByField.get(target) : undefined\n\n const base: StaticIrNode = {\n nodeId: step.id,\n kind,\n reads,\n writes: kind === 'check' ? [] : writes,\n meta,\n }\n\n if (kind !== 'check' && target && !write) {\n return { ...base, writesUnknown: true }\n }\n return base\n })\n\n const edges: Array<StaticIrEdge> = params.program.graph.edges.map((edge) => ({\n edgeId: edge.id,\n from: edge.from,\n to: edge.to,\n kind: edge.kind,\n }))\n\n const base = {\n version,\n moduleId,\n nodes,\n edges,\n } as const\n\n const digest = `stir:${version}:${fnv1a32(stableStringify(base))}`\n\n return {\n ...base,\n digest,\n }\n}\n"],"mappings":"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","names":["normalizeFieldPath","base"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/internal/runtime/core/RuntimeKernel.ts","../src/internal/runtime/core/KernelRef.ts"],"sourcesContent":["import { Context, Effect, Option } from 'effect'\nimport { isDevEnv } from './env.js'\n\nexport type OverrideScope = 'builtin' | 'runtime_default' | 'runtime_module' | 'provider' | 'instance'\n\nexport type RuntimeServiceOverride = {\n readonly implId?: string\n readonly notes?: string\n}\n\n/**\n * RuntimeServicesOverrides: a serializable override for runtime service implementation selection.\n *\n * - The key is a stable serviceId.\n * - The value may only contain serializable fields (no functions/closures) so evidence can be produced and explained.\n */\nexport type RuntimeServicesOverrides = Readonly<Record<string, RuntimeServiceOverride>>\n\nexport interface RuntimeServicesRuntimeConfig {\n /** Runtime-level default overrides (runtime_default). */\n readonly services?: RuntimeServicesOverrides\n /** Per-module delta overrides by moduleId (runtime_module). */\n readonly servicesByModuleId?: Readonly<Record<string, RuntimeServicesOverrides>>\n}\n\nclass RuntimeServicesRuntimeConfigTagImpl extends Context.Tag('@logixjs/core/RuntimeServicesRuntimeConfig')<\n RuntimeServicesRuntimeConfigTagImpl,\n RuntimeServicesRuntimeConfig\n>() {}\n\nexport const RuntimeServicesRuntimeConfigTag = RuntimeServicesRuntimeConfigTagImpl\n\nexport interface RuntimeServicesProviderOverrides {\n /** Provider-scoped default overrides (provider). */\n readonly services?: RuntimeServicesOverrides\n /** Provider-scoped per-module delta overrides by moduleId (provider). */\n readonly servicesByModuleId?: Readonly<Record<string, RuntimeServicesOverrides>>\n}\n\nclass RuntimeServicesProviderOverridesTagImpl extends Context.Tag('@logixjs/core/RuntimeServicesProviderOverrides')<\n RuntimeServicesProviderOverridesTagImpl,\n RuntimeServicesProviderOverrides\n>() {}\n\nexport const RuntimeServicesProviderOverridesTag = RuntimeServicesProviderOverridesTagImpl\n\nclass RuntimeServicesInstanceOverridesTagImpl extends Context.Tag('@logixjs/core/RuntimeServicesInstanceOverrides')<\n RuntimeServicesInstanceOverridesTagImpl,\n RuntimeServicesOverrides\n>() {}\n\nexport const RuntimeServicesInstanceOverridesTag = RuntimeServicesInstanceOverridesTagImpl\n\n/**\n * FullCutoverGateMode: controls whether fallbacks are allowed during assembly.\n *\n * - trial: allows fallbacks (for trial-run / comparison / diagnostics).\n * - fullCutover: forbids fallbacks (any fallback or missing binding fails).\n *\n * Default: trial. If you need a strict gate, set it to fullCutover explicitly in the public Runtime defaults.\n */\nexport type FullCutoverGateMode = 'trial' | 'fullCutover'\n\nclass FullCutoverGateModeTagImpl extends Context.Tag('@logixjs/core/FullCutoverGateMode')<\n FullCutoverGateModeTagImpl,\n FullCutoverGateMode\n>() {}\n\nexport const FullCutoverGateModeTag = FullCutoverGateModeTagImpl\n\nexport interface RuntimeServiceBinding {\n readonly serviceId: string\n readonly implId?: string\n readonly implVersion?: string\n readonly scope: OverrideScope\n readonly overridden: boolean\n readonly notes?: string\n}\n\nexport interface RuntimeServicesEvidence {\n readonly moduleId?: string\n readonly instanceId: string\n readonly scope: OverrideScope\n readonly bindings: ReadonlyArray<RuntimeServiceBinding>\n readonly overridesApplied: ReadonlyArray<string>\n}\n\nconst ORDERED_SCOPES: ReadonlyArray<OverrideScope> = [\n 'builtin',\n 'runtime_default',\n 'runtime_module',\n 'provider',\n 'instance',\n]\n\nconst maxScope = (a: OverrideScope, b: OverrideScope): OverrideScope => {\n const ai = ORDERED_SCOPES.indexOf(a)\n const bi = ORDERED_SCOPES.indexOf(b)\n return (ai >= bi ? a : b) as OverrideScope\n}\n\nconst isPlainRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value)\n\nconst normalizeOverride = (value: unknown): RuntimeServiceOverride | undefined => {\n if (!isPlainRecord(value)) return undefined\n\n const implIdRaw = value.implId\n const notesRaw = value.notes\n\n return {\n implId: typeof implIdRaw === 'string' && implIdRaw.length > 0 ? implIdRaw : undefined,\n notes: typeof notesRaw === 'string' && notesRaw.length > 0 ? notesRaw : undefined,\n }\n}\n\nexport const resolveRuntimeServicesOverrides = (args: {\n readonly moduleId: string | undefined\n}): Effect.Effect<\n {\n readonly runtimeDefault?: RuntimeServicesOverrides\n readonly runtimeModule?: RuntimeServicesOverrides\n readonly provider?: RuntimeServicesOverrides\n readonly providerModule?: RuntimeServicesOverrides\n readonly instance?: RuntimeServicesOverrides\n },\n never,\n any\n> =>\n Effect.gen(function* () {\n const runtimeConfigOpt = yield* Effect.serviceOption(RuntimeServicesRuntimeConfigTag)\n const providerOverridesOpt = yield* Effect.serviceOption(RuntimeServicesProviderOverridesTag)\n const instanceOverridesOpt = yield* Effect.serviceOption(RuntimeServicesInstanceOverridesTag)\n\n const runtimeConfig = Option.isSome(runtimeConfigOpt) ? runtimeConfigOpt.value : undefined\n const providerOverrides = Option.isSome(providerOverridesOpt) ? providerOverridesOpt.value : undefined\n const instanceOverrides = Option.isSome(instanceOverridesOpt) ? instanceOverridesOpt.value : undefined\n\n const moduleId = args.moduleId\n\n const runtimeModule =\n moduleId && runtimeConfig?.servicesByModuleId ? runtimeConfig.servicesByModuleId[moduleId] : undefined\n\n const providerModule =\n moduleId && providerOverrides?.servicesByModuleId ? providerOverrides.servicesByModuleId[moduleId] : undefined\n\n return {\n runtimeDefault: runtimeConfig?.services,\n runtimeModule,\n provider: providerOverrides?.services,\n providerModule,\n instance: instanceOverrides,\n }\n })\n\nexport interface RuntimeServiceImpl<Service> {\n readonly implId: string\n readonly implVersion: string\n readonly make: Effect.Effect<Service, never, any>\n readonly notes?: string\n}\n\n/**\n * RuntimeServicesRegistry:\n * - Used to inject additional serviceId → impls (e.g. implementations provided by core-ng).\n * - A non-serializable contract used only during assembly; selection evidence is still carried by\n * RuntimeServicesOverrides + RuntimeServicesEvidence.\n */\nexport interface RuntimeServicesRegistry {\n readonly implsByServiceId: Readonly<Record<string, ReadonlyArray<RuntimeServiceImpl<any>>>>\n}\n\nclass RuntimeServicesRegistryTagImpl extends Context.Tag('@logixjs/core/RuntimeServicesRegistry')<\n RuntimeServicesRegistryTagImpl,\n RuntimeServicesRegistry\n>() {}\n\nexport const RuntimeServicesRegistryTag = RuntimeServicesRegistryTagImpl\n\nexport interface RuntimeServiceSelection<Service> {\n readonly binding: RuntimeServiceBinding\n readonly impl: RuntimeServiceImpl<Service>\n readonly overridesApplied: ReadonlyArray<string>\n}\n\nexport const selectRuntimeService = <Service>(\n serviceId: string,\n impls: ReadonlyArray<RuntimeServiceImpl<Service>>,\n overrides: {\n readonly runtimeDefault?: RuntimeServicesOverrides\n readonly runtimeModule?: RuntimeServicesOverrides\n readonly provider?: RuntimeServicesOverrides\n readonly providerModule?: RuntimeServicesOverrides\n readonly instance?: RuntimeServicesOverrides\n },\n): RuntimeServiceSelection<Service> => {\n const builtin = impls[0]\n if (!builtin) {\n throw new Error(`[Logix] RuntimeKernel registry missing builtin impl for: ${serviceId}`)\n }\n\n let desired: { readonly scope: OverrideScope; readonly override: RuntimeServiceOverride } | undefined\n const consider = (scope: OverrideScope, patch: RuntimeServicesOverrides | undefined): void => {\n const next = patch ? normalizeOverride(patch[serviceId]) : undefined\n if (!next || !next.implId) return\n desired = { scope, override: next }\n }\n\n // priority: builtin < runtime_default < runtime_module < provider < instance\n consider('runtime_default', overrides.runtimeDefault)\n consider('runtime_module', overrides.runtimeModule)\n consider('provider', overrides.provider)\n consider('provider', overrides.providerModule)\n consider('instance', overrides.instance)\n\n if (!desired) {\n return {\n impl: builtin,\n binding: {\n serviceId,\n implId: builtin.implId,\n implVersion: builtin.implVersion,\n scope: 'builtin',\n overridden: false,\n notes: builtin.notes,\n },\n overridesApplied: [],\n }\n }\n\n const desiredImplId = desired.override.implId!\n const selected = impls.find((i) => i.implId === desiredImplId)\n const impl = selected ?? builtin\n\n const didFallback = selected == null\n const fallbackNote = didFallback\n ? `Unknown implId \"${desiredImplId}\", falling back to builtin \"${builtin.implId}\"`\n : undefined\n\n const notes = [desired.override.notes, impl.notes, fallbackNote]\n .filter((s): s is string => typeof s === 'string' && s.length > 0)\n .join('; ')\n\n return {\n impl,\n binding: {\n serviceId,\n implId: impl.implId,\n implVersion: impl.implVersion,\n scope: desired.scope,\n overridden: true,\n notes: notes.length > 0 ? notes : undefined,\n },\n overridesApplied: [\n didFallback\n ? `${desired.scope}:${serviceId}=${desiredImplId} (fallback=${builtin.implId})`\n : `${desired.scope}:${serviceId}=${desiredImplId}`,\n ],\n }\n}\n\nexport const makeRuntimeServicesEvidence = (args: {\n readonly moduleId: string | undefined\n readonly instanceId: string\n readonly bindings: ReadonlyArray<RuntimeServiceBinding>\n readonly overridesApplied: ReadonlyArray<string>\n}): RuntimeServicesEvidence => {\n let scope: OverrideScope = 'builtin'\n for (const b of args.bindings) {\n scope = maxScope(scope, b.scope)\n }\n\n return {\n moduleId: args.moduleId,\n instanceId: args.instanceId,\n scope,\n bindings: args.bindings,\n overridesApplied: args.overridesApplied,\n }\n}\n\nconst RUNTIME_SERVICES_EVIDENCE = Symbol.for('@logixjs/core/runtimeServicesEvidence')\n\nconst defineHidden = (target: object, key: symbol, value: unknown): void => {\n Object.defineProperty(target, key, {\n value,\n enumerable: false,\n configurable: true,\n writable: false,\n })\n}\n\nconst formatScope = (moduleId: unknown, instanceId: unknown): string => {\n const m = typeof moduleId === 'string' && moduleId.length > 0 ? moduleId : 'unknown'\n const i = typeof instanceId === 'string' && instanceId.length > 0 ? instanceId : 'unknown'\n return `moduleId=${m}, instanceId=${i}`\n}\n\nexport const setRuntimeServicesEvidence = (runtime: object, evidence: RuntimeServicesEvidence): void => {\n defineHidden(runtime, RUNTIME_SERVICES_EVIDENCE, evidence)\n}\n\nexport const getRuntimeServicesEvidence = (runtime: object): RuntimeServicesEvidence => {\n const scope = runtime as { readonly moduleId?: unknown; readonly instanceId?: unknown }\n const evidence = (runtime as any)[RUNTIME_SERVICES_EVIDENCE] as RuntimeServicesEvidence | undefined\n if (!evidence) {\n const msg = isDevEnv()\n ? [\n '[MissingRuntimeServicesEvidence] Runtime services evidence not installed on ModuleRuntime instance.',\n `scope: ${formatScope(scope.moduleId, scope.instanceId)}`,\n 'fix:',\n '- Ensure ModuleRuntime.make assembles RuntimeKernel and attaches evidence (020 US2).',\n '- If you created a mock runtime for tests, attach evidence or avoid calling evidence-only APIs.',\n ].join('\\n')\n : 'Runtime services evidence not installed'\n throw new Error(msg)\n }\n\n const runtimeInstanceId = scope.instanceId\n if (\n typeof runtimeInstanceId === 'string' &&\n runtimeInstanceId.length > 0 &&\n runtimeInstanceId !== evidence.instanceId\n ) {\n throw new Error(\n isDevEnv()\n ? [\n '[InconsistentRuntimeServicesEvidence] Runtime services evidence instanceId mismatch.',\n `runtime: ${formatScope(scope.moduleId, runtimeInstanceId)}`,\n `evidence: ${formatScope(evidence.moduleId, evidence.instanceId)}`,\n ].join('\\n')\n : 'Runtime services evidence mismatch',\n )\n }\n\n return evidence\n}\n","import { Context, Effect, Option } from 'effect'\nimport { isDevEnv } from './env.js'\n\n/**\n * Stable identifier for a kernel variant (requested kernel family).\n *\n * - Recommended: `[a-z0-9-]+` (lower-kebab).\n * - Recommended reserved names: `core` (builtin semantics), `core-ng` (history/comparison).\n */\nexport type KernelId = 'core' | 'core-ng' | (string & {})\n\nconst isKernelId = (value: unknown): value is KernelId =>\n typeof value === 'string' && value.length > 0 && /^[a-z0-9-]+$/.test(value)\n\nexport interface KernelImplementationRef {\n /**\n * Requested kernel family id (not a version number).\n * Actual activation / fallback must be interpreted via RuntimeServicesEvidence.\n */\n readonly kernelId: KernelId\n /** The npm package that provides the kernel implementation. */\n readonly packageName: string\n /** Optional semver for explainability (not used as a semantic anchor). */\n readonly packageVersion?: string\n /** Optional build hash/id for evidence diff explainability. */\n readonly buildId?: string\n /** Explainability-only labels; must not become semantic switches. */\n readonly capabilities?: ReadonlyArray<string>\n}\n\nexport const defaultKernelImplementationRef = {\n kernelId: 'core',\n packageName: '@logixjs/core',\n} as const satisfies KernelImplementationRef\n\nexport const isKernelImplementationRef = (value: unknown): value is KernelImplementationRef => {\n if (typeof value !== 'object' || value === null || Array.isArray(value)) return false\n\n const keys = Object.keys(value)\n for (const k of keys) {\n if (k !== 'kernelId' && k !== 'packageName' && k !== 'packageVersion' && k !== 'buildId' && k !== 'capabilities') {\n return false\n }\n }\n\n const v: any = value\n if (!isKernelId(v.kernelId)) return false\n if (typeof v.packageName !== 'string' || v.packageName.length === 0) return false\n\n if (v.packageVersion !== undefined && (typeof v.packageVersion !== 'string' || v.packageVersion.length === 0)) {\n return false\n }\n if (v.buildId !== undefined && (typeof v.buildId !== 'string' || v.buildId.length === 0)) {\n return false\n }\n if (v.capabilities !== undefined) {\n if (!Array.isArray(v.capabilities)) return false\n if (!v.capabilities.every((c: unknown) => typeof c === 'string')) return false\n }\n\n return true\n}\n\nexport const normalizeKernelImplementationRef = (\n value: unknown,\n fallback: KernelImplementationRef = defaultKernelImplementationRef,\n): KernelImplementationRef => {\n if (typeof value !== 'object' || value === null || Array.isArray(value)) return fallback\n\n const v: any = value\n if (!isKernelId(v.kernelId)) return fallback\n if (typeof v.packageName !== 'string' || v.packageName.length === 0) return fallback\n\n return {\n kernelId: v.kernelId,\n packageName: v.packageName,\n ...(typeof v.packageVersion === 'string' && v.packageVersion.length > 0\n ? { packageVersion: v.packageVersion }\n : {}),\n ...(typeof v.buildId === 'string' && v.buildId.length > 0 ? { buildId: v.buildId } : {}),\n ...(Array.isArray(v.capabilities) && v.capabilities.every((c: unknown) => typeof c === 'string')\n ? { capabilities: v.capabilities as ReadonlyArray<string> }\n : {}),\n }\n}\n\nclass KernelImplementationRefTagImpl extends Context.Tag('@logixjs/core/KernelImplementationRef')<\n KernelImplementationRefTagImpl,\n KernelImplementationRef\n>() {}\n\nexport const KernelImplementationRefTag = KernelImplementationRefTagImpl\n\nexport const resolveKernelImplementationRef = (): Effect.Effect<KernelImplementationRef, never, any> =>\n Effect.gen(function* () {\n const opt = yield* Effect.serviceOption(KernelImplementationRefTag)\n return normalizeKernelImplementationRef(Option.isSome(opt) ? opt.value : undefined)\n })\n\nconst KERNEL_IMPLEMENTATION_REF = Symbol.for('@logixjs/core/kernelImplementationRef')\n\nconst defineHidden = (target: object, key: symbol, value: unknown): void => {\n Object.defineProperty(target, key, {\n value,\n enumerable: false,\n configurable: true,\n writable: false,\n })\n}\n\nconst formatScope = (moduleId: unknown, instanceId: unknown): string => {\n const m = typeof moduleId === 'string' && moduleId.length > 0 ? moduleId : 'unknown'\n const i = typeof instanceId === 'string' && instanceId.length > 0 ? instanceId : 'unknown'\n return `moduleId=${m}, instanceId=${i}`\n}\n\nexport const setKernelImplementationRef = (runtime: object, ref: KernelImplementationRef): void => {\n defineHidden(runtime, KERNEL_IMPLEMENTATION_REF, ref)\n}\n\nexport const getKernelImplementationRef = (runtime: object): KernelImplementationRef => {\n const scope = runtime as { readonly moduleId?: unknown; readonly instanceId?: unknown }\n const ref = (runtime as any)[KERNEL_IMPLEMENTATION_REF] as KernelImplementationRef | undefined\n if (!ref) {\n const msg = isDevEnv()\n ? [\n '[MissingKernelImplementationRef] KernelImplementationRef not installed on ModuleRuntime instance.',\n `scope: ${formatScope(scope.moduleId, scope.instanceId)}`,\n 'fix:',\n '- Ensure ModuleRuntime.make installs KernelImplementationRef (045 kernel contract).',\n '- If you created a mock runtime for tests, attach KernelImplementationRef or avoid calling kernel-only APIs.',\n ].join('\\n')\n : 'KernelImplementationRef not installed'\n throw new Error(msg)\n }\n return ref\n}\n"],"mappings":"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","names":["Context","Effect","Option","Context","Effect","Option","defineHidden","formatScope"]}
@@ -1,127 +0,0 @@
1
- type DiagnosticsLevel = 'off' | 'light' | 'full';
2
- type ProcessScope = {
3
- readonly type: 'app';
4
- readonly appId: string;
5
- } | {
6
- readonly type: 'moduleInstance';
7
- readonly moduleId: string;
8
- readonly instanceId: string;
9
- } | {
10
- readonly type: 'uiSubtree';
11
- readonly subtreeId: string;
12
- };
13
- interface ProcessIdentity {
14
- readonly processId: string;
15
- readonly scope: ProcessScope;
16
- }
17
- interface ProcessInstanceIdentity {
18
- readonly identity: ProcessIdentity;
19
- readonly runSeq: number;
20
- }
21
- type ProcessTriggerSpec = {
22
- readonly kind: 'moduleAction';
23
- readonly name?: string;
24
- readonly moduleId: string;
25
- readonly actionId: string;
26
- } | {
27
- readonly kind: 'moduleStateChange';
28
- readonly name?: string;
29
- readonly moduleId: string;
30
- readonly path: string;
31
- } | {
32
- readonly kind: 'platformEvent';
33
- readonly name?: string;
34
- readonly platformEvent: string;
35
- } | {
36
- readonly kind: 'timer';
37
- readonly name?: string;
38
- readonly timerId: string;
39
- };
40
- type ProcessTrigger = {
41
- readonly kind: 'moduleAction';
42
- readonly name?: string;
43
- readonly moduleId: string;
44
- readonly instanceId: string;
45
- readonly actionId: string;
46
- readonly txnSeq: number;
47
- readonly triggerSeq?: number;
48
- } | {
49
- readonly kind: 'moduleStateChange';
50
- readonly name?: string;
51
- readonly moduleId: string;
52
- readonly instanceId: string;
53
- readonly path: string;
54
- readonly txnSeq: number;
55
- readonly triggerSeq?: number;
56
- } | {
57
- readonly kind: 'platformEvent';
58
- readonly name?: string;
59
- readonly platformEvent: string;
60
- readonly triggerSeq?: number;
61
- } | {
62
- readonly kind: 'timer';
63
- readonly name?: string;
64
- readonly timerId: string;
65
- readonly triggerSeq?: number;
66
- };
67
- interface ProcessConcurrencyPolicy {
68
- readonly mode: 'latest' | 'serial' | 'drop' | 'parallel';
69
- readonly maxParallel?: number;
70
- readonly maxQueue?: number;
71
- }
72
- interface ProcessErrorPolicy {
73
- readonly mode: 'failStop' | 'supervise';
74
- readonly maxRestarts?: number;
75
- readonly windowMs?: number;
76
- }
77
- interface ProcessDefinition {
78
- readonly processId: string;
79
- readonly name?: string;
80
- readonly description?: string;
81
- readonly requires?: ReadonlyArray<string>;
82
- readonly triggers: ReadonlyArray<ProcessTriggerSpec>;
83
- readonly concurrency: ProcessConcurrencyPolicy;
84
- readonly errorPolicy: ProcessErrorPolicy;
85
- readonly diagnosticsLevel?: DiagnosticsLevel;
86
- }
87
- interface ProcessInstallation {
88
- readonly identity: ProcessIdentity;
89
- readonly enabled: boolean;
90
- readonly installedAt?: string;
91
- }
92
- interface SerializableErrorSummary {
93
- readonly name?: string;
94
- readonly message: string;
95
- readonly code?: string;
96
- readonly hint?: string;
97
- }
98
- type ProcessInstanceStatus = {
99
- readonly identity: ProcessInstanceIdentity;
100
- readonly status: 'starting' | 'running' | 'stopping' | 'stopped' | 'failed';
101
- readonly stoppedReason?: 'scopeDisposed' | 'manualStop' | 'failed' | 'unknown';
102
- readonly lastError?: SerializableErrorSummary;
103
- };
104
- type ProcessEvent = {
105
- readonly type: 'process:start' | 'process:stop' | 'process:restart' | 'process:trigger' | 'process:dispatch' | 'process:error';
106
- readonly identity: ProcessInstanceIdentity;
107
- readonly severity: 'info' | 'warning' | 'error';
108
- readonly eventSeq: number;
109
- readonly timestampMs: number;
110
- readonly trigger?: ProcessTrigger;
111
- readonly dispatch?: {
112
- readonly moduleId: string;
113
- readonly instanceId: string;
114
- readonly actionId: string;
115
- };
116
- readonly error?: SerializableErrorSummary;
117
- };
118
- interface ProcessControlRequest {
119
- readonly action: 'start' | 'stop' | 'restart';
120
- readonly reason?: string;
121
- }
122
- interface ProcessPlatformEvent {
123
- readonly eventName: string;
124
- readonly payload?: Record<string, unknown>;
125
- }
126
-
127
- export type { DiagnosticsLevel as D, ProcessScope as P, SerializableErrorSummary as S, ProcessInstallation as a, ProcessInstanceStatus as b, ProcessControlRequest as c, ProcessPlatformEvent as d, ProcessEvent as e, ProcessDefinition as f, ProcessIdentity as g, ProcessInstanceIdentity as h, ProcessTriggerSpec as i, ProcessTrigger as j, ProcessConcurrencyPolicy as k, ProcessErrorPolicy as l };
@@ -1,127 +0,0 @@
1
- type DiagnosticsLevel = 'off' | 'light' | 'full';
2
- type ProcessScope = {
3
- readonly type: 'app';
4
- readonly appId: string;
5
- } | {
6
- readonly type: 'moduleInstance';
7
- readonly moduleId: string;
8
- readonly instanceId: string;
9
- } | {
10
- readonly type: 'uiSubtree';
11
- readonly subtreeId: string;
12
- };
13
- interface ProcessIdentity {
14
- readonly processId: string;
15
- readonly scope: ProcessScope;
16
- }
17
- interface ProcessInstanceIdentity {
18
- readonly identity: ProcessIdentity;
19
- readonly runSeq: number;
20
- }
21
- type ProcessTriggerSpec = {
22
- readonly kind: 'moduleAction';
23
- readonly name?: string;
24
- readonly moduleId: string;
25
- readonly actionId: string;
26
- } | {
27
- readonly kind: 'moduleStateChange';
28
- readonly name?: string;
29
- readonly moduleId: string;
30
- readonly path: string;
31
- } | {
32
- readonly kind: 'platformEvent';
33
- readonly name?: string;
34
- readonly platformEvent: string;
35
- } | {
36
- readonly kind: 'timer';
37
- readonly name?: string;
38
- readonly timerId: string;
39
- };
40
- type ProcessTrigger = {
41
- readonly kind: 'moduleAction';
42
- readonly name?: string;
43
- readonly moduleId: string;
44
- readonly instanceId: string;
45
- readonly actionId: string;
46
- readonly txnSeq: number;
47
- readonly triggerSeq?: number;
48
- } | {
49
- readonly kind: 'moduleStateChange';
50
- readonly name?: string;
51
- readonly moduleId: string;
52
- readonly instanceId: string;
53
- readonly path: string;
54
- readonly txnSeq: number;
55
- readonly triggerSeq?: number;
56
- } | {
57
- readonly kind: 'platformEvent';
58
- readonly name?: string;
59
- readonly platformEvent: string;
60
- readonly triggerSeq?: number;
61
- } | {
62
- readonly kind: 'timer';
63
- readonly name?: string;
64
- readonly timerId: string;
65
- readonly triggerSeq?: number;
66
- };
67
- interface ProcessConcurrencyPolicy {
68
- readonly mode: 'latest' | 'serial' | 'drop' | 'parallel';
69
- readonly maxParallel?: number;
70
- readonly maxQueue?: number;
71
- }
72
- interface ProcessErrorPolicy {
73
- readonly mode: 'failStop' | 'supervise';
74
- readonly maxRestarts?: number;
75
- readonly windowMs?: number;
76
- }
77
- interface ProcessDefinition {
78
- readonly processId: string;
79
- readonly name?: string;
80
- readonly description?: string;
81
- readonly requires?: ReadonlyArray<string>;
82
- readonly triggers: ReadonlyArray<ProcessTriggerSpec>;
83
- readonly concurrency: ProcessConcurrencyPolicy;
84
- readonly errorPolicy: ProcessErrorPolicy;
85
- readonly diagnosticsLevel?: DiagnosticsLevel;
86
- }
87
- interface ProcessInstallation {
88
- readonly identity: ProcessIdentity;
89
- readonly enabled: boolean;
90
- readonly installedAt?: string;
91
- }
92
- interface SerializableErrorSummary {
93
- readonly name?: string;
94
- readonly message: string;
95
- readonly code?: string;
96
- readonly hint?: string;
97
- }
98
- type ProcessInstanceStatus = {
99
- readonly identity: ProcessInstanceIdentity;
100
- readonly status: 'starting' | 'running' | 'stopping' | 'stopped' | 'failed';
101
- readonly stoppedReason?: 'scopeDisposed' | 'manualStop' | 'failed' | 'unknown';
102
- readonly lastError?: SerializableErrorSummary;
103
- };
104
- type ProcessEvent = {
105
- readonly type: 'process:start' | 'process:stop' | 'process:restart' | 'process:trigger' | 'process:dispatch' | 'process:error';
106
- readonly identity: ProcessInstanceIdentity;
107
- readonly severity: 'info' | 'warning' | 'error';
108
- readonly eventSeq: number;
109
- readonly timestampMs: number;
110
- readonly trigger?: ProcessTrigger;
111
- readonly dispatch?: {
112
- readonly moduleId: string;
113
- readonly instanceId: string;
114
- readonly actionId: string;
115
- };
116
- readonly error?: SerializableErrorSummary;
117
- };
118
- interface ProcessControlRequest {
119
- readonly action: 'start' | 'stop' | 'restart';
120
- readonly reason?: string;
121
- }
122
- interface ProcessPlatformEvent {
123
- readonly eventName: string;
124
- readonly payload?: Record<string, unknown>;
125
- }
126
-
127
- export type { DiagnosticsLevel as D, ProcessScope as P, SerializableErrorSummary as S, ProcessInstallation as a, ProcessInstanceStatus as b, ProcessControlRequest as c, ProcessPlatformEvent as d, ProcessEvent as e, ProcessDefinition as f, ProcessIdentity as g, ProcessInstanceIdentity as h, ProcessTriggerSpec as i, ProcessTrigger as j, ProcessConcurrencyPolicy as k, ProcessErrorPolicy as l };