@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/Debug.ts","../src/internal/runtime/core/DevtoolsHub.ts"],"sourcesContent":["import { Effect, Layer, Logger } from 'effect'\nimport type { AnyModuleShape, ModuleLike, ModuleRuntime, ModuleTag } from './internal/module.js'\nimport type { StateTraitProgram, StateTraitGraph, StateTraitPlan } from './StateTrait.js'\nimport * as Internal from './internal/runtime/core/DebugSink.js'\nimport * as DevtoolsHub from './internal/runtime/core/DevtoolsHub.js'\nimport * as ConvergeStaticIrCollector from './internal/runtime/core/ConvergeStaticIrCollector.js'\nimport * as ModuleTraitsRegistry from './internal/debug/ModuleTraitsRegistry.js'\nimport type * as ModuleTraits from './internal/runtime/core/ModuleTraits.js'\nimport { getModuleTraitsProgram, getRuntimeInternals } from './internal/runtime/core/runtimeInternalsAccessor.js'\nimport { getNodeEnv } from './internal/runtime/core/env.js'\nimport type { EvidencePackage, EvidencePackageSource } from './Observability.js'\n\n// Public Debug API: a namespace-shaped facade for debugging capabilities used by apps and platforms.\n// The event model and core Layers live in internal/runtime/core/DebugSink.ts; this module provides ergonomic entry points.\n\nexport type Event = Internal.Event\nexport interface Sink extends Internal.Sink {}\nexport interface RuntimeDebugEventRef extends Internal.RuntimeDebugEventRef {}\nexport type DiagnosticsLevel = Internal.DiagnosticsLevel\nexport type DiagnosticsMaterialization = Internal.DiagnosticsMaterialization\nexport type TraceMode = Internal.TraceMode\nexport type TraitConvergeDiagnosticsSamplingConfig = Internal.TraitConvergeDiagnosticsSamplingConfig\nexport type SnapshotToken = DevtoolsHub.SnapshotToken\n\nexport const toRuntimeDebugEventRef = Internal.toRuntimeDebugEventRef\n\nexport const internal = {\n currentDebugSinks: Internal.currentDebugSinks,\n currentRuntimeLabel: Internal.currentRuntimeLabel,\n currentDiagnosticsLevel: Internal.currentDiagnosticsLevel,\n currentDiagnosticsMaterialization: Internal.currentDiagnosticsMaterialization,\n currentTraceMode: Internal.currentTraceMode,\n currentTraitConvergeDiagnosticsSampling: Internal.currentTraitConvergeDiagnosticsSampling,\n toRuntimeDebugEventRef: Internal.toRuntimeDebugEventRef,\n}\n\nexport interface DevtoolsSnapshot extends DevtoolsHub.DevtoolsSnapshot {}\nexport interface DevtoolsHubOptions extends DevtoolsHub.DevtoolsHubOptions {\n readonly diagnosticsLevel?: DiagnosticsLevel\n /**\n * Diagnostics materialization mode:\n * - eager: include heavy payloads (e.g. state snapshot) in exportable events.\n * - lazy: keep slim anchors only; heavy payloads must be materialized on-demand by higher layers.\n */\n readonly materialization?: DiagnosticsMaterialization\n /**\n * Trace mode:\n * - on: enables `trace:*` events (e.g. trace:tick / trace:effectop).\n * - off: drops trace events at the Debug.record boundary (keeps non-trace diagnostics/events).\n */\n readonly traceMode?: TraceMode\n readonly traitConvergeDiagnosticsSampling?: TraitConvergeDiagnosticsSamplingConfig\n}\n\nexport const getDevtoolsSnapshot = DevtoolsHub.getDevtoolsSnapshot\nexport const getDevtoolsSnapshotByRuntimeLabel = DevtoolsHub.getDevtoolsSnapshotByRuntimeLabel\nexport const getDevtoolsSnapshotToken = DevtoolsHub.getDevtoolsSnapshotToken\nexport const subscribeDevtoolsSnapshot = DevtoolsHub.subscribeDevtoolsSnapshot\nexport const clearDevtoolsEvents = DevtoolsHub.clearDevtoolsEvents\nexport const getDevtoolsRunId = DevtoolsHub.getDevtoolsRunId\nexport const setDevtoolsRunId = DevtoolsHub.setDevtoolsRunId\nexport const startDevtoolsRun = DevtoolsHub.startDevtoolsRun\nexport const setInstanceLabel = DevtoolsHub.setInstanceLabel\nexport const getInstanceLabel = DevtoolsHub.getInstanceLabel\n\nexport const exportEvidencePackage = (options?: {\n readonly runId?: string\n readonly source?: EvidencePackageSource\n readonly protocolVersion?: string\n}): EvidencePackage => DevtoolsHub.exportDevtoolsEvidencePackage(options)\n\n/**\n * Diagnostics level for exportable events.\n *\n * Controls what DevtoolsHub exports (ring buffer / snapshots), without changing Debug.record's fallback semantics.\n */\nexport const diagnosticsLevel = (level: DiagnosticsLevel): Layer.Layer<any, never, never> =>\n Internal.diagnosticsLevel(level) as Layer.Layer<any, never, never>\n\nexport const diagnosticsMaterialization = (\n mode: DiagnosticsMaterialization,\n): Layer.Layer<any, never, never> =>\n Internal.diagnosticsMaterialization(mode) as Layer.Layer<any, never, never>\n\nexport const traceMode = (mode: TraceMode): Layer.Layer<any, never, never> =>\n Internal.traceMode(mode) as Layer.Layer<any, never, never>\n\nexport const traitConvergeDiagnosticsSampling = (\n config: TraitConvergeDiagnosticsSamplingConfig,\n): Layer.Layer<any, never, never> => Internal.traitConvergeDiagnosticsSampling(config)\n\n/**\n * Whether Devtools is enabled.\n *\n * Used by React/Devtools UI to decide if extra instrumentation should be active; turned on by devtoolsHubLayer.\n */\nexport const isDevtoolsEnabled = DevtoolsHub.isDevtoolsEnabled\n\n/**\n * A lightweight counter of active module runtimes.\n *\n * Derived from module:init / module:destroy events; suitable as a DevTools / Playground data source.\n */\nexport interface ModuleRuntimeCounter {\n readonly sink: Sink\n readonly getSnapshot: () => ReadonlyMap<string, number>\n}\n\n/**\n * A simple in-memory ring buffer for Debug events.\n *\n * No filtering/grouping; consumers can post-process snapshots (by moduleId/type/etc.).\n */\nexport interface RingBufferSink {\n readonly sink: Sink\n readonly getSnapshot: () => ReadonlyArray<Event>\n readonly clear: () => void\n}\n\n/**\n * Create a Debug sink that counts active instances per moduleId.\n *\n * Snapshots are exposed via getSnapshot(); bridging to UI (window/postMessage/etc.) is left to consumers.\n */\nexport const makeModuleRuntimeCounterSink = (): ModuleRuntimeCounter => {\n const counts = new Map<string, number>()\n\n const sink: Sink = {\n record: (event: Event) =>\n Effect.sync(() => {\n if (event.type === 'module:init') {\n const moduleId = event.moduleId ?? 'unknown'\n const runtimeLabel = 'runtimeLabel' in event && event.runtimeLabel ? event.runtimeLabel : 'unknown'\n const key = `${runtimeLabel}::${moduleId}`\n const prev = counts.get(key) ?? 0\n counts.set(key, prev + 1)\n return\n }\n if (event.type === 'module:destroy') {\n const moduleId = event.moduleId ?? 'unknown'\n const runtimeLabel = 'runtimeLabel' in event && event.runtimeLabel ? event.runtimeLabel : 'unknown'\n const key = `${runtimeLabel}::${moduleId}`\n const prev = counts.get(key) ?? 0\n const next = prev - 1\n if (next <= 0) {\n counts.delete(key)\n } else {\n counts.set(key, next)\n }\n }\n }),\n }\n\n const getSnapshot = (): ReadonlyMap<string, number> => new Map(counts)\n\n return { sink, getSnapshot }\n}\n\n/**\n * Create a ring-buffer Debug sink.\n *\n * Records the last N events in chronological order; a good foundation for event timelines.\n */\nexport const makeRingBufferSink = (capacity = 1000): RingBufferSink => {\n const boundedCapacity = Number.isFinite(capacity) ? Math.ceil(capacity) : 0\n const isBounded = boundedCapacity > 0\n\n const boundedBuffer: Array<Event | undefined> = isBounded ? new Array(boundedCapacity) : []\n const unboundedBuffer: Event[] = isBounded ? [] : []\n let head = 0\n let size = 0\n\n const sink: Sink = {\n record: (event: Event) =>\n Effect.sync(() => {\n if (capacity <= 0) {\n return\n }\n if (!isBounded) {\n unboundedBuffer.push(event)\n return\n }\n\n const writeIndex = (head + size) % boundedCapacity\n boundedBuffer[writeIndex] = event\n if (size < boundedCapacity) {\n size += 1\n return\n }\n head = (head + 1) % boundedCapacity\n }),\n }\n\n const getSnapshot = (): ReadonlyArray<Event> => {\n if (!isBounded) {\n return unboundedBuffer.slice()\n }\n if (size === 0) {\n return []\n }\n const snapshot = new Array<Event>(size)\n for (let i = 0; i < size; i++) {\n snapshot[i] = boundedBuffer[(head + i) % boundedCapacity]!\n }\n return snapshot\n }\n\n const clear = (): void => {\n if (!isBounded) {\n unboundedBuffer.length = 0\n return\n }\n for (let i = 0; i < size; i++) {\n boundedBuffer[(head + i) % boundedCapacity] = undefined\n }\n head = 0\n size = 0\n }\n\n return { sink, getSnapshot, clear }\n}\n\n/**\n * Emit a Debug event to sinks attached to the current Fiber.\n *\n * If no sink is provided, the runtime chooses a safe fallback (browser console grouping; node preserves error-class events).\n */\nexport const record = Internal.record\n\n/**\n * A no-op Debug layer.\n *\n * Provides an empty sink set and drops all Debug events; useful for tests or explicitly disabling Debug.\n */\nexport const noopLayer = Internal.noopLayer as unknown as Layer.Layer<any, never, never>\n\n/**\n * Debug mode selector.\n *\n * - `auto`: infer dev/prod from NODE_ENV.\n * - `dev`: verbose diagnostics.\n * - `prod`: keep only high-value diagnostics/errors.\n * - `off`: disable sinks (benchmarks/special tests).\n */\nexport type DebugMode = 'auto' | 'dev' | 'prod' | 'off'\n\nexport interface DebugLayerOptions {\n readonly mode?: DebugMode\n /**\n * In dev mode, choose what to print to the browser console:\n * - default: diagnostic + lifecycle:error + trace:* (legacy behavior)\n * - diagnostic: diagnostic(warn/error) + lifecycle:error only (recommended for app dev with Devtools)\n */\n readonly devConsole?: 'default' | 'diagnostic'\n /**\n * Diagnostics level for exportable debug event refs (used by DevtoolsHub and debug sinks that normalize events).\n *\n * Equivalent to composing `Debug.diagnosticsLevel(level)` with `Debug.layer(...)`.\n */\n readonly diagnosticsLevel?: DiagnosticsLevel\n /**\n * Reserved for future use: enable high-noise action/state logs in dev.\n */\n readonly verboseActions?: boolean\n /**\n * Reserved for future use: emit key events into metrics in prod.\n */\n readonly enableMetrics?: boolean\n}\n\nconst resolveMode = (mode: DebugMode | undefined): DebugMode => {\n if (mode && mode !== 'auto') {\n return mode\n }\n\n const env = getNodeEnv()\n return env === 'production' ? 'prod' : 'dev'\n}\n\n/**\n * Public entry: compose a Debug layer based on the environment or an explicit mode.\n *\n * Default mode is `auto`: non-production → `dev`; production → `prod`.\n *\n * @example\n * ```ts\n * const runtime = Runtime.make(AppImpl, {\n * layer: Layer.mergeAll(Debug.layer(), businessLayer),\n * })\n * ```\n */\nexport const layer = (options?: DebugLayerOptions): Layer.Layer<any, never, never> => {\n const mode = resolveMode(options?.mode)\n const diagnostics = options?.diagnosticsLevel\n\n const sinks = (() => {\n switch (mode) {\n case 'off':\n return Internal.noopLayer as unknown as Layer.Layer<any, never, never>\n case 'prod':\n // Production: keep only high-value diagnostics/errors to avoid noisy logs.\n return Internal.errorOnlyLayer as unknown as Layer.Layer<any, never, never>\n case 'dev':\n case 'auto': {\n // Dev: enable browser-friendly Debug sink output by default.\n // Logger.pretty is intentionally opt-in by callers to avoid implicitly rewriting the logger.\n return options?.devConsole === 'diagnostic'\n ? (Internal.browserDiagnosticConsoleLayer as unknown as Layer.Layer<any, never, never>)\n : (Internal.browserConsoleLayer as unknown as Layer.Layer<any, never, never>)\n }\n }\n })()\n\n const trace = mode === 'dev' ? traceMode('on') : traceMode('off')\n\n const base = Layer.mergeAll(sinks, trace) as Layer.Layer<any, never, never>\n\n return diagnostics ? (Layer.mergeAll(base, diagnosticsLevel(diagnostics)) as Layer.Layer<any, never, never>) : base\n}\n\nexport type PrettyLoggerOptions = Parameters<typeof Logger.consolePretty>[0]\n\nexport const withPrettyLogger = (\n base: Layer.Layer<any, any, any>,\n options?: PrettyLoggerOptions,\n): Layer.Layer<any, any, any> =>\n Layer.merge(\n base,\n Layer.effect(\n Logger.CurrentLoggers,\n Effect.gen(function* () {\n const current = yield* Effect.service(Logger.CurrentLoggers)\n return new Set([...current].filter((logger) => logger !== Logger.defaultLogger).concat(Logger.consolePretty(options)))\n }),\n ) as Layer.Layer<any, never, never>,\n )\n\n/**\n * Replace Debug sinks with the provided sink set.\n *\n * Advanced: use either `Debug.layer` or `Debug.replace` in a scope, not both.\n */\nexport const replace = (sinks: ReadonlyArray<Sink>): Layer.Layer<any, never, never> =>\n Layer.succeed(internal.currentDebugSinks, sinks as ReadonlyArray<Internal.Sink>) as Layer.Layer<any, never, never>\n\n/**\n * Append sinks to the current Fiber's sink set (without overriding existing sinks).\n */\nexport const appendSinks = (sinks: ReadonlyArray<Sink>): Layer.Layer<any, never, never> =>\n Layer.effect(\n internal.currentDebugSinks,\n Effect.gen(function* () {\n const current = yield* internal.currentDebugSinks\n return [...current, ...(sinks as ReadonlyArray<Internal.Sink>)]\n }),\n ) as Layer.Layer<any, never, never>\n\n/**\n * Append the DevtoolsHub sink to aggregate Debug events into snapshots.\n *\n * Works by appending sinks; it does not override `Debug.layer` / `Debug.replace` / custom sinks.\n */\nexport function devtoolsHubLayer(options?: DevtoolsHubOptions): Layer.Layer<any, never, never>\nexport function devtoolsHubLayer(\n base: Layer.Layer<any, any, any>,\n options?: DevtoolsHubOptions,\n): Layer.Layer<any, never, any>\nexport function devtoolsHubLayer(\n baseOrOptions?: Layer.Layer<any, any, any> | DevtoolsHubOptions,\n maybeOptions?: DevtoolsHubOptions,\n): Layer.Layer<any, never, any> {\n const isLayerValue = (value: unknown): value is Layer.Layer<any, any, any> => Layer.isLayer(value)\n\n const hasBase = isLayerValue(baseOrOptions)\n const base = hasBase\n ? (baseOrOptions as Layer.Layer<any, any, any>)\n : (Layer.empty as unknown as Layer.Layer<any, any, any>)\n const options = hasBase ? maybeOptions : (baseOrOptions as DevtoolsHubOptions | undefined)\n\n DevtoolsHub.configureDevtoolsHub(options)\n const append = appendSinks([DevtoolsHub.devtoolsHubSink])\n const appendConvergeStaticIr = ConvergeStaticIrCollector.appendConvergeStaticIrCollectors([\n DevtoolsHub.devtoolsHubConvergeStaticIrCollector,\n ])\n const resolvedDiagnosticsLevel = options?.diagnosticsLevel ?? 'light'\n const resolvedTraceMode = options?.traceMode ?? (resolvedDiagnosticsLevel === 'off' ? 'off' : getNodeEnv() === 'production' ? 'off' : 'on')\n const enableExportableDiagnostics = diagnosticsLevel(resolvedDiagnosticsLevel)\n const enableMaterialization = diagnosticsMaterialization(\n options?.materialization ??\n (resolvedDiagnosticsLevel === 'full' && getNodeEnv() === 'production' ? 'lazy' : 'eager'),\n )\n const enableTraceMode = traceMode(resolvedTraceMode)\n const convergeSamplingLayer = options?.traitConvergeDiagnosticsSampling\n ? traitConvergeDiagnosticsSampling(options.traitConvergeDiagnosticsSampling)\n : (Layer.empty as unknown as Layer.Layer<any, never, never>)\n\n // FiberRef layers must build base sinks first, then append; provideMerge(append, base)\n // builds base first and then applies append's FiberRefs patch, avoiding overrides.\n return Layer.provideMerge(\n Layer.mergeAll(\n append,\n enableExportableDiagnostics,\n enableMaterialization,\n enableTraceMode,\n convergeSamplingLayer,\n appendConvergeStaticIr,\n ) as Layer.Layer<\n any,\n never,\n any\n >,\n base,\n ) as Layer.Layer<any, never, any>\n}\n\n/**\n * Attach a logical runtime label to Debug events within the current Fiber scope.\n *\n * DevTools can group events by this label.\n */\nexport const runtimeLabel = (label: string): Layer.Layer<any, never, never> =>\n Layer.succeed(internal.currentRuntimeLabel, label) as Layer.Layer<any, never, never>\n\n/**\n * StateTrait debug view for Devtools/scripts.\n */\nexport interface ModuleTraitsDebug {\n readonly program?: StateTraitProgram<any>\n readonly graph?: StateTraitGraph\n readonly plan?: StateTraitPlan\n}\n\n/**\n * A minimal enumerable trait item from the finalized snapshot (023).\n */\nexport interface ModuleTraitsFinalItem {\n readonly traitId: string\n readonly name: string\n readonly description?: string\n readonly provenance: ModuleTraits.TraitProvenance\n}\n\n/**\n * Read the StateTrait program (if any) from a module definition and return a debug view.\n */\nexport const getModuleTraits = (\n module: ModuleTag<string, AnyModuleShape> | ModuleLike<string, AnyModuleShape, any>,\n): ModuleTraitsDebug => {\n const moduleTag = (module as any).tag ? (module as any).tag : module\n\n const program = getModuleTraitsProgram(moduleTag as any) as StateTraitProgram<any> | undefined\n\n if (!program) {\n return {}\n }\n\n return {\n program,\n graph: program.graph,\n plan: program.plan,\n }\n}\n\n/**\n * Get a module's StateTrait debug view by moduleId (registered at Module.make time).\n */\nexport const getModuleTraitsById = (moduleId: string): ModuleTraitsDebug | undefined => {\n const program = ModuleTraitsRegistry.getModuleProgramById(moduleId)\n if (!program) {\n return undefined\n }\n return {\n program,\n graph: program.graph,\n plan: program.plan,\n }\n}\n\n/**\n * Read the finalized traits snapshot (023) from a ModuleRuntime; undefined if not finalized.\n */\nexport const getModuleTraitsSnapshot = (\n runtime: ModuleRuntime<any, any>,\n): ModuleTraits.ModuleTraitsSnapshot | undefined => {\n try {\n const internals = getRuntimeInternals(runtime as any)\n return internals.traits.getModuleTraitsSnapshot()\n } catch {\n return undefined\n }\n}\n\n/**\n * Export a minimal, enumerable trait list from the finalized snapshot (023).\n *\n * Order is deterministic and matches the snapshot.\n */\nexport const getModuleFinalTraits = (runtime: ModuleRuntime<any, any>): ReadonlyArray<ModuleTraitsFinalItem> => {\n const snapshot = getModuleTraitsSnapshot(runtime)\n if (!snapshot) return []\n\n return snapshot.traits.map((t) => ({\n traitId: t.traitId,\n name: t.name,\n description: t.description,\n provenance: snapshot.provenanceIndex[t.traitId]!,\n }))\n}\n\n/**\n * Append a trace-only sink (handles `trace:*`) on top of the current Debug sinks.\n *\n * Default behavior logs trace events via logDebug; you can provide a handler to forward into ring buffers / bridges.\n *\n * @example\n * ```ts\n * const layer = Debug.traceLayer(\n * Debug.layer({ mode: 'dev' }),\n * (event) => Effect.logInfo({ traceEvent: event }),\n * )\n * ```\n */\nconst isLayer = (value: unknown): value is Layer.Layer<any, any, any> =>\n typeof value === 'object' && value !== null && 'build' in (value as Record<string, unknown>)\n\nexport function traceLayer(onTrace?: (event: Event) => Effect.Effect<void>): Layer.Layer<any, never, never>\nexport function traceLayer(\n base: Layer.Layer<any, any, any>,\n onTrace?: (event: Event) => Effect.Effect<void>,\n): Layer.Layer<any, never, any>\nexport function traceLayer(\n baseOrHandler?: Layer.Layer<any, any, any> | ((event: Event) => Effect.Effect<void>),\n maybeOnTrace?: (event: Event) => Effect.Effect<void>,\n): Layer.Layer<any, never, any> {\n const hasBase = isLayer(baseOrHandler)\n const base = hasBase\n ? (baseOrHandler as Layer.Layer<any, any, any>)\n : (Layer.empty as unknown as Layer.Layer<any, any, any>)\n const onTrace = hasBase ? maybeOnTrace : (baseOrHandler as ((event: Event) => Effect.Effect<void>) | undefined)\n\n const traceSink: Sink = {\n record: (event: Event) =>\n typeof event.type === 'string' && event.type.startsWith('trace:')\n ? onTrace\n ? onTrace(event)\n : Effect.logDebug({ traceEvent: event })\n : Effect.void,\n }\n\n // Append the trace sink via FiberRef: extend the current Fiber's sink set.\n // Do not depend on DebugHub/Tag; use FiberRef.currentDebugSinks as the single source of truth.\n const appendTrace = Layer.effect(\n Internal.currentDebugSinks,\n Effect.gen(function* () {\n const sinks = yield* Internal.currentDebugSinks\n return [...sinks, traceSink]\n }),\n )\n\n // Same as devtoolsHubLayer: build base first, then appendTrace updates FiberRef sinks.\n return Layer.provideMerge(appendTrace, base as Layer.Layer<any, any, any>) as Layer.Layer<any, never, any>\n}\n","import { Effect } from 'effect'\nimport type { JsonValue } from '../../observability/jsonValue.js'\nimport type { EvidencePackage, EvidencePackageSource } from '../../observability/evidence.js'\nimport { exportEvidencePackage, OBSERVABILITY_PROTOCOL_VERSION } from '../../observability/evidence.js'\nimport type { ConvergeStaticIrExport } from '../../state-trait/converge-ir.js'\nimport type { ConvergeStaticIrCollector } from './ConvergeStaticIrCollector.js'\nimport {\n currentDiagnosticsLevel,\n currentDiagnosticsMaterialization,\n clearRuntimeDebugEventSeq,\n toRuntimeDebugEventRef,\n type DiagnosticsLevel,\n type DiagnosticsMaterialization,\n type Event,\n type RuntimeDebugEventRef,\n type Sink,\n} from './DebugSink.js'\nimport { getGlobalHostScheduler } from './HostScheduler.js'\n\n/**\n * DevtoolsHub:\n * - Process/page-level Debug event aggregator (global singleton).\n *\n * Note: this hub is only appended to Debug sinks when devtoolsHubLayer is explicitly enabled.\n * The Snapshot API is always available (returns empty snapshots when disabled).\n *\n * Performance:\n * - Devtools Debug events can be extremely dense in hot paths (EffectOp / Trait / StateTxn, etc.).\n * - The previous implementation copied ringBuffer and Maps per event to build an \"immutable snapshot\" (O(bufferSize)).\n * - The current implementation lets Snapshot reference internal Map/Array directly (read-only convention) and batches\n * subscriber notifications in microtasks, avoiding per-event copies and reducing main-thread interference.\n */\n\nexport interface DevtoolsSnapshot {\n /**\n * SnapshotToken:\n * - Monotonic snapshot change token (a subscription-safe source of truth).\n * - Any externally visible change must advance the token.\n * - If the token does not change, externally visible snapshot fields must not change (avoid tearing / missed updates).\n */\n readonly snapshotToken: SnapshotToken\n readonly instances: ReadonlyMap<string, number>\n readonly events: ReadonlyArray<RuntimeDebugEventRef>\n readonly latestStates: ReadonlyMap<string, JsonValue>\n readonly latestTraitSummaries: ReadonlyMap<string, JsonValue>\n /**\n * exportBudget:\n * - Tracks \"degrade counts\" caused by export boundaries (JsonValue projection/trimming), for explainability.\n * - Counts are cumulative (may differ from the ring buffer window); clearDevtoolsEvents resets them.\n */\n readonly exportBudget: {\n readonly dropped: number\n readonly oversized: number\n }\n}\n\nexport interface DevtoolsHubOptions {\n readonly bufferSize?: number\n readonly diagnosticsLevel?: DiagnosticsLevel\n}\n\nexport type SnapshotToken = number\n\n// ---- Global mutable state (singleton hub + runtime buckets) ----\n\nconst instances = new Map<string, number>()\nconst instanceLabels = new Map<string, string>()\nconst convergeStaticIrByDigest = new Map<string, ConvergeStaticIrExport>()\n\n// ---- Event window (ring buffer) ----\n//\n// Perf:\n// - DevtoolsHub runs on hot paths under diagnostics=full (and even light in dev).\n// - Avoid splice/shift based trimming per event; keep O(1) append and rebuild an ordered view only when needed\n// (snapshot read / export / buffer resize).\ntype EventRing = {\n capacity: number\n start: number\n size: number\n data: Array<RuntimeDebugEventRef | undefined>\n readonly view: RuntimeDebugEventRef[]\n dirty: boolean\n}\n\nconst toCapacity = (value: number): number => {\n if (typeof value !== 'number' || !Number.isFinite(value)) return 0\n const n = Math.floor(value)\n return n > 0 ? n : 0\n}\n\nconst makeEventRing = (capacity: number): EventRing => {\n const cap = toCapacity(capacity)\n return {\n capacity: cap,\n start: 0,\n size: 0,\n data: cap > 0 ? new Array<RuntimeDebugEventRef | undefined>(cap) : [],\n view: [],\n dirty: true,\n }\n}\n\nconst clearEventRing = (ring: EventRing): void => {\n ring.start = 0\n ring.size = 0\n ring.data = ring.capacity > 0 ? new Array<RuntimeDebugEventRef | undefined>(ring.capacity) : []\n ring.view.length = 0\n ring.dirty = true\n}\n\nconst pushEventRing = (ring: EventRing, ref: RuntimeDebugEventRef): void => {\n const cap = ring.capacity\n if (cap <= 0) return\n\n if (ring.size < cap) {\n ring.data[(ring.start + ring.size) % cap] = ref\n ring.size += 1\n } else {\n ring.data[ring.start] = ref\n ring.start = (ring.start + 1) % cap\n }\n\n ring.dirty = true\n}\n\nconst getEventRingView = (ring: EventRing): RuntimeDebugEventRef[] => {\n if (!ring.dirty) return ring.view\n\n const cap = ring.capacity\n const size = ring.size\n const out = ring.view\n out.length = size\n\n if (cap <= 0 || size === 0) {\n ring.dirty = false\n return out\n }\n\n const start = ring.start\n const data = ring.data\n for (let i = 0; i < size; i++) {\n out[i] = data[(start + i) % cap]!\n }\n\n ring.dirty = false\n return out\n}\n\nconst resizeEventRing = (ring: EventRing, capacity: number): void => {\n const cap = toCapacity(capacity)\n if (cap === ring.capacity) return\n\n const snapshot = getEventRingView(ring)\n const keepStart = cap <= 0 ? snapshot.length : Math.max(0, snapshot.length - cap)\n const keep: RuntimeDebugEventRef[] = []\n for (let i = keepStart; i < snapshot.length; i++) {\n keep.push(snapshot[i]!)\n }\n\n ring.capacity = cap\n ring.start = 0\n ring.size = 0\n ring.data = cap > 0 ? new Array<RuntimeDebugEventRef | undefined>(cap) : []\n ring.view.length = 0\n ring.dirty = true\n\n for (let i = 0; i < keep.length; i++) {\n pushEventRing(ring, keep[i]!)\n }\n}\n\nconst rebuildEventRingFromOrdered = (ring: EventRing, ordered: ReadonlyArray<RuntimeDebugEventRef>): void => {\n clearEventRing(ring)\n for (let i = 0; i < ordered.length; i++) {\n pushEventRing(ring, ordered[i]!)\n }\n}\n\ninterface RuntimeDevtoolsBucket {\n readonly runtimeLabel: string\n readonly ring: EventRing\n readonly latestStates: Map<string, JsonValue>\n readonly latestTraitSummaries: Map<string, JsonValue>\n readonly exportBudget: {\n dropped: number\n oversized: number\n }\n}\n\nconst runtimeBuckets = new Map<string, RuntimeDevtoolsBucket>()\n\nconst getRuntimeBucket = (runtimeLabel: string): RuntimeDevtoolsBucket | undefined => runtimeBuckets.get(runtimeLabel)\n\nconst getOrCreateRuntimeBucket = (runtimeLabel: string): RuntimeDevtoolsBucket => {\n const existing = runtimeBuckets.get(runtimeLabel)\n if (existing) return existing\n const created: RuntimeDevtoolsBucket = {\n runtimeLabel,\n ring: makeEventRing(bufferSize),\n latestStates: new Map<string, JsonValue>(),\n latestTraitSummaries: new Map<string, JsonValue>(),\n exportBudget: {\n dropped: 0,\n oversized: 0,\n },\n }\n runtimeBuckets.set(runtimeLabel, created)\n return created\n}\n\n// Backward-compatible global aggregate views.\nconst latestStates = new Map<string, JsonValue>()\nconst latestTraitSummaries = new Map<string, JsonValue>()\n\ninterface RuntimeModuleEntry {\n readonly moduleKey: string\n readonly instanceKeyById: Map<string, string>\n}\n\nconst runtimeModules = new Map<string, Map<string, RuntimeModuleEntry>>()\n\nconst normalizeKeyPart = (value: unknown): string => (value === undefined || value === null ? 'unknown' : String(value))\n\nconst getRuntimeModuleEntry = (runtimeLabel: string, moduleId: string): RuntimeModuleEntry | undefined =>\n runtimeModules.get(runtimeLabel)?.get(moduleId)\n\nconst getOrCreateRuntimeModuleEntry = (runtimeLabel: string, moduleId: string): RuntimeModuleEntry => {\n let modulesById = runtimeModules.get(runtimeLabel)\n if (!modulesById) {\n modulesById = new Map<string, RuntimeModuleEntry>()\n runtimeModules.set(runtimeLabel, modulesById)\n }\n\n let moduleEntry = modulesById.get(moduleId)\n if (!moduleEntry) {\n moduleEntry = {\n moduleKey: `${runtimeLabel}::${moduleId}`,\n instanceKeyById: new Map<string, string>(),\n }\n modulesById.set(moduleId, moduleEntry)\n }\n\n return moduleEntry\n}\n\nconst cleanupRuntimeModuleEntryIfUnused = (runtimeLabel: string, moduleId: string, moduleKey: string): void => {\n const modulesById = runtimeModules.get(runtimeLabel)\n if (!modulesById) return\n const moduleEntry = modulesById.get(moduleId)\n if (!moduleEntry) return\n if (moduleEntry.instanceKeyById.size > 0) return\n if ((instances.get(moduleKey) ?? 0) > 0) return\n modulesById.delete(moduleId)\n if (modulesById.size === 0) {\n runtimeModules.delete(runtimeLabel)\n }\n}\n\nconst resolveLiveInstanceKey = (runtimeLabel: string, moduleId: string, instanceId: string): string | undefined =>\n runtimeModules.get(runtimeLabel)?.get(moduleId)?.instanceKeyById.get(instanceId)\n\nconst exportBudget = {\n dropped: 0,\n oversized: 0,\n}\n\nconst recalculateGlobalExportBudget = (): void => {\n let dropped = 0\n let oversized = 0\n for (const bucket of runtimeBuckets.values()) {\n dropped += bucket.exportBudget.dropped\n oversized += bucket.exportBudget.oversized\n }\n exportBudget.dropped = dropped\n exportBudget.oversized = oversized\n}\n\nlet lastRunTs = 0\nlet lastRunTsSeq = 0\n\nconst nextRunId = (): string => {\n const ts = Date.now()\n if (ts === lastRunTs) {\n lastRunTsSeq += 1\n } else {\n lastRunTs = ts\n lastRunTsSeq = 0\n }\n\n return lastRunTsSeq === 0 ? `run-${ts}` : `run-${ts}.${lastRunTsSeq}`\n}\n\nlet currentRunId = nextRunId()\n\nlet bufferSize = 500\nconst globalRing = makeEventRing(bufferSize)\n\ntype RingTrimMode = 'disabled' | 'strict'\nlet ringTrimMode: RingTrimMode = 'strict'\nlet ringTrimThreshold = bufferSize\n\nconst RING_TRIM_POLICY_EVENT_LABEL = 'trace:devtools:ring-trim-policy' as const\nconst RING_TRIM_POLICY_MODULE_ID = 'devtools:hub'\nconst RING_TRIM_POLICY_INSTANCE_ID = 'devtools:hub'\nconst RING_TRIM_POLICY_RUNTIME_LABEL = 'DevtoolsHub'\n\nconst normalizeRuntimeLabel = (runtimeLabel: unknown): string => normalizeKeyPart(runtimeLabel)\n\nconst getRingTrimPolicySnapshot = () => ({\n mode: ringTrimMode,\n threshold: ringTrimThreshold,\n bufferSize,\n} as const)\n\nconst refreshRingTrimPolicy = (): boolean => {\n const prevMode = ringTrimMode\n const prevThreshold = ringTrimThreshold\n\n if (bufferSize <= 0) {\n ringTrimMode = 'disabled'\n ringTrimThreshold = 0\n return prevMode !== ringTrimMode || prevThreshold !== ringTrimThreshold\n }\n\n // With O(1) ring storage, the window is always a strict capacity bound.\n ringTrimMode = 'strict'\n ringTrimThreshold = bufferSize\n return prevMode !== ringTrimMode || prevThreshold !== ringTrimThreshold\n}\n\nrefreshRingTrimPolicy()\n\nlet snapshotToken: SnapshotToken = 0\n\nconst parseDiagnosticsLevel = (value: unknown): DiagnosticsLevel =>\n value === 'off' || value === 'light' || value === 'sampled' || value === 'full' ? value : 'light'\n\nconst appendRuntimeRef = (runtimeLabel: string, ref: RuntimeDebugEventRef): void => {\n const bucket = getOrCreateRuntimeBucket(runtimeLabel)\n pushEventRing(bucket.ring, ref)\n pushEventRing(globalRing, ref)\n}\n\nconst clearRuntimeBucketEvents = (runtimeLabel: string): boolean => {\n const bucket = getRuntimeBucket(runtimeLabel)\n if (!bucket) return false\n\n let changed = false\n if (bucket.ring.size > 0) {\n clearEventRing(bucket.ring)\n changed = true\n }\n if (bucket.exportBudget.dropped !== 0 || bucket.exportBudget.oversized !== 0) {\n bucket.exportBudget.dropped = 0\n bucket.exportBudget.oversized = 0\n changed = true\n }\n\n if (!changed) return false\n\n const kept = getEventRingView(globalRing).filter((event) => normalizeRuntimeLabel(event.runtimeLabel) !== runtimeLabel)\n rebuildEventRingFromOrdered(globalRing, kept)\n recalculateGlobalExportBudget()\n return true\n}\n\nconst clearAllRuntimeBucketEvents = (): boolean => {\n let changed = false\n for (const bucket of runtimeBuckets.values()) {\n if (bucket.ring.size > 0) {\n clearEventRing(bucket.ring)\n changed = true\n }\n if (bucket.exportBudget.dropped !== 0 || bucket.exportBudget.oversized !== 0) {\n bucket.exportBudget.dropped = 0\n bucket.exportBudget.oversized = 0\n changed = true\n }\n }\n if (globalRing.size > 0) {\n clearEventRing(globalRing)\n changed = true\n }\n recalculateGlobalExportBudget()\n return changed\n}\n\nconst emitRingTrimPolicyEvent = (diagnosticsLevel: DiagnosticsLevel): void => {\n if (diagnosticsLevel === 'off') return\n if (bufferSize <= 0) return\n\n const ref = toRuntimeDebugEventRef(\n {\n type: RING_TRIM_POLICY_EVENT_LABEL,\n moduleId: RING_TRIM_POLICY_MODULE_ID,\n instanceId: RING_TRIM_POLICY_INSTANCE_ID,\n runtimeLabel: RING_TRIM_POLICY_RUNTIME_LABEL,\n data: getRingTrimPolicySnapshot(),\n } as Event,\n { diagnosticsLevel },\n )\n if (!ref) return\n\n appendRuntimeRef(RING_TRIM_POLICY_RUNTIME_LABEL, ref)\n}\n\n// Snapshot references internal structures directly (read-only convention) to avoid copy costs in hot paths.\nconst currentSnapshot: DevtoolsSnapshot = {\n snapshotToken,\n instances,\n events: globalRing.view,\n latestStates,\n latestTraitSummaries,\n exportBudget,\n}\n\nconst listeners = new Set<() => void>()\n\nlet notifyScheduled = false\nconst scheduleNotify = () => {\n if (listeners.size === 0) return\n if (notifyScheduled) return\n notifyScheduled = true\n getGlobalHostScheduler().scheduleMicrotask(() => {\n notifyScheduled = false\n for (const listener of listeners) {\n listener()\n }\n })\n}\n\nlet devtoolsEnabled = false\n\nconst bumpSnapshotToken = (): void => {\n snapshotToken += 1\n ;(currentSnapshot as any).snapshotToken = snapshotToken\n}\n\nconst markSnapshotChanged = (): void => {\n bumpSnapshotToken()\n scheduleNotify()\n}\n\nexport const configureDevtoolsHub = (options?: DevtoolsHubOptions) => {\n devtoolsEnabled = true\n if (typeof options?.bufferSize === 'number' && Number.isFinite(options.bufferSize)) {\n const next = Math.floor(options.bufferSize)\n const nextBufferSize = next >= 0 ? next : 0\n if (nextBufferSize !== bufferSize) {\n bufferSize = nextBufferSize\n const policyChanged = refreshRingTrimPolicy()\n // Resize rings first so the policy event lands in the new window capacity (avoid overwriting on expand).\n resizeEventRing(globalRing, bufferSize)\n for (const bucket of runtimeBuckets.values()) {\n resizeEventRing(bucket.ring, bufferSize)\n }\n // Respect the caller's diagnostics setting when emitting hub policy metadata.\n // If diagnosticsLevel is omitted, keep previous behavior for snapshots but skip extra policy events.\n if (policyChanged && options?.diagnosticsLevel !== undefined) {\n emitRingTrimPolicyEvent(parseDiagnosticsLevel(options.diagnosticsLevel))\n }\n markSnapshotChanged()\n }\n }\n}\n\nexport const isDevtoolsEnabled = (): boolean => devtoolsEnabled\n\n// ---- Snapshot public helpers ----\n\nexport const getDevtoolsSnapshot = (): DevtoolsSnapshot => {\n getEventRingView(globalRing)\n return currentSnapshot\n}\nexport const getDevtoolsSnapshotToken = (): SnapshotToken => snapshotToken\nexport const getDevtoolsSnapshotByRuntimeLabel = (runtimeLabel: string): DevtoolsSnapshot => {\n const normalizedRuntimeLabel = normalizeRuntimeLabel(runtimeLabel)\n const bucket = getRuntimeBucket(normalizedRuntimeLabel)\n const runtimeInstances = new Map<string, number>()\n const runtimePrefix = `${normalizedRuntimeLabel}::`\n for (const [moduleKey, count] of instances.entries()) {\n if (moduleKey.startsWith(runtimePrefix)) {\n runtimeInstances.set(moduleKey, count)\n }\n }\n\n return {\n snapshotToken,\n instances: runtimeInstances,\n events: bucket ? getEventRingView(bucket.ring) : [],\n latestStates: bucket?.latestStates ?? new Map<string, JsonValue>(),\n latestTraitSummaries: bucket?.latestTraitSummaries ?? new Map<string, JsonValue>(),\n exportBudget: bucket?.exportBudget ?? { dropped: 0, oversized: 0 },\n }\n}\n\nexport const subscribeDevtoolsSnapshot = (listener: () => void): (() => void) => {\n listeners.add(listener)\n return () => {\n listeners.delete(listener)\n }\n}\n\nexport const getDevtoolsRunId = (): string => currentRunId\n\nexport const setDevtoolsRunId = (runId: string): void => {\n if (typeof runId !== 'string' || runId.length === 0) return\n if (runId !== currentRunId) {\n currentRunId = runId\n markSnapshotChanged()\n }\n}\n\nexport const startDevtoolsRun = (runId?: string): string => {\n currentRunId = typeof runId === 'string' && runId.length > 0 ? runId : nextRunId()\n clearRuntimeDebugEventSeq()\n clearDevtoolsEvents()\n return currentRunId\n}\n\nexport const clearDevtoolsEvents = (runtimeLabel?: string): void => {\n if (runtimeLabel !== undefined) {\n if (clearRuntimeBucketEvents(normalizeRuntimeLabel(runtimeLabel))) {\n markSnapshotChanged()\n }\n return\n }\n\n clearAllRuntimeBucketEvents()\n markSnapshotChanged()\n}\n\nexport const setInstanceLabel = (instanceId: string, label: string): void => {\n instanceLabels.set(instanceId, label)\n markSnapshotChanged()\n}\n\nexport const getInstanceLabel = (instanceId: string): string | undefined => instanceLabels.get(instanceId)\n\nconst registerConvergeStaticIr = (ir: ConvergeStaticIrExport): void => {\n convergeStaticIrByDigest.set(ir.staticIrDigest, ir)\n}\n\nexport const devtoolsHubConvergeStaticIrCollector: ConvergeStaticIrCollector = {\n register: registerConvergeStaticIr,\n}\n\nexport const exportDevtoolsEvidencePackage = (options?: {\n readonly runId?: string\n readonly source?: EvidencePackageSource\n readonly protocolVersion?: string\n}): EvidencePackage => {\n const protocolVersion = options?.protocolVersion ?? OBSERVABILITY_PROTOCOL_VERSION\n const runId = options?.runId ?? currentRunId\n const source = options?.source ?? { host: 'unknown' }\n\n const refs = getEventRingView(globalRing)\n const events = refs.map((payload, i) => ({\n protocolVersion,\n runId,\n seq:\n typeof payload.eventSeq === 'number' && Number.isFinite(payload.eventSeq) && payload.eventSeq > 0\n ? Math.floor(payload.eventSeq)\n : i + 1,\n timestamp: payload.timestamp,\n type: 'debug:event',\n payload: payload as unknown as JsonValue,\n }))\n\n const isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value)\n\n // Export canonical static IR mapping by digest for any diagnostics tier that emits:\n // - trait:converge (trace) events, or\n // - state:update events with id-first dirty evidence (pathIds/rootIds).\n //\n // Policy:\n // - full: keep full ConvergeStaticIrExport payload for offline explanation/replay.\n // - light/sampled: export minimal fieldPaths-only entries so consumers can materialize ids -> paths.\n const convergeDigests = new Set<string>()\n const sawFullByDigest = new Set<string>()\n\n for (const ref of refs) {\n const meta = isRecord(ref.meta) ? (ref.meta as Record<string, unknown>) : undefined\n if (!meta) continue\n\n if (ref.kind === 'trait:converge') {\n const digest = meta.staticIrDigest\n if (typeof digest === 'string' && digest.length > 0) {\n convergeDigests.add(digest)\n const dirty = meta.dirty\n if (isRecord(dirty) && typeof dirty.rootCount === 'number') {\n sawFullByDigest.add(digest)\n }\n }\n continue\n }\n\n if (ref.kind === 'state' && ref.label === 'state:update') {\n const digest = meta.staticIrDigest\n if (typeof digest === 'string' && digest.length > 0) {\n convergeDigests.add(digest)\n }\n }\n }\n\n let summary: JsonValue | undefined\n if (convergeDigests.size > 0) {\n const staticIrByDigest: Record<string, JsonValue> = {}\n for (const digest of convergeDigests) {\n const ir = convergeStaticIrByDigest.get(digest)\n if (ir) {\n staticIrByDigest[digest] = sawFullByDigest.has(digest)\n ? (ir as unknown as JsonValue)\n : ({ fieldPaths: ir.fieldPaths } as unknown as JsonValue)\n }\n }\n if (Object.keys(staticIrByDigest).length > 0) {\n summary = { converge: { staticIrByDigest } } as unknown as JsonValue\n }\n }\n\n return exportEvidencePackage({\n protocolVersion,\n runId,\n source,\n events,\n summary,\n })\n}\n\n// ---- Hub Sink ----\n\nexport const devtoolsHubSink: Sink = {\n record: (event: Event) =>\n Effect.gen(function* () {\n // NOTE: the hub is a global singleton, but whether events are exportable/written to the buffer is controlled by FiberRef,\n // enabling different perf baselines/diagnostics tiers across scopes within the same process.\n const level = yield* Effect.service(currentDiagnosticsLevel).pipe(Effect.orDie)\n const materialization = yield* Effect.service(currentDiagnosticsMaterialization).pipe(Effect.orDie)\n const eventRuntimeLabel = normalizeRuntimeLabel((event as any).runtimeLabel)\n\n let changed = false\n\n // trace:instanceLabel: set a human-readable label for a runtime instance.\n if (event.type === 'trace:instanceLabel') {\n const instanceId = (event as any).instanceId as string | undefined\n const data = (event as any).data\n const label = data && typeof data === 'object' && 'label' in data ? String((data as any).label) : undefined\n if (instanceId && label) {\n instanceLabels.set(instanceId, label)\n changed = true\n }\n }\n\n // Instance counters: maintain active instance counts by runtimeLabel::moduleId.\n if (event.type === 'module:init' || event.type === 'module:destroy') {\n const moduleId = normalizeKeyPart((event as any).moduleId)\n const runtimeLabel = eventRuntimeLabel\n const runtimeBucket = getOrCreateRuntimeBucket(runtimeLabel)\n const instanceId = (event as any).instanceId as string | undefined\n if (event.type === 'module:init') {\n const moduleEntry = getOrCreateRuntimeModuleEntry(runtimeLabel, moduleId)\n const moduleKey = moduleEntry.moduleKey\n const prev = instances.get(moduleKey) ?? 0\n instances.set(moduleKey, prev + 1)\n changed = true\n if (instanceId) {\n const cachedInstanceKey = moduleEntry.instanceKeyById.get(instanceId)\n const instanceKey = cachedInstanceKey ?? `${moduleKey}::${instanceId}`\n if (cachedInstanceKey === undefined) {\n moduleEntry.instanceKeyById.set(instanceId, instanceKey)\n }\n // If instanceId is reused, ensure derived caches do not carry leftovers from the previous lifetime.\n if (latestStates.delete(instanceKey)) changed = true\n if (latestTraitSummaries.delete(instanceKey)) changed = true\n if (runtimeBucket.latestStates.delete(instanceKey)) changed = true\n if (runtimeBucket.latestTraitSummaries.delete(instanceKey)) changed = true\n }\n } else {\n const moduleEntry = getRuntimeModuleEntry(runtimeLabel, moduleId)\n const moduleKey = moduleEntry?.moduleKey ?? `${runtimeLabel}::${moduleId}`\n const prev = instances.get(moduleKey) ?? 0\n const next = prev - 1\n if (next <= 0) {\n if (instances.delete(moduleKey)) changed = true\n } else {\n instances.set(moduleKey, next)\n changed = true\n }\n\n if (instanceId) {\n const instanceKey = moduleEntry?.instanceKeyById.get(instanceId) ?? `${moduleKey}::${instanceId}`\n moduleEntry?.instanceKeyById.delete(instanceId)\n if (latestStates.delete(instanceKey)) changed = true\n if (latestTraitSummaries.delete(instanceKey)) changed = true\n if (runtimeBucket.latestStates.delete(instanceKey)) changed = true\n if (runtimeBucket.latestTraitSummaries.delete(instanceKey)) changed = true\n if (instanceLabels.delete(instanceId)) changed = true\n changed = true\n }\n\n cleanupRuntimeModuleEntryIfUnused(runtimeLabel, moduleId, moduleKey)\n }\n }\n\n // off tier: keep only minimal counters/labels cleanup and skip heavy ref projection entirely.\n if (level === 'off') {\n if (changed) {\n markSnapshotChanged()\n }\n return\n }\n\n let projectedDropped = 0\n let projectedOversized = 0\n const ref = toRuntimeDebugEventRef(event, {\n diagnosticsLevel: level,\n materialization: materialization as DiagnosticsMaterialization,\n onMetaProjection: ({ stats }) => {\n projectedDropped += stats.dropped\n projectedOversized += stats.oversized\n },\n })\n if (projectedDropped !== 0 || projectedOversized !== 0) {\n const budgetRuntimeLabel = normalizeRuntimeLabel(ref?.runtimeLabel ?? eventRuntimeLabel)\n const runtimeBucket = getOrCreateRuntimeBucket(budgetRuntimeLabel)\n runtimeBucket.exportBudget.dropped += projectedDropped\n runtimeBucket.exportBudget.oversized += projectedOversized\n exportBudget.dropped += projectedDropped\n exportBudget.oversized += projectedOversized\n changed = true\n }\n if (!ref) {\n // Unknown/non-exportable events: keep side caches/counters only.\n if (changed) {\n markSnapshotChanged()\n }\n return\n }\n\n const refRuntimeLabel = normalizeRuntimeLabel(ref.runtimeLabel)\n const runtimeBucket = getOrCreateRuntimeBucket(refRuntimeLabel)\n\n // latestStates / latestTraitSummaries: record latest snapshots by runtimeLabel::moduleId::instanceId.\n if (ref.kind === 'state' && ref.label === 'state:update') {\n const instanceKey = resolveLiveInstanceKey(refRuntimeLabel, ref.moduleId, ref.instanceId)\n\n // Late/replayed events after module:destroy: allow entering the window for replay, but do not rebuild latest* caches.\n if (instanceKey) {\n if (ref.meta && typeof ref.meta === 'object' && !Array.isArray(ref.meta)) {\n const anyMeta = ref.meta as any\n if ('state' in anyMeta) {\n latestStates.set(instanceKey, anyMeta.state as JsonValue)\n runtimeBucket.latestStates.set(instanceKey, anyMeta.state as JsonValue)\n changed = true\n }\n if ('traitSummary' in anyMeta && anyMeta.traitSummary !== undefined) {\n latestTraitSummaries.set(instanceKey, anyMeta.traitSummary as JsonValue)\n runtimeBucket.latestTraitSummaries.set(instanceKey, anyMeta.traitSummary as JsonValue)\n changed = true\n }\n }\n }\n }\n\n // ring buffer: keep the most recent bufferSize RuntimeDebugEventRefs.\n if (bufferSize > 0) {\n appendRuntimeRef(refRuntimeLabel, ref)\n changed = true\n }\n\n if (changed) {\n markSnapshotChanged()\n }\n }),\n}\n"],"mappings":"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","names":["clearDevtoolsEvents","diagnosticsLevel","diagnosticsMaterialization","exportEvidencePackage","getDevtoolsRunId","getDevtoolsSnapshot","getDevtoolsSnapshotByRuntimeLabel","getDevtoolsSnapshotToken","getInstanceLabel","isDevtoolsEnabled","noopLayer","record","setDevtoolsRunId","setInstanceLabel","startDevtoolsRun","subscribeDevtoolsSnapshot","toRuntimeDebugEventRef","traceMode","traitConvergeDiagnosticsSampling","Effect","runtimeLabel","diagnosticsLevel","runtimeBucket","toRuntimeDebugEventRef","getDevtoolsSnapshot","getDevtoolsSnapshotByRuntimeLabel","getDevtoolsSnapshotToken","subscribeDevtoolsSnapshot","clearDevtoolsEvents","getDevtoolsRunId","setDevtoolsRunId","startDevtoolsRun","setInstanceLabel","getInstanceLabel","exportEvidencePackage","diagnosticsLevel","diagnosticsMaterialization","traceMode","traitConvergeDiagnosticsSampling","isDevtoolsEnabled","Effect","runtimeLabel","record","noopLayer"]}