@logixjs/core 0.0.1

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 (345) hide show
  1. package/dist/Action-BkRHy2vg.d.cts +10 -0
  2. package/dist/Action-mqVvtEHt.d.ts +10 -0
  3. package/dist/Action.cjs +57 -0
  4. package/dist/Action.cjs.map +1 -0
  5. package/dist/Action.d.cts +2 -0
  6. package/dist/Action.d.ts +2 -0
  7. package/dist/Action.js +9 -0
  8. package/dist/Action.js.map +1 -0
  9. package/dist/Actions-AsQ07yTP.d.cts +22 -0
  10. package/dist/Actions-AsQ07yTP.d.ts +22 -0
  11. package/dist/Actions.cjs +19 -0
  12. package/dist/Actions.cjs.map +1 -0
  13. package/dist/Actions.d.cts +2 -0
  14. package/dist/Actions.d.ts +2 -0
  15. package/dist/Actions.js +2 -0
  16. package/dist/Actions.js.map +1 -0
  17. package/dist/Bound-BN1DQ_lM.d.ts +23 -0
  18. package/dist/Bound-BPIfH9SS.d.cts +23 -0
  19. package/dist/Bound.cjs +1532 -0
  20. package/dist/Bound.cjs.map +1 -0
  21. package/dist/Bound.d.cts +7 -0
  22. package/dist/Bound.d.ts +7 -0
  23. package/dist/Bound.js +25 -0
  24. package/dist/Bound.js.map +1 -0
  25. package/dist/Debug-B5q5Bkzx.d.ts +320 -0
  26. package/dist/Debug-Bq8Sqjcr.d.cts +320 -0
  27. package/dist/Debug.cjs +1821 -0
  28. package/dist/Debug.cjs.map +1 -0
  29. package/dist/Debug.d.cts +13 -0
  30. package/dist/Debug.d.ts +13 -0
  31. package/dist/Debug.js +76 -0
  32. package/dist/Debug.js.map +1 -0
  33. package/dist/EffectOp.cjs +169 -0
  34. package/dist/EffectOp.cjs.map +1 -0
  35. package/dist/EffectOp.d.cts +118 -0
  36. package/dist/EffectOp.d.ts +118 -0
  37. package/dist/EffectOp.js +28 -0
  38. package/dist/EffectOp.js.map +1 -0
  39. package/dist/Env-DuJ6JrU2.d.cts +10 -0
  40. package/dist/Env-DuJ6JrU2.d.ts +10 -0
  41. package/dist/Env.cjs +60 -0
  42. package/dist/Env.cjs.map +1 -0
  43. package/dist/Env.d.cts +1 -0
  44. package/dist/Env.d.ts +1 -0
  45. package/dist/Env.js +11 -0
  46. package/dist/Env.js.map +1 -0
  47. package/dist/Flow-1fZT8MpX.d.cts +152 -0
  48. package/dist/Flow-BhpjE22E.d.ts +152 -0
  49. package/dist/Flow.cjs +504 -0
  50. package/dist/Flow.cjs.map +1 -0
  51. package/dist/Flow.d.cts +8 -0
  52. package/dist/Flow.d.ts +8 -0
  53. package/dist/Flow.js +15 -0
  54. package/dist/Flow.js.map +1 -0
  55. package/dist/Handle-D8D1zPb_.d.cts +30 -0
  56. package/dist/Handle-D_cLW1Z3.d.ts +30 -0
  57. package/dist/Handle.cjs +42 -0
  58. package/dist/Handle.cjs.map +1 -0
  59. package/dist/Handle.d.cts +7 -0
  60. package/dist/Handle.d.ts +7 -0
  61. package/dist/Handle.js +10 -0
  62. package/dist/Handle.js.map +1 -0
  63. package/dist/Kernel-8kC-jOda.d.cts +171 -0
  64. package/dist/Kernel-CnGE1Fyk.d.ts +171 -0
  65. package/dist/Kernel.cjs +284 -0
  66. package/dist/Kernel.cjs.map +1 -0
  67. package/dist/Kernel.d.cts +14 -0
  68. package/dist/Kernel.d.ts +14 -0
  69. package/dist/Kernel.js +36 -0
  70. package/dist/Kernel.js.map +1 -0
  71. package/dist/Link-Db7975nU.d.ts +45 -0
  72. package/dist/Link-fX8x1eCK.d.cts +45 -0
  73. package/dist/Link.cjs +542 -0
  74. package/dist/Link.cjs.map +1 -0
  75. package/dist/Link.d.cts +7 -0
  76. package/dist/Link.d.ts +7 -0
  77. package/dist/Link.js +35 -0
  78. package/dist/Link.js.map +1 -0
  79. package/dist/Logic-BRjEMr-W.d.ts +38 -0
  80. package/dist/Logic-DRh4sDZj.d.cts +38 -0
  81. package/dist/Logic.cjs +37 -0
  82. package/dist/Logic.cjs.map +1 -0
  83. package/dist/Logic.d.cts +7 -0
  84. package/dist/Logic.d.ts +7 -0
  85. package/dist/Logic.js +10 -0
  86. package/dist/Logic.js.map +1 -0
  87. package/dist/MatchBuilder-0QOc-nlU.d.ts +14 -0
  88. package/dist/MatchBuilder-CJk5oCkR.d.cts +14 -0
  89. package/dist/MatchBuilder.cjs +85 -0
  90. package/dist/MatchBuilder.cjs.map +1 -0
  91. package/dist/MatchBuilder.d.cts +8 -0
  92. package/dist/MatchBuilder.d.ts +8 -0
  93. package/dist/MatchBuilder.js +11 -0
  94. package/dist/MatchBuilder.js.map +1 -0
  95. package/dist/Middleware.cjs +411 -0
  96. package/dist/Middleware.cjs.map +1 -0
  97. package/dist/Middleware.d.cts +88 -0
  98. package/dist/Middleware.d.ts +88 -0
  99. package/dist/Middleware.js +27 -0
  100. package/dist/Middleware.js.map +1 -0
  101. package/dist/Module-B_0xRDMR.d.cts +203 -0
  102. package/dist/Module-DnzluX2J.d.ts +203 -0
  103. package/dist/Module.cjs +13512 -0
  104. package/dist/Module.cjs.map +1 -0
  105. package/dist/Module.d.cts +8 -0
  106. package/dist/Module.d.ts +8 -0
  107. package/dist/Module.js +53 -0
  108. package/dist/Module.js.map +1 -0
  109. package/dist/ModuleTag-C8FHY_sY.d.ts +93 -0
  110. package/dist/ModuleTag-EGbgBMpZ.d.cts +93 -0
  111. package/dist/ModuleTag.cjs +12231 -0
  112. package/dist/ModuleTag.cjs.map +1 -0
  113. package/dist/ModuleTag.d.cts +8 -0
  114. package/dist/ModuleTag.d.ts +8 -0
  115. package/dist/ModuleTag.js +39 -0
  116. package/dist/ModuleTag.js.map +1 -0
  117. package/dist/Observability-COqEvp2C.d.cts +713 -0
  118. package/dist/Observability-cY4kLn0S.d.ts +713 -0
  119. package/dist/Observability.cjs +5865 -0
  120. package/dist/Observability.cjs.map +1 -0
  121. package/dist/Observability.d.cts +9 -0
  122. package/dist/Observability.d.ts +9 -0
  123. package/dist/Observability.js +41 -0
  124. package/dist/Observability.js.map +1 -0
  125. package/dist/Platform-C49Pv956.d.cts +21 -0
  126. package/dist/Platform-C49Pv956.d.ts +21 -0
  127. package/dist/Platform-CHX8o-U4.d.ts +51 -0
  128. package/dist/Platform-CVlv0xLQ.d.cts +51 -0
  129. package/dist/Platform.cjs +58 -0
  130. package/dist/Platform.cjs.map +1 -0
  131. package/dist/Platform.d.cts +4 -0
  132. package/dist/Platform.d.ts +4 -0
  133. package/dist/Platform.js +15 -0
  134. package/dist/Platform.js.map +1 -0
  135. package/dist/Process-CM9xbMdP.d.ts +92 -0
  136. package/dist/Process-mL8fHDSB.d.cts +92 -0
  137. package/dist/Process.cjs +575 -0
  138. package/dist/Process.cjs.map +1 -0
  139. package/dist/Process.d.cts +8 -0
  140. package/dist/Process.d.ts +8 -0
  141. package/dist/Process.js +42 -0
  142. package/dist/Process.js.map +1 -0
  143. package/dist/ReadQuery-BlMwhe-F.d.ts +30 -0
  144. package/dist/ReadQuery-CL5XlXts.d.cts +30 -0
  145. package/dist/ReadQuery-SinbStGF.d.cts +38 -0
  146. package/dist/ReadQuery-SinbStGF.d.ts +38 -0
  147. package/dist/ReadQuery.cjs +377 -0
  148. package/dist/ReadQuery.cjs.map +1 -0
  149. package/dist/ReadQuery.d.cts +2 -0
  150. package/dist/ReadQuery.d.ts +2 -0
  151. package/dist/ReadQuery.js +14 -0
  152. package/dist/ReadQuery.js.map +1 -0
  153. package/dist/Reflection-CQnKwPXj.d.ts +182 -0
  154. package/dist/Reflection-Kabo1mlU.d.cts +182 -0
  155. package/dist/Reflection.cjs +2954 -0
  156. package/dist/Reflection.cjs.map +1 -0
  157. package/dist/Reflection.d.cts +17 -0
  158. package/dist/Reflection.d.ts +17 -0
  159. package/dist/Reflection.js +40 -0
  160. package/dist/Reflection.js.map +1 -0
  161. package/dist/Resource-Dy1xD_DG.d.cts +75 -0
  162. package/dist/Resource-Dy1xD_DG.d.ts +75 -0
  163. package/dist/Resource.cjs +166 -0
  164. package/dist/Resource.cjs.map +1 -0
  165. package/dist/Resource.d.cts +3 -0
  166. package/dist/Resource.d.ts +3 -0
  167. package/dist/Resource.js +21 -0
  168. package/dist/Resource.js.map +1 -0
  169. package/dist/Root-7ADUMk4t.d.cts +29 -0
  170. package/dist/Root-7ADUMk4t.d.ts +29 -0
  171. package/dist/Root.cjs +125 -0
  172. package/dist/Root.cjs.map +1 -0
  173. package/dist/Root.d.cts +4 -0
  174. package/dist/Root.d.ts +4 -0
  175. package/dist/Root.js +12 -0
  176. package/dist/Root.js.map +1 -0
  177. package/dist/Runtime-B-aL-f29.d.cts +274 -0
  178. package/dist/Runtime-CtyzZG4i.d.ts +274 -0
  179. package/dist/Runtime.cjs +5740 -0
  180. package/dist/Runtime.cjs.map +1 -0
  181. package/dist/Runtime.d.cts +19 -0
  182. package/dist/Runtime.d.ts +19 -0
  183. package/dist/Runtime.js +62 -0
  184. package/dist/Runtime.js.map +1 -0
  185. package/dist/ScopeRegistry-D1owDNSm.d.cts +61 -0
  186. package/dist/ScopeRegistry-D1owDNSm.d.ts +61 -0
  187. package/dist/ScopeRegistry.cjs +152 -0
  188. package/dist/ScopeRegistry.cjs.map +1 -0
  189. package/dist/ScopeRegistry.d.cts +2 -0
  190. package/dist/ScopeRegistry.d.ts +2 -0
  191. package/dist/ScopeRegistry.js +16 -0
  192. package/dist/ScopeRegistry.js.map +1 -0
  193. package/dist/State-CU50R26M.d.cts +19 -0
  194. package/dist/State-CU50R26M.d.ts +19 -0
  195. package/dist/State.cjs +19 -0
  196. package/dist/State.cjs.map +1 -0
  197. package/dist/State.d.cts +2 -0
  198. package/dist/State.d.ts +2 -0
  199. package/dist/State.js +2 -0
  200. package/dist/State.js.map +1 -0
  201. package/dist/StateTrait-BGsZghTz.d.ts +122 -0
  202. package/dist/StateTrait-OWhbj12c.d.cts +122 -0
  203. package/dist/StateTrait.cjs +2737 -0
  204. package/dist/StateTrait.cjs.map +1 -0
  205. package/dist/StateTrait.d.cts +9 -0
  206. package/dist/StateTrait.d.ts +9 -0
  207. package/dist/StateTrait.js +39 -0
  208. package/dist/StateTrait.js.map +1 -0
  209. package/dist/TraitLifecycle-CwV5WPFX.d.cts +88 -0
  210. package/dist/TraitLifecycle-LdIWmKlg.d.ts +88 -0
  211. package/dist/TraitLifecycle.cjs +581 -0
  212. package/dist/TraitLifecycle.cjs.map +1 -0
  213. package/dist/TraitLifecycle.d.cts +8 -0
  214. package/dist/TraitLifecycle.d.ts +8 -0
  215. package/dist/TraitLifecycle.js +24 -0
  216. package/dist/TraitLifecycle.js.map +1 -0
  217. package/dist/action-DiMDD_0v.d.cts +35 -0
  218. package/dist/action-DiMDD_0v.d.ts +35 -0
  219. package/dist/chunk-24VULZ7A.js +76 -0
  220. package/dist/chunk-24VULZ7A.js.map +1 -0
  221. package/dist/chunk-3IYZ5IGG.js +17 -0
  222. package/dist/chunk-3IYZ5IGG.js.map +1 -0
  223. package/dist/chunk-3QMIVH35.js +43 -0
  224. package/dist/chunk-3QMIVH35.js.map +1 -0
  225. package/dist/chunk-3RMKLXHX.js +83 -0
  226. package/dist/chunk-3RMKLXHX.js.map +1 -0
  227. package/dist/chunk-3TMODYZV.js +111 -0
  228. package/dist/chunk-3TMODYZV.js.map +1 -0
  229. package/dist/chunk-3VG5TWQR.js +27 -0
  230. package/dist/chunk-3VG5TWQR.js.map +1 -0
  231. package/dist/chunk-4CQAV7YB.js +37 -0
  232. package/dist/chunk-4CQAV7YB.js.map +1 -0
  233. package/dist/chunk-4SO6JMZL.js +7 -0
  234. package/dist/chunk-4SO6JMZL.js.map +1 -0
  235. package/dist/chunk-66ALHVEX.js +40 -0
  236. package/dist/chunk-66ALHVEX.js.map +1 -0
  237. package/dist/chunk-76WT3HOR.js +397 -0
  238. package/dist/chunk-76WT3HOR.js.map +1 -0
  239. package/dist/chunk-ANLBCBDC.js +285 -0
  240. package/dist/chunk-ANLBCBDC.js.map +1 -0
  241. package/dist/chunk-AUIR5O6W.js +75 -0
  242. package/dist/chunk-AUIR5O6W.js.map +1 -0
  243. package/dist/chunk-BABLDP24.js +445 -0
  244. package/dist/chunk-BABLDP24.js.map +1 -0
  245. package/dist/chunk-BE3HW4FY.js +1099 -0
  246. package/dist/chunk-BE3HW4FY.js.map +1 -0
  247. package/dist/chunk-BZ2SHDN2.js +54 -0
  248. package/dist/chunk-BZ2SHDN2.js.map +1 -0
  249. package/dist/chunk-CW6T36TN.js +393 -0
  250. package/dist/chunk-CW6T36TN.js.map +1 -0
  251. package/dist/chunk-DFNM3WX2.js +632 -0
  252. package/dist/chunk-DFNM3WX2.js.map +1 -0
  253. package/dist/chunk-DMBALCE2.js +1034 -0
  254. package/dist/chunk-DMBALCE2.js.map +1 -0
  255. package/dist/chunk-EGK3KN7B.js +406 -0
  256. package/dist/chunk-EGK3KN7B.js.map +1 -0
  257. package/dist/chunk-EY4NZKDR.js +19 -0
  258. package/dist/chunk-EY4NZKDR.js.map +1 -0
  259. package/dist/chunk-G5ZBFPNU.js +23 -0
  260. package/dist/chunk-G5ZBFPNU.js.map +1 -0
  261. package/dist/chunk-GMPEOUP2.js +31 -0
  262. package/dist/chunk-GMPEOUP2.js.map +1 -0
  263. package/dist/chunk-IHVBV5C2.js +279 -0
  264. package/dist/chunk-IHVBV5C2.js.map +1 -0
  265. package/dist/chunk-IPF7E66P.js +23 -0
  266. package/dist/chunk-IPF7E66P.js.map +1 -0
  267. package/dist/chunk-JCXGZRMU.js +204 -0
  268. package/dist/chunk-JCXGZRMU.js.map +1 -0
  269. package/dist/chunk-JGIWG6SR.js +6359 -0
  270. package/dist/chunk-JGIWG6SR.js.map +1 -0
  271. package/dist/chunk-JWOYLO27.js +241 -0
  272. package/dist/chunk-JWOYLO27.js.map +1 -0
  273. package/dist/chunk-KIXAU3GM.js +137 -0
  274. package/dist/chunk-KIXAU3GM.js.map +1 -0
  275. package/dist/chunk-KL5ACTCT.js +8 -0
  276. package/dist/chunk-KL5ACTCT.js.map +1 -0
  277. package/dist/chunk-KP7MUZNX.js +83 -0
  278. package/dist/chunk-KP7MUZNX.js.map +1 -0
  279. package/dist/chunk-LEU6UA5J.js +1 -0
  280. package/dist/chunk-LEU6UA5J.js.map +1 -0
  281. package/dist/chunk-M2RGJPXX.js +35 -0
  282. package/dist/chunk-M2RGJPXX.js.map +1 -0
  283. package/dist/chunk-M3BFQ7HK.js +13 -0
  284. package/dist/chunk-M3BFQ7HK.js.map +1 -0
  285. package/dist/chunk-M3WTHJHJ.js +1051 -0
  286. package/dist/chunk-M3WTHJHJ.js.map +1 -0
  287. package/dist/chunk-M7IYCTJV.js +79 -0
  288. package/dist/chunk-M7IYCTJV.js.map +1 -0
  289. package/dist/chunk-NBD3KUOZ.js +838 -0
  290. package/dist/chunk-NBD3KUOZ.js.map +1 -0
  291. package/dist/chunk-NQZ2OSGR.js +151 -0
  292. package/dist/chunk-NQZ2OSGR.js.map +1 -0
  293. package/dist/chunk-NZJKFF45.js +106 -0
  294. package/dist/chunk-NZJKFF45.js.map +1 -0
  295. package/dist/chunk-OFADUJWJ.js +175 -0
  296. package/dist/chunk-OFADUJWJ.js.map +1 -0
  297. package/dist/chunk-OGWBVHB3.js +461 -0
  298. package/dist/chunk-OGWBVHB3.js.map +1 -0
  299. package/dist/chunk-PAYXCY6A.js +1696 -0
  300. package/dist/chunk-PAYXCY6A.js.map +1 -0
  301. package/dist/chunk-PYOE4VSI.js +1924 -0
  302. package/dist/chunk-PYOE4VSI.js.map +1 -0
  303. package/dist/chunk-PZ5AY32C.js +10 -0
  304. package/dist/chunk-PZ5AY32C.js.map +1 -0
  305. package/dist/chunk-QCHIQWAJ.js +21 -0
  306. package/dist/chunk-QCHIQWAJ.js.map +1 -0
  307. package/dist/chunk-QMM6O4CD.js +71 -0
  308. package/dist/chunk-QMM6O4CD.js.map +1 -0
  309. package/dist/chunk-RNFE3ML2.js +22 -0
  310. package/dist/chunk-RNFE3ML2.js.map +1 -0
  311. package/dist/chunk-TAAPQVZN.js +23 -0
  312. package/dist/chunk-TAAPQVZN.js.map +1 -0
  313. package/dist/chunk-THATMZXD.js +21 -0
  314. package/dist/chunk-THATMZXD.js.map +1 -0
  315. package/dist/chunk-TKZ7MEIA.js +27 -0
  316. package/dist/chunk-TKZ7MEIA.js.map +1 -0
  317. package/dist/chunk-TQOBJYDP.js +7 -0
  318. package/dist/chunk-TQOBJYDP.js.map +1 -0
  319. package/dist/chunk-VZB726PE.js +93 -0
  320. package/dist/chunk-VZB726PE.js.map +1 -0
  321. package/dist/chunk-W3TEWHLO.js +568 -0
  322. package/dist/chunk-W3TEWHLO.js.map +1 -0
  323. package/dist/chunk-YS3AZQ2G.js +52 -0
  324. package/dist/chunk-YS3AZQ2G.js.map +1 -0
  325. package/dist/chunk-ZDTRWK5F.js +40 -0
  326. package/dist/chunk-ZDTRWK5F.js.map +1 -0
  327. package/dist/chunk-ZFLHVFUC.js +192 -0
  328. package/dist/chunk-ZFLHVFUC.js.map +1 -0
  329. package/dist/chunk-ZFY7U2FR.js +133 -0
  330. package/dist/chunk-ZFY7U2FR.js.map +1 -0
  331. package/dist/chunk-ZGDVUPTM.js +270 -0
  332. package/dist/chunk-ZGDVUPTM.js.map +1 -0
  333. package/dist/index.cjs +19700 -0
  334. package/dist/index.cjs.map +1 -0
  335. package/dist/index.d.cts +195 -0
  336. package/dist/index.d.ts +195 -0
  337. package/dist/index.js +286 -0
  338. package/dist/index.js.map +1 -0
  339. package/dist/ir-BMP7yxJJ.d.cts +39 -0
  340. package/dist/ir-DUOz6H-5.d.ts +39 -0
  341. package/dist/module-B8CBqIZ_.d.cts +1191 -0
  342. package/dist/module-k7m3txak.d.ts +1191 -0
  343. package/dist/protocol-g_1897M2.d.cts +127 -0
  344. package/dist/protocol-g_1897M2.d.ts +127 -0
  345. package/package.json +162 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/internal/reflection/staticIr.ts","../src/internal/reflection/manifest.ts","../src/internal/observability/artifacts/registry.ts","../src/internal/observability/trialRunModule.ts","../src/internal/platform/BuildEnv.ts","../src/internal/platform/ConstructionGuard.ts","../src/internal/platform/RuntimeHost.ts","../src/internal/runtime/Runtime.ts","../src/internal/observability/artifacts/model.ts","../src/internal/observability/artifacts/digest.ts","../src/internal/observability/artifacts/collect.ts","../src/internal/observability/trialRun.ts"],"sourcesContent":["import type { AnyModuleShape, ModuleImpl } from '../runtime/core/module.js'\nimport { getModuleTraitsProgram } from '../runtime/core/runtimeInternalsAccessor.js'\nimport type { StaticIr } from '../state-trait/ir.js'\nimport type { StateTraitProgram } from '../state-trait/model.js'\nimport { exportStaticIr as exportStateTraitStaticIr } from '../state-trait/ir.js'\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value)\n\nconst isModuleImpl = (value: unknown): value is ModuleImpl<any, AnyModuleShape, any> =>\n isRecord(value) && value._tag === 'ModuleImpl' && isRecord(value.module)\n\nconst resolveModuleId = (input: unknown): string => {\n if (isModuleImpl(input)) {\n const id = (input.module as any).id\n return typeof id === 'string' && id.length > 0 ? id : 'unknown'\n }\n\n if (isRecord(input)) {\n const id = input.id\n if (typeof id === 'string' && id.length > 0) return id\n const tag = (input as any).tag\n if (tag && (typeof tag === 'object' || typeof tag === 'function')) {\n const tagId = (tag as any).id\n if (typeof tagId === 'string' && tagId.length > 0) return tagId\n }\n }\n\n return 'unknown'\n}\n\nconst resolveModuleTag = (input: unknown): unknown => {\n if (isModuleImpl(input)) return input.module\n if (isRecord(input) && (input as any).tag) return (input as any).tag\n return undefined\n}\n\nexport const exportStaticIr = (module: unknown): StaticIr | undefined => {\n const tag = resolveModuleTag(module)\n if (!tag) return undefined\n\n const program = getModuleTraitsProgram(tag) as StateTraitProgram<any> | undefined\n if (!program) return undefined\n\n return exportStateTraitStaticIr({\n program,\n moduleId: resolveModuleId(module),\n })\n}\n","import { Schema } from 'effect'\nimport type { AnyModuleShape, ModuleImpl } from '../runtime/core/module.js'\nimport * as Action from '../action.js'\nimport { stableStringify, fnv1a32 } from '../digest.js'\nimport { isJsonValue, type JsonValue } from '../observability/jsonValue.js'\nimport { exportStaticIr } from './staticIr.js'\n\nexport interface ManifestBudgets {\n readonly maxBytes?: number\n}\n\nexport interface ExtractManifestOptions {\n readonly includeStaticIr?: boolean\n readonly budgets?: ManifestBudgets\n}\n\nexport interface ModuleManifestLogicUnit {\n readonly kind: string\n readonly id: string\n readonly derived?: boolean\n readonly name?: string\n}\n\nexport interface ModuleManifestAction {\n readonly actionTag: string\n readonly payload: {\n readonly kind: 'void' | 'nonVoid' | 'unknown'\n }\n readonly primaryReducer?: {\n readonly kind: 'declared' | 'registered'\n }\n readonly source?: {\n readonly file: string\n readonly line: number\n readonly column: number\n }\n}\n\nexport interface ModuleManifestEffect {\n readonly actionTag: string\n readonly sourceKey: string\n readonly kind: 'declared' | 'registered'\n readonly source?: {\n readonly file: string\n readonly line: number\n readonly column: number\n }\n}\n\nexport interface ModuleManifest {\n readonly manifestVersion: string\n readonly moduleId: string\n readonly actionKeys: ReadonlyArray<string>\n readonly actions: ReadonlyArray<ModuleManifestAction>\n readonly effects?: ReadonlyArray<ModuleManifestEffect>\n readonly schemaKeys?: ReadonlyArray<string>\n readonly logicUnits?: ReadonlyArray<ModuleManifestLogicUnit>\n readonly source?: {\n readonly file: string\n readonly line: number\n readonly column: number\n }\n readonly meta?: Record<string, JsonValue>\n readonly staticIr?: ReturnType<typeof exportStaticIr>\n readonly digest: string\n}\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value)\n\nconst isModuleImpl = (value: unknown): value is ModuleImpl<any, AnyModuleShape, any> =>\n isRecord(value) && value._tag === 'ModuleImpl' && isRecord(value.module)\n\nconst resolveModuleId = (input: unknown): string => {\n if (isModuleImpl(input)) {\n const id = (input.module as any).id\n return typeof id === 'string' && id.length > 0 ? id : 'unknown'\n }\n\n if (isRecord(input)) {\n const id = input.id\n if (typeof id === 'string' && id.length > 0) return id\n const tag = (input as any).tag\n if (tag && (typeof tag === 'object' || typeof tag === 'function')) {\n const tagId = (tag as any).id\n if (typeof tagId === 'string' && tagId.length > 0) return tagId\n }\n }\n\n return 'unknown'\n}\n\nconst resolveActionKeys = (input: unknown): ReadonlyArray<string> => {\n const tag = isModuleImpl(input) ? (input.module as any) : (input as any)?.tag\n const actionMap = tag?.shape?.actionMap\n if (!isRecord(actionMap)) return []\n return Object.keys(actionMap).sort()\n}\n\ntype DevSource = ModuleManifest['source']\n\nconst resolveDevSource = (input: unknown): DevSource | undefined => {\n if (!isRecord(input)) return undefined\n const file = (input as any).file\n const line = (input as any).line\n const column = (input as any).column\n if (typeof file !== 'string' || file.length === 0) return undefined\n if (typeof line !== 'number' || !Number.isInteger(line) || line < 1) return undefined\n if (typeof column !== 'number' || !Number.isInteger(column) || column < 1) return undefined\n return { file, line, column }\n}\n\nconst resolveTokenSource = (token: unknown): DevSource | undefined => {\n if (!token || (typeof token !== 'object' && typeof token !== 'function')) return undefined\n return resolveDevSource((token as any).source)\n}\n\nconst resolveActions = (input: unknown): ReadonlyArray<ModuleManifestAction> => {\n const tag = isModuleImpl(input) ? (input.module as any) : (input as any)?.tag\n const actionMap = tag?.shape?.actionMap\n if (!isRecord(actionMap)) return []\n\n const moduleSource = resolveSource(input)\n const reducers = isRecord(tag?.reducers) ? (tag.reducers as Record<string, unknown>) : undefined\n\n const actionTags = Object.keys(actionMap).sort()\n\n const out: Array<ModuleManifestAction> = []\n for (const actionTag of actionTags) {\n const token = actionMap[actionTag]\n const source = resolveTokenSource(token) ?? moduleSource\n const payloadKind =\n Action.isActionToken(token) && Schema.isSchema((token as Action.AnyActionToken).schema)\n ? (token as Action.AnyActionToken).schema === Schema.Void\n ? 'void'\n : 'nonVoid'\n : 'unknown'\n\n const primaryReducer =\n reducers && typeof reducers[actionTag] === 'function' ? ({ kind: 'declared' } as const) : undefined\n\n out.push({\n actionTag,\n payload: { kind: payloadKind },\n ...(primaryReducer ? { primaryReducer } : {}),\n ...(source ? { source } : {}),\n })\n }\n\n return out\n}\n\nconst MODULE_DECLARED_EFFECTS = Symbol.for('logix.module.effects.declared')\n\nconst resolveEffects = (input: unknown): ReadonlyArray<ModuleManifestEffect> | undefined => {\n const tag = isModuleImpl(input) ? (input.module as any) : (input as any)?.tag\n const actionMap = tag?.shape?.actionMap\n if (!isRecord(actionMap)) return undefined\n\n const effectsRaw = (tag as any)?.[MODULE_DECLARED_EFFECTS]\n if (!isRecord(effectsRaw)) return undefined\n\n const source = resolveSource(input)\n\n const logicUnitId = '__logix_internal:effects:declared'\n const handlerIds = new WeakMap<(...args: any[]) => any, string>()\n let nextHandlerSeq = 0\n\n const out: Array<ModuleManifestEffect> = []\n\n for (const actionTag of Object.keys(effectsRaw).sort()) {\n if (!(actionTag in actionMap)) continue\n\n const handlers = (effectsRaw as any)[actionTag]\n if (!Array.isArray(handlers)) continue\n\n for (const handler of handlers) {\n if (typeof handler !== 'function') continue\n\n let handlerId = handlerIds.get(handler)\n if (!handlerId) {\n nextHandlerSeq += 1\n handlerId = `h${nextHandlerSeq}`\n handlerIds.set(handler, handlerId)\n }\n\n const sourceKey = `${logicUnitId}::${handlerId}`\n\n out.push({\n actionTag,\n sourceKey,\n kind: 'declared',\n ...(source ? { source } : {}),\n })\n }\n }\n\n const seen = new Set<string>()\n const deduped: Array<ModuleManifestEffect> = []\n for (const item of out) {\n const key = `${item.actionTag}\\u0000${item.sourceKey}`\n if (seen.has(key)) continue\n seen.add(key)\n deduped.push(item)\n }\n\n deduped.sort((a, b) =>\n a.actionTag < b.actionTag ? -1 : a.actionTag > b.actionTag ? 1 : a.sourceKey.localeCompare(b.sourceKey),\n )\n return deduped.length > 0 ? deduped : undefined\n}\n\nconst resolveSchemaKeys = (input: unknown): ReadonlyArray<string> | undefined => {\n if (!isRecord(input)) return undefined\n const schemas = (input as any).schemas\n if (!isRecord(schemas)) return undefined\n return Object.keys(schemas).sort()\n}\n\nconst resolveSource = (input: unknown): ModuleManifest['source'] | undefined => {\n if (!isRecord(input)) return undefined\n const dev = (input as any).dev\n return resolveDevSource(dev?.source)\n}\n\nconst resolveMeta = (input: unknown): Record<string, JsonValue> | undefined => {\n if (!isRecord(input)) return undefined\n const meta = (input as any).meta\n if (!isRecord(meta)) return undefined\n\n const out: Record<string, JsonValue> = {}\n for (const key of Object.keys(meta).sort()) {\n const value = meta[key]\n if (isJsonValue(value)) {\n out[key] = value\n }\n }\n return Object.keys(out).length > 0 ? out : undefined\n}\n\nconst MODULE_INTERNAL = Symbol.for('logix.module.internal')\n\nconst resolveLogicUnits = (input: unknown): ReadonlyArray<ModuleManifestLogicUnit> | undefined => {\n if (!isRecord(input)) return undefined\n const internal = (input as any)[MODULE_INTERNAL]\n const mounted = internal?.mounted\n if (!Array.isArray(mounted)) return undefined\n\n const out: Array<ModuleManifestLogicUnit> = []\n for (const unit of mounted) {\n if (!isRecord(unit)) continue\n const kind = unit.kind\n const id = unit.id\n if (typeof kind !== 'string' || kind.length === 0) continue\n if (typeof id !== 'string' || id.length === 0) continue\n\n const derived = unit.derived === true ? true : undefined\n const name = typeof unit.name === 'string' ? unit.name : undefined\n out.push({ kind, id, derived, name })\n }\n\n out.sort((a, b) => (a.id < b.id ? -1 : a.id > b.id ? 1 : a.kind.localeCompare(b.kind)))\n return out.length > 0 ? out : undefined\n}\n\ntype DigestBase = {\n readonly manifestVersion: string\n readonly moduleId: string\n readonly actionKeys: ReadonlyArray<string>\n readonly actions: ReadonlyArray<ModuleManifestAction>\n readonly effects?: ReadonlyArray<ModuleManifestEffect>\n readonly schemaKeys?: ReadonlyArray<string>\n readonly logicUnits?: ReadonlyArray<ModuleManifestLogicUnit>\n readonly staticIrDigest?: string\n}\n\nconst digestOf = (base: DigestBase): string => `manifest:067:${fnv1a32(stableStringify(base))}`\n\nconst utf8ByteLength = (value: unknown): number => {\n const json = JSON.stringify(value)\n if (typeof TextEncoder !== 'undefined') {\n return new TextEncoder().encode(json).length\n }\n return json.length\n}\n\nconst applyMaxBytes = (manifest: ModuleManifest, maxBytes: number): ModuleManifest => {\n const originalBytes = utf8ByteLength(manifest)\n if (originalBytes <= maxBytes) return manifest\n\n const dropped: Array<string> = []\n const truncatedArrays: Array<string> = []\n\n const baseMarker = (): JsonValue => ({\n truncated: true,\n maxBytes,\n originalBytes,\n dropped,\n truncatedArrays,\n })\n\n const withMarker = (next: ModuleManifest): ModuleManifest => {\n const meta: Record<string, JsonValue> = {\n __logix: baseMarker(),\n }\n return { ...next, meta }\n }\n\n let next: ModuleManifest = withMarker(manifest)\n\n const markTruncatedArray = (name: string): void => {\n if (!truncatedArrays.includes(name)) {\n truncatedArrays.push(name)\n }\n }\n\n const dropField = (field: keyof ModuleManifest): void => {\n if ((next as any)[field] !== undefined) {\n dropped.push(String(field))\n next = withMarker({ ...(next as any), [field]: undefined })\n }\n }\n\n // Deterministic trimming order (least valuable first).\n dropField('meta')\n if (utf8ByteLength(next) <= maxBytes) return next\n\n dropField('source')\n if (utf8ByteLength(next) <= maxBytes) return next\n\n dropField('staticIr')\n if (utf8ByteLength(next) <= maxBytes) return next\n\n dropField('logicUnits')\n if (utf8ByteLength(next) <= maxBytes) return next\n\n dropField('schemaKeys')\n if (utf8ByteLength(next) <= maxBytes) return next\n\n dropField('effects')\n if (utf8ByteLength(next) <= maxBytes) return next\n\n // Last resort: deterministically truncate tail items (stable order: actions[] sorted by actionTag).\n const truncateActionsToFit = (): void => {\n const total = next.actions.length\n if (total <= 1) return\n\n // Find the largest prefix that fits.\n let lo = 1\n let hi = total\n let best = 1\n\n while (lo <= hi) {\n const mid = Math.floor((lo + hi) / 2)\n const candidate = withMarker({\n ...next,\n actions: next.actions.slice(0, mid),\n actionKeys: next.actionKeys.slice(0, mid),\n })\n if (utf8ByteLength(candidate) <= maxBytes) {\n best = mid\n lo = mid + 1\n } else {\n hi = mid - 1\n }\n }\n\n if (best < total) {\n markTruncatedArray('actions')\n markTruncatedArray('actionKeys')\n next = withMarker({\n ...next,\n actions: next.actions.slice(0, best),\n actionKeys: next.actionKeys.slice(0, best),\n })\n }\n }\n\n while (utf8ByteLength(next) > maxBytes) {\n const beforeLen = next.actions.length\n truncateActionsToFit()\n if (next.actions.length === beforeLen) {\n break\n }\n }\n\n return next\n}\n\nexport const extractManifest = (module: unknown, options?: ExtractManifestOptions): ModuleManifest => {\n const manifestVersion = '067'\n const moduleId = resolveModuleId(module)\n const actionKeys = resolveActionKeys(module)\n const actions = resolveActions(module)\n const effects = resolveEffects(module)\n\n const schemaKeys = resolveSchemaKeys(module)\n const logicUnits = resolveLogicUnits(module)\n const source = resolveSource(module)\n const meta = resolveMeta(module)\n\n const staticIr = options?.includeStaticIr ? exportStaticIr(module) : undefined\n\n const digestBase: DigestBase = {\n manifestVersion,\n moduleId,\n actionKeys,\n actions,\n effects,\n schemaKeys,\n logicUnits,\n staticIrDigest: staticIr?.digest,\n }\n\n const digest = digestOf(digestBase)\n\n const manifest: ModuleManifest = {\n manifestVersion,\n moduleId,\n actionKeys,\n actions,\n effects,\n schemaKeys,\n logicUnits,\n source,\n meta,\n staticIr,\n digest,\n }\n\n const maxBytes = options?.budgets?.maxBytes\n if (typeof maxBytes === 'number' && Number.isFinite(maxBytes) && maxBytes > 0) {\n return applyMaxBytes(manifest, maxBytes)\n }\n\n return manifest\n}\n","import type { TrialRunArtifactExporter } from './exporter.js'\n\nconst ARTIFACT_EXPORTERS = Symbol.for('logix.module.trialRunArtifactExporters')\n\nexport const registerTrialRunArtifactExporter = (tag: unknown, exporter: TrialRunArtifactExporter): void => {\n if (!tag || (typeof tag !== 'object' && typeof tag !== 'function')) {\n throw new Error('[Logix] registerTrialRunArtifactExporter: invalid module tag')\n }\n\n const current = ((tag as any)[ARTIFACT_EXPORTERS] ?? []) as unknown\n const next = Array.isArray(current) ? [...current, exporter] : [exporter]\n ;(tag as any)[ARTIFACT_EXPORTERS] = next\n}\n\nexport const getTrialRunArtifactExporters = (tag: unknown): ReadonlyArray<TrialRunArtifactExporter> => {\n if (!tag || (typeof tag !== 'object' && typeof tag !== 'function')) {\n return []\n }\n\n const current = (tag as any)[ARTIFACT_EXPORTERS] as unknown\n if (!Array.isArray(current)) return []\n return current.filter((x): x is TrialRunArtifactExporter => x && typeof x === 'object')\n}\n","import { Cause, Effect, Exit, Fiber, Layer, Option } from 'effect'\nimport type { AnyModuleShape, ModuleImpl } from '../runtime/core/module.js'\nimport * as BuildEnv from '../platform/BuildEnv.js'\nimport type { EvidencePackage, EvidencePackageSource } from './evidence.js'\nimport { makeEvidenceCollector, evidenceCollectorLayer } from './evidenceCollector.js'\nimport { makeRunSession, runSessionLayer, type RunId } from './runSession.js'\nimport {\n appendSinks,\n diagnosticsLevel,\n type DiagnosticsLevel,\n type Sink as DebugSink,\n} from '../runtime/core/DebugSink.js'\nimport type { KernelImplementationRef } from '../runtime/core/KernelRef.js'\nimport * as KernelRef from '../runtime/core/KernelRef.js'\nimport * as RuntimeKernel from '../runtime/core/RuntimeKernel.js'\nimport type { ConvergeStaticIrCollector } from '../runtime/core/ConvergeStaticIrCollector.js'\nimport { appendConvergeStaticIrCollectors } from '../runtime/core/ConvergeStaticIrCollector.js'\nimport type { SerializableErrorSummary } from '../runtime/core/errorSummary.js'\nimport { toSerializableErrorSummary } from '../runtime/core/errorSummary.js'\nimport { makeProgramRunnerKernel } from '../runtime/ProgramRunner.kernel.js'\nimport { extractManifest, type ModuleManifest } from '../reflection/manifest.js'\nimport { exportStaticIr } from '../reflection/staticIr.js'\nimport * as Runtime from '../runtime/Runtime.js'\nimport { collectTrialRunArtifacts } from './artifacts/collect.js'\nimport type { TrialRunArtifacts } from './artifacts/model.js'\nimport { getTrialRunArtifactExporters } from './artifacts/registry.js'\n\ntype RootLike<Sh extends AnyModuleShape> = ModuleImpl<any, Sh, any> | { readonly impl: ModuleImpl<any, Sh, any> }\n\nexport interface TrialRunReportBudgets {\n readonly maxBytes?: number\n}\n\nexport interface TrialRunReport {\n readonly runId: string\n readonly ok: boolean\n readonly manifest?: ModuleManifest\n readonly staticIr?: ReturnType<typeof exportStaticIr>\n readonly artifacts?: TrialRunArtifacts\n readonly environment?: EnvironmentIr\n readonly evidence?: EvidencePackage\n readonly summary?: unknown\n readonly error?: SerializableErrorSummary\n}\n\nexport interface EnvironmentIr {\n readonly tagIds: ReadonlyArray<string>\n readonly configKeys: ReadonlyArray<string>\n readonly missingServices: ReadonlyArray<string>\n readonly missingConfigKeys: ReadonlyArray<string>\n readonly kernelImplementationRef?: KernelImplementationRef\n readonly runtimeServicesEvidence?: RuntimeKernel.RuntimeServicesEvidence\n readonly notes?: unknown\n}\n\nexport interface TrialRunModuleOptions {\n readonly runId?: RunId\n readonly source?: EvidencePackageSource\n readonly startedAt?: number\n readonly diagnosticsLevel?: DiagnosticsLevel\n readonly maxEvents?: number\n readonly layer?: Layer.Layer<any, any, any>\n readonly buildEnv?: {\n readonly config?: Record<string, BuildEnv.BuildEnvConfigValue | undefined>\n readonly hostKind?: BuildEnv.BuildEnvOptions['runtimeHostKind']\n readonly configProvider?: BuildEnv.BuildEnvOptions['configProvider']\n }\n readonly trialRunTimeoutMs?: number\n readonly closeScopeTimeout?: number\n readonly budgets?: TrialRunReportBudgets\n}\n\nconst defaultHost = (): string => {\n if (typeof window !== 'undefined' && typeof document !== 'undefined') return 'browser'\n return 'node'\n}\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value)\n\nconst resolveRootImpl = <Sh extends AnyModuleShape>(root: RootLike<Sh>): ModuleImpl<any, Sh, any> =>\n ((root as any)?._tag === 'ModuleImpl'\n ? (root as ModuleImpl<any, Sh, any>)\n : ((root as any)?.impl as ModuleImpl<any, Sh, any>)) satisfies ModuleImpl<any, Sh, any>\n\nconst utf8ByteLength = (value: unknown): number => {\n const json = JSON.stringify(value)\n if (typeof TextEncoder !== 'undefined') {\n return new TextEncoder().encode(json).length\n }\n return json.length\n}\n\nconst parseMissingConfigKeys = (message: string): ReadonlyArray<string> => {\n const out: string[] = []\n\n // Effect Config error messages vary; keep parsing conservative and deterministic.\n const patterns: ReadonlyArray<RegExp> = [\n /\\bMissing (?:data|value) for (?:key|path) \"?([A-Z0-9_./:-]+)\"?/g,\n /\\bMissing (?:data|value) at ([A-Z0-9_./:-]+)\\b/g,\n /\\bMissing configuration:? \"?([A-Z0-9_./:-]+)\"?/g,\n /\\bConfig\\b.*\\bmissing\\b.*\"?([A-Z0-9_./:-]+)\"?/gi,\n ]\n\n for (const re of patterns) {\n let match: RegExpExecArray | null\n while ((match = re.exec(message))) {\n const key = match[1]\n if (typeof key === 'string' && key.length > 0) out.push(key)\n }\n }\n\n return Array.from(new Set(out)).sort((a, b) => a.localeCompare(b))\n}\n\nconst parseMissingServiceIds = (message: string): ReadonlyArray<string> => {\n const out: string[] = []\n const re = /Service not found: ([^\\s(]+)/g\n let match: RegExpExecArray | null\n while ((match = re.exec(message))) {\n const id = match[1]?.replace(/[,:.;]+$/, '')\n if (typeof id === 'string' && id.length > 0) out.push(id)\n }\n return Array.from(new Set(out)).sort((a, b) => a.localeCompare(b))\n}\n\nconst parseMissingDependencyFromCause = (\n cause: Cause.Cause<unknown>,\n): {\n readonly missingServices: ReadonlyArray<string>\n readonly missingConfigKeys: ReadonlyArray<string>\n} => {\n const missingServices: string[] = []\n const missingConfigKeys: string[] = []\n\n const candidates = [...Array.from(Cause.failures(cause)), ...Array.from(Cause.defects(cause))]\n\n for (const candidate of candidates) {\n if (isRecord(candidate) && (candidate as any)._tag === 'ConstructionGuardError') {\n const missingService = (candidate as any).missingService\n if (typeof missingService === 'string' && missingService.length > 0) {\n missingServices.push(missingService)\n }\n }\n\n if (\n isRecord(candidate) &&\n (candidate as any)._tag === 'ConfigError' &&\n (candidate as any)._op === 'MissingData' &&\n Array.isArray((candidate as any).path) &&\n (candidate as any).path.every((k: unknown) => typeof k === 'string' && k.length > 0)\n ) {\n const key = (candidate as any).path.join('.')\n if (key.length > 0) missingConfigKeys.push(key)\n }\n }\n\n const messages: string[] = []\n for (const candidate of candidates) {\n if (candidate instanceof Error) {\n messages.push(candidate.message)\n continue\n }\n if (typeof candidate === 'string') {\n messages.push(candidate)\n continue\n }\n if (isRecord(candidate) && typeof (candidate as any).message === 'string') {\n messages.push(String((candidate as any).message))\n }\n }\n\n try {\n messages.push(Cause.pretty(cause, { renderErrorCause: true }))\n } catch {\n // ignore\n }\n\n const merged = messages.filter((s) => s.length > 0).join('\\n')\n\n if (merged) {\n missingServices.push(...parseMissingServiceIds(merged))\n missingConfigKeys.push(...parseMissingConfigKeys(merged))\n }\n\n return {\n missingServices: Array.from(new Set(missingServices)).sort((a, b) => a.localeCompare(b)),\n missingConfigKeys: Array.from(new Set(missingConfigKeys)).sort((a, b) => a.localeCompare(b)),\n }\n}\n\nconst buildEnvironmentIr = (params: {\n readonly kernelImplementationRef?: KernelImplementationRef\n readonly runtimeServicesEvidence?: RuntimeKernel.RuntimeServicesEvidence\n readonly buildEnvConfig?: Record<string, BuildEnv.BuildEnvConfigValue | undefined>\n readonly missingServices?: ReadonlyArray<string>\n readonly missingConfigKeys?: ReadonlyArray<string>\n}): EnvironmentIr => {\n const providedConfigKeys = Object.keys(params.buildEnvConfig ?? {})\n .filter((k) => k.length > 0 && (params.buildEnvConfig as any)[k] !== undefined)\n .sort((a, b) => a.localeCompare(b))\n\n const missingServices = Array.from(new Set(params.missingServices ?? [])).sort((a, b) => a.localeCompare(b))\n const missingConfigKeys = Array.from(new Set(params.missingConfigKeys ?? [])).sort((a, b) => a.localeCompare(b))\n\n const runtimeServiceIds =\n params.runtimeServicesEvidence?.bindings?.map((b) => b.serviceId).filter((s) => typeof s === 'string') ?? []\n\n const tagIds = Array.from(new Set([...runtimeServiceIds, ...missingServices])).sort((a, b) => a.localeCompare(b))\n\n const configKeys = Array.from(new Set([...providedConfigKeys, ...missingConfigKeys])).sort((a, b) =>\n a.localeCompare(b),\n )\n\n return {\n tagIds,\n configKeys,\n missingServices,\n missingConfigKeys,\n kernelImplementationRef: params.kernelImplementationRef,\n runtimeServicesEvidence: params.runtimeServicesEvidence,\n }\n}\n\nconst toErrorSummaryWithCode = (cause: unknown, code: string, hint?: string): SerializableErrorSummary => {\n const base = toSerializableErrorSummary(cause).errorSummary\n return {\n name: base.name,\n message: base.message,\n code,\n hint: hint ?? base.hint,\n }\n}\n\nconst makeTrialRunTimeoutError = (): Error =>\n Object.assign(new Error('[Logix] trialRunModule timed out'), {\n name: 'TrialRunTimeoutError',\n })\n\nconst awaitFiberExitWithTimeout = <A, E>(\n fiber: Fiber.Fiber<A, E>,\n timeoutMs: number | undefined,\n): Effect.Effect<Exit.Exit<A, E | Error>, never, never> =>\n Effect.gen(function* () {\n const hasTimeout = typeof timeoutMs === 'number' && Number.isFinite(timeoutMs) && timeoutMs > 0\n const start = hasTimeout ? Date.now() : 0\n\n while (true) {\n const exitOpt = yield* Fiber.poll(fiber)\n if (Option.isSome(exitOpt)) {\n return exitOpt.value as Exit.Exit<A, E | Error>\n }\n\n if (hasTimeout) {\n const elapsedMs = Date.now() - start\n if (elapsedMs >= timeoutMs) {\n yield* Fiber.interruptFork(fiber)\n return Exit.fail(makeTrialRunTimeoutError())\n }\n }\n\n // NOTE: timer yield (not TestClock-based)\n yield* Effect.promise(() => new Promise<void>((r) => setTimeout(r, 1)))\n }\n })\n\nexport const trialRunModule = <Sh extends AnyModuleShape>(\n root: RootLike<Sh>,\n options?: TrialRunModuleOptions,\n): Effect.Effect<TrialRunReport, never, never> =>\n Effect.gen(function* () {\n const rootImpl = resolveRootImpl(root)\n\n const session = makeRunSession({\n runId: options?.runId,\n source: options?.source ?? { host: defaultHost(), label: 'trial-run-module' },\n startedAt: options?.startedAt,\n })\n\n const collector = makeEvidenceCollector(session)\n\n const convergeCollector: ConvergeStaticIrCollector = {\n register: (ir) => {\n collector.registerConvergeStaticIr(ir)\n },\n }\n\n const sinksLayer = appendSinks([collector.debugSink as unknown as DebugSink])\n const resolvedDiagnosticsLevel = options?.diagnosticsLevel ?? 'light'\n const diagnosticsLayer = diagnosticsLevel(resolvedDiagnosticsLevel)\n const convergeLayer = appendConvergeStaticIrCollectors([convergeCollector])\n const collectorLayer = evidenceCollectorLayer(collector)\n const sessionLayer = runSessionLayer(session)\n\n const buildEnvConfig = options?.buildEnv?.config\n const buildEnvLayer = BuildEnv.layer({\n runtimeHostKind: options?.buildEnv?.hostKind,\n config: buildEnvConfig,\n configProvider: options?.buildEnv?.configProvider,\n })\n\n const trialLayer = Layer.mergeAll(\n buildEnvLayer,\n options?.layer ?? (Layer.empty as unknown as Layer.Layer<any, any, any>),\n sessionLayer,\n collectorLayer,\n diagnosticsLayer,\n sinksLayer,\n convergeLayer,\n ) as Layer.Layer<any, never, never>\n\n const kernel = yield* makeProgramRunnerKernel(\n (impl) =>\n Runtime.make(impl, {\n layer: trialLayer as any,\n // trial-run does not enable devtools by default; diagnostics is controlled by diagnosticsLevel.\n } as any),\n rootImpl,\n )\n\n const identity = kernel.identity\n\n const bootFiber = kernel.runtime.runFork(rootImpl.module as any)\n const bootExit = yield* awaitFiberExitWithTimeout(bootFiber, options?.trialRunTimeoutMs)\n\n let kernelImplementationRef: KernelImplementationRef | undefined\n let runtimeServicesEvidence: RuntimeKernel.RuntimeServicesEvidence | undefined\n let instanceId: string | undefined\n\n if (Exit.isSuccess(bootExit)) {\n const moduleRuntime = bootExit.value as any\n instanceId =\n typeof moduleRuntime?.instanceId === 'string' && moduleRuntime.instanceId.length > 0\n ? moduleRuntime.instanceId\n : undefined\n kernel.setInstanceId(instanceId)\n\n try {\n kernelImplementationRef = KernelRef.getKernelImplementationRef(moduleRuntime)\n } catch {\n kernelImplementationRef = undefined\n }\n\n if (resolvedDiagnosticsLevel !== 'off') {\n try {\n runtimeServicesEvidence = RuntimeKernel.getRuntimeServicesEvidence(moduleRuntime)\n } catch {\n runtimeServicesEvidence = undefined\n }\n }\n } else {\n const failure = Cause.failureOption(bootExit.cause)\n if (Option.isSome(failure)) {\n const err: any = failure.value\n const instanceIdFromErr = typeof err?.instanceId === 'string' ? err.instanceId : undefined\n if (instanceIdFromErr && instanceIdFromErr.length > 0) {\n kernel.setInstanceId(instanceIdFromErr)\n }\n }\n }\n\n const closeExit = yield* Effect.exit(\n kernel.close({\n timeoutMs:\n typeof options?.closeScopeTimeout === 'number' &&\n Number.isFinite(options.closeScopeTimeout) &&\n options.closeScopeTimeout > 0\n ? options.closeScopeTimeout\n : 1000,\n }),\n )\n\n const evidence = collector.exportEvidencePackage({\n maxEvents: options?.maxEvents ?? 1000,\n })\n\n const manifest = (() => {\n try {\n return extractManifest(root as any, {\n includeStaticIr: true,\n budgets: { maxBytes: 200_000 },\n })\n } catch {\n return undefined\n }\n })()\n\n const staticIr = (() => {\n try {\n return exportStaticIr(root as any)\n } catch {\n return undefined\n }\n })()\n\n let ok = Exit.isSuccess(bootExit) && Exit.isSuccess(closeExit)\n let error: SerializableErrorSummary | undefined\n let summary: unknown | undefined\n\n const depsFromBootFailure = Exit.isFailure(bootExit)\n ? parseMissingDependencyFromCause(bootExit.cause as Cause.Cause<unknown>)\n : { missingServices: [], missingConfigKeys: [] }\n\n const missingServices = depsFromBootFailure.missingServices\n const missingConfigKeys = depsFromBootFailure.missingConfigKeys\n\n const closeError = Exit.isFailure(closeExit) ? Option.getOrUndefined(Cause.dieOption(closeExit.cause)) : undefined\n\n if (!Exit.isSuccess(bootExit)) {\n const failure = Option.getOrUndefined(Cause.failureOption(bootExit.cause))\n const defect = Option.getOrUndefined(Cause.dieOption(bootExit.cause))\n const base = failure ?? defect ?? bootExit.cause\n\n if (missingServices.length > 0 || missingConfigKeys.length > 0) {\n ok = false\n error = toErrorSummaryWithCode(\n base,\n 'MissingDependency',\n missingServices.length > 0\n ? 'Build-time missing service: provide a Layer mock/implementation via options.layer, or move the dependency access to runtime.'\n : 'Build-time missing config: provide the missing key(s) in buildEnv.config, or add a default value to Config.',\n )\n } else if (\n isRecord(base) &&\n ((base as any).name === 'TrialRunTimeoutError' || (base as any)._tag === 'TrialRunTimeout')\n ) {\n ok = false\n error = toErrorSummaryWithCode(\n base,\n 'TrialRunTimeout',\n 'Trial run timed out: check for Layer/assembly phase blocking (Effect.never / unfinished acquire).',\n )\n } else {\n ok = false\n error = toErrorSummaryWithCode(base, 'RuntimeFailure')\n }\n }\n\n if (Exit.isFailure(closeExit)) {\n const died = Option.getOrUndefined(Cause.dieOption(closeExit.cause))\n const failure = Option.getOrUndefined(Cause.failureOption(closeExit.cause))\n const base = died ?? failure ?? closeExit.cause\n\n const closeErrorSummary = (() => {\n const tag = isRecord(base) ? (base as any)._tag : undefined\n if (tag === 'DisposeTimeout') {\n return toErrorSummaryWithCode(\n base,\n 'DisposeTimeout',\n 'Dispose timed out: check for unclosed resource handles, fibers not interrupted, or event listeners not unregistered.',\n )\n }\n return toErrorSummaryWithCode(base, 'RuntimeFailure')\n })()\n\n ok = false\n if (!error) {\n // If boot succeeded but dispose failed, the close error is the primary failure.\n error = closeErrorSummary\n } else {\n // Preserve the primary boot failure (e.g. TrialRunTimeout) but keep dispose failure evidence.\n summary = { __logix: { closeError: closeErrorSummary } }\n }\n }\n\n const environment = buildEnvironmentIr({\n kernelImplementationRef,\n runtimeServicesEvidence,\n buildEnvConfig,\n missingServices,\n missingConfigKeys,\n })\n\n const moduleId =\n typeof (rootImpl.module as any)?.id === 'string' && (rootImpl.module as any).id.length > 0\n ? String((rootImpl.module as any).id)\n : (manifest?.moduleId ?? 'unknown')\n\n const artifacts = collectTrialRunArtifacts({\n exporters: getTrialRunArtifactExporters(rootImpl.module as any),\n ctx: {\n moduleId,\n manifest,\n staticIr: staticIr as any,\n environment,\n },\n })\n\n let report: TrialRunReport = {\n runId: session.runId,\n ok,\n manifest,\n staticIr: staticIr as any,\n artifacts,\n environment,\n evidence,\n summary,\n error,\n }\n\n const maxBytes = options?.budgets?.maxBytes\n if (typeof maxBytes === 'number' && Number.isFinite(maxBytes) && maxBytes > 0) {\n const originalBytes = utf8ByteLength(report)\n if (originalBytes > maxBytes) {\n report = {\n runId: session.runId,\n ok: false,\n environment,\n error: {\n message: `[Logix] TrialRunReport exceeded maxBytes (${originalBytes} > ${maxBytes})`,\n code: 'Oversized',\n hint: 'Reduce maxEvents or budgets.maxBytes, or split manifest/evidence artifacts in CI.',\n },\n summary: {\n __logix: {\n truncated: true,\n maxBytes,\n originalBytes,\n dropped: ['manifest', 'staticIr', 'artifacts', 'evidence'],\n },\n },\n }\n }\n }\n\n return report\n })\n","import { ConfigProvider, Effect, Layer } from 'effect'\nimport * as ConstructionGuard from './ConstructionGuard.js'\nimport {\n RuntimeHost,\n type RuntimeHostKind,\n type RuntimeHostService,\n defaultLayer as defaultRuntimeHostLayer,\n make as makeRuntimeHost,\n layer as runtimeHostLayer,\n} from './RuntimeHost.js'\n\nexport type BuildEnvConfigValue = string | number | boolean\n\nexport interface BuildEnvOptions {\n readonly runtimeHost?: RuntimeHostService\n readonly runtimeHostKind?: RuntimeHostKind\n /**\n * Flat key/value config for mocking feature flags / env variables (values are coerced to string).\n */\n readonly config?: Record<string, BuildEnvConfigValue | undefined>\n /**\n * Advanced: inject a ConfigProvider directly (higher priority than config).\n */\n readonly configProvider?: ConfigProvider.ConfigProvider\n}\n\nconst toConfigProviderFromRecord = (\n record: Record<string, BuildEnvConfigValue | undefined> | undefined,\n): ConfigProvider.ConfigProvider => {\n const map = new Map<string, string>()\n for (const [k, v] of Object.entries(record ?? {})) {\n if (!k) continue\n if (v === undefined) continue\n map.set(k, String(v))\n }\n return ConfigProvider.fromMap(map)\n}\n\nexport const layer = (options: BuildEnvOptions = {}): Layer.Layer<RuntimeHost, never, never> => {\n const runtimeHost = options.runtimeHost\n ? runtimeHostLayer(options.runtimeHost)\n : options.runtimeHostKind\n ? runtimeHostLayer(makeRuntimeHost(options.runtimeHostKind))\n : defaultRuntimeHostLayer\n\n const configProvider = options.configProvider ? options.configProvider : toConfigProviderFromRecord(options.config)\n\n const config = Layer.setConfigProvider(configProvider)\n\n return Layer.mergeAll(runtimeHost, config) as Layer.Layer<RuntimeHost, never, never>\n}\n\nexport const run = <A, E>(\n builder: Effect.Effect<A, E, RuntimeHost>,\n options: BuildEnvOptions = {},\n): Effect.Effect<A, E | ConstructionGuard.ConstructionGuardError, never> =>\n builder.pipe(Effect.provide(layer(options)), ConstructionGuard.guardBuildTime)\n","import { Cause, Effect } from 'effect'\n\nexport interface ConstructionGuardError extends Error {\n readonly _tag: 'ConstructionGuardError'\n readonly kind: 'missing_service' | 'unknown_defect'\n readonly missingService?: string\n readonly hint?: string\n}\n\nexport const makeConstructionGuardError = (options: {\n readonly kind: ConstructionGuardError['kind']\n readonly message: string\n readonly missingService?: string\n readonly hint?: string\n}): ConstructionGuardError =>\n Object.assign(new Error(options.message), {\n _tag: 'ConstructionGuardError',\n kind: options.kind,\n missingService: options.missingService,\n hint: options.hint,\n }) as ConstructionGuardError\n\nconst extractMissingService = (cause: Cause.Cause<unknown>): string | undefined => {\n const candidates = [...Array.from(Cause.defects(cause)), ...Array.from(Cause.failures(cause))]\n\n for (const candidate of candidates) {\n const message =\n candidate instanceof Error ? candidate.message : typeof candidate === 'string' ? candidate : undefined\n\n if (!message) continue\n\n const match = /Service not found: ([^\\s(]+)/.exec(message)\n if (match?.[1]) return match[1]\n }\n\n return undefined\n}\n\n/**\n * guardBuildTime:\n * - During Build Env/Reflection, catch \"missing service\" defects and convert them into actionable errors.\n * - Preserve other failures/defects as-is (do not swallow business error semantics).\n */\nexport const guardBuildTime = <A, E, R>(\n self: Effect.Effect<A, E, R>,\n): Effect.Effect<A, E | ConstructionGuardError, R> =>\n self.pipe(\n Effect.catchAllCause((cause): Effect.Effect<never, ConstructionGuardError | E, never> => {\n const missing = extractMissingService(cause)\n if (missing) {\n return Effect.fail(\n makeConstructionGuardError({\n kind: 'missing_service',\n missingService: missing,\n message: `[ConstructionGuardError] Build-time dependency violation: service \"${missing}\" is not available in Build Env.`,\n hint:\n 'Build-time (Reflection) can only depend on a small set of mockable primitives (e.g. Config/RuntimeHost). ' +\n 'Move business service access to runtime (e.g. Trait handler / Logic run section) or isolate it via explicit injection.',\n }),\n )\n }\n return Effect.failCause(cause) as Effect.Effect<never, ConstructionGuardError | E>\n }),\n )\n","import { Context, Layer } from 'effect'\n\nexport type RuntimeHostKind = 'node' | 'browser' | 'unknown'\n\nexport interface RuntimeHostService {\n readonly kind: RuntimeHostKind\n readonly isNode: boolean\n readonly isBrowser: boolean\n}\n\nconst detectKind = (): RuntimeHostKind => {\n const isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined'\n\n if (isBrowser) return 'browser'\n\n const isNode = typeof process !== 'undefined' && typeof (process as any)?.versions?.node === 'string'\n\n if (isNode) return 'node'\n\n return 'unknown'\n}\n\nexport const make = (kind: RuntimeHostKind): RuntimeHostService => ({\n kind,\n isNode: kind === 'node',\n isBrowser: kind === 'browser',\n})\n\nexport class RuntimeHost extends Context.Tag('@logixjs/RuntimeHost')<RuntimeHost, RuntimeHostService>() {}\n\nexport const layer = (service: RuntimeHostService): Layer.Layer<RuntimeHost, never, never> =>\n Layer.succeed(RuntimeHost, service)\n\nexport const mock = (kind: RuntimeHostKind): Layer.Layer<RuntimeHost, never, never> => layer(make(kind))\n\nexport const defaultLayer: Layer.Layer<RuntimeHost, never, never> = layer(make(detectKind()))\n","import { Effect, Layer, ManagedRuntime } from 'effect'\nimport type { AnyModuleShape, ModuleImpl } from './core/module.js'\nimport * as AppRuntimeImpl from './AppRuntime.js'\n\n/**\n * Runtime options:\n * - layer: extra top-level Env (e.g. Config / platform services) merged with Root ModuleImpl.layer.\n * - onError: app-level error handler entrypoint used to report uncaught errors at the Runtime level.\n */\nexport interface RuntimeOptions {\n readonly layer?: Layer.Layer<any, never, never>\n readonly onError?: (cause: import('effect').Cause.Cause<unknown>) => Effect.Effect<void>\n}\n\n/**\n * Runtime.make\n *\n * Build an application-level Runtime given a root ModuleImpl:\n *\n * - Use RootImpl.module + RootImpl.layer as the single global module.\n * - Fork RootImpl.processes as long-lived processes within the Runtime scope.\n * - Reuse the existing AppRuntime implementation as the underlying container and expose only ManagedRuntime.\n *\n * Notes:\n * - Uses broad any/never at the type level to avoid complex Env inference here.\n * - Business code only needs to ensure RootImpl.layer and options.layer together can provide the full Env.\n */\nexport const make = (\n rootImpl: ModuleImpl<any, AnyModuleShape, any>,\n options?: RuntimeOptions,\n): ManagedRuntime.ManagedRuntime<any, never> => {\n const appConfig: AppRuntimeImpl.LogixAppConfig<any> = {\n layer: (options?.layer ?? Layer.empty) as Layer.Layer<any, never, never>,\n modules: [AppRuntimeImpl.provide(rootImpl.module, rootImpl.layer as Layer.Layer<any, any, any>)],\n processes: rootImpl.processes ?? [],\n onError: options?.onError,\n }\n\n const app = AppRuntimeImpl.makeApp(appConfig)\n return app.makeRuntime() as ManagedRuntime.ManagedRuntime<any, never>\n}\n","import type { JsonValue } from '../jsonValue.js'\nimport type { SerializableErrorSummary } from '../../runtime/core/errorSummary.js'\n\nexport type ArtifactKey = string\n\nexport const artifactKeySchemaPattern = '^@[^\\\\s/]+\\\\/[^\\\\s@]+@v\\\\d+$' as const\n\nexport const isArtifactKey = (input: unknown): input is ArtifactKey =>\n typeof input === 'string' && /^@[^\\s/]+\\/[^\\s@]+@v\\d+$/.test(input)\n\ntype EnvelopeBase = {\n readonly artifactKey: ArtifactKey\n readonly truncated?: boolean\n readonly budgetBytes?: number\n readonly actualBytes?: number\n readonly digest?: string\n readonly notes?: JsonValue\n}\n\nexport type ArtifactEnvelope =\n | (EnvelopeBase & {\n readonly ok: true\n readonly value: JsonValue\n readonly error?: never\n })\n | (EnvelopeBase & {\n readonly ok: false\n readonly error: SerializableErrorSummary\n readonly value?: never\n })\n\nexport type TrialRunArtifacts = Readonly<Record<ArtifactKey, ArtifactEnvelope>>\n","import { fnv1a32, stableStringify } from '../../digest.js'\nimport type { JsonValue } from '../jsonValue.js'\n\nexport interface JsonValueDigest {\n readonly stableJson: string\n readonly bytes: number\n readonly digest: string\n}\n\nconst utf8ByteLengthString = (text: string): number => {\n if (typeof TextEncoder !== 'undefined') {\n return new TextEncoder().encode(text).length\n }\n return text.length\n}\n\nexport const digestJsonValue = (value: JsonValue): JsonValueDigest => {\n const stableJson = stableStringify(value)\n const bytes = utf8ByteLengthString(stableJson)\n return {\n stableJson,\n bytes,\n digest: `artifact:031:${fnv1a32(stableJson)}`,\n }\n}\n","import type { SerializableErrorSummary } from '../../runtime/core/errorSummary.js'\nimport { toSerializableErrorSummary } from '../../runtime/core/errorSummary.js'\nimport { isJsonValue, type JsonValue } from '../jsonValue.js'\nimport type { ArtifactEnvelope, ArtifactKey, TrialRunArtifacts } from './model.js'\nimport { isArtifactKey } from './model.js'\nimport type { TrialRunArtifactExporter, TrialRunArtifactInspectionContext } from './exporter.js'\nimport { digestJsonValue } from './digest.js'\n\nexport interface TrialRunArtifactsBudgets {\n /**\n * Per-artifact maximum serialized bytes (UTF-8).\n * Default: 50KB.\n */\n readonly maxBytes?: number\n}\n\nexport interface CollectTrialRunArtifactsOptions {\n readonly exporters: ReadonlyArray<TrialRunArtifactExporter>\n readonly ctx: TrialRunArtifactInspectionContext\n readonly budgets?: TrialRunArtifactsBudgets\n}\n\nconst toErrorSummaryWithCode = (cause: unknown, code: string, hint?: string): SerializableErrorSummary => {\n const base = toSerializableErrorSummary(cause).errorSummary\n return {\n name: base.name,\n message: base.message,\n code,\n hint: hint ?? base.hint,\n }\n}\n\nconst defaultArtifactBudgetBytes = 50 * 1024\n\nconst budgetOf = (budgets: TrialRunArtifactsBudgets | undefined): number =>\n typeof budgets?.maxBytes === 'number' && Number.isFinite(budgets.maxBytes) && budgets.maxBytes > 0\n ? budgets.maxBytes\n : defaultArtifactBudgetBytes\n\ntype Collected = {\n readonly artifactKey: ArtifactKey\n readonly envelope: ArtifactEnvelope\n}\n\nconst makeConflictEnvelope = (artifactKey: ArtifactKey, exporterIds: ReadonlyArray<string>): Collected => {\n const ids = Array.from(new Set(exporterIds.map((s) => String(s)).filter((s) => s.length > 0))).sort((a, b) =>\n a.localeCompare(b),\n )\n return {\n artifactKey,\n envelope: {\n artifactKey,\n ok: false,\n error: {\n name: 'ArtifactKeyConflictError',\n message: `[Logix] TrialRun artifact key conflict: ${artifactKey}`,\n code: 'ArtifactKeyConflict',\n hint: ids.length > 0 ? `conflictingExporters=${ids.join(',')}` : undefined,\n },\n },\n }\n}\n\nconst truncateJsonValue = (\n value: JsonValue,\n maxBytes: number,\n): { readonly value: JsonValue; readonly actualBytes: number; readonly digest: string } => {\n const analyzed = digestJsonValue(value)\n const json = analyzed.stableJson\n const bytes = analyzed.bytes\n if (bytes <= maxBytes) {\n return { value, actualBytes: bytes, digest: analyzed.digest }\n }\n\n const previewChars = Math.min(json.length, Math.max(0, Math.min(256, maxBytes)))\n const preview = json.slice(0, previewChars)\n return {\n value: {\n _tag: 'oversized',\n bytes,\n preview,\n },\n actualBytes: bytes,\n digest: analyzed.digest,\n }\n}\n\nexport const collectTrialRunArtifacts = (options: CollectTrialRunArtifactsOptions): TrialRunArtifacts | undefined => {\n const exportersSorted = Array.from(options.exporters).sort((a, b) => {\n const ka = String(a?.artifactKey ?? '')\n const kb = String(b?.artifactKey ?? '')\n if (ka < kb) return -1\n if (ka > kb) return 1\n const ia = String(a?.exporterId ?? '')\n const ib = String(b?.exporterId ?? '')\n return ia.localeCompare(ib)\n })\n\n const conflicts = new Map<ArtifactKey, Array<string>>()\n for (const ex of exportersSorted) {\n const key = ex?.artifactKey\n const id = String(ex?.exporterId ?? '')\n if (!isArtifactKey(key)) {\n continue\n }\n const current = conflicts.get(key)\n if (current) current.push(id)\n else conflicts.set(key, [id])\n }\n\n const conflictKeys = new Set<ArtifactKey>()\n for (const [k, ids] of conflicts) {\n const unique = Array.from(new Set(ids))\n if (unique.length > 1) {\n conflictKeys.add(k)\n }\n }\n\n const maxBytes = budgetOf(options.budgets)\n const collected: Array<Collected> = []\n\n for (const exporter of exportersSorted) {\n const artifactKey = exporter?.artifactKey\n if (!isArtifactKey(artifactKey)) {\n continue\n }\n if (conflictKeys.has(artifactKey)) {\n continue\n }\n\n try {\n const value = exporter.export(options.ctx)\n if (value === undefined) continue\n if (!isJsonValue(value)) {\n collected.push({\n artifactKey,\n envelope: {\n artifactKey,\n ok: false,\n error: toErrorSummaryWithCode(\n new Error(`[Logix] Artifact exporter returned non-JsonValue: ${exporter.exporterId}`),\n 'ArtifactNonSerializable',\n `artifactKey=${artifactKey} exporterId=${exporter.exporterId}`,\n ),\n },\n })\n continue\n }\n\n const truncated = truncateJsonValue(value, maxBytes)\n const envelope: ArtifactEnvelope = {\n artifactKey,\n ok: true,\n value: truncated.value,\n digest: truncated.digest,\n ...(truncated.actualBytes > maxBytes\n ? {\n truncated: true,\n budgetBytes: maxBytes,\n actualBytes: truncated.actualBytes,\n }\n : {\n budgetBytes: maxBytes,\n actualBytes: truncated.actualBytes,\n }),\n }\n\n collected.push({ artifactKey, envelope })\n } catch (e) {\n collected.push({\n artifactKey,\n envelope: {\n artifactKey,\n ok: false,\n error: toErrorSummaryWithCode(\n e,\n 'ArtifactExportFailed',\n `artifactKey=${artifactKey} exporterId=${exporter.exporterId}`,\n ),\n },\n })\n }\n }\n\n for (const conflictKey of Array.from(conflictKeys).sort((a, b) => a.localeCompare(b))) {\n collected.push(makeConflictEnvelope(conflictKey, conflicts.get(conflictKey) ?? []))\n }\n\n if (collected.length === 0) return undefined\n\n collected.sort((a, b) => a.artifactKey.localeCompare(b.artifactKey))\n\n return Object.fromEntries(collected.map((c) => [c.artifactKey, c.envelope])) satisfies TrialRunArtifacts\n}\n","import { Effect, Exit, Layer, Scope } from 'effect'\nimport type { EvidencePackage, EvidencePackageSource } from './evidence.js'\nimport { makeEvidenceCollector, evidenceCollectorLayer } from './evidenceCollector.js'\nimport { makeRunSession, runSessionLayer, type RunSession, type RunId } from './runSession.js'\nimport {\n appendSinks,\n diagnosticsLevel,\n type DiagnosticsLevel,\n type Sink as DebugSink,\n} from '../runtime/core/DebugSink.js'\nimport * as RuntimeKernel from '../runtime/core/RuntimeKernel.js'\nimport type { ConvergeStaticIrCollector } from '../runtime/core/ConvergeStaticIrCollector.js'\nimport { appendConvergeStaticIrCollectors } from '../runtime/core/ConvergeStaticIrCollector.js'\nexport * from './trialRunModule.js'\n\nexport interface TrialRunOptions {\n readonly runId?: RunId\n readonly source?: EvidencePackageSource\n readonly startedAt?: number\n readonly diagnosticsLevel?: DiagnosticsLevel\n readonly maxEvents?: number\n readonly layer?: Layer.Layer<any, any, any>\n readonly runtimeServicesInstanceOverrides?: RuntimeKernel.RuntimeServicesOverrides\n}\n\nexport interface TrialRunResult<A, E> {\n readonly session: RunSession\n readonly exit: Exit.Exit<A, E>\n readonly evidence: EvidencePackage\n}\n\nconst defaultHost = (): string => {\n if (typeof window !== 'undefined' && typeof document !== 'undefined') return 'browser'\n return 'node'\n}\n\nexport const trialRun = <A, E, R>(\n program: Effect.Effect<A, E, R>,\n options?: TrialRunOptions,\n): Effect.Effect<TrialRunResult<A, E>, never, R> =>\n Effect.gen(function* () {\n const session = makeRunSession({\n runId: options?.runId,\n source: options?.source ?? { host: defaultHost(), label: 'trial-run' },\n startedAt: options?.startedAt,\n })\n\n const collector = makeEvidenceCollector(session)\n\n const convergeCollector: ConvergeStaticIrCollector = {\n register: (ir) => {\n collector.registerConvergeStaticIr(ir)\n },\n }\n\n const sinksLayer = appendSinks([collector.debugSink as unknown as DebugSink])\n const diagnosticsLayer = diagnosticsLevel(options?.diagnosticsLevel ?? 'light')\n const convergeLayer = appendConvergeStaticIrCollectors([convergeCollector])\n const collectorLayer = evidenceCollectorLayer(collector)\n const sessionLayer = runSessionLayer(session)\n\n const overridesLayer =\n options?.runtimeServicesInstanceOverrides != null\n ? (Layer.succeed(\n RuntimeKernel.RuntimeServicesInstanceOverridesTag,\n options.runtimeServicesInstanceOverrides,\n ) as Layer.Layer<any, never, never>)\n : (Layer.empty as Layer.Layer<any, never, never>)\n\n const trialLayer = Layer.mergeAll(\n options?.layer ?? (Layer.empty as unknown as Layer.Layer<any, any, any>),\n sessionLayer,\n collectorLayer,\n overridesLayer,\n diagnosticsLayer,\n sinksLayer,\n convergeLayer,\n ) as Layer.Layer<any, never, any>\n\n const scope = yield* Scope.make()\n\n const exit = yield* Effect.exit(program).pipe(Effect.provideService(Scope.Scope, scope), Effect.provide(trialLayer))\n\n yield* Scope.close(scope, exit)\n\n const evidence = collector.exportEvidencePackage({\n maxEvents: options?.maxEvents,\n })\n\n return { session, exit, evidence } satisfies TrialRunResult<A, E>\n })\n"],"mappings":"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","names":["exportStaticIr","isRecord","isModuleImpl","resolveModuleId","next","exportStaticIr","Cause","Effect","Layer","layer","Effect","Layer","layer","Layer","Effect","Layer","make","Layer","isRecord","utf8ByteLength","Cause","toErrorSummaryWithCode","Effect","layer","Layer","make","exportStaticIr","Effect","Layer","defaultHost","Effect","Layer"]}
@@ -0,0 +1,79 @@
1
+ import {
2
+ isJsonValue
3
+ } from "./chunk-JWOYLO27.js";
4
+
5
+ // src/internal/observability/evidence.ts
6
+ var OBSERVABILITY_PROTOCOL_VERSION = "v1";
7
+ var isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
8
+ var asNonEmptyString = (value) => typeof value === "string" && value.length > 0 ? value : void 0;
9
+ var asFiniteNumber = (value) => typeof value === "number" && Number.isFinite(value) ? value : void 0;
10
+ var asPositiveInt = (value) => {
11
+ if (typeof value !== "number" || !Number.isFinite(value)) return void 0;
12
+ const n = Math.floor(value);
13
+ return n >= 1 ? n : void 0;
14
+ };
15
+ var exportEvidencePackage = (options) => {
16
+ const protocolVersion = options.protocolVersion ?? OBSERVABILITY_PROTOCOL_VERSION;
17
+ return {
18
+ protocolVersion,
19
+ runId: options.runId,
20
+ createdAt: options.createdAt ?? Date.now(),
21
+ source: options.source,
22
+ events: options.events.slice().sort((a, b) => a.seq - b.seq),
23
+ summary: options.summary
24
+ };
25
+ };
26
+ var importEvidencePackage = (input) => {
27
+ const fallback = {
28
+ protocolVersion: OBSERVABILITY_PROTOCOL_VERSION,
29
+ runId: "unknown",
30
+ createdAt: Date.now(),
31
+ source: { host: "unknown" },
32
+ events: []
33
+ };
34
+ if (!isRecord(input)) return fallback;
35
+ const protocolVersion = asNonEmptyString(input.protocolVersion) ?? fallback.protocolVersion;
36
+ const runId = asNonEmptyString(input.runId) ?? fallback.runId;
37
+ const createdAt = asFiniteNumber(input.createdAt) ?? fallback.createdAt;
38
+ const sourceRaw = input.source;
39
+ const source = isRecord(sourceRaw) ? {
40
+ host: asNonEmptyString(sourceRaw.host) ?? "unknown",
41
+ label: typeof sourceRaw.label === "string" ? sourceRaw.label : void 0
42
+ } : fallback.source;
43
+ const eventsRaw = Array.isArray(input.events) ? input.events : [];
44
+ const events = [];
45
+ for (const e of eventsRaw) {
46
+ if (!isRecord(e)) continue;
47
+ const seq = asPositiveInt(e.seq);
48
+ const timestamp = asFiniteNumber(e.timestamp);
49
+ const type = asNonEmptyString(e.type);
50
+ const payloadRaw = e.payload;
51
+ if (!seq || timestamp === void 0 || !type || !isJsonValue(payloadRaw)) {
52
+ continue;
53
+ }
54
+ events.push({
55
+ protocolVersion: asNonEmptyString(e.protocolVersion) ?? protocolVersion,
56
+ runId: asNonEmptyString(e.runId) ?? runId,
57
+ seq,
58
+ timestamp,
59
+ type,
60
+ payload: payloadRaw
61
+ });
62
+ }
63
+ const summary = isJsonValue(input.summary) ? input.summary : void 0;
64
+ return {
65
+ protocolVersion,
66
+ runId,
67
+ createdAt,
68
+ source,
69
+ events: events.sort((a, b) => a.seq - b.seq),
70
+ summary
71
+ };
72
+ };
73
+
74
+ export {
75
+ OBSERVABILITY_PROTOCOL_VERSION,
76
+ exportEvidencePackage,
77
+ importEvidencePackage
78
+ };
79
+ //# sourceMappingURL=chunk-M7IYCTJV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/internal/observability/evidence.ts"],"sourcesContent":["import { isJsonValue, type JsonValue } from './jsonValue.js'\n\nexport const OBSERVABILITY_PROTOCOL_VERSION = 'v1'\n\nexport interface ObservationEnvelope {\n readonly protocolVersion: string\n readonly runId: string\n readonly seq: number\n readonly timestamp: number\n readonly type: string\n readonly payload: JsonValue\n}\n\nexport interface EvidencePackageSource {\n readonly host: string\n readonly label?: string\n}\n\nexport interface EvidencePackage {\n readonly protocolVersion: string\n readonly runId: string\n readonly createdAt: number\n readonly source: EvidencePackageSource\n readonly events: ReadonlyArray<ObservationEnvelope>\n readonly summary?: JsonValue\n}\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value)\n\nconst asNonEmptyString = (value: unknown): string | undefined =>\n typeof value === 'string' && value.length > 0 ? value : undefined\n\nconst asFiniteNumber = (value: unknown): number | undefined =>\n typeof value === 'number' && Number.isFinite(value) ? value : undefined\n\nconst asPositiveInt = (value: unknown): number | undefined => {\n if (typeof value !== 'number' || !Number.isFinite(value)) return undefined\n const n = Math.floor(value)\n return n >= 1 ? n : undefined\n}\n\nexport const exportEvidencePackage = (options: {\n readonly runId: string\n readonly source: EvidencePackageSource\n readonly events: ReadonlyArray<ObservationEnvelope>\n readonly createdAt?: number\n readonly protocolVersion?: string\n readonly summary?: JsonValue\n}): EvidencePackage => {\n const protocolVersion = options.protocolVersion ?? OBSERVABILITY_PROTOCOL_VERSION\n return {\n protocolVersion,\n runId: options.runId,\n createdAt: options.createdAt ?? Date.now(),\n source: options.source,\n events: options.events.slice().sort((a, b) => a.seq - b.seq),\n summary: options.summary,\n }\n}\n\nexport const importEvidencePackage = (input: unknown): EvidencePackage => {\n const fallback: EvidencePackage = {\n protocolVersion: OBSERVABILITY_PROTOCOL_VERSION,\n runId: 'unknown',\n createdAt: Date.now(),\n source: { host: 'unknown' },\n events: [],\n }\n\n if (!isRecord(input)) return fallback\n\n const protocolVersion = asNonEmptyString(input.protocolVersion) ?? fallback.protocolVersion\n const runId = asNonEmptyString(input.runId) ?? fallback.runId\n const createdAt = asFiniteNumber(input.createdAt) ?? fallback.createdAt\n\n const sourceRaw = input.source\n const source: EvidencePackageSource = isRecord(sourceRaw)\n ? {\n host: asNonEmptyString(sourceRaw.host) ?? 'unknown',\n label: typeof sourceRaw.label === 'string' ? sourceRaw.label : undefined,\n }\n : fallback.source\n\n const eventsRaw = Array.isArray(input.events) ? input.events : []\n const events: ObservationEnvelope[] = []\n\n for (const e of eventsRaw) {\n if (!isRecord(e)) continue\n\n const seq = asPositiveInt(e.seq)\n const timestamp = asFiniteNumber(e.timestamp)\n const type = asNonEmptyString(e.type)\n const payloadRaw = e.payload\n\n if (!seq || timestamp === undefined || !type || !isJsonValue(payloadRaw)) {\n continue\n }\n\n events.push({\n protocolVersion: asNonEmptyString(e.protocolVersion) ?? protocolVersion,\n runId: asNonEmptyString(e.runId) ?? runId,\n seq,\n timestamp,\n type,\n payload: payloadRaw,\n })\n }\n\n const summary = isJsonValue(input.summary) ? input.summary : undefined\n\n return {\n protocolVersion,\n runId,\n createdAt,\n source,\n events: events.sort((a, b) => a.seq - b.seq),\n summary,\n }\n}\n"],"mappings":";;;;;AAEO,IAAM,iCAAiC;AAyB9C,IAAM,WAAW,CAAC,UAChB,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAErE,IAAM,mBAAmB,CAAC,UACxB,OAAO,UAAU,YAAY,MAAM,SAAS,IAAI,QAAQ;AAE1D,IAAM,iBAAiB,CAAC,UACtB,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK,IAAI,QAAQ;AAEhE,IAAM,gBAAgB,CAAC,UAAuC;AAC5D,MAAI,OAAO,UAAU,YAAY,CAAC,OAAO,SAAS,KAAK,EAAG,QAAO;AACjE,QAAM,IAAI,KAAK,MAAM,KAAK;AAC1B,SAAO,KAAK,IAAI,IAAI;AACtB;AAEO,IAAM,wBAAwB,CAAC,YAOf;AACrB,QAAM,kBAAkB,QAAQ,mBAAmB;AACnD,SAAO;AAAA,IACL;AAAA,IACA,OAAO,QAAQ;AAAA,IACf,WAAW,QAAQ,aAAa,KAAK,IAAI;AAAA,IACzC,QAAQ,QAAQ;AAAA,IAChB,QAAQ,QAAQ,OAAO,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG;AAAA,IAC3D,SAAS,QAAQ;AAAA,EACnB;AACF;AAEO,IAAM,wBAAwB,CAAC,UAAoC;AACxE,QAAM,WAA4B;AAAA,IAChC,iBAAiB;AAAA,IACjB,OAAO;AAAA,IACP,WAAW,KAAK,IAAI;AAAA,IACpB,QAAQ,EAAE,MAAM,UAAU;AAAA,IAC1B,QAAQ,CAAC;AAAA,EACX;AAEA,MAAI,CAAC,SAAS,KAAK,EAAG,QAAO;AAE7B,QAAM,kBAAkB,iBAAiB,MAAM,eAAe,KAAK,SAAS;AAC5E,QAAM,QAAQ,iBAAiB,MAAM,KAAK,KAAK,SAAS;AACxD,QAAM,YAAY,eAAe,MAAM,SAAS,KAAK,SAAS;AAE9D,QAAM,YAAY,MAAM;AACxB,QAAM,SAAgC,SAAS,SAAS,IACpD;AAAA,IACE,MAAM,iBAAiB,UAAU,IAAI,KAAK;AAAA,IAC1C,OAAO,OAAO,UAAU,UAAU,WAAW,UAAU,QAAQ;AAAA,EACjE,IACA,SAAS;AAEb,QAAM,YAAY,MAAM,QAAQ,MAAM,MAAM,IAAI,MAAM,SAAS,CAAC;AAChE,QAAM,SAAgC,CAAC;AAEvC,aAAW,KAAK,WAAW;AACzB,QAAI,CAAC,SAAS,CAAC,EAAG;AAElB,UAAM,MAAM,cAAc,EAAE,GAAG;AAC/B,UAAM,YAAY,eAAe,EAAE,SAAS;AAC5C,UAAM,OAAO,iBAAiB,EAAE,IAAI;AACpC,UAAM,aAAa,EAAE;AAErB,QAAI,CAAC,OAAO,cAAc,UAAa,CAAC,QAAQ,CAAC,YAAY,UAAU,GAAG;AACxE;AAAA,IACF;AAEA,WAAO,KAAK;AAAA,MACV,iBAAiB,iBAAiB,EAAE,eAAe,KAAK;AAAA,MACxD,OAAO,iBAAiB,EAAE,KAAK,KAAK;AAAA,MACpC;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AAEA,QAAM,UAAU,YAAY,MAAM,OAAO,IAAI,MAAM,UAAU;AAE7D,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ,OAAO,KAAK,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG;AAAA,IAC3C;AAAA,EACF;AACF;","names":[]}