@makaio/framework 1.0.0-dev-1788955549564 → 1.0.0-dev-1788966380232

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 (515) hide show
  1. package/dist/.makaio-build.json +2 -2
  2. package/dist/{2020-Bl3Yx3In.mjs → 2020-CpDjcHDh.mjs} +1 -1
  3. package/dist/{account-identity-B0NsOILM.mjs → account-identity-D00LLclm.mjs} +1 -1
  4. package/dist/{adapter-DYE_oWjj.mjs → adapter-D92pfm_b.mjs} +1 -1
  5. package/dist/{adapter-auth-runtime-BnPqQChk.mjs → adapter-auth-runtime-46Y9WKcB.mjs} +1 -1
  6. package/dist/adapter-subsystem/index.d.mts +1 -1
  7. package/dist/adapter-subsystem/index.mjs +1 -1
  8. package/dist/adapters/claude/index.d.mts +2 -2
  9. package/dist/adapters/claude/testing.mjs +1 -1
  10. package/dist/adapters/config/index.d.mts +2 -2
  11. package/dist/adapters/config/index.mjs +1 -1
  12. package/dist/adapters/index.d.mts +3 -3
  13. package/dist/adapters/index.mjs +6 -6
  14. package/dist/adapters/node.d.mts +1 -1
  15. package/dist/adapters/node.mjs +2 -2
  16. package/dist/adapters/stream-session/index.d.mts +1 -1
  17. package/dist/adapters/stream-session/index.mjs +1 -1
  18. package/dist/artifact-_pN73_7c.mjs +1 -0
  19. package/dist/{attempt-record-codec-6jpayBMY.mjs → attempt-record-codec-D2Gb_epJ.mjs} +1 -1
  20. package/dist/{auth-CeH3w2fi.mjs → auth-CB4an9bh.mjs} +1 -1
  21. package/dist/authority-state-bootstrap-DgoHPc9J.mjs +1 -0
  22. package/dist/{automation-trigger-CZfH94Fr.mjs → automation-trigger-xNDX0Am_.mjs} +1 -1
  23. package/dist/bootstrap-start-client-rW55mDI-.mjs +1 -0
  24. package/dist/bus/index.mjs +1 -1
  25. package/dist/{caller-owned-adapter-stub-B-Sq7ZvF.mjs → caller-owned-adapter-stub-oM1G1KvC.mjs} +1 -1
  26. package/dist/{canonical-model-oFNty7hj.mjs → canonical-model-D7Cg0l2R.mjs} +1 -1
  27. package/dist/{capabilities-BhJ3wzI8.mjs → capabilities-D2ggcMem.mjs} +1 -1
  28. package/dist/{capability-service-23Ot2J9A.d.mts → capability-service-Cpkonrc0.d.mts} +1 -1
  29. package/dist/{client-DJMzCHRm.mjs → client-CpUVfDxa.mjs} +1 -1
  30. package/dist/clients/index.d.mts +2 -2
  31. package/dist/clients/index.mjs +1 -1
  32. package/dist/clients/managed-install.d.mts +1 -1
  33. package/dist/clients/managed-install.mjs +1 -1
  34. package/dist/code-execution/worker-entry.d.mts +1 -1
  35. package/dist/code-execution/worker-entry.mjs +1 -1
  36. package/dist/{code-execution-B9wr0b972.mjs → code-execution-ByLSAlEg2.mjs} +1 -1
  37. package/dist/{code-execution-BMmUATcc.mjs → code-execution-CMqsHnGg.mjs} +1 -1
  38. package/dist/{code-execution-DRCzkGzO.mjs → code-execution-xn9-x3VO.mjs} +1 -1
  39. package/dist/common-CylczUIW.mjs +1 -0
  40. package/dist/{compression-nZhMDRTA.mjs → compression-Civ-rf-O.mjs} +1 -1
  41. package/dist/{config-namespace-MjFuIPyL.mjs → config-namespace-CQnsvr77.mjs} +1 -1
  42. package/dist/contracts/adapter/index.d.mts +2 -2
  43. package/dist/contracts/adapter/index.mjs +1 -1
  44. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  45. package/dist/contracts/artifact/index.d.mts +3 -3
  46. package/dist/contracts/artifact/index.mjs +1 -1
  47. package/dist/contracts/auth/index.d.mts +2 -2
  48. package/dist/contracts/auth/index.mjs +1 -1
  49. package/dist/contracts/automation-trigger/index.d.mts +3 -3
  50. package/dist/contracts/automation-trigger/index.mjs +1 -1
  51. package/dist/contracts/canonical-model/index.d.mts +1 -1
  52. package/dist/contracts/canonical-model/index.mjs +1 -1
  53. package/dist/contracts/capabilities/index.d.mts +1 -1
  54. package/dist/contracts/capabilities/index.mjs +1 -1
  55. package/dist/contracts/client/index.d.mts +2 -2
  56. package/dist/contracts/client/index.mjs +1 -1
  57. package/dist/contracts/code-execution/index.d.mts +1 -1
  58. package/dist/contracts/code-execution/index.mjs +1 -1
  59. package/dist/contracts/common/index.d.mts +2 -2
  60. package/dist/contracts/common/index.mjs +1 -1
  61. package/dist/contracts/config/index.d.mts +1 -1
  62. package/dist/contracts/config/index.mjs +1 -1
  63. package/dist/contracts/extension/index.d.mts +5 -5
  64. package/dist/contracts/extension/index.mjs +1 -1
  65. package/dist/contracts/facet/index.d.mts +1 -1
  66. package/dist/contracts/facet/index.mjs +1 -1
  67. package/dist/contracts/harness/index.d.mts +1 -1
  68. package/dist/contracts/harness/index.mjs +1 -1
  69. package/dist/contracts/host/index.d.mts +1 -1
  70. package/dist/contracts/host/index.mjs +1 -1
  71. package/dist/contracts/index.d.mts +73 -73
  72. package/dist/contracts/index.mjs +1 -1
  73. package/dist/contracts/materialization/index.d.mts +2 -2
  74. package/dist/contracts/materialization/index.mjs +1 -1
  75. package/dist/contracts/model-registry/index.d.mts +1 -1
  76. package/dist/contracts/model-registry/index.mjs +1 -1
  77. package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
  78. package/dist/contracts/native-session-supervisor/index.mjs +1 -1
  79. package/dist/contracts/platform/index.d.mts +1 -1
  80. package/dist/contracts/platform/index.mjs +1 -1
  81. package/dist/contracts/provider/index.d.mts +2 -2
  82. package/dist/contracts/provider/index.mjs +1 -1
  83. package/dist/contracts/reaction/index.d.mts +1 -1
  84. package/dist/contracts/reaction/index.mjs +1 -1
  85. package/dist/contracts/session/index.d.mts +2 -2
  86. package/dist/contracts/session/index.mjs +1 -1
  87. package/dist/contracts/shared/index.d.mts +2 -2
  88. package/dist/contracts/shared/index.mjs +1 -1
  89. package/dist/contracts/skill/index.d.mts +1 -1
  90. package/dist/contracts/skill/index.mjs +1 -1
  91. package/dist/contracts/telemetry/index.d.mts +1 -1
  92. package/dist/contracts/telemetry/index.mjs +1 -1
  93. package/dist/contracts/timeout/index.d.mts +1 -1
  94. package/dist/contracts/timeout/index.mjs +1 -1
  95. package/dist/contracts/toast/index.mjs +1 -1
  96. package/dist/contracts/variant/index.d.mts +1 -1
  97. package/dist/contracts/variant/index.mjs +1 -1
  98. package/dist/contracts/worker/index.d.mts +2 -2
  99. package/dist/contracts/worker/index.mjs +1 -1
  100. package/dist/contracts/workflow/index.d.mts +2 -2
  101. package/dist/contracts/workflow/index.mjs +1 -1
  102. package/dist/{contribution-B4t0OXKs.d.mts → contribution-BfEEQ8YZ.d.mts} +2 -2
  103. package/dist/{definition-Bs5hzhsT.d.mts → definition-6d5JBi55.d.mts} +1 -1
  104. package/dist/{definition-YGj42UeO.mjs → definition-Dqw0YJdi.mjs} +1 -1
  105. package/dist/{detached-extension-handle-CgJiXaqv.mjs → detached-extension-handle-BJnk3WEh.mjs} +1 -1
  106. package/dist/{dist-CfANkKSb.mjs → dist-DeI9zYMP.mjs} +1 -1
  107. package/dist/evidence/git-file/index.d.mts +54 -0
  108. package/dist/evidence/git-file/index.mjs +4 -0
  109. package/dist/{execution-attempt-owner-recovery-CdH04iwP.mjs → execution-attempt-owner-recovery-D4APLAvt.mjs} +1 -1
  110. package/dist/{execution-attempt-repository-CJVlPFMM.d.mts → execution-attempt-repository--RVils5-.d.mts} +273 -189
  111. package/dist/execution-attempt-repository-CWbgCTwA.mjs +1 -0
  112. package/dist/{execution-target-B9jZgDQz.mjs → execution-target-_oVNW6Zm.mjs} +1 -1
  113. package/dist/{extension-B51JzHJu.mjs → extension-CAi7bbyv.mjs} +1 -1
  114. package/dist/{extension-C1CwxkCN.mjs → extension-CrghVa93.mjs} +1 -1
  115. package/dist/{filesystem-service-yB8KhUGz.mjs → filesystem-service-hdz3oYti.mjs} +1 -1
  116. package/dist/{framework-packages-25GUGzJ-.mjs → framework-packages-BOPhhtK7.mjs} +1 -1
  117. package/dist/git/index.mjs +1 -1
  118. package/dist/{globby-z2SR0jRo.mjs → globby-Begk3aIP.mjs} +1 -1
  119. package/dist/{handlers-CBbFzDHc.mjs → handlers-YPTyZDhF.mjs} +1 -1
  120. package/dist/{harness-GNtHsoh4.mjs → harness-Ds1I4smU.mjs} +1 -1
  121. package/dist/{hook-responses-chgDiS8D.d.mts → hook-responses-CpEfxEmG.d.mts} +1 -1
  122. package/dist/hooks/index.d.mts +1 -1
  123. package/dist/hooks/index.mjs +1 -1
  124. package/dist/{index-BtPZcp4M2.d.mts → index-09eal6WI2.d.mts} +11 -11
  125. package/dist/{index-GNRWZONO.d.mts → index-6kg8YFYt.d.mts} +1 -1
  126. package/dist/{index-B6aoVzdA.d.mts → index-B3G-Hzwn.d.mts} +1 -1
  127. package/dist/{index-SDXlgq07.d.mts → index-B7wjmaev.d.mts} +24 -14
  128. package/dist/{index-DzeUtJtE.d.mts → index-BKwYE1Qk.d.mts} +5 -5
  129. package/dist/{index-CKjFFP6W2.d.mts → index-BM-FPWjs2.d.mts} +1 -1
  130. package/dist/{index-Bak5iKWv2.d.mts → index-BT5qcsEf2.d.mts} +24 -15
  131. package/dist/{index-BjELPYLF2.d.mts → index-BfzuauBt2.d.mts} +1 -1
  132. package/dist/{index-D2sbGoGS.d.mts → index-Bj2JCo9V.d.mts} +2 -2
  133. package/dist/{index-OXuby-ee.d.mts → index-BkQlL0Pl.d.mts} +13 -13
  134. package/dist/{index-CuPq_ap8.d.mts → index-BlHq_Ksb.d.mts} +2 -2
  135. package/dist/{index-D3RZEEE3.d.mts → index-Bn6sN1op.d.mts} +2 -2
  136. package/dist/{index-ConotXyG.d.mts → index-Bnm0QvJ4.d.mts} +15 -15
  137. package/dist/{index-Bxs-oIo4.d.mts → index-BpsurXEW.d.mts} +1 -1
  138. package/dist/{index-C9J8wBLV.d.mts → index-BqR2xDu6.d.mts} +655 -111
  139. package/dist/{index-DX_2kGSg.d.mts → index-Bxq_zO2E.d.mts} +4 -4
  140. package/dist/{index-CcgI6r0K.d.mts → index-C742b1FV.d.mts} +2 -2
  141. package/dist/{index-B6Kq1BtL.d.mts → index-C8oBOTl_.d.mts} +1 -1
  142. package/dist/{index-CuLDybz3.d.mts → index-CDhbUjUH.d.mts} +2 -2
  143. package/dist/{index-CDeN0mdC.d.mts → index-CWeWBh-_.d.mts} +1 -1
  144. package/dist/{index-SIP-fI28.d.mts → index-D4XNkbM4.d.mts} +1 -1
  145. package/dist/{index-C6eJrtTA.d.mts → index-D7IZQNhD.d.mts} +2 -2
  146. package/dist/{index-CU_HMaeC.d.mts → index-DCfYa3cF.d.mts} +39 -1
  147. package/dist/{index-VbqrC9qf.d.mts → index-DO633_D-.d.mts} +40 -40
  148. package/dist/{index-CVx7li6B2.d.mts → index-DU9Y9tes2.d.mts} +12 -12
  149. package/dist/{index-99Gz8ezO.d.mts → index-DY_0TRvM.d.mts} +3 -3
  150. package/dist/{index-DfJNJYPV.d.mts → index-DzlGAEws.d.mts} +4 -4
  151. package/dist/{index-DOkenapA.d.mts → index-LjLUr3Dm.d.mts} +10 -10
  152. package/dist/{index-CwJaE0fT.d.mts → index-MtDz_goH.d.mts} +125 -77
  153. package/dist/{index-CyB6POkH.d.mts → index-nJvYTAbD.d.mts} +1 -1
  154. package/dist/{index-BrelUXBT.d.mts → index-ud9i9pue.d.mts} +16 -16
  155. package/dist/{index-OUtnmQ8t2.d.mts → index-v9TbeVee2.d.mts} +5 -5
  156. package/dist/kernel/cli/index.d.mts +2 -2
  157. package/dist/kernel/cli/index.mjs +1 -1
  158. package/dist/kernel/cli/register.d.mts +1 -1
  159. package/dist/kernel/cli/register.mjs +1 -1
  160. package/dist/kernel/cli/schemas.mjs +1 -1
  161. package/dist/kernel/extension/index.d.mts +1 -1
  162. package/dist/kernel/extension/index.mjs +1 -1
  163. package/dist/kernel/index.d.mts +5 -5
  164. package/dist/kernel/index.mjs +1 -1
  165. package/dist/kernel/namespace/index.d.mts +1 -1
  166. package/dist/kernel/namespace/index.mjs +1 -1
  167. package/dist/kernel/observability/index.d.mts +1 -1
  168. package/dist/kernel/observability/index.mjs +1 -1
  169. package/dist/kernel/providers/index.d.mts +1 -1
  170. package/dist/kernel/providers/index.mjs +1 -1
  171. package/dist/kernel/window/index.d.mts +1 -1
  172. package/dist/kernel/window/index.mjs +1 -1
  173. package/dist/{lib-0MqNtDuH.mjs → lib-BmXBuE-w.mjs} +1 -1
  174. package/dist/{lib-dlyJT26K.mjs → lib-R-c_q77C.mjs} +1 -1
  175. package/dist/{load-extensions-DM1PgW4a.d.mts → load-extensions-Bu10B5B1.d.mts} +1 -1
  176. package/dist/{load-extensions-BHTj3d_P.mjs → load-extensions-s4YmICgn.mjs} +1 -1
  177. package/dist/{materialization-BQuh_gaE.mjs → materialization-BwC7pVg2.mjs} +1 -1
  178. package/dist/mcp-http-server/index.d.mts +1 -1
  179. package/dist/mcp-http-server/index.mjs +1 -1
  180. package/dist/model-Cn1IFEP8.mjs +1 -0
  181. package/dist/{namespace-c5XPzbf3.d.mts → namespace-BYsKOw-g.d.mts} +2 -2
  182. package/dist/{namespace-ZAIFBrIy.mjs → namespace-CnRcpgJ8.mjs} +1 -1
  183. package/dist/namespace-DFc1nkal.mjs +1 -0
  184. package/dist/{namespace-Cb0XKb4v.d.mts → namespace-KTRWfIPy.d.mts} +2 -2
  185. package/dist/{namespace-DiTFR4Zt.d.mts → namespace-wuGMWlyz.d.mts} +2 -2
  186. package/dist/{native-session-supervisor-BlGzmZrH.mjs → native-session-supervisor-B0rziwHI.mjs} +1 -1
  187. package/dist/node/bus-server/index.d.mts +1 -1
  188. package/dist/node/bus-server/index.mjs +1 -1
  189. package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
  190. package/dist/node/bus-server/server-lifecycle.mjs +1 -1
  191. package/dist/{orchestrator-shared-5vhs4wvU.mjs → orchestrator-shared-CmS8iU9_.mjs} +1 -1
  192. package/dist/{orchestrator-shared-BRNZ6it3.d.mts → orchestrator-shared-Cwc6JKkV.d.mts} +1 -1
  193. package/dist/{ownership-memory-handler-BCu1EjFO.mjs → ownership-memory-handler-DMirNILL.mjs} +1 -1
  194. package/dist/package-B-xpYKe8.mjs +7 -0
  195. package/dist/{package-x2wRhcUt.d.mts → package-Bl0mcGb8.d.mts} +13 -3
  196. package/dist/{package-BiZ6ehWk.mjs → package-Co36_pRw.mjs} +1 -1
  197. package/dist/{package-BUSXHPOT.mjs → package-D2zvQO7X.mjs} +1 -1
  198. package/dist/package.json +1 -1
  199. package/dist/{packages-Dhgmy_LJ.mjs → packages-COqPg5TI.mjs} +1 -1
  200. package/dist/{packages-BSVxszLf.d.mts → packages-DTz_1dCa.d.mts} +1 -1
  201. package/dist/{profile-DBDvy9uc.mjs → profile-C9RV7ao-.mjs} +1 -1
  202. package/dist/{provider-context-CSb0qX1c.mjs → provider-context-BPITm0cn.mjs} +1 -1
  203. package/dist/{provider-context-CTOrOW54.mjs → provider-context-CyGvwXPz.mjs} +1 -1
  204. package/dist/providers/index.d.mts +1 -1
  205. package/dist/{reaction-6e4v007b.mjs → reaction-aQJGWUWl.mjs} +1 -1
  206. package/dist/repo-context-Dy6eE9cg.mjs +1 -0
  207. package/dist/{resolved-ONt3rOMh.mjs → resolved-M6PyrgFr.mjs} +1 -1
  208. package/dist/rules/index.d.mts +1 -1
  209. package/dist/rules/index.mjs +1 -1
  210. package/dist/rules/schemas.d.mts +1 -1
  211. package/dist/runtime-bun/index.mjs +1 -1
  212. package/dist/runtime-node/code-execution/index.d.mts +2 -2
  213. package/dist/runtime-node/code-execution/index.mjs +1 -1
  214. package/dist/runtime-node/extension-discovery.d.mts +1 -1
  215. package/dist/runtime-node/extension-validation.d.mts +1 -1
  216. package/dist/runtime-node/extension-validation.mjs +1 -1
  217. package/dist/runtime-node/index.d.mts +6 -6
  218. package/dist/runtime-node/index.mjs +4 -4
  219. package/dist/runtime-node/makaio-config.d.mts +1 -1
  220. package/dist/runtime-node/makaio-config.mjs +1 -1
  221. package/dist/runtime-node/workflow-worker/index.d.mts +1 -1
  222. package/dist/runtime-node/workflow-worker/index.mjs +1 -1
  223. package/dist/runtime-node/workflow-worker/worker-entry.mjs +1 -1
  224. package/dist/{schema-B8jinlbH.mjs → schema-DrHrto2J.mjs} +1 -1
  225. package/dist/{schemas-BFwNBMIj.d.mts → schemas-BYyT43gX.d.mts} +4 -4
  226. package/dist/{schemas-BIU9Org_.mjs → schemas-CQKfd2Xd.mjs} +1 -1
  227. package/dist/{schemas-Di_kpQ0C.d.mts → schemas-CvUe_yff.d.mts} +13 -4
  228. package/dist/{schemas-BZabEyEV.d.mts → schemas-D2HmGmCt.d.mts} +1 -1
  229. package/dist/schemas-DRho446W.mjs +1 -0
  230. package/dist/{schemas-I9dZtAkj.d.mts → schemas-DwqibWUL.d.mts} +2 -2
  231. package/dist/{schemas-abY5VbS4.mjs → schemas-DyZNwquY.mjs} +1 -1
  232. package/dist/{selection-7SkHsmWs.mjs → selection-BDs7K53w.mjs} +1 -1
  233. package/dist/{server-lifecycle-hNz8U-QJ.mjs → server-lifecycle-C5Vl58sN.mjs} +1 -1
  234. package/dist/services/adapter-runtime/index.d.mts +3 -3
  235. package/dist/services/adapter-runtime/index.mjs +1 -1
  236. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  237. package/dist/services/adapter-runtime/schemas.d.mts +1 -1
  238. package/dist/services/adapter-subsystem/index.d.mts +3 -3
  239. package/dist/services/adapter-subsystem/index.mjs +1 -1
  240. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  241. package/dist/services/adapter-subsystem/namespace.mjs +1 -1
  242. package/dist/services/agent-runtime/index.d.mts +2 -2
  243. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  244. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  245. package/dist/services/automation-trigger/index.d.mts +1 -1
  246. package/dist/services/automation-trigger/index.mjs +1 -1
  247. package/dist/services/capability/index.d.mts +2 -2
  248. package/dist/services/capability/index.mjs +1 -1
  249. package/dist/services/code-execution/index.d.mts +1 -1
  250. package/dist/services/code-execution/index.mjs +1 -1
  251. package/dist/services/codebase/index.d.mts +2 -2
  252. package/dist/services/codebase/namespace.d.mts +1 -1
  253. package/dist/services/codebase/schemas.d.mts +1 -1
  254. package/dist/services/compression/index.d.mts +2 -2
  255. package/dist/services/compression/namespace.d.mts +1 -1
  256. package/dist/services/compression/schemas.d.mts +1 -1
  257. package/dist/services/context-rules/index.d.mts +4 -4
  258. package/dist/services/context-rules/index.mjs +1 -1
  259. package/dist/services/execution-target/index.d.mts +3 -3
  260. package/dist/services/execution-target/index.mjs +1 -1
  261. package/dist/services/execution-target/namespace.d.mts +1 -1
  262. package/dist/services/execution-target/namespace.mjs +1 -1
  263. package/dist/services/execution-target/schemas.d.mts +1 -1
  264. package/dist/services/execution-target/schemas.mjs +1 -1
  265. package/dist/services/filesystem/index.d.mts +1 -1
  266. package/dist/services/filesystem/index.mjs +1 -1
  267. package/dist/services/filesystem/namespace.d.mts +6 -6
  268. package/dist/services/filesystem/schemas.d.mts +3 -3
  269. package/dist/services/git/namespace.d.mts +2 -2
  270. package/dist/services/git/namespace.mjs +1 -1
  271. package/dist/services/git/schemas.d.mts +1 -1
  272. package/dist/services/git/schemas.mjs +1 -1
  273. package/dist/services/harness/index.d.mts +4 -4
  274. package/dist/services/harness/index.mjs +1 -1
  275. package/dist/services/index.d.mts +49 -49
  276. package/dist/services/index.mjs +1 -1
  277. package/dist/services/log-import/browser.d.mts +2 -2
  278. package/dist/services/log-import/index.d.mts +3 -3
  279. package/dist/services/log-import/index.mjs +2 -2
  280. package/dist/services/log-import/log-import.d.mts +1 -1
  281. package/dist/services/log-import/log-import.mjs +1 -1
  282. package/dist/services/log-import/namespace.mjs +1 -1
  283. package/dist/services/log-import/schemas.mjs +1 -1
  284. package/dist/services/materialization/index.d.mts +1 -1
  285. package/dist/services/materialization/index.mjs +1 -1
  286. package/dist/services/model-registry/index.d.mts +1 -1
  287. package/dist/services/model-registry/index.mjs +1 -1
  288. package/dist/services/preferences/index.d.mts +2 -2
  289. package/dist/services/preferences/schemas.d.mts +1 -1
  290. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  291. package/dist/services/provider-context/index.d.mts +1 -1
  292. package/dist/services/provider-context/index.mjs +1 -1
  293. package/dist/services/provider-runtime/index.mjs +1 -1
  294. package/dist/services/session/handlers/index.d.mts +1 -1
  295. package/dist/services/session/handlers/index.mjs +1 -1
  296. package/dist/services/session/index.d.mts +9 -9
  297. package/dist/services/session/index.mjs +1 -1
  298. package/dist/services/session/messages/namespace.d.mts +1 -1
  299. package/dist/services/session/messages/namespace.mjs +1 -1
  300. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  301. package/dist/services/session/orchestrator-testing/index.mjs +1 -1
  302. package/dist/services/session/session-events/namespace.d.mts +1 -1
  303. package/dist/services/session/session-events/namespace.mjs +1 -1
  304. package/dist/services/session/storage/namespace.d.mts +1 -1
  305. package/dist/services/session/storage/schema.d.mts +1 -1
  306. package/dist/services/session/testing/index.mjs +2 -2
  307. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  308. package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
  309. package/dist/services/session/turns/namespace.d.mts +1 -1
  310. package/dist/services/session/turns/namespace.mjs +1 -1
  311. package/dist/services/session-editor/index.d.mts +1 -1
  312. package/dist/services/session-editor/index.mjs +1 -1
  313. package/dist/services/settings/index.d.mts +3 -3
  314. package/dist/services/settings/index.mjs +1 -1
  315. package/dist/services/settings/namespace.d.mts +4 -4
  316. package/dist/services/settings/namespace.mjs +1 -1
  317. package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
  318. package/dist/services/settings/storage/clients-namespace.mjs +1 -1
  319. package/dist/services/settings/storage/extension-configs/namespace.d.mts +3 -3
  320. package/dist/services/settings/storage/index.d.mts +3 -3
  321. package/dist/services/settings/storage/index.mjs +1 -1
  322. package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
  323. package/dist/services/settings/storage/providers-namespace.mjs +1 -1
  324. package/dist/services/subagent/index.d.mts +1 -1
  325. package/dist/services/subagent/index.mjs +1 -1
  326. package/dist/services/subagent-template/index.d.mts +2 -2
  327. package/dist/services/subagent-template/namespace.d.mts +1 -1
  328. package/dist/services/subagent-template/schemas.d.mts +1 -1
  329. package/dist/services/tool-approval/index.d.mts +1 -1
  330. package/dist/services/tool-approval/index.mjs +1 -1
  331. package/dist/services/tools/index.d.mts +1 -1
  332. package/dist/services/tools/index.mjs +1 -1
  333. package/dist/services/tray-menu/index.d.mts +3 -3
  334. package/dist/services/tray-menu/index.mjs +1 -1
  335. package/dist/services/tray-menu/namespace.d.mts +1 -1
  336. package/dist/services/tray-menu/schemas.d.mts +1 -1
  337. package/dist/services/turn/index.d.mts +1 -1
  338. package/dist/services/turn/namespace.d.mts +1 -1
  339. package/dist/services/workflow-transitions/index.d.mts +1 -1
  340. package/dist/services/workflow-transitions/index.mjs +1 -1
  341. package/dist/{session-A-h_Dwcs.mjs → session-9C42TPQq.mjs} +1 -1
  342. package/dist/{session-BDFNAcuY.mjs → session-Cn8z1hxD.mjs} +6 -6
  343. package/dist/{session-lineage-BzlpfLgC.d.mts → session-lineage-CEyJWg_J.d.mts} +1 -1
  344. package/dist/{shared-BZf2zoxL.mjs → shared-DqvfJVYk.mjs} +1 -1
  345. package/dist/{skill-1gU2q1KT.mjs → skill-BmRp8GhW.mjs} +1 -1
  346. package/dist/{src-Dlpw-Gh5.mjs → src-CmLn6zYj.mjs} +1 -1
  347. package/dist/storage/drizzle/client.d.mts +1 -1
  348. package/dist/storage/drizzle/client.mjs +1 -1
  349. package/dist/storage/drizzle/index.d.mts +2 -2
  350. package/dist/storage/drizzle/index.mjs +1 -1
  351. package/dist/storage/handlers/drizzle/index.d.mts +1 -1
  352. package/dist/storage/handlers/drizzle/index.mjs +1 -1
  353. package/dist/storage/handlers/index.d.mts +1 -1
  354. package/dist/storage/handlers/index.mjs +1 -1
  355. package/dist/testing/index.d.mts +1 -1
  356. package/dist/{tool-approval-service-rpV94znP.mjs → tool-approval-service-DchkAdAr.mjs} +1 -1
  357. package/dist/tools/index.d.mts +1 -1
  358. package/dist/{tools-oQPsY7v2.mjs → tools-r50UBPJ9.mjs} +1 -1
  359. package/dist/{transition-BeWq5nKg.d.mts → transition-CgsrmsfE.d.mts} +2 -2
  360. package/dist/{types-FNVbwd7z2.d.mts → types-Bnc-pdB12.d.mts} +1 -1
  361. package/dist/{types-D4N56a4O.d.mts → types-Dswhi1L9.d.mts} +1 -1
  362. package/dist/{types-CIEJ91wm.d.mts → types-ZvPhKp3j.d.mts} +8 -8
  363. package/dist/ui-kernel/index.d.mts +2 -2
  364. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  365. package/dist/{version-3xWJDCeF.mjs → version-sDSWOMn_.mjs} +1 -1
  366. package/dist/{view-builder-BwGugMWz.d.mts → view-builder-D54kvyf7.d.mts} +10 -10
  367. package/dist/{visibility-C5sLzqyS.mjs → visibility-syKffo3e.mjs} +1 -1
  368. package/dist/{worker-qgJToDTN.mjs → worker-DRQGyWAS.mjs} +1 -1
  369. package/dist/{worker-Csadr_du.mjs → worker-DzbPk2YI.mjs} +1 -1
  370. package/dist/{workflow-Cb2Pj1h3.mjs → workflow-D-yrAZW8.mjs} +1 -1
  371. package/dist/workflow-engine/execution-attempt-repository.d.mts +2 -2
  372. package/dist/workflow-engine/execution-attempt-repository.mjs +1 -1
  373. package/dist/workflow-engine/index.d.mts +62 -62
  374. package/dist/workflow-engine/index.mjs +1 -1
  375. package/dist/workflow-engine/package.d.mts +1 -1
  376. package/dist/workflow-engine/package.mjs +1 -1
  377. package/dist/workflow-engine/provider-operation.d.mts +1 -1
  378. package/dist/workflow-engine/testing/conformance.d.mts +1 -1
  379. package/dist/workflow-engine/testing/conformance.mjs +2 -2
  380. package/dist/workflow-engine/testing/index.d.mts +3 -1
  381. package/dist/workflow-engine/testing/index.mjs +1 -1
  382. package/dist/workflow-engine/testing/sqlite.d.mts +1 -1
  383. package/dist/workflow-engine/testing/sqlite.mjs +66 -61
  384. package/dist/workflow-engine/workflow-orchestrator.d.mts +1 -1
  385. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  386. package/dist/{workflow-transitions-BI7PbrXv.mjs → workflow-transitions-D5RvMSnf.mjs} +1 -1
  387. package/dist/workflow-worker-CrnDwpkP.mjs +2 -0
  388. package/package.json +5 -1
  389. package/dist/artifact-nArLAotB.mjs +0 -1
  390. package/dist/authority-state-bootstrap-DnwkMieA.mjs +0 -1
  391. package/dist/bootstrap-start-client-Bdv-_2Q9.mjs +0 -1
  392. package/dist/execution-attempt-repository-DXyh1hgz.mjs +0 -1
  393. package/dist/model-B6t_-_sp.mjs +0 -1
  394. package/dist/namespace-D4zmxaC4.mjs +0 -1
  395. package/dist/package-DKfzsJVl.mjs +0 -7
  396. package/dist/schemas-FiFC_DI6.mjs +0 -1
  397. package/dist/workflow-worker-Db7EBUgh.mjs +0 -2
  398. /package/dist/{adapter-binding-BU7STlfd.d.mts → adapter-binding-DhANVB-O.d.mts} +0 -0
  399. /package/dist/{ajv-Dtk5hCZS.mjs → ajv-IlnfOGAj.mjs} +0 -0
  400. /package/dist/{attach-error-B-vXQFLQ.mjs → attach-error-DOlUtquX.mjs} +0 -0
  401. /package/dist/{attempt-fixtures-C-jQE_7B.mjs → attempt-fixtures-CMx-2OlG.mjs} +0 -0
  402. /package/dist/{base-orchestrator-DXiejwQ3.d.mts → base-orchestrator-tAgnJAKu.d.mts} +0 -0
  403. /package/dist/{capability-Bw4tsDQu.mjs → capability-BQHyskJB.mjs} +0 -0
  404. /package/dist/{client-BwFqO0cG.d.mts → client-At2zn3yg.d.mts} +0 -0
  405. /package/dist/{client-binary-version-verifier-DHBAzg3-.mjs → client-binary-version-verifier-DLziUQhw.mjs} +0 -0
  406. /package/dist/{client-binary-version-verifier-DySlUy9m.d.mts → client-binary-version-verifier-EOj8xXqm.d.mts} +0 -0
  407. /package/dist/{clients-namespace-Dh0SNZcQ.d.mts → clients-namespace-CVRwXq8f.d.mts} +0 -0
  408. /package/dist/{config-namespace-CZqPIAWt.d.mts → config-namespace-D7GbrasR.d.mts} +0 -0
  409. /package/dist/{create-static-mount-GSdckRQx.mjs → create-static-mount-BIH26VH8.mjs} +0 -0
  410. /package/dist/{cross-spawn-Bx_VEdpd.mjs → cross-spawn-Bi05YtQQ.mjs} +0 -0
  411. /package/dist/{cursor-storage-Co4itf44.mjs → cursor-storage-88xtgVAd.mjs} +0 -0
  412. /package/dist/{definition-D3HjoK-4.d.mts → definition-VK1rERAp.d.mts} +0 -0
  413. /package/dist/{definitions-CYZTuMdL.mjs → definitions-2T95Q-y6.mjs} +0 -0
  414. /package/dist/{descriptor-to-package-CZLujoiv.mjs → descriptor-to-package-GVZk9ZGT.mjs} +0 -0
  415. /package/dist/{drizzle-me-95ICP.mjs → drizzle-BrlzkYoe.mjs} +0 -0
  416. /package/dist/{esm-DILYVXmW.mjs → esm-B3t30-13.mjs} +0 -0
  417. /package/dist/{event-DmQPb5MB.mjs → event-DFI0F1Ws.mjs} +0 -0
  418. /package/dist/{extension-context-Cx8CetW3.d.mts → extension-context-Cpf_n5FH.d.mts} +0 -0
  419. /package/dist/{extension-discovery-CZkaPQBo.d.mts → extension-discovery-B0ZL076T.d.mts} +0 -0
  420. /package/dist/{extension-namespace-twXNwE4R.mjs → extension-namespace-CWfV3IiR.mjs} +0 -0
  421. /package/dist/{extension-package-provenance-BzvG6rDO.mjs → extension-package-provenance-Dr7JXjLS.mjs} +0 -0
  422. /package/dist/{facet-Cly0VpTI.mjs → facet-6tnSbjXc.mjs} +0 -0
  423. /package/dist/{filesystem-service-UYYyRL2y.d.mts → filesystem-service-BWoNtujU.d.mts} +0 -0
  424. /package/dist/{handler-BYQPNm8O.mjs → handler-CFT7_osu.mjs} +0 -0
  425. /package/dist/{host-CiHn8Yog.mjs → host-D7v3YlDG.mjs} +0 -0
  426. /package/dist/{identity-BULrIHmo.mjs → identity-CxMRRAXx.mjs} +0 -0
  427. /package/dist/{index-B5kqAW7h.d.mts → index-8a41yDOl.d.mts} +0 -0
  428. /package/dist/{index-Dmwnhnio2.d.mts → index-BBkJsViX2.d.mts} +0 -0
  429. /package/dist/{index-DNp9DP6W.d.mts → index-BL1F1xYB.d.mts} +0 -0
  430. /package/dist/{index-BCKhrNLC.d.mts → index-BTHdi23O.d.mts} +0 -0
  431. /package/dist/{index-BU8uFswE.d.mts → index-BcPO9w0j.d.mts} +0 -0
  432. /package/dist/{index-DcG3r0VL.d.mts → index-Bk0Xjk-B.d.mts} +0 -0
  433. /package/dist/{index-DGlSbpgS2.d.mts → index-Bn1JTbn_2.d.mts} +0 -0
  434. /package/dist/{index-CYUhTE552.d.mts → index-C75h1xHF2.d.mts} +0 -0
  435. /package/dist/{index-DB4Xggtt.d.mts → index-CDA33y5A.d.mts} +0 -0
  436. /package/dist/{index-B9-1l1oh.d.mts → index-CSJOBx3H.d.mts} +0 -0
  437. /package/dist/{index-BAL1FiaJ.d.mts → index-CVh7ZP2I.d.mts} +0 -0
  438. /package/dist/{index-6wmqw_ng.d.mts → index-Ccaqmi0J.d.mts} +0 -0
  439. /package/dist/{index-zvoiT54b.d.mts → index-CjazerMN.d.mts} +0 -0
  440. /package/dist/{index-C_R6ifn9.d.mts → index-DXSVC0bM.d.mts} +0 -0
  441. /package/dist/{index-D3_QOfke.d.mts → index-Du-eXjEN.d.mts} +0 -0
  442. /package/dist/{index-DbYjMWlj.d.mts → index-DwKPj8jD.d.mts} +0 -0
  443. /package/dist/{index-LsZNB_gb.d.mts → index-DwY1Mt9a.d.mts} +0 -0
  444. /package/dist/{index-C-6g2xzN.d.mts → index-DzHc6hsJ.d.mts} +0 -0
  445. /package/dist/{index-DQbcfjIb2.d.mts → index-krTCFThl2.d.mts} +0 -0
  446. /package/dist/{json-value-DyMQrwGz.d.mts → json-value-BKUDMT7k.d.mts} +0 -0
  447. /package/dist/{jsonl-transport-Dfv3RLzi.mjs → jsonl-transport-3yp3clGp.mjs} +0 -0
  448. /package/dist/{lib-BdfAJKDj.mjs → lib-DF6sgNx_.mjs} +0 -0
  449. /package/dist/{model-registry-B7ThN_s3.mjs → model-registry-BTjKBCCw.mjs} +0 -0
  450. /package/dist/{model-registry-DlUErRRt.mjs → model-registry-CAqJYbXg.mjs} +0 -0
  451. /package/dist/{modes-CyG4sgs_.mjs → modes-Bo9Vv5c9.mjs} +0 -0
  452. /package/dist/{namespace-ChjzkJIl.mjs → namespace-0TfAY2J7.mjs} +0 -0
  453. /package/dist/{namespace-JqvomFSV.d.mts → namespace-B1sjokHd.d.mts} +0 -0
  454. /package/dist/{namespace-De25c2ds.d.mts → namespace-B3MnuAqp.d.mts} +0 -0
  455. /package/dist/{namespace-BFlSY040.mjs → namespace-BCSJz417.mjs} +0 -0
  456. /package/dist/{namespace-DAbT1F_n.d.mts → namespace-BHb_9sh4.d.mts} +0 -0
  457. /package/dist/{namespace-BQ7eiQwr.d.mts → namespace-BNNFD-ul.d.mts} +0 -0
  458. /package/dist/{namespace-69c5HXtL.d.mts → namespace-BgaVgd00.d.mts} +0 -0
  459. /package/dist/{namespace-CBf5xG_A.d.mts → namespace-BiEV44Mk.d.mts} +0 -0
  460. /package/dist/{namespace-B8kUQpwo.mjs → namespace-CDoyzyV4.mjs} +0 -0
  461. /package/dist/{namespace-B7fMkHmy.d.mts → namespace-CjmNxtr1.d.mts} +0 -0
  462. /package/dist/{namespace-BoOLmi67.d.mts → namespace-Cy62a3YP.d.mts} +0 -0
  463. /package/dist/{namespace-CIF_1OWi.d.mts → namespace-Czr38fiF.d.mts} +0 -0
  464. /package/dist/{namespace-C9d0aoYT.mjs → namespace-DORNUF0_.mjs} +0 -0
  465. /package/dist/{namespace-QXCaZK3I.mjs → namespace-DX3QsYpv.mjs} +0 -0
  466. /package/dist/{namespace-ZN49zpqw.mjs → namespace-Dyxpur8_.mjs} +0 -0
  467. /package/dist/{namespace-CUXZS_Ia.d.mts → namespace-btfJrUf6.d.mts} +0 -0
  468. /package/dist/{namespace-DAW4OY3-.d.mts → namespace-fEBskugJ.d.mts} +0 -0
  469. /package/dist/{out-Cn6vBxlH.mjs → out-og8659Ny.mjs} +0 -0
  470. /package/dist/{ownership-recovery-guard-Ce9-C5Sa.mjs → ownership-recovery-guard-CYA5CsiO.mjs} +0 -0
  471. /package/dist/{package-D4eLGGv4.mjs → package-BecmlOXC.mjs} +0 -0
  472. /package/dist/{platform-C-fDsuEl.mjs → platform-BdLHWgVc.mjs} +0 -0
  473. /package/dist/{providers-DVlsnJaY.mjs → providers-DGTA-lki.mjs} +0 -0
  474. /package/dist/{providers-namespace-DcPil5uz.d.mts → providers-namespace-Bming6U8.d.mts} +0 -0
  475. /package/dist/{quick-lru-CVryNCTx.mjs → quick-lru-bVGGo5bq.mjs} +0 -0
  476. /package/dist/{registry-Q9gCZtxz.mjs → registry-Cu3eD3UY.mjs} +0 -0
  477. /package/dist/{runtime-inputs-CMjGjK7W.d.mts → runtime-inputs-DeOea-ab.d.mts} +0 -0
  478. /package/dist/{schema-DIgKUfuF.d.mts → schema-DFCBjTB7.d.mts} +0 -0
  479. /package/dist/{schema-introspection-CSnLZJpC.mjs → schema-introspection-BsWP1vGC.mjs} +0 -0
  480. /package/dist/{schema-DIHGEQx3.mjs → schema-mXXJcaQT.mjs} +0 -0
  481. /package/dist/{schemas-BKnJj2i-.mjs → schemas-7fHmNUQc.mjs} +0 -0
  482. /package/dist/{schemas-BFgsIiSb.mjs → schemas-BE-gfjGI.mjs} +0 -0
  483. /package/dist/{schemas-CM3Ejp-n.d.mts → schemas-BLy33xay.d.mts} +0 -0
  484. /package/dist/{schemas-Ge_bamoP.d.mts → schemas-BkCqhK3X.d.mts} +0 -0
  485. /package/dist/{schemas-NwKrrrPF.d.mts → schemas-Cz7H2f7S.d.mts} +0 -0
  486. /package/dist/{schemas-DYeS-mtz.d.mts → schemas-DGKWi7mk.d.mts} +0 -0
  487. /package/dist/{schemas-Vv0GtBaZ.d.mts → schemas-DTBWnWjN.d.mts} +0 -0
  488. /package/dist/{schemas-COnD70WD.d.mts → schemas-DYIVJDlx.d.mts} +0 -0
  489. /package/dist/{schemas-qbaSxHDL.d.mts → schemas-DqWwz4eR.d.mts} +0 -0
  490. /package/dist/{schemas-DTyZjKQf2.d.mts → schemas-GyKYcV-Z2.d.mts} +0 -0
  491. /package/dist/{schemas-CnFVygzI.mjs → schemas-HffXbw8C.mjs} +0 -0
  492. /package/dist/{schemas-CbhvgFQs.mjs → schemas-MIYusvwn.mjs} +0 -0
  493. /package/dist/{schemas-BapfTRqp.mjs → schemas-NYUz8K9Q.mjs} +0 -0
  494. /package/dist/{semver-D_D2mA48.mjs → semver-_h8-BJ8k.mjs} +0 -0
  495. /package/dist/{server-lifecycle-BPAN-b0i.d.mts → server-lifecycle-_m_x1_TC.d.mts} +0 -0
  496. /package/dist/{shared-schemas-kUho6Kmw.mjs → shared-schemas-CaL1iEk6.mjs} +0 -0
  497. /package/dist/{src-Du_285FN.mjs → src-DdaPoQOD.mjs} +0 -0
  498. /package/dist/{storage-namespace-Dtz2G1if.mjs → storage-namespace-DBuKMBth.mjs} +0 -0
  499. /package/dist/{storage-namespace-definition-BJCbqVWz.mjs → storage-namespace-definition-4UYuij1r.mjs} +0 -0
  500. /package/dist/{storage-namespace-definition-D6soSjKE.d.mts → storage-namespace-definition-CsaZPU3n.d.mts} +0 -0
  501. /package/dist/{storage-namespace-C9oFExfb.d.mts → storage-namespace-zRXWqAfO.d.mts} +0 -0
  502. /package/dist/{supports-color-BNmyqLq0.mjs → supports-color-DG_rcVqJ.mjs} +0 -0
  503. /package/dist/{telemetry-CUkZrhW6.mjs → telemetry-BLYrkonr.mjs} +0 -0
  504. /package/dist/{timeout-DeBYTGBR.mjs → timeout-d0dzIY3V.mjs} +0 -0
  505. /package/dist/{tray-menu-service-TWrmvXSo.mjs → tray-menu-service-BGwXKJYr.mjs} +0 -0
  506. /package/dist/{types-D9GJ7FyQ.mjs → types-Bh2fQoxM.mjs} +0 -0
  507. /package/dist/{types-BOsf2SVm.d.mts → types-CccTiXH2.d.mts} +0 -0
  508. /package/dist/{types-DZvkUmHS.d.mts → types-DXGVwrQn.d.mts} +0 -0
  509. /package/dist/{types-BZnJ_4e2.d.mts → types-DjxvRcX6.d.mts} +0 -0
  510. /package/dist/{types-CWgYlxjU.d.mts → types-nor1SQLZ.d.mts} +0 -0
  511. /package/dist/{ui-config-9hlZAJOS.mjs → ui-config-CsH94fwa.mjs} +0 -0
  512. /package/dist/{variant-73kFgYBK.mjs → variant-BZ9UcJBi.mjs} +0 -0
  513. /package/dist/{window-registry-Bvjvpwhn.d.mts → window-registry-DQ7udUzI.d.mts} +0 -0
  514. /package/dist/{window-registry-CzAwaPKL.mjs → window-registry-DQkv5wM9.mjs} +0 -0
  515. /package/dist/{zod-json-schema-B1mZz7S4.mjs → zod-json-schema-DGWHUOK0.mjs} +0 -0
@@ -1 +1 @@
1
- import{z as e}from"zod";import{SerialLane as t,canonicalStringify as n,deepFreeze as r}from"@makaio/framework/utils";import{createNamespaceWildcardSubject as i,splitSubjectKey as a}from"@makaio/framework/core";import{matchesSubscription as o}from"@makaio/framework/bus";import{AutomationTriggerLocalNameSchema as s,AutomationTriggerSubjects as c,BUS_EVENT_AUTOMATION_TRIGGER_KIND as l,CRON_AUTOMATION_TRIGGER_KIND as u,CronAutomationTriggerParamsSchema as d,JsonRecordSchema as f,JsonValueSchema as p,createAutomationTriggerDescriptor as m,defineAutomationTrigger as h,dep as g,extensionToken as _,toAutomationTriggerType as v}from"@makaio/framework/contracts";import{BaseService as ee}from"@makaio/framework/service-base";var y=class extends ee{typesByOwner=new Map;typesByKind=new Map;revision=0;mutations=new t;catalog;constructor(e){super(e)}onInit(){this.registerHandler(c.list,e=>{e.setResult({triggers:[...this.list()]})})}onDestroy(){this.typesByOwner=new Map,this.typesByKind=new Map}register(e,t){return this.mutations.run(()=>this.registerWithinLane(e,t))}async registerWithinLane(e,t){let n=this.validateBatch(e,t),r=this.typesByOwner.get(e);if(n.length===0&&r===void 0)return;let i=new Map(this.typesByOwner);n.length===0?i.delete(e):i.set(e,n),this.typesByOwner=i,this.typesByKind=b(this.typesByKind,r??[],n),this.revision+=1;let a=n.length>0?`registered`:`deregistered`,o=Array.from(new Set([...(r??[]).map(({type:e})=>e.kind),...n.map(({type:e})=>e.kind)]));await this.bus.emit(c.changed,{owner:e,revision:this.revision,kinds:o,reason:a}).catch(e=>{console.error(`[AutomationTriggerRegistry] Failed to emit automation-triggers.changed:`,e)})}deregister(e){return this.mutations.run(()=>this.registerWithinLane(e,[]))}resolveRegistration(e){let t=this.typesByKind.get(e);if(t!==void 0)return{owner:t.owner,type:t.type}}list(){let e=this.typesByKind;if(this.catalog?.source===e)return this.catalog.value;let t=Object.freeze(Array.from(e.values(),({descriptor:e})=>e));return this.catalog={source:e,value:t},t}validateBatch(e,t){let n=`${e}.`,i=new Set,a=new Set(this.typesByOwner.get(e)?.map(e=>e.type.kind)),o=[];for(let c of t){let t=c.kind.startsWith(n)?c.kind.slice(n.length):void 0;if(t===void 0||!s.safeParse(t).success)throw Error(`Automation trigger kind '${c.kind}' must be namespaced by owner '${n}'`);if(i.has(c.kind))throw Error(`Duplicate automation trigger kind '${c.kind}' in batch from '${e}'`);if(this.typesByKind.has(c.kind)&&!a.has(c.kind))throw Error(`Automation trigger kind '${c.kind}' is already registered; owner '${e}' cannot claim it`);i.add(c.kind);let l={kind:c.kind,label:c.label,description:c.description,categories:[...c.categories],paramsSchema:c.paramsSchema,eventSchema:c.eventSchema,activate:c.activate},u=r(m(Object.isFrozen(c)?c:l));o.push({owner:e,type:l,descriptor:u})}return o}};function b(e,t,n){let r=new Map(e);for(let e of t)r.delete(e.type.kind);for(let e of n)r.set(e.type.kind,e);return r}function x(e){return JSON.parse(n(e))}function S(e,t){return`${e}:${n(t)}`}const C=`[AutomationTriggerBindingRuntime]`;var w=class{resolver;bindings=new Map;records=new WeakMap;lane=new t;subscriptionCounter=0;closed=!1;constructor(e){this.resolver=e}async subscribe(e,t){let n=this.prepareBinding(e);if(n===void 0)throw Error(`Automation trigger kind '${e.kind}' is not registered`);return n.subscribe(t)}prepareBinding(e){let t=this.resolver.resolveRegistration(e.kind);if(t===void 0)return;let n=T(t.type,e),r={kind:e.kind,owner:t.owner,type:t.type,params:n,bindingKey:S(e.kind,n)};return{bindingKey:r.bindingKey,workflowCompatible:m(t.type).workflowCompatible,subscribe:e=>this.subscribePrepared(r,e)}}async subscribePrepared(e,t){let{entry:n,subscriptionId:r,retired:i}=await this.lane.run(()=>this.admitWithinLane(e,t));i!==void 0&&await this.runCleanup(i);try{await n.activated}catch(e){throw await this.lane.run(async()=>{this.retireWithinLane(n)}),e}return this.lane.run(async()=>{if(this.bindings.get(n.bindingKey)!==n||!n.listeners.has(r))throw Error(`Automation trigger acquisition for '${n.bindingKey}' was retired before it completed`);return this.issueHandle({bindingKey:n.bindingKey,subscriptionId:r})})}resolveBindingKey(e){return this.prepareBinding(e)?.bindingKey}stopOwner(e){return this.retireMatching(t=>t.owner===e)}stopKind(e){return this.retireMatching(t=>t.kind===e)}destroy(){return this.close()}close(){return this.retireMatching(()=>!0,()=>{this.closed=!0})}async admitWithinLane(e,t){if(this.closed)throw Error(`Automation trigger binding runtime is closed; cannot activate '${e.kind}'`);let n=this.resolver.resolveRegistration(e.kind);if(n===void 0)throw Error(`Automation trigger kind '${e.kind}' is not registered`);if(n.owner!==e.owner||n.type!==e.type)throw Error(`Automation trigger registration for '${e.kind}' changed after binding preparation`);this.subscriptionCounter+=1;let r=`s${this.subscriptionCounter}`,i=this.bindings.get(e.bindingKey);if(i?.type===n.type)return i.listeners.set(r,t),{entry:i,subscriptionId:r};let a=i===void 0?void 0:this.retireWithinLane(i),o=Promise.withResolvers(),s={bindingKey:e.bindingKey,kind:e.kind,owner:n.owner,type:n.type,controller:new AbortController,listeners:new Map([[r,t]]),activated:o.promise};return this.bindings.set(e.bindingKey,s),s.activated.catch(()=>void 0),this.startActivation(s,n.type,e.params,o),{entry:s,subscriptionId:r,...a===void 0?{}:{retired:a}}}async startActivation(e,t,n,r){try{r.resolve(await t.activate(this.createContext(e),n))}catch(e){r.reject(e)}}async release(e){let t=await this.lane.run(()=>this.releaseWithinLane(e));t!==void 0&&await this.runCleanup(t)}async releaseWithinLane(e){let t=this.records.get(e);if(t===void 0)throw Error(`${C} subscription handle was not issued by this runtime`);let n=this.bindings.get(t.bindingKey);if(n!==void 0&&n.listeners.delete(t.subscriptionId)&&!(n.listeners.size>0))return this.retireWithinLane(n)}async retireMatching(e,t){let n=await this.lane.run(async()=>{t?.();let n=[];for(let t of Array.from(this.bindings.values())){if(!e(t))continue;let r=this.retireWithinLane(t);r!==void 0&&n.push(r)}return n});await Promise.all(n.map(e=>this.runCleanup(e)))}retireWithinLane(e){if(this.bindings.get(e.bindingKey)===e)return this.bindings.delete(e.bindingKey),e.listeners.clear(),e.controller.abort(),e}async runCleanup(e){let t;try{t=await e.activated}catch{return}try{await t()}catch(t){console.error(`${C} cleanup failed for '${e.bindingKey}':`,t)}}issueHandle(e){let t={bindingKey:e.bindingKey,detach:()=>this.release(t)};return this.records.set(t,e),t}createContext(e){return{bindingKey:e.bindingKey,signal:e.controller.signal,emit:(t,n)=>this.dispatch(e,t,n?.correlationId)}}async dispatch(e,t,n){if(this.bindings.get(e.bindingKey)!==e)return;let r;try{let n=e.type.eventSchema.parse(t);r=e.type.eventSchema===p||e.type.eventSchema===f?n:p.parse(n)}catch(t){throw console.error(`${C} rejected invalid payload from '${e.kind}':`,t),t}let i={kind:e.kind,payload:r,observedAt:Date.now(),...n===void 0?{}:{correlationId:n}},a=Array.from(e.listeners.values()),o=await Promise.allSettled(a.map(async e=>e(i)));for(let t of o)t.status===`rejected`&&console.error(`${C} listener failed for '${e.kind}':`,t.reason)}};function T(e,t){let n=e.paramsSchema.parse(t.params);return x(f.parse(n))}const E=_(`automation-trigger-registry`),D=_(`automation-trigger-runtime`),te={name:E.name,displayName:`Automation Trigger Registry`,version:`0.1.0`,critical:!0,create:e=>new y(e.bus)},O={name:D.name,displayName:`Automation Trigger Binding Runtime`,version:`0.1.0`,critical:!0,create:e=>new w({resolveRegistration:t=>e.getService(E)?.resolveRegistration(t)})};function k(e){return Date.UTC(e.y,e.m-1,e.d,e.h,e.i,e.s)}function A(e,t){return e.y===t.y&&e.m===t.m&&e.d===t.d&&e.h===t.h&&e.i===t.i&&e.s===t.s}function j(e,t){let n=new Date(Date.parse(e));if(isNaN(n))throw Error(`Invalid ISO8601 passed to timezone parser.`);let r=e.substring(9);return r.includes(`Z`)||r.includes(`+`)||r.includes(`-`)?F(n.getUTCFullYear(),n.getUTCMonth()+1,n.getUTCDate(),n.getUTCHours(),n.getUTCMinutes(),n.getUTCSeconds(),`Etc/UTC`):F(n.getFullYear(),n.getMonth()+1,n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds(),t)}function M(e,t,n){return N(j(e,t),n)}function N(e,t){let n=new Date(k(e)),r=P(n,e.tz),i=k(e)-k(r),a=new Date(n.getTime()+i),o=P(a,e.tz);if(A(o,e)){let t=new Date(a.getTime()-36e5);return A(P(t,e.tz),e)?t:a}let s=new Date(a.getTime()+k(e)-k(o));if(A(P(s,e.tz),e))return s;if(t)throw Error(`Invalid date passed to fromTZ()`);return a.getTime()>s.getTime()?a:s}function P(e,t){let n,r;try{n=new Intl.DateTimeFormat(`en-US`,{timeZone:t,year:`numeric`,month:`numeric`,day:`numeric`,hour:`numeric`,minute:`numeric`,second:`numeric`,hour12:!1}),r=n.formatToParts(e)}catch(e){let n=e instanceof Error?e.message:String(e);throw RangeError(`toTZ: Invalid timezone '${t}' or date. Please provide a valid IANA timezone (e.g., 'America/New_York', 'Europe/Stockholm'). Original error: ${n}`)}let i={year:0,month:0,day:0,hour:0,minute:0,second:0};for(let e of r)(e.type===`year`||e.type===`month`||e.type===`day`||e.type===`hour`||e.type===`minute`||e.type===`second`)&&(i[e.type]=parseInt(e.value,10));if(isNaN(i.year)||isNaN(i.month)||isNaN(i.day)||isNaN(i.hour)||isNaN(i.minute)||isNaN(i.second))throw Error(`toTZ: Failed to parse all date components from timezone '${t}'. This may indicate an invalid date or timezone configuration. Parsed components: ${JSON.stringify(i)}`);return i.hour===24&&(i.hour=0),{y:i.year,m:i.month,d:i.day,h:i.hour,i:i.minute,s:i.second,tz:t}}function F(e,t,n,r,i,a,o){return{y:e,m:t,d:n,h:r,i,s:a,tz:o}}var I=[1,2,4,8,16],L=class{pattern;timezone;mode;alternativeWeekdays;sloppyRanges;second;minute;hour;day;month;dayOfWeek;year;lastDayOfMonth;lastWeekday;nearestWeekdays;starDOM;starDOW;starYear;useAndLogic;constructor(e,t,n){this.pattern=e,this.timezone=t,this.mode=n?.mode??`auto`,this.alternativeWeekdays=n?.alternativeWeekdays??!1,this.sloppyRanges=n?.sloppyRanges??!1,this.second=Array(60).fill(0),this.minute=Array(60).fill(0),this.hour=Array(24).fill(0),this.day=Array(31).fill(0),this.month=Array(12).fill(0),this.dayOfWeek=Array(7).fill(0),this.year=Array(1e4).fill(0),this.lastDayOfMonth=!1,this.lastWeekday=!1,this.nearestWeekdays=Array(31).fill(0),this.starDOM=!1,this.starDOW=!1,this.starYear=!1,this.useAndLogic=!1,this.parse()}parse(){if(!(typeof this.pattern==`string`||this.pattern instanceof String))throw TypeError(`CronPattern: Pattern has to be of type string.`);this.pattern.indexOf(`@`)>=0&&(this.pattern=this.handleNicknames(this.pattern).trim());let e=this.pattern.match(/\S+/g)||[``],t=e.length;if(e.length<5||e.length>7)throw TypeError(`CronPattern: invalid configuration format ('`+this.pattern+`'), exactly five, six, or seven space separated parts are required.`);if(this.mode!==`auto`){let e;switch(this.mode){case`5-part`:e=5;break;case`6-part`:e=6;break;case`7-part`:e=7;break;case`5-or-6-parts`:e=[5,6];break;case`6-or-7-parts`:e=[6,7];break;default:e=0}if(!(Array.isArray(e)?e.includes(t):t===e)){let n=Array.isArray(e)?e.join(` or `):e.toString();throw TypeError(`CronPattern: mode '${this.mode}' requires exactly ${n} parts, but pattern '${this.pattern}' has ${t} parts.`)}}if(e.length===5&&e.unshift(`0`),e.length===6&&e.push(`*`),e[3].toUpperCase()===`LW`?(this.lastWeekday=!0,e[3]=``):e[3].toUpperCase().indexOf(`L`)>=0&&(e[3]=e[3].replace(/L/gi,``),this.lastDayOfMonth=!0),e[3]==`*`&&(this.starDOM=!0),e[6]==`*`&&(this.starYear=!0),e[4].length>=3&&(e[4]=this.replaceAlphaMonths(e[4])),e[5].length>=3&&(e[5]=this.alternativeWeekdays?this.replaceAlphaDaysQuartz(e[5]):this.replaceAlphaDays(e[5])),e[5].startsWith(`+`)&&(this.useAndLogic=!0,e[5]=e[5].substring(1),e[5]===``))throw TypeError(`CronPattern: Day-of-week field cannot be empty after '+' modifier.`);switch(e[5]==`*`&&(this.starDOW=!0),this.pattern.indexOf(`?`)>=0&&(e[0]=e[0].replace(/\?/g,`*`),e[1]=e[1].replace(/\?/g,`*`),e[2]=e[2].replace(/\?/g,`*`),e[3]=e[3].replace(/\?/g,`*`),e[4]=e[4].replace(/\?/g,`*`),e[5]=e[5].replace(/\?/g,`*`),e[6]&&=e[6].replace(/\?/g,`*`)),this.mode){case`5-part`:e[0]=`0`,e[6]=`*`;break;case`6-part`:e[6]=`*`;break;case`5-or-6-parts`:e[6]=`*`;break;case`6-or-7-parts`:break;case`7-part`:case`auto`:break}this.throwAtIllegalCharacters(e),this.partToArray(`second`,e[0],0,1),this.partToArray(`minute`,e[1],0,1),this.partToArray(`hour`,e[2],0,1),this.partToArray(`day`,e[3],-1,1),this.partToArray(`month`,e[4],-1,1);let n=this.alternativeWeekdays?-1:0;this.partToArray(`dayOfWeek`,e[5],n,63),this.partToArray(`year`,e[6],0,1),!this.alternativeWeekdays&&this.dayOfWeek[7]&&(this.dayOfWeek[0]=this.dayOfWeek[7])}partToArray(e,t,n,r){let i=this[e],a=e===`day`&&this.lastDayOfMonth,o=e===`day`&&this.lastWeekday;if(t===``&&!a&&!o)throw TypeError(`CronPattern: configuration entry `+e+` (`+t+`) is empty, check for trailing spaces.`);if(t===`*`)return i.fill(r);let s=t.split(`,`);if(s.length>1)for(let t=0;t<s.length;t++)this.partToArray(e,s[t],n,r);else t.indexOf(`-`)!==-1&&t.indexOf(`/`)!==-1?this.handleRangeWithStepping(t,e,n,r):t.indexOf(`-`)===-1?t.indexOf(`/`)===-1?t!==``&&this.handleNumber(t,e,n,r):this.handleStepping(t,e,n,r):this.handleRange(t,e,n,r)}throwAtIllegalCharacters(e){for(let t=0;t<e.length;t++)if((t===3?/[^/*0-9,\-WwLl]+/:t===5?/[^/*0-9,\-#Ll]+/:/[^/*0-9,\-]+/).test(e[t]))throw TypeError(`CronPattern: configuration entry `+t+` (`+e[t]+`) contains illegal characters.`)}handleNumber(e,t,n,r){let i=this.extractNth(e,t),a=e.toUpperCase().includes(`W`);if(t!==`day`&&a)throw TypeError(`CronPattern: Nearest weekday modifier (W) only allowed in day-of-month.`);a&&(t=`nearestWeekdays`);let o=parseInt(i[0],10)+n;if(isNaN(o))throw TypeError(`CronPattern: `+t+` is not a number: '`+e+`'`);this.setPart(t,o,i[1]||r)}setPart(e,t,n){if(!Object.prototype.hasOwnProperty.call(this,e))throw TypeError(`CronPattern: Invalid part specified: `+e);if(e===`dayOfWeek`){if(t===7&&(t=0),t<0||t>6)throw RangeError(`CronPattern: Invalid value for dayOfWeek: `+t);this.setNthWeekdayOfMonth(t,n);return}if(e===`second`||e===`minute`){if(t<0||t>=60)throw RangeError(`CronPattern: Invalid value for `+e+`: `+t)}else if(e===`hour`){if(t<0||t>=24)throw RangeError(`CronPattern: Invalid value for `+e+`: `+t)}else if(e===`day`||e===`nearestWeekdays`){if(t<0||t>=31)throw RangeError(`CronPattern: Invalid value for `+e+`: `+t)}else if(e===`month`){if(t<0||t>=12)throw RangeError(`CronPattern: Invalid value for `+e+`: `+t)}else if(e===`year`&&(t<1||t>=1e4))throw RangeError(`CronPattern: Invalid value for `+e+`: `+t+` (supported range: 1-9999)`);this[e][t]=n}validateNotNaN(e,t){if(isNaN(e))throw TypeError(t)}validateRange(e,t,n,r,i){if(e>t)throw TypeError(`CronPattern: From value is larger than to value: '`+i+`'`);if(n!==void 0){if(n===0)throw TypeError(`CronPattern: Syntax error, illegal stepping: 0`);if(n>this[r].length)throw TypeError(`CronPattern: Syntax error, steps cannot be greater than maximum value of part (`+this[r].length+`)`)}}handleRangeWithStepping(e,t,n,r){if(e.toUpperCase().includes(`W`))throw TypeError(`CronPattern: Syntax error, W is not allowed in ranges with stepping.`);let i=this.extractNth(e,t),a=i[0].match(/^(\d+)-(\d+)\/(\d+)$/);if(a===null)throw TypeError(`CronPattern: Syntax error, illegal range with stepping: '`+e+`'`);let[,o,s,c]=a,l=parseInt(o,10)+n,u=parseInt(s,10)+n,d=parseInt(c,10);this.validateNotNaN(l,`CronPattern: Syntax error, illegal lower range (NaN)`),this.validateNotNaN(u,`CronPattern: Syntax error, illegal upper range (NaN)`),this.validateNotNaN(d,`CronPattern: Syntax error, illegal stepping: (NaN)`),this.validateRange(l,u,d,t,e);for(let e=l;e<=u;e+=d)this.setPart(t,e,i[1]||r)}extractNth(e,t){let n=e,r;if(n.includes(`#`)){if(t!==`dayOfWeek`)throw Error(`CronPattern: nth (#) only allowed in day-of-week field`);r=n.split(`#`)[1],n=n.split(`#`)[0]}else if(n.toUpperCase().endsWith(`L`)){if(t!==`dayOfWeek`)throw Error(`CronPattern: L modifier only allowed in day-of-week field (use L alone for day-of-month)`);r=`L`,n=n.slice(0,-1)}return[n,r]}handleRange(e,t,n,r){if(e.toUpperCase().includes(`W`))throw TypeError(`CronPattern: Syntax error, W is not allowed in a range.`);let i=this.extractNth(e,t),a=i[0].split(`-`);if(a.length!==2)throw TypeError(`CronPattern: Syntax error, illegal range: '`+e+`'`);let o=parseInt(a[0],10)+n,s=parseInt(a[1],10)+n;this.validateNotNaN(o,`CronPattern: Syntax error, illegal lower range (NaN)`),this.validateNotNaN(s,`CronPattern: Syntax error, illegal upper range (NaN)`),this.validateRange(o,s,void 0,t,e);for(let e=o;e<=s;e++)this.setPart(t,e,i[1]||r)}handleStepping(e,t,n,r){if(e.toUpperCase().includes(`W`))throw TypeError(`CronPattern: Syntax error, W is not allowed in parts with stepping.`);let i=this.extractNth(e,t),a=i[0].split(`/`);if(a.length!==2)throw TypeError(`CronPattern: Syntax error, illegal stepping: '`+e+`'`);if(this.sloppyRanges)a[0]===``&&(a[0]=`*`);else{if(a[0]===``)throw TypeError(`CronPattern: Syntax error, stepping with missing prefix ('`+e+`') is not allowed. Use wildcard (*/step) or range (min-max/step) instead.`);if(a[0]!==`*`)throw TypeError(`CronPattern: Syntax error, stepping with numeric prefix ('`+e+`') is not allowed. Use wildcard (*/step) or range (min-max/step) instead.`)}let o=0;a[0]!==`*`&&(o=parseInt(a[0],10)+n);let s=parseInt(a[1],10);this.validateNotNaN(s,`CronPattern: Syntax error, illegal stepping: (NaN)`),this.validateRange(0,this[t].length-1,s,t,e);for(let e=o;e<this[t].length;e+=s)this.setPart(t,e,i[1]||r)}replaceAlphaDays(e){return e.replace(/-sun/gi,`-7`).replace(/sun/gi,`0`).replace(/mon/gi,`1`).replace(/tue/gi,`2`).replace(/wed/gi,`3`).replace(/thu/gi,`4`).replace(/fri/gi,`5`).replace(/sat/gi,`6`)}replaceAlphaDaysQuartz(e){return e.replace(/sun/gi,`1`).replace(/mon/gi,`2`).replace(/tue/gi,`3`).replace(/wed/gi,`4`).replace(/thu/gi,`5`).replace(/fri/gi,`6`).replace(/sat/gi,`7`)}replaceAlphaMonths(e){return e.replace(/jan/gi,`1`).replace(/feb/gi,`2`).replace(/mar/gi,`3`).replace(/apr/gi,`4`).replace(/may/gi,`5`).replace(/jun/gi,`6`).replace(/jul/gi,`7`).replace(/aug/gi,`8`).replace(/sep/gi,`9`).replace(/oct/gi,`10`).replace(/nov/gi,`11`).replace(/dec/gi,`12`)}handleNicknames(e){let t=e.trim().toLowerCase();if(t===`@yearly`||t===`@annually`)return`0 0 1 1 *`;if(t===`@monthly`)return`0 0 1 * *`;if(t===`@weekly`)return`0 0 * * 0`;if(t===`@daily`||t===`@midnight`)return`0 0 * * *`;if(t===`@hourly`)return`0 * * * *`;if(t===`@reboot`)throw TypeError(`CronPattern: @reboot is not supported in this environment. This is an event-based trigger that requires system startup detection.`);return e}setNthWeekdayOfMonth(e,t){if(typeof t!=`number`&&t.toUpperCase()===`L`)this.dayOfWeek[e]=this.dayOfWeek[e]|32;else if(t===63)this.dayOfWeek[e]=63;else if(t<6&&t>0)this.dayOfWeek[e]=this.dayOfWeek[e]|I[t-1];else throw TypeError(`CronPattern: nth weekday out of range, should be 1-5 or L. Value: ${t}, Type: ${typeof t}`)}},R=[31,28,31,30,31,30,31,31,30,31,30,31],z=[[`month`,`year`,0],[`day`,`month`,-1],[`hour`,`day`,0],[`minute`,`hour`,0],[`second`,`minute`,0]],B=class e{tz;ms;second;minute;hour;day;month;year;constructor(t,n){if(this.tz=n,t&&t instanceof Date)if(!isNaN(t))this.fromDate(t);else throw TypeError(`CronDate: Invalid date passed to CronDate constructor`);else if(t==null)this.fromDate(new Date);else if(t&&typeof t==`string`)this.fromString(t);else if(t instanceof e)this.fromCronDate(t);else throw TypeError(`CronDate: Invalid type (`+typeof t+`) passed to CronDate constructor`)}getLastDayOfMonth(e,t){return t===1?new Date(Date.UTC(e,t+1,0)).getUTCDate():R[t]}getLastWeekday(e,t){let n=this.getLastDayOfMonth(e,t),r=new Date(Date.UTC(e,t,n)).getUTCDay();return r===0?n-2:r===6?n-1:n}getNearestWeekday(e,t,n){let r=this.getLastDayOfMonth(e,t);if(n>r)return-1;let i=new Date(Date.UTC(e,t,n)).getUTCDay();return i===0?n===r?n-2:n+1:i===6?n===1?n+2:n-1:n}isNthWeekdayOfMonth(e,t,n,r){let i=new Date(Date.UTC(e,t,n)).getUTCDay(),a=0;for(let r=1;r<=n;r++)new Date(Date.UTC(e,t,r)).getUTCDay()===i&&a++;if(r&63&&I[a-1]&r)return!0;if(r&32){let r=this.getLastDayOfMonth(e,t);for(let a=n+1;a<=r;a++)if(new Date(Date.UTC(e,t,a)).getUTCDay()===i)return!1;return!0}return!1}fromDate(e){if(this.tz!==void 0)if(typeof this.tz==`number`)this.ms=e.getUTCMilliseconds(),this.second=e.getUTCSeconds(),this.minute=e.getUTCMinutes()+this.tz,this.hour=e.getUTCHours(),this.day=e.getUTCDate(),this.month=e.getUTCMonth(),this.year=e.getUTCFullYear(),this.apply();else try{let t=P(e,this.tz);this.ms=e.getMilliseconds(),this.second=t.s,this.minute=t.i,this.hour=t.h,this.day=t.d,this.month=t.m-1,this.year=t.y}catch(e){let t=e instanceof Error?e.message:String(e);throw TypeError(`CronDate: Failed to convert date to timezone '${this.tz}'. This may happen with invalid timezone names or dates. Original error: ${t}`)}else this.ms=e.getMilliseconds(),this.second=e.getSeconds(),this.minute=e.getMinutes(),this.hour=e.getHours(),this.day=e.getDate(),this.month=e.getMonth(),this.year=e.getFullYear()}fromCronDate(e){this.tz=e.tz,this.year=e.year,this.month=e.month,this.day=e.day,this.hour=e.hour,this.minute=e.minute,this.second=e.second,this.ms=e.ms}apply(){if(this.month>11||this.month<0||this.day>R[this.month]||this.day<1||this.hour>59||this.minute>59||this.second>59||this.hour<0||this.minute<0||this.second<0){let e=new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms));return this.ms=e.getUTCMilliseconds(),this.second=e.getUTCSeconds(),this.minute=e.getUTCMinutes(),this.hour=e.getUTCHours(),this.day=e.getUTCDate(),this.month=e.getUTCMonth(),this.year=e.getUTCFullYear(),!0}else return!1}fromString(e){if(typeof this.tz==`number`){let t=M(e);this.ms=t.getUTCMilliseconds(),this.second=t.getUTCSeconds(),this.minute=t.getUTCMinutes(),this.hour=t.getUTCHours(),this.day=t.getUTCDate(),this.month=t.getUTCMonth(),this.year=t.getUTCFullYear(),this.apply()}else return this.fromDate(M(e,this.tz))}findNext(e,t,n,r){return this._findMatch(e,t,n,r,1)}_findMatch(e,t,n,r,i){let a=this[t],o;n.lastDayOfMonth&&(o=this.getLastDayOfMonth(this.year,this.month));let s=!n.starDOW&&t==`day`?new Date(Date.UTC(this.year,this.month,1,0,0,0,0)).getUTCDay():void 0,c=this[t]+r,l=i===1?e=>e<n[t].length:e=>e>=0;for(let u=c;l(u);u+=i){let i=n[t][u];if(t===`day`&&!i){for(let e=0;e<n.nearestWeekdays.length;e++)if(n.nearestWeekdays[e]){let t=this.getNearestWeekday(this.year,this.month,e-r);if(t===-1)continue;if(t===u-r){i=1;break}}}if(t===`day`&&n.lastWeekday){let e=this.getLastWeekday(this.year,this.month);u-r===e&&(i=1)}if(t===`day`&&n.lastDayOfMonth&&u-r==o&&(i=1),t===`day`&&!n.starDOW){let t=n.dayOfWeek[(s+(u-r-1))%7];if(t&&t&63)t=+!!this.isNthWeekdayOfMonth(this.year,this.month,u-r,t);else if(t)throw Error(`CronDate: Invalid value for dayOfWeek encountered. ${t}`);n.useAndLogic?i&&=t:!e.domAndDow&&!n.starDOM?i||=t:i&&=t}if(i)return this[t]=u-r,a===this[t]?1:2}return 3}recurse(e,t,n){if(n===0&&!e.starYear){if(this.year>=0&&this.year<e.year.length&&e.year[this.year]===0){let t=-1;for(let n=this.year+1;n<e.year.length&&n<1e4;n++)if(e.year[n]===1){t=n;break}if(t===-1)return null;this.year=t,this.month=0,this.day=1,this.hour=0,this.minute=0,this.second=0,this.ms=0}if(this.year>=1e4)return null}let r=this.findNext(t,z[n][0],e,z[n][2]);if(r>1){let i=n+1;for(;i<z.length;)this[z[i][0]]=-z[i][2],i++;if(r===3){if(this[z[n][1]]++,this[z[n][0]]=-z[n][2],this.apply(),n===0&&!e.starYear){for(;this.year>=0&&this.year<e.year.length&&e.year[this.year]===0&&this.year<1e4;)this.year++;if(this.year>=1e4||this.year>=e.year.length)return null}return this.recurse(e,t,0)}else if(this.apply())return this.recurse(e,t,n-1)}return n+=1,n>=z.length?this:(e.starYear?this.year>=3e3:this.year>=1e4)?null:this.recurse(e,t,n)}increment(e,t,n){return this.second+=t.interval!==void 0&&t.interval>1&&n?t.interval:1,this.ms=0,this.apply(),this.recurse(e,t,0)}decrement(e,t){return this.second-=t.interval!==void 0&&t.interval>1?t.interval:1,this.ms=0,this.apply(),this.recurseBackward(e,t,0,0)}recurseBackward(e,t,n,r=0){if(r>1e4)return null;if(n===0&&!e.starYear){if(this.year>=0&&this.year<e.year.length&&e.year[this.year]===0){let t=-1;for(let n=this.year-1;n>=0;n--)if(e.year[n]===1){t=n;break}if(t===-1)return null;this.year=t,this.month=11,this.day=31,this.hour=23,this.minute=59,this.second=59,this.ms=0}if(this.year<0)return null}let i=this.findPrevious(t,z[n][0],e,z[n][2]);if(i>1){let a=n+1;for(;a<z.length;){let t=z[a][0],n=z[a][2],r=this.getMaxPatternValue(t,e,n);this[t]=r,a++}if(i===3){if(this[z[n][1]]--,n===0){let e=this.getLastDayOfMonth(this.year,this.month);this.day>e&&(this.day=e)}if(n===1)if(this.day<=0)this.day=1;else{let e=this.year,t=this.month;for(;t<0;)t+=12,e--;for(;t>11;)t-=12,e++;let n=t===1?new Date(Date.UTC(e,t+1,0)).getUTCDate():R[t];this.day>n&&(this.day=n)}this.apply();let i=z[n][0],a=z[n][2],o=this.getMaxPatternValue(i,e,a);if(i===`day`){let e=this.getLastDayOfMonth(this.year,this.month);this[i]=Math.min(o,e)}else this[i]=o;if(this.apply(),n===0){let t=z[1][2],n=this.getMaxPatternValue(`day`,e,t),r=this.getLastDayOfMonth(this.year,this.month),i=Math.min(n,r);i!==this.day&&(this.day=i,this.hour=this.getMaxPatternValue(`hour`,e,z[2][2]),this.minute=this.getMaxPatternValue(`minute`,e,z[3][2]),this.second=this.getMaxPatternValue(`second`,e,z[4][2]))}if(n===0&&!e.starYear){for(;this.year>=0&&this.year<e.year.length&&e.year[this.year]===0;)this.year--;if(this.year<0)return null}return this.recurseBackward(e,t,0,r+1)}else if(this.apply())return this.recurseBackward(e,t,n-1,r+1)}return n+=1,n>=z.length?this:this.year<0?null:this.recurseBackward(e,t,n,r+1)}getMaxPatternValue(e,t,n){if(e===`day`&&t.lastDayOfMonth||e===`day`&&!t.starDOW)return this.getLastDayOfMonth(this.year,this.month);for(let r=t[e].length-1;r>=0;r--)if(t[e][r])return r-n;return t[e].length-1-n}findPrevious(e,t,n,r){return this._findMatch(e,t,n,r,-1)}getDate(e){return e||this.tz===void 0?new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms):typeof this.tz==`number`?new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute-this.tz,this.second,this.ms)):N(F(this.year,this.month+1,this.day,this.hour,this.minute,this.second,this.tz),!1)}getTime(){return this.getDate(!1).getTime()}match(e,t){if(!e.starYear&&(this.year<0||this.year>=e.year.length||e.year[this.year]===0))return!1;for(let n=0;n<z.length;n++){let r=z[n][0],i=z[n][2],a=this[r];if(a+i<0||a+i>=e[r].length)return!1;let o=e[r][a+i];if(r===`day`){if(!o){for(let t=0;t<e.nearestWeekdays.length;t++)if(e.nearestWeekdays[t]){let e=this.getNearestWeekday(this.year,this.month,t-i);if(e!==-1&&e===a){o=1;break}}}if(e.lastWeekday&&a===this.getLastWeekday(this.year,this.month)&&(o=1),e.lastDayOfMonth&&a===this.getLastDayOfMonth(this.year,this.month)&&(o=1),!e.starDOW){let n=new Date(Date.UTC(this.year,this.month,1,0,0,0,0)).getUTCDay(),r=e.dayOfWeek[(n+(a-1))%7];r&&r&63&&(r=+!!this.isNthWeekdayOfMonth(this.year,this.month,a,r)),e.useAndLogic?o&&=r:!t.domAndDow&&!e.starDOM?o||=r:o&&=r}}if(!o)return!1}return!0}};function ne(e){if(e===void 0&&(e={}),delete e.name,e.legacyMode!==void 0&&e.domAndDow===void 0?e.domAndDow=!e.legacyMode:e.domAndDow===void 0&&(e.domAndDow=!1),e.legacyMode=!e.domAndDow,e.paused=e.paused===void 0?!1:e.paused,e.maxRuns=e.maxRuns===void 0?1/0:e.maxRuns,e.catch=e.catch===void 0?!1:e.catch,e.interval=e.interval===void 0?0:parseInt(e.interval.toString(),10),e.utcOffset=e.utcOffset===void 0?void 0:parseInt(e.utcOffset.toString(),10),e.dayOffset=e.dayOffset===void 0?0:parseInt(e.dayOffset.toString(),10),e.unref=e.unref===void 0?!1:e.unref,e.mode=e.mode===void 0?`auto`:e.mode,e.alternativeWeekdays=e.alternativeWeekdays===void 0?!1:e.alternativeWeekdays,e.sloppyRanges=e.sloppyRanges===void 0?!1:e.sloppyRanges,![`auto`,`5-part`,`6-part`,`7-part`,`5-or-6-parts`,`6-or-7-parts`].includes(e.mode))throw Error(`CronOptions: mode must be one of 'auto', '5-part', '6-part', '7-part', '5-or-6-parts', or '6-or-7-parts'.`);if(e.startAt&&=new B(e.startAt,e.timezone),e.stopAt&&=new B(e.stopAt,e.timezone),e.interval!==null){if(isNaN(e.interval))throw Error(`CronOptions: Supplied value for interval is not a number`);if(e.interval<0)throw Error(`CronOptions: Supplied value for interval can not be negative`)}if(e.utcOffset!==void 0){if(isNaN(e.utcOffset))throw Error(`CronOptions: Invalid value passed for utcOffset, should be number representing minutes offset from UTC.`);if(e.utcOffset<-870||e.utcOffset>870)throw Error(`CronOptions: utcOffset out of bounds.`);if(e.utcOffset!==void 0&&e.timezone)throw Error(`CronOptions: Combining 'utcOffset' with 'timezone' is not allowed.`)}if(e.unref!==!0&&e.unref!==!1)throw Error(`CronOptions: Unref should be either true, false or undefined(false).`);if(e.dayOffset!==void 0&&e.dayOffset!==0&&isNaN(e.dayOffset))throw Error(`CronOptions: Invalid value passed for dayOffset, should be a number representing days to offset.`);return e}function V(e){return Object.prototype.toString.call(e)===`[object Function]`||typeof e==`function`||e instanceof Function}function re(e){return V(e)}function H(e){typeof Deno<`u`&&typeof Deno.unrefTimer<`u`?Deno.unrefTimer(e):e&&typeof e.unref<`u`&&e.unref()}var U=30*1e3,W=[],G=class{name;options;_states;fn;getTz(){return this.options.timezone||this.options.utcOffset}applyDayOffset(e){if(this.options.dayOffset!==void 0&&this.options.dayOffset!==0){let t=this.options.dayOffset*24*60*60*1e3;return new Date(e.getTime()+t)}return e}constructor(e,t,n){let r,i;if(V(t))i=t;else if(typeof t==`object`)r=t;else if(t!==void 0)throw Error(`Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).`);if(V(n))i=n;else if(typeof n==`object`)r=n;else if(n!==void 0)throw Error(`Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).`);if(this.name=r?.name,this.options=ne(r),this._states={kill:!1,blocking:!1,previousRun:void 0,currentRun:void 0,once:void 0,currentTimeout:void 0,maxRuns:r?r.maxRuns:void 0,paused:r?r.paused:!1,pattern:new L(`* * * * *`,void 0,{mode:`auto`})},e&&(e instanceof Date||typeof e==`string`&&e.indexOf(`:`)>0)?this._states.once=new B(e,this.getTz()):this._states.pattern=new L(e,this.options.timezone,{mode:this.options.mode,alternativeWeekdays:this.options.alternativeWeekdays,sloppyRanges:this.options.sloppyRanges}),this.name){if(W.find(e=>e.name===this.name))throw Error(`Cron: Tried to initialize new named job '`+this.name+`', but name already taken.`);W.push(this)}return i!==void 0&&re(i)&&(this.fn=i,this.schedule()),this}nextRun(e){let t=this._next(e);return t?this.applyDayOffset(t.getDate(!1)):null}nextRuns(e,t){this._states.maxRuns!==void 0&&e>this._states.maxRuns&&(e=this._states.maxRuns);let n=t||this._states.currentRun||void 0;return this._enumerateRuns(e,n,`next`)}previousRuns(e,t){return this._enumerateRuns(e,t||void 0,`previous`)}_enumerateRuns(e,t,n){let r=[],i=t?new B(t,this.getTz()):null,a=n===`next`?this._next:this._previous;for(;e--;){let e=a.call(this,i);if(!e)break;let t=e.getDate(!1);r.push(this.applyDayOffset(t)),i=e}return r}match(e){if(this._states.once){let t=new B(e,this.getTz());t.ms=0;let n=new B(this._states.once,this.getTz());return n.ms=0,t.getTime()===n.getTime()}let t=new B(e,this.getTz());return t.ms=0,t.match(this._states.pattern,this.options)}getPattern(){if(!this._states.once)return this._states.pattern?this._states.pattern.pattern:void 0}getOnce(){return this._states.once?this._states.once.getDate():null}isRunning(){let e=this.nextRun(this._states.currentRun),t=!this._states.paused,n=this.fn!==void 0,r=!this._states.kill;return t&&n&&r&&e!==null}isStopped(){return this._states.kill}isBusy(){return this._states.blocking}currentRun(){return this._states.currentRun?this._states.currentRun.getDate():null}previousRun(){return this._states.previousRun?this._states.previousRun.getDate():null}msToNext(e){let t=this._next(e);return t?e instanceof B||e instanceof Date?t.getTime()-e.getTime():t.getTime()-new B(e).getTime():null}stop(){this._states.kill=!0,this._states.currentTimeout&&clearTimeout(this._states.currentTimeout);let e=W.indexOf(this);e>=0&&W.splice(e,1)}pause(){return this._states.paused=!0,!this._states.kill}resume(){return this._states.paused=!1,!this._states.kill}schedule(e){if(e&&this.fn)throw Error(`Cron: It is not allowed to schedule two functions using the same Croner instance.`);e&&(this.fn=e);let t=this.msToNext(),n=this.nextRun(this._states.currentRun);return t==null||isNaN(t)||n===null?this:(t>U&&(t=U),this._states.currentTimeout=setTimeout(()=>this._checkTrigger(n),t),this._states.currentTimeout&&this.options.unref&&H(this._states.currentTimeout),this)}async _trigger(e){this._states.blocking=!0,this._states.currentRun=new B(void 0,this.getTz());try{if(this.options.catch)try{this.fn!==void 0&&await this.fn(this,this.options.context)}catch(e){if(V(this.options.catch))try{this.options.catch(e,this)}catch{}}else this.fn!==void 0&&await this.fn(this,this.options.context)}finally{this._states.previousRun=new B(e,this.getTz()),this._states.blocking=!1}}async trigger(){await this._trigger()}runsLeft(){return this._states.maxRuns}_checkTrigger(e){let t=new Date,n=!this._states.paused&&t.getTime()>=e.getTime(),r=this._states.blocking&&this.options.protect;n&&!r?(this._states.maxRuns!==void 0&&this._states.maxRuns--,this._trigger()):n&&r&&V(this.options.protect)&&setTimeout(()=>this.options.protect(this),0),this.schedule()}_next(e){let t=!!(e||this._states.currentRun),n=!1;!e&&this.options.startAt&&this.options.interval&&([e,t]=this._calculatePreviousRun(e,t),n=!e),e=new B(e,this.getTz()),this.options.startAt&&e&&e.getTime()<this.options.startAt.getTime()&&(e=this.options.startAt);let r=this._states.once||new B(e,this.getTz());return!n&&r!==this._states.once&&(r=r.increment(this._states.pattern,this.options,t)),this._states.once&&this._states.once.getTime()<=e.getTime()||r===null||this._states.maxRuns!==void 0&&this._states.maxRuns<=0||this._states.kill||this.options.stopAt&&r.getTime()>=this.options.stopAt.getTime()?null:r}_previous(e){let t=new B(e,this.getTz());this.options.stopAt&&t.getTime()>this.options.stopAt.getTime()&&(t=this.options.stopAt);let n=new B(t,this.getTz());return this._states.once?this._states.once.getTime()<t.getTime()?this._states.once:null:(n=n.decrement(this._states.pattern,this.options),n===null||this.options.startAt&&n.getTime()<this.options.startAt.getTime()?null:n)}_calculatePreviousRun(e,t){let n=new B(void 0,this.getTz()),r=e;if(this.options.startAt.getTime()<=n.getTime()){r=this.options.startAt;let e=r.getTime()+this.options.interval*1e3;for(;e<=n.getTime();)r=new B(r,this.getTz()).increment(this._states.pattern,this.options,!0),e=r.getTime()+this.options.interval*1e3;t=!0}return r===null&&(r=void 0),[r,t]}};const K=_(`automation-cron-scheduler`);function q(e){try{new G(e.schedule,{timezone:e.timezone,paused:!0}).nextRun()}catch(t){throw Error(`Invalid cron schedule '${e.schedule}' in timezone '${e.timezone}' for binding '${e.bindingKey}'`,{cause:t})}}const J=`[BusEventAutomationTrigger]`,Y=e.object({subject:e.string().regex(/^[^.]+\.[\s\S]+$/,`Bus-event subject must be '<namespace>.<subject>' with both segments non-empty.`)});function X(e){return v(h({kind:l,label:`Bus Event`,description:`Fires when a matching event is emitted on the Makaio bus.`,categories:[`Bus`],paramsSchema:Y,eventSchema:f,activate:async(t,n)=>{let r=a(n.subject);if(r===void 0)throw Error(`Bus-event parameter schema admitted an unobservable subject: '${n.subject}'`);return e.on(i(r.namespace),e=>{if(e.isRequest||!o(e.subject,n.subject))return;let r=f.safeParse(e.payload);if(!r.success){console.warn(`${J} skipped non-object JSON payload on '${e.subject}':`,r.error);return}let{correlationId:i}=e;t.emit(r.data,i===void 0?void 0:{correlationId:i}).catch(t=>{console.error(`${J} emit failed for '${e.subject}':`,t)})},{handlerKind:`event`})}}))}function Z(e){return[X(e)]}const ie=e.object({scheduledFor:e.number().finite()});function Q(e){return v(h({kind:u,label:`Schedule`,description:`Fires on a cron schedule in a fixed timezone.`,categories:[`Schedule`],paramsSchema:d,eventSchema:ie,activate:async(t,n)=>{let r=e();if(!r)throw Error(`Automation trigger '${u}' requires the '${K.name}' service; no cron scheduler provider is registered.`);return r.schedule({bindingKey:t.bindingKey,schedule:n.schedule,timezone:n.timezone,emit:e=>t.emit(e)})}}))}const $=`makaio`,ae={name:$,displayName:`Makaio Built-in Automation Triggers`,version:`0.1.0`,dependencies:[g(K.name,void 0,!0)],critical:!0,automationTriggers:{createAutomationTriggers:e=>[...Z(e.bus),Q(()=>e.getService(K))]}};export{X as a,G as c,O as d,te as f,y as g,S as h,Z as i,D as l,x as m,ae as n,K as o,w as p,Q as r,q as s,$ as t,E as u};
1
+ import{z as e}from"zod";import{SerialLane as t,canonicalStringify as n,deepFreeze as r}from"@makaio/framework/utils";import{createNamespaceWildcardSubject as i,splitSubjectKey as a}from"@makaio/framework/core";import{AutomationTriggerLocalNameSchema as o,AutomationTriggerSubjects as s,BUS_EVENT_AUTOMATION_TRIGGER_KIND as c,CRON_AUTOMATION_TRIGGER_KIND as l,CronAutomationTriggerParamsSchema as u,JsonRecordSchema as d,JsonValueSchema as f,createAutomationTriggerDescriptor as p,defineAutomationTrigger as m,dep as h,extensionToken as g,toAutomationTriggerType as _}from"@makaio/framework/contracts";import{matchesSubscription as v}from"@makaio/framework/bus";import{BaseService as y}from"@makaio/framework/service-base";var b=class extends y{typesByOwner=new Map;typesByKind=new Map;revision=0;mutations=new t;catalog;constructor(e){super(e)}onInit(){this.registerHandler(s.list,e=>{e.setResult({triggers:[...this.list()]})})}onDestroy(){this.typesByOwner=new Map,this.typesByKind=new Map}register(e,t){return this.mutations.run(()=>this.registerWithinLane(e,t))}async registerWithinLane(e,t){let n=this.validateBatch(e,t),r=this.typesByOwner.get(e);if(n.length===0&&r===void 0)return;let i=new Map(this.typesByOwner);n.length===0?i.delete(e):i.set(e,n),this.typesByOwner=i,this.typesByKind=x(this.typesByKind,r??[],n),this.revision+=1;let a=n.length>0?`registered`:`deregistered`,o=Array.from(new Set([...(r??[]).map(({type:e})=>e.kind),...n.map(({type:e})=>e.kind)]));await this.bus.emit(s.changed,{owner:e,revision:this.revision,kinds:o,reason:a}).catch(e=>{console.error(`[AutomationTriggerRegistry] Failed to emit automation-triggers.changed:`,e)})}deregister(e){return this.mutations.run(()=>this.registerWithinLane(e,[]))}resolveRegistration(e){let t=this.typesByKind.get(e);if(t!==void 0)return{owner:t.owner,type:t.type}}list(){let e=this.typesByKind;if(this.catalog?.source===e)return this.catalog.value;let t=Object.freeze(Array.from(e.values(),({descriptor:e})=>e));return this.catalog={source:e,value:t},t}validateBatch(e,t){let n=`${e}.`,i=new Set,a=new Set(this.typesByOwner.get(e)?.map(e=>e.type.kind)),s=[];for(let c of t){let t=c.kind.startsWith(n)?c.kind.slice(n.length):void 0;if(t===void 0||!o.safeParse(t).success)throw Error(`Automation trigger kind '${c.kind}' must be namespaced by owner '${n}'`);if(i.has(c.kind))throw Error(`Duplicate automation trigger kind '${c.kind}' in batch from '${e}'`);if(this.typesByKind.has(c.kind)&&!a.has(c.kind))throw Error(`Automation trigger kind '${c.kind}' is already registered; owner '${e}' cannot claim it`);i.add(c.kind);let l={kind:c.kind,label:c.label,description:c.description,categories:[...c.categories],paramsSchema:c.paramsSchema,eventSchema:c.eventSchema,activate:c.activate},u=r(p(Object.isFrozen(c)?c:l));s.push({owner:e,type:l,descriptor:u})}return s}};function x(e,t,n){let r=new Map(e);for(let e of t)r.delete(e.type.kind);for(let e of n)r.set(e.type.kind,e);return r}function S(e){return JSON.parse(n(e))}function C(e,t){return`${e}:${n(t)}`}const w=`[AutomationTriggerBindingRuntime]`;var T=class{resolver;bindings=new Map;records=new WeakMap;lane=new t;subscriptionCounter=0;closed=!1;constructor(e){this.resolver=e}async subscribe(e,t){let n=this.prepareBinding(e);if(n===void 0)throw Error(`Automation trigger kind '${e.kind}' is not registered`);return n.subscribe(t)}prepareBinding(e){let t=this.resolver.resolveRegistration(e.kind);if(t===void 0)return;let n=ee(t.type,e),r={kind:e.kind,owner:t.owner,type:t.type,params:n,bindingKey:C(e.kind,n)};return{bindingKey:r.bindingKey,workflowCompatible:p(t.type).workflowCompatible,subscribe:e=>this.subscribePrepared(r,e)}}async subscribePrepared(e,t){let{entry:n,subscriptionId:r,retired:i}=await this.lane.run(()=>this.admitWithinLane(e,t));i!==void 0&&await this.runCleanup(i);try{await n.activated}catch(e){throw await this.lane.run(async()=>{this.retireWithinLane(n)}),e}return this.lane.run(async()=>{if(this.bindings.get(n.bindingKey)!==n||!n.listeners.has(r))throw Error(`Automation trigger acquisition for '${n.bindingKey}' was retired before it completed`);return this.issueHandle({bindingKey:n.bindingKey,subscriptionId:r})})}resolveBindingKey(e){return this.prepareBinding(e)?.bindingKey}stopOwner(e){return this.retireMatching(t=>t.owner===e)}stopKind(e){return this.retireMatching(t=>t.kind===e)}destroy(){return this.close()}close(){return this.retireMatching(()=>!0,()=>{this.closed=!0})}async admitWithinLane(e,t){if(this.closed)throw Error(`Automation trigger binding runtime is closed; cannot activate '${e.kind}'`);let n=this.resolver.resolveRegistration(e.kind);if(n===void 0)throw Error(`Automation trigger kind '${e.kind}' is not registered`);if(n.owner!==e.owner||n.type!==e.type)throw Error(`Automation trigger registration for '${e.kind}' changed after binding preparation`);this.subscriptionCounter+=1;let r=`s${this.subscriptionCounter}`,i=this.bindings.get(e.bindingKey);if(i?.type===n.type)return i.listeners.set(r,t),{entry:i,subscriptionId:r};let a=i===void 0?void 0:this.retireWithinLane(i),o=Promise.withResolvers(),s={bindingKey:e.bindingKey,kind:e.kind,owner:n.owner,type:n.type,controller:new AbortController,listeners:new Map([[r,t]]),activated:o.promise};return this.bindings.set(e.bindingKey,s),s.activated.catch(()=>void 0),this.startActivation(s,n.type,e.params,o),{entry:s,subscriptionId:r,...a===void 0?{}:{retired:a}}}async startActivation(e,t,n,r){try{r.resolve(await t.activate(this.createContext(e),n))}catch(e){r.reject(e)}}async release(e){let t=await this.lane.run(()=>this.releaseWithinLane(e));t!==void 0&&await this.runCleanup(t)}async releaseWithinLane(e){let t=this.records.get(e);if(t===void 0)throw Error(`${w} subscription handle was not issued by this runtime`);let n=this.bindings.get(t.bindingKey);if(n!==void 0&&n.listeners.delete(t.subscriptionId)&&!(n.listeners.size>0))return this.retireWithinLane(n)}async retireMatching(e,t){let n=await this.lane.run(async()=>{t?.();let n=[];for(let t of Array.from(this.bindings.values())){if(!e(t))continue;let r=this.retireWithinLane(t);r!==void 0&&n.push(r)}return n});await Promise.all(n.map(e=>this.runCleanup(e)))}retireWithinLane(e){if(this.bindings.get(e.bindingKey)===e)return this.bindings.delete(e.bindingKey),e.listeners.clear(),e.controller.abort(),e}async runCleanup(e){let t;try{t=await e.activated}catch{return}try{await t()}catch(t){console.error(`${w} cleanup failed for '${e.bindingKey}':`,t)}}issueHandle(e){let t={bindingKey:e.bindingKey,detach:()=>this.release(t)};return this.records.set(t,e),t}createContext(e){return{bindingKey:e.bindingKey,signal:e.controller.signal,emit:(t,n)=>this.dispatch(e,t,n?.correlationId)}}async dispatch(e,t,n){if(this.bindings.get(e.bindingKey)!==e)return;let r;try{let n=e.type.eventSchema.parse(t);r=e.type.eventSchema===f||e.type.eventSchema===d?n:f.parse(n)}catch(t){throw console.error(`${w} rejected invalid payload from '${e.kind}':`,t),t}let i={kind:e.kind,payload:r,observedAt:Date.now(),...n===void 0?{}:{correlationId:n}},a=Array.from(e.listeners.values()),o=await Promise.allSettled(a.map(async e=>e(i)));for(let t of o)t.status===`rejected`&&console.error(`${w} listener failed for '${e.kind}':`,t.reason)}};function ee(e,t){let n=e.paramsSchema.parse(t.params);return S(d.parse(n))}const E=g(`automation-trigger-registry`),D=g(`automation-trigger-runtime`),te={name:E.name,displayName:`Automation Trigger Registry`,version:`0.1.0`,critical:!0,create:e=>new b(e.bus)},O={name:D.name,displayName:`Automation Trigger Binding Runtime`,version:`0.1.0`,critical:!0,create:e=>new T({resolveRegistration:t=>e.getService(E)?.resolveRegistration(t)})};function k(e){return Date.UTC(e.y,e.m-1,e.d,e.h,e.i,e.s)}function A(e,t){return e.y===t.y&&e.m===t.m&&e.d===t.d&&e.h===t.h&&e.i===t.i&&e.s===t.s}function j(e,t){let n=new Date(Date.parse(e));if(isNaN(n))throw Error(`Invalid ISO8601 passed to timezone parser.`);let r=e.substring(9);return r.includes(`Z`)||r.includes(`+`)||r.includes(`-`)?F(n.getUTCFullYear(),n.getUTCMonth()+1,n.getUTCDate(),n.getUTCHours(),n.getUTCMinutes(),n.getUTCSeconds(),`Etc/UTC`):F(n.getFullYear(),n.getMonth()+1,n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds(),t)}function M(e,t,n){return N(j(e,t),n)}function N(e,t){let n=new Date(k(e)),r=P(n,e.tz),i=k(e)-k(r),a=new Date(n.getTime()+i),o=P(a,e.tz);if(A(o,e)){let t=new Date(a.getTime()-36e5);return A(P(t,e.tz),e)?t:a}let s=new Date(a.getTime()+k(e)-k(o));if(A(P(s,e.tz),e))return s;if(t)throw Error(`Invalid date passed to fromTZ()`);return a.getTime()>s.getTime()?a:s}function P(e,t){let n,r;try{n=new Intl.DateTimeFormat(`en-US`,{timeZone:t,year:`numeric`,month:`numeric`,day:`numeric`,hour:`numeric`,minute:`numeric`,second:`numeric`,hour12:!1}),r=n.formatToParts(e)}catch(e){let n=e instanceof Error?e.message:String(e);throw RangeError(`toTZ: Invalid timezone '${t}' or date. Please provide a valid IANA timezone (e.g., 'America/New_York', 'Europe/Stockholm'). Original error: ${n}`)}let i={year:0,month:0,day:0,hour:0,minute:0,second:0};for(let e of r)(e.type===`year`||e.type===`month`||e.type===`day`||e.type===`hour`||e.type===`minute`||e.type===`second`)&&(i[e.type]=parseInt(e.value,10));if(isNaN(i.year)||isNaN(i.month)||isNaN(i.day)||isNaN(i.hour)||isNaN(i.minute)||isNaN(i.second))throw Error(`toTZ: Failed to parse all date components from timezone '${t}'. This may indicate an invalid date or timezone configuration. Parsed components: ${JSON.stringify(i)}`);return i.hour===24&&(i.hour=0),{y:i.year,m:i.month,d:i.day,h:i.hour,i:i.minute,s:i.second,tz:t}}function F(e,t,n,r,i,a,o){return{y:e,m:t,d:n,h:r,i,s:a,tz:o}}var I=[1,2,4,8,16],L=class{pattern;timezone;mode;alternativeWeekdays;sloppyRanges;second;minute;hour;day;month;dayOfWeek;year;lastDayOfMonth;lastWeekday;nearestWeekdays;starDOM;starDOW;starYear;useAndLogic;constructor(e,t,n){this.pattern=e,this.timezone=t,this.mode=n?.mode??`auto`,this.alternativeWeekdays=n?.alternativeWeekdays??!1,this.sloppyRanges=n?.sloppyRanges??!1,this.second=Array(60).fill(0),this.minute=Array(60).fill(0),this.hour=Array(24).fill(0),this.day=Array(31).fill(0),this.month=Array(12).fill(0),this.dayOfWeek=Array(7).fill(0),this.year=Array(1e4).fill(0),this.lastDayOfMonth=!1,this.lastWeekday=!1,this.nearestWeekdays=Array(31).fill(0),this.starDOM=!1,this.starDOW=!1,this.starYear=!1,this.useAndLogic=!1,this.parse()}parse(){if(!(typeof this.pattern==`string`||this.pattern instanceof String))throw TypeError(`CronPattern: Pattern has to be of type string.`);this.pattern.indexOf(`@`)>=0&&(this.pattern=this.handleNicknames(this.pattern).trim());let e=this.pattern.match(/\S+/g)||[``],t=e.length;if(e.length<5||e.length>7)throw TypeError(`CronPattern: invalid configuration format ('`+this.pattern+`'), exactly five, six, or seven space separated parts are required.`);if(this.mode!==`auto`){let e;switch(this.mode){case`5-part`:e=5;break;case`6-part`:e=6;break;case`7-part`:e=7;break;case`5-or-6-parts`:e=[5,6];break;case`6-or-7-parts`:e=[6,7];break;default:e=0}if(!(Array.isArray(e)?e.includes(t):t===e)){let n=Array.isArray(e)?e.join(` or `):e.toString();throw TypeError(`CronPattern: mode '${this.mode}' requires exactly ${n} parts, but pattern '${this.pattern}' has ${t} parts.`)}}if(e.length===5&&e.unshift(`0`),e.length===6&&e.push(`*`),e[3].toUpperCase()===`LW`?(this.lastWeekday=!0,e[3]=``):e[3].toUpperCase().indexOf(`L`)>=0&&(e[3]=e[3].replace(/L/gi,``),this.lastDayOfMonth=!0),e[3]==`*`&&(this.starDOM=!0),e[6]==`*`&&(this.starYear=!0),e[4].length>=3&&(e[4]=this.replaceAlphaMonths(e[4])),e[5].length>=3&&(e[5]=this.alternativeWeekdays?this.replaceAlphaDaysQuartz(e[5]):this.replaceAlphaDays(e[5])),e[5].startsWith(`+`)&&(this.useAndLogic=!0,e[5]=e[5].substring(1),e[5]===``))throw TypeError(`CronPattern: Day-of-week field cannot be empty after '+' modifier.`);switch(e[5]==`*`&&(this.starDOW=!0),this.pattern.indexOf(`?`)>=0&&(e[0]=e[0].replace(/\?/g,`*`),e[1]=e[1].replace(/\?/g,`*`),e[2]=e[2].replace(/\?/g,`*`),e[3]=e[3].replace(/\?/g,`*`),e[4]=e[4].replace(/\?/g,`*`),e[5]=e[5].replace(/\?/g,`*`),e[6]&&=e[6].replace(/\?/g,`*`)),this.mode){case`5-part`:e[0]=`0`,e[6]=`*`;break;case`6-part`:e[6]=`*`;break;case`5-or-6-parts`:e[6]=`*`;break;case`6-or-7-parts`:break;case`7-part`:case`auto`:break}this.throwAtIllegalCharacters(e),this.partToArray(`second`,e[0],0,1),this.partToArray(`minute`,e[1],0,1),this.partToArray(`hour`,e[2],0,1),this.partToArray(`day`,e[3],-1,1),this.partToArray(`month`,e[4],-1,1);let n=this.alternativeWeekdays?-1:0;this.partToArray(`dayOfWeek`,e[5],n,63),this.partToArray(`year`,e[6],0,1),!this.alternativeWeekdays&&this.dayOfWeek[7]&&(this.dayOfWeek[0]=this.dayOfWeek[7])}partToArray(e,t,n,r){let i=this[e],a=e===`day`&&this.lastDayOfMonth,o=e===`day`&&this.lastWeekday;if(t===``&&!a&&!o)throw TypeError(`CronPattern: configuration entry `+e+` (`+t+`) is empty, check for trailing spaces.`);if(t===`*`)return i.fill(r);let s=t.split(`,`);if(s.length>1)for(let t=0;t<s.length;t++)this.partToArray(e,s[t],n,r);else t.indexOf(`-`)!==-1&&t.indexOf(`/`)!==-1?this.handleRangeWithStepping(t,e,n,r):t.indexOf(`-`)===-1?t.indexOf(`/`)===-1?t!==``&&this.handleNumber(t,e,n,r):this.handleStepping(t,e,n,r):this.handleRange(t,e,n,r)}throwAtIllegalCharacters(e){for(let t=0;t<e.length;t++)if((t===3?/[^/*0-9,\-WwLl]+/:t===5?/[^/*0-9,\-#Ll]+/:/[^/*0-9,\-]+/).test(e[t]))throw TypeError(`CronPattern: configuration entry `+t+` (`+e[t]+`) contains illegal characters.`)}handleNumber(e,t,n,r){let i=this.extractNth(e,t),a=e.toUpperCase().includes(`W`);if(t!==`day`&&a)throw TypeError(`CronPattern: Nearest weekday modifier (W) only allowed in day-of-month.`);a&&(t=`nearestWeekdays`);let o=parseInt(i[0],10)+n;if(isNaN(o))throw TypeError(`CronPattern: `+t+` is not a number: '`+e+`'`);this.setPart(t,o,i[1]||r)}setPart(e,t,n){if(!Object.prototype.hasOwnProperty.call(this,e))throw TypeError(`CronPattern: Invalid part specified: `+e);if(e===`dayOfWeek`){if(t===7&&(t=0),t<0||t>6)throw RangeError(`CronPattern: Invalid value for dayOfWeek: `+t);this.setNthWeekdayOfMonth(t,n);return}if(e===`second`||e===`minute`){if(t<0||t>=60)throw RangeError(`CronPattern: Invalid value for `+e+`: `+t)}else if(e===`hour`){if(t<0||t>=24)throw RangeError(`CronPattern: Invalid value for `+e+`: `+t)}else if(e===`day`||e===`nearestWeekdays`){if(t<0||t>=31)throw RangeError(`CronPattern: Invalid value for `+e+`: `+t)}else if(e===`month`){if(t<0||t>=12)throw RangeError(`CronPattern: Invalid value for `+e+`: `+t)}else if(e===`year`&&(t<1||t>=1e4))throw RangeError(`CronPattern: Invalid value for `+e+`: `+t+` (supported range: 1-9999)`);this[e][t]=n}validateNotNaN(e,t){if(isNaN(e))throw TypeError(t)}validateRange(e,t,n,r,i){if(e>t)throw TypeError(`CronPattern: From value is larger than to value: '`+i+`'`);if(n!==void 0){if(n===0)throw TypeError(`CronPattern: Syntax error, illegal stepping: 0`);if(n>this[r].length)throw TypeError(`CronPattern: Syntax error, steps cannot be greater than maximum value of part (`+this[r].length+`)`)}}handleRangeWithStepping(e,t,n,r){if(e.toUpperCase().includes(`W`))throw TypeError(`CronPattern: Syntax error, W is not allowed in ranges with stepping.`);let i=this.extractNth(e,t),a=i[0].match(/^(\d+)-(\d+)\/(\d+)$/);if(a===null)throw TypeError(`CronPattern: Syntax error, illegal range with stepping: '`+e+`'`);let[,o,s,c]=a,l=parseInt(o,10)+n,u=parseInt(s,10)+n,d=parseInt(c,10);this.validateNotNaN(l,`CronPattern: Syntax error, illegal lower range (NaN)`),this.validateNotNaN(u,`CronPattern: Syntax error, illegal upper range (NaN)`),this.validateNotNaN(d,`CronPattern: Syntax error, illegal stepping: (NaN)`),this.validateRange(l,u,d,t,e);for(let e=l;e<=u;e+=d)this.setPart(t,e,i[1]||r)}extractNth(e,t){let n=e,r;if(n.includes(`#`)){if(t!==`dayOfWeek`)throw Error(`CronPattern: nth (#) only allowed in day-of-week field`);r=n.split(`#`)[1],n=n.split(`#`)[0]}else if(n.toUpperCase().endsWith(`L`)){if(t!==`dayOfWeek`)throw Error(`CronPattern: L modifier only allowed in day-of-week field (use L alone for day-of-month)`);r=`L`,n=n.slice(0,-1)}return[n,r]}handleRange(e,t,n,r){if(e.toUpperCase().includes(`W`))throw TypeError(`CronPattern: Syntax error, W is not allowed in a range.`);let i=this.extractNth(e,t),a=i[0].split(`-`);if(a.length!==2)throw TypeError(`CronPattern: Syntax error, illegal range: '`+e+`'`);let o=parseInt(a[0],10)+n,s=parseInt(a[1],10)+n;this.validateNotNaN(o,`CronPattern: Syntax error, illegal lower range (NaN)`),this.validateNotNaN(s,`CronPattern: Syntax error, illegal upper range (NaN)`),this.validateRange(o,s,void 0,t,e);for(let e=o;e<=s;e++)this.setPart(t,e,i[1]||r)}handleStepping(e,t,n,r){if(e.toUpperCase().includes(`W`))throw TypeError(`CronPattern: Syntax error, W is not allowed in parts with stepping.`);let i=this.extractNth(e,t),a=i[0].split(`/`);if(a.length!==2)throw TypeError(`CronPattern: Syntax error, illegal stepping: '`+e+`'`);if(this.sloppyRanges)a[0]===``&&(a[0]=`*`);else{if(a[0]===``)throw TypeError(`CronPattern: Syntax error, stepping with missing prefix ('`+e+`') is not allowed. Use wildcard (*/step) or range (min-max/step) instead.`);if(a[0]!==`*`)throw TypeError(`CronPattern: Syntax error, stepping with numeric prefix ('`+e+`') is not allowed. Use wildcard (*/step) or range (min-max/step) instead.`)}let o=0;a[0]!==`*`&&(o=parseInt(a[0],10)+n);let s=parseInt(a[1],10);this.validateNotNaN(s,`CronPattern: Syntax error, illegal stepping: (NaN)`),this.validateRange(0,this[t].length-1,s,t,e);for(let e=o;e<this[t].length;e+=s)this.setPart(t,e,i[1]||r)}replaceAlphaDays(e){return e.replace(/-sun/gi,`-7`).replace(/sun/gi,`0`).replace(/mon/gi,`1`).replace(/tue/gi,`2`).replace(/wed/gi,`3`).replace(/thu/gi,`4`).replace(/fri/gi,`5`).replace(/sat/gi,`6`)}replaceAlphaDaysQuartz(e){return e.replace(/sun/gi,`1`).replace(/mon/gi,`2`).replace(/tue/gi,`3`).replace(/wed/gi,`4`).replace(/thu/gi,`5`).replace(/fri/gi,`6`).replace(/sat/gi,`7`)}replaceAlphaMonths(e){return e.replace(/jan/gi,`1`).replace(/feb/gi,`2`).replace(/mar/gi,`3`).replace(/apr/gi,`4`).replace(/may/gi,`5`).replace(/jun/gi,`6`).replace(/jul/gi,`7`).replace(/aug/gi,`8`).replace(/sep/gi,`9`).replace(/oct/gi,`10`).replace(/nov/gi,`11`).replace(/dec/gi,`12`)}handleNicknames(e){let t=e.trim().toLowerCase();if(t===`@yearly`||t===`@annually`)return`0 0 1 1 *`;if(t===`@monthly`)return`0 0 1 * *`;if(t===`@weekly`)return`0 0 * * 0`;if(t===`@daily`||t===`@midnight`)return`0 0 * * *`;if(t===`@hourly`)return`0 * * * *`;if(t===`@reboot`)throw TypeError(`CronPattern: @reboot is not supported in this environment. This is an event-based trigger that requires system startup detection.`);return e}setNthWeekdayOfMonth(e,t){if(typeof t!=`number`&&t.toUpperCase()===`L`)this.dayOfWeek[e]=this.dayOfWeek[e]|32;else if(t===63)this.dayOfWeek[e]=63;else if(t<6&&t>0)this.dayOfWeek[e]=this.dayOfWeek[e]|I[t-1];else throw TypeError(`CronPattern: nth weekday out of range, should be 1-5 or L. Value: ${t}, Type: ${typeof t}`)}},R=[31,28,31,30,31,30,31,31,30,31,30,31],z=[[`month`,`year`,0],[`day`,`month`,-1],[`hour`,`day`,0],[`minute`,`hour`,0],[`second`,`minute`,0]],B=class e{tz;ms;second;minute;hour;day;month;year;constructor(t,n){if(this.tz=n,t&&t instanceof Date)if(!isNaN(t))this.fromDate(t);else throw TypeError(`CronDate: Invalid date passed to CronDate constructor`);else if(t==null)this.fromDate(new Date);else if(t&&typeof t==`string`)this.fromString(t);else if(t instanceof e)this.fromCronDate(t);else throw TypeError(`CronDate: Invalid type (`+typeof t+`) passed to CronDate constructor`)}getLastDayOfMonth(e,t){return t===1?new Date(Date.UTC(e,t+1,0)).getUTCDate():R[t]}getLastWeekday(e,t){let n=this.getLastDayOfMonth(e,t),r=new Date(Date.UTC(e,t,n)).getUTCDay();return r===0?n-2:r===6?n-1:n}getNearestWeekday(e,t,n){let r=this.getLastDayOfMonth(e,t);if(n>r)return-1;let i=new Date(Date.UTC(e,t,n)).getUTCDay();return i===0?n===r?n-2:n+1:i===6?n===1?n+2:n-1:n}isNthWeekdayOfMonth(e,t,n,r){let i=new Date(Date.UTC(e,t,n)).getUTCDay(),a=0;for(let r=1;r<=n;r++)new Date(Date.UTC(e,t,r)).getUTCDay()===i&&a++;if(r&63&&I[a-1]&r)return!0;if(r&32){let r=this.getLastDayOfMonth(e,t);for(let a=n+1;a<=r;a++)if(new Date(Date.UTC(e,t,a)).getUTCDay()===i)return!1;return!0}return!1}fromDate(e){if(this.tz!==void 0)if(typeof this.tz==`number`)this.ms=e.getUTCMilliseconds(),this.second=e.getUTCSeconds(),this.minute=e.getUTCMinutes()+this.tz,this.hour=e.getUTCHours(),this.day=e.getUTCDate(),this.month=e.getUTCMonth(),this.year=e.getUTCFullYear(),this.apply();else try{let t=P(e,this.tz);this.ms=e.getMilliseconds(),this.second=t.s,this.minute=t.i,this.hour=t.h,this.day=t.d,this.month=t.m-1,this.year=t.y}catch(e){let t=e instanceof Error?e.message:String(e);throw TypeError(`CronDate: Failed to convert date to timezone '${this.tz}'. This may happen with invalid timezone names or dates. Original error: ${t}`)}else this.ms=e.getMilliseconds(),this.second=e.getSeconds(),this.minute=e.getMinutes(),this.hour=e.getHours(),this.day=e.getDate(),this.month=e.getMonth(),this.year=e.getFullYear()}fromCronDate(e){this.tz=e.tz,this.year=e.year,this.month=e.month,this.day=e.day,this.hour=e.hour,this.minute=e.minute,this.second=e.second,this.ms=e.ms}apply(){if(this.month>11||this.month<0||this.day>R[this.month]||this.day<1||this.hour>59||this.minute>59||this.second>59||this.hour<0||this.minute<0||this.second<0){let e=new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms));return this.ms=e.getUTCMilliseconds(),this.second=e.getUTCSeconds(),this.minute=e.getUTCMinutes(),this.hour=e.getUTCHours(),this.day=e.getUTCDate(),this.month=e.getUTCMonth(),this.year=e.getUTCFullYear(),!0}else return!1}fromString(e){if(typeof this.tz==`number`){let t=M(e);this.ms=t.getUTCMilliseconds(),this.second=t.getUTCSeconds(),this.minute=t.getUTCMinutes(),this.hour=t.getUTCHours(),this.day=t.getUTCDate(),this.month=t.getUTCMonth(),this.year=t.getUTCFullYear(),this.apply()}else return this.fromDate(M(e,this.tz))}findNext(e,t,n,r){return this._findMatch(e,t,n,r,1)}_findMatch(e,t,n,r,i){let a=this[t],o;n.lastDayOfMonth&&(o=this.getLastDayOfMonth(this.year,this.month));let s=!n.starDOW&&t==`day`?new Date(Date.UTC(this.year,this.month,1,0,0,0,0)).getUTCDay():void 0,c=this[t]+r,l=i===1?e=>e<n[t].length:e=>e>=0;for(let u=c;l(u);u+=i){let i=n[t][u];if(t===`day`&&!i){for(let e=0;e<n.nearestWeekdays.length;e++)if(n.nearestWeekdays[e]){let t=this.getNearestWeekday(this.year,this.month,e-r);if(t===-1)continue;if(t===u-r){i=1;break}}}if(t===`day`&&n.lastWeekday){let e=this.getLastWeekday(this.year,this.month);u-r===e&&(i=1)}if(t===`day`&&n.lastDayOfMonth&&u-r==o&&(i=1),t===`day`&&!n.starDOW){let t=n.dayOfWeek[(s+(u-r-1))%7];if(t&&t&63)t=+!!this.isNthWeekdayOfMonth(this.year,this.month,u-r,t);else if(t)throw Error(`CronDate: Invalid value for dayOfWeek encountered. ${t}`);n.useAndLogic?i&&=t:!e.domAndDow&&!n.starDOM?i||=t:i&&=t}if(i)return this[t]=u-r,a===this[t]?1:2}return 3}recurse(e,t,n){if(n===0&&!e.starYear){if(this.year>=0&&this.year<e.year.length&&e.year[this.year]===0){let t=-1;for(let n=this.year+1;n<e.year.length&&n<1e4;n++)if(e.year[n]===1){t=n;break}if(t===-1)return null;this.year=t,this.month=0,this.day=1,this.hour=0,this.minute=0,this.second=0,this.ms=0}if(this.year>=1e4)return null}let r=this.findNext(t,z[n][0],e,z[n][2]);if(r>1){let i=n+1;for(;i<z.length;)this[z[i][0]]=-z[i][2],i++;if(r===3){if(this[z[n][1]]++,this[z[n][0]]=-z[n][2],this.apply(),n===0&&!e.starYear){for(;this.year>=0&&this.year<e.year.length&&e.year[this.year]===0&&this.year<1e4;)this.year++;if(this.year>=1e4||this.year>=e.year.length)return null}return this.recurse(e,t,0)}else if(this.apply())return this.recurse(e,t,n-1)}return n+=1,n>=z.length?this:(e.starYear?this.year>=3e3:this.year>=1e4)?null:this.recurse(e,t,n)}increment(e,t,n){return this.second+=t.interval!==void 0&&t.interval>1&&n?t.interval:1,this.ms=0,this.apply(),this.recurse(e,t,0)}decrement(e,t){return this.second-=t.interval!==void 0&&t.interval>1?t.interval:1,this.ms=0,this.apply(),this.recurseBackward(e,t,0,0)}recurseBackward(e,t,n,r=0){if(r>1e4)return null;if(n===0&&!e.starYear){if(this.year>=0&&this.year<e.year.length&&e.year[this.year]===0){let t=-1;for(let n=this.year-1;n>=0;n--)if(e.year[n]===1){t=n;break}if(t===-1)return null;this.year=t,this.month=11,this.day=31,this.hour=23,this.minute=59,this.second=59,this.ms=0}if(this.year<0)return null}let i=this.findPrevious(t,z[n][0],e,z[n][2]);if(i>1){let a=n+1;for(;a<z.length;){let t=z[a][0],n=z[a][2],r=this.getMaxPatternValue(t,e,n);this[t]=r,a++}if(i===3){if(this[z[n][1]]--,n===0){let e=this.getLastDayOfMonth(this.year,this.month);this.day>e&&(this.day=e)}if(n===1)if(this.day<=0)this.day=1;else{let e=this.year,t=this.month;for(;t<0;)t+=12,e--;for(;t>11;)t-=12,e++;let n=t===1?new Date(Date.UTC(e,t+1,0)).getUTCDate():R[t];this.day>n&&(this.day=n)}this.apply();let i=z[n][0],a=z[n][2],o=this.getMaxPatternValue(i,e,a);if(i===`day`){let e=this.getLastDayOfMonth(this.year,this.month);this[i]=Math.min(o,e)}else this[i]=o;if(this.apply(),n===0){let t=z[1][2],n=this.getMaxPatternValue(`day`,e,t),r=this.getLastDayOfMonth(this.year,this.month),i=Math.min(n,r);i!==this.day&&(this.day=i,this.hour=this.getMaxPatternValue(`hour`,e,z[2][2]),this.minute=this.getMaxPatternValue(`minute`,e,z[3][2]),this.second=this.getMaxPatternValue(`second`,e,z[4][2]))}if(n===0&&!e.starYear){for(;this.year>=0&&this.year<e.year.length&&e.year[this.year]===0;)this.year--;if(this.year<0)return null}return this.recurseBackward(e,t,0,r+1)}else if(this.apply())return this.recurseBackward(e,t,n-1,r+1)}return n+=1,n>=z.length?this:this.year<0?null:this.recurseBackward(e,t,n,r+1)}getMaxPatternValue(e,t,n){if(e===`day`&&t.lastDayOfMonth||e===`day`&&!t.starDOW)return this.getLastDayOfMonth(this.year,this.month);for(let r=t[e].length-1;r>=0;r--)if(t[e][r])return r-n;return t[e].length-1-n}findPrevious(e,t,n,r){return this._findMatch(e,t,n,r,-1)}getDate(e){return e||this.tz===void 0?new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms):typeof this.tz==`number`?new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute-this.tz,this.second,this.ms)):N(F(this.year,this.month+1,this.day,this.hour,this.minute,this.second,this.tz),!1)}getTime(){return this.getDate(!1).getTime()}match(e,t){if(!e.starYear&&(this.year<0||this.year>=e.year.length||e.year[this.year]===0))return!1;for(let n=0;n<z.length;n++){let r=z[n][0],i=z[n][2],a=this[r];if(a+i<0||a+i>=e[r].length)return!1;let o=e[r][a+i];if(r===`day`){if(!o){for(let t=0;t<e.nearestWeekdays.length;t++)if(e.nearestWeekdays[t]){let e=this.getNearestWeekday(this.year,this.month,t-i);if(e!==-1&&e===a){o=1;break}}}if(e.lastWeekday&&a===this.getLastWeekday(this.year,this.month)&&(o=1),e.lastDayOfMonth&&a===this.getLastDayOfMonth(this.year,this.month)&&(o=1),!e.starDOW){let n=new Date(Date.UTC(this.year,this.month,1,0,0,0,0)).getUTCDay(),r=e.dayOfWeek[(n+(a-1))%7];r&&r&63&&(r=+!!this.isNthWeekdayOfMonth(this.year,this.month,a,r)),e.useAndLogic?o&&=r:!t.domAndDow&&!e.starDOM?o||=r:o&&=r}}if(!o)return!1}return!0}};function ne(e){if(e===void 0&&(e={}),delete e.name,e.legacyMode!==void 0&&e.domAndDow===void 0?e.domAndDow=!e.legacyMode:e.domAndDow===void 0&&(e.domAndDow=!1),e.legacyMode=!e.domAndDow,e.paused=e.paused===void 0?!1:e.paused,e.maxRuns=e.maxRuns===void 0?1/0:e.maxRuns,e.catch=e.catch===void 0?!1:e.catch,e.interval=e.interval===void 0?0:parseInt(e.interval.toString(),10),e.utcOffset=e.utcOffset===void 0?void 0:parseInt(e.utcOffset.toString(),10),e.dayOffset=e.dayOffset===void 0?0:parseInt(e.dayOffset.toString(),10),e.unref=e.unref===void 0?!1:e.unref,e.mode=e.mode===void 0?`auto`:e.mode,e.alternativeWeekdays=e.alternativeWeekdays===void 0?!1:e.alternativeWeekdays,e.sloppyRanges=e.sloppyRanges===void 0?!1:e.sloppyRanges,![`auto`,`5-part`,`6-part`,`7-part`,`5-or-6-parts`,`6-or-7-parts`].includes(e.mode))throw Error(`CronOptions: mode must be one of 'auto', '5-part', '6-part', '7-part', '5-or-6-parts', or '6-or-7-parts'.`);if(e.startAt&&=new B(e.startAt,e.timezone),e.stopAt&&=new B(e.stopAt,e.timezone),e.interval!==null){if(isNaN(e.interval))throw Error(`CronOptions: Supplied value for interval is not a number`);if(e.interval<0)throw Error(`CronOptions: Supplied value for interval can not be negative`)}if(e.utcOffset!==void 0){if(isNaN(e.utcOffset))throw Error(`CronOptions: Invalid value passed for utcOffset, should be number representing minutes offset from UTC.`);if(e.utcOffset<-870||e.utcOffset>870)throw Error(`CronOptions: utcOffset out of bounds.`);if(e.utcOffset!==void 0&&e.timezone)throw Error(`CronOptions: Combining 'utcOffset' with 'timezone' is not allowed.`)}if(e.unref!==!0&&e.unref!==!1)throw Error(`CronOptions: Unref should be either true, false or undefined(false).`);if(e.dayOffset!==void 0&&e.dayOffset!==0&&isNaN(e.dayOffset))throw Error(`CronOptions: Invalid value passed for dayOffset, should be a number representing days to offset.`);return e}function V(e){return Object.prototype.toString.call(e)===`[object Function]`||typeof e==`function`||e instanceof Function}function re(e){return V(e)}function H(e){typeof Deno<`u`&&typeof Deno.unrefTimer<`u`?Deno.unrefTimer(e):e&&typeof e.unref<`u`&&e.unref()}var U=30*1e3,W=[],G=class{name;options;_states;fn;getTz(){return this.options.timezone||this.options.utcOffset}applyDayOffset(e){if(this.options.dayOffset!==void 0&&this.options.dayOffset!==0){let t=this.options.dayOffset*24*60*60*1e3;return new Date(e.getTime()+t)}return e}constructor(e,t,n){let r,i;if(V(t))i=t;else if(typeof t==`object`)r=t;else if(t!==void 0)throw Error(`Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).`);if(V(n))i=n;else if(typeof n==`object`)r=n;else if(n!==void 0)throw Error(`Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).`);if(this.name=r?.name,this.options=ne(r),this._states={kill:!1,blocking:!1,previousRun:void 0,currentRun:void 0,once:void 0,currentTimeout:void 0,maxRuns:r?r.maxRuns:void 0,paused:r?r.paused:!1,pattern:new L(`* * * * *`,void 0,{mode:`auto`})},e&&(e instanceof Date||typeof e==`string`&&e.indexOf(`:`)>0)?this._states.once=new B(e,this.getTz()):this._states.pattern=new L(e,this.options.timezone,{mode:this.options.mode,alternativeWeekdays:this.options.alternativeWeekdays,sloppyRanges:this.options.sloppyRanges}),this.name){if(W.find(e=>e.name===this.name))throw Error(`Cron: Tried to initialize new named job '`+this.name+`', but name already taken.`);W.push(this)}return i!==void 0&&re(i)&&(this.fn=i,this.schedule()),this}nextRun(e){let t=this._next(e);return t?this.applyDayOffset(t.getDate(!1)):null}nextRuns(e,t){this._states.maxRuns!==void 0&&e>this._states.maxRuns&&(e=this._states.maxRuns);let n=t||this._states.currentRun||void 0;return this._enumerateRuns(e,n,`next`)}previousRuns(e,t){return this._enumerateRuns(e,t||void 0,`previous`)}_enumerateRuns(e,t,n){let r=[],i=t?new B(t,this.getTz()):null,a=n===`next`?this._next:this._previous;for(;e--;){let e=a.call(this,i);if(!e)break;let t=e.getDate(!1);r.push(this.applyDayOffset(t)),i=e}return r}match(e){if(this._states.once){let t=new B(e,this.getTz());t.ms=0;let n=new B(this._states.once,this.getTz());return n.ms=0,t.getTime()===n.getTime()}let t=new B(e,this.getTz());return t.ms=0,t.match(this._states.pattern,this.options)}getPattern(){if(!this._states.once)return this._states.pattern?this._states.pattern.pattern:void 0}getOnce(){return this._states.once?this._states.once.getDate():null}isRunning(){let e=this.nextRun(this._states.currentRun),t=!this._states.paused,n=this.fn!==void 0,r=!this._states.kill;return t&&n&&r&&e!==null}isStopped(){return this._states.kill}isBusy(){return this._states.blocking}currentRun(){return this._states.currentRun?this._states.currentRun.getDate():null}previousRun(){return this._states.previousRun?this._states.previousRun.getDate():null}msToNext(e){let t=this._next(e);return t?e instanceof B||e instanceof Date?t.getTime()-e.getTime():t.getTime()-new B(e).getTime():null}stop(){this._states.kill=!0,this._states.currentTimeout&&clearTimeout(this._states.currentTimeout);let e=W.indexOf(this);e>=0&&W.splice(e,1)}pause(){return this._states.paused=!0,!this._states.kill}resume(){return this._states.paused=!1,!this._states.kill}schedule(e){if(e&&this.fn)throw Error(`Cron: It is not allowed to schedule two functions using the same Croner instance.`);e&&(this.fn=e);let t=this.msToNext(),n=this.nextRun(this._states.currentRun);return t==null||isNaN(t)||n===null?this:(t>U&&(t=U),this._states.currentTimeout=setTimeout(()=>this._checkTrigger(n),t),this._states.currentTimeout&&this.options.unref&&H(this._states.currentTimeout),this)}async _trigger(e){this._states.blocking=!0,this._states.currentRun=new B(void 0,this.getTz());try{if(this.options.catch)try{this.fn!==void 0&&await this.fn(this,this.options.context)}catch(e){if(V(this.options.catch))try{this.options.catch(e,this)}catch{}}else this.fn!==void 0&&await this.fn(this,this.options.context)}finally{this._states.previousRun=new B(e,this.getTz()),this._states.blocking=!1}}async trigger(){await this._trigger()}runsLeft(){return this._states.maxRuns}_checkTrigger(e){let t=new Date,n=!this._states.paused&&t.getTime()>=e.getTime(),r=this._states.blocking&&this.options.protect;n&&!r?(this._states.maxRuns!==void 0&&this._states.maxRuns--,this._trigger()):n&&r&&V(this.options.protect)&&setTimeout(()=>this.options.protect(this),0),this.schedule()}_next(e){let t=!!(e||this._states.currentRun),n=!1;!e&&this.options.startAt&&this.options.interval&&([e,t]=this._calculatePreviousRun(e,t),n=!e),e=new B(e,this.getTz()),this.options.startAt&&e&&e.getTime()<this.options.startAt.getTime()&&(e=this.options.startAt);let r=this._states.once||new B(e,this.getTz());return!n&&r!==this._states.once&&(r=r.increment(this._states.pattern,this.options,t)),this._states.once&&this._states.once.getTime()<=e.getTime()||r===null||this._states.maxRuns!==void 0&&this._states.maxRuns<=0||this._states.kill||this.options.stopAt&&r.getTime()>=this.options.stopAt.getTime()?null:r}_previous(e){let t=new B(e,this.getTz());this.options.stopAt&&t.getTime()>this.options.stopAt.getTime()&&(t=this.options.stopAt);let n=new B(t,this.getTz());return this._states.once?this._states.once.getTime()<t.getTime()?this._states.once:null:(n=n.decrement(this._states.pattern,this.options),n===null||this.options.startAt&&n.getTime()<this.options.startAt.getTime()?null:n)}_calculatePreviousRun(e,t){let n=new B(void 0,this.getTz()),r=e;if(this.options.startAt.getTime()<=n.getTime()){r=this.options.startAt;let e=r.getTime()+this.options.interval*1e3;for(;e<=n.getTime();)r=new B(r,this.getTz()).increment(this._states.pattern,this.options,!0),e=r.getTime()+this.options.interval*1e3;t=!0}return r===null&&(r=void 0),[r,t]}};const K=g(`automation-cron-scheduler`);function q(e){try{new G(e.schedule,{timezone:e.timezone,paused:!0}).nextRun()}catch(t){throw Error(`Invalid cron schedule '${e.schedule}' in timezone '${e.timezone}' for binding '${e.bindingKey}'`,{cause:t})}}const J=`[BusEventAutomationTrigger]`,Y=e.object({subject:e.string().regex(/^[^.]+\.[\s\S]+$/,`Bus-event subject must be '<namespace>.<subject>' with both segments non-empty.`)});function X(e){return _(m({kind:c,label:`Bus Event`,description:`Fires when a matching event is emitted on the Makaio bus.`,categories:[`Bus`],paramsSchema:Y,eventSchema:d,activate:async(t,n)=>{let r=a(n.subject);if(r===void 0)throw Error(`Bus-event parameter schema admitted an unobservable subject: '${n.subject}'`);return e.on(i(r.namespace),e=>{if(e.isRequest||!v(e.subject,n.subject))return;let r=d.safeParse(e.payload);if(!r.success){console.warn(`${J} skipped non-object JSON payload on '${e.subject}':`,r.error);return}let{correlationId:i}=e;t.emit(r.data,i===void 0?void 0:{correlationId:i}).catch(t=>{console.error(`${J} emit failed for '${e.subject}':`,t)})},{handlerKind:`event`})}}))}function Z(e){return[X(e)]}const ie=e.object({scheduledFor:e.number().finite()});function Q(e){return _(m({kind:l,label:`Schedule`,description:`Fires on a cron schedule in a fixed timezone.`,categories:[`Schedule`],paramsSchema:u,eventSchema:ie,activate:async(t,n)=>{let r=e();if(!r)throw Error(`Automation trigger '${l}' requires the '${K.name}' service; no cron scheduler provider is registered.`);return r.schedule({bindingKey:t.bindingKey,schedule:n.schedule,timezone:n.timezone,emit:e=>t.emit(e)})}}))}const $=`makaio`,ae={name:$,displayName:`Makaio Built-in Automation Triggers`,version:`0.1.0`,dependencies:[h(K.name,void 0,!0)],critical:!0,automationTriggers:{createAutomationTriggers:e=>[...Z(e.bus),Q(()=>e.getService(K))]}};export{X as a,G as c,O as d,te as f,b as g,C as h,Z as i,D as l,S as m,ae as n,K as o,T as p,Q as r,q as s,$ as t,E as u};
package/dist/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@makaio/framework",
3
- "version": "1.0.0-dev-1788955549564",
3
+ "version": "1.0.0-dev-1788966380232",
4
4
  "type": "module"
5
5
  }
@@ -1 +1 @@
1
- import{o as e}from"./chunk-DTipWd-i.mjs";import{t}from"./ajv-Dtk5hCZS.mjs";import{t as n}from"./2020-Bl3Yx3In.mjs";import{t as r}from"./dist-CfANkKSb.mjs";import{canonicalStringify as i}from"@makaio/framework/utils";import{ArtifactKindRegistrationSchema as a,ArtifactSubjects as o,ArtifactViewModelSchema as s,ArtifactViewResolveRequestSchema as c,MaterializationSubjects as l,dep as u,extensionToken as d}from"@makaio/framework/contracts";import{BaseService as f}from"@makaio/framework/service-base";import{ARTIFACT_VALUE_TYPE_KEYWORD as p,readArtifactTitle as m}from"@makaio/framework/contracts/artifact";import{MaterializationSubjects as h}from"@makaio/framework/contracts/materialization";var g=e(t(),1),_=e(n(),1),v=e(r(),1);function y(e){try{let t={allErrors:!0,strict:!1,strictSchema:!0},n=e.dataSchema.$schema===`https://json-schema.org/draft/2020-12/schema`?new _.default(t):new g.default(t);(0,v.default)(n),n.addKeyword({keyword:p,schemaType:`string`,valid:!0}),n.compile(e.dataSchema)}catch(t){throw Error(`Invalid data schema for artifact kind '${e.kind}' version '${e.schemaVersion}': ${t instanceof Error?t.message:String(t)}`,{cause:t})}}const b=[{type:`supersedes`,symmetry:`asymmetric`},{type:`contradicts`,symmetry:`symmetric`},{type:`derives_from`,symmetry:`asymmetric`},{type:`responds_to`,symmetry:`asymmetric`},{type:`contains`,symmetry:`asymmetric`},{type:`refines`,symmetry:`asymmetric`},{type:`scopes`,symmetry:`asymmetric`},{type:`references`,symmetry:`asymmetric`},{type:`evidenced_by`,symmetry:`asymmetric`}],x={extension:0,"factory-repo":1,"target-repo":2},S={source:`extension`,ownerKey:`extension:bus`};function C(e){return`${e.source}:${e.ownerKey}`}function w(e,t){return e.source===t.source&&e.ownerKey===t.ownerKey}function T(e){return structuredClone(e)}function E(e,t){return`${e}@${t}`}var D=class extends f{kinds=new Map;kindContributions=new Map;nextKindContributionOrder=0;relationTypes=new Map;constructor(e){super(e)}async onInit(){for(let e of b)this.relationTypes.set(e.type,e);this.registerHandler(o.kind.register,e=>{this.registerKind(e.payload),e.setResult({registered:!0})}),this.registerHandler(o.kind.list,e=>{let{kind:t}=e.payload,n=[...this.kinds.values()].filter(e=>!t||e.kind===t).map(T);e.setResult({kinds:n})}),this.registerHandler(o[`relation-type`].register,e=>{this.storeRelationType(e.payload),e.setResult({registered:!0})}),this.registerHandler(o[`relation-type`].list,e=>{let{type:t}=e.payload,n=[...this.relationTypes.values()].filter(e=>!t||e.type===t).map(T);e.setResult({relationTypes:n})})}compareKindContributions(e,t){let n=x[e.owner.source]-x[t.owner.source];return n===0?e.owner.source===`extension`?t.order-e.order:e.order-t.order:n}findSameTierRepoConflict(e,t,n){return[...e.values()].find(e=>!w(e.owner,t)&&e.owner.source===t.source&&t.source!==`extension`&&e.order<=n)}recomputeKindWinner(e){let t=this.kindContributions.get(e),n=this.kinds.get(e);if(t===void 0||t.size===0){this.kindContributions.delete(e),this.kinds.delete(e),this.emitKindChangedFromKey(e,n);return}let r;for(let e of t.values())(r===void 0||this.compareKindContributions(e,r)<0)&&(r=e);let i=r;this.kinds.set(e,T(i.registration)),JSON.stringify(n)!==JSON.stringify(i.registration)&&this.bus.emit(o.kind.changed,{kind:i.registration.kind,schemaVersion:i.registration.schemaVersion})}emitKindChangedFromKey(e,t){t!==void 0&&this.bus.emit(o.kind.changed,{kind:t.kind,schemaVersion:t.schemaVersion})}registerKind(e,t=S){e=a.parse(e),y(e);let n=E(e.kind,e.schemaVersion),r=this.kindContributions.get(n)??new Map,i=C(t),o=r.get(i),s=t.source===`extension`?this.nextKindContributionOrder:o?.order??this.nextKindContributionOrder,c=this.findSameTierRepoConflict(r,t,s);if(c!==void 0){console.warn(`[ArtifactSchemaRegistry] Artifact kind '${n}' is already registered by '${c.owner.ownerKey}' at the same priority; keeping the existing owner.`);return}r.set(i,{owner:t,registration:T(e),order:t.source===`extension`||o===void 0?this.nextKindContributionOrder++:o.order}),this.kindContributions.set(n,r),this.recomputeKindWinner(n)}deregisterKind(e,t,n=S){let r=E(e,t),i=this.kindContributions.get(r);i!==void 0&&(i.delete(C(n)),this.recomputeKindWinner(r))}replaceKindRegistrationsForOwner(e,t){let n=t.map(e=>a.parse(e));for(let e of n)y(e);let r=new Set,i=C(e),o=new Map;for(let[e,t]of this.kindContributions.entries()){let n=t.get(i);n!==void 0&&(o.set(e,n.order),t.delete(i),r.add(e))}for(let t of n){let n=E(t.kind,t.schemaVersion),a=this.kindContributions.get(n)??new Map,s=e.source===`extension`?void 0:o.get(n),c=s??this.nextKindContributionOrder,l=this.findSameTierRepoConflict(a,e,c);if(l!==void 0){console.warn(`[ArtifactSchemaRegistry] Artifact kind '${n}' is already registered by '${l.owner.ownerKey}' at the same priority; keeping the existing owner.`);continue}a.set(i,{owner:e,registration:T(t),order:s??this.nextKindContributionOrder++}),this.kindContributions.set(n,a),r.add(n)}for(let e of r)this.recomputeKindWinner(e)}storeRelationType(e){let t=this.relationTypes.get(e.type);if(t){if(t.symmetry!==e.symmetry)throw Error(`Relation type '${e.type}' is already registered with different symmetry (existing: '${t.symmetry}', new: '${e.symmetry}')`);return}this.relationTypes.set(e.type,T(e))}getKind(e,t){let n=this.kinds.get(E(e,t));return n?T(n):void 0}getRelationType(e){let t=this.relationTypes.get(e);return t?T(t):void 0}onDestroy(){this.kinds.clear(),this.kindContributions.clear(),this.relationTypes.clear(),this.nextKindContributionOrder=0}};const O=d(`artifact-schema-registry`),k={name:O.name,displayName:`Artifact Schema Registry`,version:`0.1.0`,critical:!0,create:e=>new D(e.bus)};function A(e,t){return JSON.stringify([e,t])}function j(e){return Object.freeze({kind:e.kind,schemaVersion:e.schemaVersion,version:e.version,build:e.build})}var M=class extends Error{key;incomingOwner;existingOwner;constructor(e,t,n){let r=t===n?`Duplicate builder key '${e}' within owner '${t}'`:`Builder key '${e}' from owner '${t}' collides with owner '${n}'`;super(r),this.key=e,this.incomingOwner=t,this.existingOwner=n,this.name=`ArtifactViewBuilderCollisionError`}},N=class{owners=new Map;globalIndex=new Map;getBuilder(e,t){return this.globalIndex.get(A(e,t))?.builder}replaceBuildersForOwner(e,t){for(let n of t)if(!Number.isInteger(n.version)||n.version<1)throw Error(`Builder for '${A(n.kind,n.schemaVersion)}' from owner '${e}' has non-positive version ${String(n.version)}`);let n=new Map;for(let r of t){let t=A(r.kind,r.schemaVersion);if(n.has(t))throw new M(t,e,e);n.set(t,j(r))}for(let t of n.keys()){let n=this.globalIndex.get(t);if(n&&n.owner!==e)throw new M(t,e,n.owner)}n.size===0?this.owners.delete(e):this.owners.set(e,[...n.values()]),this.rebuildGlobalIndex()}removeBuildersForOwner(e){this.owners.has(e)&&(this.owners.delete(e),this.rebuildGlobalIndex())}getBuildersForOwner(e){let t=this.owners.get(e);if(t)return[...t]}clear(){this.owners.clear(),this.globalIndex.clear()}destroy(){this.clear()}rebuildGlobalIndex(){let e=new Map;for(let[t,n]of this.owners)for(let r of n){let n=A(r.kind,r.schemaVersion);e.set(n,{owner:t,builder:r})}this.globalIndex=e}};const P=5;function F(e){if(e.target.refClass===`artifact`)return{artifactId:e.target.id,label:`[${e.target.kind}] ${e.target.id}`}}function I(e){let t=new Map;for(let n of e){let e=F(n);if(!e)continue;let r=t.get(n.type)??[];r.push(e),t.set(n.type,r)}if(t.size!==0)return{type:`relations`,title:`Relations`,groups:[...t.entries()].map(([e,t])=>({type:e,items:t}))}}function L(e){let t=[],n=new Set;for(let r of e){let e=F(r);!e||n.has(e.artifactId)||(n.add(e.artifactId),t.push(e))}return{breadcrumbs:[],related:t}}function R(e){if(!e.confidence?.basis)return;let t=[];for(let n of e.confidence.basis){let e=n.evidenceRef;e?.refClass===`evidence`&&t.push({kind:e.kind,id:e.id,...e.locator?{locator:e.locator}:{}})}if(t.length!==0)return{type:`evidence`,title:`Evidence`,items:t}}function z(e,t,n){let r=[];if(n===`full`){let t=I(e.relations);t&&r.push(t);let n=R(e);n&&r.push(n)}return{title:m(e.data,t.titlePath),artifact:{id:e.id,kind:e.kind,revision:e.revision},navigation:L(e.relations),sections:r,links:{}}}var B=class extends f{schemaRegistry;builderRegistry;constructor(e,t,n){super(e),this.schemaRegistry=t,this.builderRegistry=n}async onInit(){this.registerHandler(l.artifact.view.resolve,async e=>{let{ref:t,level:n,affordance:r,params:i}=c.parse(e.payload),a=await this.resolve(t,n,r,i);e.setResult(a)})}async resolve(e,t,n,r){let i=await this.bus.requestOptional(o.resolve,{ref:e});if(!i.handled||i.data.artifact===null)return{status:`artifact-not-found`,view:null};let a=i.data.artifact,c=this.schemaRegistry.getKind(a.kind,a.schemaVersion);if(c===void 0)return{status:`not-rendered`,view:null};let l=this.builderRegistry.getBuilder(a.kind,a.schemaVersion);if(l===void 0)return{status:`not-rendered`,view:null};let u=z(a,c,t),d=u.sections,f=u.navigation,p=l.version,m=await l.build({artifact:a,level:t,affordance:n,params:r,genericSections:u.sections,genericNavigation:u.navigation,relations:a.relations});if(m!==void 0){if(`render`in m&&m.render===!1)return{status:`not-rendered`,view:null};`sections`in m&&(d=m.sections??d),`navigation`in m&&(f=m.navigation??f)}let h={title:u.title,artifact:u.artifact,navigation:f,sections:[...d],links:u.links};return{status:`ok`,view:s.parse(h),builderVersion:p,sourceRevision:e.revision}}};function V(e){return structuredClone(e)}var H=class extends f{bindings=new Map;constructor(e){super(e)}async onInit(){this.registerHandler(h.surfaceBinding.register,e=>{this.registerBinding(e.payload),e.setResult({registered:!0})}),this.registerHandler(h.surfaceBinding.list,e=>{let{id:t,provider:n,namespace:r}=e.payload,i=[...this.bindings.values()].filter(e=>(!t||e.id===t)&&(!n||e.provider===n)&&(!r||e.namespace===r)).map(V);e.setResult({bindings:i})})}registerBinding(e){let t=this.bindings.get(e.id);if(t){if(i(t)!==i(e))throw Error(`Surface binding '${e.id}' is already registered with a different definition`);return}this.bindings.set(e.id,V(e)),this.bus.emit(h.surfaceBinding.changed,{id:e.id,provider:e.provider})}deregisterBinding(e){let t=this.bindings.get(e);t&&(this.bindings.delete(e),this.bus.emit(h.surfaceBinding.changed,{id:e,provider:t.provider}))}getBinding(e){let t=this.bindings.get(e);return t?V(t):void 0}onDestroy(){this.bindings.clear()}},U=class{queues=new Map;activeLeases=new Map;pendingAcquisitions=new Set;authorizedRequests=new Map;consumedAuthorizedRequestIds=new Set;acceptingAcquisitions=!0;destroyPromise;destroy(){return this.acceptingAcquisitions=!1,this.destroyPromise??=this.drain(),this.destroyPromise}acquire(e){if(!this.acceptingAcquisitions)return Promise.reject(Error(`Materialization operation coordinator is destroyed`));let t=this.acquireAdmitted(e);return this.pendingAcquisitions.add(t),t.then(()=>this.pendingAcquisitions.delete(t),()=>this.pendingAcquisitions.delete(t)),t}async acquireAdmitted(e){let t=W(e),n=new Set,r=[];for(let e of G(t))r.push(await this.acquireKey(e)),n.add(e);let i={id:crypto.randomUUID(),scope:t},a,o=new Promise(e=>{a=e});return this.activeLeases.set(i.id,{lease:i,heldKeys:n,releases:r,settled:o,settle:a,released:!1}),i}release(e){let t=this.requireActiveLease(e);t.released=!0,this.activeLeases.delete(e.id);for(let e of t.releases.reverse())e();t.settle()}async extend(e,t){let n=this.requireActiveLease(e),r=W(t);if(r.artifactId!==e.scope.artifactId)throw Error(`A materialization operation lease cannot be extended to another artifact`);let i=G(r).filter(e=>!n.heldKeys.has(e)),a=[...n.heldKeys].filter(e=>e.startsWith(`provider:`)).at(-1);if(a&&i.some(e=>q(e,a)<0))throw Error(`Materialization operation lease extension violates lock ordering`);for(let e of i)n.releases.push(await this.acquireKey(e)),n.heldKeys.add(e)}async runExclusive(e,t,n,r){let i=W(e);if(n){if(this.consumedAuthorizedRequestIds.has(n))throw Error(`Materialization operation authorization has already been consumed`);let e=this.authorizedRequests.get(n);if(e){this.authorizedRequests.delete(n),this.consumedAuthorizedRequestIds.add(n);let a=this.activeLeases.get(e.leaseId);if(!r?.local||!a||e.scopeKey!==J(i))throw Error(`Materialization operation authorization does not match this scope`);return t(a.lease)}}let a=await this.acquire(i);try{return await t(a)}finally{this.release(a)}}async runAuthorizedRequest(e,t,n){let r=this.requireActiveLease(e),i=W(t);if(!G(i).every(e=>r.heldKeys.has(e)))throw Error(`Materialization operation authorization requires a lease for the full scope`);let a=crypto.randomUUID();this.authorizedRequests.set(a,{leaseId:e.id,scopeKey:J(i)});try{return await n(a)}finally{this.authorizedRequests.delete(a),this.consumedAuthorizedRequestIds.delete(a)}}requireActiveLease(e){let t=this.activeLeases.get(e.id);if(!t||t.released||t.lease!==e)throw Error(`Materialization operation lease is no longer active`);return t}async acquireKey(e){let t=this.queues.get(e)??Promise.resolve(),n,r=new Promise(e=>{n=e}),i=t.then(()=>r);return this.queues.set(e,i),await t,()=>{n(),this.queues.get(e)===i&&this.queues.delete(e)}}async drain(){for(;this.pendingAcquisitions.size>0||this.activeLeases.size>0;)await Promise.allSettled([...this.pendingAcquisitions,...[...this.activeLeases.values()].map(e=>e.settled)])}};function W(e){if(!e.artifactId)throw Error(`Materialization operation scope requires an artifactId`);let t=[...new Map((e.providerObjects??[]).map(e=>[K(e),e])).values()].sort((e,t)=>q(K(e),K(t)));return t.length>0?{artifactId:e.artifactId,providerObjects:t}:{artifactId:e.artifactId}}function G(e){return[`artifact:${e.artifactId}`,...(e.providerObjects??[]).map(K)]}function K(e){if(!e.provider||!e.externalId)throw Error(`Materialization provider objects require provider and externalId`);return`provider:${JSON.stringify([e.provider,e.externalId])}`}function q(e,t){return e===t?0:e<t?-1:1}function J(e){return JSON.stringify(G(e))}const Y=d(`surface-binding-registry`),X=d(`artifact-view-builder-registry`),Z=d(`artifact-view-service`),Q=d(`materialization-operation-coordinator`),$={name:Q.name,displayName:`Materialization Operation Coordinator`,version:`0.1.0`,critical:!0,create:()=>new U},ee={name:Y.name,displayName:`Surface Binding Registry`,version:`0.1.0`,critical:!0,create:e=>new H(e.bus)},te={name:X.name,displayName:`Artifact View Builder Registry`,version:`0.1.0`,critical:!0,create:()=>new N},ne={name:Z.name,displayName:`Artifact View Service`,version:`0.1.0`,critical:!0,dependencies:[u(O.name),u(X.name)],create:e=>{let t=e.getService(O),n=e.getService(X);if(t===void 0)throw Error(`ArtifactSchemaRegistry is not available for ArtifactViewService`);if(n===void 0)throw Error(`ArtifactViewBuilderRegistry is not available for ArtifactViewService`);return new B(e.bus,t,n)}};export{k as _,te as a,ee as c,B as d,P as f,O as g,N as h,Y as i,U as l,M as m,Z as n,ne as o,z as p,Q as r,$ as s,X as t,H as u,D as v};
1
+ import{o as e}from"./chunk-DTipWd-i.mjs";import{t}from"./ajv-IlnfOGAj.mjs";import{t as n}from"./2020-CpDjcHDh.mjs";import{t as r}from"./dist-DeI9zYMP.mjs";import{canonicalStringify as i}from"@makaio/framework/utils";import{ArtifactKindRegistrationSchema as a,ArtifactSubjects as o,ArtifactViewModelSchema as s,ArtifactViewResolveRequestSchema as c,MaterializationSubjects as l,dep as u,extensionToken as d}from"@makaio/framework/contracts";import{BaseService as f}from"@makaio/framework/service-base";import{ARTIFACT_VALUE_TYPE_KEYWORD as p,readArtifactTitle as m}from"@makaio/framework/contracts/artifact";import{MaterializationSubjects as h}from"@makaio/framework/contracts/materialization";var g=e(t(),1),_=e(n(),1),v=e(r(),1);function y(e){try{let t={allErrors:!0,strict:!1,strictSchema:!0},n=e.dataSchema.$schema===`https://json-schema.org/draft/2020-12/schema`?new _.default(t):new g.default(t);(0,v.default)(n),n.addKeyword({keyword:p,schemaType:`string`,valid:!0}),n.compile(e.dataSchema)}catch(t){throw Error(`Invalid data schema for artifact kind '${e.kind}' version '${e.schemaVersion}': ${t instanceof Error?t.message:String(t)}`,{cause:t})}}const b=[{type:`supersedes`,symmetry:`asymmetric`},{type:`contradicts`,symmetry:`symmetric`},{type:`derives_from`,symmetry:`asymmetric`},{type:`responds_to`,symmetry:`asymmetric`},{type:`contains`,symmetry:`asymmetric`},{type:`refines`,symmetry:`asymmetric`},{type:`scopes`,symmetry:`asymmetric`},{type:`references`,symmetry:`asymmetric`},{type:`evidenced_by`,symmetry:`asymmetric`}],x={extension:0,"factory-repo":1,"target-repo":2},S={source:`extension`,ownerKey:`extension:bus`};function C(e){return`${e.source}:${e.ownerKey}`}function w(e,t){return e.source===t.source&&e.ownerKey===t.ownerKey}function T(e){return structuredClone(e)}function E(e,t){return`${e}@${t}`}var D=class extends f{kinds=new Map;kindContributions=new Map;nextKindContributionOrder=0;relationTypes=new Map;constructor(e){super(e)}async onInit(){for(let e of b)this.relationTypes.set(e.type,e);this.registerHandler(o.kind.register,e=>{this.registerKind(e.payload),e.setResult({registered:!0})}),this.registerHandler(o.kind.list,e=>{let{kind:t}=e.payload,n=[...this.kinds.values()].filter(e=>!t||e.kind===t).map(T);e.setResult({kinds:n})}),this.registerHandler(o[`relation-type`].register,e=>{this.storeRelationType(e.payload),e.setResult({registered:!0})}),this.registerHandler(o[`relation-type`].list,e=>{let{type:t}=e.payload,n=[...this.relationTypes.values()].filter(e=>!t||e.type===t).map(T);e.setResult({relationTypes:n})})}compareKindContributions(e,t){let n=x[e.owner.source]-x[t.owner.source];return n===0?e.owner.source===`extension`?t.order-e.order:e.order-t.order:n}findSameTierRepoConflict(e,t,n){return[...e.values()].find(e=>!w(e.owner,t)&&e.owner.source===t.source&&t.source!==`extension`&&e.order<=n)}recomputeKindWinner(e){let t=this.kindContributions.get(e),n=this.kinds.get(e);if(t===void 0||t.size===0){this.kindContributions.delete(e),this.kinds.delete(e),this.emitKindChangedFromKey(e,n);return}let r;for(let e of t.values())(r===void 0||this.compareKindContributions(e,r)<0)&&(r=e);let i=r;this.kinds.set(e,T(i.registration)),JSON.stringify(n)!==JSON.stringify(i.registration)&&this.bus.emit(o.kind.changed,{kind:i.registration.kind,schemaVersion:i.registration.schemaVersion})}emitKindChangedFromKey(e,t){t!==void 0&&this.bus.emit(o.kind.changed,{kind:t.kind,schemaVersion:t.schemaVersion})}registerKind(e,t=S){e=a.parse(e),y(e);let n=E(e.kind,e.schemaVersion),r=this.kindContributions.get(n)??new Map,i=C(t),o=r.get(i),s=t.source===`extension`?this.nextKindContributionOrder:o?.order??this.nextKindContributionOrder,c=this.findSameTierRepoConflict(r,t,s);if(c!==void 0){console.warn(`[ArtifactSchemaRegistry] Artifact kind '${n}' is already registered by '${c.owner.ownerKey}' at the same priority; keeping the existing owner.`);return}r.set(i,{owner:t,registration:T(e),order:t.source===`extension`||o===void 0?this.nextKindContributionOrder++:o.order}),this.kindContributions.set(n,r),this.recomputeKindWinner(n)}deregisterKind(e,t,n=S){let r=E(e,t),i=this.kindContributions.get(r);i!==void 0&&(i.delete(C(n)),this.recomputeKindWinner(r))}replaceKindRegistrationsForOwner(e,t){let n=t.map(e=>a.parse(e));for(let e of n)y(e);let r=new Set,i=C(e),o=new Map;for(let[e,t]of this.kindContributions.entries()){let n=t.get(i);n!==void 0&&(o.set(e,n.order),t.delete(i),r.add(e))}for(let t of n){let n=E(t.kind,t.schemaVersion),a=this.kindContributions.get(n)??new Map,s=e.source===`extension`?void 0:o.get(n),c=s??this.nextKindContributionOrder,l=this.findSameTierRepoConflict(a,e,c);if(l!==void 0){console.warn(`[ArtifactSchemaRegistry] Artifact kind '${n}' is already registered by '${l.owner.ownerKey}' at the same priority; keeping the existing owner.`);continue}a.set(i,{owner:e,registration:T(t),order:s??this.nextKindContributionOrder++}),this.kindContributions.set(n,a),r.add(n)}for(let e of r)this.recomputeKindWinner(e)}storeRelationType(e){let t=this.relationTypes.get(e.type);if(t){if(t.symmetry!==e.symmetry)throw Error(`Relation type '${e.type}' is already registered with different symmetry (existing: '${t.symmetry}', new: '${e.symmetry}')`);return}this.relationTypes.set(e.type,T(e))}getKind(e,t){let n=this.kinds.get(E(e,t));return n?T(n):void 0}getRelationType(e){let t=this.relationTypes.get(e);return t?T(t):void 0}onDestroy(){this.kinds.clear(),this.kindContributions.clear(),this.relationTypes.clear(),this.nextKindContributionOrder=0}};const O=d(`artifact-schema-registry`),k={name:O.name,displayName:`Artifact Schema Registry`,version:`0.1.0`,critical:!0,create:e=>new D(e.bus)};function A(e,t){return JSON.stringify([e,t])}function j(e){return Object.freeze({kind:e.kind,schemaVersion:e.schemaVersion,version:e.version,build:e.build})}var M=class extends Error{key;incomingOwner;existingOwner;constructor(e,t,n){let r=t===n?`Duplicate builder key '${e}' within owner '${t}'`:`Builder key '${e}' from owner '${t}' collides with owner '${n}'`;super(r),this.key=e,this.incomingOwner=t,this.existingOwner=n,this.name=`ArtifactViewBuilderCollisionError`}},N=class{owners=new Map;globalIndex=new Map;getBuilder(e,t){return this.globalIndex.get(A(e,t))?.builder}replaceBuildersForOwner(e,t){for(let n of t)if(!Number.isInteger(n.version)||n.version<1)throw Error(`Builder for '${A(n.kind,n.schemaVersion)}' from owner '${e}' has non-positive version ${String(n.version)}`);let n=new Map;for(let r of t){let t=A(r.kind,r.schemaVersion);if(n.has(t))throw new M(t,e,e);n.set(t,j(r))}for(let t of n.keys()){let n=this.globalIndex.get(t);if(n&&n.owner!==e)throw new M(t,e,n.owner)}n.size===0?this.owners.delete(e):this.owners.set(e,[...n.values()]),this.rebuildGlobalIndex()}removeBuildersForOwner(e){this.owners.has(e)&&(this.owners.delete(e),this.rebuildGlobalIndex())}getBuildersForOwner(e){let t=this.owners.get(e);if(t)return[...t]}clear(){this.owners.clear(),this.globalIndex.clear()}destroy(){this.clear()}rebuildGlobalIndex(){let e=new Map;for(let[t,n]of this.owners)for(let r of n){let n=A(r.kind,r.schemaVersion);e.set(n,{owner:t,builder:r})}this.globalIndex=e}};const P=5;function F(e){if(e.target.refClass===`artifact`)return{artifactId:e.target.id,label:`[${e.target.kind}] ${e.target.id}`}}function I(e){let t=new Map;for(let n of e){let e=F(n);if(!e)continue;let r=t.get(n.type)??[];r.push(e),t.set(n.type,r)}if(t.size!==0)return{type:`relations`,title:`Relations`,groups:[...t.entries()].map(([e,t])=>({type:e,items:t}))}}function L(e){let t=[],n=new Set;for(let r of e){let e=F(r);!e||n.has(e.artifactId)||(n.add(e.artifactId),t.push(e))}return{breadcrumbs:[],related:t}}function R(e){if(!e.confidence?.basis)return;let t=[];for(let n of e.confidence.basis){let e=n.evidenceRef;e?.refClass===`evidence`&&t.push({kind:e.kind,id:e.id,...e.locator?{locator:e.locator}:{}})}if(t.length!==0)return{type:`evidence`,title:`Evidence`,items:t}}function z(e,t,n){let r=[];if(n===`full`){let t=I(e.relations);t&&r.push(t);let n=R(e);n&&r.push(n)}return{title:m(e.data,t.titlePath),artifact:{id:e.id,kind:e.kind,revision:e.revision},navigation:L(e.relations),sections:r,links:{}}}var B=class extends f{schemaRegistry;builderRegistry;constructor(e,t,n){super(e),this.schemaRegistry=t,this.builderRegistry=n}async onInit(){this.registerHandler(l.artifact.view.resolve,async e=>{let{ref:t,level:n,affordance:r,params:i}=c.parse(e.payload),a=await this.resolve(t,n,r,i);e.setResult(a)})}async resolve(e,t,n,r){let i=await this.bus.requestOptional(o.resolve,{ref:e});if(!i.handled||i.data.artifact===null)return{status:`artifact-not-found`,view:null};let a=i.data.artifact,c=this.schemaRegistry.getKind(a.kind,a.schemaVersion);if(c===void 0)return{status:`not-rendered`,view:null};let l=this.builderRegistry.getBuilder(a.kind,a.schemaVersion);if(l===void 0)return{status:`not-rendered`,view:null};let u=z(a,c,t),d=u.sections,f=u.navigation,p=l.version,m=await l.build({artifact:a,level:t,affordance:n,params:r,genericSections:u.sections,genericNavigation:u.navigation,relations:a.relations});if(m!==void 0){if(`render`in m&&m.render===!1)return{status:`not-rendered`,view:null};`sections`in m&&(d=m.sections??d),`navigation`in m&&(f=m.navigation??f)}let h={title:u.title,artifact:u.artifact,navigation:f,sections:[...d],links:u.links};return{status:`ok`,view:s.parse(h),builderVersion:p,sourceRevision:e.revision}}};function V(e){return structuredClone(e)}var H=class extends f{bindings=new Map;constructor(e){super(e)}async onInit(){this.registerHandler(h.surfaceBinding.register,e=>{this.registerBinding(e.payload),e.setResult({registered:!0})}),this.registerHandler(h.surfaceBinding.list,e=>{let{id:t,provider:n,namespace:r}=e.payload,i=[...this.bindings.values()].filter(e=>(!t||e.id===t)&&(!n||e.provider===n)&&(!r||e.namespace===r)).map(V);e.setResult({bindings:i})})}registerBinding(e){let t=this.bindings.get(e.id);if(t){if(i(t)!==i(e))throw Error(`Surface binding '${e.id}' is already registered with a different definition`);return}this.bindings.set(e.id,V(e)),this.bus.emit(h.surfaceBinding.changed,{id:e.id,provider:e.provider})}deregisterBinding(e){let t=this.bindings.get(e);t&&(this.bindings.delete(e),this.bus.emit(h.surfaceBinding.changed,{id:e,provider:t.provider}))}getBinding(e){let t=this.bindings.get(e);return t?V(t):void 0}onDestroy(){this.bindings.clear()}},U=class{queues=new Map;activeLeases=new Map;pendingAcquisitions=new Set;authorizedRequests=new Map;consumedAuthorizedRequestIds=new Set;acceptingAcquisitions=!0;destroyPromise;destroy(){return this.acceptingAcquisitions=!1,this.destroyPromise??=this.drain(),this.destroyPromise}acquire(e){if(!this.acceptingAcquisitions)return Promise.reject(Error(`Materialization operation coordinator is destroyed`));let t=this.acquireAdmitted(e);return this.pendingAcquisitions.add(t),t.then(()=>this.pendingAcquisitions.delete(t),()=>this.pendingAcquisitions.delete(t)),t}async acquireAdmitted(e){let t=W(e),n=new Set,r=[];for(let e of G(t))r.push(await this.acquireKey(e)),n.add(e);let i={id:crypto.randomUUID(),scope:t},a,o=new Promise(e=>{a=e});return this.activeLeases.set(i.id,{lease:i,heldKeys:n,releases:r,settled:o,settle:a,released:!1}),i}release(e){let t=this.requireActiveLease(e);t.released=!0,this.activeLeases.delete(e.id);for(let e of t.releases.reverse())e();t.settle()}async extend(e,t){let n=this.requireActiveLease(e),r=W(t);if(r.artifactId!==e.scope.artifactId)throw Error(`A materialization operation lease cannot be extended to another artifact`);let i=G(r).filter(e=>!n.heldKeys.has(e)),a=[...n.heldKeys].filter(e=>e.startsWith(`provider:`)).at(-1);if(a&&i.some(e=>q(e,a)<0))throw Error(`Materialization operation lease extension violates lock ordering`);for(let e of i)n.releases.push(await this.acquireKey(e)),n.heldKeys.add(e)}async runExclusive(e,t,n,r){let i=W(e);if(n){if(this.consumedAuthorizedRequestIds.has(n))throw Error(`Materialization operation authorization has already been consumed`);let e=this.authorizedRequests.get(n);if(e){this.authorizedRequests.delete(n),this.consumedAuthorizedRequestIds.add(n);let a=this.activeLeases.get(e.leaseId);if(!r?.local||!a||e.scopeKey!==J(i))throw Error(`Materialization operation authorization does not match this scope`);return t(a.lease)}}let a=await this.acquire(i);try{return await t(a)}finally{this.release(a)}}async runAuthorizedRequest(e,t,n){let r=this.requireActiveLease(e),i=W(t);if(!G(i).every(e=>r.heldKeys.has(e)))throw Error(`Materialization operation authorization requires a lease for the full scope`);let a=crypto.randomUUID();this.authorizedRequests.set(a,{leaseId:e.id,scopeKey:J(i)});try{return await n(a)}finally{this.authorizedRequests.delete(a),this.consumedAuthorizedRequestIds.delete(a)}}requireActiveLease(e){let t=this.activeLeases.get(e.id);if(!t||t.released||t.lease!==e)throw Error(`Materialization operation lease is no longer active`);return t}async acquireKey(e){let t=this.queues.get(e)??Promise.resolve(),n,r=new Promise(e=>{n=e}),i=t.then(()=>r);return this.queues.set(e,i),await t,()=>{n(),this.queues.get(e)===i&&this.queues.delete(e)}}async drain(){for(;this.pendingAcquisitions.size>0||this.activeLeases.size>0;)await Promise.allSettled([...this.pendingAcquisitions,...[...this.activeLeases.values()].map(e=>e.settled)])}};function W(e){if(!e.artifactId)throw Error(`Materialization operation scope requires an artifactId`);let t=[...new Map((e.providerObjects??[]).map(e=>[K(e),e])).values()].sort((e,t)=>q(K(e),K(t)));return t.length>0?{artifactId:e.artifactId,providerObjects:t}:{artifactId:e.artifactId}}function G(e){return[`artifact:${e.artifactId}`,...(e.providerObjects??[]).map(K)]}function K(e){if(!e.provider||!e.externalId)throw Error(`Materialization provider objects require provider and externalId`);return`provider:${JSON.stringify([e.provider,e.externalId])}`}function q(e,t){return e===t?0:e<t?-1:1}function J(e){return JSON.stringify(G(e))}const Y=d(`surface-binding-registry`),X=d(`artifact-view-builder-registry`),Z=d(`artifact-view-service`),Q=d(`materialization-operation-coordinator`),$={name:Q.name,displayName:`Materialization Operation Coordinator`,version:`0.1.0`,critical:!0,create:()=>new U},ee={name:Y.name,displayName:`Surface Binding Registry`,version:`0.1.0`,critical:!0,create:e=>new H(e.bus)},te={name:X.name,displayName:`Artifact View Builder Registry`,version:`0.1.0`,critical:!0,create:()=>new N},ne={name:Z.name,displayName:`Artifact View Service`,version:`0.1.0`,critical:!0,dependencies:[u(O.name),u(X.name)],create:e=>{let t=e.getService(O),n=e.getService(X);if(t===void 0)throw Error(`ArtifactSchemaRegistry is not available for ArtifactViewService`);if(n===void 0)throw Error(`ArtifactViewBuilderRegistry is not available for ArtifactViewService`);return new B(e.bus,t,n)}};export{k as _,te as a,ee as c,B as d,P as f,O as g,N as h,Y as i,U as l,M as m,Z as n,ne as o,z as p,Q as r,$ as s,X as t,H as u,D as v};
@@ -1,6 +1,6 @@
1
- import { IMakaioBus } from "@makaio/framework/bus";
2
1
  import * as _$_makaio_contracts0 from "@makaio/framework/contracts";
3
2
  import { ArtifactKindRegistration, ExtensionServiceLifecycle, MakaioNodeExtension, RelationTypeRegistration } from "@makaio/framework/contracts";
3
+ import { IMakaioBus } from "@makaio/framework/bus";
4
4
  import { BaseService } from "@makaio/framework/service-base";
5
5
  import { ArtifactViewBuilder, SurfaceBindingRegistration } from "@makaio/framework/contracts/materialization";
6
6
 
@@ -1 +1 @@
1
- import{t as e}from"./version-3xWJDCeF.mjs";import{z as t}from"zod";import*as n from"node:path";const r=t.string().trim().min(1),i=t.number().int().finite().nonnegative().describe(`Unix epoch timestamp in milliseconds`);function a(e){return n.posix.isAbsolute(e)||n.win32.isAbsolute(e)}const o=t.string().trim().min(1).refine(a,{message:`Path must be absolute`}),s=t.string().min(1).regex(/^[A-Za-z0-9][A-Za-z0-9._-]*$/,`Profile name must be a safe path component`),c=s,l=t.object({id:r,clientId:r,name:s,description:t.string().nullable(),configDir:o,isDefault:t.boolean(),createdAt:i,updatedAt:i}),u=t.record(t.string(),t.string()),d=t.enum([`auth-only`,`full`,`empty`]),f={"profile.create":{request:t.object({clientId:r,name:s,description:t.string().optional()}),response:t.object({profile:l})},"profile.list":{request:t.object({clientId:r}),response:t.object({profiles:t.array(l)})},"profile.get":{request:t.object({clientId:r,name:s}),response:t.object({profile:l.nullable()})},"profile.update":{request:t.object({clientId:r,name:s,description:t.string().optional()}),response:t.object({profile:l})},"profile.delete":{request:t.object({clientId:r,name:s}),response:t.object({success:t.boolean()})},"profile.setDefault":{request:t.object({clientId:r,name:s}),response:t.object({profile:l})}},p={"sessionConfig.create":{request:t.object({clientId:r,leaseId:c,ownerSessionId:r.optional(),profileName:s.optional(),baseConfigDir:o.optional(),projectDir:o.optional(),configInheritance:d.optional()}),response:t.object({sessionDir:o,env:u,authMaterialized:t.boolean()})},"sessionConfig.destroy":{request:t.object({clientId:r,leaseId:c}),response:t.object({success:t.boolean()})},"sessionConfig.cleanup":{request:t.object({clientId:r.optional()}),response:t.object({removed:t.array(o)})}},m=t.object({sessionDir:o,baseConfigDir:o,projectDir:o.optional(),platform:t.enum([`darwin`,`linux`,`win32`]),configInheritance:d}),h=t.object({sessionDir:o,platform:t.enum([`darwin`,`linux`,`win32`])}),g=t.object({success:t.boolean()}),_=t.object({env:t.record(t.string(),t.string()).optional(),authMaterialized:t.boolean()}),v=t.enum([`managed-install`,`profile-create`,`session-create`]),y={request:t.object({clientId:r,configDir:o,phase:v,binaryVersion:e.optional(),adapterName:t.string().min(1).optional(),projectDir:o.optional()}),response:t.object({primed:t.boolean()})};export{a as _,f as a,d as c,_ as d,h as f,r as g,i as h,l as i,c as l,o as m,y as n,p as o,g as p,s as r,u as s,v as t,m as u};
1
+ import{t as e}from"./version-sDSWOMn_.mjs";import{z as t}from"zod";import*as n from"node:path";const r=t.string().trim().min(1),i=t.number().int().finite().nonnegative().describe(`Unix epoch timestamp in milliseconds`);function a(e){return n.posix.isAbsolute(e)||n.win32.isAbsolute(e)}const o=t.string().trim().min(1).refine(a,{message:`Path must be absolute`}),s=t.string().min(1).regex(/^[A-Za-z0-9][A-Za-z0-9._-]*$/,`Profile name must be a safe path component`),c=s,l=t.object({id:r,clientId:r,name:s,description:t.string().nullable(),configDir:o,isDefault:t.boolean(),createdAt:i,updatedAt:i}),u=t.record(t.string(),t.string()),d=t.enum([`auth-only`,`full`,`empty`]),f={"profile.create":{request:t.object({clientId:r,name:s,description:t.string().optional()}),response:t.object({profile:l})},"profile.list":{request:t.object({clientId:r}),response:t.object({profiles:t.array(l)})},"profile.get":{request:t.object({clientId:r,name:s}),response:t.object({profile:l.nullable()})},"profile.update":{request:t.object({clientId:r,name:s,description:t.string().optional()}),response:t.object({profile:l})},"profile.delete":{request:t.object({clientId:r,name:s}),response:t.object({success:t.boolean()})},"profile.setDefault":{request:t.object({clientId:r,name:s}),response:t.object({profile:l})}},p={"sessionConfig.create":{request:t.object({clientId:r,leaseId:c,ownerSessionId:r.optional(),profileName:s.optional(),baseConfigDir:o.optional(),projectDir:o.optional(),configInheritance:d.optional()}),response:t.object({sessionDir:o,env:u,authMaterialized:t.boolean()})},"sessionConfig.destroy":{request:t.object({clientId:r,leaseId:c}),response:t.object({success:t.boolean()})},"sessionConfig.cleanup":{request:t.object({clientId:r.optional()}),response:t.object({removed:t.array(o)})}},m=t.object({sessionDir:o,baseConfigDir:o,projectDir:o.optional(),platform:t.enum([`darwin`,`linux`,`win32`]),configInheritance:d}),h=t.object({sessionDir:o,platform:t.enum([`darwin`,`linux`,`win32`])}),g=t.object({success:t.boolean()}),_=t.object({env:t.record(t.string(),t.string()).optional(),authMaterialized:t.boolean()}),v=t.enum([`managed-install`,`profile-create`,`session-create`]),y={request:t.object({clientId:r,configDir:o,phase:v,binaryVersion:e.optional(),adapterName:t.string().min(1).optional(),projectDir:o.optional()}),response:t.object({primed:t.boolean()})};export{a as _,f as a,d as c,_ as d,h as f,r as g,i as h,l as i,c as l,o as m,y as n,p as o,g as p,s as r,u as s,v as t,m as u};
@@ -1 +1 @@
1
- import{t as e}from"./resolved-ONt3rOMh.mjs";import{r as t,t as n}from"./definition-YGj42UeO.mjs";import{z as r}from"zod";const i=r.object({state:r.literal(`resolved`),providerConfigId:r.string().trim().min(1),definitionId:r.string().trim().min(1),endpointOverrides:n.optional(),auth:e,capabilities:t.optional()}).strict().superRefine((e,t)=>{e.auth.method.owner===`provider`&&e.auth.method.providerDefinitionId!==e.definitionId&&t.addIssue({code:r.ZodIssueCode.custom,message:`Provider-owned authentication must belong to the resolved provider definition.`,path:[`auth`,`method`,`providerDefinitionId`]})}),a=r.object({state:r.literal(`unresolved`)}).strict(),o=r.discriminatedUnion(`state`,[i,a]);export{i as n,a as r,o as t};
1
+ import{t as e}from"./resolved-M6PyrgFr.mjs";import{r as t,t as n}from"./definition-Dqw0YJdi.mjs";import{z as r}from"zod";const i=r.object({state:r.literal(`resolved`),providerConfigId:r.string().trim().min(1),definitionId:r.string().trim().min(1),endpointOverrides:n.optional(),auth:e,capabilities:t.optional()}).strict().superRefine((e,t)=>{e.auth.method.owner===`provider`&&e.auth.method.providerDefinitionId!==e.definitionId&&t.addIssue({code:r.ZodIssueCode.custom,message:`Provider-owned authentication must belong to the resolved provider definition.`,path:[`auth`,`method`,`providerDefinitionId`]})}),a=r.object({state:r.literal(`unresolved`)}).strict(),o=r.discriminatedUnion(`state`,[i,a]);export{i as n,a as r,o as t};
@@ -1 +1 @@
1
- import{r as e}from"./namespace-BFlSY040.mjs";import{CredentialSubjects as t}from"@makaio/framework/contracts";var n=class extends Error{code;adapterName;providerConfigId;constructor(e,t,n){super(`Provider context resolution failed (${e}) for adapter "${t}".`),this.code=e,this.adapterName=t,this.providerConfigId=n,this.name=`RuntimeProviderContextResolutionError`}};async function r(t,r){let i=await t.request(e.resolveAdapterRuntimeSnapshot,r);if(i.status===`error`)throw new n(i.code,r.adapterName,r.providerConfigId);let a=i.runtime;if(a.adapterName!==r.adapterName||a.snapshot.context.providerConfigId!==r.providerConfigId)throw new n(`snapshot-identity-mismatch`,r.adapterName,r.providerConfigId);let o=a.snapshot.context;if(o.state!==`resolved`)throw new n(`provider-context-unresolved`,r.adapterName,r.providerConfigId);return o}var i=class extends Error{code;constructor(e){super(`[activateProviderContext] ${e===`manager-unavailable`?`the selected account manager is unavailable`:e===`account-not-found`?`the selected account no longer exists`:`the selected account could not be activated`}.`),this.code=e,this.name=`ProviderContextActivationError`}},a=class extends Error{constructor(){super(`Provider context account activation rollback failed.`),this.name=`ProviderContextActivationRollbackError`}},o=class{bus;transactionId;finalization;constructor(e,t){this.bus=e,this.transactionId=t}commit(){return this.finalize(`commit`)}rollback(){return this.finalize(`rollback`)}finalize(e){if(this.finalization!==void 0)return this.finalization.action===e?this.finalization.promise:Promise.reject(new i(`activation-failed`));let t=this.requestFinalization(e);return this.finalization={action:e,promise:t},t}async requestFinalization(e){try{if(e===`commit`){let e=await this.bus.requestOptional(t.activation.commit,{transactionId:this.transactionId});if(!e.handled)throw new i(`activation-failed`);if(!e.data.success)throw e.data.code===`commit-rollback-failed`?new a:new i(`activation-failed`);return}let n=await this.bus.requestOptional(t.activation.rollback,{transactionId:this.transactionId});if(!n.handled)throw new i(`activation-failed`);if(!n.data.success)throw n.data.code===`rollback-failed`?new a:new i(`activation-failed`)}catch(e){throw e instanceof i||e instanceof a?e:new i(`activation-failed`)}}};function s(e){return e.state!==`resolved`||e.auth.mode!==`inferred`||e.auth.account===void 0?null:e}async function c(e,n){let r=s(n);if(r)try{let n=await e.requestOptional(t.activate,{providerContext:r});if(!n.handled)throw new i(`manager-unavailable`);if(!n.data.success)throw new i(n.data.code)}catch(e){throw e instanceof i?e:new i(`activation-failed`)}}async function l(e,n){let r=s(n);if(r)try{let n=await e.requestOptional(t.activation.prepare,{providerContext:r});if(!n.handled)throw new i(`manager-unavailable`);if(!n.data.success)throw new i(n.data.code);return new o(e,n.data.transactionId)}catch(e){throw e instanceof i?e:new i(`activation-failed`)}}export{n as a,l as i,a as n,r as o,c as r,i as t};
1
+ import{r as e}from"./namespace-BCSJz417.mjs";import{CredentialSubjects as t}from"@makaio/framework/contracts";var n=class extends Error{code;adapterName;providerConfigId;constructor(e,t,n){super(`Provider context resolution failed (${e}) for adapter "${t}".`),this.code=e,this.adapterName=t,this.providerConfigId=n,this.name=`RuntimeProviderContextResolutionError`}};async function r(t,r){let i=await t.request(e.resolveAdapterRuntimeSnapshot,r);if(i.status===`error`)throw new n(i.code,r.adapterName,r.providerConfigId);let a=i.runtime;if(a.adapterName!==r.adapterName||a.snapshot.context.providerConfigId!==r.providerConfigId)throw new n(`snapshot-identity-mismatch`,r.adapterName,r.providerConfigId);let o=a.snapshot.context;if(o.state!==`resolved`)throw new n(`provider-context-unresolved`,r.adapterName,r.providerConfigId);return o}var i=class extends Error{code;constructor(e){super(`[activateProviderContext] ${e===`manager-unavailable`?`the selected account manager is unavailable`:e===`account-not-found`?`the selected account no longer exists`:`the selected account could not be activated`}.`),this.code=e,this.name=`ProviderContextActivationError`}},a=class extends Error{constructor(){super(`Provider context account activation rollback failed.`),this.name=`ProviderContextActivationRollbackError`}},o=class{bus;transactionId;finalization;constructor(e,t){this.bus=e,this.transactionId=t}commit(){return this.finalize(`commit`)}rollback(){return this.finalize(`rollback`)}finalize(e){if(this.finalization!==void 0)return this.finalization.action===e?this.finalization.promise:Promise.reject(new i(`activation-failed`));let t=this.requestFinalization(e);return this.finalization={action:e,promise:t},t}async requestFinalization(e){try{if(e===`commit`){let e=await this.bus.requestOptional(t.activation.commit,{transactionId:this.transactionId});if(!e.handled)throw new i(`activation-failed`);if(!e.data.success)throw e.data.code===`commit-rollback-failed`?new a:new i(`activation-failed`);return}let n=await this.bus.requestOptional(t.activation.rollback,{transactionId:this.transactionId});if(!n.handled)throw new i(`activation-failed`);if(!n.data.success)throw n.data.code===`rollback-failed`?new a:new i(`activation-failed`)}catch(e){throw e instanceof i||e instanceof a?e:new i(`activation-failed`)}}};function s(e){return e.state!==`resolved`||e.auth.mode!==`inferred`||e.auth.account===void 0?null:e}async function c(e,n){let r=s(n);if(r)try{let n=await e.requestOptional(t.activate,{providerContext:r});if(!n.handled)throw new i(`manager-unavailable`);if(!n.data.success)throw new i(n.data.code)}catch(e){throw e instanceof i?e:new i(`activation-failed`)}}async function l(e,n){let r=s(n);if(r)try{let n=await e.requestOptional(t.activation.prepare,{providerContext:r});if(!n.handled)throw new i(`manager-unavailable`);if(!n.data.success)throw new i(n.data.code);return new o(e,n.data.transactionId)}catch(e){throw e instanceof i?e:new i(`activation-failed`)}}export{n as a,l as i,a as n,r as o,c as r,i as t};
@@ -1,6 +1,6 @@
1
1
  import { IConfigStorage } from "@makaio/framework/core";
2
- import { IMakaioBus } from "@makaio/framework/bus";
3
2
  import { Config } from "@makaio/framework/contracts";
3
+ import { IMakaioBus } from "@makaio/framework/bus";
4
4
 
5
5
  //#region packages/providers/src/config/index.d.ts
6
6
  /**
@@ -1 +1 @@
1
- import{a as e}from"./json-value-DM-EjTC1.mjs";import{t}from"./zod-json-schema-B1mZz7S4.mjs";import{z as n}from"zod";const r=n.object({kind:n.string().min(1),description:n.string().min(1),parameterSchema:e}),i=n.discriminatedUnion(`success`,[n.object({success:n.literal(!0)}),n.object({success:n.literal(!1),error:n.object({message:n.string()})})]);function a(e){return e}function o(e){let{kind:n,description:i,parameterSchema:a,handler:o}=e,s=r.parse({kind:n,description:i,parameterSchema:t(a,`input`)});return{kind:n,description:i,parameterSchema:a,handler:o,toDescriptor:()=>structuredClone(s)}}export{i,a as n,r,o as t};
1
+ import{a as e}from"./json-value-DM-EjTC1.mjs";import{t}from"./zod-json-schema-DGWHUOK0.mjs";import{z as n}from"zod";const r=n.object({kind:n.string().min(1),description:n.string().min(1),parameterSchema:e}),i=n.discriminatedUnion(`success`,[n.object({success:n.literal(!0)}),n.object({success:n.literal(!1),error:n.object({message:n.string()})})]);function a(e){return e}function o(e){let{kind:n,description:i,parameterSchema:a,handler:o}=e,s=r.parse({kind:n,description:i,parameterSchema:t(a,`input`)});return{kind:n,description:i,parameterSchema:a,handler:o,toDescriptor:()=>structuredClone(s)}}export{i,a as n,r,o as t};
@@ -0,0 +1 @@
1
+ import{z as e}from"zod";const t=e.object({kind:e.string().trim().min(1).regex(/\S/),path:e.string().trim().min(1).regex(/\S/)});function n(e){let n=t.parse(e);return n.kind===`github-cloud`?{kind:n.kind,path:n.path.toLowerCase()}:n}function r(e){let t=n(e);if(t.kind.includes(`:`))throw Error(`Cannot format repository key: kind must not contain ':'`);return`${t.kind}:${t.path}`}function i(e){let r=e.indexOf(`:`);if(r<=0)return null;let i=t.safeParse({kind:e.slice(0,r).trim(),path:e.slice(r+1).trim()});return i.success?n(i.data):null}function a(e,t){let r=n(e),i=n(t);return r.kind===i.kind&&r.path===i.path}export{a,i,r as n,n as r,t};
@@ -1 +1 @@
1
- import{c as e,i as t,l as n,u as r}from"./definitions-CYZTuMdL.mjs";import{i,n as a,r as o,t as s}from"./selection-7SkHsmWs.mjs";import{z as c}from"zod";const l=c.object({mode:c.literal(`explicit`),method:a,definition:e,credentialRefs:c.record(t,s)}).strict(),u=c.object({mode:c.literal(`inferred`),method:o,definition:n,account:i.optional()}).strict(),d=c.object({mode:c.literal(`none`),method:a,definition:r}).strict(),f=c.discriminatedUnion(`mode`,[l,u,d]).superRefine((e,t)=>{if(e.method.methodId!==e.definition.id&&t.addIssue({code:c.ZodIssueCode.custom,message:`Resolved auth method reference must match the resolved method definition ID.`,path:[`definition`,`id`]}),e.mode!==`explicit`)return;let n=new Set(e.definition.fields.map(({id:e})=>e));for(let n of e.definition.fields)n.required&&!Object.prototype.hasOwnProperty.call(e.credentialRefs,n.id)&&t.addIssue({code:c.ZodIssueCode.custom,message:`Missing required credential ref for field "${n.id}".`,path:[`credentialRefs`,n.id]});for(let r of Object.keys(e.credentialRefs))n.has(r)||t.addIssue({code:c.ZodIssueCode.custom,message:`Credential ref field "${r}" is not declared by the resolved auth method.`,path:[`credentialRefs`,r]})});export{f as t};
1
+ import{c as e,i as t,l as n,u as r}from"./definitions-2T95Q-y6.mjs";import{i,n as a,r as o,t as s}from"./selection-BDs7K53w.mjs";import{z as c}from"zod";const l=c.object({mode:c.literal(`explicit`),method:a,definition:e,credentialRefs:c.record(t,s)}).strict(),u=c.object({mode:c.literal(`inferred`),method:o,definition:n,account:i.optional()}).strict(),d=c.object({mode:c.literal(`none`),method:a,definition:r}).strict(),f=c.discriminatedUnion(`mode`,[l,u,d]).superRefine((e,t)=>{if(e.method.methodId!==e.definition.id&&t.addIssue({code:c.ZodIssueCode.custom,message:`Resolved auth method reference must match the resolved method definition ID.`,path:[`definition`,`id`]}),e.mode!==`explicit`)return;let n=new Set(e.definition.fields.map(({id:e})=>e));for(let n of e.definition.fields)n.required&&!Object.prototype.hasOwnProperty.call(e.credentialRefs,n.id)&&t.addIssue({code:c.ZodIssueCode.custom,message:`Missing required credential ref for field "${n.id}".`,path:[`credentialRefs`,n.id]});for(let r of Object.keys(e.credentialRefs))n.has(r)||t.addIssue({code:c.ZodIssueCode.custom,message:`Credential ref field "${r}" is not declared by the resolved auth method.`,path:[`credentialRefs`,r]})});export{f as t};
@@ -1,4 +1,4 @@
1
- import { C as RuleSetOptions, S as Rule, _ as JsonObjectShape, a as JsonObjectSchema, b as NotCondition, c as RuleSetOptionsSchema, d as CompoundCondition, f as Condition, g as JsonObject, h as FieldOperator, i as FieldOperatorSchema, l as ScalarValueSchema, m as FieldCondition, n as ExpressionConditionSchema, o as JsonValueSchema, p as ExpressionCondition, r as FieldConditionSchema, s as RuleSchema, t as ConditionSchema, u as AndCondition, v as JsonPrimitive, w as ScalarValue, x as OrCondition, y as JsonValue } from "../schemas-CM3Ejp-n.mjs";
1
+ import { C as RuleSetOptions, S as Rule, _ as JsonObjectShape, a as JsonObjectSchema, b as NotCondition, c as RuleSetOptionsSchema, d as CompoundCondition, f as Condition, g as JsonObject, h as FieldOperator, i as FieldOperatorSchema, l as ScalarValueSchema, m as FieldCondition, n as ExpressionConditionSchema, o as JsonValueSchema, p as ExpressionCondition, r as FieldConditionSchema, s as RuleSchema, t as ConditionSchema, u as AndCondition, v as JsonPrimitive, w as ScalarValue, x as OrCondition, y as JsonValue } from "../schemas-BLy33xay.mjs";
2
2
 
3
3
  //#region packages/rules/src/evaluator.d.ts
4
4
  /**
@@ -1 +1 @@
1
- import{t as e}from"../esm-DILYVXmW.mjs";import{ConditionSchema as t,ExpressionConditionSchema as n,FieldConditionSchema as r,FieldOperatorSchema as i,JsonObjectSchema as a,JsonValueSchema as o,RuleSchema as s,RuleSetOptionsSchema as c,ScalarValueSchema as l}from"./schemas.mjs";import{compile as u}from"@makaio/framework/expression";const d=new Map,f=new Map;function p(e,t){if(`$and`in e){for(let n of e.$and)if(!p(n,t))return!1;return!0}if(`$or`in e){for(let n of e.$or)if(p(n,t))return!0;return!1}return`$not`in e?!p(e.$not,t):`$expr`in e?!!_(e.$expr).evalSync(t):h(g(t,e.field),e.operator)}function m(e,t,n={}){let{includeDisabled:r=!1}=n,i=[];for(let n of e)!r&&!n.enabled||p(n.condition,t)&&i.push(n);return i}function h(e,t){if(typeof t!=`object`||!t)return e===t;if(`$eq`in t)return e===t.$eq;if(`$ne`in t)return e!==t.$ne;if(`$in`in t)return t.$in.includes(e);if(`$nin`in t)return!t.$nin.includes(e);if(`$contains`in t)return Array.isArray(e)&&e.includes(t.$contains);if(`$containsPrefix`in t)return Array.isArray(e)&&e.some(e=>typeof e==`string`&&e.startsWith(t.$containsPrefix));if(`$exists`in t){let n=e!==void 0;return t.$exists?n:!n}return`$startsWith`in t?typeof e==`string`&&e.startsWith(t.$startsWith):`$endsWith`in t?typeof e==`string`&&e.endsWith(t.$endsWith):`$glob`in t?typeof e==`string`&&v(t.$glob).match(e):!1}function g(e,t){if(e==null)return;let n=t.split(`.`),r=e;for(let e of n){if(typeof r!=`object`||!r)return;r=r[e]}return r}function _(e){return y(d,e,()=>u(e))}function v(t){return y(f,t,()=>new e(t))}function y(e,t,n){let r=e.get(t);if(r!==void 0)return e.delete(t),e.set(t,r),r;let i=n();if(e.set(t,i),e.size>256){let t=e.keys().next().value;t!==void 0&&e.delete(t)}return i}export{t as ConditionSchema,n as ExpressionConditionSchema,r as FieldConditionSchema,i as FieldOperatorSchema,a as JsonObjectSchema,o as JsonValueSchema,s as RuleSchema,c as RuleSetOptionsSchema,l as ScalarValueSchema,p as evaluate,m as evaluateRules};
1
+ import{t as e}from"../esm-B3t30-13.mjs";import{ConditionSchema as t,ExpressionConditionSchema as n,FieldConditionSchema as r,FieldOperatorSchema as i,JsonObjectSchema as a,JsonValueSchema as o,RuleSchema as s,RuleSetOptionsSchema as c,ScalarValueSchema as l}from"./schemas.mjs";import{compile as u}from"@makaio/framework/expression";const d=new Map,f=new Map;function p(e,t){if(`$and`in e){for(let n of e.$and)if(!p(n,t))return!1;return!0}if(`$or`in e){for(let n of e.$or)if(p(n,t))return!0;return!1}return`$not`in e?!p(e.$not,t):`$expr`in e?!!_(e.$expr).evalSync(t):h(g(t,e.field),e.operator)}function m(e,t,n={}){let{includeDisabled:r=!1}=n,i=[];for(let n of e)!r&&!n.enabled||p(n.condition,t)&&i.push(n);return i}function h(e,t){if(typeof t!=`object`||!t)return e===t;if(`$eq`in t)return e===t.$eq;if(`$ne`in t)return e!==t.$ne;if(`$in`in t)return t.$in.includes(e);if(`$nin`in t)return!t.$nin.includes(e);if(`$contains`in t)return Array.isArray(e)&&e.includes(t.$contains);if(`$containsPrefix`in t)return Array.isArray(e)&&e.some(e=>typeof e==`string`&&e.startsWith(t.$containsPrefix));if(`$exists`in t){let n=e!==void 0;return t.$exists?n:!n}return`$startsWith`in t?typeof e==`string`&&e.startsWith(t.$startsWith):`$endsWith`in t?typeof e==`string`&&e.endsWith(t.$endsWith):`$glob`in t?typeof e==`string`&&v(t.$glob).match(e):!1}function g(e,t){if(e==null)return;let n=t.split(`.`),r=e;for(let e of n){if(typeof r!=`object`||!r)return;r=r[e]}return r}function _(e){return y(d,e,()=>u(e))}function v(t){return y(f,t,()=>new e(t))}function y(e,t,n){let r=e.get(t);if(r!==void 0)return e.delete(t),e.set(t,r),r;let i=n();if(e.set(t,i),e.size>256){let t=e.keys().next().value;t!==void 0&&e.delete(t)}return i}export{t as ConditionSchema,n as ExpressionConditionSchema,r as FieldConditionSchema,i as FieldOperatorSchema,a as JsonObjectSchema,o as JsonValueSchema,s as RuleSchema,c as RuleSetOptionsSchema,l as ScalarValueSchema,p as evaluate,m as evaluateRules};
@@ -1,2 +1,2 @@
1
- import { a as JsonObjectSchema, c as RuleSetOptionsSchema, i as FieldOperatorSchema, l as ScalarValueSchema, n as ExpressionConditionSchema, o as JsonValueSchema, r as FieldConditionSchema, s as RuleSchema, t as ConditionSchema } from "../schemas-CM3Ejp-n.mjs";
1
+ import { a as JsonObjectSchema, c as RuleSetOptionsSchema, i as FieldOperatorSchema, l as ScalarValueSchema, n as ExpressionConditionSchema, o as JsonValueSchema, r as FieldConditionSchema, s as RuleSchema, t as ConditionSchema } from "../schemas-BLy33xay.mjs";
2
2
  export { ConditionSchema, ExpressionConditionSchema, FieldConditionSchema, FieldOperatorSchema, JsonObjectSchema, JsonValueSchema, RuleSchema, RuleSetOptionsSchema, ScalarValueSchema };
@@ -1 +1 @@
1
- import{DispatchingAuth as e,createWebSocketCloseEvent as t}from"@makaio/framework/node/transports";import{HonoWebSocketBridge as n,startBusServer as r}from"@makaio/framework/node/bus-server";import{ExplicitDescriptorDiscovery as i,FileConfigStorage as a,FileRegistryCache as o,FilesystemDescriptorDiscovery as s,MergedDescriptorDiscovery as c,NodeCredentialProvider as l,StoredCredentialProvider as u,bootMakaioRuntimeCore as d,bootMakaioRuntimeCore as f,bridgeExtensionBrowserEntries as ee,createHonoRouteGraph as p,createHttpRouteGraphBuilder as m,entrypointStem as h,isCliContributionLike as g,isMakaioExtensionLike as _,isMissingOptionalRuntimePackage as v,isWithinDirectory as y,loadExtensions as b,loadOrCreateMachineIdentity as x,machineKeysExist as S,registerAdapterNameResolver as C,resolveConventionEntrypoint as w,resolveStaticModelRegistryPath as T,runMigrations as E,tryImport as D,validateMachineKeys as O}from"@makaio/framework/runtime-node";import{isIP as k}from"node:net";var A=class{raw;eventListeners={message:new Set,close:new Set,error:new Set,open:new Set};constructor(e){this.raw=e}get readyState(){return this.raw.readyState}send(e){if(typeof e==`string`){this.raw.send(e);return}if(e instanceof Blob){e.arrayBuffer().then(e=>{this.raw.readyState===1&&this.raw.send(new Uint8Array(e))}).catch(()=>{this.dispatchError()});return}if(e instanceof ArrayBuffer){this.raw.send(new Uint8Array(e));return}ArrayBuffer.isView(e)&&this.raw.send(e)}close(e,t){this.raw.close(e,t)}addEventListener(e,t){this.eventListeners[e]?.add(t)}removeEventListener(e,t){this.eventListeners[e]?.delete(t)}dispatchMessage(e){let t=new MessageEvent(`message`,{data:e});for(let e of this.eventListeners.message)e(t)}dispatchClose(e,n){let r=t(e,n);for(let e of this.eventListeners.close)e(r)}dispatchError(){let e=new Event(`error`);for(let t of this.eventListeners.error)t(e)}},j=class{options;bridge;busServer=null;busReady=!1;connecting=!1;constructor(e){this.options=e,this.bridge=new n}get dispatchingAuth(){return this.options.auth instanceof e?this.options.auth:void 0}createWebSocketHandler(){let e=this.bridge,t=()=>this.busReady,n=new WeakMap;return{binaryType:`arraybuffer`,open(r){if(!t()){r.close(1013,`Bus server not ready`);return}let i=new A(r);n.set(r,i),e.accept(i)},message(e,t){n.get(e)?.dispatchMessage(t)},close(e,t,r){n.get(e)?.dispatchClose(t,r),n.delete(e)}}}async connect(e,t){if(this.connecting||this.busServer)throw Error(`[BunBusServerTransport] connect() called while transport is already connected or connecting`);this.connecting=!0;try{this.busServer=await r({websocket:this.bridge,bus:e,auth:this.options.auth,loopbackName:this.options.loopbackName??`bun`}),this.busReady=!0}catch(e){throw await this.stopBusServer(`startup error`),e}finally{this.connecting=!1}}async disconnect(){await this.stopBusServer(`shutdown`),this.bridge.close()}async stopBusServer(e){this.busReady=!1,this.busServer&&=(await this.busServer.stop().catch(t=>{console.error(`[BunBusServerTransport] Failed to stop bus server during ${e}:`,t)}),null)}};function M(e){if(e.headers.get(`upgrade`)?.toLowerCase()!==`websocket`)return!1;let{pathname:t}=new URL(e.url);return t===`/bus`?!0:t===`/`&&e.headers.get(`origin`)===null}function te(e){return(t,n)=>M(t)?n.upgrade(t)?void 0:new Response(`WebSocket upgrade failed`,{status:426,headers:{Upgrade:`websocket`}}):e.fetch(t)}function N(e){return e.port}async function P(e){let{port:t,hostname:n}=e.bunServer,r=e.createMount??(await import(`../create-static-mount-GSdckRQx.mjs`)).defaultCreateMount;return f(e.transport,t,n,{...e,createMount:r})}function F(e,t){let n=e,r=t;return{fetch(e,t){return n(e,t)},websocket:{binaryType:t.binaryType,open(e){r.open(e)},message(e,t){r.message(e,t)},close(e,t,n){r.close(e,t,n)}},activate(i){n=R(e,i),r=z(t,i)}}}function I(e){let t=[];return e.forEachActiveExtension((e,n)=>{B(n)&&t.push(n)}),t}function L(e){return Array.isArray(e)?e.flatMap(e=>L(e)):B(e)?[e]:[]}function R(e,t){return t.reduce((e,t)=>t.bun.createFetch?.(e)??e,e)}function z(e,t){return t.reduce((e,t)=>t.bun.createWebSocketHandler?.(e)??e,e)}function B(e){if(!H(e))return!1;let t=e.bun;return typeof e.name==`string`&&typeof e.displayName==`string`&&V(t)}function V(e){if(!H(e))return!1;let t=e.createFetch,n=e.createWebSocketHandler;return(t===void 0||typeof t==`function`)&&(n===void 0||typeof n==`function`)}function H(e){return typeof e==`object`&&!!e}function U(e){let t=e.timeoutMs??1e4,n=e.exit??(e=>process.exit(e)),r=!1;return async i=>{if(r)return;r=!0,console.info(`[${e.label}] ${i} received, shutting down...`);let a=setTimeout(()=>{console.error(`[${e.label}] Graceful shutdown timed out, forcing exit`),n(1)},t);try{process.env.MAKAIO_DEBUG&&console.info(`[${e.label}] Shutting down runtime...`),await e.runtime.shutdown(),process.env.MAKAIO_DEBUG&&console.info(`[${e.label}] Stopping Bun server...`),W(e.bunServer,e.label),process.env.MAKAIO_DEBUG&&console.info(`[${e.label}] Shutdown complete`),clearTimeout(a),n(0)}catch(t){W(e.bunServer,e.label),clearTimeout(a),console.error(`[${e.label}] Shutdown error:`,t),n(1)}}}function W(e,t){let n=e.stop?.(!0);G(n)&&n.catch(e=>{console.warn(`[${t}] Bun server stop failed during shutdown:`,e)})}function G(e){return typeof e==`object`&&!!e&&typeof e.catch==`function`}const K=/^(?=.{1,253}$)(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)*[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$/;function q(e){let t=e.env??process.env,n=e.defaultPort??3e3,r=e.defaultHost??`0.0.0.0`;return{port:J(t.PORT,n,e),host:Y(t.HOST,r,e)}}function J(e,t,n){let r=e?.trim(),i=r&&/^\d+$/.test(r)?Number.parseInt(r,10):NaN;return Number.isInteger(i)&&i>=1&&i<=65535?i:e===void 0?t:Z(`Invalid PORT: ${e}`,t,n)}function Y(e,t,n){let r=e?.trim();return r&&X(r)?r:e===void 0?t:Q(`Invalid HOST: ${e}`,t,n)}function X(e){return k(e)!==0||e===`localhost`||K.test(e)}function Z(e,t,n){return $(e,String(t),n),t}function Q(e,t,n){return $(e,t,n),t}function $(e,t,n){if((n.invalid??`throw`)===`throw`)throw Error(e);console.warn(`[${n.appName}] ${e}, falling back to ${t}`)}export{j as BunBusServerTransportProvider,i as ExplicitDescriptorDiscovery,a as FileConfigStorage,o as FileRegistryCache,s as FilesystemDescriptorDiscovery,c as MergedDescriptorDiscovery,l as NodeCredentialProvider,u as StoredCredentialProvider,P as bootMakaioRuntime,d as bootMakaioRuntimeCore,ee as bridgeExtensionBrowserEntries,I as collectActiveBunHostPackages,R as composeBunHostFetch,z as composeBunHostWebSocket,F as createBunHostRouter,te as createBunRouteGraphFetch,U as createGracefulShutdown,p as createHonoRouteGraph,m as createHttpRouteGraphBuilder,h as entrypointStem,g as isCliContributionLike,_ as isMakaioExtensionLike,v as isMissingOptionalRuntimePackage,y as isWithinDirectory,b as loadExtensions,x as loadOrCreateMachineIdentity,S as machineKeysExist,L as normalizeBunHostPackages,q as readBunServerEnv,C as registerAdapterNameResolver,w as resolveConventionEntrypoint,N as resolveListeningPort,T as resolveStaticModelRegistryPath,E as runMigrations,D as tryImport,O as validateMachineKeys};
1
+ import{DispatchingAuth as e,createWebSocketCloseEvent as t}from"@makaio/framework/node/transports";import{HonoWebSocketBridge as n,startBusServer as r}from"@makaio/framework/node/bus-server";import{ExplicitDescriptorDiscovery as i,FileConfigStorage as a,FileRegistryCache as o,FilesystemDescriptorDiscovery as s,MergedDescriptorDiscovery as c,NodeCredentialProvider as l,StoredCredentialProvider as u,bootMakaioRuntimeCore as d,bootMakaioRuntimeCore as f,bridgeExtensionBrowserEntries as ee,createHonoRouteGraph as p,createHttpRouteGraphBuilder as m,entrypointStem as h,isCliContributionLike as g,isMakaioExtensionLike as _,isMissingOptionalRuntimePackage as v,isWithinDirectory as y,loadExtensions as b,loadOrCreateMachineIdentity as x,machineKeysExist as S,registerAdapterNameResolver as C,resolveConventionEntrypoint as w,resolveStaticModelRegistryPath as T,runMigrations as E,tryImport as D,validateMachineKeys as O}from"@makaio/framework/runtime-node";import{isIP as k}from"node:net";var A=class{raw;eventListeners={message:new Set,close:new Set,error:new Set,open:new Set};constructor(e){this.raw=e}get readyState(){return this.raw.readyState}send(e){if(typeof e==`string`){this.raw.send(e);return}if(e instanceof Blob){e.arrayBuffer().then(e=>{this.raw.readyState===1&&this.raw.send(new Uint8Array(e))}).catch(()=>{this.dispatchError()});return}if(e instanceof ArrayBuffer){this.raw.send(new Uint8Array(e));return}ArrayBuffer.isView(e)&&this.raw.send(e)}close(e,t){this.raw.close(e,t)}addEventListener(e,t){this.eventListeners[e]?.add(t)}removeEventListener(e,t){this.eventListeners[e]?.delete(t)}dispatchMessage(e){let t=new MessageEvent(`message`,{data:e});for(let e of this.eventListeners.message)e(t)}dispatchClose(e,n){let r=t(e,n);for(let e of this.eventListeners.close)e(r)}dispatchError(){let e=new Event(`error`);for(let t of this.eventListeners.error)t(e)}},j=class{options;bridge;busServer=null;busReady=!1;connecting=!1;constructor(e){this.options=e,this.bridge=new n}get dispatchingAuth(){return this.options.auth instanceof e?this.options.auth:void 0}createWebSocketHandler(){let e=this.bridge,t=()=>this.busReady,n=new WeakMap;return{binaryType:`arraybuffer`,open(r){if(!t()){r.close(1013,`Bus server not ready`);return}let i=new A(r);n.set(r,i),e.accept(i)},message(e,t){n.get(e)?.dispatchMessage(t)},close(e,t,r){n.get(e)?.dispatchClose(t,r),n.delete(e)}}}async connect(e,t){if(this.connecting||this.busServer)throw Error(`[BunBusServerTransport] connect() called while transport is already connected or connecting`);this.connecting=!0;try{this.busServer=await r({websocket:this.bridge,bus:e,auth:this.options.auth,loopbackName:this.options.loopbackName??`bun`}),this.busReady=!0}catch(e){throw await this.stopBusServer(`startup error`),e}finally{this.connecting=!1}}async disconnect(){await this.stopBusServer(`shutdown`),this.bridge.close()}async stopBusServer(e){this.busReady=!1,this.busServer&&=(await this.busServer.stop().catch(t=>{console.error(`[BunBusServerTransport] Failed to stop bus server during ${e}:`,t)}),null)}};function M(e){if(e.headers.get(`upgrade`)?.toLowerCase()!==`websocket`)return!1;let{pathname:t}=new URL(e.url);return t===`/bus`?!0:t===`/`&&e.headers.get(`origin`)===null}function te(e){return(t,n)=>M(t)?n.upgrade(t)?void 0:new Response(`WebSocket upgrade failed`,{status:426,headers:{Upgrade:`websocket`}}):e.fetch(t)}function N(e){return e.port}async function P(e){let{port:t,hostname:n}=e.bunServer,r=e.createMount??(await import(`../create-static-mount-BIH26VH8.mjs`)).defaultCreateMount;return f(e.transport,t,n,{...e,createMount:r})}function F(e,t){let n=e,r=t;return{fetch(e,t){return n(e,t)},websocket:{binaryType:t.binaryType,open(e){r.open(e)},message(e,t){r.message(e,t)},close(e,t,n){r.close(e,t,n)}},activate(i){n=R(e,i),r=z(t,i)}}}function I(e){let t=[];return e.forEachActiveExtension((e,n)=>{B(n)&&t.push(n)}),t}function L(e){return Array.isArray(e)?e.flatMap(e=>L(e)):B(e)?[e]:[]}function R(e,t){return t.reduce((e,t)=>t.bun.createFetch?.(e)??e,e)}function z(e,t){return t.reduce((e,t)=>t.bun.createWebSocketHandler?.(e)??e,e)}function B(e){if(!H(e))return!1;let t=e.bun;return typeof e.name==`string`&&typeof e.displayName==`string`&&V(t)}function V(e){if(!H(e))return!1;let t=e.createFetch,n=e.createWebSocketHandler;return(t===void 0||typeof t==`function`)&&(n===void 0||typeof n==`function`)}function H(e){return typeof e==`object`&&!!e}function U(e){let t=e.timeoutMs??1e4,n=e.exit??(e=>process.exit(e)),r=!1;return async i=>{if(r)return;r=!0,console.info(`[${e.label}] ${i} received, shutting down...`);let a=setTimeout(()=>{console.error(`[${e.label}] Graceful shutdown timed out, forcing exit`),n(1)},t);try{process.env.MAKAIO_DEBUG&&console.info(`[${e.label}] Shutting down runtime...`),await e.runtime.shutdown(),process.env.MAKAIO_DEBUG&&console.info(`[${e.label}] Stopping Bun server...`),W(e.bunServer,e.label),process.env.MAKAIO_DEBUG&&console.info(`[${e.label}] Shutdown complete`),clearTimeout(a),n(0)}catch(t){W(e.bunServer,e.label),clearTimeout(a),console.error(`[${e.label}] Shutdown error:`,t),n(1)}}}function W(e,t){let n=e.stop?.(!0);G(n)&&n.catch(e=>{console.warn(`[${t}] Bun server stop failed during shutdown:`,e)})}function G(e){return typeof e==`object`&&!!e&&typeof e.catch==`function`}const K=/^(?=.{1,253}$)(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)*[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$/;function q(e){let t=e.env??process.env,n=e.defaultPort??3e3,r=e.defaultHost??`0.0.0.0`;return{port:J(t.PORT,n,e),host:Y(t.HOST,r,e)}}function J(e,t,n){let r=e?.trim(),i=r&&/^\d+$/.test(r)?Number.parseInt(r,10):NaN;return Number.isInteger(i)&&i>=1&&i<=65535?i:e===void 0?t:Z(`Invalid PORT: ${e}`,t,n)}function Y(e,t,n){let r=e?.trim();return r&&X(r)?r:e===void 0?t:Q(`Invalid HOST: ${e}`,t,n)}function X(e){return k(e)!==0||e===`localhost`||K.test(e)}function Z(e,t,n){return $(e,String(t),n),t}function Q(e,t,n){return $(e,t,n),t}function $(e,t,n){if((n.invalid??`throw`)===`throw`)throw Error(e);console.warn(`[${n.appName}] ${e}, falling back to ${t}`)}export{j as BunBusServerTransportProvider,i as ExplicitDescriptorDiscovery,a as FileConfigStorage,o as FileRegistryCache,s as FilesystemDescriptorDiscovery,c as MergedDescriptorDiscovery,l as NodeCredentialProvider,u as StoredCredentialProvider,P as bootMakaioRuntime,d as bootMakaioRuntimeCore,ee as bridgeExtensionBrowserEntries,I as collectActiveBunHostPackages,R as composeBunHostFetch,z as composeBunHostWebSocket,F as createBunHostRouter,te as createBunRouteGraphFetch,U as createGracefulShutdown,p as createHonoRouteGraph,m as createHttpRouteGraphBuilder,h as entrypointStem,g as isCliContributionLike,_ as isMakaioExtensionLike,v as isMissingOptionalRuntimePackage,y as isWithinDirectory,b as loadExtensions,x as loadOrCreateMachineIdentity,S as machineKeysExist,L as normalizeBunHostPackages,q as readBunServerEnv,C as registerAdapterNameResolver,w as resolveConventionEntrypoint,N as resolveListeningPort,T as resolveStaticModelRegistryPath,E as runMigrations,D as tryImport,O as validateMachineKeys};
@@ -1,3 +1,3 @@
1
- import { a as CODE_EXECUTION_DEFAULT_MAX_PROGRAM_FILES, c as CODE_EXECUTION_DEFAULT_MAX_SOURCE_BYTES, d as PiscinaCodeExecutionProviderOptions, i as CODE_EXECUTION_DEFAULT_MAX_INVOCATIONS_PER_WORKER, n as CODE_EXECUTION_DEFAULT_MAX_ARGUMENT_BYTES, o as CODE_EXECUTION_DEFAULT_MAX_QUEUED_INVOCATIONS, r as CODE_EXECUTION_DEFAULT_MAX_CONCURRENCY, s as CODE_EXECUTION_DEFAULT_MAX_RESULT_BYTES, t as CODE_EXECUTION_DEFAULT_IDLE_TIMEOUT_MS } from "../../types-BZnJ_4e2.mjs";
2
- import { t as PiscinaCodeExecutionProvider } from "../../index-GNRWZONO.mjs";
1
+ import { a as CODE_EXECUTION_DEFAULT_MAX_PROGRAM_FILES, c as CODE_EXECUTION_DEFAULT_MAX_SOURCE_BYTES, d as PiscinaCodeExecutionProviderOptions, i as CODE_EXECUTION_DEFAULT_MAX_INVOCATIONS_PER_WORKER, n as CODE_EXECUTION_DEFAULT_MAX_ARGUMENT_BYTES, o as CODE_EXECUTION_DEFAULT_MAX_QUEUED_INVOCATIONS, r as CODE_EXECUTION_DEFAULT_MAX_CONCURRENCY, s as CODE_EXECUTION_DEFAULT_MAX_RESULT_BYTES, t as CODE_EXECUTION_DEFAULT_IDLE_TIMEOUT_MS } from "../../types-DjxvRcX6.mjs";
2
+ import { t as PiscinaCodeExecutionProvider } from "../../index-6kg8YFYt.mjs";
3
3
  export { CODE_EXECUTION_DEFAULT_IDLE_TIMEOUT_MS, CODE_EXECUTION_DEFAULT_MAX_ARGUMENT_BYTES, CODE_EXECUTION_DEFAULT_MAX_CONCURRENCY, CODE_EXECUTION_DEFAULT_MAX_INVOCATIONS_PER_WORKER, CODE_EXECUTION_DEFAULT_MAX_PROGRAM_FILES, CODE_EXECUTION_DEFAULT_MAX_QUEUED_INVOCATIONS, CODE_EXECUTION_DEFAULT_MAX_RESULT_BYTES, CODE_EXECUTION_DEFAULT_MAX_SOURCE_BYTES, PiscinaCodeExecutionProvider, PiscinaCodeExecutionProviderOptions };
@@ -1 +1 @@
1
- import{a as e,c as t,i as n,n as r,o as i,r as a,s as o,t as s}from"../../types-D9GJ7FyQ.mjs";import{t as c}from"../../code-execution-B9wr0b972.mjs";export{s as CODE_EXECUTION_DEFAULT_IDLE_TIMEOUT_MS,r as CODE_EXECUTION_DEFAULT_MAX_ARGUMENT_BYTES,a as CODE_EXECUTION_DEFAULT_MAX_CONCURRENCY,n as CODE_EXECUTION_DEFAULT_MAX_INVOCATIONS_PER_WORKER,e as CODE_EXECUTION_DEFAULT_MAX_PROGRAM_FILES,i as CODE_EXECUTION_DEFAULT_MAX_QUEUED_INVOCATIONS,o as CODE_EXECUTION_DEFAULT_MAX_RESULT_BYTES,t as CODE_EXECUTION_DEFAULT_MAX_SOURCE_BYTES,c as PiscinaCodeExecutionProvider};
1
+ import{a as e,c as t,i as n,n as r,o as i,r as a,s as o,t as s}from"../../types-Bh2fQoxM.mjs";import{t as c}from"../../code-execution-ByLSAlEg2.mjs";export{s as CODE_EXECUTION_DEFAULT_IDLE_TIMEOUT_MS,r as CODE_EXECUTION_DEFAULT_MAX_ARGUMENT_BYTES,a as CODE_EXECUTION_DEFAULT_MAX_CONCURRENCY,n as CODE_EXECUTION_DEFAULT_MAX_INVOCATIONS_PER_WORKER,e as CODE_EXECUTION_DEFAULT_MAX_PROGRAM_FILES,i as CODE_EXECUTION_DEFAULT_MAX_QUEUED_INVOCATIONS,o as CODE_EXECUTION_DEFAULT_MAX_RESULT_BYTES,t as CODE_EXECUTION_DEFAULT_MAX_SOURCE_BYTES,c as PiscinaCodeExecutionProvider};
@@ -1,2 +1,2 @@
1
- import { a as FilesystemDescriptorDiscovery, c as enumerateDescriptorPaths, i as ExtensionEntrypointModule, n as ExplicitDescriptorDiscovery, o as FilesystemDescriptorDiscoveryOptions, r as ExtensionDiscovery, s as MergedDescriptorDiscovery, t as DiscoveredExtension } from "../extension-discovery-CZkaPQBo.mjs";
1
+ import { a as FilesystemDescriptorDiscovery, c as enumerateDescriptorPaths, i as ExtensionEntrypointModule, n as ExplicitDescriptorDiscovery, o as FilesystemDescriptorDiscoveryOptions, r as ExtensionDiscovery, s as MergedDescriptorDiscovery, t as DiscoveredExtension } from "../extension-discovery-B0ZL076T.mjs";
2
2
  export { DiscoveredExtension, ExplicitDescriptorDiscovery, ExtensionDiscovery, ExtensionEntrypointModule, FilesystemDescriptorDiscovery, FilesystemDescriptorDiscoveryOptions, MergedDescriptorDiscovery, enumerateDescriptorPaths };
@@ -1,2 +1,2 @@
1
- import { a as isMakaioExtensionLike, c as resolveConventionEntrypoint, i as isCliContributionLike, o as isWithinDirectory, r as entrypointStem } from "../load-extensions-DM1PgW4a.mjs";
1
+ import { a as isMakaioExtensionLike, c as resolveConventionEntrypoint, i as isCliContributionLike, o as isWithinDirectory, r as entrypointStem } from "../load-extensions-Bu10B5B1.mjs";
2
2
  export { entrypointStem, isCliContributionLike, isMakaioExtensionLike, isWithinDirectory, resolveConventionEntrypoint };
@@ -1 +1 @@
1
- import{i as e,l as t,o as n,r,s as i}from"../load-extensions-BHTj3d_P.mjs";export{r as entrypointStem,e as isCliContributionLike,n as isMakaioExtensionLike,i as isWithinDirectory,t as resolveConventionEntrypoint};
1
+ import{i as e,l as t,o as n,r,s as i}from"../load-extensions-s4YmICgn.mjs";export{r as entrypointStem,e as isCliContributionLike,n as isMakaioExtensionLike,i as isWithinDirectory,t as resolveConventionEntrypoint};
@@ -1,16 +1,16 @@
1
1
  import { RuntimeSubjects } from "./bus/runtime/namespace.mjs";
2
2
  import { NodeClientBinaryStrategyDependencyOptions, createNodeClientBinaryStrategyDependencies } from "./client-binary-strategy-dependencies.mjs";
3
- import { a as CODE_EXECUTION_DEFAULT_MAX_PROGRAM_FILES, c as CODE_EXECUTION_DEFAULT_MAX_SOURCE_BYTES, d as PiscinaCodeExecutionProviderOptions, i as CODE_EXECUTION_DEFAULT_MAX_INVOCATIONS_PER_WORKER, n as CODE_EXECUTION_DEFAULT_MAX_ARGUMENT_BYTES, o as CODE_EXECUTION_DEFAULT_MAX_QUEUED_INVOCATIONS, r as CODE_EXECUTION_DEFAULT_MAX_CONCURRENCY, s as CODE_EXECUTION_DEFAULT_MAX_RESULT_BYTES, t as CODE_EXECUTION_DEFAULT_IDLE_TIMEOUT_MS } from "../types-BZnJ_4e2.mjs";
4
- import { t as PiscinaCodeExecutionProvider } from "../index-GNRWZONO.mjs";
5
- import { a as FilesystemDescriptorDiscovery, n as ExplicitDescriptorDiscovery, o as FilesystemDescriptorDiscoveryOptions, r as ExtensionDiscovery, s as MergedDescriptorDiscovery, t as DiscoveredExtension } from "../extension-discovery-CZkaPQBo.mjs";
6
- import { a as isMakaioExtensionLike, c as resolveConventionEntrypoint, i as isCliContributionLike, n as LoadExtensionsOptions, o as isWithinDirectory, r as entrypointStem, s as loadExtensions, t as DescriptorSourcePackageGroup } from "../load-extensions-DM1PgW4a.mjs";
7
- import { $t as InitializeNodeDatabaseOptions, A as HeadlessWorkerExecutor, At as BootMakaioRuntimeOptions, B as WorkloadInvocationPreparation, Cn as prepareAdapterRuntime, D as HeadlessWorkerBootstrapCredentials, Dt as ThinWorkflowPiscinaRunnerOptions, E as HeadlessWorkerBootstrap, Ft as UpstreamTelemetryBootOptions, G as IsolatedWorkflowRuntimeContext, H as runWorkloadInvocation, I as runHeadlessWorkflowWorker, It as WorkflowRunnerBootOptions, J as createIsolatedWorkflowRuntime, K as WorkflowRuntimeAuthorityConnector, L as InstalledWorkloadAdapter, M as HeadlessWorkerPostCommitObserver, Mt as MakaioRuntime, N as HeadlessWorkflowWorkerDeps, Nt as ServerTransportProvider, O as HeadlessWorkerBusConnector, Ot as WorkflowRunResult, P as HeadlessWorkflowWorkerResult, Pt as TransportReadyInfo, Qt as DatabaseBootOptions, R as RunWorkloadInvocationOptions, Sn as activateAdapterRuntimeIdentity, T as LocalGitSourceOptions, Tt as IWorkflowRunner, U as CreateIsolatedWorkflowRuntimeOptions, V as WorkloadInvocationResult, W as IsolatedWorkflowRuntime, X as InProcessWorkflowRunnerOptions, Xt as WorkflowWorkerEntryResolverOptions, Y as InProcessWorkflowRunner, Yt as WorkflowWorkerEntryMode, Zt as resolveWorkflowWorkerEntry, _ as admitWorkflowRunOperation, _n as createHonoRouteGraph, a as bootstrapWorkerRuntime, an as ShutdownStep, b as registerWorkerRuntime, bn as PrepareAdapterRuntimeInput, c as DeliverableOperationKind, cn as NodeFrameworkModuleResolver, d as OperationDeliveryEndpointIdentity, dn as HttpRouteGraphBuilder, en as InitializeNodeDatabaseResult, f as OperationDeliveryHandler, fn as createHttpRouteGraphBuilder, g as RuntimeRegistrationRefusedError, gn as HonoRouteGraphOptions, h as RegisterWorkerRuntimeOptions, hn as HonoRouteGraph, i as StartedWorkerRuntime, in as selectFrameworkCorePackages, it as AuthorityRequestDeliveryError, j as HeadlessWorkerMaterializer, jt as CoreBootOptions, k as HeadlessWorkerContributionLoader, kt as BootCoordinatorSetupContext, l as OperationAdmissionRefusedError, ln as NoopFrameworkModuleResolver, m as RegisterAndAdmitWorkflowRunOptions, mn as HttpRouteContribution, n as BootstrapStartRefusedError, nn as HostCapabilityDeclaration, nt as AttemptOutcomeDeliveryError, o as AdmitWorkflowRunOperationOptions, on as BridgeBrowserOptions, ot as OutcomeDeliveryError, p as OperationDeliveryHandlers, pn as HttpContributionPhase, q as WorkflowRuntimeContributionLoader, r as BootstrapWorkerRuntimeOptions, rn as normalizeNodeHostCapabilities, s as AdmittedWorkflowRun, sn as FrameworkModuleResolver, t as BootstrapRuntimeConnection, tn as initializeNodeDatabase, u as OperationDeliveryEndpoint, un as resolveFrameworkSpecifier, ut as submitAttemptOutcomeWithAck, v as installOperationDeliveryEndpoint, vn as ActivateAdapterRuntimeIdentityInput, w as createLocalGitWorkspacePreparation, wt as ThinWorkflowPiscinaRunner, xn as PreparedAdapterRuntime, y as registerAndAdmitWorkflowRun, yn as ActivatedAdapterRuntimeIdentity, z as WorkloadControlBinding } from "../index-SDXlgq07.mjs";
3
+ import { a as CODE_EXECUTION_DEFAULT_MAX_PROGRAM_FILES, c as CODE_EXECUTION_DEFAULT_MAX_SOURCE_BYTES, d as PiscinaCodeExecutionProviderOptions, i as CODE_EXECUTION_DEFAULT_MAX_INVOCATIONS_PER_WORKER, n as CODE_EXECUTION_DEFAULT_MAX_ARGUMENT_BYTES, o as CODE_EXECUTION_DEFAULT_MAX_QUEUED_INVOCATIONS, r as CODE_EXECUTION_DEFAULT_MAX_CONCURRENCY, s as CODE_EXECUTION_DEFAULT_MAX_RESULT_BYTES, t as CODE_EXECUTION_DEFAULT_IDLE_TIMEOUT_MS } from "../types-DjxvRcX6.mjs";
4
+ import { t as PiscinaCodeExecutionProvider } from "../index-6kg8YFYt.mjs";
5
+ import { a as FilesystemDescriptorDiscovery, n as ExplicitDescriptorDiscovery, o as FilesystemDescriptorDiscoveryOptions, r as ExtensionDiscovery, s as MergedDescriptorDiscovery, t as DiscoveredExtension } from "../extension-discovery-B0ZL076T.mjs";
6
+ import { a as isMakaioExtensionLike, c as resolveConventionEntrypoint, i as isCliContributionLike, n as LoadExtensionsOptions, o as isWithinDirectory, r as entrypointStem, s as loadExtensions, t as DescriptorSourcePackageGroup } from "../load-extensions-Bu10B5B1.mjs";
7
+ import { $t as InitializeNodeDatabaseOptions, A as HeadlessWorkerExecutor, At as BootMakaioRuntimeOptions, B as WorkloadInvocationPreparation, Cn as prepareAdapterRuntime, D as HeadlessWorkerBootstrapCredentials, Dt as ThinWorkflowPiscinaRunnerOptions, E as HeadlessWorkerBootstrap, Ft as UpstreamTelemetryBootOptions, G as IsolatedWorkflowRuntimeContext, H as runWorkloadInvocation, I as runHeadlessWorkflowWorker, It as WorkflowRunnerBootOptions, J as createIsolatedWorkflowRuntime, K as WorkflowRuntimeAuthorityConnector, L as InstalledWorkloadAdapter, M as HeadlessWorkerPostCommitObserver, Mt as MakaioRuntime, N as HeadlessWorkflowWorkerDeps, Nt as ServerTransportProvider, O as HeadlessWorkerBusConnector, Ot as WorkflowRunResult, P as HeadlessWorkflowWorkerResult, Pt as TransportReadyInfo, Qt as DatabaseBootOptions, R as RunWorkloadInvocationOptions, Sn as activateAdapterRuntimeIdentity, T as LocalGitSourceOptions, Tt as IWorkflowRunner, U as CreateIsolatedWorkflowRuntimeOptions, V as WorkloadInvocationResult, W as IsolatedWorkflowRuntime, X as InProcessWorkflowRunnerOptions, Xt as WorkflowWorkerEntryResolverOptions, Y as InProcessWorkflowRunner, Yt as WorkflowWorkerEntryMode, Zt as resolveWorkflowWorkerEntry, _ as admitWorkflowRunOperation, _n as createHonoRouteGraph, a as bootstrapWorkerRuntime, an as ShutdownStep, b as registerWorkerRuntime, bn as PrepareAdapterRuntimeInput, c as DeliverableOperationKind, cn as NodeFrameworkModuleResolver, d as OperationDeliveryEndpointIdentity, dn as HttpRouteGraphBuilder, en as InitializeNodeDatabaseResult, f as OperationDeliveryHandler, fn as createHttpRouteGraphBuilder, g as RuntimeRegistrationRefusedError, gn as HonoRouteGraphOptions, h as RegisterWorkerRuntimeOptions, hn as HonoRouteGraph, i as StartedWorkerRuntime, in as selectFrameworkCorePackages, it as AuthorityRequestDeliveryError, j as HeadlessWorkerMaterializer, jt as CoreBootOptions, k as HeadlessWorkerContributionLoader, kt as BootCoordinatorSetupContext, l as OperationAdmissionRefusedError, ln as NoopFrameworkModuleResolver, m as RegisterAndAdmitWorkflowRunOptions, mn as HttpRouteContribution, n as BootstrapStartRefusedError, nn as HostCapabilityDeclaration, nt as AttemptOutcomeDeliveryError, o as AdmitWorkflowRunOperationOptions, on as BridgeBrowserOptions, ot as OutcomeDeliveryError, p as OperationDeliveryHandlers, pn as HttpContributionPhase, q as WorkflowRuntimeContributionLoader, r as BootstrapWorkerRuntimeOptions, rn as normalizeNodeHostCapabilities, s as AdmittedWorkflowRun, sn as FrameworkModuleResolver, t as BootstrapRuntimeConnection, tn as initializeNodeDatabase, u as OperationDeliveryEndpoint, un as resolveFrameworkSpecifier, ut as submitAttemptOutcomeWithAck, v as installOperationDeliveryEndpoint, vn as ActivateAdapterRuntimeIdentityInput, w as createLocalGitWorkspacePreparation, wt as ThinWorkflowPiscinaRunner, xn as PreparedAdapterRuntime, y as registerAndAdmitWorkflowRun, yn as ActivatedAdapterRuntimeIdentity, z as WorkloadControlBinding } from "../index-B7wjmaev.mjs";
8
8
  import { ConfiguredRuntimeOptions, LoadMakaioConfigOptions, LoadedMakaioConfig, MAKAIO_CONFIG_FILE_ENV, MAKAIO_HOME_ENV, MakaioConfig, ParseMakaioConfigOptions, ParsedMakaioConfig, WorkflowRunnerConfig, buildConfiguredRuntimeOptions, createMakaioConfigDiscovery, defineMakaioConfig, loadMakaioConfig, parseMakaioConfig, resolveMakaioConfigPath, resolveMakaioHome, shouldIncludeExtension } from "./makaio-config.mjs";
9
9
  import { RotateWorkflowExecutionBusSecretParams, captureWorkflowExecutionBusSecretCleanup } from "./workflow-execution-bus-access.mjs";
10
10
  import { z } from "zod";
11
11
  import { IConfigStorage } from "@makaio/framework/core";
12
- import { BusTransport, IMakaioBus } from "@makaio/framework/bus";
13
12
  import { Config, EntityUIConfig, ProtocolId } from "@makaio/framework/contracts";
13
+ import { BusTransport, IMakaioBus } from "@makaio/framework/bus";
14
14
  import { DispatchingAuth } from "@makaio/framework/node/transports";
15
15
  import { KernelMakaioExtension, TransportProvider } from "@makaio/framework/kernel";
16
16
  import { MakaioDatabase, StorageDialect as StorageDialect$1 } from "@makaio/framework/storage/drizzle";