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

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-62Ifw7fv.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 +96 -96
  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-BexrtFLC.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-CwTiTnnR.mjs} +1 -1
  110. package/dist/{execution-target-B9jZgDQz.mjs → execution-target-_oVNW6Zm.mjs} +1 -1
  111. package/dist/{extension-B51JzHJu.mjs → extension-CAi7bbyv.mjs} +1 -1
  112. package/dist/{extension-C1CwxkCN.mjs → extension-CrghVa93.mjs} +1 -1
  113. package/dist/{extension-context-Cx8CetW3.d.mts → extension-context-DDfSMPat.d.mts} +3 -3
  114. package/dist/{filesystem-service-yB8KhUGz.mjs → filesystem-service-hdz3oYti.mjs} +1 -1
  115. package/dist/{framework-packages-25GUGzJ-.mjs → framework-packages-BOPhhtK7.mjs} +1 -1
  116. package/dist/git/index.mjs +1 -1
  117. package/dist/{globby-z2SR0jRo.mjs → globby-Begk3aIP.mjs} +1 -1
  118. package/dist/{handlers-CBbFzDHc.mjs → handlers-YPTyZDhF.mjs} +1 -1
  119. package/dist/{harness-GNtHsoh4.mjs → harness-Ds1I4smU.mjs} +1 -1
  120. package/dist/{hook-responses-chgDiS8D.d.mts → hook-responses-CRQYe15-.d.mts} +1 -1
  121. package/dist/hooks/index.d.mts +1 -1
  122. package/dist/hooks/index.mjs +1 -1
  123. package/dist/{index-GNRWZONO.d.mts → index-6kg8YFYt.d.mts} +1 -1
  124. package/dist/{index-B6aoVzdA.d.mts → index-B3G-Hzwn.d.mts} +1 -1
  125. package/dist/{index-CKjFFP6W2.d.mts → index-BM-FPWjs2.d.mts} +1 -1
  126. package/dist/{index-SDXlgq07.d.mts → index-B_gyAIAo.d.mts} +2 -2
  127. package/dist/{index-BAL1FiaJ.d.mts → index-BdGOOFbD.d.mts} +6 -6
  128. package/dist/{index-VbqrC9qf.d.mts → index-Bk8WkSa_.d.mts} +12 -12
  129. package/dist/{index-CuPq_ap8.d.mts → index-BlHq_Ksb.d.mts} +2 -2
  130. package/dist/{index-D3RZEEE3.d.mts → index-Bn6sN1op.d.mts} +2 -2
  131. package/dist/{index-Bxs-oIo4.d.mts → index-BpsurXEW.d.mts} +1 -1
  132. package/dist/{index-BtPZcp4M2.d.mts → index-Bq8JJ77a2.d.mts} +4 -4
  133. package/dist/{index-Bak5iKWv2.d.mts → index-BsZu6i8H2.d.mts} +20 -11
  134. package/dist/{index-CcgI6r0K.d.mts → index-C742b1FV.d.mts} +2 -2
  135. package/dist/{index-B6Kq1BtL.d.mts → index-C8oBOTl_.d.mts} +1 -1
  136. package/dist/{index-BjELPYLF2.d.mts → index-CCYavCD92.d.mts} +1 -1
  137. package/dist/{index-CuLDybz3.d.mts → index-CDhbUjUH.d.mts} +2 -2
  138. package/dist/{index-CVx7li6B2.d.mts → index-CP96gudX2.d.mts} +16 -16
  139. package/dist/{index-DX_2kGSg.d.mts → index-CR5OVrQJ.d.mts} +4 -4
  140. package/dist/{index-CDeN0mdC.d.mts → index-CWeWBh-_.d.mts} +1 -1
  141. package/dist/{index-99Gz8ezO.d.mts → index-CX9F0vHE.d.mts} +9 -9
  142. package/dist/{index-OXuby-ee.d.mts → index-CpGf9W_u.d.mts} +13 -13
  143. package/dist/{index-SIP-fI28.d.mts → index-D4XNkbM4.d.mts} +1 -1
  144. package/dist/{index-C6eJrtTA.d.mts → index-D7IZQNhD.d.mts} +2 -2
  145. package/dist/{index-CU_HMaeC.d.mts → index-DCfYa3cF.d.mts} +39 -1
  146. package/dist/{index-DzeUtJtE.d.mts → index-DTadNB7U.d.mts} +8 -8
  147. package/dist/{index-DfJNJYPV.d.mts → index-DhhHzOUU.d.mts} +4 -4
  148. package/dist/{index-D2sbGoGS.d.mts → index-DkviOBAT.d.mts} +2 -2
  149. package/dist/{index-ConotXyG.d.mts → index-DsEwuqKE.d.mts} +28 -28
  150. package/dist/{index-CwJaE0fT.d.mts → index-E55FZQKt.d.mts} +135 -87
  151. package/dist/{index-OUtnmQ8t2.d.mts → index-di-02yaB2.d.mts} +5 -5
  152. package/dist/{index-C9J8wBLV.d.mts → index-dpaDWzUU.d.mts} +835 -291
  153. package/dist/{index-CyB6POkH.d.mts → index-nJvYTAbD.d.mts} +1 -1
  154. package/dist/{index-CYUhTE552.d.mts → index-ndFBIZvG2.d.mts} +1 -1
  155. package/dist/kernel/cli/index.d.mts +2 -2
  156. package/dist/kernel/cli/index.mjs +1 -1
  157. package/dist/kernel/cli/register.d.mts +1 -1
  158. package/dist/kernel/cli/register.mjs +1 -1
  159. package/dist/kernel/cli/schemas.mjs +1 -1
  160. package/dist/kernel/extension/index.d.mts +1 -1
  161. package/dist/kernel/extension/index.mjs +1 -1
  162. package/dist/kernel/index.d.mts +5 -5
  163. package/dist/kernel/index.mjs +1 -1
  164. package/dist/kernel/namespace/index.d.mts +1 -1
  165. package/dist/kernel/namespace/index.mjs +1 -1
  166. package/dist/kernel/observability/index.d.mts +1 -1
  167. package/dist/kernel/observability/index.mjs +1 -1
  168. package/dist/kernel/providers/index.d.mts +1 -1
  169. package/dist/kernel/providers/index.mjs +1 -1
  170. package/dist/kernel/window/index.d.mts +1 -1
  171. package/dist/kernel/window/index.mjs +1 -1
  172. package/dist/{lib-0MqNtDuH.mjs → lib-BmXBuE-w.mjs} +1 -1
  173. package/dist/{lib-dlyJT26K.mjs → lib-R-c_q77C.mjs} +1 -1
  174. package/dist/{load-extensions-DM1PgW4a.d.mts → load-extensions-Bu10B5B1.d.mts} +1 -1
  175. package/dist/{load-extensions-BHTj3d_P.mjs → load-extensions-s4YmICgn.mjs} +1 -1
  176. package/dist/{materialization-BQuh_gaE.mjs → materialization-BwC7pVg2.mjs} +1 -1
  177. package/dist/mcp-http-server/index.d.mts +1 -1
  178. package/dist/mcp-http-server/index.mjs +1 -1
  179. package/dist/model-Cn1IFEP8.mjs +1 -0
  180. package/dist/{namespace-JqvomFSV.d.mts → namespace-CfA0C0JR.d.mts} +2 -2
  181. package/dist/{namespace-ZAIFBrIy.mjs → namespace-CnRcpgJ8.mjs} +1 -1
  182. package/dist/namespace-DFc1nkal.mjs +1 -0
  183. package/dist/{namespace-BoOLmi67.d.mts → namespace-Dmbm2JzV.d.mts} +2 -2
  184. package/dist/{namespace-DiTFR4Zt.d.mts → namespace-wuGMWlyz.d.mts} +2 -2
  185. package/dist/{native-session-supervisor-BlGzmZrH.mjs → native-session-supervisor-B0rziwHI.mjs} +1 -1
  186. package/dist/node/bus-server/index.d.mts +1 -1
  187. package/dist/node/bus-server/index.mjs +1 -1
  188. package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
  189. package/dist/node/bus-server/server-lifecycle.mjs +1 -1
  190. package/dist/{orchestrator-shared-5vhs4wvU.mjs → orchestrator-shared-CmS8iU9_.mjs} +1 -1
  191. package/dist/{orchestrator-shared-BRNZ6it3.d.mts → orchestrator-shared-Cwc6JKkV.d.mts} +1 -1
  192. package/dist/{ownership-memory-handler-BCu1EjFO.mjs → ownership-memory-handler-DMirNILL.mjs} +1 -1
  193. package/dist/{package-DKfzsJVl.mjs → package-BESXccyx.mjs} +1 -1
  194. package/dist/{package-BiZ6ehWk.mjs → package-Co36_pRw.mjs} +1 -1
  195. package/dist/{package-BUSXHPOT.mjs → package-D2zvQO7X.mjs} +1 -1
  196. package/dist/{package-x2wRhcUt.d.mts → package-DjI3DSDe.d.mts} +6 -3
  197. package/dist/package.json +1 -1
  198. package/dist/{packages-Dhgmy_LJ.mjs → packages-COqPg5TI.mjs} +1 -1
  199. package/dist/{packages-BSVxszLf.d.mts → packages-DTz_1dCa.d.mts} +1 -1
  200. package/dist/{profile-DBDvy9uc.mjs → profile-C9RV7ao-.mjs} +1 -1
  201. package/dist/{provider-context-CSb0qX1c.mjs → provider-context-BPITm0cn.mjs} +1 -1
  202. package/dist/{provider-context-CTOrOW54.mjs → provider-context-CyGvwXPz.mjs} +1 -1
  203. package/dist/providers/index.d.mts +1 -1
  204. package/dist/{reaction-6e4v007b.mjs → reaction-aQJGWUWl.mjs} +1 -1
  205. package/dist/repo-context-Dy6eE9cg.mjs +1 -0
  206. package/dist/{resolved-ONt3rOMh.mjs → resolved-M6PyrgFr.mjs} +1 -1
  207. package/dist/rules/index.d.mts +1 -1
  208. package/dist/rules/index.mjs +1 -1
  209. package/dist/rules/schemas.d.mts +1 -1
  210. package/dist/runtime-bun/index.mjs +1 -1
  211. package/dist/runtime-node/code-execution/index.d.mts +2 -2
  212. package/dist/runtime-node/code-execution/index.mjs +1 -1
  213. package/dist/runtime-node/extension-discovery.d.mts +1 -1
  214. package/dist/runtime-node/extension-validation.d.mts +1 -1
  215. package/dist/runtime-node/extension-validation.mjs +1 -1
  216. package/dist/runtime-node/index.d.mts +6 -6
  217. package/dist/runtime-node/index.mjs +4 -4
  218. package/dist/runtime-node/makaio-config.d.mts +1 -1
  219. package/dist/runtime-node/makaio-config.mjs +1 -1
  220. package/dist/runtime-node/workflow-worker/index.d.mts +1 -1
  221. package/dist/runtime-node/workflow-worker/index.mjs +1 -1
  222. package/dist/runtime-node/workflow-worker/worker-entry.mjs +1 -1
  223. package/dist/{schema-B8jinlbH.mjs → schema-DrHrto2J.mjs} +1 -1
  224. package/dist/{schemas-BIU9Org_.mjs → schemas-CQKfd2Xd.mjs} +1 -1
  225. package/dist/{schemas-DYeS-mtz.d.mts → schemas-CQe4xCRn.d.mts} +2 -2
  226. package/dist/{schemas-Di_kpQ0C.d.mts → schemas-CvUe_yff.d.mts} +13 -4
  227. package/dist/{schemas-BZabEyEV.d.mts → schemas-D2HmGmCt.d.mts} +1 -1
  228. package/dist/schemas-DRho446W.mjs +1 -0
  229. package/dist/{schemas-abY5VbS4.mjs → schemas-DyZNwquY.mjs} +1 -1
  230. package/dist/{schemas-BFwNBMIj.d.mts → schemas-a4aVR0WT.d.mts} +15 -15
  231. package/dist/{selection-7SkHsmWs.mjs → selection-BDs7K53w.mjs} +1 -1
  232. package/dist/{server-lifecycle-hNz8U-QJ.mjs → server-lifecycle-C5Vl58sN.mjs} +1 -1
  233. package/dist/services/adapter-runtime/index.d.mts +3 -3
  234. package/dist/services/adapter-runtime/index.mjs +1 -1
  235. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  236. package/dist/services/adapter-runtime/schemas.d.mts +1 -1
  237. package/dist/services/adapter-subsystem/index.d.mts +3 -3
  238. package/dist/services/adapter-subsystem/index.mjs +1 -1
  239. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  240. package/dist/services/adapter-subsystem/namespace.mjs +1 -1
  241. package/dist/services/agent-runtime/index.d.mts +2 -2
  242. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  243. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  244. package/dist/services/automation-trigger/index.d.mts +1 -1
  245. package/dist/services/automation-trigger/index.mjs +1 -1
  246. package/dist/services/capability/index.d.mts +2 -2
  247. package/dist/services/capability/index.mjs +1 -1
  248. package/dist/services/code-execution/index.d.mts +1 -1
  249. package/dist/services/code-execution/index.mjs +1 -1
  250. package/dist/services/codebase/index.d.mts +2 -2
  251. package/dist/services/codebase/namespace.d.mts +1 -1
  252. package/dist/services/codebase/schemas.d.mts +1 -1
  253. package/dist/services/compression/index.d.mts +2 -2
  254. package/dist/services/compression/namespace.d.mts +1 -1
  255. package/dist/services/compression/schemas.d.mts +1 -1
  256. package/dist/services/context-rules/index.d.mts +4 -4
  257. package/dist/services/context-rules/index.mjs +1 -1
  258. package/dist/services/execution-target/index.d.mts +3 -3
  259. package/dist/services/execution-target/index.mjs +1 -1
  260. package/dist/services/execution-target/namespace.d.mts +1 -1
  261. package/dist/services/execution-target/namespace.mjs +1 -1
  262. package/dist/services/execution-target/schemas.d.mts +1 -1
  263. package/dist/services/execution-target/schemas.mjs +1 -1
  264. package/dist/services/filesystem/index.d.mts +1 -1
  265. package/dist/services/filesystem/index.mjs +1 -1
  266. package/dist/services/filesystem/namespace.d.mts +6 -6
  267. package/dist/services/filesystem/schemas.d.mts +3 -3
  268. package/dist/services/git/namespace.d.mts +2 -2
  269. package/dist/services/git/namespace.mjs +1 -1
  270. package/dist/services/git/schemas.d.mts +1 -1
  271. package/dist/services/git/schemas.mjs +1 -1
  272. package/dist/services/harness/index.d.mts +4 -4
  273. package/dist/services/harness/index.mjs +1 -1
  274. package/dist/services/index.d.mts +58 -58
  275. package/dist/services/index.mjs +1 -1
  276. package/dist/services/log-import/browser.d.mts +2 -2
  277. package/dist/services/log-import/index.d.mts +3 -3
  278. package/dist/services/log-import/index.mjs +2 -2
  279. package/dist/services/log-import/log-import.d.mts +1 -1
  280. package/dist/services/log-import/log-import.mjs +1 -1
  281. package/dist/services/log-import/namespace.d.mts +2 -2
  282. package/dist/services/log-import/namespace.mjs +1 -1
  283. package/dist/services/log-import/schemas.d.mts +1 -1
  284. package/dist/services/log-import/schemas.mjs +1 -1
  285. package/dist/services/materialization/index.d.mts +1 -1
  286. package/dist/services/materialization/index.mjs +1 -1
  287. package/dist/services/model-registry/index.d.mts +1 -1
  288. package/dist/services/model-registry/index.mjs +1 -1
  289. package/dist/services/preferences/index.d.mts +2 -2
  290. package/dist/services/preferences/schemas.d.mts +1 -1
  291. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  292. package/dist/services/provider-context/index.d.mts +1 -1
  293. package/dist/services/provider-context/index.mjs +1 -1
  294. package/dist/services/provider-runtime/index.mjs +1 -1
  295. package/dist/services/session/handlers/index.d.mts +1 -1
  296. package/dist/services/session/handlers/index.mjs +1 -1
  297. package/dist/services/session/index.d.mts +9 -9
  298. package/dist/services/session/index.mjs +1 -1
  299. package/dist/services/session/messages/namespace.d.mts +1 -1
  300. package/dist/services/session/messages/namespace.mjs +1 -1
  301. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  302. package/dist/services/session/orchestrator-testing/index.mjs +1 -1
  303. package/dist/services/session/session-events/namespace.d.mts +1 -1
  304. package/dist/services/session/session-events/namespace.mjs +1 -1
  305. package/dist/services/session/storage/namespace.d.mts +1 -1
  306. package/dist/services/session/storage/schema.d.mts +1 -1
  307. package/dist/services/session/testing/index.mjs +2 -2
  308. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  309. package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
  310. package/dist/services/session/turns/namespace.d.mts +1 -1
  311. package/dist/services/session/turns/namespace.mjs +1 -1
  312. package/dist/services/session-editor/index.d.mts +1 -1
  313. package/dist/services/session-editor/index.mjs +1 -1
  314. package/dist/services/settings/index.d.mts +3 -3
  315. package/dist/services/settings/index.mjs +1 -1
  316. package/dist/services/settings/namespace.d.mts +12 -12
  317. package/dist/services/settings/namespace.mjs +1 -1
  318. package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
  319. package/dist/services/settings/storage/clients-namespace.mjs +1 -1
  320. package/dist/services/settings/storage/extension-configs/namespace.d.mts +3 -3
  321. package/dist/services/settings/storage/index.d.mts +3 -3
  322. package/dist/services/settings/storage/index.mjs +1 -1
  323. package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
  324. package/dist/services/settings/storage/providers-namespace.mjs +1 -1
  325. package/dist/services/subagent/index.d.mts +1 -1
  326. package/dist/services/subagent/index.mjs +1 -1
  327. package/dist/services/subagent-template/index.d.mts +2 -2
  328. package/dist/services/subagent-template/namespace.d.mts +1 -1
  329. package/dist/services/subagent-template/schemas.d.mts +1 -1
  330. package/dist/services/tool-approval/index.d.mts +1 -1
  331. package/dist/services/tool-approval/index.mjs +1 -1
  332. package/dist/services/tools/index.d.mts +1 -1
  333. package/dist/services/tools/index.mjs +1 -1
  334. package/dist/services/tray-menu/index.d.mts +3 -3
  335. package/dist/services/tray-menu/index.mjs +1 -1
  336. package/dist/services/tray-menu/namespace.d.mts +1 -1
  337. package/dist/services/tray-menu/schemas.d.mts +1 -1
  338. package/dist/services/turn/index.d.mts +1 -1
  339. package/dist/services/turn/namespace.d.mts +1 -1
  340. package/dist/services/workflow-transitions/index.d.mts +1 -1
  341. package/dist/services/workflow-transitions/index.mjs +1 -1
  342. package/dist/{session-A-h_Dwcs.mjs → session-9C42TPQq.mjs} +1 -1
  343. package/dist/{session-BDFNAcuY.mjs → session-Cn8z1hxD.mjs} +6 -6
  344. package/dist/{session-lineage-BzlpfLgC.d.mts → session-lineage-CLOlB9l_.d.mts} +1 -1
  345. package/dist/{shared-BZf2zoxL.mjs → shared-DqvfJVYk.mjs} +1 -1
  346. package/dist/{skill-1gU2q1KT.mjs → skill-BmRp8GhW.mjs} +1 -1
  347. package/dist/{src-Dlpw-Gh5.mjs → src-CmLn6zYj.mjs} +1 -1
  348. package/dist/storage/drizzle/client.d.mts +1 -1
  349. package/dist/storage/drizzle/client.mjs +1 -1
  350. package/dist/storage/drizzle/index.d.mts +2 -2
  351. package/dist/storage/drizzle/index.mjs +1 -1
  352. package/dist/storage/handlers/drizzle/index.d.mts +1 -1
  353. package/dist/storage/handlers/drizzle/index.mjs +1 -1
  354. package/dist/storage/handlers/index.d.mts +1 -1
  355. package/dist/storage/handlers/index.mjs +1 -1
  356. package/dist/testing/index.d.mts +1 -1
  357. package/dist/{tool-approval-service-rpV94znP.mjs → tool-approval-service-DchkAdAr.mjs} +1 -1
  358. package/dist/tools/index.d.mts +1 -1
  359. package/dist/{tools-oQPsY7v2.mjs → tools-r50UBPJ9.mjs} +1 -1
  360. package/dist/{transition-BeWq5nKg.d.mts → transition-CgsrmsfE.d.mts} +2 -2
  361. package/dist/{types-FNVbwd7z2.d.mts → types-Bs3Pm8rB2.d.mts} +1 -1
  362. package/dist/{types-CIEJ91wm.d.mts → types-DoxPKNUW.d.mts} +6 -6
  363. package/dist/{types-D4N56a4O.d.mts → types-Dswhi1L9.d.mts} +1 -1
  364. package/dist/ui-kernel/index.d.mts +2 -2
  365. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  366. package/dist/{version-3xWJDCeF.mjs → version-sDSWOMn_.mjs} +1 -1
  367. package/dist/{view-builder-BwGugMWz.d.mts → view-builder-BMpOHHlf.d.mts} +1 -1
  368. package/dist/{visibility-C5sLzqyS.mjs → visibility-syKffo3e.mjs} +1 -1
  369. package/dist/{worker-qgJToDTN.mjs → worker-DRQGyWAS.mjs} +1 -1
  370. package/dist/{worker-Csadr_du.mjs → worker-DzbPk2YI.mjs} +1 -1
  371. package/dist/{workflow-Cb2Pj1h3.mjs → workflow-D-yrAZW8.mjs} +1 -1
  372. package/dist/workflow-engine/execution-attempt-repository.d.mts +1 -1
  373. package/dist/workflow-engine/execution-attempt-repository.mjs +1 -1
  374. package/dist/workflow-engine/index.d.mts +69 -69
  375. package/dist/workflow-engine/index.mjs +1 -1
  376. package/dist/workflow-engine/package.d.mts +1 -1
  377. package/dist/workflow-engine/package.mjs +1 -1
  378. package/dist/workflow-engine/provider-operation.d.mts +1 -1
  379. package/dist/workflow-engine/testing/conformance.d.mts +1 -1
  380. package/dist/workflow-engine/testing/conformance.mjs +1 -1
  381. package/dist/workflow-engine/testing/index.d.mts +1 -1
  382. package/dist/workflow-engine/testing/index.mjs +1 -1
  383. package/dist/workflow-engine/testing/sqlite.d.mts +1 -1
  384. package/dist/workflow-engine/testing/sqlite.mjs +1 -1
  385. package/dist/workflow-engine/workflow-orchestrator.d.mts +1 -1
  386. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  387. package/dist/{workflow-transitions-BI7PbrXv.mjs → workflow-transitions-D5RvMSnf.mjs} +1 -1
  388. package/dist/workflow-worker-Drf-skvM.mjs +2 -0
  389. package/package.json +5 -1
  390. package/dist/artifact-nArLAotB.mjs +0 -1
  391. package/dist/authority-state-bootstrap-DnwkMieA.mjs +0 -1
  392. package/dist/bootstrap-start-client-Bdv-_2Q9.mjs +0 -1
  393. package/dist/model-B6t_-_sp.mjs +0 -1
  394. package/dist/namespace-D4zmxaC4.mjs +0 -1
  395. package/dist/schemas-FiFC_DI6.mjs +0 -1
  396. package/dist/workflow-worker-Db7EBUgh.mjs +0 -2
  397. package/dist/{adapter-binding-BU7STlfd.d.mts → adapter-binding-DhANVB-O.d.mts} +0 -0
  398. package/dist/{ajv-Dtk5hCZS.mjs → ajv-IlnfOGAj.mjs} +0 -0
  399. package/dist/{attach-error-B-vXQFLQ.mjs → attach-error-DOlUtquX.mjs} +0 -0
  400. package/dist/{attempt-fixtures-C-jQE_7B.mjs → attempt-fixtures-CMx-2OlG.mjs} +0 -0
  401. package/dist/{base-orchestrator-DXiejwQ3.d.mts → base-orchestrator-tAgnJAKu.d.mts} +0 -0
  402. package/dist/{capability-Bw4tsDQu.mjs → capability-BQHyskJB.mjs} +0 -0
  403. package/dist/{client-BwFqO0cG.d.mts → client-At2zn3yg.d.mts} +0 -0
  404. package/dist/{client-binary-version-verifier-DHBAzg3-.mjs → client-binary-version-verifier-DLziUQhw.mjs} +0 -0
  405. package/dist/{client-binary-version-verifier-DySlUy9m.d.mts → client-binary-version-verifier-EOj8xXqm.d.mts} +0 -0
  406. package/dist/{clients-namespace-Dh0SNZcQ.d.mts → clients-namespace-CVRwXq8f.d.mts} +0 -0
  407. package/dist/{config-namespace-CZqPIAWt.d.mts → config-namespace-D7GbrasR.d.mts} +0 -0
  408. package/dist/{create-static-mount-GSdckRQx.mjs → create-static-mount-BIH26VH8.mjs} +0 -0
  409. package/dist/{cross-spawn-Bx_VEdpd.mjs → cross-spawn-Bi05YtQQ.mjs} +0 -0
  410. package/dist/{cursor-storage-Co4itf44.mjs → cursor-storage-88xtgVAd.mjs} +0 -0
  411. package/dist/{definition-D3HjoK-4.d.mts → definition-VK1rERAp.d.mts} +0 -0
  412. package/dist/{definitions-CYZTuMdL.mjs → definitions-2T95Q-y6.mjs} +0 -0
  413. package/dist/{descriptor-to-package-CZLujoiv.mjs → descriptor-to-package-GVZk9ZGT.mjs} +0 -0
  414. package/dist/{drizzle-me-95ICP.mjs → drizzle-BrlzkYoe.mjs} +0 -0
  415. package/dist/{esm-DILYVXmW.mjs → esm-B3t30-13.mjs} +0 -0
  416. package/dist/{event-DmQPb5MB.mjs → event-DFI0F1Ws.mjs} +0 -0
  417. package/dist/{execution-attempt-repository-CJVlPFMM.d.mts → execution-attempt-repository-CE7UXmEi.d.mts} +0 -0
  418. package/dist/{execution-attempt-repository-DXyh1hgz.mjs → execution-attempt-repository-Z7oEBcgp.mjs} +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-DOkenapA.d.mts → index-BIlFSGnW.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-Dmwnhnio2.d.mts → index-BU9HQ1vJ2.d.mts} +6 -6
  432. /package/dist/{index-BU8uFswE.d.mts → index-BcPO9w0j.d.mts} +0 -0
  433. /package/dist/{index-DcG3r0VL.d.mts → index-Bk0Xjk-B.d.mts} +0 -0
  434. /package/dist/{index-DGlSbpgS2.d.mts → index-Bn1JTbn_2.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-6wmqw_ng.d.mts → index-Ccaqmi0J.d.mts} +0 -0
  438. /package/dist/{index-zvoiT54b.d.mts → index-CjazerMN.d.mts} +0 -0
  439. /package/dist/{index-BrelUXBT.d.mts → index-DCHdW5g-.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-De25c2ds.d.mts → namespace-B3MnuAqp.d.mts} +0 -0
  454. /package/dist/{namespace-BFlSY040.mjs → namespace-BCSJz417.mjs} +0 -0
  455. /package/dist/{namespace-c5XPzbf3.d.mts → namespace-BFZ4HTH-.d.mts} +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-CIF_1OWi.d.mts → namespace-Czr38fiF.d.mts} +0 -0
  463. /package/dist/{namespace-C9d0aoYT.mjs → namespace-DORNUF0_.mjs} +0 -0
  464. /package/dist/{namespace-QXCaZK3I.mjs → namespace-DX3QsYpv.mjs} +0 -0
  465. /package/dist/{namespace-Cb0XKb4v.d.mts → namespace-De6ORL69.d.mts} +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-I9dZtAkj.d.mts → schemas-CikbhFMx.d.mts} +0 -0
  486. /package/dist/{schemas-NwKrrrPF.d.mts → schemas-Cz7H2f7S.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,4 +1,4 @@
1
- import { _ as LogImporter, i as LogFileChangeEvent, n as LogOrchestratorConfig, t as BaseLogOrchestrator } from "../base-orchestrator-DXiejwQ3.mjs";
1
+ import { _ as LogImporter, i as LogFileChangeEvent, n as LogOrchestratorConfig, t as BaseLogOrchestrator } from "../base-orchestrator-tAgnJAKu.mjs";
2
2
 
3
3
  //#region adapters/core/src/log-importer/jsonl-parser.d.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import{o as e,t}from"../chunk-DTipWd-i.mjs";import{i as n,r}from"../cursor-storage-Co4itf44.mjs";import{t as i}from"../globby-z2SR0jRo.mjs";import*as a from"node:fs/promises";import*as o from"node:path";import{MakaioBus as s}from"@makaio/framework/bus";import{AdapterSubjects as c,ClientSubjects as l,SessionStorageSubjects as u,SessionSubjects as d}from"@makaio/framework/contracts";const f=65536;async function p(e){let{filePath:t,startOffset:n=0}=e,r=[],i=[],o=n,s;try{s=await a.open(t,`r`);let e=await s.stat();if(n>=e.size)return{records:r,bytesRead:n,errors:i};let c=Buffer.alloc(f),l=``,u=n,d=0;for(n>0&&(d=await v(s,n));u<e.size;){let{bytesRead:e}=await s.read(c,0,f,u);if(e===0)break;l+=c.toString(`utf8`,0,e),u+=e;let t=l.split(`
1
+ import{o as e,t}from"../chunk-DTipWd-i.mjs";import{i as n,r}from"../cursor-storage-88xtgVAd.mjs";import{t as i}from"../globby-Begk3aIP.mjs";import*as a from"node:fs/promises";import*as o from"node:path";import{AdapterSubjects as s,ClientSubjects as c,SessionStorageSubjects as l,SessionSubjects as u}from"@makaio/framework/contracts";import{MakaioBus as d}from"@makaio/framework/bus";const f=65536;async function p(e){let{filePath:t,startOffset:n=0}=e,r=[],i=[],o=n,s;try{s=await a.open(t,`r`);let e=await s.stat();if(n>=e.size)return{records:r,bytesRead:n,errors:i};let c=Buffer.alloc(f),l=``,u=n,d=0;for(n>0&&(d=await v(s,n));u<e.size;){let{bytesRead:e}=await s.read(c,0,f,u);if(e===0)break;l+=c.toString(`utf8`,0,e),u+=e;let t=l.split(`
2
2
  `),n=t.pop();for(let e of t){if(d++,e.trim()===``){o+=Buffer.byteLength(e,`utf8`)+1;continue}let t=g(e,d);t.success?r.push(t.record):i.push(t.error),o+=Buffer.byteLength(e,`utf8`)+1}l=n??``}return{records:r,bytesRead:o,errors:i}}finally{s&&await s.close()}}async function m(e,t){let n=[],r;try{r=await a.open(e,`r`);let i=Buffer.alloc(f),o=``,s=0;for(;n.length<t;){let{bytesRead:e}=await r.read(i,0,f,s);if(e===0)break;o+=i.toString(`utf8`,0,e),s+=e;let a=o.split(`
3
3
  `);o=a.pop()??``;for(let e of a){if(n.length>=t)break;let r=e.trim();if(r!==``)try{n.push(JSON.parse(r))}catch{}}}return n}finally{r&&await r.close()}}async function h(e,t){let n;try{n=await a.open(e,`r`);let r=Buffer.alloc(f),i=``,o=0;for(;;){let{bytesRead:e}=await n.read(r,0,f,o);if(e===0)break;i+=r.toString(`utf8`,0,e),o+=e;let a=i.split(`
4
- `);i=a.pop()??``;for(let e of a){let n=e.trim();if(n!==``)try{if(t(JSON.parse(n)))return!0}catch{}}}return!1}finally{n&&await n.close()}}function g(e,t){try{return{success:!0,record:JSON.parse(e)}}catch(n){return{success:!1,error:{line:t,error:n instanceof Error?n.message:String(n),content:_(e)}}}}function _(e){return e.length<=200?e:e.slice(0,200)+`...`}async function v(e,t){let n=0,r=Buffer.alloc(f),i=0;for(;i<t;){let a=Math.min(f,t-i),{bytesRead:o}=await e.read(r,0,a,i);if(o===0)break;for(let e=0;e<o;e++)r[e]===10&&n++;i+=o}return n}var y=e(t(((e,t)=>{var n=Object.prototype.hasOwnProperty,r=`~`;function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(r=!1));function a(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function o(e,t,n,i,o){if(typeof n!=`function`)throw TypeError(`The listener must be a function`);var s=new a(n,i||e,o),c=r?r+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],s]:e._events[c].push(s):(e._events[c]=s,e._eventsCount++),e}function s(e,t){--e._eventsCount===0?e._events=new i:delete e._events[t]}function c(){this._events=new i,this._eventsCount=0}c.prototype.eventNames=function(){var e=[],t,i;if(this._eventsCount===0)return e;for(i in t=this._events)n.call(t,i)&&e.push(r?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e},c.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,a=n.length,o=Array(a);i<a;i++)o[i]=n[i].fn;return o},c.prototype.listenerCount=function(e){var t=r?r+e:e,n=this._events[t];return n?n.fn?1:n.length:0},c.prototype.emit=function(e,t,n,i,a,o){var s=r?r+e:e;if(!this._events[s])return!1;var c=this._events[s],l=arguments.length,u,d;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),l){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,n),!0;case 4:return c.fn.call(c.context,t,n,i),!0;case 5:return c.fn.call(c.context,t,n,i,a),!0;case 6:return c.fn.call(c.context,t,n,i,a,o),!0}for(d=1,u=Array(l-1);d<l;d++)u[d-1]=arguments[d];c.fn.apply(c.context,u)}else{var f=c.length,p;for(d=0;d<f;d++)switch(c[d].once&&this.removeListener(e,c[d].fn,void 0,!0),l){case 1:c[d].fn.call(c[d].context);break;case 2:c[d].fn.call(c[d].context,t);break;case 3:c[d].fn.call(c[d].context,t,n);break;case 4:c[d].fn.call(c[d].context,t,n,i);break;default:if(!u)for(p=1,u=Array(l-1);p<l;p++)u[p-1]=arguments[p];c[d].fn.apply(c[d].context,u)}}return!0},c.prototype.on=function(e,t,n){return o(this,e,t,n,!1)},c.prototype.once=function(e,t,n){return o(this,e,t,n,!0)},c.prototype.removeListener=function(e,t,n,i){var a=r?r+e:e;if(!this._events[a])return this;if(!t)return s(this,a),this;var o=this._events[a];if(o.fn)o.fn===t&&(!i||o.once)&&(!n||o.context===n)&&s(this,a);else{for(var c=0,l=[],u=o.length;c<u;c++)(o[c].fn!==t||i&&!o[c].once||n&&o[c].context!==n)&&l.push(o[c]);l.length?this._events[a]=l.length===1?l[0]:l:s(this,a)}return this},c.prototype.removeAllListeners=function(e){var t;return e?(t=r?r+e:e,this._events[t]&&s(this,t)):(this._events=new i,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=r,c.EventEmitter=c,t!==void 0&&(t.exports=c)}))(),1),b=class e extends Error{name=`TimeoutError`;constructor(t,n){super(t,n),Error.captureStackTrace?.(this,e)}};const x=e=>e.reason??new DOMException(`This operation was aborted.`,`AbortError`);function S(e,t){let{milliseconds:n,fallback:r,message:i,customTimers:a={setTimeout,clearTimeout},signal:o}=t,s,c,l=new Promise((t,l)=>{if(typeof n!=`number`||Math.sign(n)!==1)throw TypeError(`Expected \`milliseconds\` to be a positive number, got \`${n}\``);if(o?.aborted){l(x(o));return}if(o&&(c=()=>{l(x(o))},o.addEventListener(`abort`,c,{once:!0})),e.then(t,l),n===1/0)return;let u=new b;s=a.setTimeout.call(void 0,()=>{if(r){try{t(r())}catch(e){l(e)}return}typeof e.cancel==`function`&&e.cancel(),i===!1?t():i instanceof Error?l(i):(u.message=i??`Promise timed out after ${n} milliseconds`,l(u))},n)}).finally(()=>{l.clear(),c&&o&&o.removeEventListener(`abort`,c)});return l.clear=()=>{a.clearTimeout.call(void 0,s),s=void 0},l}function C(e,t,n){let r=0,i=e.length;for(;i>0;){let a=Math.trunc(i/2),o=r+a;n(e[o],t)<=0?(r=++o,i-=a+1):i=a}return r}var w=class{#e=[];#t=0;enqueue(e,t){let{priority:n=0,id:r}=t??{},{size:i}=this,a={priority:n,id:r,run:e};if(i===0){this.#e.length=0,this.#t=0,this.#e.push(a);return}if(this.#e.at(-1).priority>=n){this.#e.push(a);return}this.#n();let o=C(this.#e,a,(e,t)=>t.priority-e.priority);this.#e.splice(o,0,a)}setPriority(e,t){let n=this.#e.findIndex((t,n)=>n>=this.#t&&t.id===e);if(n===-1)throw ReferenceError(`No promise function with the id "${e}" exists in the queue.`);let[r]=this.#e.splice(n,1);this.enqueue(r.run,{priority:t,id:e})}remove(e){let t=this.#e.findIndex((t,n)=>n<this.#t?!1:typeof e==`string`?t.id===e:t.run===e);t!==-1&&this.#e.splice(t,1)}dequeue(){if(this.#t===this.#e.length)return;let e=this.#e[this.#t];return this.#t++,this.#t===this.#e.length?(this.#e.length=0,this.#t=0):this.#t>100&&this.#t>this.#e.length/2&&this.#n(),e?.run}filter(e){let t=[];for(let n=this.#t;n<this.#e.length;n++){let r=this.#e[n];r.priority===e.priority&&t.push(r.run)}return t}get size(){return this.#e.length-this.#t}#n(){this.#t!==0&&(this.#e.splice(0,this.#t),this.#t=0)}},T=class extends y.default{#e;#t;#n=0;#r;#i=!1;#a=!1;#o;#s=0;#c=0;#l;#u;#d;#f=[];#p=0;#m;#h;#g=0;#_;#v;#y=1n;#b=new Map;#x=new Set;timeout;constructor(e){if(super(),e={carryoverIntervalCount:!1,intervalCap:1/0,interval:0,concurrency:1/0,autoStart:!0,queueClass:w,strict:!1,...e},!(typeof e.intervalCap==`number`&&e.intervalCap>=1))throw TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??``}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??``}\` (${typeof e.interval})`);if(e.strict&&e.interval===0)throw TypeError("The `strict` option requires a non-zero `interval`");if(e.strict&&e.intervalCap===1/0)throw TypeError("The `strict` option requires a finite `intervalCap`");if(this.#e=e.carryoverIntervalCount??e.carryoverConcurrencyCount??!1,this.#t=e.intervalCap===1/0||e.interval===0,this.#r=e.intervalCap,this.#o=e.interval,this.#d=e.strict,this.#m=new e.queueClass,this.#h=e.queueClass,this.concurrency=e.concurrency,e.timeout!==void 0&&!(Number.isFinite(e.timeout)&&e.timeout>0))throw TypeError(`Expected \`timeout\` to be a positive finite number, got \`${e.timeout}\` (${typeof e.timeout})`);this.timeout=e.timeout,this.#v=e.autoStart===!1,this.#z()}#S(e){for(;this.#p<this.#f.length;){let t=this.#f[this.#p];if(t!==void 0&&e-t>=this.#o)this.#p++;else break}(this.#p>100&&this.#p>this.#f.length/2||this.#p===this.#f.length)&&(this.#f=this.#f.slice(this.#p),this.#p=0)}#C(e){this.#d?this.#f.push(e):this.#n++}#w(){this.#d?this.#f.length>this.#p&&this.#f.pop():this.#n>0&&this.#n--}#T(){return this.#f.length-this.#p}get#E(){return this.#t?!0:this.#d?this.#T()<this.#r:this.#n<this.#r}get#D(){return this.#g<this.#_}#O(){this.#g--,this.#g===0&&this.emit(`pendingZero`),this.#P(),this.emit(`next`)}#k(){this.#u=void 0,this.#I(),this.#F()}#A(e){if(this.#d){if(this.#S(e),this.#T()>=this.#r){let t=this.#f[this.#p],n=this.#o-(e-t);return this.#j(n),!0}return!1}if(this.#l===void 0){let t=this.#s-e;if(t<0){if(this.#c>0){let t=e-this.#c;if(t<this.#o)return this.#j(this.#o-t),!0}this.#n=this.#e?this.#g:0}else return this.#j(t),!0}return!1}#j(e){this.#u===void 0&&(this.#u=setTimeout(()=>{this.#k()},e))}#M(){this.#l&&=(clearInterval(this.#l),void 0)}#N(){this.#u&&=(clearTimeout(this.#u),void 0)}#P(){if(this.#m.size===0){if(this.#M(),this.emit(`empty`),this.#g===0){if(this.#N(),this.#d&&this.#p>0){let e=Date.now();this.#S(e)}this.emit(`idle`)}return!1}let e=!1;if(!this.#v){let t=Date.now(),n=!this.#A(t);if(this.#E&&this.#D){let r=this.#m.dequeue();this.#t||(this.#C(t),this.#B()),this.emit(`active`),r(),n&&this.#F(),e=!0}}return e}#F(){this.#t||this.#l!==void 0||this.#d||(this.#l=setInterval(()=>{this.#I()},this.#o),this.#s=Date.now()+this.#o)}#I(){this.#d||(this.#n===0&&this.#g===0&&this.#l&&this.#M(),this.#n=this.#e?this.#g:0),this.#L(),this.#B()}#L(){for(;this.#P(););}get concurrency(){return this.#_}set concurrency(e){if(!(typeof e==`number`&&e>=1))throw TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this.#_=e,this.#L()}setPriority(e,t){if(typeof t!=`number`||!Number.isFinite(t))throw TypeError(`Expected \`priority\` to be a finite number, got \`${t}\` (${typeof t})`);this.#m.setPriority(e,t)}async add(e,t={}){return t={timeout:this.timeout,...t,id:t.id??(this.#y++).toString()},new Promise((n,r)=>{let i=Symbol(`task-${t.id}`),a=()=>void 0,o=async()=>{a(),this.#g++,this.#b.set(i,{id:t.id,priority:t.priority??0,startTime:Date.now(),timeout:t.timeout});let o;try{try{t.signal?.throwIfAborted()}catch(e){throw this.#V(),this.#b.delete(i),e}this.#c=Date.now();let r=e({signal:t.signal});if(t.timeout&&(r=S(Promise.resolve(r),{milliseconds:t.timeout,message:`Task timed out after ${t.timeout}ms (queue has ${this.#g} running, ${this.#m.size} waiting)`})),t.signal){let{signal:e}=t;r=Promise.race([r,new Promise((t,n)=>{o=()=>{n(e.reason)},e.addEventListener(`abort`,o,{once:!0})})])}let a=await r;n(a),this.emit(`completed`,a)}catch(e){r(e),this.emit(`error`,e)}finally{o&&t.signal?.removeEventListener(`abort`,o),this.#b.delete(i),queueMicrotask(()=>{this.#O()})}};this.#m.enqueue(o,t);let s=()=>{if(this.#m instanceof w){this.#m.remove(o);return}this.#m.remove?.(t.id)};if(t.signal){let{signal:e}=t,n=()=>{a(),s(),r(e.reason),this.#P(),this.emit(`next`)};if(a=()=>{e.removeEventListener(`abort`,n),this.#x.delete(a)},e.aborted){n();return}e.addEventListener(`abort`,n,{once:!0}),this.#x.add(a)}this.emit(`add`),this.#P()})}async addAll(e,t){return Promise.all(e.map(async e=>this.add(e,t)))}start(){return this.#v?(this.#v=!1,this.#L(),this):this}pause(){this.#v=!0}clear(){for(let e of this.#x)e();this.#m=new this.#h,this.#M(),this.#H(),this.emit(`empty`),this.#g===0&&(this.#N(),this.emit(`idle`)),this.emit(`next`)}async onEmpty(){this.#m.size!==0&&await this.#R(`empty`)}async onSizeLessThan(e){this.#m.size<e||await this.#R([`next`,`active`],()=>this.#m.size<e)}async onIdle(){this.#g===0&&this.#m.size===0||await this.#R(`idle`)}async onPendingZero(){this.#g!==0&&await this.#R(`pendingZero`)}async onRateLimit(){this.isRateLimited||await this.#R(`rateLimit`)}async onRateLimitCleared(){this.isRateLimited&&await this.#R(`rateLimitCleared`)}onError(){return new Promise((e,t)=>{let n=e=>{this.off(`error`,n),t(e)};this.on(`error`,n)})}async#R(e,t){let n=Array.isArray(e)?e:[e];return new Promise(e=>{let r=()=>{if(!(t&&!t())){for(let e of n)this.off(e,r);e()}};for(let e of n)this.on(e,r)})}get size(){return this.#m.size}sizeBy(e){return this.#m.filter(e).length}get pending(){return this.#g}get isPaused(){return this.#v}#z(){this.#t||(this.on(`add`,()=>{this.#m.size>0&&this.#B()}),this.on(`next`,()=>{this.#B()}))}#B(){this.#t||this.#a||(this.#a=!0,queueMicrotask(()=>{this.#a=!1,this.#H()}))}#V(){this.#t||(this.#w(),this.#B())}#H(){let e=this.#i;if(this.#t||this.#m.size===0){e&&(this.#i=!1,this.emit(`rateLimitCleared`));return}let t;if(this.#d){let e=Date.now();this.#S(e),t=this.#T()}else t=this.#n;let n=t>=this.#r;n!==e&&(this.#i=n,this.emit(n?`rateLimit`:`rateLimitCleared`))}get isRateLimited(){return this.#i}get isSaturated(){return this.#g===this.#_&&this.#m.size>0||this.isRateLimited&&this.#m.size>0}get runningTasks(){return[...this.#b.values()].map(e=>({...e,timeoutRemaining:e.timeout?Math.max(0,e.startTime+e.timeout-Date.now()):void 0}))}},E=class{eventQueue;cursorQueue;onEventEmitted;constructor(e){this.onEventEmitted=e.onEventEmitted,this.eventQueue=new T({concurrency:1,interval:1e3,intervalCap:e.eventsPerSecond}),this.cursorQueue=new T({concurrency:1})}queueEvent(e){return this.eventQueue.add(async()=>{await s.emit(e.subject,e.payload),this.onEventEmitted()})}queueAfterEvents(e,t=[]){let n=Promise.all(t);return n.catch(()=>void 0),this.cursorQueue.add(async()=>{await n,await e()})}async drain(){await Promise.all([this.eventQueue.onIdle(),this.cursorQueue.onIdle()])}async onIdle(){await this.drain()}},D=class{options;emittery=new n;trackedFiles=new Map;pollTimer;isPolling=!1;isDisposed=!1;inFlightChecks=new Map;constructor(e){if(!o.isAbsolute(e.directory))throw Error(`Directory must be an absolute path: ${e.directory}`);this.options={directory:e.directory,pattern:e.pattern,pollIntervalMs:e.pollIntervalMs??1e4}}on(e,t){return this.emittery.on(e,t)}once(e,t){return this.emittery.once(e,t)}async start(){this.isDisposed||this.pollTimer===void 0&&(await this.poll(),this.pollTimer=setInterval(()=>{this.poll()},this.options.pollIntervalMs))}stop(){this.pollTimer!==void 0&&(clearInterval(this.pollTimer),this.pollTimer=void 0)}dispose(){this.isDisposed=!0,this.stop(),this.emittery.clearListeners(),this.trackedFiles.clear(),this.inFlightChecks.clear()}isRunning(){return this.pollTimer!==void 0}getTrackedFiles(){return this.trackedFiles}seedFromCursors(e){for(let t of e)this.trackedFiles.set(t.filePath,{size:t.bytesRead,mtimeMs:new Date(t.lastModified).getTime()})}async poll(){if(!this.isDisposed&&!this.isPolling){this.isPolling=!0;try{let e=await this.discoverFiles(),t=new Set(e);for(let e of this.trackedFiles.keys())if(!t.has(e)){if(this.isDisposed)return;this.trackedFiles.delete(e),await this.emittery.emit(`deleted`,{filePath:e})}for(let t of e)try{await this.runFileCheck(t)}catch(e){await this.emitWatcherError(e,t)}if(this.isDisposed)return;await this.emittery.emit(`polled`,{trackedFilePaths:new Set(this.trackedFiles.keys())})}catch(e){await this.emitWatcherError(e)}finally{this.isPolling=!1}}}async discoverFiles(){return i(this.options.pattern,{cwd:this.options.directory,absolute:!0,onlyFiles:!0})}async checkFile(e){if(this.isDisposed)return;let t=await a.stat(e);if(this.isDisposed)return;let n={size:t.size,mtimeMs:t.mtimeMs},r=this.trackedFiles.get(e);if(!r){if(this.trackedFiles.set(e,n),this.isDisposed){this.trackedFiles.delete(e);return}await this.emittery.emit(`change`,{filePath:e,stat:{size:t.size,mtime:t.mtime},changeType:`created`});return}if(n.mtimeMs!==r.mtimeMs){let i=n.size<r.size?`rotated`:`modified`;if(this.trackedFiles.set(e,n),this.isDisposed)return;await this.emittery.emit(`change`,{filePath:e,stat:{size:t.size,mtime:t.mtime},changeType:i})}}clearTrackedFile(e){return this.trackedFiles.delete(e)}clearAllTrackedFiles(){this.trackedFiles.clear()}triggerImmediatePoll(e){this.runFileCheck(e).catch(t=>{this.emitWatcherError(t,e)})}async runFileCheck(e){if(this.isDisposed)return;let t=this.inFlightChecks.get(e);if(t){await t;return}let n=(async()=>{try{await this.checkFile(e)}finally{this.inFlightChecks.delete(e)}})();this.inFlightChecks.set(e,n),await n}async emitWatcherError(e,t){let n=e instanceof Error?e:Error(String(e));try{await this.emittery.emit(`error`,{error:n,filePath:t})}catch(e){console.error(`[LogFileWatcher] Error listener failed:`,e instanceof Error?e.message:String(e))}}},O=class{watcher;constructor(e){this.watcher=new D(e)}isRunning(){return this.watcher.isRunning()}async start(){await this.watcher.start()}stop(){this.watcher.stop()}dispose(){this.watcher.dispose()}onChange(e){return this.watcher.on(`change`,e)}onError(e){return this.watcher.on(`error`,e)}onDeleted(e){return this.watcher.on(`deleted`,e)}onPolled(e){return this.watcher.on(`polled`,({trackedFilePaths:t})=>e(t))}getTrackedFileMtimeMs(e){return this.watcher.getTrackedFiles().get(e)?.mtimeMs}triggerImmediatePoll(e){this.watcher.triggerImmediatePoll(e)}seedFromCursors(e){this.watcher.seedFromCursors(e)}},k=class{filesProcessed=0;eventsEmitted=0;sessionsImported=new Set;sessionsSkipped=new Set;lastLoggedEventCount=0;lastLoggedSnapshot=``;reset(){this.filesProcessed=0,this.eventsEmitted=0,this.sessionsImported.clear(),this.sessionsSkipped.clear(),this.lastLoggedEventCount=0,this.lastLoggedSnapshot=``}recordFileProcessed(){this.filesProcessed++}recordEventEmitted(e){this.eventsEmitted++,!(this.eventsEmitted-this.lastLoggedEventCount<1e3)&&(console.info(`${e} Imported ${this.eventsEmitted} events (${this.sessionsImported.size} sessions)...`),this.lastLoggedEventCount=this.eventsEmitted)}recordSessionImported(e){this.sessionsImported.add(e)}recordSessionSkipped(e){this.sessionsSkipped.add(e)}hasActivity(){return this.eventsEmitted>0||this.filesProcessed>0}stoppedMessage(e){return`${e} Stopped - ${this.eventsEmitted} events from ${this.sessionsImported.size} sessions (${this.sessionsSkipped.size} skipped)`}logProgress(e){if(!this.hasActivity())return;let t=JSON.stringify({eventsEmitted:this.eventsEmitted,filesProcessed:this.filesProcessed,sessionsImported:this.sessionsImported.size,sessionsSkipped:this.sessionsSkipped.size});t!==this.lastLoggedSnapshot&&(this.lastLoggedSnapshot=t,console.info(`${e} Progress: ${this.eventsEmitted} events, ${this.sessionsImported.size} sessions, ${this.filesProcessed} files, ${this.sessionsSkipped.size} skipped`))}};function A(e){return async t=>{try{if(e!==void 0)try{let n=await s.requestOptional(l.runtime.isAdapterManaged,{adapterSessionId:t,clientId:e});if(n.handled&&n.data.managed)return!0}catch{}let n=await s.request(d.getByAdapterSessionId,{adapterSessionId:t});return n.session!==null&&!n.session.isImported}catch{return!1}}}var j=class{checkedSessions=new Map;inFlight=new Map;generations=new Map;async isSkipped(e,t,n){for(;;){let r=this.checkedSessions.get(e);if(r!==void 0)return r;let i=this.generations.get(e)??0,a=this.inFlight.get(e),o;if(a&&a.generation===i?o=a.promise:(o=t(e).then(t=>((this.generations.get(e)??0)===i&&(this.checkedSessions.set(e,t),t&&n(e)),t)).finally(()=>{let t=this.inFlight.get(e);t&&t.generation===i&&this.inFlight.delete(e)}),this.inFlight.set(e,{generation:i,promise:o})),await o,(this.generations.get(e)??0)===i){let t=this.checkedSessions.get(e);if(t!==void 0)return t;continue}}}invalidate(e){this.checkedSessions.delete(e),this.inFlight.delete(e),this.generations.set(e,(this.generations.get(e)??0)+1)}clear(){this.checkedSessions.clear(),this.inFlight.clear(),this.generations.clear()}};function M(e,t,n,r){return!n||!e||r===`rotated`?!1:new Date(e)>=t}function N(e,t,n){for(let r of n??[]){let n=r.line===void 0?``:` at line ${r.line}`;console.warn(`${e} Parse error in ${t}${n}: ${r.error}`)}}async function P(e,t,n,i){let{cursor:a}=await s.request(r.get,{filePath:e});return a&&a.bytesRead>0&&!a.sessionContext&&!t?(await s.request(r.delete,{filePath:e}).catch(()=>{}),i(n),`retry`):a}async function F(e,t,n,r,i,a){let o=await a.parseFile(e,0);N(i,e,o.errors);let s=a.validateRecords(o.records);s.length>0&&await a.handleFirstRead(e,s,o.bytesRead??0,t,n,0,r)}function I(e,t,n,r,i){let a=[];n&&(a.push(i(t.sessionEvent)),a.push(i(t.startedEvent)));let o=r(e,t);for(let e of o)a.push(i(e));return a}function L(e,t){let n=[];for(let r of e)n.push(t(r));return n}function R(e){return typeof e==`object`&&!!e&&`compactionDetected`in e&&e.compactionDetected===!0}function z(e,t,n){return{...e,state:n(t)}}var B=class{tasks=new Set;track(e){this.tasks.add(e),e.finally(()=>{this.tasks.delete(e)})}async drain(){for(;this.tasks.size>0;)await Promise.allSettled([...this.tasks])}},V=class{config;watcher;eventQueue;importer;managedSessionCache=new j;unsubscribeChange;unsubscribeError;unsubscribeDeleted;unsubscribeRuntimeStarted;stats=new k;watcherTasks=new B;progressTimer;constructor(e,t){this.importer=t;let n=e.directory??t.getLogDirectory();this.config={enabled:e.enabled,directory:e.directory,pollIntervalMs:e.pollIntervalMs??1e4,eventsPerSecond:e.eventsPerSecond??100,adapterId:e.adapterId,adapterName:e.adapterName,checkMakaioManaged:e.checkMakaioManaged,clientId:e.clientId,machineId:e.machineId},this.watcher=new O({directory:n,pattern:this.getLogFilePattern(),pollIntervalMs:this.config.pollIntervalMs}),this.eventQueue=new E({eventsPerSecond:this.config.eventsPerSecond,onEventEmitted:()=>{this.stats.recordEventEmitted(this.logPrefix)}})}shouldSkipFile(e){return!1}validateRecords(e){return e}getMaxRecords(){}buildCursorSessionContext(e){let{adapterSessionId:t,sessionEvent:n,startedEvent:r,state:i,...a}=e;return{...a,adapterSessionId:t,sessionEvent:n,startedEvent:r,state:this.importer.serializeState(i)}}usesJsonFormat(){let e=this.getLogFilePattern();return e.includes(`.json`)&&!e.includes(`.jsonl`)}isEnabled(){return this.config.enabled}isRunning(){return this.watcher.isRunning()}async start(){if(!this.config.enabled||this.isRunning())return;let e=this.config.directory??this.importer.getLogDirectory();console.info(`${this.logPrefix} Starting - watching ${e}`),this.stats.reset(),this.managedSessionCache.clear(),this.progressTimer=setInterval(()=>this.stats.logProgress(this.logPrefix),1e4),this.unsubscribeChange=this.watcher.onChange(e=>{this.trackFileChange(e)}),this.unsubscribeError=this.watcher.onError(({error:e,filePath:t})=>{console.warn(`${this.logPrefix} Error${t?` for ${t}`:``}: ${e.message}`)}),this.unsubscribeDeleted=this.watcher.onDeleted(({filePath:e})=>{this.watcherTasks.track(s.request(r.delete,{filePath:e}).then(()=>void 0).catch(()=>{}))}),this.unsubscribeRuntimeStarted=s.on(l.runtime.started,e=>{e.payload.source.layer===`adapter`&&e.payload.adapterSessionId!==void 0&&this.managedSessionCache.invalidate(e.payload.adapterSessionId)}),await this.watcher.start()}async stop(){this.progressTimer&&=(clearInterval(this.progressTimer),void 0),this.unsubscribeChange?.(),this.unsubscribeError?.(),this.unsubscribeDeleted?.(),this.unsubscribeRuntimeStarted?.(),this.unsubscribeChange=void 0,this.unsubscribeError=void 0,this.unsubscribeDeleted=void 0,this.unsubscribeRuntimeStarted=void 0,this.watcher.stop(),await this.watcherTasks.drain(),await this.eventQueue.drain(),this.stats.hasActivity()&&console.info(this.stats.stoppedMessage(this.logPrefix))}async dispose(){await this.stop(),this.watcher.dispose(),this.managedSessionCache.clear()}static createDefaultCheckMakaioManaged(e){return A(e)}async updateCursor(e,t,n,i){await s.request(r.set,{filePath:e,bytesRead:t,lastModified:n.toISOString(),sessionContext:i})}async handleFileChange(e){let{filePath:t,changeType:n,stat:i}=e;if(this.shouldSkipFile(t))return;let a=this.usesJsonFormat();n===`rotated`&&await s.request(r.delete,{filePath:t}).catch(()=>{});let o=await P(t,a,e,e=>this.trackFileChange(e));if(o===`retry`)return;let c=o?.sessionContext!==void 0,l=c?o?.bytesRead??0:0;if(M(o?.lastModified,i.mtime,a,n))return;let u=await this.parseFile(t,a?0:l,this.getMaxRecords());N(this.logPrefix,t,u.errors),this.stats.recordFileProcessed();let d=this.validateRecords(u.records),f=u.bytesRead??0;if(d.length===0){await this.maybeUpdateCursor(t,f,l,i.mtime,a,o?.sessionContext);return}c&&o?.sessionContext?await this.handleIncrementalRead(t,d,o.sessionContext,f,i.mtime,a,l):await this.handleFirstRead(t,d,f,i.mtime,a,l)}trackFileChange(e){let t=this.handleFileChange(e).catch(e=>{console.error(`${this.logPrefix} Error handling file change:`,e instanceof Error?e.message:String(e))});this.watcherTasks.track(t)}async handleFirstRead(e,t,n,r,i,a,o=!0){let s=this.importer.extractSessionContext(t);if(await this.isSessionSkipped(s.adapterSessionId)){await this.maybeUpdateCursor(e,n,a,r,i,this.buildCursorSessionContext(s));return}let c=I(t,s,o,(e,t)=>this.importer.processRecords(e,t),e=>this.queueEvent(e));this.trackImportedSession(s.adapterSessionId),await this.queueCursorUpdate(e,n,a,r,i,this.buildCursorSessionContext(s),c)}trackImportedSession(e){this.stats.recordSessionImported(e)}async handleIncrementalRead(e,t,n,i,a,o,c){if(await this.isSessionSkipped(n.adapterSessionId)){await this.maybeUpdateCursor(e,i,c,a,o,n);return}let l;try{l=this.importer.deserializeState(n.state)}catch(t){console.warn(`${this.logPrefix} Corrupted cursor state for ${e}, deleting cursor and re-importing.`,t instanceof Error?t.message:String(t)),await s.request(r.delete,{filePath:e}).catch(t=>{console.warn(`${this.logPrefix} Failed to delete corrupted cursor for ${e}.`,t instanceof Error?t.message:String(t))}),await F(e,a,o,!0,this.logPrefix,{parseFile:(e,t)=>this.parseFile(e,t),validateRecords:e=>this.validateRecords(e),handleFirstRead:(e,t,n,r,i,a,o)=>this.handleFirstRead(e,t,n,r,i,a,o)});return}let u={adapterSessionId:n.adapterSessionId,model:n.model,cwd:n.cwd,sessionEvent:n.sessionEvent,startedEvent:n.startedEvent,state:l},d=this.importer.processRecords(t,u);if(R(u.state)){await F(e,a,o,!1,this.logPrefix,{parseFile:(e,t)=>this.parseFile(e,t),validateRecords:e=>this.validateRecords(e),handleFirstRead:(e,t,n,r,i,a,o)=>this.handleFirstRead(e,t,n,r,i,a,o)});return}let f=L(d,e=>this.queueEvent(e)),p=z(n,u.state,e=>this.importer.serializeState(e));await this.queueCursorUpdate(e,i,c,a,o,p,f)}async maybeUpdateCursor(e,t,n,r,i,a){(t>n||i)&&await this.updateCursor(e,t,r,a)}async isSessionSkipped(e){return this.managedSessionCache.isSkipped(e,e=>this.importer.isMakaioManaged(e),e=>this.stats.recordSessionSkipped(e))}queueEvent(e){return this.eventQueue.queueEvent(e)}queueCursorUpdate(e,t,n,r,i,a,o=[]){return this.eventQueue.queueAfterEvents(()=>this.maybeUpdateCursor(e,t,n,r,i,a),o)}},H=class extends V{trackingFilePaths=new Set;trackingInactiveCount=new Map;lastSeenMtimeMs=new Map;unsubscribePolled;constructor(e,t){super(e,t)}clearTrackingState(e){this.trackingFilePaths.delete(e),this.trackingInactiveCount.delete(e),this.lastSeenMtimeMs.delete(e)}async persistImportedStatus(e){let{session:t}=await s.request(u.getByLogFilePath,{logFilePath:e});return!t||t.importStatus!==`tracking`||(await s.request(u.updateImportStatus,{sessionId:t.sessionId,importStatus:`imported`})).success?!0:(console.warn(`${this.logPrefix} Failed to persist imported status for ${e}`),!1)}async start(){!this.isEnabled()||this.isRunning()||(await super.start(),this.unsubscribePolled=this.watcher.onPolled(e=>{this.onPollCycle(e).catch(e=>{console.error(`${this.logPrefix} Error handling poll cycle:`,e instanceof Error?e.message:String(e))})}),await this.restorePersistedTrackingState())}async stop(){this.unsubscribePolled?.(),this.unsubscribePolled=void 0,await super.stop()}async dispose(){this.trackingFilePaths.clear(),this.trackingInactiveCount.clear(),this.lastSeenMtimeMs.clear(),await super.dispose()}async handleFileChange(e){let{filePath:t,changeType:n,stat:i}=e;if(this.shouldSkipFile(t))return;let{cursor:a}=await s.request(r.get,{filePath:t});if(!a){await this.discoverNewFile(e);return}n===`modified`&&await this.handleModifiedImportedFile(t,e,i.mtime)}async restorePersistedTrackingState(){this.trackingFilePaths.clear(),this.trackingInactiveCount.clear(),this.lastSeenMtimeMs.clear();try{let{sessions:e}=await s.request(u.listImported,{source:this.config.adapterName,importStatus:`tracking`});for(let t of e){if(t.source!==this.config.adapterName)continue;if(!t.logFilePath){(await s.request(u.updateImportStatus,{sessionId:t.sessionId,importStatus:`imported`})).success||console.warn(`${this.logPrefix} Failed to reset tracking status for session ${t.sessionId}`);continue}let e=this.watcher.getTrackedFileMtimeMs(t.logFilePath);if(e===void 0){(await s.request(u.updateImportStatus,{sessionId:t.sessionId,importStatus:`imported`})).success||console.warn(`${this.logPrefix} Failed to reset tracking status for ${t.logFilePath}`);continue}this.trackingFilePaths.add(t.logFilePath),this.trackingInactiveCount.set(t.logFilePath,0),this.lastSeenMtimeMs.set(t.logFilePath,e)}}catch(e){console.warn(`[DiscoveryOrchestrator] Failed to restore persisted tracking state:`,e instanceof Error?e.message:String(e))}}async discoverNewFile(e){let{filePath:t,stat:n}=e,r=await this.importer.extractDiscoveryMetadata(t);if(!(r.hasMessages??!1)){await this.updateCursor(t,0,n.mtime);return}if(await this.isSessionSkipped(r.adapterSessionId)){await this.updateCursor(t,0,n.mtime);return}let i=this.queueEvent({subject:c.session.discovered,payload:{adapterId:this.config.adapterId,adapterName:this.config.adapterName,adapterSessionId:r.adapterSessionId,model:r.model??null,cwd:r.cwd??null,title:r.title,parentAdapterSessionId:r.parentAdapterSessionId??null,forkPointMessageId:r.forkPointMessageId??null,kind:r.kind??`root`,startedAt:r.startedAt,logFilePath:t}});await this.eventQueue.queueAfterEvents(()=>this.updateCursor(t,0,n.mtime),[i])}async handleModifiedImportedFile(e,t,n){let{session:r}=await s.request(u.getByLogFilePath,{logFilePath:e});if(!r){await this.discoverNewFile(t);return}if(r.source===this.config.adapterName&&!(r.importStatus!==`imported`&&r.importStatus!==`tracking`)){if(await super.handleFileChange(t),r.importStatus===`imported`&&!(await s.request(u.updateImportStatus,{sessionId:r.sessionId,importStatus:`tracking`})).success){console.warn(`${this.logPrefix} Failed to persist tracking status for ${e}`);return}this.trackingFilePaths.add(e),this.lastSeenMtimeMs.set(e,n.getTime()),this.trackingInactiveCount.delete(e),this.watcher.triggerImmediatePoll(e)}}async onPollCycle(e){for(let t of[...this.trackingFilePaths]){if(!e.has(t)){await this.persistImportedStatus(t)&&this.clearTrackingState(t);continue}let n=this.watcher.getTrackedFileMtimeMs(t),r=this.lastSeenMtimeMs.get(t);if(!(n===void 0||r===void 0))try{if(n===r){let e=(this.trackingInactiveCount.get(t)??0)+1;e>=3?await this.persistImportedStatus(t)&&this.clearTrackingState(t):this.trackingInactiveCount.set(t,e)}else this.lastSeenMtimeMs.set(t,n),this.trackingInactiveCount.delete(t)}catch(e){console.warn(`${this.logPrefix} Failed to process tracked file ${t}:`,e instanceof Error?e.message:String(e))}}}};export{V as BaseLogOrchestrator,H as DiscoveryOrchestrator,p as parseJsonlFile,m as readFirstJsonlRecords,h as someJsonlRecord};
4
+ `);i=a.pop()??``;for(let e of a){let n=e.trim();if(n!==``)try{if(t(JSON.parse(n)))return!0}catch{}}}return!1}finally{n&&await n.close()}}function g(e,t){try{return{success:!0,record:JSON.parse(e)}}catch(n){return{success:!1,error:{line:t,error:n instanceof Error?n.message:String(n),content:_(e)}}}}function _(e){return e.length<=200?e:e.slice(0,200)+`...`}async function v(e,t){let n=0,r=Buffer.alloc(f),i=0;for(;i<t;){let a=Math.min(f,t-i),{bytesRead:o}=await e.read(r,0,a,i);if(o===0)break;for(let e=0;e<o;e++)r[e]===10&&n++;i+=o}return n}var y=e(t(((e,t)=>{var n=Object.prototype.hasOwnProperty,r=`~`;function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(r=!1));function a(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function o(e,t,n,i,o){if(typeof n!=`function`)throw TypeError(`The listener must be a function`);var s=new a(n,i||e,o),c=r?r+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],s]:e._events[c].push(s):(e._events[c]=s,e._eventsCount++),e}function s(e,t){--e._eventsCount===0?e._events=new i:delete e._events[t]}function c(){this._events=new i,this._eventsCount=0}c.prototype.eventNames=function(){var e=[],t,i;if(this._eventsCount===0)return e;for(i in t=this._events)n.call(t,i)&&e.push(r?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e},c.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,a=n.length,o=Array(a);i<a;i++)o[i]=n[i].fn;return o},c.prototype.listenerCount=function(e){var t=r?r+e:e,n=this._events[t];return n?n.fn?1:n.length:0},c.prototype.emit=function(e,t,n,i,a,o){var s=r?r+e:e;if(!this._events[s])return!1;var c=this._events[s],l=arguments.length,u,d;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),l){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,n),!0;case 4:return c.fn.call(c.context,t,n,i),!0;case 5:return c.fn.call(c.context,t,n,i,a),!0;case 6:return c.fn.call(c.context,t,n,i,a,o),!0}for(d=1,u=Array(l-1);d<l;d++)u[d-1]=arguments[d];c.fn.apply(c.context,u)}else{var f=c.length,p;for(d=0;d<f;d++)switch(c[d].once&&this.removeListener(e,c[d].fn,void 0,!0),l){case 1:c[d].fn.call(c[d].context);break;case 2:c[d].fn.call(c[d].context,t);break;case 3:c[d].fn.call(c[d].context,t,n);break;case 4:c[d].fn.call(c[d].context,t,n,i);break;default:if(!u)for(p=1,u=Array(l-1);p<l;p++)u[p-1]=arguments[p];c[d].fn.apply(c[d].context,u)}}return!0},c.prototype.on=function(e,t,n){return o(this,e,t,n,!1)},c.prototype.once=function(e,t,n){return o(this,e,t,n,!0)},c.prototype.removeListener=function(e,t,n,i){var a=r?r+e:e;if(!this._events[a])return this;if(!t)return s(this,a),this;var o=this._events[a];if(o.fn)o.fn===t&&(!i||o.once)&&(!n||o.context===n)&&s(this,a);else{for(var c=0,l=[],u=o.length;c<u;c++)(o[c].fn!==t||i&&!o[c].once||n&&o[c].context!==n)&&l.push(o[c]);l.length?this._events[a]=l.length===1?l[0]:l:s(this,a)}return this},c.prototype.removeAllListeners=function(e){var t;return e?(t=r?r+e:e,this._events[t]&&s(this,t)):(this._events=new i,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=r,c.EventEmitter=c,t!==void 0&&(t.exports=c)}))(),1),b=class e extends Error{name=`TimeoutError`;constructor(t,n){super(t,n),Error.captureStackTrace?.(this,e)}};const x=e=>e.reason??new DOMException(`This operation was aborted.`,`AbortError`);function S(e,t){let{milliseconds:n,fallback:r,message:i,customTimers:a={setTimeout,clearTimeout},signal:o}=t,s,c,l=new Promise((t,l)=>{if(typeof n!=`number`||Math.sign(n)!==1)throw TypeError(`Expected \`milliseconds\` to be a positive number, got \`${n}\``);if(o?.aborted){l(x(o));return}if(o&&(c=()=>{l(x(o))},o.addEventListener(`abort`,c,{once:!0})),e.then(t,l),n===1/0)return;let u=new b;s=a.setTimeout.call(void 0,()=>{if(r){try{t(r())}catch(e){l(e)}return}typeof e.cancel==`function`&&e.cancel(),i===!1?t():i instanceof Error?l(i):(u.message=i??`Promise timed out after ${n} milliseconds`,l(u))},n)}).finally(()=>{l.clear(),c&&o&&o.removeEventListener(`abort`,c)});return l.clear=()=>{a.clearTimeout.call(void 0,s),s=void 0},l}function C(e,t,n){let r=0,i=e.length;for(;i>0;){let a=Math.trunc(i/2),o=r+a;n(e[o],t)<=0?(r=++o,i-=a+1):i=a}return r}var w=class{#e=[];#t=0;enqueue(e,t){let{priority:n=0,id:r}=t??{},{size:i}=this,a={priority:n,id:r,run:e};if(i===0){this.#e.length=0,this.#t=0,this.#e.push(a);return}if(this.#e.at(-1).priority>=n){this.#e.push(a);return}this.#n();let o=C(this.#e,a,(e,t)=>t.priority-e.priority);this.#e.splice(o,0,a)}setPriority(e,t){let n=this.#e.findIndex((t,n)=>n>=this.#t&&t.id===e);if(n===-1)throw ReferenceError(`No promise function with the id "${e}" exists in the queue.`);let[r]=this.#e.splice(n,1);this.enqueue(r.run,{priority:t,id:e})}remove(e){let t=this.#e.findIndex((t,n)=>n<this.#t?!1:typeof e==`string`?t.id===e:t.run===e);t!==-1&&this.#e.splice(t,1)}dequeue(){if(this.#t===this.#e.length)return;let e=this.#e[this.#t];return this.#t++,this.#t===this.#e.length?(this.#e.length=0,this.#t=0):this.#t>100&&this.#t>this.#e.length/2&&this.#n(),e?.run}filter(e){let t=[];for(let n=this.#t;n<this.#e.length;n++){let r=this.#e[n];r.priority===e.priority&&t.push(r.run)}return t}get size(){return this.#e.length-this.#t}#n(){this.#t!==0&&(this.#e.splice(0,this.#t),this.#t=0)}},T=class extends y.default{#e;#t;#n=0;#r;#i=!1;#a=!1;#o;#s=0;#c=0;#l;#u;#d;#f=[];#p=0;#m;#h;#g=0;#_;#v;#y=1n;#b=new Map;#x=new Set;timeout;constructor(e){if(super(),e={carryoverIntervalCount:!1,intervalCap:1/0,interval:0,concurrency:1/0,autoStart:!0,queueClass:w,strict:!1,...e},!(typeof e.intervalCap==`number`&&e.intervalCap>=1))throw TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??``}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??``}\` (${typeof e.interval})`);if(e.strict&&e.interval===0)throw TypeError("The `strict` option requires a non-zero `interval`");if(e.strict&&e.intervalCap===1/0)throw TypeError("The `strict` option requires a finite `intervalCap`");if(this.#e=e.carryoverIntervalCount??e.carryoverConcurrencyCount??!1,this.#t=e.intervalCap===1/0||e.interval===0,this.#r=e.intervalCap,this.#o=e.interval,this.#d=e.strict,this.#m=new e.queueClass,this.#h=e.queueClass,this.concurrency=e.concurrency,e.timeout!==void 0&&!(Number.isFinite(e.timeout)&&e.timeout>0))throw TypeError(`Expected \`timeout\` to be a positive finite number, got \`${e.timeout}\` (${typeof e.timeout})`);this.timeout=e.timeout,this.#v=e.autoStart===!1,this.#z()}#S(e){for(;this.#p<this.#f.length;){let t=this.#f[this.#p];if(t!==void 0&&e-t>=this.#o)this.#p++;else break}(this.#p>100&&this.#p>this.#f.length/2||this.#p===this.#f.length)&&(this.#f=this.#f.slice(this.#p),this.#p=0)}#C(e){this.#d?this.#f.push(e):this.#n++}#w(){this.#d?this.#f.length>this.#p&&this.#f.pop():this.#n>0&&this.#n--}#T(){return this.#f.length-this.#p}get#E(){return this.#t?!0:this.#d?this.#T()<this.#r:this.#n<this.#r}get#D(){return this.#g<this.#_}#O(){this.#g--,this.#g===0&&this.emit(`pendingZero`),this.#P(),this.emit(`next`)}#k(){this.#u=void 0,this.#I(),this.#F()}#A(e){if(this.#d){if(this.#S(e),this.#T()>=this.#r){let t=this.#f[this.#p],n=this.#o-(e-t);return this.#j(n),!0}return!1}if(this.#l===void 0){let t=this.#s-e;if(t<0){if(this.#c>0){let t=e-this.#c;if(t<this.#o)return this.#j(this.#o-t),!0}this.#n=this.#e?this.#g:0}else return this.#j(t),!0}return!1}#j(e){this.#u===void 0&&(this.#u=setTimeout(()=>{this.#k()},e))}#M(){this.#l&&=(clearInterval(this.#l),void 0)}#N(){this.#u&&=(clearTimeout(this.#u),void 0)}#P(){if(this.#m.size===0){if(this.#M(),this.emit(`empty`),this.#g===0){if(this.#N(),this.#d&&this.#p>0){let e=Date.now();this.#S(e)}this.emit(`idle`)}return!1}let e=!1;if(!this.#v){let t=Date.now(),n=!this.#A(t);if(this.#E&&this.#D){let r=this.#m.dequeue();this.#t||(this.#C(t),this.#B()),this.emit(`active`),r(),n&&this.#F(),e=!0}}return e}#F(){this.#t||this.#l!==void 0||this.#d||(this.#l=setInterval(()=>{this.#I()},this.#o),this.#s=Date.now()+this.#o)}#I(){this.#d||(this.#n===0&&this.#g===0&&this.#l&&this.#M(),this.#n=this.#e?this.#g:0),this.#L(),this.#B()}#L(){for(;this.#P(););}get concurrency(){return this.#_}set concurrency(e){if(!(typeof e==`number`&&e>=1))throw TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this.#_=e,this.#L()}setPriority(e,t){if(typeof t!=`number`||!Number.isFinite(t))throw TypeError(`Expected \`priority\` to be a finite number, got \`${t}\` (${typeof t})`);this.#m.setPriority(e,t)}async add(e,t={}){return t={timeout:this.timeout,...t,id:t.id??(this.#y++).toString()},new Promise((n,r)=>{let i=Symbol(`task-${t.id}`),a=()=>void 0,o=async()=>{a(),this.#g++,this.#b.set(i,{id:t.id,priority:t.priority??0,startTime:Date.now(),timeout:t.timeout});let o;try{try{t.signal?.throwIfAborted()}catch(e){throw this.#V(),this.#b.delete(i),e}this.#c=Date.now();let r=e({signal:t.signal});if(t.timeout&&(r=S(Promise.resolve(r),{milliseconds:t.timeout,message:`Task timed out after ${t.timeout}ms (queue has ${this.#g} running, ${this.#m.size} waiting)`})),t.signal){let{signal:e}=t;r=Promise.race([r,new Promise((t,n)=>{o=()=>{n(e.reason)},e.addEventListener(`abort`,o,{once:!0})})])}let a=await r;n(a),this.emit(`completed`,a)}catch(e){r(e),this.emit(`error`,e)}finally{o&&t.signal?.removeEventListener(`abort`,o),this.#b.delete(i),queueMicrotask(()=>{this.#O()})}};this.#m.enqueue(o,t);let s=()=>{if(this.#m instanceof w){this.#m.remove(o);return}this.#m.remove?.(t.id)};if(t.signal){let{signal:e}=t,n=()=>{a(),s(),r(e.reason),this.#P(),this.emit(`next`)};if(a=()=>{e.removeEventListener(`abort`,n),this.#x.delete(a)},e.aborted){n();return}e.addEventListener(`abort`,n,{once:!0}),this.#x.add(a)}this.emit(`add`),this.#P()})}async addAll(e,t){return Promise.all(e.map(async e=>this.add(e,t)))}start(){return this.#v?(this.#v=!1,this.#L(),this):this}pause(){this.#v=!0}clear(){for(let e of this.#x)e();this.#m=new this.#h,this.#M(),this.#H(),this.emit(`empty`),this.#g===0&&(this.#N(),this.emit(`idle`)),this.emit(`next`)}async onEmpty(){this.#m.size!==0&&await this.#R(`empty`)}async onSizeLessThan(e){this.#m.size<e||await this.#R([`next`,`active`],()=>this.#m.size<e)}async onIdle(){this.#g===0&&this.#m.size===0||await this.#R(`idle`)}async onPendingZero(){this.#g!==0&&await this.#R(`pendingZero`)}async onRateLimit(){this.isRateLimited||await this.#R(`rateLimit`)}async onRateLimitCleared(){this.isRateLimited&&await this.#R(`rateLimitCleared`)}onError(){return new Promise((e,t)=>{let n=e=>{this.off(`error`,n),t(e)};this.on(`error`,n)})}async#R(e,t){let n=Array.isArray(e)?e:[e];return new Promise(e=>{let r=()=>{if(!(t&&!t())){for(let e of n)this.off(e,r);e()}};for(let e of n)this.on(e,r)})}get size(){return this.#m.size}sizeBy(e){return this.#m.filter(e).length}get pending(){return this.#g}get isPaused(){return this.#v}#z(){this.#t||(this.on(`add`,()=>{this.#m.size>0&&this.#B()}),this.on(`next`,()=>{this.#B()}))}#B(){this.#t||this.#a||(this.#a=!0,queueMicrotask(()=>{this.#a=!1,this.#H()}))}#V(){this.#t||(this.#w(),this.#B())}#H(){let e=this.#i;if(this.#t||this.#m.size===0){e&&(this.#i=!1,this.emit(`rateLimitCleared`));return}let t;if(this.#d){let e=Date.now();this.#S(e),t=this.#T()}else t=this.#n;let n=t>=this.#r;n!==e&&(this.#i=n,this.emit(n?`rateLimit`:`rateLimitCleared`))}get isRateLimited(){return this.#i}get isSaturated(){return this.#g===this.#_&&this.#m.size>0||this.isRateLimited&&this.#m.size>0}get runningTasks(){return[...this.#b.values()].map(e=>({...e,timeoutRemaining:e.timeout?Math.max(0,e.startTime+e.timeout-Date.now()):void 0}))}},E=class{eventQueue;cursorQueue;onEventEmitted;constructor(e){this.onEventEmitted=e.onEventEmitted,this.eventQueue=new T({concurrency:1,interval:1e3,intervalCap:e.eventsPerSecond}),this.cursorQueue=new T({concurrency:1})}queueEvent(e){return this.eventQueue.add(async()=>{await d.emit(e.subject,e.payload),this.onEventEmitted()})}queueAfterEvents(e,t=[]){let n=Promise.all(t);return n.catch(()=>void 0),this.cursorQueue.add(async()=>{await n,await e()})}async drain(){await Promise.all([this.eventQueue.onIdle(),this.cursorQueue.onIdle()])}async onIdle(){await this.drain()}},D=class{options;emittery=new n;trackedFiles=new Map;pollTimer;isPolling=!1;isDisposed=!1;inFlightChecks=new Map;constructor(e){if(!o.isAbsolute(e.directory))throw Error(`Directory must be an absolute path: ${e.directory}`);this.options={directory:e.directory,pattern:e.pattern,pollIntervalMs:e.pollIntervalMs??1e4}}on(e,t){return this.emittery.on(e,t)}once(e,t){return this.emittery.once(e,t)}async start(){this.isDisposed||this.pollTimer===void 0&&(await this.poll(),this.pollTimer=setInterval(()=>{this.poll()},this.options.pollIntervalMs))}stop(){this.pollTimer!==void 0&&(clearInterval(this.pollTimer),this.pollTimer=void 0)}dispose(){this.isDisposed=!0,this.stop(),this.emittery.clearListeners(),this.trackedFiles.clear(),this.inFlightChecks.clear()}isRunning(){return this.pollTimer!==void 0}getTrackedFiles(){return this.trackedFiles}seedFromCursors(e){for(let t of e)this.trackedFiles.set(t.filePath,{size:t.bytesRead,mtimeMs:new Date(t.lastModified).getTime()})}async poll(){if(!this.isDisposed&&!this.isPolling){this.isPolling=!0;try{let e=await this.discoverFiles(),t=new Set(e);for(let e of this.trackedFiles.keys())if(!t.has(e)){if(this.isDisposed)return;this.trackedFiles.delete(e),await this.emittery.emit(`deleted`,{filePath:e})}for(let t of e)try{await this.runFileCheck(t)}catch(e){await this.emitWatcherError(e,t)}if(this.isDisposed)return;await this.emittery.emit(`polled`,{trackedFilePaths:new Set(this.trackedFiles.keys())})}catch(e){await this.emitWatcherError(e)}finally{this.isPolling=!1}}}async discoverFiles(){return i(this.options.pattern,{cwd:this.options.directory,absolute:!0,onlyFiles:!0})}async checkFile(e){if(this.isDisposed)return;let t=await a.stat(e);if(this.isDisposed)return;let n={size:t.size,mtimeMs:t.mtimeMs},r=this.trackedFiles.get(e);if(!r){if(this.trackedFiles.set(e,n),this.isDisposed){this.trackedFiles.delete(e);return}await this.emittery.emit(`change`,{filePath:e,stat:{size:t.size,mtime:t.mtime},changeType:`created`});return}if(n.mtimeMs!==r.mtimeMs){let i=n.size<r.size?`rotated`:`modified`;if(this.trackedFiles.set(e,n),this.isDisposed)return;await this.emittery.emit(`change`,{filePath:e,stat:{size:t.size,mtime:t.mtime},changeType:i})}}clearTrackedFile(e){return this.trackedFiles.delete(e)}clearAllTrackedFiles(){this.trackedFiles.clear()}triggerImmediatePoll(e){this.runFileCheck(e).catch(t=>{this.emitWatcherError(t,e)})}async runFileCheck(e){if(this.isDisposed)return;let t=this.inFlightChecks.get(e);if(t){await t;return}let n=(async()=>{try{await this.checkFile(e)}finally{this.inFlightChecks.delete(e)}})();this.inFlightChecks.set(e,n),await n}async emitWatcherError(e,t){let n=e instanceof Error?e:Error(String(e));try{await this.emittery.emit(`error`,{error:n,filePath:t})}catch(e){console.error(`[LogFileWatcher] Error listener failed:`,e instanceof Error?e.message:String(e))}}},O=class{watcher;constructor(e){this.watcher=new D(e)}isRunning(){return this.watcher.isRunning()}async start(){await this.watcher.start()}stop(){this.watcher.stop()}dispose(){this.watcher.dispose()}onChange(e){return this.watcher.on(`change`,e)}onError(e){return this.watcher.on(`error`,e)}onDeleted(e){return this.watcher.on(`deleted`,e)}onPolled(e){return this.watcher.on(`polled`,({trackedFilePaths:t})=>e(t))}getTrackedFileMtimeMs(e){return this.watcher.getTrackedFiles().get(e)?.mtimeMs}triggerImmediatePoll(e){this.watcher.triggerImmediatePoll(e)}seedFromCursors(e){this.watcher.seedFromCursors(e)}},k=class{filesProcessed=0;eventsEmitted=0;sessionsImported=new Set;sessionsSkipped=new Set;lastLoggedEventCount=0;lastLoggedSnapshot=``;reset(){this.filesProcessed=0,this.eventsEmitted=0,this.sessionsImported.clear(),this.sessionsSkipped.clear(),this.lastLoggedEventCount=0,this.lastLoggedSnapshot=``}recordFileProcessed(){this.filesProcessed++}recordEventEmitted(e){this.eventsEmitted++,!(this.eventsEmitted-this.lastLoggedEventCount<1e3)&&(console.info(`${e} Imported ${this.eventsEmitted} events (${this.sessionsImported.size} sessions)...`),this.lastLoggedEventCount=this.eventsEmitted)}recordSessionImported(e){this.sessionsImported.add(e)}recordSessionSkipped(e){this.sessionsSkipped.add(e)}hasActivity(){return this.eventsEmitted>0||this.filesProcessed>0}stoppedMessage(e){return`${e} Stopped - ${this.eventsEmitted} events from ${this.sessionsImported.size} sessions (${this.sessionsSkipped.size} skipped)`}logProgress(e){if(!this.hasActivity())return;let t=JSON.stringify({eventsEmitted:this.eventsEmitted,filesProcessed:this.filesProcessed,sessionsImported:this.sessionsImported.size,sessionsSkipped:this.sessionsSkipped.size});t!==this.lastLoggedSnapshot&&(this.lastLoggedSnapshot=t,console.info(`${e} Progress: ${this.eventsEmitted} events, ${this.sessionsImported.size} sessions, ${this.filesProcessed} files, ${this.sessionsSkipped.size} skipped`))}};function A(e){return async t=>{try{if(e!==void 0)try{let n=await d.requestOptional(c.runtime.isAdapterManaged,{adapterSessionId:t,clientId:e});if(n.handled&&n.data.managed)return!0}catch{}let n=await d.request(u.getByAdapterSessionId,{adapterSessionId:t});return n.session!==null&&!n.session.isImported}catch{return!1}}}var j=class{checkedSessions=new Map;inFlight=new Map;generations=new Map;async isSkipped(e,t,n){for(;;){let r=this.checkedSessions.get(e);if(r!==void 0)return r;let i=this.generations.get(e)??0,a=this.inFlight.get(e),o;if(a&&a.generation===i?o=a.promise:(o=t(e).then(t=>((this.generations.get(e)??0)===i&&(this.checkedSessions.set(e,t),t&&n(e)),t)).finally(()=>{let t=this.inFlight.get(e);t&&t.generation===i&&this.inFlight.delete(e)}),this.inFlight.set(e,{generation:i,promise:o})),await o,(this.generations.get(e)??0)===i){let t=this.checkedSessions.get(e);if(t!==void 0)return t;continue}}}invalidate(e){this.checkedSessions.delete(e),this.inFlight.delete(e),this.generations.set(e,(this.generations.get(e)??0)+1)}clear(){this.checkedSessions.clear(),this.inFlight.clear(),this.generations.clear()}};function M(e,t,n,r){return!n||!e||r===`rotated`?!1:new Date(e)>=t}function N(e,t,n){for(let r of n??[]){let n=r.line===void 0?``:` at line ${r.line}`;console.warn(`${e} Parse error in ${t}${n}: ${r.error}`)}}async function P(e,t,n,i){let{cursor:a}=await d.request(r.get,{filePath:e});return a&&a.bytesRead>0&&!a.sessionContext&&!t?(await d.request(r.delete,{filePath:e}).catch(()=>{}),i(n),`retry`):a}async function F(e,t,n,r,i,a){let o=await a.parseFile(e,0);N(i,e,o.errors);let s=a.validateRecords(o.records);s.length>0&&await a.handleFirstRead(e,s,o.bytesRead??0,t,n,0,r)}function I(e,t,n,r,i){let a=[];n&&(a.push(i(t.sessionEvent)),a.push(i(t.startedEvent)));let o=r(e,t);for(let e of o)a.push(i(e));return a}function L(e,t){let n=[];for(let r of e)n.push(t(r));return n}function R(e){return typeof e==`object`&&!!e&&`compactionDetected`in e&&e.compactionDetected===!0}function z(e,t,n){return{...e,state:n(t)}}var B=class{tasks=new Set;track(e){this.tasks.add(e),e.finally(()=>{this.tasks.delete(e)})}async drain(){for(;this.tasks.size>0;)await Promise.allSettled([...this.tasks])}},V=class{config;watcher;eventQueue;importer;managedSessionCache=new j;unsubscribeChange;unsubscribeError;unsubscribeDeleted;unsubscribeRuntimeStarted;stats=new k;watcherTasks=new B;progressTimer;constructor(e,t){this.importer=t;let n=e.directory??t.getLogDirectory();this.config={enabled:e.enabled,directory:e.directory,pollIntervalMs:e.pollIntervalMs??1e4,eventsPerSecond:e.eventsPerSecond??100,adapterId:e.adapterId,adapterName:e.adapterName,checkMakaioManaged:e.checkMakaioManaged,clientId:e.clientId,machineId:e.machineId},this.watcher=new O({directory:n,pattern:this.getLogFilePattern(),pollIntervalMs:this.config.pollIntervalMs}),this.eventQueue=new E({eventsPerSecond:this.config.eventsPerSecond,onEventEmitted:()=>{this.stats.recordEventEmitted(this.logPrefix)}})}shouldSkipFile(e){return!1}validateRecords(e){return e}getMaxRecords(){}buildCursorSessionContext(e){let{adapterSessionId:t,sessionEvent:n,startedEvent:r,state:i,...a}=e;return{...a,adapterSessionId:t,sessionEvent:n,startedEvent:r,state:this.importer.serializeState(i)}}usesJsonFormat(){let e=this.getLogFilePattern();return e.includes(`.json`)&&!e.includes(`.jsonl`)}isEnabled(){return this.config.enabled}isRunning(){return this.watcher.isRunning()}async start(){if(!this.config.enabled||this.isRunning())return;let e=this.config.directory??this.importer.getLogDirectory();console.info(`${this.logPrefix} Starting - watching ${e}`),this.stats.reset(),this.managedSessionCache.clear(),this.progressTimer=setInterval(()=>this.stats.logProgress(this.logPrefix),1e4),this.unsubscribeChange=this.watcher.onChange(e=>{this.trackFileChange(e)}),this.unsubscribeError=this.watcher.onError(({error:e,filePath:t})=>{console.warn(`${this.logPrefix} Error${t?` for ${t}`:``}: ${e.message}`)}),this.unsubscribeDeleted=this.watcher.onDeleted(({filePath:e})=>{this.watcherTasks.track(d.request(r.delete,{filePath:e}).then(()=>void 0).catch(()=>{}))}),this.unsubscribeRuntimeStarted=d.on(c.runtime.started,e=>{e.payload.source.layer===`adapter`&&e.payload.adapterSessionId!==void 0&&this.managedSessionCache.invalidate(e.payload.adapterSessionId)}),await this.watcher.start()}async stop(){this.progressTimer&&=(clearInterval(this.progressTimer),void 0),this.unsubscribeChange?.(),this.unsubscribeError?.(),this.unsubscribeDeleted?.(),this.unsubscribeRuntimeStarted?.(),this.unsubscribeChange=void 0,this.unsubscribeError=void 0,this.unsubscribeDeleted=void 0,this.unsubscribeRuntimeStarted=void 0,this.watcher.stop(),await this.watcherTasks.drain(),await this.eventQueue.drain(),this.stats.hasActivity()&&console.info(this.stats.stoppedMessage(this.logPrefix))}async dispose(){await this.stop(),this.watcher.dispose(),this.managedSessionCache.clear()}static createDefaultCheckMakaioManaged(e){return A(e)}async updateCursor(e,t,n,i){await d.request(r.set,{filePath:e,bytesRead:t,lastModified:n.toISOString(),sessionContext:i})}async handleFileChange(e){let{filePath:t,changeType:n,stat:i}=e;if(this.shouldSkipFile(t))return;let a=this.usesJsonFormat();n===`rotated`&&await d.request(r.delete,{filePath:t}).catch(()=>{});let o=await P(t,a,e,e=>this.trackFileChange(e));if(o===`retry`)return;let s=o?.sessionContext!==void 0,c=s?o?.bytesRead??0:0;if(M(o?.lastModified,i.mtime,a,n))return;let l=await this.parseFile(t,a?0:c,this.getMaxRecords());N(this.logPrefix,t,l.errors),this.stats.recordFileProcessed();let u=this.validateRecords(l.records),f=l.bytesRead??0;if(u.length===0){await this.maybeUpdateCursor(t,f,c,i.mtime,a,o?.sessionContext);return}s&&o?.sessionContext?await this.handleIncrementalRead(t,u,o.sessionContext,f,i.mtime,a,c):await this.handleFirstRead(t,u,f,i.mtime,a,c)}trackFileChange(e){let t=this.handleFileChange(e).catch(e=>{console.error(`${this.logPrefix} Error handling file change:`,e instanceof Error?e.message:String(e))});this.watcherTasks.track(t)}async handleFirstRead(e,t,n,r,i,a,o=!0){let s=this.importer.extractSessionContext(t);if(await this.isSessionSkipped(s.adapterSessionId)){await this.maybeUpdateCursor(e,n,a,r,i,this.buildCursorSessionContext(s));return}let c=I(t,s,o,(e,t)=>this.importer.processRecords(e,t),e=>this.queueEvent(e));this.trackImportedSession(s.adapterSessionId),await this.queueCursorUpdate(e,n,a,r,i,this.buildCursorSessionContext(s),c)}trackImportedSession(e){this.stats.recordSessionImported(e)}async handleIncrementalRead(e,t,n,i,a,o,s){if(await this.isSessionSkipped(n.adapterSessionId)){await this.maybeUpdateCursor(e,i,s,a,o,n);return}let c;try{c=this.importer.deserializeState(n.state)}catch(t){console.warn(`${this.logPrefix} Corrupted cursor state for ${e}, deleting cursor and re-importing.`,t instanceof Error?t.message:String(t)),await d.request(r.delete,{filePath:e}).catch(t=>{console.warn(`${this.logPrefix} Failed to delete corrupted cursor for ${e}.`,t instanceof Error?t.message:String(t))}),await F(e,a,o,!0,this.logPrefix,{parseFile:(e,t)=>this.parseFile(e,t),validateRecords:e=>this.validateRecords(e),handleFirstRead:(e,t,n,r,i,a,o)=>this.handleFirstRead(e,t,n,r,i,a,o)});return}let l={adapterSessionId:n.adapterSessionId,model:n.model,cwd:n.cwd,sessionEvent:n.sessionEvent,startedEvent:n.startedEvent,state:c},u=this.importer.processRecords(t,l);if(R(l.state)){await F(e,a,o,!1,this.logPrefix,{parseFile:(e,t)=>this.parseFile(e,t),validateRecords:e=>this.validateRecords(e),handleFirstRead:(e,t,n,r,i,a,o)=>this.handleFirstRead(e,t,n,r,i,a,o)});return}let f=L(u,e=>this.queueEvent(e)),p=z(n,l.state,e=>this.importer.serializeState(e));await this.queueCursorUpdate(e,i,s,a,o,p,f)}async maybeUpdateCursor(e,t,n,r,i,a){(t>n||i)&&await this.updateCursor(e,t,r,a)}async isSessionSkipped(e){return this.managedSessionCache.isSkipped(e,e=>this.importer.isMakaioManaged(e),e=>this.stats.recordSessionSkipped(e))}queueEvent(e){return this.eventQueue.queueEvent(e)}queueCursorUpdate(e,t,n,r,i,a,o=[]){return this.eventQueue.queueAfterEvents(()=>this.maybeUpdateCursor(e,t,n,r,i,a),o)}},H=class extends V{trackingFilePaths=new Set;trackingInactiveCount=new Map;lastSeenMtimeMs=new Map;unsubscribePolled;constructor(e,t){super(e,t)}clearTrackingState(e){this.trackingFilePaths.delete(e),this.trackingInactiveCount.delete(e),this.lastSeenMtimeMs.delete(e)}async persistImportedStatus(e){let{session:t}=await d.request(l.getByLogFilePath,{logFilePath:e});return!t||t.importStatus!==`tracking`||(await d.request(l.updateImportStatus,{sessionId:t.sessionId,importStatus:`imported`})).success?!0:(console.warn(`${this.logPrefix} Failed to persist imported status for ${e}`),!1)}async start(){!this.isEnabled()||this.isRunning()||(await super.start(),this.unsubscribePolled=this.watcher.onPolled(e=>{this.onPollCycle(e).catch(e=>{console.error(`${this.logPrefix} Error handling poll cycle:`,e instanceof Error?e.message:String(e))})}),await this.restorePersistedTrackingState())}async stop(){this.unsubscribePolled?.(),this.unsubscribePolled=void 0,await super.stop()}async dispose(){this.trackingFilePaths.clear(),this.trackingInactiveCount.clear(),this.lastSeenMtimeMs.clear(),await super.dispose()}async handleFileChange(e){let{filePath:t,changeType:n,stat:i}=e;if(this.shouldSkipFile(t))return;let{cursor:a}=await d.request(r.get,{filePath:t});if(!a){await this.discoverNewFile(e);return}n===`modified`&&await this.handleModifiedImportedFile(t,e,i.mtime)}async restorePersistedTrackingState(){this.trackingFilePaths.clear(),this.trackingInactiveCount.clear(),this.lastSeenMtimeMs.clear();try{let{sessions:e}=await d.request(l.listImported,{source:this.config.adapterName,importStatus:`tracking`});for(let t of e){if(t.source!==this.config.adapterName)continue;if(!t.logFilePath){(await d.request(l.updateImportStatus,{sessionId:t.sessionId,importStatus:`imported`})).success||console.warn(`${this.logPrefix} Failed to reset tracking status for session ${t.sessionId}`);continue}let e=this.watcher.getTrackedFileMtimeMs(t.logFilePath);if(e===void 0){(await d.request(l.updateImportStatus,{sessionId:t.sessionId,importStatus:`imported`})).success||console.warn(`${this.logPrefix} Failed to reset tracking status for ${t.logFilePath}`);continue}this.trackingFilePaths.add(t.logFilePath),this.trackingInactiveCount.set(t.logFilePath,0),this.lastSeenMtimeMs.set(t.logFilePath,e)}}catch(e){console.warn(`[DiscoveryOrchestrator] Failed to restore persisted tracking state:`,e instanceof Error?e.message:String(e))}}async discoverNewFile(e){let{filePath:t,stat:n}=e,r=await this.importer.extractDiscoveryMetadata(t);if(!(r.hasMessages??!1)){await this.updateCursor(t,0,n.mtime);return}if(await this.isSessionSkipped(r.adapterSessionId)){await this.updateCursor(t,0,n.mtime);return}let i=this.queueEvent({subject:s.session.discovered,payload:{adapterId:this.config.adapterId,adapterName:this.config.adapterName,adapterSessionId:r.adapterSessionId,model:r.model??null,cwd:r.cwd??null,title:r.title,parentAdapterSessionId:r.parentAdapterSessionId??null,forkPointMessageId:r.forkPointMessageId??null,kind:r.kind??`root`,startedAt:r.startedAt,logFilePath:t}});await this.eventQueue.queueAfterEvents(()=>this.updateCursor(t,0,n.mtime),[i])}async handleModifiedImportedFile(e,t,n){let{session:r}=await d.request(l.getByLogFilePath,{logFilePath:e});if(!r){await this.discoverNewFile(t);return}if(r.source===this.config.adapterName&&!(r.importStatus!==`imported`&&r.importStatus!==`tracking`)){if(await super.handleFileChange(t),r.importStatus===`imported`&&!(await d.request(l.updateImportStatus,{sessionId:r.sessionId,importStatus:`tracking`})).success){console.warn(`${this.logPrefix} Failed to persist tracking status for ${e}`);return}this.trackingFilePaths.add(e),this.lastSeenMtimeMs.set(e,n.getTime()),this.trackingInactiveCount.delete(e),this.watcher.triggerImmediatePoll(e)}}async onPollCycle(e){for(let t of[...this.trackingFilePaths]){if(!e.has(t)){await this.persistImportedStatus(t)&&this.clearTrackingState(t);continue}let n=this.watcher.getTrackedFileMtimeMs(t),r=this.lastSeenMtimeMs.get(t);if(!(n===void 0||r===void 0))try{if(n===r){let e=(this.trackingInactiveCount.get(t)??0)+1;e>=3?await this.persistImportedStatus(t)&&this.clearTrackingState(t):this.trackingInactiveCount.set(t,e)}else this.lastSeenMtimeMs.set(t,n),this.trackingInactiveCount.delete(t)}catch(e){console.warn(`${this.logPrefix} Failed to process tracked file ${t}:`,e instanceof Error?e.message:String(e))}}}};export{V as BaseLogOrchestrator,H as DiscoveryOrchestrator,p as parseJsonlFile,m as readFirstJsonlRecords,h as someJsonlRecord};
@@ -1,7 +1,7 @@
1
1
  import { z } from "zod";
2
2
  import { EventMessagePayload, ScopedSubjectDefinition } from "@makaio/framework/core";
3
- import { IMakaioBus, ScopedBus } from "@makaio/framework/bus";
4
3
  import { AgentToolApproveRequest, AgentToolApproveResponse, ConnectorTeardownResult, McpSessionContext, SessionMessageBlock, ToolExecuteResult, ToolExecutionContextOverrides, ToolListItem } from "@makaio/framework/contracts";
4
+ import { IMakaioBus, ScopedBus } from "@makaio/framework/bus";
5
5
  import { AIAgent, AIAgentConnector, AIReasoningLevel as AIReasoningLevel$1, AgentCompleteEvent, AgentCompleteEventSchema, AgentStartedEvent, AgentStartedEvent as AgentStartedEvent$1, AgentStartedEventSchema, BaseAgentConnectorConfig, BaseConnectorSession, ConnectorSendMessageOptions, ErrorEvent, ErrorEvent as ErrorEvent$1, ErrorEventSchema, LedgerSessionContext, MessageHandle, MessageResult, NormalizedCallUsage, NormalizedMessageInput, ProceduralAgentConnector, ProceduralConnectorSession, ProceduralConnectorTurn, ToolApprovalContext, ToolCompletedEvent, ToolCompletedEvent as ToolCompletedEvent$1, ToolCompletedEventSchema, ToolStartedEvent, ToolStartedEvent as ToolStartedEvent$1, ToolStartedEventSchema, UserMessageQueue, WireSessionConfig, WireSessionSubjects } from "@makaio/framework/adapters";
6
6
 
7
7
  //#region adapters/shared/stream-session/src/tool-handling/tool-result.d.ts
@@ -1 +1 @@
1
- import{z as e}from"zod";import{OnceAbortError as t}from"@makaio/framework/bus";import{AgentSubjects as n,McpSubjects as r,ToolSubjects as i}from"@makaio/framework/contracts";import{AIAgent as a,AgentCompleteEventSchema as o,AgentStartedEventSchema as s,BaseConnectorSession as c,ErrorEventSchema as l,ProceduralAgentConnector as u,ToolCompletedEventSchema as d,ToolStartedEventSchema as f,UserMessageQueue as p,extractMcpCallTarget as m,isMcpCallTool as h,markCompletedWithFinalResult as g,processQueueMessages as _,rejectQueuedHandles as v}from"@makaio/framework/adapters";const y=8e3;function b(e){if(e.length<=8e3)return e;let t=y,n=``;for(;;){let r=`\n...[truncated ${e.length-t} chars]`,i=y-r.length;if(i<0)return r.slice(0,y);if(i===t&&r===n)break;t=i,n=r}return`${e.slice(0,t)}${n}`}function x(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function S(e,t=`Adapter`){let n;try{n=JSON.parse(e.function.arguments)}catch{let n=e.function.arguments.length;throw console.error(`[${t}] Failed to parse tool arguments for "${e.function.name}" (argsLength=${n})`),Error(`Failed to parse tool arguments for "${e.function.name}"`)}if(!x(n)){let r=n===null?`null`:Array.isArray(n)?`array`:typeof n;throw console.error(`[${t}] Parsed tool arguments for "${e.function.name}" must be a JSON object (received ${r})`,n),Error(`Tool arguments for "${e.function.name}" must be a JSON object`)}return{toolName:e.function.name,args:n,toolCallId:e.id}}function C(e,t,n=`Adapter`){return{...S(e,n),agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,adapterSessionId:t.adapterSessionId,sessionId:t.sessionId}}function w(e,t){t.updatedInput!==void 0&&(e.function.arguments=JSON.stringify(t.updatedInput))}function T(e,t){if(t===void 0||t.allowedTools===void 0&&t.disallowedTools===void 0)return e;let n=t.allowedTools===void 0?void 0:new Set(t.allowedTools),r=t.disallowedTools===void 0?void 0:new Set(t.disallowedTools);return e.filter(e=>!(r?.has(e.name)||n!==void 0&&!n.has(e.name)))}async function E(e,t,n,r){try{return T((await e.request(i.list,{adapterId:t,adapterName:n})).tools,r)}catch(e){return console.warn(`[${n}] Failed to fetch tools from bus:`,e),[]}}function D(e){return e.filter(e=>e.inputSchema!==void 0)}async function O(e,t,n,r){await n({eventType:`tool_started`,toolName:t.function.name,toolCallId:t.id});try{let a=JSON.parse(t.function.arguments),o=await e.request(i.execute,{toolName:t.function.name,input:a,adapterId:r.adapterId,adapterName:r.adapterName,contextOverrides:{...r,toolCallId:t.id}});return n({eventType:`tool_completed`,toolName:t.function.name,toolCallId:t.id,result:o.success?JSON.stringify(o.data):JSON.stringify(o.error),success:o.success}).then(()=>o)}catch(e){let r=e instanceof Error?{message:e.message,name:e.name}:{message:String(e),name:`UnknownError`};throw await n({eventType:`tool_completed`,toolName:t.function.name,toolCallId:t.id,result:JSON.stringify(r),success:!1}),e}}async function k(e,t,n,r,i){let a=[];for(let o of e){let e=S(o,i),s=await t.requestToolApproval({...e,reasoning:n.reasoning});if(s.action===`deny`){if(s.shouldAbort)throw Error(`Tool use denied by approval handler: ${o.function.name}`);let e=b(JSON.stringify({error:s.message}));a.push(r(o.id,e,!0));continue}w(o,s);let c=await O(t.bus,o,t.emitSdkEvent,n);if(c.success&&t.recordMcpCall&&h(e.toolName)){let n=m(s.updatedInput??e.args);n!==void 0&&t.recordMcpCall(n)}let l=c.success?typeof c.data==`string`?c.data:JSON.stringify(c.data??null):JSON.stringify({error:c.error.message,code:c.error.code});a.push(r(o.id,b(l),!c.success))}return a}const A=e.enum([`idle`,`turn_started`,`step_started`,`step_finished`,`turn_finished`]),j=e.object({adapterId:e.string(),agentId:e.string(),oldState:A,newState:A,timestamp:e.number()}),M=e.object({eventType:e.literal(`reasoning_delta`),content:e.string()}),N=e.object({eventType:e.literal(`reasoning_complete`),content:e.string()}),P=e.object({name:e.string(),arguments:e.string()}),F=e.object({id:e.string(),type:e.literal(`function`),function:P}),I=e.object({eventType:e.literal(`tool_calls`),toolCalls:e.array(F)}),L=e.object({id:e.string(),type:e.literal(`function`),function:P}),R=e.object({eventType:e.literal(`message_complete`),content:e.string().nullable(),reasoning:e.string().optional(),tool_calls:e.array(L).optional(),finish_reason:e.string().nullable()}),z=`stream_start_timeout`;var B=class extends c{static MAX_TOOL_CALL_ITERATIONS=8;lastAssistantMessage;currentModel;currentCwd;pendingAssistantHistoryCompactions=[];constructor(e){super(e),this.sessionId=crypto.randomUUID(),this.currentModel=e.model,this.currentCwd=e.cwd}async processQueue(e){if(this.closing){v(e);return}await _(e,{getCurrentTurn:()=>this.currentTurn,startNewTurn:(e,t)=>this.startNewTurn(e,t)})}async close(){this.closing=!0,await super.abort()}async startNewTurn(e,t){this.config.onTurnStart?.(e),this.sessionId=crypto.randomUUID(),e.adapterSessionId=this.sessionId,e.internalRetry||this.closePendingAssistantHistoryCompactions(this.getConversationHistoryLength()),this.buildMessages(e,t);let n=this.getConversationHistoryLength(),r;if(!e.isProcessed&&!e.internalRetry){let t,i={setEndIndex:e=>{t??=e}};this.pendingAssistantHistoryCompactions.push(i),e.addCompletionObserver(e=>{try{let i=e.outcome===`completed`?e.result?.message:void 0;if(i===void 0||r===void 0||i===r)return;let a=t??this.getConversationHistoryLength();this.replaceAssistantTurnHistory(n,a,i),this.lastAssistantMessage=i}finally{this.removePendingAssistantHistoryCompaction(i)}})}if(this.currentTurn=this.createTurn(e),this.lastAssistantMessage=void 0,e.markAcknowledged(),await this.config.emitSdkEvent({eventType:`agent_started`,model:this.currentModel}),this.completeHandleIfClosing(e))return!1;let i=this.currentTurn;queueMicrotask(async()=>{try{if(!i||(await this.runTurn(i,e),e.isProcessed||this.isTurnSuperseded(i)))return;r=this.lastAssistantMessage||``,await g(e,{outcome:`completed`,result:{message:r}},this.config.onTurnComplete)}catch(t){await this.handleTurnError(t,i,e)}finally{i&&(!i.isPaused()||e.deliveryMode!==`immediate`)&&(await i.markTurnFinished(),this.currentTurn===i&&(this.currentTurn=void 0))}})}async handleTurnError(e,t,n){if(t?.isPaused()&&n.deliveryMode===`immediate`)return;let r=e instanceof Error?e:Error(String(e));if(t?.isPaused()){n.isProcessed||await g(n,{outcome:`error`,error:r},this.config.onTurnComplete);return}console.error(`[${this.config.adapterName}] Turn error:`,e),n.isProcessed||await g(n,{outcome:`error`,error:r},this.config.onTurnComplete),this.config.handleError(r,!1)}async runTurn(e,t){this.isTurnSuperseded(e)||(await e.start(),await this.runTurnIteration(e,t))}createMessageCompletePromise(e,t){return this.bus.once(this.getSdkEventSubject(),{timeoutMs:3e5,filter:{"event.eventType":`message_complete`,agentId:this.config.agentId,adapterId:this.config.adapterId,adapterSessionId:t},signal:e})}async executeStreamingStep(e,t,n){let r=this.config.streamStartTimeoutMs??3e4,i=new AbortController,a=setTimeout(()=>{i.abort()},r);try{await this.executeApiCall(e,AbortSignal.any([t,i.signal]),n)}catch(e){throw!t.aborted&&i.signal.aborted?Error(z,{cause:e}):e}finally{clearTimeout(a)}}async runTurnIteration(e,n,r=0){if(this.isTurnSuperseded(e))return;let i=e.getAbortSignal(),a=0,o;for(;;){if(this.shouldAbortTurnProcessing(e,n))return;try{let t=n.adapterSessionId??this.sessionId;if(!t)throw Error(`adapterSessionId must be set before waiting for message_complete`);if(o=this.createMessageCompletePromise(i,t),await this.executeStreamingStep(e,i,t),this.shouldAbortTurnProcessing(e,n)){o.catch(()=>{});return}let{payload:a}=await o,s=a.event;if(s.eventType!==`message_complete`)throw Error(`Expected message_complete event, got ${s.eventType}`);if(this.shouldAbortTurnProcessing(e,n))return;await this.applyMessageComplete(s,n,r,e);return}catch(e){if(o?.catch(()=>{}),e instanceof Error&&e.message===z&&!i.aborted&&a===0){a++;continue}if(i.aborted||e.name===`AbortError`||e instanceof t)return;let n=this.classifyError(e);throw r===0&&await this.config.emitSdkEvent({eventType:`error`,message:n.message,code:e?.code,type:e?.type}),n}}}buildToolConstraints(){if(this.config.allowedDirectories!==void 0)return{allowedDirectories:this.config.allowedDirectories}}updateModel(e){this.currentModel=e}updateCwd(e){this.currentCwd=e}getCurrentTurn(){return this.currentTurn}isTurnSuperseded(e){return this.currentTurn!==e}shouldAbortTurnProcessing(e,t){return t.isProcessed||e.isPaused()||this.isTurnSuperseded(e)}closePendingAssistantHistoryCompactions(e){for(let t of this.pendingAssistantHistoryCompactions)t.setEndIndex(e)}removePendingAssistantHistoryCompaction(e){let t=this.pendingAssistantHistoryCompactions.indexOf(e);t>=0&&this.pendingAssistantHistoryCompactions.splice(t,1)}},V=class extends u{session;userMessageQueue=new p;mcpDirectTools=[];mcpSessionContextCache;hasPendingToolRefresh=!1;hasPendingLedgerInjection=!1;markToolRefreshPending(){this.hasPendingToolRefresh=!0}afterSessionCreated(e){}getSession(){return this.session}async ensureSession(){if(this.isTurnEventLifecycleClosed||(this.session||await this.initializeSession(),!this.session))throw Error(`[${this.config.adapterName}] Cannot initialize a closed connector`);return this.session}getSessionQueue(){return this.userMessageQueue}async initializeSession(){if(await this.fetchToolsViaBus(),this.isTurnEventLifecycleClosed)return;this.prepareMcpDirectTools(),this.session=this.createSession(),this.afterSessionCreated(this.session),this.wireSessionEvents(),this.mcpDirectTools.length>0&&this.session.updateTools?.(this.mcpDirectTools);let e=(this.pendingTurnNumber??this.currentTurnNumber)||1;this.config.toolLedger?.recordInjection(this.mcpDirectTools,e)}prepareMcpDirectTools(){let e=this.mcpSessionContextCache??this.config.mcpSessionContext;e&&(this.mcpDirectTools=e.directTools.map(e=>({name:e.fullName,description:e.description??``,toolsetName:e.serverName,inputSchema:e.inputSchema})))}async fetchToolsViaBus(){this.session||await this.fetchTools()}async refreshTools(){await this.resolveAndCacheMcpContext(),this.prepareMcpDirectTools(),this.hasPendingLedgerInjection=!0}async resolveAndCacheMcpContext(){let e=this.config.mcpSessionContext;if(!(!e||!(`sessionId`in e)))try{this.mcpSessionContextCache=await this.globalBus.request(r.session.resolve,{sessionId:e.sessionId,profileId:e.profileId,projectId:e.projectId})}catch(e){console.warn(`[${this.config.adapterName}] MCP session re-resolve failed; using previous tool snapshot.`,e)}}getWireSessionConfig(){return{onTurnStarted:async()=>{if(this.consumeTurnNumber(),this.hasPendingToolRefresh)try{await this.refreshTools()}catch(e){console.warn(`[${this.config.adapterName}] Tool refresh failed at turn start; continuing with stale tools.`,e)}finally{this.hasPendingToolRefresh=!1}this.hasPendingLedgerInjection&&=(this.config.toolLedger?.recordInjection(this.mcpDirectTools,this.currentTurnNumber),!1)},onTurnFinished:async e=>{if(this.hasPendingToolRefresh)try{await this.refreshTools()}catch(e){console.warn(`[${this.config.adapterName}] Tool refresh failed; continuing with stale tools.`,e)}finally{this.hasPendingToolRefresh=!1}await e()}}}resolveSystemPrompt(){if(this.systemPrompt!==void 0)return typeof this.systemPrompt==`string`?this.systemPrompt:this.systemPrompt.content}async sendMessage(e,t){let n=this.createMessageHandle(e,t);return await this.processUserMessages([n]),n}abort(){this.session?.abort()}async close(){let e=this.closeTurnEventLifecycle();v(this.userMessageQueue);let t=this.session;this.session=void 0;let n=t?.close();return await e,await n,{evidence:`detached`,detail:`The stream session was aborted; the provider request settlement is not awaited here.`}}async changeModelInPlace(e){return this.session?.updateModel(e),!0}async changeCwdInPlace(e){return this.session?.updateCwd(e),!0}async changeReasoningInPlace(e){return this.session?.updateReasoning?.(e),!0}async interrupt(){await this.session?.abort()}async getAdapterSessionId(){if(this.adapterSessionId||this.initAdapterSessionId(),!this.adapterSessionId)throw Error(`Adapter session ID is missing in getAdapterSessionId(); ensure initAdapterSessionId() ran during connector initialization.`);return this.adapterSessionId}initAdapterSessionId(){this.adapterSessionId??=crypto.randomUUID()}};function H(e){try{let t=JSON.parse(e);return typeof t==`object`&&t&&!Array.isArray(t)?t:{}}catch{return{}}}var U=class extends a{toolBlockIndexMap=new Map;completedToolIds=new Set;toolCallArgsMap=new Map;resetPerTurnToolTracking(){this.toolBlockIndexMap.clear(),this.completedToolIds.clear(),this.toolCallArgsMap.clear()}wireEvents(e){this.wireSdkEvents(),this.wireSemanticEvents(e,this.getConnectorSubjects()),this.wireToolApprovalRpc(e)}wireSemanticEvents(e,t){this.wireMessageEvents(e,t),this.wireUsageEvents(e,t),this.wireToolEvents(e,t),this.wireReasoningEvents(e,t),this.wireLifecycleEvents(e,t)}wireMessageEvents(e,t){this.subscribeConnector(e,t.chunk,async e=>{let t=this.extractChunkText(e.payload);t&&await this.emitGlobal(n.message_delta,{text:t})}),this.subscribeConnector(e,t.messageComplete,async e=>{let{content:t}=e.payload;t&&(await this.emitStepStarted(`text`),await this.emitStepFinished(`text`,{type:`text`,content:t})),await this.emitGlobal(n.message,{content:t??``})})}wireUsageEvents(e,t){this.subscribeConnector(e,t.usage,async e=>{let t=this.extractUsagePayload(e.payload);await this.trackUsage(t),await this.emitUsageContextWindowUpdate(e.payload)})}wireToolEvents(e,t){this.subscribeConnector(e,t.toolCalls,async e=>{let{toolCalls:t}=e.payload;for(let e of t){if(this.completedToolIds.has(e.id)){console.warn(`[BaseStreamAgent] Ignoring late tool_calls for completed toolCallId ${e.id}`);continue}let t=H(e.function.arguments);this.toolCallArgsMap.set(e.id,t);let r=this.reserveToolCallBlockIndex(e);this.toolBlockIndexMap.set(e.id,r),await this.emitGlobal(n.step.started,{stepType:`tool_use`,blockIndex:r,blockData:{type:`tool_use`,toolName:e.function.name,toolCallId:e.id},content:{type:`tool_call`,toolCallId:e.id,name:e.function.name,args:t}}),this.afterToolCallStepEmitted(r),await this.emitGlobal(n.tool.use,{toolName:e.function.name,args:t,toolCallId:e.id})}}),this.subscribeConnector(e,t.toolStarted,async e=>{let{toolName:t,toolCallId:r}=e.payload;await this.emitGlobal(n.tool.started,{toolName:t,toolCallId:r})}),this.subscribeConnector(e,t.toolCompleted,async e=>{let{toolCallId:t,toolName:r,result:i,success:a}=e.payload;this.completedToolIds.add(t);let o=this.toolBlockIndexMap.get(t);o===void 0&&console.warn(`[BaseStreamAgent] toolCallId ${t} missing from toolBlockIndexMap; using fallback`);let s=o??this.getFallbackToolCompletedBlockIndex();this.toolBlockIndexMap.delete(t),await this.emitGlobal(n.step.finished,{stepType:`tool_use`,blockIndex:s,content:{type:`tool_output`,toolCallId:t,output:i,isError:!a}}),this.afterToolCompletedStepEmitted(s);let c=this.toolCallArgsMap.get(t);this.toolCallArgsMap.delete(t),c===void 0&&console.warn(`[BaseStreamAgent] toolCallId ${t} missing args for tool ${r}`),await this.emitGlobal(n.tool.completed,{toolName:r,args:c,result:{output:i},success:a,toolCallId:t})})}wireReasoningEvents(e,t){this.subscribeConnector(e,t.reasoningDelta,async e=>{let{content:t}=e.payload;await this.emitGlobal(n.reasoning_delta,{content:t})}),this.subscribeConnector(e,t.reasoningComplete,async e=>{let t=e.payload.content;if(t){let t=this.buildReasoningBlock(e.payload);await this.emitStepStarted(`reasoning`),await this.emitStepFinished(`reasoning`,t)}await this.emitGlobal(n.reasoning,{content:t??``})})}wireLifecycleEvents(e,t){this.subscribeConnector(e,t.agentStarted,async e=>{e.payload,this.resetPerTurnToolTracking(),await this.emitStart()}),this.subscribeConnector(e,t.agentComplete,async e=>{e.payload,this.resetPerTurnToolTracking()})}};export{o as AgentCompleteEventSchema,s as AgentStartedEventSchema,U as BaseStreamAgent,V as BaseStreamConnector,B as BaseStreamSession,l as ErrorEventSchema,y as MAX_TOOL_RESULT_CONTENT_CHARS,R as MessageCompleteEventSchema,L as MessageToolCallSchema,N as ReasoningCompleteEventSchema,M as ReasoningDeltaEventSchema,A as StreamSessionTurnStateSchema,P as ToolCallFunctionSchema,F as ToolCallSchema,I as ToolCallsEventSchema,d as ToolCompletedEventSchema,f as ToolStartedEventSchema,j as TurnStateChangedSchema,w as applyApprovedArgs,b as boundToolResultContent,O as executeTool,S as extractToolCallPayload,D as filterToolsWithSchema,k as handleToolCalls,E as loadToolsFromRegistry,C as toGlobalToolApproval};
1
+ import{z as e}from"zod";import{AgentSubjects as t,McpSubjects as n,ToolSubjects as r}from"@makaio/framework/contracts";import{OnceAbortError as i}from"@makaio/framework/bus";import{AIAgent as a,AgentCompleteEventSchema as o,AgentStartedEventSchema as s,BaseConnectorSession as c,ErrorEventSchema as l,ProceduralAgentConnector as u,ToolCompletedEventSchema as d,ToolStartedEventSchema as f,UserMessageQueue as p,extractMcpCallTarget as m,isMcpCallTool as h,markCompletedWithFinalResult as g,processQueueMessages as _,rejectQueuedHandles as v}from"@makaio/framework/adapters";const y=8e3;function b(e){if(e.length<=8e3)return e;let t=y,n=``;for(;;){let r=`\n...[truncated ${e.length-t} chars]`,i=y-r.length;if(i<0)return r.slice(0,y);if(i===t&&r===n)break;t=i,n=r}return`${e.slice(0,t)}${n}`}function x(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function S(e,t=`Adapter`){let n;try{n=JSON.parse(e.function.arguments)}catch{let n=e.function.arguments.length;throw console.error(`[${t}] Failed to parse tool arguments for "${e.function.name}" (argsLength=${n})`),Error(`Failed to parse tool arguments for "${e.function.name}"`)}if(!x(n)){let r=n===null?`null`:Array.isArray(n)?`array`:typeof n;throw console.error(`[${t}] Parsed tool arguments for "${e.function.name}" must be a JSON object (received ${r})`,n),Error(`Tool arguments for "${e.function.name}" must be a JSON object`)}return{toolName:e.function.name,args:n,toolCallId:e.id}}function C(e,t,n=`Adapter`){return{...S(e,n),agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,adapterSessionId:t.adapterSessionId,sessionId:t.sessionId}}function w(e,t){t.updatedInput!==void 0&&(e.function.arguments=JSON.stringify(t.updatedInput))}function T(e,t){if(t===void 0||t.allowedTools===void 0&&t.disallowedTools===void 0)return e;let n=t.allowedTools===void 0?void 0:new Set(t.allowedTools),r=t.disallowedTools===void 0?void 0:new Set(t.disallowedTools);return e.filter(e=>!(r?.has(e.name)||n!==void 0&&!n.has(e.name)))}async function E(e,t,n,i){try{return T((await e.request(r.list,{adapterId:t,adapterName:n})).tools,i)}catch(e){return console.warn(`[${n}] Failed to fetch tools from bus:`,e),[]}}function D(e){return e.filter(e=>e.inputSchema!==void 0)}async function O(e,t,n,i){await n({eventType:`tool_started`,toolName:t.function.name,toolCallId:t.id});try{let a=JSON.parse(t.function.arguments),o=await e.request(r.execute,{toolName:t.function.name,input:a,adapterId:i.adapterId,adapterName:i.adapterName,contextOverrides:{...i,toolCallId:t.id}});return n({eventType:`tool_completed`,toolName:t.function.name,toolCallId:t.id,result:o.success?JSON.stringify(o.data):JSON.stringify(o.error),success:o.success}).then(()=>o)}catch(e){let r=e instanceof Error?{message:e.message,name:e.name}:{message:String(e),name:`UnknownError`};throw await n({eventType:`tool_completed`,toolName:t.function.name,toolCallId:t.id,result:JSON.stringify(r),success:!1}),e}}async function k(e,t,n,r,i){let a=[];for(let o of e){let e=S(o,i),s=await t.requestToolApproval({...e,reasoning:n.reasoning});if(s.action===`deny`){if(s.shouldAbort)throw Error(`Tool use denied by approval handler: ${o.function.name}`);let e=b(JSON.stringify({error:s.message}));a.push(r(o.id,e,!0));continue}w(o,s);let c=await O(t.bus,o,t.emitSdkEvent,n);if(c.success&&t.recordMcpCall&&h(e.toolName)){let n=m(s.updatedInput??e.args);n!==void 0&&t.recordMcpCall(n)}let l=c.success?typeof c.data==`string`?c.data:JSON.stringify(c.data??null):JSON.stringify({error:c.error.message,code:c.error.code});a.push(r(o.id,b(l),!c.success))}return a}const A=e.enum([`idle`,`turn_started`,`step_started`,`step_finished`,`turn_finished`]),j=e.object({adapterId:e.string(),agentId:e.string(),oldState:A,newState:A,timestamp:e.number()}),M=e.object({eventType:e.literal(`reasoning_delta`),content:e.string()}),N=e.object({eventType:e.literal(`reasoning_complete`),content:e.string()}),P=e.object({name:e.string(),arguments:e.string()}),F=e.object({id:e.string(),type:e.literal(`function`),function:P}),I=e.object({eventType:e.literal(`tool_calls`),toolCalls:e.array(F)}),L=e.object({id:e.string(),type:e.literal(`function`),function:P}),R=e.object({eventType:e.literal(`message_complete`),content:e.string().nullable(),reasoning:e.string().optional(),tool_calls:e.array(L).optional(),finish_reason:e.string().nullable()}),z=`stream_start_timeout`;var B=class extends c{static MAX_TOOL_CALL_ITERATIONS=8;lastAssistantMessage;currentModel;currentCwd;pendingAssistantHistoryCompactions=[];constructor(e){super(e),this.sessionId=crypto.randomUUID(),this.currentModel=e.model,this.currentCwd=e.cwd}async processQueue(e){if(this.closing){v(e);return}await _(e,{getCurrentTurn:()=>this.currentTurn,startNewTurn:(e,t)=>this.startNewTurn(e,t)})}async close(){this.closing=!0,await super.abort()}async startNewTurn(e,t){this.config.onTurnStart?.(e),this.sessionId=crypto.randomUUID(),e.adapterSessionId=this.sessionId,e.internalRetry||this.closePendingAssistantHistoryCompactions(this.getConversationHistoryLength()),this.buildMessages(e,t);let n=this.getConversationHistoryLength(),r;if(!e.isProcessed&&!e.internalRetry){let t,i={setEndIndex:e=>{t??=e}};this.pendingAssistantHistoryCompactions.push(i),e.addCompletionObserver(e=>{try{let i=e.outcome===`completed`?e.result?.message:void 0;if(i===void 0||r===void 0||i===r)return;let a=t??this.getConversationHistoryLength();this.replaceAssistantTurnHistory(n,a,i),this.lastAssistantMessage=i}finally{this.removePendingAssistantHistoryCompaction(i)}})}if(this.currentTurn=this.createTurn(e),this.lastAssistantMessage=void 0,e.markAcknowledged(),await this.config.emitSdkEvent({eventType:`agent_started`,model:this.currentModel}),this.completeHandleIfClosing(e))return!1;let i=this.currentTurn;queueMicrotask(async()=>{try{if(!i||(await this.runTurn(i,e),e.isProcessed||this.isTurnSuperseded(i)))return;r=this.lastAssistantMessage||``,await g(e,{outcome:`completed`,result:{message:r}},this.config.onTurnComplete)}catch(t){await this.handleTurnError(t,i,e)}finally{i&&(!i.isPaused()||e.deliveryMode!==`immediate`)&&(await i.markTurnFinished(),this.currentTurn===i&&(this.currentTurn=void 0))}})}async handleTurnError(e,t,n){if(t?.isPaused()&&n.deliveryMode===`immediate`)return;let r=e instanceof Error?e:Error(String(e));if(t?.isPaused()){n.isProcessed||await g(n,{outcome:`error`,error:r},this.config.onTurnComplete);return}console.error(`[${this.config.adapterName}] Turn error:`,e),n.isProcessed||await g(n,{outcome:`error`,error:r},this.config.onTurnComplete),this.config.handleError(r,!1)}async runTurn(e,t){this.isTurnSuperseded(e)||(await e.start(),await this.runTurnIteration(e,t))}createMessageCompletePromise(e,t){return this.bus.once(this.getSdkEventSubject(),{timeoutMs:3e5,filter:{"event.eventType":`message_complete`,agentId:this.config.agentId,adapterId:this.config.adapterId,adapterSessionId:t},signal:e})}async executeStreamingStep(e,t,n){let r=this.config.streamStartTimeoutMs??3e4,i=new AbortController,a=setTimeout(()=>{i.abort()},r);try{await this.executeApiCall(e,AbortSignal.any([t,i.signal]),n)}catch(e){throw!t.aborted&&i.signal.aborted?Error(z,{cause:e}):e}finally{clearTimeout(a)}}async runTurnIteration(e,t,n=0){if(this.isTurnSuperseded(e))return;let r=e.getAbortSignal(),a=0,o;for(;;){if(this.shouldAbortTurnProcessing(e,t))return;try{let i=t.adapterSessionId??this.sessionId;if(!i)throw Error(`adapterSessionId must be set before waiting for message_complete`);if(o=this.createMessageCompletePromise(r,i),await this.executeStreamingStep(e,r,i),this.shouldAbortTurnProcessing(e,t)){o.catch(()=>{});return}let{payload:a}=await o,s=a.event;if(s.eventType!==`message_complete`)throw Error(`Expected message_complete event, got ${s.eventType}`);if(this.shouldAbortTurnProcessing(e,t))return;await this.applyMessageComplete(s,t,n,e);return}catch(e){if(o?.catch(()=>{}),e instanceof Error&&e.message===z&&!r.aborted&&a===0){a++;continue}if(r.aborted||e.name===`AbortError`||e instanceof i)return;let t=this.classifyError(e);throw n===0&&await this.config.emitSdkEvent({eventType:`error`,message:t.message,code:e?.code,type:e?.type}),t}}}buildToolConstraints(){if(this.config.allowedDirectories!==void 0)return{allowedDirectories:this.config.allowedDirectories}}updateModel(e){this.currentModel=e}updateCwd(e){this.currentCwd=e}getCurrentTurn(){return this.currentTurn}isTurnSuperseded(e){return this.currentTurn!==e}shouldAbortTurnProcessing(e,t){return t.isProcessed||e.isPaused()||this.isTurnSuperseded(e)}closePendingAssistantHistoryCompactions(e){for(let t of this.pendingAssistantHistoryCompactions)t.setEndIndex(e)}removePendingAssistantHistoryCompaction(e){let t=this.pendingAssistantHistoryCompactions.indexOf(e);t>=0&&this.pendingAssistantHistoryCompactions.splice(t,1)}},V=class extends u{session;userMessageQueue=new p;mcpDirectTools=[];mcpSessionContextCache;hasPendingToolRefresh=!1;hasPendingLedgerInjection=!1;markToolRefreshPending(){this.hasPendingToolRefresh=!0}afterSessionCreated(e){}getSession(){return this.session}async ensureSession(){if(this.isTurnEventLifecycleClosed||(this.session||await this.initializeSession(),!this.session))throw Error(`[${this.config.adapterName}] Cannot initialize a closed connector`);return this.session}getSessionQueue(){return this.userMessageQueue}async initializeSession(){if(await this.fetchToolsViaBus(),this.isTurnEventLifecycleClosed)return;this.prepareMcpDirectTools(),this.session=this.createSession(),this.afterSessionCreated(this.session),this.wireSessionEvents(),this.mcpDirectTools.length>0&&this.session.updateTools?.(this.mcpDirectTools);let e=(this.pendingTurnNumber??this.currentTurnNumber)||1;this.config.toolLedger?.recordInjection(this.mcpDirectTools,e)}prepareMcpDirectTools(){let e=this.mcpSessionContextCache??this.config.mcpSessionContext;e&&(this.mcpDirectTools=e.directTools.map(e=>({name:e.fullName,description:e.description??``,toolsetName:e.serverName,inputSchema:e.inputSchema})))}async fetchToolsViaBus(){this.session||await this.fetchTools()}async refreshTools(){await this.resolveAndCacheMcpContext(),this.prepareMcpDirectTools(),this.hasPendingLedgerInjection=!0}async resolveAndCacheMcpContext(){let e=this.config.mcpSessionContext;if(!(!e||!(`sessionId`in e)))try{this.mcpSessionContextCache=await this.globalBus.request(n.session.resolve,{sessionId:e.sessionId,profileId:e.profileId,projectId:e.projectId})}catch(e){console.warn(`[${this.config.adapterName}] MCP session re-resolve failed; using previous tool snapshot.`,e)}}getWireSessionConfig(){return{onTurnStarted:async()=>{if(this.consumeTurnNumber(),this.hasPendingToolRefresh)try{await this.refreshTools()}catch(e){console.warn(`[${this.config.adapterName}] Tool refresh failed at turn start; continuing with stale tools.`,e)}finally{this.hasPendingToolRefresh=!1}this.hasPendingLedgerInjection&&=(this.config.toolLedger?.recordInjection(this.mcpDirectTools,this.currentTurnNumber),!1)},onTurnFinished:async e=>{if(this.hasPendingToolRefresh)try{await this.refreshTools()}catch(e){console.warn(`[${this.config.adapterName}] Tool refresh failed; continuing with stale tools.`,e)}finally{this.hasPendingToolRefresh=!1}await e()}}}resolveSystemPrompt(){if(this.systemPrompt!==void 0)return typeof this.systemPrompt==`string`?this.systemPrompt:this.systemPrompt.content}async sendMessage(e,t){let n=this.createMessageHandle(e,t);return await this.processUserMessages([n]),n}abort(){this.session?.abort()}async close(){let e=this.closeTurnEventLifecycle();v(this.userMessageQueue);let t=this.session;this.session=void 0;let n=t?.close();return await e,await n,{evidence:`detached`,detail:`The stream session was aborted; the provider request settlement is not awaited here.`}}async changeModelInPlace(e){return this.session?.updateModel(e),!0}async changeCwdInPlace(e){return this.session?.updateCwd(e),!0}async changeReasoningInPlace(e){return this.session?.updateReasoning?.(e),!0}async interrupt(){await this.session?.abort()}async getAdapterSessionId(){if(this.adapterSessionId||this.initAdapterSessionId(),!this.adapterSessionId)throw Error(`Adapter session ID is missing in getAdapterSessionId(); ensure initAdapterSessionId() ran during connector initialization.`);return this.adapterSessionId}initAdapterSessionId(){this.adapterSessionId??=crypto.randomUUID()}};function H(e){try{let t=JSON.parse(e);return typeof t==`object`&&t&&!Array.isArray(t)?t:{}}catch{return{}}}var U=class extends a{toolBlockIndexMap=new Map;completedToolIds=new Set;toolCallArgsMap=new Map;resetPerTurnToolTracking(){this.toolBlockIndexMap.clear(),this.completedToolIds.clear(),this.toolCallArgsMap.clear()}wireEvents(e){this.wireSdkEvents(),this.wireSemanticEvents(e,this.getConnectorSubjects()),this.wireToolApprovalRpc(e)}wireSemanticEvents(e,t){this.wireMessageEvents(e,t),this.wireUsageEvents(e,t),this.wireToolEvents(e,t),this.wireReasoningEvents(e,t),this.wireLifecycleEvents(e,t)}wireMessageEvents(e,n){this.subscribeConnector(e,n.chunk,async e=>{let n=this.extractChunkText(e.payload);n&&await this.emitGlobal(t.message_delta,{text:n})}),this.subscribeConnector(e,n.messageComplete,async e=>{let{content:n}=e.payload;n&&(await this.emitStepStarted(`text`),await this.emitStepFinished(`text`,{type:`text`,content:n})),await this.emitGlobal(t.message,{content:n??``})})}wireUsageEvents(e,t){this.subscribeConnector(e,t.usage,async e=>{let t=this.extractUsagePayload(e.payload);await this.trackUsage(t),await this.emitUsageContextWindowUpdate(e.payload)})}wireToolEvents(e,n){this.subscribeConnector(e,n.toolCalls,async e=>{let{toolCalls:n}=e.payload;for(let e of n){if(this.completedToolIds.has(e.id)){console.warn(`[BaseStreamAgent] Ignoring late tool_calls for completed toolCallId ${e.id}`);continue}let n=H(e.function.arguments);this.toolCallArgsMap.set(e.id,n);let r=this.reserveToolCallBlockIndex(e);this.toolBlockIndexMap.set(e.id,r),await this.emitGlobal(t.step.started,{stepType:`tool_use`,blockIndex:r,blockData:{type:`tool_use`,toolName:e.function.name,toolCallId:e.id},content:{type:`tool_call`,toolCallId:e.id,name:e.function.name,args:n}}),this.afterToolCallStepEmitted(r),await this.emitGlobal(t.tool.use,{toolName:e.function.name,args:n,toolCallId:e.id})}}),this.subscribeConnector(e,n.toolStarted,async e=>{let{toolName:n,toolCallId:r}=e.payload;await this.emitGlobal(t.tool.started,{toolName:n,toolCallId:r})}),this.subscribeConnector(e,n.toolCompleted,async e=>{let{toolCallId:n,toolName:r,result:i,success:a}=e.payload;this.completedToolIds.add(n);let o=this.toolBlockIndexMap.get(n);o===void 0&&console.warn(`[BaseStreamAgent] toolCallId ${n} missing from toolBlockIndexMap; using fallback`);let s=o??this.getFallbackToolCompletedBlockIndex();this.toolBlockIndexMap.delete(n),await this.emitGlobal(t.step.finished,{stepType:`tool_use`,blockIndex:s,content:{type:`tool_output`,toolCallId:n,output:i,isError:!a}}),this.afterToolCompletedStepEmitted(s);let c=this.toolCallArgsMap.get(n);this.toolCallArgsMap.delete(n),c===void 0&&console.warn(`[BaseStreamAgent] toolCallId ${n} missing args for tool ${r}`),await this.emitGlobal(t.tool.completed,{toolName:r,args:c,result:{output:i},success:a,toolCallId:n})})}wireReasoningEvents(e,n){this.subscribeConnector(e,n.reasoningDelta,async e=>{let{content:n}=e.payload;await this.emitGlobal(t.reasoning_delta,{content:n})}),this.subscribeConnector(e,n.reasoningComplete,async e=>{let n=e.payload.content;if(n){let t=this.buildReasoningBlock(e.payload);await this.emitStepStarted(`reasoning`),await this.emitStepFinished(`reasoning`,t)}await this.emitGlobal(t.reasoning,{content:n??``})})}wireLifecycleEvents(e,t){this.subscribeConnector(e,t.agentStarted,async e=>{e.payload,this.resetPerTurnToolTracking(),await this.emitStart()}),this.subscribeConnector(e,t.agentComplete,async e=>{e.payload,this.resetPerTurnToolTracking()})}};export{o as AgentCompleteEventSchema,s as AgentStartedEventSchema,U as BaseStreamAgent,V as BaseStreamConnector,B as BaseStreamSession,l as ErrorEventSchema,y as MAX_TOOL_RESULT_CONTENT_CHARS,R as MessageCompleteEventSchema,L as MessageToolCallSchema,N as ReasoningCompleteEventSchema,M as ReasoningDeltaEventSchema,A as StreamSessionTurnStateSchema,P as ToolCallFunctionSchema,F as ToolCallSchema,I as ToolCallsEventSchema,d as ToolCompletedEventSchema,f as ToolStartedEventSchema,j as TurnStateChangedSchema,w as applyApprovedArgs,b as boundToolResultContent,O as executeTool,S as extractToolCallPayload,D as filterToolsWithSchema,k as handleToolCalls,E as loadToolsFromRegistry,C as toGlobalToolApproval};
@@ -0,0 +1 @@
1
+ import{C as e,S as t,a as n,c as r,d as i,i as a,l as o,n as s,r as c,y as l}from"./schemas-DRho446W.mjs";import{a as u,c as d,d as f,f as p}from"./kind-registration-DggkrLkv.mjs";import{t as m}from"./zod-json-schema-DGWHUOK0.mjs";import{z as h}from"zod";import{createBusNamespace as g}from"@makaio/framework/core";const _=h.strictObject({evidence:t}),v=h.strictObject({kind:h.literal(`text`),text:h.string()}),[y,b,x]=t.options,S=h.union([y.pick({source:!0,location:!0}).extend({content:v}),b.pick({source:!0,location:!0}).extend({content:v}),x.pick({source:!0,location:!0}).extend({content:v})]);function C(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function w(e){return e.replaceAll(`~`,`~0`).replaceAll(`/`,`~1`)}function T(e,t){if(t===`#`)return{node:e,pointer:``};if(!t.startsWith(`#/`))return;let n;try{n=decodeURIComponent(t.slice(1))}catch{return}let r=e;for(let e of n.slice(1).split(`/`)){let t=e.replaceAll(`~1`,`/`).replaceAll(`~0`,`~`);if(Array.isArray(r)){if(!/^(0|[1-9]\d*)$/.test(t)||Number(t)>=r.length)return;r=r[Number(t)]}else{let e=C(r);if(!e||!Object.hasOwn(e,t))return;r=e[t]}}let i=typeof r==`boolean`?r:C(r);return i===void 0?void 0:{node:i,pointer:n}}function E(e,t){if(t===``)return!1;let n=e;for(let e of t.slice(1).split(`/`)){let t=e.replaceAll(`~1`,`/`).replaceAll(`~0`,`~`);if(n=Array.isArray(n)?n[Number(t)]:C(n)?.[t],typeof C(n)?.$id==`string`)return!0}return!1}function D(e,n,r){if(e[`x-makaio-value-type`]!==`evidence/v1`)return;let i=t.safeParse(n);if(!i.success)throw Error(`Invalid schema-declared evidence at ${r}`);return{evidence:i.data,dataPath:r}}function O(e,t,n,r){if(typeof t.$ref!=`string`)return!1;if(r)return!0;let i=T(e,t.$ref);return i===void 0?!0:typeof i.node!=`boolean`&&k(e,i.node,n,E(e,i.pointer))}function k(e,t,n=new WeakSet,r=!1){let i=C(t);if(!i||n.has(i))return!1;n.add(i);let a=r||i!==e&&typeof i.$id==`string`;if(i[`x-makaio-value-type`]===`evidence/v1`||typeof i.$dynamicRef==`string`||O(e,i,n,a)||[`additionalItems`,`additionalProperties`,`contains`,`else`,`if`,`items`,`then`,`unevaluatedItems`,`unevaluatedProperties`].some(t=>k(e,i[t],n,a))||[`allOf`,`anyOf`,`oneOf`,`prefixItems`].some(t=>Array.isArray(i[t])&&i[t].some(t=>k(e,t,n,a)))||Array.isArray(i.items)&&i.items.some(t=>k(e,t,n,a)))return!0;for(let t of[`dependentSchemas`,`dependencies`,`patternProperties`,`properties`]){let r=C(i[t]);if(r&&Object.values(r).some(t=>k(e,t,n,a)))return!0}return!1}var A=class{dataSchema;matchesSchema;occurrences=new Map;visited=new WeakMap;constructor(e,t){this.dataSchema=e,this.matchesSchema=t}extract(e){return this.visit(this.dataSchema,e,`/data`),[...this.occurrences.values()]}visit(e,t,n,r=``){let i=this.visited.get(e)??new Set;if(i.has(n))return;if(i.add(n),this.visited.set(e,i),typeof e.$dynamicRef==`string`)throw Error(`Evidence discovery does not support active $dynamicRef at ${n}`);if(typeof e.$ref==`string`){if(E(this.dataSchema,r))throw Error(`Evidence discovery does not support local $ref inside nested $id resource at ${n}`);let i=T(this.dataSchema,e.$ref);if(i===void 0)throw Error(`Cannot resolve local schema reference ${e.$ref} at ${n}`);if(typeof i.node!=`boolean`&&this.visit(i.node,t,n,i.pointer),this.dataSchema.$schema!==`https://json-schema.org/draft/2020-12/schema`)return}let a=D(e,t,n);if(a){this.occurrences.set(n,a);return}this.visitCombiners(e,t,n,r),this.visitConditional(e,t,n,r),this.visitDependencies(e,t,n,r),this.assertSupportedApplicators(e,n,r),Array.isArray(t)?this.visitArray(e,t,n,r):typeof t==`object`&&t&&this.visitObject(e,t,n,r)}visitCombiners(e,t,n,r){for(let i of[`allOf`,`anyOf`,`oneOf`]){let a=e[i];if(Array.isArray(a))for(let[e,o]of a.entries()){let a=C(o),s=`${r}/${i}/${e}`;a&&(i===`allOf`||this.matchesSchema(this.dataSchema,s,t))&&this.visit(a,t,n,s)}}}visitConditional(e,t,n,r){let i=typeof e.if==`boolean`?e.if:C(e.if);if(i===void 0)return;let a=`${r}/if`,o=this.matchesSchema(this.dataSchema,a,t);o&&typeof i!=`boolean`&&this.visit(i,t,n,a);let s=o?`then`:`else`,c=C(e[s]);c&&this.visit(c,t,n,`${r}/${s}`)}visitDependencies(e,t,n,r){if(!(typeof t!=`object`||!t||Array.isArray(t)))for(let i of[`dependentSchemas`,`dependencies`]){let a=C(e[i]);if(a)for(let[e,o]of Object.entries(a)){let a=C(o);Object.hasOwn(t,e)&&a&&this.visit(a,t,n,`${r}/${i}/${w(e)}`)}}}assertSupportedApplicators(e,t,n){for(let r of[`unevaluatedProperties`,`unevaluatedItems`])if(k(this.dataSchema,e[r],void 0,E(this.dataSchema,n)))throw Error(`Evidence under unsupported ${r} applicator at ${t}`)}visitArray(e,t,n,r){let i=Array.isArray(e.prefixItems),a=i?e.prefixItems:Array.isArray(e.items)?e.items:[];a.forEach((e,a)=>{let o=C(e),s=i?`prefixItems`:`items`;o&&a<t.length&&this.visit(o,t[a],`${n}/${a}`,`${r}/${s}/${a}`)});let o=Array.isArray(e.items)?C(e.additionalItems):C(e.items);if(o){let i=Array.isArray(e.items)?`additionalItems`:`items`;t.slice(a.length).forEach((e,t)=>this.visit(o,e,`${n}/${a.length+t}`,`${r}/${i}`))}this.visitContains(e,t,n,r)}visitContains(e,t,n,r){let i=C(e.contains);if(!i)return;let a=`${r}/contains`;t.forEach((e,t)=>{this.matchesSchema(this.dataSchema,a,e)&&this.visit(i,e,`${n}/${t}`,a)})}visitObject(e,t,n,r){let i=C(e.properties),a=C(e.patternProperties);for(let[o,s]of Object.entries(t)){let t=w(o),c=i!==void 0&&Object.hasOwn(i,o),l=C(i?.[o]);l&&this.visit(l,s,`${n}/${t}`,`${r}/properties/${t}`);let u=this.visitPatterns(a,o,s,`${n}/${t}`,r),d=C(e.additionalProperties);!c&&!u&&d&&this.visit(d,s,`${n}/${t}`,`${r}/additionalProperties`)}}visitPatterns(e,t,n,r,i){let a=!1;for(let[o,s]of Object.entries(e??{})){if(!new RegExp(o,`u`).test(t))continue;a=!0;let e=C(s);e&&this.visit(e,n,r,`${i}/patternProperties/${w(o)}`)}return a}};function j(e,t,n){return new A(e,n.matchesSchema).extract(t)}function M(e){let{dataSchema:t,hooks:n,...r}=e,i={$schema:`https://json-schema.org/draft/2020-12/schema`,...m(t)};f(i);let a=u.parse({...r,dataSchema:i});if(a.kind!==e.kind)throw Error(`Artifact kind identifiers must not contain surrounding whitespace`);let o=h.fromJSONSchema(a.dataSchema),s=h.unknown().superRefine((e,t)=>{let n=o.safeParse(e);if(!n.success)for(let e of n.error.issues)t.addIssue({code:`custom`,path:e.path,message:e.message})}).pipe(t).superRefine((e,t)=>{try{p(e,a.titlePath)}catch(e){t.addIssue({code:`custom`,path:a.titlePath.split(`.`),message:e instanceof Error?e.message:`Artifact title must be a nonblank string`})}});return{...structuredClone(a),kind:e.kind,schemaVersion:e.schemaVersion,dataSchema:s,...n?{hooks:n}:{},toRegistration:()=>structuredClone(a)}}function N(e){return{hooks:[...e.hooks]}}const P=[`inline`,`summary`,`link`,`omit`],F=h.string().min(1),I=h.object({kinds:h.array(h.string().min(1)).optional(),hint:F.optional(),depth:h.number().int().min(1).max(20).optional(),nested:h.lazy(()=>L).optional()}),L=h.record(h.string().min(1),I);function R(e){return JSON.stringify([e.kind,e.id,e.revision])}const z=h.enum([`not-selected`,`not-found`,`depth-exceeded`,`unsupported-ref-class`,`cycle-detected`]),B=h.object({target:o,sourceRef:e,relationType:h.string().min(1),hint:F,status:h.enum([`resolved`,`unresolved`]),reason:z.optional()}).superRefine((e,t)=>{e.status===`unresolved`&&e.reason===void 0&&t.addIssue({code:h.ZodIssueCode.custom,path:[`reason`],message:`reason is required for unresolved artifact context refs`}),e.status===`resolved`&&e.reason!==void 0&&t.addIssue({code:h.ZodIssueCode.custom,path:[`reason`],message:`reason must be omitted for resolved artifact context refs`}),e.status===`resolved`&&e.target.refClass!==`artifact`&&t.addIssue({code:h.ZodIssueCode.custom,path:[`target`],message:`resolved artifact context refs must target an artifact revision`})}),V=h.object({rootRef:e,refs:h.array(B),resolved:h.array(i)}).superRefine((e,t)=>{let n=new Set(e.resolved.map(R));n.has(R(e.rootRef))||t.addIssue({code:h.ZodIssueCode.custom,path:[`resolved`],message:`resolved artifact context wire payloads must include the root artifact revision`}),e.refs.forEach((e,r)=>{n.has(R(e.sourceRef))||t.addIssue({code:h.ZodIssueCode.custom,path:[`refs`,r,`sourceRef`],message:`artifact context ref sources must have a matching revision in resolved`}),!(e.status!==`resolved`||e.target.refClass!==`artifact`)&&(n.has(R(e.target))||t.addIssue({code:h.ZodIssueCode.custom,path:[`refs`,r,`target`],message:`resolved artifact context refs must have a matching revision in resolved`}))})});function H(e){let t=V.parse(e),n=new Map(t.resolved.map(e=>[q(e),e])),r=new Map;for(let e of t.refs){let t=q(e.sourceRef),n=r.get(t);n||(n=[],r.set(t,n)),n.push(e)}let i=n.get(q(t.rootRef));if(!i)throw Error(`Resolved artifact context is missing root artifact '${q(t.rootRef)}'`);let a=U(t.rootRef,i,`inline`,r,n);return{root:a,flatten(){let e=[];return K(a,e),e}}}function U(e,t,n,r,i){return{status:`resolved`,ref:e,artifact:t,hint:n,children:G(e,r,i,new Set([q(e)]))}}function W(e,t,n,r,i,a,o){let s=q(e),c=new Set(o);return c.add(s),{status:`resolved`,ref:e,artifact:t,relation:n,hint:r,children:G(e,i,a,c)}}function G(e,t,n,r){return(t.get(q(e))??[]).map(e=>{if(e.status===`unresolved`)return{status:`unresolved`,target:e.target,relation:e.relationType,hint:e.hint,reason:e.reason};if(e.target.refClass!==`artifact`)throw Error(`Resolved artifact context refs must target an artifact revision`);let i=q(e.target),a=n.get(i);if(!a)throw Error(`Resolved artifact context is missing target artifact '${i}'`);return r.has(i)?{status:`unresolved`,target:e.target,relation:e.relationType,hint:e.hint,reason:`cycle-detected`}:W(e.target,a,e.relationType,e.hint,t,n,r)})}function K(e,t){if(e.status!==`unresolved`){t.push(e.artifact);for(let n of e.children)K(n,t)}}function q(e){return JSON.stringify([e.kind,e.id,e.revision])}const J={"kind.register":{request:u,response:h.object({registered:h.boolean()})},"kind.list":{request:h.object({kind:h.string().min(1).optional()}),response:h.object({kinds:h.array(u)})},"relation-type.register":{request:l,response:h.object({registered:h.boolean()})},"relation-type.list":{request:h.object({type:h.string().min(1).optional()}),response:h.object({relationTypes:h.array(l)})},create:{request:i.omit({id:!0,revision:!0,timestamp:!0}).extend({id:e.shape.id.optional()}),response:h.object({artifact:i})},revise:{request:h.object({previous:e,statusPath:h.string().regex(/^(?:\/(?:[^~/]|~[01])*)+$/,`Expected a data-relative JSON Pointer`).optional(),revision:i.omit({id:!0,revision:!0,timestamp:!0})}),response:h.object({artifact:i})},resolve:{request:h.object({ref:e}),response:h.object({artifact:i.nullable()})},query:{request:n,response:h.object({artifacts:h.array(i)})},compare:{request:s,response:c},"evidence.resolve":{request:_,response:S},resolveContext:{request:h.object({ref:e,selectors:L.optional(),maxDepth:h.number().int().min(1).max(20).default(5)}),response:h.object({context:V})},created:h.object({artifact:i}),revised:h.object({previous:e,artifact:i}),"relation.added":h.object({artifact:e,relation:r}),"observation.added":h.object({artifact:e,observation:a}),"status.changed":h.object({artifact:e,path:h.string().min(1),previous:h.unknown().optional(),current:h.unknown().optional()}),"kind.changed":h.object({kind:h.string().min(1),schemaVersion:d})},Y=g(`artifact`,J),X=Y.subjects;export{B as a,P as c,L as d,N as f,S as g,_ as h,H as i,I as l,j as m,J as n,z as o,M as p,X as r,V as s,Y as t,F as u};
@@ -1 +1 @@
1
- import{s as e}from"./execution-attempt-owner-recovery-CdH04iwP.mjs";import{z as t}from"zod";import{ExecutionAttemptPreparationResultSchema as n,ProviderAllocationRefSchema as r,WorkerAllocationLifetimeSchema as i}from"@makaio/framework/contracts";function a(e){let t=Date.parse(e);if(Number.isNaN(t))throw Error(`Expected an ISO-8601 timestamp, received '${e}'`);return t}function o(e){return new Date(a(e)).toISOString()}function s(e){if(!Number.isSafeInteger(e)||e<=0)throw RangeError(`bootstrapTimeoutMs must be a positive safe integer`);let t=Date.now(),n=t+e;if(!Number.isSafeInteger(n)||!Number.isFinite(new Date(n).getTime()))throw RangeError(`bootstrapTimeoutMs produces an unrepresentable bootstrap deadline`);return{createdAt:new Date(t).toISOString(),bootstrapDeadlineAt:new Date(n).toISOString()}}function c(t){return e(t,e=>n.parse(e))}const l=t.array(t.object({operationId:t.string().min(1),runtimeGeneration:t.number().int().positive(),result:n}).strict());function u(t){return e(t,e=>l.parse(e))}function d(t){return e(t,e=>r.parse(e))}function f(e){return i.parse(e)}function p(e){let t=r.parse(e.currentRef),n=d(e.nextRef);if(t.providerId!==n.providerId)throw Error(`Allocation reference evolution must keep one provider, received '${t.providerId}' and '${n.providerId}'`);return{currentRef:t,nextRef:n}}function m(e,t){if(e.providerId!==t.providerId)throw Error(`Allocation reference for attempt '${e.executionAttemptId}' names provider '${t.providerId}' but the attempt is bound to '${e.providerId??`no provider`}'`)}const h={runtimeGeneration:0,runtimeIncarnationId:null,runtimeReadyAt:null,operationStartGate:`open`,activeOperationId:null,activeOperationKind:null,activeOperationKey:null,activeOperationGeneration:null,activeOperationAdmittedAt:null,lastCompletedOperationId:null};function g(e){return{runtimeGeneration:e.runtimeGeneration,runtimeIncarnationId:e.runtimeIncarnationId,runtimeReadyAt:e.runtimeReadyAt,operationStartGate:e.operationStartGate,activeOperationId:e.activeOperationId,activeOperationKind:e.activeOperationKind,activeOperationKey:e.activeOperationKey,activeOperationGeneration:e.activeOperationGeneration,activeOperationAdmittedAt:e.activeOperationAdmittedAt,lastCompletedOperationId:e.lastCompletedOperationId}}function _(e,t){let n=a(e.createdAt)-a(t.createdAt);return n===0?e.executionAttemptId<t.executionAttemptId?-1:+(e.executionAttemptId>t.executionAttemptId):n}function v(e){let{status:t,claimable:n,settlementKind:r,allocationRef:i,providerId:a}=e,{allocationLifetime:o,provisionerIncarnationId:s}=e;if(t!==`allocated`||n!==!0||r!=null||i===null||a===null||o===null||s===null)throw Error(`Attempt '${e.executionAttemptId}' was selected as recoverable but is not: status '${t}', claimable '${String(n)}', settlement '${String(r)}', allocation '${i===null?`none`:`present`}', provider '${String(a)}', lifetime '${String(o)}', provisioner '${String(s)}'`);return{...e,status:t,claimable:!0,settlementKind:null,allocationRef:i,providerId:a,allocationLifetime:o,provisionerIncarnationId:s}}export{o as a,p as c,m as d,g as f,a as i,u as l,_ as n,f as o,v as p,s as r,d as s,h as t,c as u};
1
+ import{s as e}from"./execution-attempt-owner-recovery-CwTiTnnR.mjs";import{z as t}from"zod";import{ExecutionAttemptPreparationResultSchema as n,ProviderAllocationRefSchema as r,WorkerAllocationLifetimeSchema as i}from"@makaio/framework/contracts";function a(e){let t=Date.parse(e);if(Number.isNaN(t))throw Error(`Expected an ISO-8601 timestamp, received '${e}'`);return t}function o(e){return new Date(a(e)).toISOString()}function s(e){if(!Number.isSafeInteger(e)||e<=0)throw RangeError(`bootstrapTimeoutMs must be a positive safe integer`);let t=Date.now(),n=t+e;if(!Number.isSafeInteger(n)||!Number.isFinite(new Date(n).getTime()))throw RangeError(`bootstrapTimeoutMs produces an unrepresentable bootstrap deadline`);return{createdAt:new Date(t).toISOString(),bootstrapDeadlineAt:new Date(n).toISOString()}}function c(t){return e(t,e=>n.parse(e))}const l=t.array(t.object({operationId:t.string().min(1),runtimeGeneration:t.number().int().positive(),result:n}).strict());function u(t){return e(t,e=>l.parse(e))}function d(t){return e(t,e=>r.parse(e))}function f(e){return i.parse(e)}function p(e){let t=r.parse(e.currentRef),n=d(e.nextRef);if(t.providerId!==n.providerId)throw Error(`Allocation reference evolution must keep one provider, received '${t.providerId}' and '${n.providerId}'`);return{currentRef:t,nextRef:n}}function m(e,t){if(e.providerId!==t.providerId)throw Error(`Allocation reference for attempt '${e.executionAttemptId}' names provider '${t.providerId}' but the attempt is bound to '${e.providerId??`no provider`}'`)}const h={runtimeGeneration:0,runtimeIncarnationId:null,runtimeReadyAt:null,operationStartGate:`open`,activeOperationId:null,activeOperationKind:null,activeOperationKey:null,activeOperationGeneration:null,activeOperationAdmittedAt:null,lastCompletedOperationId:null};function g(e){return{runtimeGeneration:e.runtimeGeneration,runtimeIncarnationId:e.runtimeIncarnationId,runtimeReadyAt:e.runtimeReadyAt,operationStartGate:e.operationStartGate,activeOperationId:e.activeOperationId,activeOperationKind:e.activeOperationKind,activeOperationKey:e.activeOperationKey,activeOperationGeneration:e.activeOperationGeneration,activeOperationAdmittedAt:e.activeOperationAdmittedAt,lastCompletedOperationId:e.lastCompletedOperationId}}function _(e,t){let n=a(e.createdAt)-a(t.createdAt);return n===0?e.executionAttemptId<t.executionAttemptId?-1:+(e.executionAttemptId>t.executionAttemptId):n}function v(e){let{status:t,claimable:n,settlementKind:r,allocationRef:i,providerId:a}=e,{allocationLifetime:o,provisionerIncarnationId:s}=e;if(t!==`allocated`||n!==!0||r!=null||i===null||a===null||o===null||s===null)throw Error(`Attempt '${e.executionAttemptId}' was selected as recoverable but is not: status '${t}', claimable '${String(n)}', settlement '${String(r)}', allocation '${i===null?`none`:`present`}', provider '${String(a)}', lifetime '${String(o)}', provisioner '${String(s)}'`);return{...e,status:t,claimable:!0,settlementKind:null,allocationRef:i,providerId:a,allocationLifetime:o,provisionerIncarnationId:s}}export{o as a,p as c,m as d,g as f,a as i,u as l,_ as n,f as o,v as p,s as r,d as s,h as t,c as u};
@@ -1 +1 @@
1
- import{i as e,r as t}from"./definitions-CYZTuMdL.mjs";import{n}from"./selection-7SkHsmWs.mjs";import"./resolved-ONt3rOMh.mjs";import{z as r}from"zod";const i=r.union([r.string(),r.number().finite(),r.boolean(),r.null()]);function a(e){return Object.keys(e).length>0}const o=r.string().trim().min(1),s=r.record(e,t).refine(a,{message:`Process-environment delivery fields must not be empty.`}),c=r.record(e,o).refine(a,{message:`Connector delivery fields must not be empty.`}),l=r.object({kind:r.literal(`process-env`),fields:s}).strict(),u=r.object({kind:r.literal(`connector`),target:r.string().trim().min(1),fields:c,constants:r.record(o,i).optional()}).strict(),d=r.object({kind:r.literal(`native-client`),clientId:r.string().trim().min(1)}).strict(),f=r.object({kind:r.literal(`none`)}).strict(),p=r.discriminatedUnion(`kind`,[l,u,d,f]),m=r.tuple([p]).rest(p),h=r.object({method:n,deliveries:m}).strict().superRefine((e,t)=>{e.deliveries.some(({kind:e})=>e===`none`)&&e.deliveries.length!==1&&t.addIssue({code:r.ZodIssueCode.custom,message:`A none delivery must be the only delivery in its binding.`,path:[`deliveries`]});for(let[n,i]of e.deliveries.entries())i.kind===`native-client`&&(e.method.owner!==`client`||e.method.clientId!==i.clientId)&&t.addIssue({code:r.ZodIssueCode.custom,message:`Native-client delivery must target the client that owns the bound auth method.`,path:[`deliveries`,n,`clientId`]})});function g(e){return JSON.stringify(e.owner===`provider`?[e.owner,e.providerDefinitionId,e.methodId]:[e.owner,e.clientId,e.methodId])}const _=r.object({bindings:r.array(h).min(1),scrubEnvVars:r.array(t)}).strict().superRefine((e,t)=>{let n=new Set;for(let[i,a]of e.bindings.entries()){let e=g(a.method);n.has(e)?t.addIssue({code:r.ZodIssueCode.custom,message:`Adapter auth bindings must reference unique methods.`,path:[`bindings`,i,`method`]}):n.add(e)}let i=new Set;for(let[n,a]of e.scrubEnvVars.entries())i.has(a)?t.addIssue({code:r.ZodIssueCode.custom,message:`Duplicate scrub environment variable "${a}".`,path:[`scrubEnvVars`,n]}):i.add(a)}).brand();function v(e){return _.parse(e)}var y=class extends Error{code;constructor(e,t){super(t),this.code=e,this.name=`AdapterAuthBindingValidationError`}};function b(e,t){if(e.method.methodId!==t.id)throw new y(`method-mismatch`,`Adapter authentication binding method "${e.method.methodId}" does not match definition "${t.id}".`);if(x(e,t),t.mode!==`explicit`)return;let n=new Set(t.fields.map(e=>e.id)),r=new Set,i=new Set,a=new Set;for(let t of e.deliveries){if(t.kind===`process-env`){for(let[e,a]of Object.entries(t.fields))S(n,e),r.add(e),C(i,a,`process-target-collision`,`process environment`);continue}if(t.kind!==`connector`)continue;C(a,t.target,`connector-target-collision`,`connector operation`);let e=new Set;for(let[i,a]of Object.entries(t.fields))S(n,i),r.add(i),C(e,a,`connector-value-target-collision`,`connector operation "${t.target}" value`);for(let n of Object.keys(t.constants??{}))C(e,n,`connector-value-target-collision`,`connector operation "${t.target}" value`)}for(let e of t.fields)if(e.required&&!r.has(e.id))throw new y(`required-field-undelivered`,`Required authentication field "${e.id}" has no adapter delivery.`)}function x(e,t){if(t.mode===`explicit`){if(e.deliveries.some(({kind:e})=>e!==`process-env`&&e!==`connector`))throw new y(`delivery-mode-mismatch`,`Explicit authentication requires process-environment or connector deliveries.`);return}if(t.mode===`inferred`){let t=e.deliveries[0];if(e.deliveries.length!==1||t?.kind!==`native-client`)throw new y(`delivery-mode-mismatch`,`Inferred authentication requires exactly one native-client delivery.`);if(e.method.owner!==`client`||e.method.clientId!==t.clientId)throw new y(`native-client-mismatch`,`Native-client delivery must target the client that owns the bound auth method.`);return}if(e.deliveries.length!==1||e.deliveries[0]?.kind!==`none`)throw new y(`delivery-mode-mismatch`,`No-authentication methods require exactly one none delivery.`)}function S(e,t){if(!e.has(t))throw new y(`unknown-field`,`Adapter authentication delivery references unknown field "${t}".`)}function C(e,t,n,r){if(e.has(t))throw new y(n,`Adapter authentication has duplicate ${r} target "${t}".`);e.add(t)}export{_ as a,f as c,p as i,l,h as n,u as o,i as r,d as s,b as t,v as u};
1
+ import{i as e,r as t}from"./definitions-2T95Q-y6.mjs";import{n}from"./selection-BDs7K53w.mjs";import"./resolved-M6PyrgFr.mjs";import{z as r}from"zod";const i=r.union([r.string(),r.number().finite(),r.boolean(),r.null()]);function a(e){return Object.keys(e).length>0}const o=r.string().trim().min(1),s=r.record(e,t).refine(a,{message:`Process-environment delivery fields must not be empty.`}),c=r.record(e,o).refine(a,{message:`Connector delivery fields must not be empty.`}),l=r.object({kind:r.literal(`process-env`),fields:s}).strict(),u=r.object({kind:r.literal(`connector`),target:r.string().trim().min(1),fields:c,constants:r.record(o,i).optional()}).strict(),d=r.object({kind:r.literal(`native-client`),clientId:r.string().trim().min(1)}).strict(),f=r.object({kind:r.literal(`none`)}).strict(),p=r.discriminatedUnion(`kind`,[l,u,d,f]),m=r.tuple([p]).rest(p),h=r.object({method:n,deliveries:m}).strict().superRefine((e,t)=>{e.deliveries.some(({kind:e})=>e===`none`)&&e.deliveries.length!==1&&t.addIssue({code:r.ZodIssueCode.custom,message:`A none delivery must be the only delivery in its binding.`,path:[`deliveries`]});for(let[n,i]of e.deliveries.entries())i.kind===`native-client`&&(e.method.owner!==`client`||e.method.clientId!==i.clientId)&&t.addIssue({code:r.ZodIssueCode.custom,message:`Native-client delivery must target the client that owns the bound auth method.`,path:[`deliveries`,n,`clientId`]})});function g(e){return JSON.stringify(e.owner===`provider`?[e.owner,e.providerDefinitionId,e.methodId]:[e.owner,e.clientId,e.methodId])}const _=r.object({bindings:r.array(h).min(1),scrubEnvVars:r.array(t)}).strict().superRefine((e,t)=>{let n=new Set;for(let[i,a]of e.bindings.entries()){let e=g(a.method);n.has(e)?t.addIssue({code:r.ZodIssueCode.custom,message:`Adapter auth bindings must reference unique methods.`,path:[`bindings`,i,`method`]}):n.add(e)}let i=new Set;for(let[n,a]of e.scrubEnvVars.entries())i.has(a)?t.addIssue({code:r.ZodIssueCode.custom,message:`Duplicate scrub environment variable "${a}".`,path:[`scrubEnvVars`,n]}):i.add(a)}).brand();function v(e){return _.parse(e)}var y=class extends Error{code;constructor(e,t){super(t),this.code=e,this.name=`AdapterAuthBindingValidationError`}};function b(e,t){if(e.method.methodId!==t.id)throw new y(`method-mismatch`,`Adapter authentication binding method "${e.method.methodId}" does not match definition "${t.id}".`);if(x(e,t),t.mode!==`explicit`)return;let n=new Set(t.fields.map(e=>e.id)),r=new Set,i=new Set,a=new Set;for(let t of e.deliveries){if(t.kind===`process-env`){for(let[e,a]of Object.entries(t.fields))S(n,e),r.add(e),C(i,a,`process-target-collision`,`process environment`);continue}if(t.kind!==`connector`)continue;C(a,t.target,`connector-target-collision`,`connector operation`);let e=new Set;for(let[i,a]of Object.entries(t.fields))S(n,i),r.add(i),C(e,a,`connector-value-target-collision`,`connector operation "${t.target}" value`);for(let n of Object.keys(t.constants??{}))C(e,n,`connector-value-target-collision`,`connector operation "${t.target}" value`)}for(let e of t.fields)if(e.required&&!r.has(e.id))throw new y(`required-field-undelivered`,`Required authentication field "${e.id}" has no adapter delivery.`)}function x(e,t){if(t.mode===`explicit`){if(e.deliveries.some(({kind:e})=>e!==`process-env`&&e!==`connector`))throw new y(`delivery-mode-mismatch`,`Explicit authentication requires process-environment or connector deliveries.`);return}if(t.mode===`inferred`){let t=e.deliveries[0];if(e.deliveries.length!==1||t?.kind!==`native-client`)throw new y(`delivery-mode-mismatch`,`Inferred authentication requires exactly one native-client delivery.`);if(e.method.owner!==`client`||e.method.clientId!==t.clientId)throw new y(`native-client-mismatch`,`Native-client delivery must target the client that owns the bound auth method.`);return}if(e.deliveries.length!==1||e.deliveries[0]?.kind!==`none`)throw new y(`delivery-mode-mismatch`,`No-authentication methods require exactly one none delivery.`)}function S(e,t){if(!e.has(t))throw new y(`unknown-field`,`Adapter authentication delivery references unknown field "${t}".`)}function C(e,t,n,r){if(e.has(t))throw new y(n,`Adapter authentication has duplicate ${r} target "${t}".`);e.add(t)}export{_ as a,f as c,p as i,l,h as n,u as o,i as r,d as s,b as t,v as u};
@@ -0,0 +1 @@
1
+ import{o as e}from"./chunk-DTipWd-i.mjs";import{t}from"./ajv-IlnfOGAj.mjs";import{z as n}from"zod";import{execFile as r}from"node:child_process";import{isDeepStrictEqual as i}from"node:util";import{isAbsolute as a,relative as o,resolve as s}from"node:path";import{randomUUID as c}from"node:crypto";import{realpathSync as l}from"node:fs";import{localSubject as u}from"@makaio/framework/core";import{ArtifactSchemas as d,ArtifactSubjects as f,ExecutionAttemptInstructionSchema as p,ExecutionAttemptOutcomeSchema as m,ExecutionLinkListQuerySchema as h,ExecutionLinkSchema as g,ExecutionListQuerySchema as _,ExecutionStatusSchema as v,ExecutionsByArtifactRefsQuerySchema as y,GateInstanceListQuerySchema as b,JsonPatchOperationSchema as x,JsonValueSchema as S,SessionSubjects as C,SpanRecordSchema as ee,SubagentSubjects as w,WORKFLOW_CANCELLED_REASON as te,WorkLogFrameEntrySchema as ne,WorkerSubjects as re,WorkflowDefinitionSchema as ie,WorkflowError as ae,WorkflowErrorCode as oe,WorkflowExecutionSchema as T,WorkflowFinalizationClaimSchema as E,WorkflowFinalizerIdSchema as se,WorkflowFrameStateSchema as ce,WorkflowGateInstanceSchema as D,WorkflowListQuerySchema as le,WorkflowRunContextSchema as O,WorkflowRunResultSchema as ue,WorkflowSchemas as de,WorkflowSubjects as fe,WorkflowSubjects as k,createStepCancelSubject as pe,createWorkflowDelegateResultFinalizerNamespace as me,walkWorkflowDefinition as he}from"@makaio/framework/contracts";import{NoHandlerError as ge}from"@makaio/framework/bus";import{index as A,primaryKey as _e,uniqueIndex as ve}from"drizzle-orm/sqlite-core";import{index as j,primaryKey as ye,uniqueIndex as be}from"drizzle-orm/pg-core";import{defineDualTable as M}from"@makaio/framework/storage/drizzle";import{sql as xe}from"drizzle-orm";import{createStorageNamespaceDefinition as Se}from"@makaio/framework/storage";import{evaluateSync as N,resolveTemplate as P}from"@makaio/framework/expression";import*as Ce from"node:os";const we=M(`workflow_finalizations`,e=>({executionId:e.text(`execution_id`).primaryKey().references(()=>F.columnPair(`id`),{onDelete:`cascade`}),workflowId:e.text(`workflow_id`).notNull(),finalizerId:e.text(`finalizer_id`).notNull(),transitionKey:e.text(`transition_key`).notNull(),claimToken:e.text(`claim_token`).notNull(),intent:e.jsonCol(`intent`).notNull(),state:e.textEnum(`state`,{enum:[`claimed`,`acknowledged`,`failed`]}).notNull(),claimedAt:e.epochMs(`claimed_at`).notNull(),settledAt:e.epochMs(`settled_at`),failure:e.text(`failure`),publishedAt:e.epochMs(`published_at`)}),{sqlite:e=>[ve(`uniq_workflow_finalizations_transition`).on(e.transitionKey),A(`idx_workflow_finalizations_recovery`).on(e.finalizerId,e.state)],postgres:e=>[be(`uniq_workflow_finalizations_transition`).on(e.transitionKey),j(`idx_workflow_finalizations_recovery`).on(e.finalizerId,e.state)]}),Te=we.sqlite;we.postgres;function Ee(e){return{scopeType:e.textEnum(`scope_type`,{enum:[`global`,`workspace`,`session`,`external`]}).notNull().$type(),scopeKind:e.text(`scope_kind`).notNull().default(``),scopeId:e.text(`scope_id`).notNull().default(``)}}const De=M(`workflow_definitions`,e=>({id:e.text(`id`).primaryKey(),name:e.text(`name`).notNull(),description:e.text(`description`),root:e.jsonCol(`root`).notNull(),inputSchema:e.jsonCol(`input_schema`),configSchema:e.jsonCol(`config_schema`),outputSchema:e.jsonCol(`output_schema`),state:e.jsonCol(`state`),artifact:e.jsonCol(`artifact`),triggers:e.jsonCol(`triggers`),...Ee(e),createdAt:e.epochMs(`created_at`).notNull(),updatedAt:e.epochMs(`updated_at`).notNull(),canvasLayout:e.jsonCol(`canvas_layout`),source:e.jsonCol(`source`),executableSource:e.jsonCol(`executable_source`),requirements:e.jsonCol(`requirements`),successFinalizerId:e.text(`success_finalizer_id`)}),{sqlite:e=>[ve(`uniq_workflow_definitions_name_scope`).on(e.name,e.scopeType,e.scopeKind,e.scopeId),A(`idx_workflow_definitions_scope`).on(e.scopeType,e.scopeKind,e.scopeId)],postgres:e=>[be(`uniq_workflow_definitions_name_scope`).on(e.name,e.scopeType,e.scopeKind,e.scopeId),j(`idx_workflow_definitions_scope`).on(e.scopeType,e.scopeKind,e.scopeId)]}),Oe=De.sqlite,F=M(`workflow_executions`,e=>({id:e.text(`id`).primaryKey(),workflowId:e.text(`workflow_id`).notNull(),coordinatorSessionId:e.text(`coordinator_session_id`),status:e.textEnum(`status`,{enum:[`pending`,`running`,`paused`,`finalizing`,`completed`,`failed`,`cancelled`]}).notNull(),inputs:e.jsonCol(`inputs`),error:e.text(`error`),reason:e.text(`reason`),startedAt:e.epochMs(`started_at`).notNull(),completedAt:e.epochMs(`completed_at`),externalSettlementFingerprint:e.text(`external_settlement_fingerprint`),externalRegistrationFrameId:e.text(`external_registration_frame_id`),triggerPayload:e.jsonCol(`trigger_payload`),artifactKind:e.text(`artifact_kind`),artifactId:e.text(`artifact_id`),...Ee(e)}),{sqlite:e=>[A(`idx_workflow_executions_status`).on(e.status),A(`idx_workflow_executions_scope_started`).on(e.scopeType,e.scopeKind,e.scopeId,e.startedAt),A(`idx_workflow_executions_workflow_started`).on(e.workflowId,e.startedAt),A(`idx_workflow_executions_artifact`).on(e.artifactKind,e.artifactId,e.startedAt)],postgres:e=>[j(`idx_workflow_executions_status`).on(e.status),j(`idx_workflow_executions_scope_started`).on(e.scopeType,e.scopeKind,e.scopeId,e.startedAt),j(`idx_workflow_executions_workflow_started`).on(e.workflowId,e.startedAt),j(`idx_workflow_executions_artifact`).on(e.artifactKind,e.artifactId,e.startedAt)]}),ke=F.sqlite,Ae=M(`workflow_execution_frames`,e=>({frameId:e.text(`frame_id`).primaryKey(),executionId:e.text(`execution_id`).notNull().references(()=>F.columnPair(`id`),{onDelete:`cascade`}),nodeId:e.text(`node_id`).notNull(),nodeType:e.text(`node_type`).notNull().$type(),path:e.jsonCol(`path`).notNull(),parentFrameId:e.text(`parent_frame_id`),status:e.text(`status`).notNull().default(`pending`).$type(),attempt:e.int4(`attempt`).notNull().default(0),iteration:e.int4(`iteration`),branchKey:e.text(`branch_key`),output:e.jsonCol(`output`),outputPresent:e.bool(`output_present`).notNull().default(!1),error:e.text(`error`),startedAt:e.epochMs(`started_at`),completedAt:e.epochMs(`completed_at`)}),{sqlite:e=>[A(`idx_workflow_execution_frames_execution`).on(e.executionId),A(`idx_workflow_execution_frames_parent`).on(e.parentFrameId)],postgres:e=>[j(`idx_workflow_execution_frames_execution`).on(e.executionId),j(`idx_workflow_execution_frames_parent`).on(e.parentFrameId)]}),je=Ae.sqlite,Me=M(`workflow_gate_instances`,e=>({id:e.text(`id`).primaryKey(),executionId:e.text(`execution_id`).notNull().references(()=>F.columnPair(`id`),{onDelete:`cascade`}),nodeId:e.text(`node_id`).notNull(),frameId:e.text(`frame_id`).notNull(),schema:e.jsonCol(`schema`).notNull(),prompt:e.text(`prompt`),status:e.text(`status`).notNull().default(`waiting`).$type(),autoAction:e.textEnum(`auto_action`,{enum:[`approve`,`reject`]}).notNull().default(`reject`),timeoutMs:e.int4(`timeout_ms`),resumeData:e.jsonCol(`resume_data`),reason:e.text(`reason`),resumeDataPresent:e.bool(`resume_data_present`).notNull().default(!1),createdAt:e.epochMs(`created_at`).notNull(),resolvedAt:e.epochMs(`resolved_at`)}),{sqlite:e=>[A(`idx_workflow_gate_instances_execution`).on(e.executionId),A(`idx_workflow_gate_instances_frame`).on(e.frameId)],postgres:e=>[j(`idx_workflow_gate_instances_execution`).on(e.executionId),j(`idx_workflow_gate_instances_frame`).on(e.frameId)]}),Ne=Me.sqlite,Pe=M(`workflow_step_spans`,e=>({executionId:e.text(`execution_id`).notNull().references(()=>F.columnPair(`id`),{onDelete:`cascade`}),frameId:e.text(`frame_id`).notNull(),stepId:e.text(`step_id`).notNull(),stepType:e.text(`step_type`).notNull(),status:e.text(`status`).$type().notNull(),startedAt:e.epochMs(`started_at`),completedAt:e.epochMs(`completed_at`),durationMs:e.int4(`duration_ms`),inputTokens:e.int4(`input_tokens`),outputTokens:e.int4(`output_tokens`),estimatedCost:e.float8(`estimated_cost`),toolCallCount:e.int4(`tool_call_count`),input:e.text(`input`),output:e.text(`output`)}),{sqlite:e=>[_e({columns:[e.executionId,e.frameId]}),A(`idx_workflow_step_spans_status`).on(e.status)],postgres:e=>[ye({columns:[e.executionId,e.frameId]}),j(`idx_workflow_step_spans_status`).on(e.status)]}),Fe=Pe.sqlite,Ie=M(`workflow_execution_links`,e=>({sourceExecutionId:e.text(`source_execution_id`).notNull().references(()=>F.columnPair(`id`),{onDelete:`cascade`}),targetExecutionId:e.text(`target_execution_id`).notNull().references(()=>F.columnPair(`id`),{onDelete:`cascade`}),linkType:e.text(`link_type`).$type().notNull(),metadata:e.jsonCol(`metadata`)}),{sqlite:e=>[_e({columns:[e.sourceExecutionId,e.targetExecutionId]}),A(`idx_workflow_execution_links_target`).on(e.targetExecutionId)],postgres:e=>[ye({columns:[e.sourceExecutionId,e.targetExecutionId]}),j(`idx_workflow_execution_links_target`).on(e.targetExecutionId)]}),Le=Ie.sqlite,Re=M(`workflow_run_contexts`,e=>({executionId:e.text(`execution_id`).primaryKey().references(()=>F.columnPair(`id`),{onDelete:`cascade`}),workflowId:e.text(`workflow_id`).notNull(),coordinatorSessionId:e.text(`coordinator_session_id`).notNull(),sourceKind:e.text(`source_kind`).notNull(),sourcePath:e.text(`source_path`),sourceFilename:e.text(`source_filename`),sourceCode:e.text(`source_code`),definitionSnapshot:e.jsonCol(`definition_snapshot`),workerManifest:e.jsonCol(`worker_manifest`).notNull(),inputs:e.jsonCol(`inputs`),config:e.jsonCol(`config`).notNull().default(xe`'{}'`),triggerPayload:e.jsonCol(`trigger_payload`).notNull(),triggerMode:e.textEnum(`trigger_mode`,{enum:[`immediate`,`await-trigger`]}).notNull().default(`immediate`).$type(),artifactRef:e.jsonCol(`artifact_ref`),dispatchMetadata:e.jsonCol(`dispatch_metadata`),scopeType:e.textEnum(`scope_type`,{enum:[`global`,`workspace`,`session`,`external`]}).notNull().default(`global`).$type(),scopeKind:e.text(`scope_kind`).notNull().default(``),scopeId:e.text(`scope_id`).notNull().default(``),cancelSubject:e.text(`cancel_subject`).notNull(),env:e.jsonCol(`env`).notNull(),createdAt:e.epochMs(`created_at`).notNull(),suspensionStrategy:e.text(`suspension_strategy`).$type(),terminalAuthority:e.text(`terminal_authority`).$type(),materializationSpec:e.jsonCol(`materialization_spec`)}),{sqlite:e=>[A(`idx_run_contexts_workflow`).on(e.workflowId)],postgres:e=>[j(`idx_run_contexts_workflow`).on(e.workflowId)]}),ze=Re.sqlite,Be=M(`worklog_summaries`,e=>({executionId:e.text(`execution_id`).primaryKey().references(()=>F.columnPair(`id`),{onDelete:`cascade`}),workflowId:e.text(`workflow_id`).notNull(),workflowName:e.text(`workflow_name`),status:e.textEnum(`status`,{enum:[`pending`,`running`,`paused`,`finalizing`,`completed`,`failed`,`cancelled`]}).notNull(),startedAt:e.epochMs(`started_at`).notNull(),completedAt:e.epochMs(`completed_at`),durationMs:e.int4(`duration_ms`),totalInputTokens:e.int4(`total_input_tokens`),totalOutputTokens:e.int4(`total_output_tokens`),totalEstimatedCost:e.float8(`total_estimated_cost`),error:e.text(`error`),failedNodeId:e.text(`failed_node_id`)}),{sqlite:e=>[A(`idx_worklog_summaries_workflow_started`).on(e.workflowId,e.startedAt),A(`idx_worklog_summaries_status`).on(e.status)],postgres:e=>[j(`idx_worklog_summaries_workflow_started`).on(e.workflowId,e.startedAt),j(`idx_worklog_summaries_status`).on(e.status)]}),Ve=Be.sqlite,He=M(`worklog_frame_entries`,e=>({frameId:e.text(`frame_id`).primaryKey(),executionId:e.text(`execution_id`).notNull().references(()=>F.columnPair(`id`),{onDelete:`cascade`}),nodeId:e.text(`node_id`).notNull(),nodeType:e.text(`node_type`).notNull().$type(),path:e.jsonCol(`path`).notNull(),status:e.textEnum(`status`,{enum:[`pending`,`running`,`waiting`,`completed`,`failed`,`skipped`,`cancelled`]}).notNull(),attempt:e.int4(`attempt`).notNull().default(0),iteration:e.int4(`iteration`),branchKey:e.text(`branch_key`),startedAt:e.epochMs(`started_at`),completedAt:e.epochMs(`completed_at`),durationMs:e.int4(`duration_ms`),inputTokens:e.int4(`input_tokens`),outputTokens:e.int4(`output_tokens`),estimatedCost:e.float8(`estimated_cost`),error:e.text(`error`)}),{sqlite:e=>[A(`idx_worklog_frame_entries_execution`).on(e.executionId)],postgres:e=>[j(`idx_worklog_frame_entries_execution`).on(e.executionId)]}),Ue=He.sqlite,We=M(`worklog_artifact_writes`,e=>({id:e.text(`id`).primaryKey(),executionId:e.text(`execution_id`).notNull().references(()=>F.columnPair(`id`),{onDelete:`cascade`}),frameId:e.text(`frame_id`).notNull(),nodeId:e.text(`node_id`).notNull(),artifact:e.jsonCol(`artifact`).notNull(),revision:e.text(`revision`),writtenAt:e.epochMs(`written_at`).notNull()}),{sqlite:e=>[A(`idx_worklog_artifact_writes_execution`).on(e.executionId)],postgres:e=>[j(`idx_worklog_artifact_writes_execution`).on(e.executionId)]}),Ge=We.sqlite,Ke=M(`worklog_gate_events`,e=>({id:e.text(`id`).primaryKey(),executionId:e.text(`execution_id`).notNull().references(()=>F.columnPair(`id`),{onDelete:`cascade`}),nodeId:e.text(`node_id`).notNull(),frameId:e.text(`frame_id`).notNull(),status:e.textEnum(`status`,{enum:[`waiting`,`resumed`,`rejected`,`timed-out`,`cancelled`]}).notNull().$type(),prompt:e.text(`prompt`),openedAt:e.epochMs(`opened_at`).notNull(),resolvedAt:e.epochMs(`resolved_at`),resumeData:e.jsonCol(`resume_data`)}),{sqlite:e=>[A(`idx_worklog_gate_events_execution`).on(e.executionId),A(`idx_worklog_gate_events_status`).on(e.status)],postgres:e=>[j(`idx_worklog_gate_events_execution`).on(e.executionId),j(`idx_worklog_gate_events_status`).on(e.status)]}),qe=Ke.sqlite,Je=M(`workflow_execution_state`,e=>({executionId:e.text(`execution_id`).primaryKey().references(()=>F.columnPair(`id`),{onDelete:`cascade`}),sequence:e.int4(`sequence`).notNull().default(0),value:e.jsonCol(`value`).notNull(),updatedAt:e.epochMs(`updated_at`).notNull()})),Ye=Je.sqlite,Xe=M(`workflow_execution_state_events`,e=>({executionId:e.text(`execution_id`).notNull().references(()=>F.columnPair(`id`),{onDelete:`cascade`}),sequence:e.int4(`sequence`).notNull(),patch:e.jsonCol(`patch`).notNull(),value:e.jsonCol(`value`).notNull(),createdAt:e.epochMs(`created_at`).notNull()}),{sqlite:e=>[_e({columns:[e.executionId,e.sequence]})],postgres:e=>[ye({columns:[e.executionId,e.sequence]})]}),Ze=Xe.sqlite,Qe=n.object({executionId:n.string().min(1),status:v.optional(),error:n.string().nullable().optional(),reason:n.string().nullable().optional(),completedAt:n.number().nullable().optional()}),$e=n.enum([`completed`,`failed`,`cancelled`]),et=ne.extend({status:n.literal(`running`),startedAt:n.number().int().nonnegative()}),tt=ne.extend({status:$e,startedAt:n.number().int().nonnegative(),completedAt:n.number().int().nonnegative(),durationMs:n.number().int().nonnegative()}),nt=Se(`workflow`,{schemas:{get:{request:n.object({id:n.string()}),response:n.object({workflow:ie.nullable()})},set:{request:n.object({workflow:ie}),response:n.object({id:n.string()})},delete:{request:n.object({id:n.string()}),response:n.object({deleted:n.boolean()})},list:{request:le,response:n.object({workflows:n.array(ie)})},getExecution:{request:n.object({executionId:n.string()}),response:n.object({execution:T.nullable()})},setExecution:{request:n.object({execution:T}),response:n.object({id:n.string()})},setExecutionStart:{request:n.object({execution:T,runContext:O,initialState:S.optional(),executionLinks:n.array(g).optional()}),response:n.object({id:n.string(),executionId:n.string()})},setExternalExecutionStart:u({request:n.object({execution:T.extend({status:n.literal(`running`)}),frame:et.optional()}),response:n.object({executionId:n.string(),frameId:n.string().optional()})}),settleExternalExecution:u({request:n.object({executionId:n.string().min(1),status:$e,error:n.string().min(1).optional(),reason:n.string().min(1).optional(),completedAt:n.number().int().nonnegative().optional(),frame:tt.optional()}),response:n.object({success:n.boolean()})}),updateExecution:{request:Qe,response:n.object({success:n.boolean()})},pauseRunningExecution:u({request:n.object({executionId:n.string().min(1)}),response:n.object({paused:n.boolean()})}),claimFinalization:u({request:n.object({claim:E}),response:n.object({claimed:n.boolean()})}),listClaimedFinalizations:u({request:n.object({finalizerId:se}),response:n.object({claims:n.array(E)})}),listUnpublishedFinalizations:u({request:n.object({finalizerId:se}),response:n.object({claims:n.array(E)})}),publishFinalization:u({request:n.object({claim:E}),response:n.object({})}),acknowledgeFinalization:u({request:n.object({executionId:n.string().min(1),claimToken:n.string().min(1),settledAt:n.number().int().nonnegative()}),response:n.object({acknowledged:n.boolean()})}),failFinalization:u({request:n.object({executionId:n.string().min(1),claimToken:n.string().min(1),error:n.string().min(1),settledAt:n.number().int().nonnegative()}),response:n.object({failed:n.boolean()})}),cancelPausedExecution:{request:n.object({executionId:n.string().min(1),completedAt:n.number(),reason:n.string().optional()}),response:n.object({cancelled:n.boolean(),gates:n.array(D.extend({status:n.literal(`cancelled`)}))})},listExecutions:{request:_,response:n.object({executions:n.array(T)})},listExecutionsByArtifactRefs:{request:y,response:n.object({executionsByRef:n.record(n.string(),n.array(T))})},setFrame:{request:n.object({executionId:n.string().min(1),frame:ce}),response:n.object({frameId:n.string()})},getFrame:{request:n.object({frameId:n.string().min(1)}),response:n.object({frame:ce.nullable()})},listFrames:{request:n.object({executionId:n.string().min(1)}),response:n.object({frames:n.array(ce)})},setGateInstance:{request:n.object({gate:D}),response:n.object({id:n.string()})},resolveWaitingGateInstance:{request:n.object({gate:D.extend({status:n.enum([`resumed`,`rejected`])})}),response:n.object({accepted:n.boolean()})},restorePausedGateResumeState:{request:n.object({execution:T.extend({status:n.literal(`paused`)}),gate:D.extend({status:n.literal(`waiting`)})}),response:n.object({executionId:n.string(),gateId:n.string()})},getGateInstance:{request:n.object({executionId:n.string().min(1),nodeId:n.string().min(1),frameId:n.string().min(1).optional()}),response:n.object({gate:D.nullable()})},listGateInstances:{request:b,response:n.object({gates:n.array(D)})},listPausedGateTimeouts:u({request:n.object({}),response:n.object({gates:n.array(D)})}),setSpan:{request:n.object({span:ee}),response:n.object({id:n.string()})},listSpans:{request:n.object({executionId:n.string()}),response:n.object({spans:n.array(ee)})},setExecutionLink:{request:n.object({link:g}),response:n.object({id:n.string()})},listExecutionLinks:{request:h,response:n.object({links:n.array(g)})},setRunContext:u({request:n.object({runContext:O,initialState:S.optional()}),response:n.object({executionId:n.string()})}),getRunContext:u({request:n.object({executionId:n.string().min(1)}),response:n.object({runContext:O.nullable()})}),initializeState:u({request:n.object({executionId:n.string().min(1),initialValue:S}),response:n.object({})}),getState:u({request:n.object({executionId:n.string().min(1)}),response:n.object({state:n.object({executionId:n.string().min(1),sequence:n.number().int().nonnegative(),value:S}).nullable()})}),patchState:u({request:n.object({executionId:n.string().min(1),expectedSequence:n.number().int().nonnegative(),nextValue:S}),response:n.object({executionId:n.string().min(1),sequence:n.number().int().positive(),patch:n.array(x),value:S})})},extensions:{drizzle:{workflowDefinitions:Oe,workflowExecutions:ke,workflowExecutionFrames:je,workflowGateInstances:Ne,workflowStepSpans:Fe,workflowExecutionLinks:Le,workflowRunContexts:ze,worklogSummaries:Ve,worklogFrameEntries:Ue,worklogArtifactWrites:Ge,worklogGateEvents:qe,workflowExecutionState:Ye,workflowExecutionStateEvents:Ze,workflowFinalizations:Te}}}),I=nt.subjects;var rt=e(t(),1);function it(e){let t=e.transport?.peer;if(t?.authenticated!==!0||t.kind!==`workflow-execution-attempt`)return null;let n=t.id,r=t.claims?.executionId;return typeof n!=`string`||n.length===0||typeof r!=`string`||r.length===0?null:{executionAttemptId:n,executionId:r}}function at(e,t){return e.origin.local?!0:it(e)?.executionId===t}function ot(e,t){let n=[];return st(n,``,e,t),n}function st(e,t,n,r){if(Array.isArray(n)&&Array.isArray(r)){lt(e,t,n,r);return}if(ut(n)&&ut(r)){ct(e,t,n,r);return}pt(n,r)||e.push({op:`replace`,path:t,value:r})}function ct(e,t,n,r){let i=Array.from(new Set([...Object.keys(n),...Object.keys(r)])).sort();for(let a of i){let i=dt(n,a),o=dt(r,a),s=`${t}/${ft(a)}`;if(!i&&o){e.push({op:`add`,path:s,value:r[a]});continue}if(i&&!o){e.push({op:`remove`,path:s});continue}st(e,s,n[a],r[a])}}function lt(e,t,n,r){let i=Math.min(n.length,r.length);for(let a=0;a<i;a++)st(e,`${t}/${String(a)}`,n[a],r[a]);for(let i=n.length-1;i>=r.length;i--)e.push({op:`remove`,path:`${t}/${String(i)}`});for(let i=n.length;i<r.length;i++)e.push({op:`add`,path:`${t}/${String(i)}`,value:r[i]})}function ut(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function dt(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function ft(e){return e.replaceAll(`~`,`~0`).replaceAll(`/`,`~1`)}function pt(e,t){return Object.is(e,t)}const mt={stepTimeoutMs:300*1e3,stepCooldownMs:500,busAuth:{kind:`none`},platformDefaults:{cwd:process.cwd()},cancelTimeoutMs:1e4},ht=new rt.default({allErrors:!0,strict:!1}),gt=new Map,_t=new Map;function vt(e){let t=e.$id;return typeof t==`string`?t:void 0}function yt(e,t,n){let r=vt(t);return r===void 0?`workflow:${e}:${n}`:`schema-id:${r}`}function bt(e,t){try{return JSON.stringify(xt(t))}catch(t){let n=t instanceof Error?t.message:String(t);throw Error(`Workflow '${e}' state schema is invalid: ${n}`)}}function xt(e){if(Array.isArray(e))return e.map(xt);if(typeof e!=`object`||!e)return e;let t=e;return Object.fromEntries(Object.keys(t).sort().map(e=>[e,xt(t[e])]))}function St(e,t,n){let r=_t.get(t);if(r!==void 0&&r!==n)throw Error(`Workflow '${e}' state schema reuses JSON Schema $id '${t}' with different content`);return ht.getSchema(t)}function Ct(e){return e==null||e.length===0?`schema validation failed`:e.map(e=>`${e.instancePath.length>0?e.instancePath:`<root>`} ${e.message??`is invalid`}`).join(`; `)}function wt(e,t){let n=bt(e,t),r=yt(e,t,n),i=gt.get(r);if(i!==void 0)return i;let a=vt(t);if(a!==void 0){let t=St(e,a,n);if(t!==void 0)return gt.set(r,t),t}try{let e=ht.compile(t);return gt.set(r,e),a!==void 0&&_t.set(a,n),e}catch(t){let n=t instanceof Error?t.message:String(t);throw Error(`Workflow '${e}' state schema is invalid: ${n}`)}}function Tt(e,t,n){if(e.state===void 0)return;let r=wt(e.id,e.state.schema);if(r(t))return;let i=n===`initial`?`initial state`:`next state`;throw Error(`Workflow '${e.id}' ${i} does not match workflow state schema: ${Ct(r.errors)}`)}function Et(e){if(e.state===void 0)return;let t=e.state.initial===void 0?{}:e.state.initial;return Tt(e,t,`initial`),t}function Dt(e){return`${e}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function Ot(e,t,n){let r=e?P(e,n):t,i=s(t),c=s(a(r)?r:s(t,r)),u,d;try{u=l(i),d=l(c)}catch{return null}let f=o(process.platform===`win32`?u.toLowerCase():u,process.platform===`win32`?d.toLowerCase():d);return f===``||!f.startsWith(`..`)&&!a(f)?d:null}function kt(e){return e instanceof Error&&(`code`in e||`killed`in e)}function At(e){let t=e[0];return t===void 0||t.trim()===``?null:t}function jt(e){let{command:t,cwd:n,env:i,timeoutMs:a,signal:o}=e,s=At(t);if(s===null)return Promise.reject(Error(`Shell step command is empty`));let c=t.slice(1);return new Promise((e,t)=>{let l=null,u=!1,d=r(s,c,{cwd:n,env:{...process.env,...i},timeout:0,maxBuffer:10*1024*1024,shell:!1},(n,r,i)=>{n?t(Object.assign(n,{stdout:r,stderr:i,aborted:u})):e({stdout:r,stderr:i})}),f=()=>{d.exitCode===null&&(d.kill(`SIGTERM`),l=setTimeout(()=>{d.exitCode===null&&d.kill(`SIGKILL`)},5e3))},p=setTimeout(()=>{f()},a);if(d.on(`close`,()=>{clearTimeout(p),l!==null&&clearTimeout(l)}),o){let e=()=>{u=!0,f()};o.aborted?e():(o.addEventListener(`abort`,e,{once:!0}),d.on(`close`,()=>o.removeEventListener(`abort`,e)))}})}async function Mt(e){let{step:t,workspaceRoot:n,expressionContext:r,signal:i}=e,a=Ot(t.cwd,n,r);if(a===null)return{status:`failed`,error:`Shell step cwd '${t.cwd}' is outside workspace root '${n}'`};let o=t.command.map(e=>P(e,r));if(At(o)===null)return{status:`failed`,error:`Shell step command is empty`};let s=Object.fromEntries(Object.entries(t.env??{}).map(([e,t])=>[e,P(t,r)])),c=t.timeoutMs??3e5;try{let{stdout:e}=await jt({command:o,cwd:a,env:s,timeoutMs:c,signal:i});return{status:`completed`,stdout:e}}catch(e){if(!kt(e))return{status:`failed`,error:String(e)};let t=e.aborted===!0,n=!t&&(e.killed===!0||e.signal!=null);return{status:`failed`,error:t?`Command cancelled`:n?`Command timed out after ${c}ms`:e.stderr?.trim()||e.stdout?.trim()||e.message}}}async function Nt(e,t,n){if(!(await e.request(I.updateExecution,{executionId:t.id,status:n.status,error:n.error,reason:n.reason,completedAt:n.completedAt})).success)throw Error(`Workflow execution not found: ${t.id}`)}function Pt(e,t){return e===t||t===`completed`&&e===`finalizing`}async function Ft(e,t,n){let r=e.durableLifecycleTransitions.get(t)??Promise.resolve(),i=Promise.withResolvers(),a=r.catch(()=>void 0).then(()=>i.promise);e.durableLifecycleTransitions.set(t,a),await r.catch(()=>void 0);try{return await n()}finally{i.resolve(),e.durableLifecycleTransitions.get(t)===a&&e.durableLifecycleTransitions.delete(t)}}async function L(e,t,n,r,i){let a,o,s=!0,c=await Ft(e,t,async()=>{let i=await n(),c=Promise.withResolvers(),l=e.lifecyclePublications.get(t)??Promise.resolve();return s=!e.publishingLifecycleExecutions.has(t),o=l.catch(()=>void 0).then(async()=>{await c.promise,e.publishingLifecycleExecutions.add(t);try{await r(i)}finally{e.publishingLifecycleExecutions.delete(t)}}),e.lifecyclePublications.set(t,o),a=c.resolve,i});if(o!==void 0){let n=o;n.then(()=>{e.lifecyclePublications.get(t)===n&&e.lifecyclePublications.delete(t)},()=>{e.lifecyclePublications.get(t)===n&&e.lifecyclePublications.delete(t)})}let l;try{l=i?.(c)}finally{a?.()}return await l,s&&o!==void 0&&await o,c}async function It(e,t,n){if(!(await e.bus.request(t.finalizeSubject,n)).accepted){let r=`Workflow success finalizer "${t.finalizerId}" rejected transition ${n.transitionKey}`,i=Date.now(),{failed:a}=await e.bus.request(I.failFinalization,{executionId:n.executionId,claimToken:n.claimToken,error:r,settledAt:i});return}}async function Lt(e){for(let t of e.successFinalizers?.values()??[]){let{claims:n}=await e.bus.request(I.listClaimedFinalizations,{finalizerId:t.finalizerId});for(let r of n)await It(e,t,r);let{claims:r}=await e.bus.request(I.listUnpublishedFinalizations,{finalizerId:t.finalizerId});for(let t of r)await e.bus.request(I.publishFinalization,{claim:t})}}async function Rt(e,t,n,r){let i=e.resolveSuccessFinalizerId?.(n),a=i===void 0?void 0:e.successFinalizers?.get(i);if(i!==void 0&&a===void 0){await R(e,t,n,`Workflow success finalizer "${i}" is unavailable`);return}if(a!==void 0){let r=Date.now(),i={executionId:n,workflowId:t.workflowId,finalizerId:a.finalizerId,transitionKey:`${n}:terminal`,claimToken:crypto.randomUUID(),intent:{status:`completed`,completedAt:r},claimedAt:r};await L(e,n,async()=>(await e.bus.request(I.getExecution,{executionId:n})).execution?.status!==`running`||!(await e.bus.request(I.claimFinalization,{claim:i})).claimed?!1:(t.status=`finalizing`,e.activeExecutions.delete(n),!0),async t=>{t&&await It(e,a,i)});return}let o=Date.now();await L(e,n,async()=>(await e.bus.request(I.getExecution,{executionId:n})).execution?.status===`running`?(t.status=`completed`,t.completedAt=o,await Nt(e.bus,t,{status:t.status,completedAt:o}),e.activeExecutions.delete(n),!0):!1,async i=>{i&&await e.bus.emit(k.execution.completed,{executionId:n,workflowId:t.workflowId,totalDuration:o-r,completedAt:o})})}async function R(e,t,n,r,i){let a=Date.now();await L(e,n,async()=>(await e.bus.request(I.getExecution,{executionId:n})).execution?.status===`running`?(t.status=`failed`,t.error=r,t.completedAt=a,await Nt(e.bus,t,{status:t.status,error:r,completedAt:a}),e.activeExecutions.delete(n),!0):!1,async o=>{if(o){try{await i?.()}catch(e){console.error(`[WorkflowFinalizer] Failed to run failure pre-emit hook:`,e)}await e.bus.emit(k.execution.failed,{executionId:n,workflowId:t.workflowId,error:r,completedAt:a})}})}function zt(e,t,n){let{activeRunnerSteps:r,bus:i}=e,a=`${t}:`;for(let[e,o]of r){if(!e.startsWith(a))continue;let r=e.slice(a.length);o.controller.abort(),i.emit(pe(o.cancelSubject),{executionId:t,stepId:r,reason:n}).catch(t=>{console.error(`[WorkflowFinalizer] Failed to emit cancellation for ${e}:`,t)})}}async function Bt(e,t,n){let r=await e.bus.request(I.getExecution,{executionId:t});if(r.execution==null)return;let i=r.execution.workflowId;if(i===void 0)throw Error(`Paused execution ${t} is missing stored workflowId`);let a=Date.now(),{cancelled:o,gates:s}=await e.bus.request(I.cancelPausedExecution,{executionId:t,completedAt:a,reason:n});if(o)return e.activeExecutions.delete(t),{workflowId:i,completedAt:a,gates:s}}async function Vt(e,t,n,r=`converge`){let{execution:i}=await e.bus.request(I.getExecution,{executionId:t});if(i?.status!==`running`&&i?.status!==`paused`)return;if(r===`request`&&await e.requestAttemptCancellation?.(t,n),i?.status!==`running`)return Bt(e,t,n);i.status=`cancelled`,i.reason=n,i.completedAt=Date.now();let a=e.activeExecutions.get(t);a!==void 0&&Object.assign(a.execution,i);try{for(let[n,r]of e.shellAbortControllers)n.startsWith(`${t}:`)&&(r.abort(),e.shellAbortControllers.delete(n));zt(e,t,n),await Nt(e.bus,i,{status:i.status,reason:n,completedAt:i.completedAt})}finally{e.activeExecutions.delete(t)}return{workflowId:i.workflowId,completedAt:i.completedAt,gates:[]}}async function Ht(e,t,n){return Wt(e,t,n,`converge`)}async function Ut(e,t,n){return Wt(e,t,n,`request`)}async function Wt(e,t,n,r){return await L(e,t,()=>Vt(e,t,n,r),async r=>{if(r!==void 0){for(let n of r.gates)await e.bus.emit(k.gate.resolved,{executionId:t,stepId:n.nodeId,stepType:`gate`,frameId:n.frameId,source:`cancelled`}).catch(e=>{console.error(`[WorkflowFinalizer] Failed to emit cancelled gate resolution for ${n.frameId}:`,e)});await e.bus.emit(k.execution.cancelled,{executionId:t,workflowId:r.workflowId,reason:n,completedAt:r.completedAt})}},i=>{if(i!==void 0&&r===`request`)return e.notifyAttemptCancellation?.(t,n)})!==void 0}function Gt(e,t){return t}function Kt(e,t){return{...t}}function qt(e){return e.reason instanceof Error?e.reason.message:typeof e.reason==`string`&&e.reason.length>0?e.reason:te}async function Jt(e,t,n){let r=e.activeExecutions.get(t);if(!r||r.execution.status!==`running`)return;let i=e.buildFinalizerDeps(),{execution:a}=await i.bus.request(I.getExecution,{executionId:t});a?.status===`running`&&(r.execution=a,await Ht(i,t,qt(n))||console.error(`[WorkflowExecutor] Failed to persist runner cancellation for ${t}: execution not active`))}async function Yt(e,t){if(t.pausedAtGateId===void 0||t.pausedAtFrameId===void 0)throw Error(`Paused runner result for '${t.executionId}' is missing gate identity`);let n=e.buildFinalizerDeps();await L(n,t.executionId,async()=>{let{paused:r}=await n.bus.request(I.pauseRunningExecution,{executionId:t.executionId});if(!r){let{execution:e}=await n.bus.request(I.getExecution,{executionId:t.executionId});if(e?.status!==`paused`)return!1}let i=e.activeExecutions.get(t.executionId);return i!==void 0&&(i.execution.status=`paused`),e.activeExecutions.delete(t.executionId),r},async e=>{e&&await n.bus.emit(k.execution.paused,{executionId:t.executionId,workflowId:t.workflowId,pausedAtGateId:t.pausedAtGateId,pausedAtFrameId:t.pausedAtFrameId})})}async function Xt(e,t){let n=e.activeExecutions.get(t.executionId);if(!n||n.execution.status!==`running`)return;let r=e.buildFinalizerDeps(),{execution:i}=await r.bus.request(I.getExecution,{executionId:t.executionId});if(i?.status===`running`){if(n.execution=i,t.status===`completed`){await Rt(r,n.execution,t.executionId,n.execution.startedAt);return}if(t.status===`cancelled`){await Ht(r,t.executionId,t.reason??te);return}if(t.status===`failed`){await R(r,n.execution,t.executionId,t.error);return}}}async function Zt(e,t){let{result:n}=t;if(t.state===`authority-committed`){let{execution:t}=await e.buildFinalizerDeps().bus.request(I.getExecution,{executionId:n.executionId}),r=t?.status===`cancelled`&&n.status===`failed`&&e.workflowAbortControllers.get(n.executionId)?.signal.aborted===!0;if(!t||t.workflowId!==n.workflowId||!Pt(t.status,n.status)&&!r)throw Error(`Authority-committed runner result was not durably converged for '${n.executionId}'`);e.activeExecutions.delete(n.executionId);return}if(n.status===`paused`){await Yt(e,n);return}await Xt(e,n)}function Qt(e,t){return{source:{kind:`path`,path:t.filePath},executionId:t.executionId,workflowId:t.workflowId,triggerPayload:t.sanitizedTriggerPayload,triggerMode:t.triggerMode,inputs:t.boundInputs,config:t.boundConfig,...t.artifactRef===void 0?{}:{artifactRef:t.artifactRef},scope:t.scope,busUrl:e.config.busUrl,busAuth:e.config.busAuth,env:e.config.platformDefaults.env??{},coordinatorSessionId:t.coordinatorSessionId,cancelSubject:`workflow.${t.executionId}.cancel`,suspensionStrategy:`wait-in-process`,materializationSpec:t.materializationSpec}}function $t(e,t){let{executionId:n}=t,{workflowRunner:r,workflowAbortControllers:i,executionTasks:a,activeExecutions:o}=e,s=new AbortController;i.set(n,s);let c=Qt(e,t),l=nn(e,n,s.signal);return Promise.resolve().then(()=>r.run(c,s.signal,void 0,l)).then(async t=>{await Zt(e,t)}).catch(async t=>{if(s.signal.aborted){await Jt(e,n,s.signal).catch(e=>{console.error(`[WorkflowExecutor] Failed to persist file runner cancellation for ${n}:`,e)});return}let r=o.get(n);if(r){let i=t instanceof Error?t.message:String(t);await R(e.buildFinalizerDeps(),r.execution,n,i).catch(e=>{console.error(`[WorkflowExecutor] Failed to persist file runner boot failure for ${n}:`,e)})}}).finally(()=>{i.delete(n),a.delete(n),o.delete(n)})}function en(e,t){let{config:n}=e,r=t.definitionSnapshot??(t.source.kind===`definition`?t.workflow:void 0);return{source:t.source,...r===void 0?{}:{definition:r},executionId:t.executionId,workflowId:t.workflowId,triggerPayload:t.sanitizedTriggerPayload,inputs:t.boundInputs,config:t.boundConfig,...t.artifactRef===void 0?{}:{artifactRef:t.artifactRef},scope:t.scope,busUrl:n.busUrl,busAuth:n.busAuth,env:n.platformDefaults.env??{},coordinatorSessionId:t.coordinatorSessionId,cancelSubject:`workflow.${t.executionId}.cancel`,suspensionStrategy:t.suspensionStrategy??`wait-in-process`,...t.terminalAuthority!==void 0&&{terminalAuthority:t.terminalAuthority},...t.materializationSpec===void 0?{}:{materializationSpec:t.materializationSpec}}}function tn(e,t){let{executionId:n}=t,{workflowRunner:r,workflowAbortControllers:i,executionTasks:a,activeExecutions:o}=e,s=new AbortController;i.set(n,s);let c=en(e,t),l={...nn(e,n,s.signal),...t.dispatchMetadata===void 0?{}:{dispatchMetadata:t.dispatchMetadata}};return Promise.resolve().then(()=>r.run(c,s.signal,void 0,l)).then(async t=>{await Zt(e,t)}).catch(async t=>{if(s.signal.aborted){await Jt(e,n,s.signal).catch(e=>{console.error(`[WorkflowExecutor] Failed to persist runner cancellation for ${n}:`,e)});return}let r=o.get(n);if(r){let i=t instanceof Error?t.message:String(t);await R(e.buildFinalizerDeps(),r.execution,n,i).catch(e=>{console.error(`[WorkflowExecutor] Failed to persist runner boot failure for ${n}:`,e)})}}).finally(()=>{i.delete(n),a.delete(n),o.delete(n)})}function nn(e,t,n){return{withAttemptCreation:r=>{let i=e.buildFinalizerDeps();return Ft(i,t,async()=>{n.throwIfAborted();let{execution:e}=await i.bus.request(I.getExecution,{executionId:t});if(n.throwIfAborted(),e?.status!==`running`)throw Error(`Execution '${t}' no longer permits attempt creation`);return r()})}}}function rn(e,t,n={}){let r=an(e,n);return{executionId:e.executionId,workflowId:e.workflowId,workflow:t,...e.definitionSnapshot===void 0?{}:{definitionSnapshot:e.definitionSnapshot},source:e.source,coordinatorSessionId:e.coordinatorSessionId,sanitizedTriggerPayload:e.triggerPayload,boundInputs:e.inputs,boundConfig:e.config??{},...e.artifactRef===void 0?{}:{artifactRef:e.artifactRef},scope:e.scope,...e.materializationSpec===void 0?{}:{materializationSpec:e.materializationSpec},suspensionStrategy:e.suspensionStrategy,terminalAuthority:e.terminalAuthority??`worker`,...r===void 0?{}:{dispatchMetadata:r}}}function an(e,t){return t.resume===!0?{...e.dispatchMetadata,resume:!0}:e.dispatchMetadata}const on=/(?:^|[_-])(authorization|token|cookie|password|set[_-]?cookie|api[_-]?key|secret|credential|private[_-]?key|api[_-]?secret)(?:$|[_-])/i;function sn(e){if(!e)return;let t={remainingBytes:65536},n={},r=Object.entries(e).slice(0,100);for(let[e,i]of r){if(t.remainingBytes<=0)break;let r=cn(e,i,0,t);r!==void 0&&(n[e]=r)}return Object.keys(n).length>0?n:void 0}function cn(e,t,n,r){if(!(r.remainingBytes<=0||n>6)&&(r.remainingBytes-=e.length,!(r.remainingBytes<=0))){if(on.test(e))return r.remainingBytes-=10,`[REDACTED]`;if(t===null)return r.remainingBytes-=4,null;if(typeof t==`string`){let e=t.slice(0,2e3);return r.remainingBytes-=e.length,e}if(typeof t==`number`||typeof t==`boolean`)return r.remainingBytes-=String(t).length,t;if(Array.isArray(t)){let i=[];for(let a of t.slice(0,100)){if(r.remainingBytes<=0)break;let t=cn(e,a,n+1,r);t!==void 0&&i.push(t)}return i}if(typeof t==`object`){let e={},i=Object.entries(t).slice(0,100);for(let[t,a]of i){if(r.remainingBytes<=0)break;let i=cn(t,a,n+1,r);i!==void 0&&(e[t]=i)}return e}}}async function ln(e){let{authority:t,executionId:n,instruction:r,dispatch:i}=e,a=()=>t.createAttempt(n,r),o=await(e.withAttemptCreation?.(a)??a()),s=t.waitForOutcome(o.executionAttemptId);if(s===void 0)throw Error(`No outcome waiter for attempt '${o.executionAttemptId}': waiter was not installed during attempt creation`);s.catch(()=>void 0);try{await i(o.executionAttemptId)}catch(e){return un({authority:t,executionId:n,executionAttemptId:o.executionAttemptId,outcomePromise:s,dispatchError:e})}return s}async function un(e){let{authority:t,executionId:n,executionAttemptId:r,outcomePromise:i,dispatchError:a}=e,o;try{o=await t.abandonPendingAttempt(r,n)}catch(e){throw t.discardWaiter(r),AggregateError([a,e],`Dispatch acknowledgement failed and pending attempt '${r}' could not be abandoned`,{cause:a})}switch(o.kind){case`abandoned`:case`already-abandoned`:throw t.discardWaiter(r),a;case`allocated`:case`provisioning`:case`already-settled`:return i;case`fenced`:t.settleOutcome(r,{kind:`fenced`});try{return await i}catch(e){throw AggregateError([a,e],`Dispatch acknowledgement failed after attempt '${r}' was fenced`,{cause:a})}}}const dn=`workflow`,fn=`1`,z=O.shape,pn=n.object({executionId:z.executionId,workflowId:z.workflowId,source:z.source,definitionSnapshot:z.definitionSnapshot,inputs:z.inputs,config:z.config,scope:z.scope,triggerPayload:z.triggerPayload,triggerMode:z.triggerMode,artifactRef:z.artifactRef,coordinatorSessionId:z.coordinatorSessionId,cancelSubject:z.cancelSubject,materializationSpec:z.materializationSpec,terminalAuthority:n.literal(`authority`)}).strict().superRefine((e,t)=>{let n=O.safeParse({...e,createdAt:0});if(!n.success)for(let e of n.error.issues)t.addIssue({code:`custom`,path:e.path,message:e.message});e.source.kind===`path`&&(e.source.path.includes(`\\`)||/^[A-Za-z]:/.test(e.source.path)||e.source.path.split(`/`).includes(`..`))&&t.addIssue({code:`custom`,path:[`source`,`path`],message:`Workflow source must stay within its executable root`}),e.source.kind===`definition`&&e.source.workflowId!==e.workflowId&&t.addIssue({code:`custom`,path:[`source`],message:`Workflow source identity does not match the invocation`}),e.definitionSnapshot!==void 0&&e.definitionSnapshot.id!==e.workflowId&&t.addIssue({code:`custom`,path:[`definitionSnapshot`],message:`Workflow definition identity does not match the invocation`})});function mn(e,t){if(t===void 0&&e.source.kind===`path`)throw Error(`Path-backed workflow instructions require a portable run context`);if(t!==void 0&&(t.executionId!==e.executionId||t.workflowId!==e.workflowId))throw Error(`Workflow run context does not belong to the dispatched execution`);let n=t??e,r=t===void 0?e.definition:t.definitionSnapshot;return pn.parse({executionId:n.executionId,workflowId:n.workflowId,source:n.source,...r===void 0?{}:{definitionSnapshot:r},inputs:n.inputs,...n.config===void 0?{}:{config:n.config},scope:n.scope,triggerPayload:n.triggerPayload,...n.triggerMode===void 0?{}:{triggerMode:n.triggerMode},...n.artifactRef===void 0?{}:{artifactRef:n.artifactRef},coordinatorSessionId:n.coordinatorSessionId,cancelSubject:n.cancelSubject,...n.materializationSpec===void 0?{}:{materializationSpec:n.materializationSpec},terminalAuthority:`authority`})}function hn(e){let t=mn(e.config,e.runContext),n=JSON.parse(JSON.stringify(t));return p.parse({id:e.id,revision:e.revision,workload:{kind:dn,version:`1`,input:n},...e.workspace===void 0?{}:{workspace:e.workspace},preservation:e.preservation})}function gn(e){if(e.workload.kind!==`workflow`||e.workload.version!==`1`)throw Error(`Instruction does not target the supported workflow workload adapter`);return pn.parse(e.workload.input)}const _n=m.transform((e,t)=>e.kind===`technical-failure`||e.kind===`cancelled`?e:(t.addIssue({code:`custom`,message:`Expected a runtime outcome, not an opaque workload result`}),n.NEVER)),vn=n.union([ue,_n]),yn={parse:e=>vn.parse(e),serialize:e=>JSON.stringify(e)};function bn(e){let t=m.parse(e.outcome);if(t.kind===`technical-failure`||t.kind===`cancelled`)return t;let n=gn(e.instruction),r=ue.parse(t.result);if(r.executionId!==n.executionId||r.workflowId!==n.workflowId)throw Error(`Workflow result identity does not match the frozen instruction`);return r}function xn(e,t){if(`kind`in e)return e.kind===`cancelled`?{executionId:t.executionId,workflowId:t.workflowId,status:`cancelled`,...e.reason===void 0?{}:{reason:e.reason}}:{executionId:t.executionId,workflowId:t.workflowId,status:`failed`,error:`${e.stage}: ${e.message}`};if(e.executionId!==t.executionId||e.workflowId!==t.workflowId)throw Error(`Committed workflow result does not match its owner identity`);return ue.parse(e)}function Sn(e){return e===void 0?!1:(e.customCapabilities??[]).length>0||e.persistentStorage!==void 0||e.maxRuntimeMs!==void 0||e.recoverableAllocation!==void 0||e.materializationModes!==void 0&&e.materializationModes.length>0}function Cn(e){let{bus:t,requirements:n,dispatchMetadata:r,authority:i}=e;if(Sn(n))return{terminalAuthority:`authority`,run:async(e,a,o,s)=>{a.throwIfAborted();let l=e.source.kind===`path`?(await t.request(I.getRunContext,{executionId:e.executionId},{signal:a})).runContext:void 0;a.throwIfAborted();let u=hn({id:c(),revision:`1`,config:e,...l==null?{}:{runContext:l},preservation:{required:[]}});return{state:`authority-committed`,result:xn(await ln({authority:i,executionId:e.executionId,instruction:u,withAttemptCreation:s?.withAttemptCreation,dispatch:i=>t.request(re.dispatch,{executionAttemptId:i,config:{...e,terminalAuthority:`authority`},requirements:n,...o===void 0?{}:{manifest:o},...r!==void 0||s?.dispatchMetadata!==void 0?{metadata:{...r,...s?.dispatchMetadata}}:{}},{signal:a})}),e)}}}}function wn(e,t){let n=(e.executionAttemptAuthority===void 0?void 0:Cn({bus:e.bus,requirements:t.workflow.requirements,dispatchMetadata:t.dispatchMetadata,authority:e.executionAttemptAuthority}))??e.workflowRunner;if(t.terminalAuthority!==void 0&&t.terminalAuthority!==(n?.terminalAuthority??`worker`))throw Error(`Selected workflow runner is incompatible with the persisted terminal authority`);return{runner:n}}function Tn(e,t,n=wn(e,t)){return n.runner===void 0?e.runExecution(t.executionId).finally(()=>{e.executionTasks.delete(t.executionId)}):tn(e.buildRunnerTaskDeps(n.runner),{...t,terminalAuthority:t.terminalAuthority??n.runner.terminalAuthority})}async function En(e,t,n,r){let i=Et(r);await e.request(I.setExecutionStart,{execution:t,runContext:n,initialState:i})}async function Dn(e,t){try{await e.emit(k.execution.started,{executionId:t.id,workflowId:t.workflowId,coordinatorSessionId:t.coordinatorSessionId,startedAt:t.startedAt,...t.artifactRef===void 0?{}:{artifactRef:t.artifactRef}})}catch(e){console.error(`[WorkflowExecutor] execution.started listener failed:`,e)}}async function On(e,t){await e.request(C.close,{sessionId:t}).catch(e=>{console.error(`[WorkflowExecutor] Failed to close coordinator session "${t}" after launch failure:`,e)})}function kn(e,t,n,r,i,a,o,s,c){let l={id:t,workflowId:n.id,coordinatorSessionId:r,status:`running`,inputs:i,config:a,startedAt:Date.now(),triggerPayload:o,...c.artifactRef===void 0?{}:{artifactRef:c.artifactRef},scope:s};return e.set(t,{execution:l,workflow:n,runContext:c,runtimeHandlers:new Map,runtimeLoopGates:new Map}),l}async function An(e,t,n,r,i){await e.request(I.setExecutionStart,{execution:t,runContext:n,...r===void 0?{}:{initialState:r},...i!==void 0&&i.length>0?{executionLinks:[...i]}:{}})}function jn(e,t){return e.executableSource??{kind:`definition`,workflowId:t}}function Mn(e,t){return e.kind===`definition`||t!==void 0}function Nn(e,t,n){if(!(t.kind===`definition`||e!==void 0))throw new ae(oe.NOT_EXECUTABLE,`Workflow source execution '${n}' requires a workflow runner.`)}async function Pn(e,t,n){if(t.source.kind===`path`){if(n!==void 0)return n;for(let n of e.materializationSpecResolvers){let e=await n.resolve({executionId:t.executionId,workflowId:t.workflowId,sourcePath:t.source.path,workspaceRoot:t.workspaceRoot});if(e!==void 0)return e}throw Error(`[WorkflowExecutor] path-backed execution requires a resolved materializationSpec`)}}async function Fn(e,t,n){let r=await Pn(e,t,n);return{source:t.source.kind===`path`&&r!==void 0?{kind:`path`,path:r.sourcePath}:t.source,materializationSpec:r}}async function In(e,t,n,r){return e.set(t,n),await r,t}async function Ln(e,t){let{workflow:n}=await e.request(I.get,{id:t});if(!n)throw Error(`Workflow not found: ${t}`);return n}async function Rn(e,t,n,r){let{sessionId:i}=await e.request(C.create,{parentSessionId:t,branchKind:`coordinator`,title:`Workflow: ${n}`,targetWorkingDirectory:r});return i}async function zn(e,t,n={}){let r=await Ln(e.bus,t);return Bn(e,t,{...n,workflow:r})}async function Bn(e,t,n){let{bus:r,activeExecutions:i,executionTasks:a}=e,{workflow:o,parentSessionId:s,triggerPayload:c,artifactRef:l,scopeOverride:u}=n,d=Dt(`wfx`),f=sn(c),p=Gt(o,n.input===void 0?{}:n.input),m=Kt(o,n.config??{}),h=u??o.scope,g=await e.resolveExecutionWorkspaceRoot(s),_=n.executionSource??jn(o,t),v=n.definitionSnapshot??o,y=wn(e,{workflow:o});Nn(y.runner,_,t);let{source:b,materializationSpec:x}=await Fn(e,{executionId:d,workflowId:t,source:_,workspaceRoot:g},n.materializationSpec),S=await Rn(r,s,o.name,g),C=!1;try{let s=e.buildRunContext({executionId:d,workflowId:t,coordinatorSessionId:S,source:b,...v===void 0?{}:{definitionSnapshot:v},inputs:p,config:m,scope:h,triggerPayload:f??{},triggerMode:`immediate`,terminalAuthority:y.runner?.terminalAuthority,...l===void 0?{}:{artifactRef:l},...x===void 0?{}:{materializationSpec:x}}),c=kn(i,d,o,S,p,m,f,h,s);await An(r,c,s,_.kind===`definition`?Et(o):void 0,n.executionLinks?.(d));let u=Dn(r,c),g=Tn(e,{executionId:d,workflowId:t,workflow:o,...Mn(_,n.definitionSnapshot)?{definitionSnapshot:v}:{},source:_,coordinatorSessionId:S,sanitizedTriggerPayload:f??{},boundInputs:p,boundConfig:m,scope:h,...l===void 0?{}:{artifactRef:l},suspensionStrategy:s.suspensionStrategy,...x===void 0?{}:{materializationSpec:x}},y);return C=!0,In(a,d,g,u)}catch(e){throw C||(i.delete(d),a.delete(d),await On(r,S)),e}}function Vn(e,t,n,r,i){e.set(t.id,{execution:t,workflow:{id:t.workflowId,name:n,scope:r,root:{id:`${t.workflowId}-root`,type:`sequence`,nodes:[]}},runContext:i,runtimeHandlers:new Map,runtimeLoopGates:new Map})}async function Hn(e,t,n,r){let{sessionId:i}=await e.request(C.create,{...t===void 0?{}:{parentSessionId:t},branchKind:`coordinator`,title:`Workflow: ${n}`,targetWorkingDirectory:r});return i}function Un(e){if(e===void 0)throw Error(`[WorkflowExecutor] startFileExecution called without a workflow runner`);return e}function Wn(e){if(e===void 0)throw Error(`[WorkflowExecutor] path-backed execution requires a resolved materializationSpec`);return e}async function Gn(e,t,n={}){let{bus:r,activeExecutions:i,executionTasks:a}=e,{artifactRef:o,parentSessionId:s,triggerPayload:c,scopeOverride:l}=n,u=n.triggerMode??`immediate`,d=Dt(`wfx`),f=sn(c),p=n.input===void 0?{}:n.input,m=n.config??{},h=l??{type:`global`},g=await e.resolveExecutionWorkspaceRoot(s),_=Un(e.workflowRunner),v=d,y=Wn(await Pn(e,{executionId:d,workflowId:v,source:{kind:`path`,path:t},workspaceRoot:g},n.materializationSpec)),b=await Hn(r,s,t,g),x={id:d,workflowId:v,coordinatorSessionId:b,status:`running`,inputs:p,config:m,startedAt:Date.now(),triggerPayload:f,...o===void 0?{}:{artifactRef:o},scope:h},S=!1;try{let s=e.buildRunContext({executionId:d,workflowId:v,coordinatorSessionId:b,source:{kind:`path`,path:y.sourcePath},inputs:p,config:m,scope:h,triggerPayload:f??{},triggerMode:u,terminalAuthority:_.terminalAuthority,...o===void 0?{}:{artifactRef:o},materializationSpec:y});await An(r,x,s,void 0,n.executionLinks?.(d)),Vn(i,x,t,h,s);let c=Dn(r,x),l=$t(e.buildRunnerTaskDeps(_),{executionId:d,workflowId:v,filePath:t,coordinatorSessionId:b,sanitizedTriggerPayload:f??{},triggerMode:u,boundInputs:p,boundConfig:m,...o===void 0?{}:{artifactRef:o},scope:h,materializationSpec:y});return S=!0,In(a,d,l,c)}catch(e){throw S||(i.delete(d),a.delete(d),await On(r,b)),e}}function Kn(e){let t={};for(let[n,r]of Object.entries(e))r.status===`completed`?t[n]={status:`completed`,output:r.output}:r.status===`skipped`&&(t[n]={status:`skipped`});return t}function B(e){let t={...e,input:e.inputs,steps:e.frames};return{...t,ctx:t}}function qn(e,t){let n=process.platform===`win32`?`win32`:process.platform===`darwin`?`darwin`:`linux`;return{repoPath:e??process.cwd(),makaioHome:t??process.env.MAKAIO_HOME??`${Ce.homedir()}/.makaio`,os:n,arch:process.arch}}function Jn(){return{context:qn(),env:{}}}function Yn(e){return{...e,path:[...e.path]}}function Xn(e){if(e===`station`||e===`delegate-agent`||e===`delegate-role`||e===`gate`)return e}function Zn(e,t){let n=Xn(t.nodeType);if(n===void 0||t.status!==`running`&&t.status!==`completed`&&t.status!==`failed`&&t.status!==`skipped`)return;let r=t.startedAt!==void 0&&t.completedAt!==void 0?Math.max(0,t.completedAt-t.startedAt):void 0;return{executionId:e,frameId:t.frameId,stepId:t.nodeId,stepType:n,status:t.status,...t.startedAt===void 0?{}:{startedAt:t.startedAt},...t.completedAt===void 0?{}:{completedAt:t.completedAt},...r===void 0?{}:{durationMs:r},...t.output===void 0?{}:{output:JSON.stringify(t.output)}}}var Qn=class e{executionId;workflowId;definition;execution;runtimeHandlers;bus;signal;frameRegistry;framePersistenceTasks=new Map;artifactBinding;constructor(e,t,n,r,i,a,o,s,c,l=Jn(),u={}){this.executionId=e,this.workflowId=t,this.definition=n,this.execution=r,this.runtimeHandlers=i,this.bus=a,this.signal=o,this.frameRegistry=s??new Map,this.artifactBinding=c,this.platformContext=l.context,this.env=l.env,this.suspensionStrategy=u.suspensionStrategy??`wait-in-process`,this.resumeFrames=u.resumeFrames,this.runtimeLoopGates=u.runtimeLoopGates??new Map}platformContext;env;suspensionStrategy;resumeFrames;runtimeLoopGates;withSignal(t){return new e(this.executionId,this.workflowId,this.definition,this.execution,this.runtimeHandlers,this.bus,t,this.frameRegistry,this.artifactBinding,{context:this.platformContext,env:this.env},{suspensionStrategy:this.suspensionStrategy,resumeFrames:this.resumeFrames,runtimeLoopGates:this.runtimeLoopGates})}buildExpressionContext(){return{inputs:this.execution.inputs,config:this.execution.config??{},trigger:this.execution.triggerPayload??{},frames:{},previousSteps:{}}}createFrame(e){let t=Dt(`frm`),n=[...e.path,t],r={frameId:t,nodeId:e.nodeId,nodeType:e.nodeType,path:n,parentFrameId:e.parentFrameId,status:`pending`,attempt:0,iteration:e.iteration,branchKey:e.branchKey};return this.frameRegistry.set(t,r),this.persistFrame(r).catch(()=>void 0),r}async persistFrame(e,t={}){let n=t.requireFrameStorage===!0||this.suspensionStrategy!==`wait-in-process`,r=Yn(e),i=Zn(this.executionId,r),a=(this.framePersistenceTasks.get(e.frameId)??Promise.resolve()).catch(()=>void 0).then(async()=>{n?await this.bus.request(I.setFrame,{executionId:this.executionId,frame:r}):await this.bus.requestOptional(I.setFrame,{executionId:this.executionId,frame:r}),i!==void 0&&await this.bus.requestOptional(I.setSpan,{span:i})}).catch(t=>{if(n)throw t;console.warn(`[RuntimeContext] Failed to persist frame ${e.frameId}:`,t)});this.framePersistenceTasks.set(e.frameId,a);try{await a}finally{this.framePersistenceTasks.get(e.frameId)===a&&this.framePersistenceTasks.delete(e.frameId)}}async updateFrame(e,t,n={}){let r=this.frameRegistry.get(e);if(!r)throw Error(`Frame not found: ${e}`);Object.assign(r,t),await this.persistFrame(r,n)}getFrame(e){return this.frameRegistry.get(e)}getFramesByNodeId(e){let t=[];for(let n of this.frameRegistry.values())n.nodeId===e&&t.push(n);return t.sort((e,t)=>(e.startedAt??0)-(t.startedAt??0))}async emitFrameStarted(e){try{await this.bus.emit(k.frame.started,{executionId:this.executionId,frameId:e.frameId,nodeId:e.nodeId,nodeType:e.nodeType,path:e.path,parentFrameId:e.parentFrameId,startedAt:e.startedAt})}catch(t){console.error(`[RuntimeContext] frame.started observer failed for ${e.frameId}:`,t)}}async emitFrameCompleted(e,t){try{await this.bus.emit(k.frame.completed,{executionId:this.executionId,frameId:e.frameId,nodeId:e.nodeId,output:e.output,duration:t,completedAt:e.completedAt})}catch(t){console.error(`[RuntimeContext] frame.completed observer failed for ${e.frameId}:`,t)}}async emitFrameFailed(e,t,n){try{await this.bus.emit(k.frame.failed,{executionId:this.executionId,frameId:e.frameId,nodeId:e.nodeId,error:t,duration:n,completedAt:e.completedAt})}catch(t){console.error(`[RuntimeContext] frame.failed observer failed for ${e.frameId}:`,t)}}};function $n(e){return{kind:`workflow-execution`,id:e,displayName:`Workflow Engine`}}function er(e,t,n){return{inputs:n.inputs,config:n.config??{},trigger:n.triggerPayload,scope:n.scope,env:n.env,execution:{id:t.id,workflowId:t.workflowId,scope:t.scope},workflow:{id:e.id,name:e.name,scope:e.scope}}}function tr(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function nr(e){if(e!=null){if(tr(e)&&typeof e.kind==`string`&&typeof e.id==`string`)return{kind:e.kind,id:e.id};throw Error(`Artifact resolve expression must return an object with string kind and id fields.`)}}function rr(e){if(e!==void 0){if(tr(e))return e;throw Error(`Artifact create expression must return an object.`)}}async function ir(e){let{bindingOptions:t,binding:n,existingArtifactRef:r,executionId:i,scope:a,initialData:o,bus:s}=e,c=null;if(r!==void 0){let e=await s.request(f.query,{kind:r.kind,ids:[r.id],currentOnly:!0});if(e.artifacts.length>0)c=e.artifacts[0];else return}else{if(o===void 0)throw Error(`Workflow artifact binding for '${n.kind}' requires an existing artifact reference or explicit initial data from its create expression.`);c=(await s.request(f.create,{kind:n.kind,schemaVersion:n.schemaVersion,scope:a??n.scope,data:o,relations:[],actor:$n(i)})).artifact}return{current:c,schemaVersion:n.schemaVersion,statusPath:t.statusPath,zodSchema:t.schema}}async function ar(e){let{definition:t,execution:n,runContext:r,zodSchema:i,bus:a}=e,o=t.artifact;if(o===void 0)return;let s=er(t,n,r),c=r.artifactRef??(o.resolve===void 0?void 0:nr(N(o.resolve,s))),l=c===void 0&&o.create!==void 0?rr(N(o.create,s)):void 0,u=await ir({bindingOptions:{kind:o.kind,schemaVersion:o.schemaVersion,scope:o.scope,...o.resolve===void 0?{}:{resolve:o.resolve},...o.create===void 0?{}:{create:o.create},...o.statusPath===void 0?{}:{statusPath:o.statusPath},...i===void 0?{}:{schema:i}},binding:o,existingArtifactRef:c,executionId:n.id,scope:o.scope,initialData:l,bus:a});if(u===void 0)throw Error(`Workflow artifact binding could not be resolved for the configured artifact reference.`);return u}const or=new WeakMap;function sr(e,t){let n=(or.get(e)??Promise.resolve()).catch(()=>void 0).then(t);return or.set(e,n.then(()=>void 0,()=>void 0)),n}function cr(e,t){switch(t.operation){case`set`:return t.data;case`merge`:return{...e,...t.data};case`append`:{let n={...e};for(let[r,i]of Object.entries(t.data)){let t=e[r];Array.isArray(t)&&Array.isArray(i)?n[r]=[...t,...i]:n[r]=i}return n}}}function lr(e,t,n){let[r,...i]=t;if(i.length===0)return{...e,[r]:n};let a=e[r]!==null&&typeof e[r]==`object`&&!Array.isArray(e[r])?e[r]:{};return{...e,[r]:lr(a,i,n)}}function ur(e,t,n){return lr(e,dr(t).slice(1).split(`/`).map(e=>e.replace(/~1/g,`/`).replace(/~0/g,`~`)),n)}function dr(e){if(!e.startsWith(`/`)&&e.split(`.`).some(e=>e.length===0))throw Error(`Status path must contain nonempty dot-separated segments`);let t=e.startsWith(`/`)?e:`/${e.split(`.`).map(e=>e.replace(/~/g,`~0`).replace(/\//g,`~1`)).join(`/`)}`;return d.revise.request.shape.statusPath.unwrap().parse(t)}function fr(e,t,n){if(n===`set`||n===`functional`)return[];let r=[];for(let n of Object.keys(t))e[n]!==t[n]&&r.push(`/${n}`);return r}async function pr(e,t){if(typeof t==`function`)return{nextData:await t(Object.freeze({...e})),operationLabel:`functional`,changedPaths:[]};let n=cr(e,t),r=fr(e,n,t.operation);return{nextData:n,operationLabel:t.operation,changedPaths:r}}function mr(e){let{executionId:t,frameId:n,bindingState:r,bus:i}=e,a=Object.freeze({...r.current.data}),o=async e=>sr(r,async()=>{let a=r.statusPath===void 0?void 0:dr(r.statusPath),o=r.current,{nextData:s,operationLabel:c,changedPaths:l}=await pr(o.data,e);if(r.zodSchema!==void 0){let e=r.zodSchema.safeParse(s);if(!e.success)throw Error(`Artifact data validation failed: ${e.error.message}`)}let u=await i.request(f.revise,{...a!==void 0&&{statusPath:a},previous:{refClass:`artifact`,kind:o.kind,id:o.id,revision:o.revision},revision:{kind:o.kind,schemaVersion:r.schemaVersion,scope:o.scope,data:s,relations:o.relations,actor:$n(t)}});r.current=u.artifact;let d=u.artifact.revision;return i.emit(fe.artifact.updated,{executionId:t,frameId:n,artifactRef:{kind:u.artifact.kind,id:u.artifact.id},paths:l,operation:c,revision:d}).catch(e=>{console.error(`[ArtifactContext] Failed to emit artifact.updated event:`,e)}),d});return{data:a,updateArtifact:o,updateStatus:async e=>{if(r.statusPath===void 0)throw Error(`updateStatus() called but no statusPath is configured on the artifact binding. Set statusPath in the .artifact() builder call to use updateStatus().`);let t=r.statusPath;return o(n=>ur(n,t,e))}}}function hr(e,t){return{async get(){return(await t.request(k.state.get,{executionId:e})).value},async update(n){let r=await t.request(k.state.get,{executionId:e}),i=structuredClone(r.value),a=await n(i),o=a===void 0?i:a,s=ot(r.value,o);return(await t.request(k.state.patch,{executionId:e,expectedSequence:r.sequence,patch:s,nextValue:o})).value}}}function gr(e,t,n){let r=e.providerContext?.state===`resolved`?e.providerContext:void 0,i=e.providerConfigId??r?.providerConfigId;return{durationMs:t,...n===void 0?{}:{...n.inputTokens===void 0?{}:{inputTokens:n.inputTokens},...n.cachedInputTokens===void 0?{}:{cachedInputTokens:n.cachedInputTokens},...n.outputTokens===void 0?{}:{outputTokens:n.outputTokens},toolCallCount:n.toolCallCount},binding:{adapterName:e.adapterName,...i===void 0?{}:{providerConfigId:i},...r===void 0?{}:{providerDefinitionId:r.definitionId},...e.model===void 0?{}:{model:e.model},...r===void 0?{}:{auth:{mode:r.auth.mode,owner:r.auth.method.owner,methodId:r.auth.method.methodId}}}}}async function _r(e,t,n){if(t.signal.aborted)return{status:`cancelled`};let r=await t.bus.requestOptional(k.resolveRole,{roleId:e.roleId});if(!r.handled)return{status:`failed`,error:e.unresolvedRoleError};let i=P(e.prompt,B(n)),a=e.completion===void 0?r.data:{...r.data,completion:e.completion};return vr({...e,task:i,resolvedConfig:a},t)}async function vr(e,t){if(t.signal.aborted)return{status:`cancelled`};let n=performance.now(),r=await t.bus.requestOptional(w.spawn,{parentSessionId:t.execution.coordinatorSessionId??t.executionId,depth:1,config:Tr(e.task,e.resolvedConfig,e.outputSchema)});if(!r.handled)return{status:`failed`,error:e.unavailableRuntimeError};let i=await xr(e,t,r.data.subagentId,{attempts:5}),a=await Er(e,t,r.data.subagentId);if(a===`aborted`)return{status:`cancelled`};if(i||await xr(e,t,r.data.subagentId,{attempts:1}),!a.handled)return await V(e,t,r.data.subagentId,`Workflow execution '${t.executionId}' could not await ${e.cancellationLabel} '${e.nodeId}'`),{status:`failed`,error:e.unavailableAwaitError};if(t.signal.aborted||a.data.status===`cancelled`)return{status:`cancelled`};if(a.data.status===`completed`){let r=a.data.result??null;try{return{status:`completed`,output:await yr({...e,toolObservations:a.data.toolObservations,usage:a.data.usage},t,r,br(n))}}catch(e){if(t.signal.aborted)return{status:`cancelled`};throw e}}return(a.data.status===`timeout`||a.data.status===`waiting_input`)&&await V(e,t,r.data.subagentId,`Workflow execution '${t.executionId}' abandoned non-terminal ${e.cancellationLabel} '${e.nodeId}'`),{status:`failed`,error:`${e.nodeLabel} '${e.nodeId}' subagent ${a.data.status}: ${a.data.error??`no result`}`}}async function yr(e,t,n,r=0){if(e.resultFinalizerId===void 0)return n;if(e.frameId===void 0||e.delegateNodeType===void 0)throw Error(`Delegate result finalizer '${e.resultFinalizerId}' requires frame and delegate node identity`);let i={finalizerId:e.resultFinalizerId,executionId:t.executionId,workflowId:t.workflowId,frameId:e.frameId,nodeId:e.nodeId,nodeType:e.delegateNodeType,rawResult:n,toolObservations:[...e.toolObservations??[]],...e.resolvedConfig===void 0?{}:{economics:gr(e.resolvedConfig,r,e.usage)}},a=await t.bus.requestOptional(k.finalizeDelegateResult,i,{signal:t.signal});if(a.handled)return a.data.output;let{subjects:o}=me(e.resultFinalizerId),{finalizerId:s,...c}=i;return(await t.bus.request(o.finalize,c,{signal:t.signal})).output}function br(e){let t=performance.now()-e;return!Number.isFinite(t)||t<=0?0:Math.min(2**53-1,Math.round(t))}async function xr(e,t,n,r){if(e.frameId===void 0)return!0;try{let i=await Sr(t,n,r.attempts);return i===void 0?!1:(await t.bus.emit(k.frame.sessionLinked,{executionId:t.executionId,frameId:e.frameId,sessionId:i}),!0)}catch(t){return console.warn(`[workflow-engine] Failed to emit frame.sessionLinked for frame '${e.frameId}' and subagent '${n}'`,t),!1}}async function Sr(e,t,n){for(let r=0;r<n;r+=1){if(e.signal?.aborted)return;let i=await Cr(e,t);if(i===void 0||!i.handled)return;if(i.data.childSessionId!==void 0)return i.data.childSessionId;if(r<n-1&&!await wr(e.signal,20))return}}async function Cr(e,t){try{return await e.bus.requestOptional(w.getStatus,{subagentId:t},{timeout:25,signal:e.signal})}catch{return}}function wr(e,t){return e.aborted?Promise.resolve(!1):new Promise(n=>{let r,i=t=>{r!==void 0&&(clearTimeout(r),r=void 0),e.removeEventListener(`abort`,a),n(t)},a=()=>i(!1);r=setTimeout(()=>i(!0),t),e.addEventListener(`abort`,a,{once:!0}),e.aborted&&i(!1)})}function Tr(e,t,n){return{task:e,adapterName:t.adapterName,...t.providerConfigId===void 0?{}:{providerConfigId:t.providerConfigId},...t.model===void 0?{}:{model:t.model},...t.reasoningEffort===void 0?{}:{reasoningEffort:t.reasoningEffort},...t.harnessId===void 0?{}:{harnessId:t.harnessId},...t.systemPrompt===void 0?{}:{systemPrompt:t.systemPrompt},...t.contextMode===void 0?{}:{contextMode:t.contextMode},...t.providerContext===void 0?{}:{providerContext:t.providerContext},...t.adapterConfig===void 0?{}:{adapterConfig:t.adapterConfig},...t.tools===void 0?{}:{tools:t.tools},...t.disallowedTools===void 0?{}:{disallowedTools:t.disallowedTools},...t.allowedDirectories===void 0?{}:{allowedDirectories:t.allowedDirectories},...t.completion===void 0?{}:{completion:t.completion},...n===void 0?{}:{responseSchema:n}}}async function Er(e,t,n){if(t.signal.aborted)return await V(e,t,n),`aborted`;let r=t.bus.requestOptional(w.await,{subagentId:n,...e.timeoutMs===void 0?{}:{timeoutMs:e.timeoutMs}},{timeout:0});if(t.signal.aborted)return await V(e,t,n),`aborted`;let i,a=new Promise(e=>{i=()=>e(`aborted`),t.signal.addEventListener(`abort`,i,{once:!0})});try{let i=await Promise.race([r,a]);return i===`aborted`&&await V(e,t,n),i}catch(r){throw await V(e,t,n,`Workflow execution '${t.executionId}' failed awaiting ${e.cancellationLabel} '${e.nodeId}'`),r}finally{i!==void 0&&t.signal.removeEventListener(`abort`,i)}}async function V(e,t,n,r){try{await t.bus.requestOptional(w.kill,{subagentId:n,reason:r??`Workflow execution '${t.executionId}' cancelled ${e.cancellationLabel} '${e.nodeId}'`})}catch(t){console.warn(`[workflow-engine] Best-effort subagent kill failed for '${n}' (${e.cancellationLabel} '${e.nodeId}')`,t)}}async function Dr(e,t,n,r){if(t.signal.aborted)return{status:`cancelled`};let i=Kn(n.frames),a=t.runtimeHandlers.get(e.id);if(a===void 0)return Or(e,t,n,r);let o=t.artifactBinding!==void 0&&r!==void 0?mr({executionId:t.executionId,frameId:r,bindingState:t.artifactBinding,bus:t.bus}):void 0,s=t.definition.state===void 0?void 0:hr(t.executionId,t.bus);async function c(n){if(r===void 0){console.warn(`[station-node] updateProgress called without frameId for node '${e.id}'; skipping emit`);return}let i=de[`execution.progress`].parse({executionId:t.executionId,workflowId:t.workflowId,frameId:r,nodeId:e.id,progress:n,emittedAt:Date.now()});try{await t.bus.emit(k.execution.progress,i)}catch(t){console.error(`[station-node] execution.progress observer failed for ${e.id}:`,t)}}let l;try{l=await a({...t.platformContext,env:t.env,executionId:t.executionId,workflowId:t.workflowId,inputs:t.execution.inputs,config:t.execution.config??{},trigger:t.execution.triggerPayload??{},previousSteps:i,...n.item!==void 0&&{item:n.item},...n.index!==void 0&&{index:n.index},...n.previous!==void 0&&{previous:n.previous},signal:t.signal,...o!==void 0&&{artifact:o},...s!==void 0&&{state:s},bus:t.bus,updateProgress:c})}catch(e){return{status:`failed`,error:e instanceof Error?e.message:String(e)}}return{status:`completed`,output:l}}async function Or(e,t,n,r){if(e.role===void 0)return{status:`failed`,error:`No handler registered for station node '${e.id}'`};let i=e.outputSchema===void 0?void 0:{schema:e.outputSchema};return _r({nodeId:e.id,nodeLabel:`Station node`,roleId:e.role,prompt:e.prompt,...i===void 0?{}:{outputSchema:i},...e.timeoutMs===void 0?{}:{timeoutMs:e.timeoutMs},...e.completion===void 0?{}:{completion:e.completion},unresolvedRoleError:`No runtime handler registered for station node '${e.id}', and role '${e.role}' could not be resolved`,unavailableRuntimeError:`Subagent runtime is not available for station node '${e.id}'`,unavailableAwaitError:`Subagent runtime cannot await station node '${e.id}'`,cancellationLabel:`station`,...r===void 0?{}:{frameId:r}},t,n)}function kr(e,t){return t===void 0?e:{...e,tools:[...t],disallowedTools:void 0}}function Ar(e,t){let n=kr({...t,...e.completion===void 0?{}:{completion:e.completion}},e.allowedTools);return Mr(n)?{...n,contextMode:`fresh`}:n}function jr(e,t){return kr({...t,completion:e.completion??t.completion??`tool`},e.allowedTools)}function Mr(e){return e.completion===`turn`&&[e.harnessId,e.contextMode,e.adapterConfig,e.tools,e.disallowedTools,e.allowedDirectories].every(e=>e===void 0)}async function Nr(e,t,n,r){if(t.signal.aborted)return{status:`cancelled`};let i=await t.bus.requestOptional(k.resolveAgent,{agentId:e.agentId});if(!i.handled)return{status:`failed`,error:`Agent '${e.agentId}' could not be resolved for delegate-agent node '${e.id}'`};if(t.signal.aborted)return{status:`cancelled`};let a=Fr(e,n);if(a.status===`failed`)return a;let o=e.outputSchema===void 0?void 0:{schema:e.outputSchema},s=jr(e,i.data);return vr({nodeId:e.id,nodeLabel:`Delegate-agent node`,task:a.task,resolvedConfig:s,...o===void 0?{}:{outputSchema:o},unavailableRuntimeError:`Subagent runtime is not available for delegate-agent node '${e.id}'`,unavailableAwaitError:`Subagent runtime cannot await delegate-agent node '${e.id}'`,cancellationLabel:`delegate-agent`,...r===void 0?{}:{frameId:r},...e.resultFinalizerId===void 0?{}:{resultFinalizerId:e.resultFinalizerId},delegateNodeType:`delegate-agent`},t)}async function Pr(e,t,n,r){if(t.signal.aborted)return{status:`cancelled`};let i=await t.bus.requestOptional(k.resolveRole,{roleId:e.role});if(!i.handled)return{status:`failed`,error:`Role '${e.role}' could not be resolved for delegate-role node '${e.id}'`};let a=e.outputSchema===void 0?void 0:{schema:e.outputSchema},o=P(e.prompt,B(n)),s=Ar(e,i.data);return vr({nodeId:e.id,nodeLabel:`Delegate-role node`,task:o,resolvedConfig:s,...a===void 0?{}:{outputSchema:a},...e.timeoutMs===void 0?{}:{timeoutMs:e.timeoutMs},unavailableRuntimeError:`Subagent runtime is not available for delegate-role node '${e.id}'`,unavailableAwaitError:`Subagent runtime cannot await delegate-role node '${e.id}'`,cancellationLabel:`delegate-role`,...r===void 0?{}:{frameId:r},...e.resultFinalizerId===void 0?{}:{resultFinalizerId:e.resultFinalizerId},delegateNodeType:`delegate-role`},t)}function Fr(e,t){try{let n=B(t);return{status:`completed`,task:Ir(e.inputExpression===void 0?n:N(e.inputExpression,n))}}catch(t){let n=t instanceof Error?t.message:String(t);return{status:`failed`,error:`delegate-agent node '${e.id}': input expression evaluation failed: ${n}`}}}function Ir(e){if(typeof e==`string`)return e;if(e===void 0)return``;try{return JSON.stringify(e,null,2)??``}catch{return String(e)}}function Lr(e,t,n,r){try{let i=N(n,B(r));return Array.isArray(i)?i:{status:`failed`,error:`${t} node '${e}': collection expression did not resolve to an array (got ${typeof i})`}}catch(n){return{status:`failed`,error:`${t} node '${e}': collection expression evaluation failed: ${n instanceof Error?n.message:String(n)}`}}}function Rr(e,t,n){for(let r of[...e.nodes].reverse()){let e=n.getFramesByNodeId(r.id);for(let n of e)if(n.parentFrameId===t&&n.status===`completed`)return n.output}}function zr(e,t,n){return Rr(e.body,t,n)}function Br(e){if(e.length===0)return;let t=new Map,n=new Map;for(let r of e){n.set(r.frameId,r);let e=t.get(r.nodeId)??[];e.push(r),t.set(r.nodeId,e)}return{byNodeId:t,byFrameId:n}}const Vr=new Set([`completed`,`skipped`,`waiting`]);function H(e,t,n){let r=e?.byNodeId.get(t)??[],i=n.statuses??Vr;return r.find(e=>e.parentFrameId===n.parentFrameId&&e.branchKey===n.branchKey&&e.iteration===n.iteration&&i.has(e.status))}function U(e,t,n){let r={...e.frames,[t]:n};return{...e,frames:r,previousSteps:Kn(r),output:n.status===`completed`?n.output:e.output}}function Hr(e,t){if(typeof AbortSignal.any==`function`)return AbortSignal.any([e,t]);let n=new AbortController,r=()=>n.abort();return e.addEventListener(`abort`,r,{once:!0}),t.addEventListener(`abort`,r,{once:!0}),n.signal}const Ur=new Set([`completed`,`running`]);function Wr(e,t){return e.status===`running`&&t.pauseSignal?.aborted===!0&&!t.outerSignal.aborted}async function Gr(e,t,n,r,i,a,o=`all-settled`){if(t.signal.aborted)return{status:`cancelled`};let s=Object.entries(e.branches);if(s.length===0)return{status:`completed`,output:Jr({},o)};let c=new AbortController,l=new AbortController,u=t.suspensionStrategy!==`wait-in-process`,d=o===`fail-fast`?Hr(c.signal,l.signal):u?l.signal:void 0,f=d===void 0?t.signal:Hr(t.signal,d),p=f===t.signal?t:t.withSignal(f),m=s.map(([s,c])=>Kr(s,c,e,p,n,r,i,a,{outerSignal:t.signal,pauseSignal:o===`fail-fast`||u?l.signal:void 0}));if(o===`all-settled`){let e=await Promise.all(u?m.map(e=>e.then(e=>(e.status===`paused`&&l.abort(),e))):m),t=e.find(e=>e.status===`paused`);return t===void 0?{status:`completed`,output:Jr(Yr(s,e),o)}:t}let h=await qr(s,m,c,l);return h.type===`cancelled`?{status:`cancelled`}:h.type===`paused`?h.outcome:h.type===`failed`?{status:`failed`,error:h.error}:{status:`completed`,output:Jr(Yr(s,h.outcomes),o)}}async function Kr(e,t,n,r,i,a,o,s,c){if(r.signal.aborted)return{status:`cancelled`};let l=H(r.resumeFrames,n.id,{parentFrameId:o,branchKey:e,statuses:Ur});if(l?.status===`completed`)return{status:`completed`,...l.output===void 0?{}:{output:l.output}};let u=l??r.createFrame({nodeId:n.id,nodeType:`parallel`,path:s,parentFrameId:o,branchKey:e});if(r.signal.aborted)return Wr(u,c)||await $(u,r),{status:`cancelled`};l===void 0&&await X(u,r);let d;try{d=await a(t,r,i,u.frameId,u.path)}catch(e){let t=e instanceof Error?e.message:String(e);return await Q(u,r,t),{status:`failed`,error:t}}switch(d.status){case`completed`:{let e=Rr(t,u.frameId,r);return await Z(u,r,e),{status:`completed`,output:e}}case`skipped`:return await Z(u,r),{status:`completed`};case`cancelled`:return Wr(u,c)||await $(u,r),{status:`cancelled`};case`paused`:return d;case`failed`:return await Q(u,r,d.error),{status:`failed`,error:d.error}}}async function qr(e,t,n,r){let i,a,o=t.map(e=>e.then(e=>(e.status===`failed`&&i===void 0?(i=e.error,n.abort()):e.status===`paused`&&a===void 0&&(a=e,r.abort()),e),e=>{let t=e instanceof Error?e.message:String(e);return i===void 0&&(i=t,n.abort()),{status:`failed`,error:t}})),s=await Promise.all(o);return a===void 0?s.some(e=>e.status===`cancelled`)&&i===void 0?{type:`cancelled`}:i===void 0?{type:`completed`,outcomes:s}:{type:`failed`,error:i}:{type:`paused`,outcome:a}}function Jr(e,t){return{mode:t,branches:e}}function Yr(e,t){let n={};for(let r=0;r<e.length;r++){let[i]=e[r],a=t[r];n[i]=Xr(a)}return n}function Xr(e){switch(e.status){case`completed`:return{status:`fulfilled`,...e.output===void 0?{}:{value:e.output}};case`skipped`:return{status:`fulfilled`,value:null};case`cancelled`:return{status:`cancelled`};case`paused`:return{status:`paused`,pausedAtGateId:e.pausedAtGateId,pausedAtFrameId:e.pausedAtFrameId};case`failed`:return{status:`rejected`,reason:e.error}}}const Zr=new rt.default({allErrors:!0,strict:!1});function Qr(e,t){if(t===void 0)return{status:`ok`};try{return{status:`ok`,validator:Zr.compile(t)}}catch(t){return{status:`failed`,error:`Gate '${e}' has an invalid resumeSchema: ${t instanceof Error?t.message:String(t)}`}}}function $r(e,t){return e===void 0||e(t)?{valid:!0}:{valid:!1,error:ti(e.errors??[])}}function ei(e,t,n){let r=Qr(e,t);return r.status===`failed`?{valid:!1,error:r.error}:$r(r.validator,n)}function ti(e){return e.length===0?`schema validation failed`:e.map(e=>`${e.instancePath.length>0?e.instancePath:`/`} ${e.message??`is invalid`}`).join(`; `)}function ni(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}const ri={action:`approve`,source:`timeout`};function ii(e){return e===void 0?{}:{reason:e}}async function ai(e,t,n,r){let i=()=>{t.value&&(t.value=!1,e.reject(`cancelled`))};n.addEventListener(`abort`,i,{once:!0}),n.aborted&&i();let a=[e.promise],o;if(r!==null){let e=ni();o=setTimeout(()=>{t.value&&(t.value=!1,n.removeEventListener(`abort`,i),e.reject(`timed-out`))},r),a.push(e.promise)}try{let e=await Promise.race(a);return n.removeEventListener(`abort`,i),o!==void 0&&clearTimeout(o),{action:e.action,resumeData:e.resumeData,timedOut:!1,wasCancelled:!1,reason:e.reason}}catch(e){return o!==void 0&&clearTimeout(o),n.removeEventListener(`abort`,i),e===`timed-out`?{action:`reject`,resumeData:null,timedOut:!0,wasCancelled:!1}:{action:`reject`,resumeData:null,timedOut:!1,wasCancelled:!0}}}async function oi(e,t,n,r,i,a){let o={required:e.suspensionStrategy!==`wait-in-process`};if(a.timedOut){let a=Date.now();if(r.autoAction===`approve`){let s=$r(i,ri);return s.valid?(await W(e,{...r,status:`resumed`,resumeData:ri,resolvedAt:a},o),await G(e,t.id,n,{action:`approve`,source:`timeout`}),{status:`completed`,output:{resumeData:ri}}):(await W(e,{...r,status:`timed-out`,resolvedAt:a},o),await G(e,t.id,n,{action:`reject`,source:`timeout`}),{status:`failed`,error:`Gate '${t.id}' auto-approve timeout resume data does not match resumeSchema: ${s.error}`})}return await W(e,{...r,status:`timed-out`,resolvedAt:a},o),await G(e,t.id,n,{action:`reject`,source:`timeout`}),{status:`failed`,error:`Gate '${t.id}' timed out after ${String(r.timeoutMs)}ms and auto-rejected`}}if(a.wasCancelled||e.signal.aborted)return await W(e,{...r,status:`cancelled`,resolvedAt:Date.now()},o),await G(e,t.id,n,{source:`cancelled`}),{status:`cancelled`};let s=Date.now();await W(e,{...r,status:a.action===`reject`?`rejected`:`resumed`,resumeData:a.resumeData,...ii(a.reason),resolvedAt:s},o);try{await e.bus.emit(k.gate.resumed,{executionId:e.executionId,frameId:n,nodeId:t.id,resumeData:a.resumeData}),await G(e,t.id,n,{action:a.action,source:`user`,...ii(a.reason)})}catch(e){console.error(`[GateNode] gate.resumed emit failed for '${t.id}':`,e)}return{status:`completed`,output:{resumeData:a.resumeData}}}async function si(e,t,n,r){if(t.signal.aborted)return{status:`cancelled`};let i=e.resumeSchema??{};if(t.suspensionStrategy!==`wait-in-process`){let n=await di(t,e,r);if(n!==void 0)return n}let a=Qr(e.id,e.resumeSchema);return a.status===`failed`?{status:`failed`,error:a.error}:ci(t,e,n,r,i,a.validator)}async function ci(e,t,n,r,i,a){let o=P(t.prompt,B(n)),s={executionId:e.executionId,nodeId:t.id,frameId:r,schema:i,prompt:o,status:`waiting`,autoAction:t.autoAction,timeoutMs:t.timeoutMs,createdAt:Date.now()},c=e.suspensionStrategy!==`wait-in-process`;if(await W(e,s,{required:c}),await e.updateFrame(r,{status:`waiting`},{requireFrameStorage:c}),c)return await li(e,t,r,i,o,s.createdAt),{status:`paused`,pausedAtGateId:t.id,pausedAtFrameId:r};let l={value:!0},u=ni(),d=e.bus.on(k.gate.respond,async n=>{let{executionId:i,gateId:o,frameId:s,action:c,resumeData:d,reason:f}=n.payload;if(i!==e.executionId||o!==t.id||s!==void 0&&s!==r){try{await n.next()}catch(e){if(e instanceof ge)n.setResult({accepted:!1});else throw e}return}if(!l.value){n.setResult({accepted:!1});return}if(!$r(a,d).valid){n.setResult({accepted:!1});return}l.value=!1,n.setResult({accepted:!0}),u.resolve({action:c,resumeData:d,reason:f})});await li(e,t,r,i,o,s.createdAt);let f=await ai(u,l,e.signal,t.timeoutMs);return d(),oi(e,t,r,s,a,f)}async function li(e,t,n,r,i,a){try{await e.bus.emit(k.gate.suspended,{executionId:e.executionId,frameId:n,nodeId:t.id,schema:r,prompt:i,...t.title!==void 0&&{title:t.title},autoAction:t.autoAction,timeoutMs:t.timeoutMs,openedAt:a})}catch(e){console.error(`[GateNode] gate.suspended emit failed for '${t.id}':`,e)}}async function ui(e,t,n){if(e.suspensionStrategy!==`wait-in-process`)return(await e.bus.request(I.getGateInstance,{executionId:e.executionId,nodeId:t,frameId:n})).gate;let r=await e.bus.requestOptional(I.getGateInstance,{executionId:e.executionId,nodeId:t,frameId:n});return r.handled?r.data.gate:null}async function di(e,t,n){let r=await ui(e,t.id,n);if((r?.status===`resumed`||r?.status===`rejected`)&&r.resumeData!==void 0){let i=ei(t.id,r.schema,r.resumeData);if(!i.valid)return{status:`failed`,error:`Gate '${t.id}' persisted resumeData is invalid: ${i.error}`};try{await e.bus.emit(k.gate.resumed,{executionId:e.executionId,frameId:n,nodeId:t.id,resumeData:r.resumeData})}catch(e){console.error(`[GateNode] gate.resumed emit failed for '${t.id}':`,e)}return await G(e,t.id,n,{action:r.status===`rejected`?`reject`:`approve`,source:`user`,...ii(r.reason)}),{status:`completed`,output:{resumeData:r.resumeData}}}if(r?.status===`waiting`){if(r.timeoutMs!==null&&Date.now()>=r.createdAt+r.timeoutMs){let i=Qr(t.id,r.schema);return i.status===`failed`?{status:`failed`,error:i.error}:oi(e,t,n,r,i.validator,{action:`reject`,resumeData:null,timedOut:!0,wasCancelled:!1})}return{status:`paused`,pausedAtGateId:t.id,pausedAtFrameId:n}}if((r?.status===`resumed`||r?.status===`rejected`)&&r.resumeData===void 0)return{status:`failed`,error:`Gate '${t.id}' has status '${r.status}' but resumeData is missing — cannot reconstruct output`};if(r!==null)return{status:`failed`,error:`Gate '${t.id}' cannot resume from status '${r.status}'`}}async function W(e,t,n={}){try{n.required===!0?await e.bus.request(I.setGateInstance,{gate:t}):await e.bus.requestOptional(I.setGateInstance,{gate:t})}catch(e){if(n.required===!0)throw e;console.warn(`[GateNode] Failed to upsert gate instance for '${t.nodeId}':`,e)}}async function G(e,t,n,r){try{await e.bus.emit(k.gate.resolved,{executionId:e.executionId,stepId:t,stepType:`gate`,frameId:n,...r})}catch(e){console.error(`[GateNode] gate.resolved emit failed for '${t}':`,e)}}function K(e){return{status:`fulfilled`,...e===void 0?{}:{value:e}}}const fi=new Set([`completed`,`running`]);function pi(e,t){return e.status===`running`&&t.pauseSignal?.aborted===!0&&!t.outerSignal.aborted}async function mi(e,t,n,r,i,a){if(t.signal.aborted)return{status:`cancelled`};let o=Lr(e.id,`iterate`,e.collection,n);if(!Array.isArray(o))return o;let s=o;if(s.length===0)return{status:`completed`,output:vi([])};let c=await hi(s,e,t,n,r,i,a,e.concurrency!==void 0&&e.concurrency>0?e.concurrency:0);if(t.signal.aborted&&c.every(e=>e.status===`cancelled`))return{status:`cancelled`};let l=c.find(e=>e.status===`paused`);return l===void 0?{status:`completed`,output:vi(c)}:{status:`paused`,pausedAtGateId:l.pausedAtGateId,pausedAtFrameId:l.pausedAtFrameId}}async function hi(e,t,n,r,i,a,o,s){let c=new AbortController,l=n.suspensionStrategy!==`wait-in-process`,u=l?Hr(n.signal,c.signal):n.signal,d=u===n.signal?n:n.withSignal(u),f={outerSignal:n.signal,...l?{pauseSignal:c.signal}:{}};if(s===0){let n=e.map((e,n)=>_i(e,n,t,d,r,i,a,o,f));return Promise.all(l?n.map(e=>gi(e,c)):n)}let p=Array(e.length);for(let n=0;n<e.length;n+=s){if(d.signal.aborted){for(let t=n;t<e.length;t++)p[t]={status:`cancelled`};break}let u=Math.min(n+s,e.length),m=[];for(let s=n;s<u;s++)m.push(_i(e[s],s,t,d,r,i,a,o,f));let h=await Promise.all(l?m.map(e=>gi(e,c)):m);for(let e=0;e<h.length;e++)p[n+e]=h[e];if(h.some(e=>e.status===`paused`)){for(let t=u;t<e.length;t++)p[t]={status:`cancelled`};break}}return p}function gi(e,t){return e.then(e=>(e.status===`paused`&&t.abort(),e))}async function _i(e,t,n,r,i,a,o,s,c){if(r.signal.aborted)return{status:`cancelled`};let l={...i,item:e,index:t},u=H(r.resumeFrames,n.id,{parentFrameId:o,iteration:t,statuses:fi});if(u?.status===`completed`)return K(u.output);let d=u??r.createFrame({nodeId:n.id,nodeType:`iterate`,path:s,parentFrameId:o,iteration:t});if(r.signal.aborted)return pi(d,c)||await $(d,r),{status:`cancelled`};u===void 0&&await X(d,r);let f;try{f=await a(n.body,r,l,d.frameId,d.path)}catch(e){let t=e instanceof Error?e.message:String(e);return await Q(d,r,t),{status:`rejected`,reason:t}}switch(f.status){case`completed`:{let e=zr(n,d.frameId,r);return await Z(d,r,e),K(e)}case`skipped`:return await Z(d,r),K();case`cancelled`:return pi(d,c)||await $(d,r),{status:`cancelled`};case`paused`:return f;case`failed`:return await Q(d,r,f.error),{status:`rejected`,reason:f.error}}}function vi(e){return{items:e}}const yi=new Set([`completed`,`running`]);async function bi(e,t,n,r,i,a){if(t.signal.aborted)return{status:`cancelled`};let o=Lr(e.id,`iterate-chain`,e.collection,n);if(!Array.isArray(o))return o;let s=o;if(s.length===0)return{status:`completed`,output:Si([])};let c=[],l;for(let o=0;o<s.length;o++){if(t.signal.aborted)return{status:`cancelled`};let u=s[o],d=await xi(u,o,l,e,t,n,r,i,a);switch(c.push(d),d.status){case`fulfilled`:l=d.value;break;case`rejected`:return{status:`failed`,error:d.reason};case`cancelled`:return{status:`cancelled`};case`paused`:return{status:`paused`,pausedAtGateId:d.pausedAtGateId,pausedAtFrameId:d.pausedAtFrameId}}}return{status:`completed`,output:Si(c)}}async function xi(e,t,n,r,i,a,o,s,c){if(i.signal.aborted)return{status:`cancelled`};let l={...a,item:e,index:t,...n!==void 0&&{previous:n}},u=H(i.resumeFrames,r.id,{parentFrameId:s,iteration:t,statuses:yi});if(u?.status===`completed`)return K(u.output);let d=u??i.createFrame({nodeId:r.id,nodeType:`iterate-chain`,path:c,parentFrameId:s,iteration:t});if(i.signal.aborted)return await $(d,i),{status:`cancelled`};u===void 0&&await X(d,i);let f;try{f=await o(r.body,i,l,d.frameId,d.path)}catch(e){let t=e instanceof Error?e.message:String(e);return await Q(d,i,t),{status:`rejected`,reason:t}}switch(f.status){case`completed`:{let e=zr(r,d.frameId,i);return await Z(d,i,e),K(e)}case`skipped`:return await Z(d,i),K();case`cancelled`:return await $(d,i),{status:`cancelled`};case`paused`:return f;case`failed`:return await Q(d,i,f.error),{status:`rejected`,reason:f.error}}}function Si(e){return{items:e}}async function Ci(e,t,n,r){let i=()=>{t.value&&(t.value=!1,e.reject(`cancelled`))};n.addEventListener(`abort`,i,{once:!0}),n.aborted&&i();let a=[e.promise],o;if(r!==null){let e=new Promise((e,a)=>{o=setTimeout(()=>{t.value&&(t.value=!1,n.removeEventListener(`abort`,i),a(`timed-out`))},r)});a.push(e)}try{return{status:`resolved`,value:await Promise.race(a)}}catch(e){if(e===`timed-out`)return{status:`timed-out`};if(e===`cancelled`)return{status:`cancelled`};throw e}finally{o!==void 0&&clearTimeout(o),n.removeEventListener(`abort`,i)}}const wi={action:`approve`,source:`timeout`};async function q(e,t,n){try{n?await e.bus.request(I.setGateInstance,{gate:t}):await e.bus.requestOptional(I.setGateInstance,{gate:t})}catch(e){if(n)throw e;console.warn(`[LoopNode] Failed to upsert escalation gate for '${t.nodeId}':`,e)}}async function Ti(e,t,n,r,i,a){try{await e.bus.emit(k.gate.suspended,{executionId:e.executionId,frameId:n,nodeId:t.id,schema:r,prompt:i,...t.gate.escalation?.title!==void 0&&{title:t.gate.escalation.title},autoAction:t.gate.escalation?.autoAction??`reject`,timeoutMs:t.gate.escalation?.timeoutMs??null,openedAt:a})}catch(e){console.error(`[LoopNode] gate.suspended emit failed for '${t.id}':`,e)}}async function J(e,t,n,r){try{await e.bus.emit(k.gate.resolved,{executionId:e.executionId,stepId:t,stepType:`gate`,frameId:n,...r})}catch(e){console.error(`[LoopNode] gate.resolved emit failed for '${t}':`,e)}}function Ei(e){let{node:t,ctx:n,parentFrameId:r,validator:i,pending:a,deferred:o}=e;return n.bus.on(k.gate.respond,async e=>{let{executionId:s,gateId:c,frameId:l,action:u,resumeData:d,reason:f}=e.payload;if(s!==n.executionId||c!==t.id||l!==void 0&&l!==r){try{await e.next()}catch(t){if(t instanceof ge)e.setResult({accepted:!1});else throw t}return}if(!a.value){e.setResult({accepted:!1});return}if(!$r(i,d).valid){e.setResult({accepted:!1});return}a.value=!1,e.setResult({accepted:!0}),o.resolve({action:u,resumeData:d,reason:f})})}async function Di(e,t,n,r,i,a,o){let s=Qr(e.id,e.gate.escalation?.resumeSchema);if(s.status===`failed`)return{status:`failed`,error:s.error};let c={value:!0},l=ni(),u=Ei({node:e,ctx:t,parentFrameId:n,validator:s.validator,pending:c,deferred:l});await Ti(t,e,n,r.schema,r.prompt??``,r.createdAt);try{let s=await Ci(l,c,t.signal,r.timeoutMs);return s.status===`timed-out`?Ai(t,e,n,r,i,a,o,!1):s.status===`resolved`?Oi(t,e.id,n,r,s.value,i,a,o):(await q(t,{...r,status:`cancelled`,resolvedAt:Date.now()},!1),await J(t,e.id,n,{source:`cancelled`}),{status:`cancelled`})}finally{u()}}async function Oi(e,t,n,r,i,a,o,s){let c=Date.now(),l=i.action===`reject`?`rejected`:`resumed`;await q(e,{...r,status:l,resumeData:i.resumeData,...i.reason===void 0?{}:{reason:i.reason},resolvedAt:c},!1);try{await e.bus.emit(k.gate.resumed,{executionId:e.executionId,frameId:n,nodeId:t,resumeData:i.resumeData}),await J(e,t,n,{action:i.action,source:`user`,...i.reason===void 0?{}:{reason:i.reason}})}catch(e){console.error(`[LoopNode] gate.resumed emit failed for '${t}':`,e)}return{status:`completed`,output:Y(`escalate`,o,a,s,i.resumeData)}}async function ki(e,t,n,r,i,a,o){let s=e.gate.escalation;if(s===void 0)return{status:`completed`,output:Y(`escalate`,a,i,o)};let c=P(s.prompt,B(n)),l=s.resumeSchema??{},u={executionId:t.executionId,nodeId:e.id,frameId:r,schema:l,prompt:c,status:`waiting`,autoAction:s.autoAction??`reject`,timeoutMs:s.timeoutMs??null,createdAt:Date.now()},d=t.suspensionStrategy!==`wait-in-process`;return await q(t,u,d),await t.updateFrame(r,{status:`waiting`},{requireFrameStorage:d}),d?(await Ti(t,e,r,l,c,u.createdAt),{status:`paused`,pausedAtGateId:e.id,pausedAtFrameId:r}):Di(e,t,r,u,i,a,o)}async function Ai(e,t,n,r,i,a,o,s=!0){let c=Date.now();if(r.autoAction===`approve`){let l=ei(t.id,r.schema,wi);return l.valid?(await q(e,{...r,status:`resumed`,resumeData:wi,resolvedAt:c},s),await J(e,t.id,n,{action:`approve`,source:`timeout`}),{status:`completed`,output:Y(`escalate`,a,i,o,wi)}):(await q(e,{...r,status:`timed-out`,resolvedAt:c},s),await J(e,t.id,n,{action:`reject`,source:`timeout`}),{status:`failed`,error:`Loop '${t.id}' escalation gate auto-approve timeout resume data does not match resumeSchema: ${l.error}`})}return await q(e,{...r,status:`timed-out`,resolvedAt:c},s),await J(e,t.id,n,{action:`reject`,source:`timeout`}),{status:`failed`,error:`Loop '${t.id}' escalation gate timed out after ${String(r.timeoutMs)}ms and auto-rejected`}}async function ji(e,t,n){if(e.suspensionStrategy!==`wait-in-process`)return(await e.bus.request(I.getGateInstance,{executionId:e.executionId,nodeId:t,frameId:n})).gate;let r=await e.bus.requestOptional(I.getGateInstance,{executionId:e.executionId,nodeId:t,frameId:n});return r.handled?r.data.gate:null}async function Mi(e,t,n,r,i,a){let o=await ji(e,t.id,n);if(o!==null){if((o.status===`resumed`||o.status===`rejected`)&&o.resumeData!==void 0){let s=ei(t.id,o.schema,o.resumeData);if(!s.valid)return{status:`failed`,error:`Loop '${t.id}' escalation gate resumeData is invalid: ${s.error}`};try{await e.bus.emit(k.gate.resumed,{executionId:e.executionId,frameId:n,nodeId:t.id,resumeData:o.resumeData})}catch(e){console.error(`[LoopNode] gate.resumed emit failed for '${t.id}':`,e)}return await J(e,t.id,n,{action:o.status===`rejected`?`reject`:`approve`,source:`user`,...o.reason===void 0?{}:{reason:o.reason}}),{status:`completed`,output:Y(`escalate`,i,r,a,o.resumeData)}}return o.status===`waiting`?o.timeoutMs!==null&&Date.now()>=o.createdAt+o.timeoutMs?Ai(e,t,n,o,r,i,a):{status:`paused`,pausedAtGateId:t.id,pausedAtFrameId:n}:(o.status===`resumed`||o.status===`rejected`)&&o.resumeData===void 0?{status:`failed`,error:`Loop '${t.id}' escalation gate has status '${o.status}' but resumeData is missing`}:{status:`failed`,error:`Loop '${t.id}' escalation gate cannot resume from status '${o.status}'`}}}const Ni=new Set([`completed`,`running`]);async function Pi(e,t,n,r,i,a,o){let s=H(n.resumeFrames,e.id,{parentFrameId:a,iteration:t,statuses:Ni});if(s?.status===`completed`)return{terminal:!1,output:s.output??null,replayed:!0,gateExpressionCtx:Ii(e,n,r,s.frameId)};let c=s??n.createFrame({nodeId:e.id,nodeType:`loop`,path:o,parentFrameId:a,iteration:t});if(n.signal.aborted)return await $(c,n),{terminal:!0,outcome:{status:`cancelled`}};s===void 0&&await X(c,n);let l=await Li(e,c,n,r,i);if(l!==void 0)return{terminal:!0,outcome:l};let u=Rr(e.body,c.frameId,n)??null;return await Z(c,n,u),{terminal:!1,output:u,replayed:!1,gateExpressionCtx:Ii(e,n,r,c.frameId)}}function Fi(e,t,n,r){return H(n.resumeFrames,e.id,{parentFrameId:r,iteration:t,statuses:Ni})!==void 0}function Ii(e,t,n,r){let i=n;for(let n of e.body.nodes){let e=t.getFramesByNodeId(n.id).find(e=>e.parentFrameId===r&&e.status===`completed`);e!==void 0&&(i=U(i,n.id,{status:`completed`,...e.output===void 0?{}:{output:e.output}}))}return i}async function Li(e,t,n,r,i){let a;try{a=await i(e.body,n,r,t.frameId,t.path)}catch(e){let r=e instanceof Error?e.message:String(e);return await Q(t,n,r),{status:`failed`,error:r}}switch(a.status){case`failed`:return await Q(t,n,a.error),{status:`failed`,error:a.error};case`cancelled`:return await $(t,n),{status:`cancelled`};case`paused`:return a;case`skipped`:case`completed`:return}}function Ri(e,t,n,r,i){let a=null;if(e.gate.input!==void 0)try{let t=B(r);a=N(e.gate.input,t)}catch(t){let n=t instanceof Error?t.message:String(t);return{status:`failed`,error:`Loop node '${e.id}': gate input expression evaluation failed: ${n}`}}let o=e.gate.config??null,s=i(a,o,{executionId:n.executionId,nodeId:e.id,round:t+1,maxRounds:e.maxRounds});return s.kind===`loop`&&t+1>=e.maxRounds?{kind:`escalate`,reason:`max_rounds_reached`}:s}async function zi(e,t,n,r,i,a){if(t.signal.aborted)return{status:`cancelled`};let o=t.runtimeLoopGates.get(e.gate.handler);if(o===void 0)return{status:`failed`,error:`Loop node '${e.id}': no gate handler registered for '${e.gate.handler}'`};let s=[],c=0;for(;;){if(t.signal.aborted)return{status:`cancelled`};let l=await Pi(e,c,t,n,r,i,a);if(l.terminal)return l.outcome;if(s.push(l.output),l.replayed){if(c++,Fi(e,c,t,i))continue;if(e.gate.escalation!==void 0&&t.suspensionStrategy!==`wait-in-process`){let n=await Mi(t,e,i,{kind:`escalate`,reason:`resumed_from_gate`},c,s);if(n!==void 0)return n}continue}let u=Ri(e,c,t,l.gateExpressionCtx,o);if(`status`in u)return u;if(u.kind===`pass`)return{status:`completed`,output:Y(`pass`,c+1,u,s)};if(u.kind===`escalate`)return e.gate.escalation===void 0?{status:`completed`,output:Y(`escalate`,c+1,u,s)}:ki(e,t,n,i,u,c+1,s);c++}}function Y(e,t,n,r,i){return{outcome:e,rounds:t,lastGateOutcome:n,bodyOutputs:r,...i===void 0?{}:{resumeData:i}}}async function X(e,t){e.status=`running`,e.startedAt=Date.now(),await t.persistFrame(e),await t.emitFrameStarted(e)}async function Z(e,t,n){let r=Date.now(),i=e.startedAt===void 0?void 0:Math.max(0,r-e.startedAt);e.status=`completed`,e.output=n,e.completedAt=r,await t.persistFrame(e),await t.emitFrameCompleted(e,i)}async function Q(e,t,n){let r=Date.now(),i=e.startedAt===void 0?void 0:Math.max(0,r-e.startedAt);e.status=`failed`,e.error=n,e.completedAt=r,await t.persistFrame(e),await t.emitFrameFailed(e,n,i)}async function Bi(e,t){e.status=`skipped`,e.completedAt=Date.now(),await t.persistFrame(e)}async function $(e,t){e.status=`cancelled`,e.completedAt=Date.now(),await t.persistFrame(e)}function Vi(e,t){return!!N(e,B(t))}async function Hi(e,t,n,r,i,a=[]){if(t.signal.aborted)return{status:`cancelled`};switch(e.type){case`sequence`:return r(e,t,n,i,a);case`station`:return Dr(e,t,n,i);case`delegate-agent`:return Nr(e,t,n,i);case`delegate-role`:return Pr(e,t,n,i);case`parallel`:return Gr(e,t,n,r,i??``,a,e.mode??`all-settled`);case`gate`:return si(e,t,n,i??``);case`iterate`:return mi(e,t,n,r,i??``,a);case`iterate-chain`:return bi(e,t,n,r,i??``,a);case`loop`:return zi(e,t,n,r,i??``,a);default:return{status:`failed`,error:`Unknown node type: ${String(e.type)}`}}}const Ui=new Set([`completed`,`skipped`,`waiting`,`running`]);function Wi(e){return e.type===`parallel`||e.type===`iterate`||e.type===`iterate-chain`||e.type===`loop`}function Gi(e,t,n){return H(e.resumeFrames,t.id,{parentFrameId:n,...Wi(t)?{statuses:Ui}:{}})}function Ki(e,t,n){if(n?.status===`completed`)return U(e,t.id,{status:`completed`,...n.output===void 0?{}:{output:n.output}});if(n?.status===`skipped`)return U(e,t.id,{status:`skipped`})}async function qi(e,t,n,r,i,a,o){try{return{result:Vi(e,i)}}catch(e){let i=e instanceof Error?e.message:String(e);return await Q(r.createFrame({nodeId:n.id,nodeType:n.type,path:a,parentFrameId:o}),r,`'${t}' condition evaluation failed: ${i}`),{status:`failed`,error:`'${t}' condition evaluation failed for '${n.id}': ${i}`}}}async function Ji(e,t,n,r,i,a){let o=a??t.createFrame({nodeId:e.id,nodeType:e.type,path:r,parentFrameId:i});if(t.signal.aborted)return await $(o,t),{updatedCtx:n,outcome:{status:`cancelled`}};a===void 0&&await X(o,t);let s;try{s=await Hi(e,t,n,Yi,o.frameId,o.path)}catch(e){let r=e instanceof Error?e.message:String(e);return await Q(o,t,r),{updatedCtx:n,outcome:{status:`failed`,error:r}}}switch(s.status){case`completed`:return await Z(o,t,s.output),{updatedCtx:U(n,e.id,{status:`completed`,output:s.output})};case`skipped`:return await Bi(o,t),{updatedCtx:U(n,e.id,{status:`skipped`})};case`cancelled`:return await $(o,t),{updatedCtx:n,outcome:{status:`cancelled`}};case`paused`:return{updatedCtx:n,outcome:s};case`failed`:return await Q(o,t,s.error),{updatedCtx:n,outcome:{status:`failed`,error:s.error}}}}async function Yi(e,t,n,r,i=[]){let a=n;for(let n of e.nodes){if(t.signal.aborted)return{status:`cancelled`};let e=Gi(t,n,r),o=Ki(a,n,e);if(o!==void 0){a=o;continue}if(n.when!==void 0){let e=await qi(n.when,`when`,n,t,a,i,r);if(`status`in e)return e;if(!e.result){await Bi(t.createFrame({nodeId:n.id,nodeType:n.type,path:i,parentFrameId:r}),t),a=U(a,n.id,{status:`skipped`});continue}}if(n.skip!==void 0){let e=await qi(n.skip,`skip`,n,t,a,i,r);if(`status`in e)return e;if(e.result){await Bi(t.createFrame({nodeId:n.id,nodeType:n.type,path:i,parentFrameId:r}),t),a=U(a,n.id,{status:`skipped`});continue}}let s=e?.status===`waiting`&&n.type===`gate`||(e?.status===`running`||e?.status===`waiting`)&&Wi(n)?e:void 0,{updatedCtx:c,outcome:l}=await Ji(n,t,a,i,r,s);if(a=c,l!==void 0)return l}return{status:`completed`}}function Xi(e,t){let n=new Set;if(he(e.root,{enter(e){if(e.type!==`loop`)return;let r=e;t.has(r.gate.handler)||n.add(r.gate.handler)}}),n.size>0)throw Error(`Workflow '${e.id}' is missing loop gate handler(s): ${[...n].join(`, `)}`)}const Zi=new Set;async function Qi(e,t,n){if((await e.requestOptional(I.getRunContext,{executionId:t.executionId})).handled){await $i(e,t.executionId,n);return}await e.request(k.bootstrapAuthorityState,{executionId:t.executionId,terminalAuthority:`authority`,definition:n})}async function $i(e,t,n){return await ea(e,t,n)!==void 0}async function ea(e,t,n){let r=await e.request(I.getRunContext,{executionId:t});if(r.runContext===null)return;if(r.runContext.executionId!==t)throw Error(`Authority bootstrap identity mismatch for '${t}'`);let i=r.runContext.definitionSnapshot;if(i===void 0){await e.request(I.setRunContext,{runContext:{...r.runContext,terminalAuthority:`authority`}});return}if(!ta(i,n))throw Error(`Authority bootstrap definition mismatch for '${t}'`);let a=i;return await e.request(I.setRunContext,{runContext:{...r.runContext,terminalAuthority:`authority`,definitionSnapshot:a},initialState:Et(a)}),a}function ta(e,t){return i(JSON.parse(JSON.stringify(e)),JSON.parse(JSON.stringify(t)))}function na(e,t){return e.on(k.bootstrapAuthorityState,async n=>{if(!at(n,n.payload.executionId))throw Error(`authority state bootstrap is execution-bound`);let r=await ea(e,n.payload.executionId,n.payload.definition);if(r!==void 0){t?.(n.payload.executionId,r);for(let t of Zi)await t({bus:e,executionId:n.payload.executionId,definition:r,transport:n.transport})}n.setResult({persisted:r!==void 0})})}export{Ze as $,R as A,ot as B,pn as C,rn as D,ln as E,Ft as F,Oe as G,it as H,Dt as I,Ae as J,De as K,Mt as L,Pt as M,Lt as N,Xt as O,Ut as P,Je as Q,Tt as R,fn as S,gn as T,nt as U,at as V,I as W,Ie as X,Le as Y,Ye as Z,vn as _,Te as _t,ni as a,ze as at,yn as b,k as bt,ar as c,Pe as ct,En as d,Ue as dt,Xe as et,zn as f,He as ft,wn as g,Be as gt,Tn as h,Ve as ht,Yi as i,Me as it,Rt as j,Ht as k,Qn as l,Ge as lt,Bn as m,Ke as mt,na as n,F as nt,ei as o,Re as ot,Gn as p,qe as pt,je as q,Xi as r,Ne as rt,Br as s,Fe as st,Qi as t,ke as tt,qn as u,We as ut,bn as v,we as vt,hn as w,dn as x,xn as y,de as yt,mt as z};
@@ -1 +1 @@
1
- import{t as e}from"./zod-json-schema-B1mZz7S4.mjs";import{n as t,r as n}from"./schemas-CbhvgFQs.mjs";import{z as r}from"zod";import{createBusNamespace as i}from"@makaio/framework/core";const a={list:{request:r.object({}),response:r.object({triggers:r.array(t)})},changed:r.object({owner:r.string().min(1),revision:r.number().int().nonnegative(),kinds:r.array(n).min(1),reason:r.enum([`registered`,`deregistered`])})},o=i(`automation-triggers`,a),s=o.subjects,c=new WeakMap;function l(n){let r=c.get(n);if(r!==void 0)return structuredClone(r);let i=e(n.eventSchema,`output`),a=t.parse({kind:n.kind,label:n.label,description:n.description,categories:n.categories,parameterSchema:e(n.paramsSchema,`input`),eventSchema:i,workflowCompatible:i.type===`object`});return c.set(n,a),structuredClone(a)}function u(e){return n.parse(e.kind),l(e),Object.freeze(e)}function d(e){return e}export{a,o as i,u as n,s as o,d as r,l as t};
1
+ import{t as e}from"./zod-json-schema-DGWHUOK0.mjs";import{n as t,r as n}from"./schemas-MIYusvwn.mjs";import{z as r}from"zod";import{createBusNamespace as i}from"@makaio/framework/core";const a={list:{request:r.object({}),response:r.object({triggers:r.array(t)})},changed:r.object({owner:r.string().min(1),revision:r.number().int().nonnegative(),kinds:r.array(n).min(1),reason:r.enum([`registered`,`deregistered`])})},o=i(`automation-triggers`,a),s=o.subjects,c=new WeakMap;function l(n){let r=c.get(n);if(r!==void 0)return structuredClone(r);let i=e(n.eventSchema,`output`),a=t.parse({kind:n.kind,label:n.label,description:n.description,categories:n.categories,parameterSchema:e(n.paramsSchema,`input`),eventSchema:i,workflowCompatible:i.type===`object`});return c.set(n,a),structuredClone(a)}function u(e){return n.parse(e.kind),l(e),Object.freeze(e)}function d(e){return e}export{a,o as i,u as n,s as o,d as r,l as t};